virt-managerでUSBホストデバイスを追加しようとしたらこんなエラーが出た。
デバイスの追加時にエラーが発生しました: internal error: vendor cannot be 0.
要はベンダーIDを0にするなってことだと思うけど、デバイスはちゃんと選択しているはず。
「XML」タブを覗いてみるとvendor id
とproduct id
が0になっていた(なぜ🤔)
<hostdev mode="subsystem" type="usb" managed="yes"> <source> <vendor id="0x0000"/> <product id="0x0000"/> </source> </hostdev>
ということで、lsusb
でvendor id
とproduct 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