在Linux中通过udevadm配置设备规则需遵循以下步骤:
-
识别设备属性:
- 使用
udevadm info -a -n /dev/设备名
查看设备详细信息(如KERNEL、ATTRS{idVendor}等)。 - 或通过
lsusb
/lspci
获取设备标识符(如USB的idVendor和idProduct)。
- 使用
-
编写规则文件:
- 在
/etc/udev/rules.d/
目录下创建.rules
文件(如99-custom.rules
),数字越小优先级越高。 - 规则语法:
匹配键 + 分配键
,例如:ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", GROUP="users", MODE="0666"
- 常用操作:设置权限(MODE)、用户组(GROUP)、创建符号链接(SYMLINK)、执行脚本(RUN+=)。
- 在
-
应用规则:
- 重载规则:
udevadm control --reload-rules
- 触发设备事件:
udevadm trigger --action=add --subsystem-match=设备子系统
- 重载规则:
-
调试与验证:
- 使用
udevadm test /sys/设备路径
模拟规则执行(需root权限)。 - 检查设备权限、符号链接或通过
journalctl -u systemd-udevd
查看日志。
- 使用
注意事项:
- 避免覆盖系统默认规则(位于
/lib/udev/rules.d/
)。 - 规则匹配条件需唯一,防止误匹配其他设备。
- 使用
ENV{key}=="value"
匹配环境变量,%k
表示内核设备名。