User Tools

Site Tools


doc:appunti:linux:sa:qemu_usb_passthrough

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
doc:appunti:linux:sa:qemu_usb_passthrough [2022/11/03 11:26] – [Aggiungere la periferica successivamente] niccolodoc:appunti:linux:sa:qemu_usb_passthrough [2022/11/03 11:34] – [QEMU USB device passthrough] niccolo
Line 3: Line 3:
 Come passare completamente la gestione di una periferica USB da un sistema virtualizzante (host) **QEMU** (GNU/Linux con KVM) ad un sistema virtualizzato (guest) **Windows 10**. Procedura sperimentata su Debian GNU/Linux 11 Bullseye. Come passare completamente la gestione di una periferica USB da un sistema virtualizzante (host) **QEMU** (GNU/Linux con KVM) ad un sistema virtualizzato (guest) **Windows 10**. Procedura sperimentata su Debian GNU/Linux 11 Bullseye.
  
-Quando si avvia l'emulatore **qemu-system-x86_64** si deve specificare quale periferica USB verrà gestita all'emulatore stesso. È possibile identificare la periferica in tre modi diversi:+Il programma emulatore **qemu-system-x86_64** deve sapere quale periferica USB deve essere collegata alla macchina guest. È possibile identificare la periferica in tre modi diversi:
  
   * Identificazione con **vendorid** e **productid**. Ogni periferica USB ha un identificativo produttore/prodotto che dovrebbe essere univoco. Il sistema operativo GNU/Linux mostra tali codici con il comando **lsusb**.   * Identificazione con **vendorid** e **productid**. Ogni periferica USB ha un identificativo produttore/prodotto che dovrebbe essere univoco. Il sistema operativo GNU/Linux mostra tali codici con il comando **lsusb**.
Line 38: Line 38:
   * **Bus 01** - Il bus USB è sempre il numero **1**.   * **Bus 01** - Il bus USB è sempre il numero **1**.
   * **Port 1.1** - La porta ha un identificativo gerarchico con il punto utilzzato come separatore: abbiamo l'hub numero **1** seguito dal numero della porta **1**.   * **Port 1.1** - La porta ha un identificativo gerarchico con il punto utilzzato come separatore: abbiamo l'hub numero **1** seguito dal numero della porta **1**.
 +
 +==== Assegnare i permessi ====
 +
 +È possibile eseguire il programma qemu-system-x86_64 da utente non privilegiato, ma l'emulatore dovrà avere pieno accesso alla periferica USB di cui si desidera il passthrough a Windows. Dopo aver identificato **hostbus** e **hostaddr** assegnati dal kernel alla periferica, l'utente root potrà assegnare i permessi necessari. Ad esempio con:
 +
 +<code>
 +chmod 0666 /dev/bus/usb/001/026
 +</code>
  
 ==== Aggiungere la periferica all'avvio di QEMU ==== ==== Aggiungere la periferica all'avvio di QEMU ====
Line 79: Line 87:
  
 **ATTENZIONE**! Se QEMU non ha identificato correttamente il tipo della periferica (//USB Storage// in questo caso), è possibile che manchino i permessi di lettura/scrittura sulla periferica stessa. **ATTENZIONE**! Se QEMU non ha identificato correttamente il tipo della periferica (//USB Storage// in questo caso), è possibile che manchino i permessi di lettura/scrittura sulla periferica stessa.
 +
 +A questo punto la periferica può essere aggiunta con un comando del tipo:
 +
 +<code>
 +(qemu) device_add usb-host,vendorid=0x05e3,productid=0x0723
 +</code>
 +
 +Immediatamente il **Gestione dispositivi** di Windows dovrebbe riconoscere la nuova periferica.
  
 ===== Web References ===== ===== Web References =====
doc/appunti/linux/sa/qemu_usb_passthrough.txt · Last modified: 2022/11/03 11:49 by niccolo