[gelöst]i915 entladen und laden (XEN VGA passthrough) Wheezy
[gelöst]i915 entladen und laden (XEN VGA passthrough) Wheezy
Hi,
um bei Xen meine Grafikkarte an den Gast durchzureichen (Intel HD4000), habe ich das Gerät von der Dom0 getrennt und dann an Xen weitergereicht. Das hat seit Monaten funktioniert, hat aber nach einem Kernel-Update (Wheezy 3.2.0-4-amd64) vor ca einer Woche leider den Dienst quittiert.
Ich trenne die PCI Graka wie folgt:
echo -n 0000:00:02.0 > /sys/bus/pci/devices/0000:00:02.0/driver/unbind
Das klappt auch, danach wird diese an pciback übergeben, kann aber von Xen nicht verwendet werden. Xen scheint aber nicht das grundsätzliche Problem zu sein ...
Selbst ein sofortiges zurück-zuweisen an die Dom0 geht nicht mehr:
echo -n 0000:00:02.0 > /sys/bus/pci/devices/0000:00:02.0/driver/unbind
echo "0000:00:02.0" > /sys/bus/pci/drivers/i915/bind
Vor dem Kernel Update hat das unbind dafür gesorgt dass der Bildschirm schwarz wurde und nach dem Bind habe ich meine Shell wieder gesehen. Nach dem Kernelupdate geht das "bind" nicht mehr, ich sehe hier nur noch eine Art Schachbrettmuster auf dem Bildschirm ...
Ich vermute einmal, dass die GPU irgendwie nicht richtig zurückgesetzt wird ...
Auf gut Glück habe ich mal folgendes probiert:
echo 1 > /sys/bus/pci/devices/0000:02:00.0/reset
Klappt aber nicht ...
Kennt jemand einen Trick, wie man eine GPU zurücksetzen kann bzw wie ich unter Xen einen VGA Passthrough mit meiner Hardware wieder ans laufen bekomme?
Danke für jede Hilfe!
um bei Xen meine Grafikkarte an den Gast durchzureichen (Intel HD4000), habe ich das Gerät von der Dom0 getrennt und dann an Xen weitergereicht. Das hat seit Monaten funktioniert, hat aber nach einem Kernel-Update (Wheezy 3.2.0-4-amd64) vor ca einer Woche leider den Dienst quittiert.
Ich trenne die PCI Graka wie folgt:
echo -n 0000:00:02.0 > /sys/bus/pci/devices/0000:00:02.0/driver/unbind
Das klappt auch, danach wird diese an pciback übergeben, kann aber von Xen nicht verwendet werden. Xen scheint aber nicht das grundsätzliche Problem zu sein ...
Selbst ein sofortiges zurück-zuweisen an die Dom0 geht nicht mehr:
echo -n 0000:00:02.0 > /sys/bus/pci/devices/0000:00:02.0/driver/unbind
echo "0000:00:02.0" > /sys/bus/pci/drivers/i915/bind
Vor dem Kernel Update hat das unbind dafür gesorgt dass der Bildschirm schwarz wurde und nach dem Bind habe ich meine Shell wieder gesehen. Nach dem Kernelupdate geht das "bind" nicht mehr, ich sehe hier nur noch eine Art Schachbrettmuster auf dem Bildschirm ...
Ich vermute einmal, dass die GPU irgendwie nicht richtig zurückgesetzt wird ...
Auf gut Glück habe ich mal folgendes probiert:
echo 1 > /sys/bus/pci/devices/0000:02:00.0/reset
Klappt aber nicht ...
Kennt jemand einen Trick, wie man eine GPU zurücksetzen kann bzw wie ich unter Xen einen VGA Passthrough mit meiner Hardware wieder ans laufen bekomme?
Danke für jede Hilfe!
Zuletzt geändert von xeni am 03.05.2013 12:51:43, insgesamt 1-mal geändert.
Re: i915 entladen und laden (XEN VGA passthrough) Wheezy
Servus
Ich habe dies so gelöst, allerdings mit Netzwerkkarte und USB Hub
mit lspci das Gerät für die Übergabe an eine DomU raussuchen
mit lspci -v den treiber für die Blacklist
danach die /etc/modules mit den beiden Modulen die benötigt werden bearbeiten:
Anschliessend die /etc/modprobe.d/modprobe.conf mit pciback erweitern
und die Treiber aus LSPCI -V in die Blackliste eintrtagen
Danach sieht man mit xm list und pci-list die zugeordete Adresse (USB Hub)
Gugus
Ich habe dies so gelöst, allerdings mit Netzwerkkarte und USB Hub
mit lspci das Gerät für die Übergabe an eine DomU raussuchen
Code: Alles auswählen
03:00.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100 (rev 08)
00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04)
Code: Alles auswählen
Kernel driver in use: e100
Kernel driver in use: xhci_hcd
Code: Alles auswählen
~# cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.
Loop
xen_pciback
pci_stub
Code: Alles auswählen
~# cat /etc/modprobe.d/modprobe.conf
options xen-pciback hide=(03:00.0)(00:14.0)
Code: Alles auswählen
~# cat /etc/modprobe.d/blacklist.conf
blacklist e100
blacklist xhci_hcd
Die Nertzwerkkarte verfügbar für eine DomU:xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 23807 8 r----- 3633.7
pluto 1 8192 2 -b---- 1128.0
xm pci-list pluto
Device
0000:00:14.0
Grussxm pci-list-assignable-devices
0000:03:00.0
Gugus
Re: i915 entladen und laden (XEN VGA passthrough) Wheezy
Hallo Gugus,
genau so habe ich das im Prinzip auch gemacht.
zeigt mir an, dass ich die devices einer domu zuordnen kann ..
Starte ich diese aber, kommt seit neustem:
Und im xend.log steht:
Neben der Graka weise ich noch USB und Sound zu, beides wird ohne Probleme durchgereicht ...
Nur die HD4000 scheint er irgendwie nicht mehr durchgereicht zu bekommen ...
genau so habe ich das im Prinzip auch gemacht.
Code: Alles auswählen
~# xm pci-list-assignable-devices
0000:00:02.0
0000:00:1b.0
0000:00:1d.0
Starte ich diese aber, kommt seit neustem:
Code: Alles auswählen
# xm create lubuntu.cfg
Using config file "/etc/xen/lubuntu.cfg".
Error: (22, 'Invalid argument')
Code: Alles auswählen
[2013-05-01 11:10:29 4897] DEBUG (pciif:320) pci: enabling ioport 0xf000/0x40
[2013-05-01 11:10:29 4897] DEBUG (pciif:334) pci: enabling iomem 0xf7800000/0x400000 pfn 0xf7800/0x400
[2013-05-01 11:10:29 4897] DEBUG (pciif:334) pci: enabling iomem 0xe0000000/0x10000000 pfn 0xe0000/0x10000
[2013-05-01 11:10:29 4897] DEBUG (pciif:351) pci: enabling irq 16
[2013-05-01 11:10:29 4897] INFO (pciquirk:92) NO quirks found for PCI device [8086:1e26:1849:1e26]
[2013-05-01 11:10:29 4897] DEBUG (pciquirk:135) Permissive mode NOT enabled for PCI device [8086:1e26:1849:1e26]
[2013-05-01 11:10:29 4897] DEBUG (pciif:334) pci: enabling iomem 0xf7c07000/0x400 pfn 0xf7c07/0x1
[2013-05-01 11:10:29 4897] DEBUG (pciif:351) pci: enabling irq 23
[2013-05-01 11:10:29 4897] ERROR (XendDomainInfo:2927) XendDomainInfo.initDomain: exception occurred
Traceback (most recent call last):
File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendDomainInfo.py", line 2914, in _initDomain
self._createDevices()
File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendDomainInfo.py", line 2395, in _createDevices
self.pci_device_configure_boot()
File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendDomainInfo.py", line 627, in pci_device_configure_boot
self.pci_device_configure(dev_sxp, first_dev = first)
File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendDomainInfo.py", line 970, in pci_device_configure
devid = self._createDevice('pci', existing_pci_conf)
File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendDomainInfo.py", line 2326, in _createDevice
return self.getDeviceController(deviceClass).createDevice(devConfig)
File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/server/DevController.py", line 67, in createDevice
self.setupDevice(config)
File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/server/pciif.py", line 453, in setupDevice
self.setupOneDevice(d)
File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/server/pciif.py", line 353, in setupOneDevice
allow_access = True)
Error: (22, 'Invalid argument')
[2013-05-01 11:10:29 4897] ERROR (XendDomainInfo:488) VM start failed
Traceback (most recent call last):
File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendDomainInfo.py", line 474, in start
XendTask.log_progress(31, 60, self._initDomain)
File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendTask.py", line 209, in log_progress
retval = func(*args, **kwds)
File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendDomainInfo.py", line 2930, in _initDomain
raise VmError(str(exn))
VmError: (22, 'Invalid argument')
[2013-05-01 11:10:29 4897] DEBUG (XendDomainInfo:3071) XendDomainInfo.destroy: domid=3
[2013-05-01 11:10:29 4897] DEBUG (XendDomainInfo:2401) Destroying device model
[2013-05-01 11:10:30 4897] INFO (image:615) lubuntu device model terminated
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:2408) Releasing devices
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:2414) Removing vif/0
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:1276) XendDomainInfo.destroyDevice: deviceClass = vif, device = vif/0
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:2414) Removing vbd/768
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:1276) XendDomainInfo.destroyDevice: deviceClass = vbd, device = vbd/768
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:2414) Removing vbd/5632
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:1276) XendDomainInfo.destroyDevice: deviceClass = vbd, device = vbd/5632
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:2406) No device model
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:2408) Releasing devices
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:2414) Removing vif/0
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:1276) XendDomainInfo.destroyDevice: deviceClass = vif, device = vif/0
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:2414) Removing vbd/768
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:1276) XendDomainInfo.destroyDevice: deviceClass = vbd, device = vbd/768
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:2414) Removing vbd/5632
[2013-05-01 11:10:30 4897] DEBUG (XendDomainInfo:1276) XendDomainInfo.destroyDevice: deviceClass = vbd, device = vbd/5632
[2013-05-01 11:10:30 4897] ERROR (XendDomainInfo:108) Domain construction failed
Traceback (most recent call last):
File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendDomainInfo.py", line 106, in create
vm.start()
File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendDomainInfo.py", line 474, in start
XendTask.log_progress(31, 60, self._initDomain)
File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendTask.py", line 209, in log_progress
retval = func(*args, **kwds)
File "/usr/lib/xen-4.1/bin/../lib/python/xen/xend/XendDomainInfo.py", line 2930, in _initDomain
raise VmError(str(exn))
VmError: (22, 'Invalid argument')
Nur die HD4000 scheint er irgendwie nicht mehr durchgereicht zu bekommen ...
- habakug
- Moderator
- Beiträge: 4314
- Registriert: 23.10.2004 13:08:41
- Lizenz eigener Beiträge: MIT Lizenz
Re: i915 entladen und laden (XEN VGA passthrough) Wheezy
Hallo!
Hier ein aktueller Hinweis [1].
Vor dem Fehler ist da ein
Gruß, habakug
[1] http://www.novell.com/support/kb/doc.php?id=7012337
Hier ein aktueller Hinweis [1].
Beim booten ist der ParameterIssues identified with certain INTEL processor chipsets required iommu to be disabled by default in order for PCI PassThrough to work with PV Guests
zu übergeben.iommu=no-intremap
Vor dem Fehler ist da ein
Code: Alles auswählen
DEBUG (pciif:351) pci: enabling irq 23
Gruß, habakug
[1] http://www.novell.com/support/kb/doc.php?id=7012337
Re: i915 entladen und laden (XEN VGA passthrough) Wheezy
Hallo,
danke für den Hinweis, aber iommu=no-intremap war es leider auch nicht ...
Ich habe noch ein bisschen getestet und es scheint wohl doch nicht an der Grafikkarte zu liegen ... habe diese mal rausgenommen und mit VNC gestartet aber nur noch meinen USB Hub durchgereicht ... führt zum gleichen Fehler ...
danke für den Hinweis, aber iommu=no-intremap war es leider auch nicht ...
Ich habe noch ein bisschen getestet und es scheint wohl doch nicht an der Grafikkarte zu liegen ... habe diese mal rausgenommen und mit VNC gestartet aber nur noch meinen USB Hub durchgereicht ... führt zum gleichen Fehler ...
Re: i915 entladen und laden (XEN VGA passthrough) Wheezy
@habakug
Da steht aber auch
Schade dass da nicht ein Hinweis auf die betroffenen "certain Processors" ist.
@xeni
Wie sieht es denn mit der cfg aus
gruss
gugus
Da steht aber auch
Es sind demnach nur HVM betroffen.No change is needed if PCI devices are only passed through to PV guests.
Schade dass da nicht ein Hinweis auf die betroffenen "certain Processors" ist.
@xeni
Wie sieht es denn mit der cfg aus
Code: Alles auswählen
kernel = '/boot/vmlinuz-3.2.0-4-amd64'
ramdisk = '/boot/initrd.img-3.2.0-4-amd64'
vcpus = '2'
memory = '8192'
#
# Disk device(s).
#
root = '/dev/xvda2 ro'
disk = [
'file:/srv/domains/pluto/disk.img,xvda2,w',
'file:/srv/domains/pluto/swap.img,xvda1,w',
'phy:/dev/disk/by-uuid/005c1625-dc21-4546-a78e-68e01010b39d,xvdb1,w',
]
#
# USB pass through
#
usb = 1
usbdevice = 'host:1307:0165'
pci = [ '00:14.0' ]
#
# Hostname
#
name = 'pluto'
#
# Networking
#
vif = [ 'ip=192.168.1.90 ,mac=00:16:3E:7F:53:25,bridge=xenbr0' ]
#
# Behaviour
#
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
gugus
Re: i915 entladen und laden (XEN VGA passthrough) Wheezy
Hi,
ich habe HVM .. soweit ich weiß, geht das durchreichen von Grakas auch nur so, jedenfalls war das vor ein paar Monaten nich so
Config sieht so aus:
Ich habe auch schon mal die ganzen zusätzlichen optionen pci_* und xen_platform_pci auskommentiert, leider keine Änderung ...
ich habe HVM .. soweit ich weiß, geht das durchreichen von Grakas auch nur so, jedenfalls war das vor ein paar Monaten nich so
Config sieht so aus:
Code: Alles auswählen
kernel = "/usr/lib/xen-4.1/boot/hvmloader"
builder = "hvm"
name = "lubuntu"
memory = "4096"
vcpus = 4
vif=[ 'bridge=xenbr0,model=e1000,mac=00:11:3e:11:11:11' ]
disk = ['file:/vm/lubuntu/lubuntu-lts.img,ioemu:hda,w']
gfx_passthru=1
pci=['00:02.0','00:1d.0','00:1b.0']
pci_power_mgmt=1
pci_msitranslate=0
acpi=1
apic=1
xen_extended_power_mgmt=0
viridian=1
xen_platform_pci=1
monitor=1
shadow_memory=8
on_poweroff = 'destroy'
on_reboot = 'destroy'
on_crash = 'destroy'
Re: i915 entladen und laden (XEN VGA passthrough) Wheezy
Hi,
scheint wohl ein Bug im Xen-hypervisor zu sein ...
http://xen.crc.id.au/bugs/view.php?id=5
http://lists.xen.org/archives/html/xen- ... 00036.html
Ich kann nur jeden empfehlen, das hypervisor Paket nicht upzugraden, der PCI passthrough benutzt
Bei mir leider das neuste: xen-hypervisor-4.1-amd64 4.1.4-3
scheint wohl ein Bug im Xen-hypervisor zu sein ...
http://xen.crc.id.au/bugs/view.php?id=5
http://lists.xen.org/archives/html/xen- ... 00036.html
Ich kann nur jeden empfehlen, das hypervisor Paket nicht upzugraden, der PCI passthrough benutzt
Bei mir leider das neuste: xen-hypervisor-4.1-amd64 4.1.4-3
[gelöst] i915 entladen und laden (XEN VGA passthrough) Wheez
Falls jemand das gleiche Problem hat:
Die Zeilen
---
in /usr/lib/xen-4.1/lib/python/xen/xend/server/pciif.py vorläufig auskommentieren, ist ein bug un den xen-utils.
Die Zeilen
Code: Alles auswählen
rc = xc.domain_irq_permission(domid = fe_domid, pirq = dev.irq, allow_access = True)
if rc<0:
raise VmError(('pci: failed to configure irq on device '+'%s - errno=%d')%(dev.name,rc))
in /usr/lib/xen-4.1/lib/python/xen/xend/server/pciif.py vorläufig auskommentieren, ist ein bug un den xen-utils.