[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Xen Kernel PCI Passthrough per module



Am 16.08.2012 18:31, schrieb Markus Rhonheimer:
> Hallo,
Hallo,
> 
> Ich möchte gerne einige Pcie Karten mittels pciback.hide an eine domU 
> durchreichen. Im standard Debian Wheezy Kernel ist der Treiber dafür aber nur 
> als modul integriert.
Welche Distri und welchen Kernel setzt Du ein?

> Ein paar infos hab ich schon gefunden und damit xen_pciback zur /etc/modules 
> hinzugefügt, aber jetzt weiß ich leider nicht, wie ich weiter vorgehen muss.
Du musst die Karten per pciback.hide usw. beim booten deaktivieren:

pci=resource_alignment=03:00.0 xen-pciback.hide=(03:00.0)

Ob das dann geklappt hat kann man erkennen mit

xm pci-list-assignable-devices

Wenn Du die Karte schon da nicht siehst, dann ist die Konfig noch nicht vollständig.

Schau mal hier, ob Du was passenden findest:
http://wiki.debian.org/Xen
http://wiki.xensource.com/xenwiki/XenPCIpassthrough
http://wlug.org.nz/XenPciPassthrough

Seit kurzem bekomme ich einige Karten nur noch in die DomU wenn ich deren
module vorher blackliste. Das ist ziemlich ärgerlich, aber es geht bei
mir, da ich zwei unterschiedliche Chips auf meinen SCSI-Karten einsetze.
Nunja, aber das ist ein andere Thema.

Ich setzte den Backports Kernel 3.2.0 ein. Dort sind die Grubeinstellungen
bei mehreren Karten (man verzeih mir die lange Zeile, mir fällt gerade
die Webseite nicht ein wo man das Ersatzweise veröffentlichen kann ;-)
in einer Datei /etc/grub.d/19_custum eingetragen.

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry 'Debian GNU/Linux, with Linux 3.2.0-0.bpo.2-amd64 and XEN 4.0-amd64 pciback' --class debian --class gnu-linux --class gnu --class os --class xen {
        insmod raid
        insmod mdraid
        insmod part_msdos
        insmod part_msdos
        insmod part_msdos
        insmod part_msdos
        insmod ext2
        insmod xen-pcifront
        insmod xen-netback
        insmod xen-netfront
        insmod xen-evtchn
        insmod xen-pciback
        insmod xen-gntalloc
        insmod xen-gntdev
        insmod xenfs
        insmod xen-blkback
        insmod xen-blkfront
        set root='(md/bootmd)'
        search --no-floppy --fs-uuid --set d812954e-5ff3-413b-8525-35676c574a4b
        echo    'Loading Linux 3.2.0-0.bpo.2-amd64 ...'
        multiboot       /xen-4.0-amd64.gz placeholder iommu=1 iommu=debug iommu_inclusive_mapping=1 amd-iommu-debug
        module  /vmlinuz-3.2.0-0.bpo.2-amd64 placeholder root=/dev/mapper/xenrootdg-rootvol ro earlyprintk=xen xen-pciback.permissive xen-pciback.hide=(1:4.0)(0:8.0)(0:9.0)(82:4.0)(82:4.1) pci=resource_alignment='1:04.0;0:08.0;0:09.0;82:4.0;82:4.1'
        echo    'Loading initial ramdisk ...'
        module  /initrd.img-3.2.0-0.bpo.2-amd64
}


Mit update-grub bringt man die dann in die grub.cfg

Damit die insmod funtionieren musst Du wahrscheinlich noch update-initrd -u -k all ausführen
damit eine funktionierende initrd mit allen Modulen erzeugt wird.

Wenn Du noch 2.6.32 einsetzt, dann ist alles einfacher:

menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-xen-amd64 and XEN 4.0-amd64 pciback' --class debian --class gnu-linux --class gnu --class os --class xen {
        insmod raid
        insmod mdraid
        insmod part_msdos
        insmod part_msdos
        insmod ext2
        set root='(md/bootmd)'
        search --no-floppy --fs-uuid --set d812954e-5ff3-413b-8525-35676c574a4b
        echo    'Loading Linux 2.6.32-5-xen-amd64 ...'
        multiboot       /xen-4.0-amd64.gz placeholder iommu=1 iommu=debug iommu_inclusive_mapping=1 amd-iommu-debug
        module  /vmlinuz-2.6.32-5-xen-amd64 placeholder root=/dev/mapper/xenrootdg-rootvol ro xen-pciback.permissive xen-pciback.hide=(01:04.0)(00:08.0)(00:09.0)(81:0.0) pci=resource_alignment='01:04.0;00:08.0;00:09.0;82:4.0;82:4.1'
        echo    'Loading initial ramdisk ...'
        module  /initrd.img-2.6.32-5-xen-amd64
}

Dort musste ich keine Module blacklisten.

MfG...
Pierre

PS: Sorry für das durcheinander. Bin etwas in Eile.


Reply to: