Una condivisione Samba non può passare un adattatore Zigbee fisico a HAOS
Il problema originale riguarda un dispositivo seriale USB, non una cartella. Una condivisione Samba può esporre file a una macchina virtuale, ma non può far apparire un adattatore radio ConBee, Sonoff, Nortek o simile come hardware USB del guest. La procedura della community che funziona collega il dispositivo USB dell'host al guest ZVM tramite libvirt.
Questa rimane una soluzione alternativa da riga di comando, non un selettore USB ZVM confermato. Esegui il backup dell'XML della macchina virtuale e arresta Home Assistant OS prima di modificare l'hardware persistente. Una modifica XML malformata o un dongle mancante può impedire l'avvio del guest, quindi conserva una copia che consenta di ripristinare la configurazione precedente.
Identifica il dongle senza copiare gli ID di un altro utente
Connettiti a ZimaOS tramite il percorso SSH e di autorizzazione supportato, quindi esegui lsusb. Individua la coppia vendor e prodotto del dongle, ad esempio 1a86:55d4 nell'esempio. Gli ID del tuo ConBee, Sonoff o Nortek saranno diversi.
Scollega e ricollega il dongle una volta se l'elenco non è chiaro. La corrispondenza tra vendor e prodotto può essere ambigua anche quando sono collegati due adattatori identici. La documentazione sul formato host-device di libvirt illustra la corrispondenza VID/PID e gli indirizzi USB più specifici.
Annota il nome libvirt esatto o l'UUID della VM con virsh list --all. Non usare un ID di esempio della discussione. Esporta la definizione attuale con virsh dumpxml VM_NAME prima di modificarla.
Aggiungi un blocco hostdev nella sezione dei dispositivi del guest
Con il guest spento, apri la relativa definizione usando virsh edit VM_NAME. All'interno dell'elemento <devices> esistente, aggiungi <hostdev mode='subsystem' type='usb' managed='yes'><source><vendor id='0xVID'/><product id='0xPID'/></source></hostdev>, sostituendo VID e PID con i valori del tuo host.
Aggiungi una sezione completa hostdev per ogni dispositivo fisico. Non creare un secondo contenitore <devices> e non incollare il blocco dopo il tag di chiusura </devices>. Salva, quindi controlla nuovamente l'XML prima di avviare la VM.
Avvia il guest e controlla virsh list --all. Se non si avvia, leggi il primo errore di libvirt. Ripristina l'XML salvato invece di accumulare altre modifiche. Un risultato “device not found” rimanda all'enumerazione dell'host o alla corrispondenza; un errore di analisi XML indica un problema di posizione o sintassi.
Verifica il dispositivo in HAOS prima di intervenire su Zigbee2MQTT
In Home Assistant, apri Impostazioni → Sistema → Hardware e cerca il nuovo dispositivo USB o seriale. I nomi delle interfacce come /dev/ttyACM0 possono cambiare; quando HAOS espone un percorso /dev/serial/by-id/..., usa quell'identità stabile in Zigbee2MQTT.
Solo dopo che HAOS rileva il dispositivo devi impostare serial.port di Zigbee2MQTT. Riavvia l'add-on e controlla il relativo registro per verificare la connessione riuscita all'adattatore. Se HAOS rileva il dongle ma Zigbee2MQTT non riesce ad aprirlo, il passthrough funziona già e il problema riguarda il tipo di adattatore, la configurazione seriale o l'accesso dell'add-on.
Riavvia HAOS e poi ZimaOS per verificare la persistenza. Conferma che venga restituito lo stesso percorso by-id e che Zigbee2MQTT si riconnetta. In alcune versioni, le modifiche alle risorse ZVM possono sovrascrivere l'XML manuale; quindi ripeti il controllo dell'XML dopo aver modificato CPU, memoria o dischi oppure dopo aver aggiornato la piattaforma.
Domande frequenti
Dove viene memorizzato il file XML?
Non è necessario individuare manualmente un file. Usa virsh edit VM_NAME per modificare la definizione del dominio registrato e virsh dumpxml per eseguirne il backup.
È possibile passare più dispositivi USB alla stessa VM?
Sì, la discussione mostra un blocco hostdev per dispositivo. Ognuno deve corrispondere all'hardware previsto senza ambiguità.
Perché il percorso USB è cambiato dopo il riavvio?
I nomi brevi dei dispositivi possono cambiare quando Linux enumera l'hardware. Dopo il passthrough, preferisci il percorso by-id di HAOS, ma ricontrolla l'XML se l'intero dispositivo scompare.
I comandi specifici per HAOS e l'esempio XML successivo sono disponibili nella discussione sulla condivisione USB di ZVM.
