前几天看LDD3时对register_chrdev_regison中的name 一直存有疑惑,它与设备文件之间有什么关系?讲述如下
1.在编写的模块程序中将设备号申请函数中的name设定为“B”,也就是register_chrdev_regison中的name设定为“B”
2.设定编写好的模块名为A.ko,并insmod A.ko
3.此时当lsmod(与cat /proc/modules一致)显示出来的便是“A”
4.cat /proc/devices出来的是“B” 其后跟了一个设备号,假设250
5.手动创建设备文件比如 :mknod /dev/name_you_want c 250 0(mknod用法自己百度吧)
6.在/dev目录下就会生成name_you_want的文件,这个名字是你任意取的,但为了给上层提供一个易于理解的接口,还是要遵守相应的规则为好,最重要的是主设备号,它是用来关联设备文件与驱动程序的唯一纽带,必须与/proc/devices目录下一致,这就是为什么我们用alloc_chrdev_region无法预先创建设备节点(文件)的原因了。
阅读(3591) | 评论(1) | 转发(0) |