Przygotowanie stałych reguł dla udev (Dynamic device management), zaczynamy od podłączenia urządzeń USB po czym w konsoli systemowej "dmesg" odnajdujemy wpisy inicjalizacji nowych urządzeń.
Wyciągamy potrzebne dane do reguł:
W moim przypadku będą to port usb numer 1 urządzenia 14 i 15
Na tą chwilę możemy jeszcze zweryfikować czy aby na pewno to te urządzenia.
W katalogu "/lib/udev/rules.d/" tworzymy plik "z21_persistent-local.rules" a w nim odpowiednio dwa wpisy:
Ostatni krok to przeładowanie reguł alternatywą jest restart NAS'a.
Ponownie wyłaczamy właczamy urządzenia i weryfikujemy czy wszystko działa.
Testowe wypięcie wpięcie urzadzeń USB:
Przydatne przy montowaniu "na stałe" w dockerze w Home Assistant.
Bash:
...
[367775.241192] usb 1-1.2: new full-speed USB device number 14 using xhci_hcd
[367775.439354] [usb.001.014] /sys/devices/pci0000:00/0000:00:08.1/0000:08:00.3/usb1/1-1/1-1.2 added.
[367778.243193] wireguard: wg0: Handshake for peer 2 ((einval)) did not complete after 5 seconds, retrying (try 3)
[367778.243207] wireguard: wg0: Sending handshake initiation to peer 2 ((einval))
[367779.581191] usb 1-1.3: new full-speed USB device number 15 using xhci_hcd
[367779.776955] [usb.001.015] /sys/devices/pci0000:00/0000:00:08.1/0000:08:00.3/usb1/1-1/1-1.3 added.
...
Wyciągamy potrzebne dane do reguł:
Bash:
udevadm info --name=/dev/bus/usb/{USB ID}/{DEVICE ID} --attribute-walk | grep -E "ATTR\{product\}|ATTR\{serial\}"
W moim przypadku będą to port usb numer 1 urządzenia 14 i 15
Bash:
udevadm info --name=/dev/bus/usb/001/014 --attribute-walk | grep -E "ATTR\{product\}|ATTR\{serial\}"
ATTR{product}=="Sonoff Zigbee 3.0 USB Dongle Plus"
ATTR{serial}=="0001"
udevadm info --name=/dev/bus/usb/001/015 --attribute-walk | grep -E "ATTR\{product\}|ATTR\{serial\}"
ATTR{product}=="WiMOD iM871A-usb"
ATTR{serial}=="0275940C"
Na tą chwilę możemy jeszcze zweryfikować czy aby na pewno to te urządzenia.
Bash:
lsusb
Bus 001 Device 014: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x Composite Device
Bus 001 Device 015: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x Composite Device
W katalogu "/lib/udev/rules.d/" tworzymy plik "z21_persistent-local.rules" a w nim odpowiednio dwa wpisy:
Bash:
ATTR{product}=="Sonoff Zigbee 3.0 USB Dongle Plus",ATTR{serial}=="0001",SYMLINK+="zigbee"
ATTR{product}=="WiMOD iM871A-usb",ATTR{serial}=="0275940C",SYMLINK+="wimod"
Ostatni krok to przeładowanie reguł alternatywą jest restart NAS'a.
Bash:
udevadm control --reload-rules
Ponownie wyłaczamy właczamy urządzenia i weryfikujemy czy wszystko działa.
Bash:
ls -alh /dev/ | grep -E "zigbee|wimod"
lrwxrwxrwx 1 admin administrators 15 2023-11-08 00:49 wimod -> bus/usb/001/018
lrwxrwxrwx 1 admin administrators 15 2023-11-08 00:49 zigbee -> bus/usb/001/017
Testowe wypięcie wpięcie urzadzeń USB:
Bash:
ls -alh /dev/ | grep -E "zigbee|wimod"
lrwxrwxrwx 1 admin administrators 15 2023-11-08 01:10 wimod -> bus/usb/001/020
lrwxrwxrwx 1 admin administrators 15 2023-11-08 01:10 zigbee -> bus/usb/001/019
Przydatne przy montowaniu "na stałe" w dockerze w Home Assistant.
* dostęp dla wszystkich alternatywa dla '--privileged' <- nie testowane jeszcze,MODE="0660", GROUP="docker"