Qemu USB geçidi (windows konuk)


15

Her ikisi de Linux'ta çalışmayan bir USB ADC / DAC ve HASP korumalı özel veri toplama sistemim var. Qemu kullanarak Windows sanal makinede çalışmasını sağlamaya çalışıyorum. İşte cihazlar:

$ 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

Benim kullanıcı qemu grubunun bir üyesi. Qemu komut satırı:

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

Sorun şu ki, her iki cihaz da misafir olarak gösteriliyor, ancak çalışmıyor. ADC / DAC bir USB blok sürücü olarak tanımlanmalıdır ve cihaz listesinde bir sürücü olarak gösterilmektedir, ancak çalışmaz. Konuk sistemimdeki dongle'ım için HASP sürücülerini yükledim, ancak DAS yazılımı bunu tanımıyor. Neyi yanlış yapıyorum? Windows konuk ekran görüntüsü

Yanıtlar:


21

Sonunda diğer forumda yardım aldım. Sorun, varsayılan olarak qemu tarafından öykülenen I440FX yonga setindeki USB veri yolu uygulamasında ortaya çıkıyor (ayrıntılar burada ). Çözüm, bunun yerine ICH9 yongasetini taklit etmektir. Bu -M q35parametre eklenerek yapılır . Ayrıca USB aygıtlarının belirtilme şeklini değiştirdim ve son komut satırı şöyle görünüyor:

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

Şimdi her şey mükemmel çalışıyor.


2019 için güncelleme: usb-deviceseçenek kullanımdan kaldırıldı; aynısını -usb -deviceonaltılık sayılarla değiştirerek ve aynı şekilde ürün ve satıcı kimliğini belirterek de elde edebilirsiniz :

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

başvuru: https://git.qemu.org/?p=qemu.git;a=blob_plain;f=docs/usb2.txt;hb=HEAD

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.