我有一个 USB LED 小工具,它显示为 USB HID 设备。当我将它插入我的服务器时,它会显示为,/sys/class/leds/delcom2:{red,green,blue}
我可以通过操作那里显示的文件来操作它。
lrwxrwxrwx 1 root root 0 Apr 7 13:22 /sys/class/leds/delcom2:blue -> ../../devices/pci0000:00/0000:00:1d.2/usb8/8-1/8-1:1.0/0003:0FC5:B080.0007/leds/delcom2:blue
lrwxrwxrwx 1 root root 0 Apr 7 13:22 /sys/class/leds/delcom2:green -> ../../devices/pci0000:00/0000:00:1d.2/usb8/8-1/8-1:1.0/0003:0FC5:B080.0007/leds/delcom2:green
lrwxrwxrwx 1 root root 0 Apr 7 13:22 /sys/class/leds/delcom2:red -> ../../devices/pci0000:00/0000:00:1d.2/usb8/8-1/8-1:1.0/0003:0FC5:B080.0007/leds/delcom2:red
我的问题是名称delcom2
因机器而异。在另一台计算机上它被命名为delcom5
,我担心如果我将它插入 USB 集线器或类似设备,它会得到另一个名称。我想要某种持久命名对于这个小工具,以便我可以通过脚本可靠地操作它。
我尝试编写 udev 规则,但失败了。我找到的大多数有关重命名的信息都谈到了,SYMLINK+="..."
但这似乎不起作用。它做给我一个原始 USB 设备的符号链接:
lrwxrwxrwx 1 root root 15 Apr 7 13:45 /dev/delcom -> bus/usb/003/003
我也尝试过该NAME="..."
方法,但也失败了:
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="0fc5", ATTRS{idProduct}=="b080", NAME="delcom"
systemd 日志日志的最后一行显示了失败的原因:内核设备节点无法重命名
usb 5-1: new low-speed USB device number 2 using uhci_hcd
usb 5-1: New USB device found, idVendor=0fc5, idProduct=b080
usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 5-1: Product: USB IO Controller
usb 5-1: Manufacturer: Delcom Products Inc.
hid-led 0003:0FC5:B080.0008: hidraw2: USB HID v1.00 Device [Delcom Products Inc. USB IO Controller ] on usb-0000:00:1a.2-1/input0
hid-led 0003:0FC5:B080.0008: Delcom Visual Signal Indicator G2 initialized
systemd-udevd[17574]: NAME="delcom" ignored, kernel device nodes cannot be renamed; please fix it in /etc/udev/rules.d/99-usb-led.rules:1
问题
如何在 Linux 中为 USB HID LED 设备创建持久名称?