一. 简介
上一篇文章实现了 led灯 IO的 初始化的代码,文章地址如下:
本文对上一篇编写的驱动代码进行编译,并在开发板上加载 Led驱动模块。
二. Led 驱动代码编译
打开 ubuntu系统下,进入 2_led工程根目录下,编译代码:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/2_led$ make
make -C /home/wangtian/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga M=/home/wangtian/zhengdian_Linux/Linux_Drivers/2_led modules
make[1]: 进入目录“/home/wangtian/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga”
CC [M] /home/wangtian/zhengdian_Linux/Linux_Drivers/2_led/led.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/wangtian/zhengdian_Linux/Linux_Drivers/2_led/led.mod.o
LD [M] /home/wangtian/zhengdian_Linux/Linux_Drivers/2_led/led.ko
make[1]: 离开目录“/home/wangtian/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga”
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/2_led$
输入 "ls" 命令可以查看是否生成 led.ko驱动文件。
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/2_led$ ls
led.c led.ko led.mod.o Makefile Module.symvers
led.code-workspace led.mod.c led.o modules.order
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/2_led$
将 led.ko驱动文件拷贝到 开发板根文件系统 /lib/modules/4.1.15/ 目录下:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/2_led$ sudo cp -f led.ko /home/wangtian/linux/nfs_File/rootfs/lib/modules/4.1.15/
三. Led 驱动模块加载
开发板上电后,进入根文件系统 /lib/modules/4.1.15/目录下,查看是否存在 拷贝过来的 led.ko驱动文件:
/ # cd /lib/modules/4.1.15/
查看 led.ko:
/lib/modules/4.1.15 # ls -l
total 12
-rw-r--r-- 1 0 0 5414 Dec 24 2023 led.ko
-rw-r--r-- 1 0 0 0 Dec 24 2023 modules.alias
-rw-r--r-- 1 0 0 8 Dec 24 2023 modules.dep
-rw-r--r-- 1 0 0 0 Dec 24 2023 modules.symbols
/lib/modules/4.1.15 #
加载 Led驱动模块
/lib/modules/4.1.15 # modprobe led.ko
led_init!
/lib/modules/4.1.15 #
确定 Led驱动模块已加载成功:运行 "lsmod"命令或运行 "cat /proc/devcies"命令
使用 lsmod命令查看已加载的驱动模块:
/lib/modules/4.1.15 # lsmod
Module Size Used by Tainted: G
led 1356 0
/lib/modules/4.1.15 #
或者查看 /proc/devices目录下是否已存在 Led设备:
这时候查看开发板上 Led灯 (红色灯)是否已亮。
可以看出,我的开发板上的 红色灯已经亮,说明 Led驱动模块加载成功,也说明 Led的 IO初始化代码已经成功运行。
卸载 Led驱动模块
使用 "rmmod led.ko" 命令卸载驱动模块:
/lib/modules/4.1.15 # rmmod led.ko
led_exit!
/lib/modules/4.1.15 #
这时可以查看开发板上的 Led灯(红色灯)是否灭了:
Led灯灭说明:卸载函数接口中,所加的 关闭 Led灯的代码可以成功运行。
下一篇文章完善 Led驱动代码。