1.udev介绍
udev是linux kernel的设备管理器,在最新的内核版本中kernel_3.10中udev已经代替了以前devfs、hotplug等功能,意味着它要处理添加/删除硬件时,所有的用户空间行为。
2.udevadm 命令
udevadm是一个udev的管理工具,可以用来监视和控制udev运行时的行为,请求内核事件,管理事件队列,以及提供简单的调试机制。
udevadm主命令:
- info 查询sysfs或者udev的数据库
- trigger 从内核请求events
- settle 查看udev事件队列,如果所有的events已处理则退出
- control 修改udev后台的内部状态信息
- monitor 监控内核的uevents
- hwdb 处理硬件数据库索引
- test
- 查询设备信息.
udevadm info -a -p [设备路径] # 如:/sys/class/net/eth0
2. 编写rules
KERNEL="eth0", NAME="en0"
3. 更新rules
udevadm control -R
4. 测试rules
udevadm test -a [ACTION] [设备路径]
3.udev rules规则
man udev
4. 示例-固定USB网卡名称
ACTION!="add", GOTO="usbnet_exit"
#ctrl network
SUBSYSTEM=="net", KERNELS=="40000000.ethernet", SUBSYSTEMS=="platform", DRIVERS=="stmmaceth", NAME="fm1-mac5"
SUBSYSTEM=="net", KERNELS=="40010000.ethernet", SUBSYSTEMS=="platform", DRIVERS=="stmmaceth", NAME="fm1-mac6"
#usb dev network
SUBSYSTEM=="net", KERNELS=="1-3:1.0", SUBSYSTEMS=="usb", DRIVERS=="sr9900", NAME="fm1-mac1", RUN="/sbin/ifup -f $name"
SUBSYSTEM=="net", KERNELS=="2-3:1.0", SUBSYSTEMS=="usb", DRIVERS=="sr9900", NAME="fm1-mac1", RUN="/sbin/ifup -f $name"
SUBSYSTEM=="net", KERNELS=="1-1:1.0", SUBSYSTEMS=="usb", DRIVERS=="sr9900", NAME="fm1-mac2", RUN="/sbin/ifup -f $name"
SUBSYSTEM=="net", KERNELS=="2-1:1.0", SUBSYSTEMS=="usb", DRIVERS=="sr9900", NAME="fm1-mac2", RUN="/sbin/ifup -f $name"
SUBSYSTEM=="net", KERNELS=="1-2:1.0", SUBSYSTEMS=="usb", DRIVERS=="sr9900", NAME="fm1-mac3", RUN="/sbin/ifup -f $name"
LABEL="usbnet_exit"