【Linux】imx6ull开发板第一个驱动实验(led)

目录

前言:

一、配置编译内核的流程步骤:

二、编译安装内核模块

(1)编译内核模块

(2)安装内核模块到Ubuntu某个目录下备用

三、安装内核和模块到开发板上

四、编译led驱动 

五、在开发板安装驱动模块

六、执行测试程序(最后一步)


前言:

编译驱动程序之前,要先编译内核。

①驱动程序要用到内核的文件。

②编译驱动时用的内核与开发板上运行的内核要一致。

③板子更新内核后,相应的驱动也要更换。 

注:imx6ull pro开发板   韦东山老师的课程视频

 ​​​​​​11_编译替换内核_设备树_驱动_IMX6ULL_Pro_哔哩哔哩_bilibili

12_开发板的第1个驱动_哔哩哔哩_bilibili

一、配置编译内核的流程步骤:

cd /home/book/100ask_imx6ull-sdk/Linux-4.9.88
//先进行配置,对应上设备arm
book@100ask: ~/100ask_imx6ull-sdk/Linux-4.9.88$ make mrproper
book@100ask: ~/100ask_imx6ull-sdk/Linux-4.9.88$ make 100ask_imx6ull_defconfig
//编译内核,生成zImage内核文件
book@100ask: ~/100ask_imx6ull-sdk/Linux-4.9.88$ make zImage -j4
//编译设备树,生成设备树的二进制文件
book@100ask: ~/100ask_imx6ull-sdk/Linux-4.9.88$ make dtbs
//拷贝文件到nfs_rootfs里,板子可以通过nfs来访问这些文件
book@100ask: ~/100ask_imx6ull-sdk/Linux-4.9.88$ cp arch/arm/boot/zImage ~/nfs_rootfs
book@100ask: ~/100ask_imx6ull-sdk/Linux-4.9.88$ cp arch/arm/boot/dts/100ask_imx6ull-1
4x14.dtb ~/nfs_rootfs

二、编译安装内核模块

(1)编译内核模块

book@100ask: ~/100ask_imx6ull-sdk/Linux-4.9.88$ make modules

(2)安装内核模块到Ubuntu某个目录下备用

①后面的步骤要用到tree命令,你可以先试一下,看是否有下载tree命令。

 没有tree命令,执行下面的命令下载

sudo apt install tree

②安装模块

//设置设备为arm,并在nfs_rootfs目录下安装模块
book@100ask: ~/100ask_imx6ull-sdk/Linux-4.9.88$ make ARCH=arm INSTALL_MOD_PATH=/home
/book/nfs_rootfs modules_install

③tree查询目录

三、安装内核和模块到开发板上

打开开发板,执行以下的命令,复制之前的zImage、 dtb 文件以及lib/modules 子目录(里面含有各种模块)。

//挂载nfs
mount -t nfs -o nolock,vers=3 192.168.5.11 :/home/book/nfs_rootfs /mnt
//复制相应的文件
cp /mnt/zImage /boot
cp /mnt/100ask_imx6ull-14x14.dtb /boot
cp /mnt/lib/modules /lib -rfd
//最后同步一下,文件可能还在内存里,同步后强制的刷到flash中去
sync
reboot

四、编译led驱动 

①通过FileZila将下面目录下的02led-drive文件传输到ubuntu里nfs_rootfs文件夹里。

01_all_series_quickstart/
05_ 嵌入式 Linux 驱动开发基础知识 /
source/02_led_drv/02_led_drv_for_boards/100ask_imx6ull_src_bin

②修改文件里的Makefile文件,指定使用那个内核源码目录

cd ~/100ask_imx6ull-sdk/Linux-4.9.88
//得到相应内核当前路径
pwd
cd -
vi Makefile
//编译
make
//拷贝到nfs_rootfs
cp 100ask_led.ko ledtest ~/nfs_rootfs

五、在开发板安装驱动模块

①将100ask_led.ko、ledtest文件复制到开发板上

mount -t nfs -o nolock,vers=3 192.168.5.11:/home/book/nfs_rootfs /mnt
//复制到开发板上
cp /mnt/100ask_led.ko ./
cp /mnt/ledtest ./

②安装驱动模块并用lsmod查询

insmod 100ask_led.ko
lsmod

 

六、执行测试程序(最后一步)

可以使用测试程序来控制led灯的状态。

chmod +x ./ledtest
./ledtest
//打开led0灯
./ledtest /dev/100ask_led0 on
//关闭led0灯
./ledtest /dev/100ask_led0 off

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

希希雾里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值