udev
是 Linux 系统中的一个守护进程,它的作用是管理设备节点,即在系统启动或设备被添加到系统时自动创建或删除设备文件。udev
规则允许管理员根据硬件的特性来指定设备如何被系统识别和命名。
什么是 udev
规则?
udev
规则是一种基于模式匹配的规则系统,它允许管理员定义设备如何被识别、命名以及如何与系统交互。udev
规则文件通常位于 /etc/udev/rules.d/
目录下,并且具有 .rules
扩展名。
怎么用 udev
规则?
- 识别设备:使用
udevadm
工具或lsusb
、lshw
等命令来识别你的设备和它的属性。 - 编写规则:根据设备的特性编写规则文件。规则可以基于设备类型、序列号、供应商、产品等属性。
- 应用规则:将规则文件放置在
/etc/udev/rules.d/
目录下,并确保它具有正确的权限和格式。 - 重新加载规则:使用
sudo udevadm control --reload-rules
命令重新加载规则。 - 触发规则:使用
sudo udevadm trigger
命令来触发规则的执行,或者简单地拔插设备。
代码实现
下面是一个简单的 udev
规则示例,该规则将为所有名为 "MyDevice" 的设备创建一个自定义的设备节点。
- 打开终端。
- 使用文本编辑器创建一个新的规则文件,例如
nano /etc/udev/rules.d/99-mydevice.rules
。 - 编写规则,例如:
# 匹配所有名为"MyDevice"的设备
SUBSYSTEM=="usb", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", SYMLINK+="mydevice"
这条规则的含义是:
SUBSYSTEM=="usb"
:匹配 USB 设备。ATTRS{idVendor}=="1234"
:匹配供应商 ID 为 "1234" 的设备。ATTRS{idProduct}=="5678"
:匹配产品 ID 为 "5678" 的设备。SYMLINK+="mydevice"
:为匹配的设备创建一个名为 "mydevice" 的符号链接。
- 保存并关闭文件。
- 重新加载
udev
规则:sudo udevadm control --reload-rules
- 触发规则:
sudo udevadm trigger