USB-Passthrough für QEMU erhält die Fehlermeldung "qemu: USB-Gerät konnte nicht hinzugefügt werden"


2

Wenn Sie versuchen, Arch Linux mit einem USB-Passthrough unter Verwendung von qemu auf meinem MacBook Pro Retina 2015 auszuführen, führen Sie osx Yosemite 10.10 mit dem folgenden Befehl aus:

sudo qemu-system-i386 -cpu core2duo -cdrom archlinux-2015.11.01-dual.iso -boot order = d -m 1G -usbdevice host: 0x13fe: 0x5500

Ich bekomme immer den Fehler:

qemu: USB-Gerät 'Host: 0x13fe: 0x5500' konnte nicht hinzugefügt werden

In den Systeminformationen hat das USB-Gerät die Herstellerkennung "0x13fe" und die Produktkennung "0x5500".

Ich erhalte die gleiche Hersteller- und Produkt-ID mithilfe des Codeblocks (in Bash).

`system_profiler SPUSBDataType     | awk '
      /Product ID:/{p=$3}
      /Vendor ID:/{v=$3}
      /Manufacturer:/{sub(/.*: /,""); m=$0}
      /Location ID:/{sub(/.*: /,""); printf("%s:%s %s (%s)\n", v, p, $0, m);}
    '
`

In der qemu- Dokumentation heißt es, dass die korrekte Form für die Weitergabe über USB lautet

host: vendor_id: product_id

Also glaube ich, dass ich es richtig mache.

Ich lasse Qemu 2.4.0.1 laufen

Mache ich hier etwas falsch?

Antworten:


6

Ich bin mir nicht sicher, warum diese Fehlermeldung -usbdeviceangezeigt wird, aber Sie möchten sie sowieso kaum verwenden , da ein Gerät nur im "Full-Speed" -Modus (12 MB) angeschlossen werden kann, auch wenn es sich um einen "High-Speed" -Modus handelt. (480M) Gerät auf der Hostseite:

Bildbeschreibung hier eingeben

Möglicherweise funktioniert es überhaupt nicht, wenn Sie ein "superspeed" (5000M) -Gerät anschließen (xHCI auf der Hostseite aktiviert):

Bildbeschreibung hier eingeben

Stattdessen möchten Sie einen moderneren und allgemeineren -device usb-hostAnsatz mit einem emulierten Host-Controller Ihrer Wahl (z. B. -device nec-usb-xhci):

Bildbeschreibung hier eingeben

Es sollte auch für "high-speed" (480M) Geräte funktionieren:

Bildbeschreibung hier eingeben

sowie "Full-Speed" (12M) Geräte:

Bildbeschreibung hier eingeben

Mögliche Auswahlmöglichkeiten des emulierten Host-Controllers sind:

[tom@localhost ~]$ qemu-system-x86_64 -device help |& grep usb.*hci
name "ich9-usb-ehci1", bus PCI
name "ich9-usb-ehci2", bus PCI
name "ich9-usb-uhci1", bus PCI
name "ich9-usb-uhci2", bus PCI
name "ich9-usb-uhci3", bus PCI
name "ich9-usb-uhci4", bus PCI
name "ich9-usb-uhci5", bus PCI
name "ich9-usb-uhci6", bus PCI
name "nec-usb-xhci", bus PCI
name "piix3-usb-uhci", bus PCI
name "piix4-usb-uhci", bus PCI
name "usb-ehci", bus PCI
name "vt82c686b-usb-uhci", bus PCI

[tom@localhost ~]$ qemu-system-x86_64 -device help |& grep ohci
name "pci-ohci", bus PCI, desc "Apple USB Controller"
name "sysbus-ohci", bus System, desc "OHCI USB Controller"

nec-usb-xhci sollte in den meisten Fällen am besten und gut funktionieren.

Übrigens gibt es auch andere Möglichkeiten als vendorid+, productidum anzugeben, mit welchem ​​Gerät Sie eine Verbindung herstellen möchten -device usb-host. Zum Beispiel hostbus+ hostaddr:

Bildbeschreibung hier eingeben

Oder, hostbus+ hostport:

Bildbeschreibung hier eingeben

Was praktisch ist, wenn sich mehrere Geräte desselben Modells im System befinden.

Ref .: http://git.qemu.org/?p=qemu.git;a=blob_plain;f=docs/usb2.txt;hb=HEAD



0

Ich hatte das gleiche Problem auf meinem Laptop. Sie können -hdb /dev/sdbanstelle der -usb -usbdevice ...folgenden verwenden:

sudo qemu-system-i386 ubuntu16.img --enable-kvm -monitor stdio -m 2048 -hdb /dev/sdb -vga cirrus -vnc :0

Können Sie dieser Antwort einen weiteren Kontext hinzufügen? Zum Beispiel ein Link zu einer Referenzseite oder ein vollständiges Verwendungsbeispiel.
Burgi
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.