我有一個 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 裝置建立持久名稱?