Qemu USBパススルー(Windowsゲスト)


15

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ブロックドライブとして識別され、デバイスリストに表示されますが、機能しません。ゲストシステムにドングル用のHASPドライバーをインストールしましたが、DASソフトウェアはそれを認識しません。何が間違っていますか? Windowsゲストのスクリーンショット

回答:


21

私はついに他のフォーラムで助けを得ました。この問題は、デフォルトで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に16進数で製品IDとベンダーIDを置き換えて指定することで実現できます。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.