今天写了一个linux的驱动,编译成功,用NFS在目录板上运行,insmod后,在/proc/devices里面能看到,用lsmod也能看到那个设备,但在/dev里找不到设备文件。应用测试程序open也出错了。后来在网上查了一些资料,说是需要先mknod才行,于是:mknod /dev/testdrv c 195 0 ,后再insmod,然后运行测试应用程序,OK! 下面是一些mknod的资料
mknod是创建设备文件,但在创建设备文件之前,一定要先写驱动程序。
在驱动程序中是要注册你自己的设备的。/dev目录下创建相应的设备只是为了应用程序去使用它提供了途径,它们之间是通过设备号联系在一起的。

在Linux中,驱动编译成功并insmod后,若在/dev下找不到设备文件,可能需要使用mknod创建。mknod用于创建设备文件,与驱动程序注册的设备号关联,使得应用程序能通过设备文件访问驱动。设备文件有两种管理方式:传统的mknod配合/dev下的文件,以及devfs动态管理。mknod命令需要指定设备类型(字符或块)、主次设备号。
最低0.47元/天 解锁文章
761

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



