# XEN 3.3: USB ==> domU ??

## SilentWarrior

Hi,

ich versuche nun schon seit einigen Tagen meinen USB-Controller in die domU zu bekommen. Habe hierzu auch schon viel rumgegoogelt, aber leider hat bisher nichts wirklich funktioniert.

Was habe ich bereits getan:

In der dom0 habe ich mit lspci festgestellt, welche Adresse die USB-Controller haben:

 *Quote:*   

> server ~ # lspci
> 
> 00:00.0 Host bridge: nVidia Corporation Device 07c3 (rev a2)
> 
> 00:00.1 RAM memory: nVidia Corporation Device 07cb (rev a2)
> ...

 

Danach habe ich in der grub.conf die Bootoption wie folgt geändert (pciback.hide):

 *Quote:*   

> title Gentoo XEN 64
> 
> root (hd0,0)
> 
> kernel /boot/x86_64/xen.gz dom0_mem=98M
> ...

 

Neu gebootet und danach habe ich mit lsusb keine Geräte mehr gesehen, pciback.hide scheint also funktioniert zu haben.

In der domU config habe ich dann

pci = [ '04.1' ];

hinzugefügt.

Wenn ich aber nun lspci oder lsusb in der domU ausführe, bekomme ich in beiden Fällen kein Resultat.

In dem Kernel-Log ist mir folgendes aufgefallen:

 *Quote:*   

> Jan  6 10:18:02 netservices [    0.249706] PCI: Fatal: No config space access function found
> 
> Jan  6 10:18:02 netservices [    0.249709] PCI: setting up Xen PCI frontend stub
> 
> Jan  6 10:18:02 netservices [    0.250235] khelper used greatest stack depth: 7228 bytes left
> ...

 

Leider weiss ich nicht, ob diese PCI-Fehlermeldungen normal sind, oder ob ich hier noch ein anderes Problem habe.

Hoffe es weiss jemand Rat.

Danke.

----------

## bbgermany

Brauchst du den ganzen USB Controller oder nur ein Device in deiner DomU?

Für den ganzen Controller musst du folgende Optionen für deinen Dom0 Kernel gesetzt haben:

```

XEN  --->

<*>   PCI-device backend driver

PCI Backend Mode (Virtual PCI)  --->

```

Bei PCI Backend Mode solltest du dann auswählen wie das PCI Device durchgereicht werden soll.

Deine Grubkonfiguration sollte dann so in etwa aussehen:

```

title  Xen 3.3.0 Kernel 2.6.21

root (hd0,1)

kernel /boot/xen.gz

module /boot/xen-dom0-2.6.21 root=/dev/sda2 pciback.hide=(00:0d.0)

```

Für die DomU musst du dann in die Konfigurationsdatei folgendes eintragen (Beispiel):

```

pci = [ '00:0d.0' ]

```

Wenn du nur ein USB Gerät durchreichen möchtest recht folgendes in deiner Konfigurationsdatei:

```

usb=1

usbdevice="host:xxxx:yyyy"

```

xxxx:yyyy bekommst du über lsusb raus. Z.B. so:

```

Bus 007 Device 001: ID 0000:0000

Bus 005 Device 003: ID 0b97:7772 O2 Micro, Inc.

Bus 005 Device 002: ID 0b97:7761 O2 Micro, Inc.

Bus 005 Device 001: ID 0000:0000

Bus 004 Device 009: ID 062a:0000 Creative Labs

Bus 004 Device 008: ID 413c:2002 Dell Computer Corp. SK-8125 Keyboard

Bus 004 Device 007: ID 413c:1002 Dell Computer Corp. Keyboard Hub

Bus 004 Device 001: ID 0000:0000

Bus 003 Device 001: ID 0000:0000

Bus 006 Device 001: ID 0000:0000

Bus 002 Device 001: ID 0000:0000

Bus 001 Device 001: ID 0000:0000

```

Wenn du also das Creative Labs Gerät haben möchtest, dann muss die Zeile in deiner Konfigurationsdatei so aussehen:

```

usb=1

usbdevice="host:062a:0000

```

MfG. Stefan

----------

## SilentWarrior

```
XEN  --->

<*>   PCI-device backend driver

PCI Backend Mode (Virtual PCI)  --->
```

Da habe ich PCI passthrough eingestellt.

Eigentlich benötige ich nur ein USB-Device in der domU, aber leider hat dies ebenso wenig funktioniert, wie den kompletten Controller zu übernehmen.

Werde es nachher nochmals probieren...

----------

## SilentWarrior

Habe die ganze Sache nochmals durchprobiert, aber leider funktioniert weder das eine noch das andere.

Noch ne Idee ?

----------

## bbgermany

Ich werde das morgen mal ausprobieren an meinem Xen Testsystem. Mal schaun wo das Problem liegen kann.

MfG. Stefan

----------

## SilentWarrior

Hi,

habe jetzt mal probiert, den ersten USB-Controller (04.0) einzubinden, da erhalte ich nun folgende Fehlermeldung:

```
[    1.290620] ohci_hcd 0000:00:04.0: enabling device (0000 -> 0002)

[    1.290973] ohci_hcd 0000:00:04.0: OHCI Host Controller

[    1.291073] ohci_hcd 0000:00:04.0: new USB bus registered, assigned bus number 1

[    1.291111] ------------[ cut here ]------------

[    1.291114] kernel BUG at drivers/xen/core/evtchn.c:808!

[    1.291116] invalid opcode: 0000 [#1] SMP

[    1.291120] Modules linked in:

[    1.291122]

[    1.291124] Pid: 1, comm: swapper Not tainted (2.6.27-xen-r2-xen-domU #3)

[    1.291127] EIP: 0061:[<c0380ebb>] EFLAGS: 00010096 CPU: 0

[    1.291133] EIP is at evtchn_get_xen_pirq+0x19/0x2a

[    1.291135] EAX: ffffffff EBX: c05ece00 ECX: c05db7e0 EDX: 00000000

[    1.291138] ESI: 00000014 EDI: 00000000 EBP: c7825db4 ESP: c7825db4

[    1.291140]  DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: e021

[    1.291143] Process swapper (pid: 1, ti=c7824000 task=c7820000 task.ti=c7824000)

[    1.291146] Stack: c7825de8 c0380eef 39303139 00205d39 c7825de4 c7a46460 c7825e4c 0000000a

[    1.291155]        c7825e20 c0336954 c05ece00 00000014 00000014 c7825e10 c024d957 c05ece30

[    1.291164]        00000000 00000000 c05ece14 c7a05440 c7a05440 00000014 c03d2f42 c7825e28

[    1.291173] Call Trace:

[    1.291175]  [<c0380eef>] ? startup_pirq+0x23/0x10b

[    1.291181]  [<c0336954>] ? vsnprintf+0x3ea/0x425

[    1.291186]  [<c024d957>] ? setup_irq+0x10b/0x1ad

[    1.291191]  [<c03d2f42>] ? usb_hcd_irq+0x0/0x8f

[    1.291196]  [<c024db4c>] ? request_irq+0x84/0x9c

[    1.291200]  [<c03d32d3>] ? usb_add_hcd+0x1a1/0x363

[    1.291205]  [<c03dbb0a>] ? usb_hcd_pci_probe+0x23e/0x2b9

[    1.291209]  [<c0342303>] ? pci_call_probe+0xd/0x10

[    1.291214]  [<c0342337>] ? __pci_device_probe+0x31/0x43

[    1.291219]  [<c034236a>] ? pci_device_probe+0x21/0x34

[    1.291223]  [<c0360ad8>] ? really_probe+0x74/0xf2

[    1.291228]  [<c0360ba0>] ? driver_probe_device+0x37/0x40

[    1.291233]  [<c0360c52>] ? __driver_attach+0x3a/0x59

[    1.291237]  [<c035ffa6>] ? bus_for_each_dev+0x35/0x5a

[    1.291241]  [<c0332ec6>] ? kobject_init_and_add+0x20/0x22

[    1.291247]  [<c0360c85>] ? driver_attach+0x14/0x16

[    1.291251]  [<c0360c18>] ? __driver_attach+0x0/0x59

[    1.291255]  [<c0360503>] ? bus_add_driver+0x93/0x143

[    1.291259]  [<c0361043>] ? driver_register+0x69/0x8d

[    1.291264]  [<c034254e>] ? __pci_register_driver+0x3f/0x60

[    1.291268]  [<c061ed37>] ? ohci_hcd_mod_init+0x6a/0x97

[    1.291274]  [<c020203d>] ? _stext+0x3d/0x132

[    1.291278]  [<c061eccd>] ? ohci_hcd_mod_init+0x0/0x97

[    1.291282]  [<c02ab815>] 
```

und die domU bricht den Startvorgang ab...

----------

## bbgermany

Ja, dass Problem konnte ich nachstellen. Leider ist beim Durchreichen des gesamten PCI Controllers die Maschine abgestürtzt.

Ich muss das nochmal analysieren. Vielleicht finde ich dann noch eine Lösung.

MfG. Stefan

----------

## SilentWarrior

Dann bin ich ja ein bisschen beruhigt, dass nicht etwas an meiner Installation verkorkst ist...

Was mir noch dazu einfällt, ist dass bei mir der erste USB-Controller (04.0) den IRQ mit der Grafikkarte shared, weshalb ich auch nur den zweiten USB-Controller (04.1) einbinden wollte.

----------

