Udział Samba nie może przekazać fizycznego adaptera Zigbee do HAOS
Pierwotny problem dotyczy urządzenia szeregowego USB, a nie folderu. Udział Samba może udostępniać pliki maszynie wirtualnej, ale nie sprawi, że ConBee, Sonoff, Nortek ani podobne radio pojawi się jako sprzęt USB gościa. Działające rozwiązanie społeczności polega na podłączeniu urządzenia USB hosta do gościa ZVM za pośrednictwem libvirt.
Nadal jest to obejście oparte na wierszu poleceń, a nie potwierdzony selektor USB w ZVM. Przed edycją trwałej konfiguracji sprzętowej wykonaj kopię zapasową XML maszyny wirtualnej i wyłącz Home Assistant OS. Błędna edycja XML lub brak adaptera może uniemożliwić uruchomienie gościa, dlatego zachowaj kopię pozwalającą przywrócić poprzednią konfigurację.
Zidentyfikuj adapter bez kopiowania identyfikatorów innego użytkownika
Połącz się z ZimaOS za pomocą obsługiwanej ścieżki SSH i uzyskiwania uprawnień, a następnie uruchom lsusb. Znajdź parę identyfikatorów producenta i produktu adaptera, na przykład 1a86:55d4 z przykładu. Identyfikatory Twojego urządzenia ConBee, Sonoff lub Nortek będą inne.
Jeśli lista jest niejednoznaczna, odłącz i ponownie podłącz adapter. Dopasowanie według producenta i produktu również może być niejednoznaczne, gdy podłączone są dwa identyczne adaptery. Dokumentacja formatu urządzeń hosta libvirt wyjaśnia dopasowanie VID/PID oraz bardziej szczegółowe adresowanie USB.
Zapisz dokładną nazwę libvirt lub UUID maszyny wirtualnej za pomocą virsh list --all. Nie używaj przykładowego identyfikatora z wątku. Przed wprowadzeniem zmian wyeksportuj bieżącą definicję poleceniem virsh dumpxml VM_NAME.
Dodaj jeden blok hostdev w sekcji urządzeń gościa
Po wyłączeniu gościa otwórz jego definicję poleceniem virsh edit VM_NAME. W istniejącym elemencie <devices> dodaj <hostdev mode='subsystem' type='usb' managed='yes'><source><vendor id='0xVID'/><product id='0xPID'/></source></hostdev>, zastępując VID i PID wartościami z hosta.
Dodaj jeden kompletny blok hostdev dla każdego fizycznego urządzenia. Nie twórz drugiego opakowania <devices> i nie wklejaj bloku za zamykającym tagiem </devices>. Zapisz zmiany, a następnie ponownie sprawdź XML przed uruchomieniem maszyny wirtualnej.
Uruchom gościa i sprawdź virsh list --all. Jeśli uruchomienie się nie powiedzie, odczytaj pierwszy błąd libvirt. Przywróć zapisany XML zamiast nakładać kolejne zmiany. Komunikat „device not found” wskazuje na problem z wykrywaniem urządzenia przez hosta lub dopasowaniem, a błąd parsowania XML wskazuje na nieprawidłowe umiejscowienie albo składnię.
Zweryfikuj urządzenie w HAOS, zanim zajmiesz się Zigbee2MQTT
W Home Assistant otwórz Ustawienia → System → Sprzęt i poszukaj nowego urządzenia USB lub szeregowego. Nazwy interfejsów, takie jak /dev/ttyACM0, mogą się zmieniać; gdy HAOS udostępnia wpis /dev/serial/by-id/..., użyj tej stabilnej ścieżki w Zigbee2MQTT.
Dopiero gdy HAOS wykryje urządzenie, ustaw serial.port w Zigbee2MQTT. Uruchom ponownie dodatek i sprawdź w jego dzienniku, czy adapter został pomyślnie połączony. Jeśli HAOS widzi adapter, ale Zigbee2MQTT nie może go otworzyć, przekazywanie urządzenia już działa, a problem dotyczy typu adaptera, konfiguracji portu szeregowego lub dostępu dodatku.
Uruchom ponownie HAOS, a następnie ZimaOS, aby przetestować trwałość konfiguracji. Potwierdź, że pojawia się ta sama ścieżka by-id i że Zigbee2MQTT ponownie nawiązuje połączenie. Zmiany zasobów ZVM mogą w niektórych wersjach nadpisywać ręczny XML, dlatego po zmianie procesora, pamięci, dysków lub aktualizacji platformy ponownie sprawdź XML.
FAQ
Gdzie jest przechowywany plik XML?
Nie musisz ręcznie lokalizować pliku. Użyj virsh edit VM_NAME, aby edytować zarejestrowaną definicję domeny, oraz virsh dumpxml, aby utworzyć jej kopię zapasową.
Czy do tej samej maszyny wirtualnej można przekazać wiele urządzeń USB?
Tak, wątek pokazuje jeden blok hostdev na urządzenie. Każdy blok musi jednoznacznie odpowiadać zamierzonemu urządzeniu.
Dlaczego ścieżka USB zmieniła się po ponownym uruchomieniu?
Krótkie nazwy urządzeń mogą się zmieniać, gdy Linux wykrywa sprzęt. Po przekazaniu urządzenia preferuj ścieżkę by-id w HAOS, ale ponownie sprawdź XML, jeśli całe urządzenie zniknie.
Polecenia dotyczące HAOS oraz późniejszy przykład XML znajdują się w dyskusji dotyczącej udostępniania urządzeń USB w ZVM.
