星期一, 一月 21, 2008

UDEV on embeded Linux-2.6.19.2 UDEV on embeded Linux-2.6.19.2[转]

UDEV,新一代的用户空间设备管理系统,用以取代臃肿的DEVFS(其实DEVFS我还没用过,谁叫我是新来的 ^_^ ,关于两者的对比,可以参考 udev_vs_devfs )。关于UDEV的使用已经有一遍不错的译文 udev轻松上路 ,不过里面关于配置文件的编写与 Writing udev rules 不符。/etc/udev/udev.conf 是udev启动检查的配置文件,包括路径,权限,规则目录等,具体的规则文件应该为/etc/udev/rules.d/10-local.rules 。

我开始移植的第一个Linux是2.6.19.2,已放弃对DEVFS的支持,下面谈谈UDEV在我的arm开发板上的应用。由于BusyBox已带有一个简化板的udev--mdev。通过简单的 mdev -s ,就能自动装配/dev目录下的设备文件:

# ls /dev
console null ptmx pts shm
# mdev -s && ls /dev
apm_bios ptypd tty24 tty56
console ptype tty25 tty57
fb0 ptypf tty26 tty58
full ram0 tty27 tty59
kmem ram1 tty28 tty6
kmsg ram2 tty29 tty60
loop0 ram3 tty3 tty61
... ...
启动热拔插支持的话,用这一句
echo /sbin/mdev > /proc/sys/kernel/hotplug
一切就是这么简单,相应的/dev目录下会出现一大堆设备文件,甚是难看 ^_^
mdev的规则文件是/etc/mdev.conf ,与传统的udev规则文件写法上有点区别(简化了^_^)。
KERNEL=="tty[0-9]*", NAME="vc/%n" //for udev
tty[0-9]* 0:5 660 //for mdev
如果选上FEATURE_MDEV_EXEC支持,规则后面可以执行相应的命令,如:
pts/ 0:0 755 $mount -t devpts /dev/pts /dev/pts
不过我的程序还算简单,mdev -s 对我而言已足够,规则,留作日后写吧 ^_^
我用的是mdev,因为简单 ^_^
在启动教本(如:linuxrc)加入这两句就搞定:
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s

0 意見: