Qemu USB passthrough (विंडोज़ अतिथि)


15

मेरे पास USB ADC / DAC और इसके लिए एक HSP संरक्षित मालिकाना डेटा अधिग्रहण प्रणाली है, जो दोनों ही लिनक्स में काम नहीं करते हैं। मैं qemu का उपयोग करके विंडोज वर्चुअल मशीन में काम करने की कोशिश कर रहा हूं। यहाँ उपकरण हैं:

$ 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 ब्लॉक ड्राइव के रूप में पहचाना जाना चाहिए, और डिवाइस सूची में एक के रूप में दिखा रहा है, लेकिन काम नहीं करता है। मैंने अतिथि प्रणाली पर अपने डोंगल के लिए एचएसपी ड्राइवर स्थापित किए हैं, लेकिन डीएएस सॉफ्टवेयर इसे नहीं पहचानता है। मैं क्या गलत कर रहा हूं? विंडोज गेस्ट स्क्रीनशॉट

जवाबों:


21

मुझे आखिरकार दूसरे मंच पर मदद मिली। समस्या I440FX चिपसेट में USB बस कार्यान्वयन के साथ प्रतीत होती है जो कि qemu द्वारा डिफ़ॉल्ट रूप से ( यहां विवरण ) द्वारा अनुकरण किया गया है । समाधान इसके बजाय 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हेक्साडेसिमल संख्या में उत्पाद और विक्रेता आईडी के साथ प्रतिस्थापित करके उसी को प्राप्त कर सकते हैं , इसी तरह:

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.