udev规则
1、udev规则文件路径:
/etc/udev/rules.d/ —本机规则
/lib/udev/rules.d/ —系统规则
2、udev规则文件命名方式:
【优先级】-【描述】.rules
udev规则文件必须以.rules结尾,开始的数字代表规则执行的优先级,数字越小,优先级越高。
3、规则编写方式:
ACTION==[规则触发条件],[匹配属性][属性值],[匹配属性][属性值],[设置属性]=[设置值]
#eg
ACTION==“add”,SUBSYSTEM==“net”,DRIVER==“r8152”,NAME=“eth1”
4、ACTION支持的条件:
add:当设备被添加到系统时触发规则。
remove:当设备被从系统中移除时触发规则。
change:当设备的某些属性发生变化时触发规则。
move:当设备被移动到另一个位置时触发规则。
online:当设备从离线状态变为在线状态时触发规则。
offline:当设备从在线状态变为离线状态时触发规则。
5、常见属性:
ATTRS: 设备的属性,例如 ATTRS{idVendor} 、ATTRS{idProduct}等。
KERNEL:设备的内核名称,例如KERNEL==“sd*”匹配所有块设备。
SUBSYSTEM: 设备所属的子系统,例如SUBSYSTEM==“block”匹配所有块设备。
ACTION:设备的操作,例如ACTION==“add”匹配设备插入事件。
DRIVER:设备的驱动程序,例如DRIVER==“usb”匹配所有USB设备。
ENV:设置环境变量,例如ENV{ID_BUS}=“usb”。
SYMLINK:创建符号链接,例如SYMLINK+=“mydevice”。
PROGRAM:执行外部程序,例如PROGRAM=“/path/to/script.sh”。
RUN:执行内联命令,例如RUN+=“/bin/command”。
NAME: 重命名设备。
6、具体的attr 查看方式为:
udevadm info -a -n [设备路径]
udevadm info -a -n /dev/ttyF1
udevadm info --attribute-walk --path=
(
u
d
e
v
a
d
m
i
n
f
o
−
−
q
u
e
r
y
=
p
a
t
h
−
−
n
a
m
e
=
/
d
e
v
/
v
i
d
e
o
2
)
/
/
查询节点
u
d
e
v
a
d
m
i
n
f
o
−
−
a
t
t
r
i
b
u
t
e
−
w
a
l
k
−
−
p
a
t
h
=
(udevadm info --query=path --name=/dev/video2) //查询节点 udevadm info --attribute-walk --path=
(udevadminfo−−query=path−−name=/dev/video2)//查询节点udevadminfo−−attribute−walk−−path=(udevadm info --query=path --path=/sys/class/net/eth0)
udevadm info --attribute-walk --path=$(udevadm info --query=path --path=/devices/pci0000:00/0000:00:09.0/0000:01:00.0/FPGA)
7、udevadm应用
$ udevadm --help
udevadm [–help] [–version] [–debug] COMMAND [COMMAND OPTIONS]
发送控制命令或测试设备管理器。
Commands:
info 查询sysfs或udev数据库
trigger 从内核请求事件
settle 等待即将发生的的udev事件
control 控制udev守护进程
monitor 监听内核和udev事件
test 测试事件运行情况
test-builtin 测试内置built-in命令
8、更新
sudo systemctl restart udev
或者
sudo udevadm control --reload-rules
9、监听udev
示例:使用udevadm监测内核事件
udevadm monitor
后记
记录下udev的规则用法,后续更新uevent事件,object,kset,和实际的udev实践