Host OSに接続されたUSBをGuest OSに接続する方法

Host OSに接続されたUSBをGuest OSに接続する方法を記載する

・Host OS:Ubuntu 20.04

・Guest OS:Ubuntu 20.04

KVMでGuest OSを管理

Host OSで、USBが接続されていることを確認する

$ vim /var/log/dmesg
…
[    4.342098] kernel: usb 1-4: New USB device found, idVendor=03f0, idProduct=2927, bcdDevice= 0.01
[    4.353623] kernel: usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    4.364975] kernel: usb 1-4: Product: Virtual NIC
[    4.376346] kernel: usb 1-4: Manufacturer: HPE
…

$ lsusb
Bus 001 Device 002: ID 03f0:2927 HP, Inc Virtual NIC

今回、Bus 001 Device 002: ID 03f0:2927 HP, Inc Virtual NICをGuest OSに接続する。

vendor id:03f0、prduct id:2927になり、後で必要になるためメモする。


Guest OSの設定ファイル:XMLをダンプする。

$ virsh list
 Id   Name       State
--------------------------
 1    test-a    running

$ virsh dumpxml test-a  >test.xml


Guest OSにUSBを追加する。USBを追加するためのXMLファイルを作成する。 前述のvendor id、 prduct idを追記する

$ vim device.xml
<hostdev mode='subsystem' type='usb'>
  <source startupPolicy='optional'>
   <vendor id='0x03f0'/>
   <product id='0x2927'/>
  </source>
</hostdev>

ライブ状態でXMLを反映する。

$ virsh attach-device  sses-s1 --file device.xml --live
Device attached successfully

Guest OSでデバイスが接続されたことを確認

$vim /var/log/dmesg
…
[    4.342098] kernel: usb 1-4: New USB device found, idVendor=03f0, idProduct=2927, bcdDevice= 0.01
[    4.353623] kernel: usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    4.364975] kernel: usb 1-4: Product: Virtual NIC
[    4.376346] kernel: usb 1-4: Manufacturer: HPE

$ lsusb
Bus 001 Device 002: ID 03f0:2927 Hewlett-Packard


最後に、Host OSでUSBをデタッチ、取り外しする

$ virsh detach-device  test-a --file device.xml --live