1 什么是udev
udev是一种工具,它能够根据系统中的硬件设备的状态动态更新设备文件,包括设备文件的创建,删除等。
设备文件通常放在/dev目录下。使用udev后,在/dev目录下就只包含系统中真正存在的设备。
设备访问控制udev:user dev
静态文件(早期)-->devfs(2.3.46 内核空间)-->udev(2.6.13 用户空间,依赖于linux-2.6的sysfs文件系统)。
udev会根据/etc/udev/udev.conf文件中的udev_rules指定的目录,逐个检查该目录下的文件,这个目录下的文件都是针对某类或某个设备应该施行什么措施的规则文件。
2 udev配置文件
/etc/udev/udev.conf
/etc/udev/rules.d/...
vim /etc/udev/rules.d/10-local.rules
KERNEL=="sdb1",SUBSYSTEMS=="block", NAME+="kinstonusb",SYMLINK+="kinstonusb_link"
规则说明:
1 操作符
==,=
2 匹配键
KERNEL,SUBSYSTEM
3 赋值键
NAME,SYMLINK,ENV{key}
4 替换操作符(转义)
$kernel,%k
$number,%n
3 udev modules驱动是如何加载的
4 udev源码
eudev下载地址:
https://github.com/gentoo/eudev
编译eudev:
./configure
make -j4
make install
修改代码,加打印:
log_error("xxx ..."); //打印生效,注意应该是开了error打印,debug打印没开
make -j4 //此时可以测试test目录下的程序,test-udev,test-libudev
make install //注意调试本系统需要make install到/lib目录下
或这么下载代码:
find /usr/lib -name *udev*
aptitude search libudev
aptitude source libudev1