主要就是编写了驱动模块Helloko(hello.c 、Makefile) & 测试应用程序(hellotest.c)
hello.c:


makefile:

hellotest.c:

step1: make 先生成ko文件
![]()
step2: insmod ko模块 ,但没有出现初始化打印,很奇怪,应为printk的打印等级比较高,KERN_ALERT,但终端没有出现打印。所以不知道确认有没有执行成功,但我发现有一个dmesg,可以打印。
![]()
说明驱动初始化正常
step3: 查看proc/devices
cat proc/devices 字符设备里的![]()
step4:挂载成设备点 mknod /dev/hellodev c 200 0
![]()
step5:编译hellotest,执行hellotest,发现报错 can't open!
原来权限不够,打开hellodev读写权限,再次运行,查看
![]()
至此成功。
本文详细记录了Linux驱动模块Helloko的开发过程,包括编写驱动模块hello.c与测试应用程序hellotest.c,通过make生成ko文件,使用insmod加载模块并利用dmesg确认驱动初始化正常,最终解决权限问题实现设备读写。
558

被折叠的 条评论
为什么被折叠?



