KVM passthrough: wheezy als Gast zeigt keine USB-Devices an

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
egerlach
Beiträge: 206
Registriert: 13.06.2009 17:21:50

KVM passthrough: wheezy als Gast zeigt keine USB-Devices an

Beitrag von egerlach » 11.01.2014 20:13:56

@ es scheint ein Problem mit der kvm-qemu von ubuntu 12.04 zu sein, weil gleicher Fehler bei ubuntu 13.10 oder Scientific Linux als Gast.

Hallo,
habe erstmals ein Linux-Gast (wheezy) unter meinem Xubuntu-Host.
Ich habe ein USB-Gerät, ein framegrabber, der ab Kernel 3.6 funktionieren könnte, daher soll es an wheezy (upgrade auf Kernel 3.10) durchgereicht werden. Habe das im virt-manager unter Ansicht -> Details -> Hardware hinzufügen auch gemacht:

Code: Alles auswählen

root@levoXubu:~# cat /etc/libvirt/qemu/wheezy32.xml  | grep 2040 -5
      <model type='cirrus' vram='9216' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x2040'/>
        <product id='0xc200'/>
      </source>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
Es wurde also korrekt vom Manager eingetragen eingetragen. Aber es wird weder unter dmesg noch lsusb das Gerät angezeigt. Habe zur Sicherheit noch ein

Code: Alles auswählen

root@levoXubu:~# virsh define /etc/libvirt/qemu/wheezy32.xml  
Domain wheezy32 von /etc/libvirt/qemu/wheezy32.xml definiert
gemacht. Dann ein reboot. Hilft nicht. Mit WinXP als Gast habe ich schonmal so erfolgreich ein USB-Gerät durchgereicht. Auch managed='no' hilft nicht, dann startet wheezy auch mit nicht eingestecktem USB-Gerät und beanstandet nicht wenn es nicht eingesteckt ist.

Da der Host schon das USB-Gerät erkennt und die Module cx231xx , cx2341x läd, habe ich die mal blacklistet, Dann reboot des PC, USB-Gerät eingesteckt, mein ubuntu zeigt in dmesg KEIN Laden mehr der Module an, sondern nur, dass das Gerät mit 0x2040, .... eingesteckt wurde, so muss es sein, richtig? Also ist das USB-Gerät nicht blockiert steht dem Durchreichen (passthrough) an wheezy nichts mehr entgegen, oder? Aber wheezy zeigt unter dmesg gar nichts an, auch nicht unter lsusb. Der Virt-manager zeigt unter "details" an, dass das Gerät 0x2040,.... durchgereicht ist.

Das gleiche mit einem anderen USB-Gerät, einer Web-Kamera, die ich mal zum Testen angesteckt und auch druchgereicht (passthrough) habe.

Habe im laufenden Betrieb auch schon mal das USB-Gerät herausgezogen und wieder eingesteckt. Hilft nicht.

Wer weiss weiter? kvm 1.0.xxxx (Xubuntu 12.04)
Gruss
Eckard

Benutzeravatar
matman
Beiträge: 744
Registriert: 03.07.2008 10:50:07
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Hamburg
Kontaktdaten:

Re: KVM passthrough: wheezy als Gast zeigt keine USB-Devices

Beitrag von matman » 16.04.2014 22:22:53

Das könnte auch am Virtmanager liegen. Wer weiß schon, wie dort die Daten weiter verarbeitet werden. Ich habe letztens auch ein USB-Gerät an einen WinXP-Gast durchreichen wollen. Und zwar einen USB-Switch zuzüglich den am Switch angeschlossenen Drucker. Der Switch war schnell und einfach im Gast funktionsfähig. Aber das Hinzuschalten vom Drucker wollte einfach nicht. Und es gibt mehrere KVM-Startoptionen, um USB-Geräte durchzureichen, von denen einige noch experimentell sind. Ich habe verschiedenes ausprobiert, aber nur das hier funktionierte:

Code: Alles auswählen

-usb -usbdevice host:vendorID1:deviceID1 -usbdevice host:vendorID2:deviceID2
System: Bullseye
Hardware: Gigabyte 970A-DS3P mit AMD FX-6300, Kingston HyperX DDR3-1333 (4x4GB), Samsung SSD 860 EVO, HGST Travelstar 7K1000, Samsung DVD-ROM SH-D162D, Geforce GTX 1050, SoundBlaster Live! Platinum, Hauppauge WinTV-HVR-5525

whiizy
Beiträge: 674
Registriert: 23.07.2011 22:09:37

Re: KVM passthrough: wheezy als Gast zeigt keine USB-Devices

Beitrag von whiizy » 17.04.2014 00:55:29

Nur als Anregung: Ich musste mal die Soundkarte an meinen kvm-guest durchreichen und benötigte dazu diese Optionen an der command-line:

Code: Alles auswählen

# kvm [...] -device usb-ehci -device usb-host,vendorid=0x0ccd,productid=0x00d3 -soundhw hda [...]
Der Knackpunkt war 'ehci'. Vielleicht führt das ja ein Stück weiter.
[P.S. EDIT: der ehci-host war nötig für passthrough eines USB DVB-T-Sticks, und nicht einer Soundkarte, sorry vertan.]

Gruß

Benutzeravatar
CountDracula
Beiträge: 86
Registriert: 14.01.2011 00:53:59
Wohnort: Transylvania

Re: KVM passthrough: wheezy als Gast zeigt keine USB-Devices

Beitrag von CountDracula » 04.10.2016 00:04:15

whiizy hat geschrieben:Der Knackpunkt war 'ehci'. Vielleicht führt das ja ein Stück weiter.
[P.S. EDIT: der ehci-host war nötig für passthrough eines USB DVB-T-Sticks, und nicht einer Soundkarte, sorry vertan.]
Ich versuche auch gerade einen DVB-T USB-Stick weiterzureichen. Wie kann ich sicherstellen, dass EHCI genutzt wird? Ich habe einige Fehlermeldungen in der virtuellen Maschine und vielleicht liegt es ja an UHCI?

Code: Alles auswählen

usb 1-3: dvb_usb_v2: usb_bulk_msg() failed=-32
usb 1-3: failed=-32
si2157: probe of 1-0060 failed with error -32
Ich verwalte die virtuelle Maschine mit Debianvirt-manager und kann dort nicht zwischen UHCI und EHCI wählen. Hier gibt es einen Ansatz die XML manuell zu editieren: https://access.redhat.com/solutions/479683

Meine Konfiguration: NoPaste-Eintrag39528

EDIT: Ich habe den USB-Stick umgesteckt und dann die virtuelle Maschine gestartet. (Vorher natürlich noch den USB redirect angepasst.) Jetzt läuft es ohne Fehler. Aber würde mich trotzdem noch interessieren, wie ich in der virtuellen Maschine die Übertragungsgeschwindigkeit vom DVB-T USB Stick feststellen kann :)
I am Dracula. I bid you welcome.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: KVM passthrough: wheezy als Gast zeigt keine USB-Devices

Beitrag von rendegast » 04.10.2016 23:09:09

Das ist das Schlimme am virt-manager/libvirt,
dieses festgelegte, normierte Schema.

Ein CDRW:
Bus 001 Device 002: ID 152e:e001 LG (HLDS) GSA-5120D DVD-RW
Auf der Commandline als "human-readable" Option

Code: Alles auswählen

-usb -usbdevice host:1.*
Das Sternchen kommt von Experimenten mit einem wlan-Stick,
dessen usb-Adresse bei Ab-/Anstecken immer weiter hochzählte.

Ausgewählt im manager ergibt es im xml

Code: Alles auswählen

    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x152e'/>
        <product id='0xe001'/>
      </source>
    </hostdev>
um dann in der qemu-Commandlinu zu werden:

Code: Alles auswählen

 -device usb-host,hostbus=1,hostaddr=2,id=hostdev0
Voraussetzend dafür muß dann wohl das entsprechende Gerät beim Start der VM eingesteckt sein.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten