質問: qemu usbパススルー(windowsゲスト) usb adc/dacとhaspで保護された専用のデータ収集システムを持っていますが、どちらもlinuxでは機能しません。私はそれをqemuを使用してwindows仮想マシンで動作させようとしています。ここにデバイスがあります:$ lsusb ... bus 003 device 011: id 0529:0001 aladdin knowledge systems hasp copy protection dongle bus 003 device 010: id 16b2:1001 $ ls -l /dev/bus/usb/003 ... crw-rw-r-- 1 root qemu 189, 265 дек 22 18:29 010 crw-rw-rw- 1 root qemu 189, 266 дек 22 18:29 011 私のユーザーはqemuグループのメンバーです。 qemuコマンドライン:qemu-system-x86_64 \ -enable-kvm \ -m 2g \ -device usb-ehci,id=usb,bus=pci.0,addr=0x4 \ --device usb-host,vendorid=0x16b2,productid=0x1001 \ # adc/dac -device piix3-usb-uhci,id=usb1,bus=pci.0,addr=0x5 \ --device usb-host,vendorid=0x0529,productid=0x0001 \ # hasp -usbdevice tablet \ -net nic \ -net bridge,br=br0 \ -vga qxl \ -spice port=5930,disable-ticketing \ -device virtio-serial-pci \ -device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0 \ -chardev spicevmc,id=spicechannel0,name=vdagent \ -drive file=/mnt/data/win-patch.img,if=virtio 問題は、両方のデバイスがゲストに表示されているが、機能しないことです。 adc/dacはusbブロックドライブとして識別し、デバイスリストに1つとして表示されますが、機能しません。ゲストシステムにドングル用のhaspドライバをインストールしましたが、dasソフトウェアがそれを認識しません。何が悪いのですか?
回答: 私は最終的に他のフォーラムで助けを得ました。問題は、デフォルトでqemuによってエミュレートされるi440fxチップセットのusbバスの実装にあるようです(詳細 ここ )。回避策は、代わりにich9チップセットをエミュレートすることです。これは、-m q35パラメータを追加することによって行われます。 usbデバイスの指定方法も変更しました。最終的なコマンドラインは次のようになります。qemu-system-x86_64 \ -enable-kvm \ -m q35 \ -m 2g \ -usb -usbdevice host:16b2:1001 \ -usb -usbdevice host:0529:0001 \ -usbdevice tablet \ -net nic \ -net bridge,br=br0 \ -vga qxl \ -spice port=5930,disable-ticketing \ -device virtio-serial-pci \ -device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0 \ -chardev spicevmc,id=spicechannel0,name=vdagent \ -drive file=/mnt/data/win-patch.img,if=virtio すべてが今完璧に動作します。2019年の更新:usb-deviceオプションは廃止されました。同様に、これを-usb -deviceに置き換えて、製品とベンダーidを16進数で指定することで同様に実現できます。qemu-system-x86_64 \ -enable-kvm \ -m q35 \ -m 2g \ -usb -device usb-host:productid=0x16b2,vendorid=0x1001 \ -usb -device usb-host:productid=0x0529,vendorid=0x0001 \ -usbdevice tablet \ -net nic \ -net bridge,br=br0 \ -vga qxl \ -spice port=5930,disable-ticketing \ -device virtio-serial-pci \ -device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0 \ -chardev spicevmc,id=spicechannel0,name=vdagent \ -drive file=/mnt/data/win-patch.img,if=virtio 参照: https://git.qemu.org/?p=qemu.git;a=blob_plain;f=docs/usb2.txt;hb=head