Quando hai bisogno del passthrough USB in VirtualBox, potresti iniziare cercando soluzioni native. Anche se esistono software di terze parti che semplificano il processo, Oracle VM VirtualBox integra già il supporto necessario, che può essere configurato manualmente.
VirtualBox offre una funzionalità chiamata "Webcam Passthrough", che consente a un sistema guest di accedere e utilizzare la webcam del computer host. Questa funzionalità integra il supporto USB passthrough generale, che era il metodo principale per accedere alle webcam nelle versioni precedenti di VirtualBox.
Indice dei contenuti:
La funzione di Webcam Passthrough in VirtualBox può teoricamente gestire anche sorgenti video non USB. Tuttavia, questa funzionalità non è ancora completamente testata e i risultati possono variare in base all'hardware e alla configurazione del sistema host. Le informazioni sono basate sulla documentazione ufficiale di Oracle.
Per abilitare impostazioni aggiuntive in VirtualBox, è necessario installare il VirtualBox Extension Pack.
Visualizzazione attuale delle estensioni nel VirtualBox Manager.
Nota bene: I moduli per il Webcam Passthrough sono inclusi nel VirtualBox Extension Pack, ma devono essere installati separatamente.
Le webcam del sistema host possono essere collegate alla macchina virtuale tramite: Barra dei menu della VM > Menu Dispositivi. Nel menu Webcam troverai l'elenco dei dispositivi video disponibili sull'host. Facendo clic sul nome della webcam, questa verrà collegata o scollegata.
Per attivare il Webcam Passthrough, utilizza lo strumento da riga di comando VBoxManage. Consulta le sezioni specifiche per ogni sistema operativo indicate più avanti.
Ecco alcuni comandi disponibili:
Elenco delle webcam e dispositivi video dell'host:
$ VBoxManage list webcams
Formato di output:
Alias= "Nome amichevole"
Percorso o identificatore dell'host
Un alias viene utilizzato per semplificare l'inserimento di altri comandi.
‘.0’ rappresenta il dispositivo video predefinito, ‘.1’ e ‘.2’ indicano il primo, il secondo, e così via.
L'ordine dei dispositivi è unico per ogni macchina host.
Esegui il comando seguente:
VBoxManage controlvm "Nome_VM" webcam attach [percorso_host|alias [impostazioni]]
La webcam USB verrà così collegata alla macchina virtuale guest.
Le impostazioni vengono passate come stringhe di testo: "Impostazione1=Valore1", "Impostazione2=Valore2", ecc. Questi parametri permettono di configurare il comportamento della webcam emulata.
Impostazioni supportate:
MaxFramerate: Frequenza massima di fotogrammi che può essere inviata alla macchina guest. Frequenze elevate richiedono più risorse CPU; limitare il framerate può migliorare le prestazioni.
Predefinito: "nessun limite", permettendo al guest di utilizzare qualsiasi frequenza supportata dalla webcam dell'host.
MaxPayloadTransferSize: Quantità massima di byte che la webcam emulata può trasferire in un singolo invio alla macchina guest. Predefinito: 3060 byte.
Se la VM supporta buffer di dimensioni maggiori, aumentare questo valore può ridurre leggermente il carico della CPU. Tuttavia, dipende dal supporto del sistema operativo guest.
VBoxManage controlvm "Nome_VM" webcam detach [percorso_host|alias]
Per elencare le webcam collegate a una VM attiva:
VBoxManage controlvm "Nome_VM" webcam list
Per ogni webcam collegata, l'output mostrerà l'alias o il percorso utilizzato durante il comando webcam attach.
VirtualBox Webcam Passthrough: Host Windows
I dispositivi webcam emulati si disconnettono automaticamente dalla macchina guest quando la webcam viene scollegata dall'host.
VirtualBox Webcam Passthrough: Host Mac OS X
Solo le versioni di Mac OS X 10.9 o successive sono compatibili con il Webcam Passthrough di VirtualBox.
Su Mac OS, i dispositivi emulati restano collegati alla macchina guest anche dopo che la webcam viene scollegata dall'host. Gli utenti devono scollegarla manualmente eseguendo: VBoxManage controlvm "Nome_VM" webcam detach.
VirtualBox Webcam Passthrough: Host Linux e Oracle Solaris
Su Linux e Solaris, l'emulazione della webcam si disconnette automaticamente solo se la webcam stava trasmettendo video.
Se la webcam emulata non era attiva, sarà necessario disconnetterla manualmente eseguendo: VBoxManage controlvm "Nome_VM" webcam detach.
Mappatura degli alias:
‘.0’ e ‘.1’ sono associati a /dev/video0
‘.2’ è associato a /dev/video1