1、编译驱动程序 编写 Makefile 文件,本章实验的 Makefile 文件和第四十章实验基本一样,只是将 obj-m 变 量的值改为“leddevice.o leddriver.o”,Makefile 内容如下所示: 示例代码 34.5.1.1 Makefile 文件

1 KERNELDIR := /home/user/linux/my_linux/linux-5.4.31 ...... 4 obj-m := leddevice.o 5 obj-m += leddriver.o ...... 12 clean: 13 $(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean 第 4,5 行,设置 obj-m 变量的值为“leddevice.o leddriver.o”。 输入如下命令编译出驱动模块文件: make -j32 编译成功以后就会生成一个名为“leddevice.ko leddriver.ko”的驱动模块文件。

NFS 挂载 

[root@ATK-stm32mp1]:/home/user$ ls
getnfs
[root@ATK-stm32mp1]:/home/user$ cd getnfs/
[root@ATK-stm32mp1]:/home/user/getnfs$ ls
rootfs
[root@ATK-stm32mp1]:/home/user/getnfs$ cd ..
[root@ATK-stm32mp1]:/home/user$ ls
getnfs
[root@ATK-stm32mp1]:/home/user$ mount -t nfs -o nolock,nfsvers=3 192.168.1.100:/
home/user/linux/nfs getnfs/

运行测试 将 上 一 小 节 编 译 出 来 leddevice.ko 、 leddriver.ko 和 ledApp 这 两 个 文 件 拷 贝 到 rootfs/lib/modules/5.4.31 目录中,重启开发板,进入到目录 lib/modules/5.4.31 中,输入如下命令 加载 leddevice.ko 设备模块和 leddriver.ko 这个驱动模块。 depmod //第一次加载驱动的时候需要运行此命令 modprobe leddevice.ko //加载设备模块 modprobe leddriver.ko //加载驱动模块 根文件系统中/sys/bus/platform/目录下保存着当前板子 platform 总线下的设备和驱动,其中 devices 子目录为 platform 设备,drivers 子目录为 plartofm 驱动。进入/sys/bus/platform/devices/ 目录,查看我们的设备是否存在,我们在 leddevice.c 中设置设备的 name 字段为“stm32mp1- led”,因此肯定在/sys/bus/platform/devices/目录下存在一个名字“stm32mp1-led”的文件,否则 说明我们的设备模块加载失败

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐