0.1+0.2!==0.3

Ave UBI!
Q's Professional
11 Czerwiec 2016
423
4
292
113
Wrocław
QNAP
TS-x73A
Ethernet
2.5 GbE
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ń.

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.

,MODE="0660", GROUP="docker"
* dostęp dla wszystkich alternatywa dla '--privileged' <- nie testowane jeszcze
 

Użytkownicy znaleźli tą stronę używając tych słów:

  1. *
  2. usb zigbee
  3. home assistant
  4. ZigBee
  5. sonoff dongle
  6. usb
  7. udev rules