kazeno memo

メモとか

virt-manager(libvirt)でUSBホストデバイスを追加できない

virt-managerでUSBホストデバイスを追加しようとしたらこんなエラーが出た。

デバイスの追加時にエラーが発生しました:
internal error: vendor cannot be 0.

要はベンダーIDを0にするなってことだと思うけど、デバイスはちゃんと選択しているはず。

XML」タブを覗いてみるとvendor idproduct idが0になっていた(なぜ🤔)

<hostdev mode="subsystem" type="usb" managed="yes">
  <source>
    <vendor id="0x0000"/>
    <product id="0x0000"/>
  </source>
</hostdev>

ということで、lsusbvendor idproduct idを調べて直接XMLを編集してやれば良い。

$ lsusb | grep -i sandisk

Bus 001 Device 002: ID 0781:1234 SanDisk Corp.

この場合vendor idが0781、product idが1234なのでXMLはこんな感じ

<hostdev mode="subsystem" type="usb" managed="yes">
  <source>
    <vendor id="0x0781"/>
    <product id="0x1234"/>
  </source>
</hostdev>

これで問題なくUSBデバイスを追加できる。

調べてみたらlibvirtのバグとのこと。 Cannot add my mouse in QEMU/KVM: "Vendor ID Cannot Be 0" : VFIO