当前位置: 技术问答>linux和unix
设备节点的郁闷
来源: 互联网 发布时间:2016-12-01
本文导语: 改写了一个设备驱动程序,并定义了主设备好MAJOR为254,编译内核后,能够在/proc/devices下参看到设备节点gpiotest,但是在device下并没有设备节点gpiotest,所以运行测试程序时找不到。然后在开发板上用mknod dev/gpiotest b...
改写了一个设备驱动程序,并定义了主设备好MAJOR为254,编译内核后,能够在/proc/devices下参看到设备节点gpiotest,但是在device下并没有设备节点gpiotest,所以运行测试程序时找不到。然后在开发板上用mknod dev/gpiotest b 254 0 ,然后运行测试程序,就可以了。但是重启开发板后,创建的节点就没了,用时还要手动创建。所以,想在内核内创建好。我知道在linux的一个Makefile里可以添加设备节点,但不知道它在哪,还望指点下。这段添加设备的代码如下:
DEVICES =
tty,c,5,0 console,c,5,1 cua0,c,5,64 cual,c,5,65
mem,c,1,1 kmem,c,1,2 null,c,1,3
......................................
还望哪位指点下啊。
DEVICES =
tty,c,5,0 console,c,5,1 cua0,c,5,64 cual,c,5,65
mem,c,1,1 kmem,c,1,2 null,c,1,3
......................................
还望哪位指点下啊。
|
开发板上的自动启动脚本里有这些东西的。
我现在使用的开发板就有这些东西。
不过,不是自动创建结点,而是,在脚本里
自动insmod模块。
linux下,有一种方法,可以不需要mknod,只需要
insmod,就可以自动创建结点,不过,似乎最新的
内核已经不支持了。现在似乎是使用udev,不过这个东西
我还不是特别懂。最简单的就是,写个脚本,
开机是自动运行。。。。
我现在使用的开发板就有这些东西。
不过,不是自动创建结点,而是,在脚本里
自动insmod模块。
linux下,有一种方法,可以不需要mknod,只需要
insmod,就可以自动创建结点,不过,似乎最新的
内核已经不支持了。现在似乎是使用udev,不过这个东西
我还不是特别懂。最简单的就是,写个脚本,
开机是自动运行。。。。
|
使用udev,或者busybox提供的mdev.他们都会侦测/sys目录的变化生成设备节点文件的
|
建议用busybox里面的mdev,说明在busybox目录下的example/里面有,就写一些配置,难度不大。
|
自己写个脚本,在启动过程中运行,就可以了。
|
可以用busybox的mkmod!