KVM und pci Passtrought

Hast Du Probleme mit Hardware, die durch die anderen Foren nicht abgedeckt werden? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
ole4
Beiträge: 5
Registriert: 21.10.2005 20:20:09
Kontaktdaten:

KVM und pci Passtrought

Beitrag von ole4 » 08.04.2015 11:34:13

Hallo,
ich versuch eine vorhandene VM wieder zum laufen zu bringen.

Bei
virt-install --name tvhead --ram 4096 --os-variant debianwheezy --graphics vnc,keymap=de --cdrom=debian-7.7.0-amd64-netinst.iso --disk tvhead.img --nonetworks --host-device=pci_0000_05_00_0 --host-device=pci_0000_0b_00_0

kommt diese Fehlermeldung:
Starting install...
ERROR internal error: process exited while connecting to monitor: 2015-04-08T09:27:02.446123Z qemu-system-x86_64: -device vfio-pci,host=05:00.0,id=hostdev0,bus=pci.0,addr=0x5: vfio: error, group 7 is not viable, please ensure all devices within the iommu_group are bound to their vfio bus driver.
2015-04-08T09:27:02.446152Z qemu-system-x86_64: -device vfio-pci,host=05:00.0,id=hostdev0,bus=pci.0,addr=0x5: vfio: failed to get group 7
2015-04-08T09:27:02.446168Z qemu-system-x86_64: -device vfio-pci,host=05:00.0,id=hostdev0,bus=pci.0,addr=0x5: Device initialization failed.
2015-04-08T09:27:02.446183Z qemu-system-x86_64: -device vfio-pci,host=05:00.0,id=hostdev0,bus=pci.0,addr=0x5: Device 'vfio-pci' could not be initialized

Es sind eine Onboard Netzwerkkarte und eine TV-Karte.
Module wurden in /etc/modprobe/blacklist.conf eingetragen.

Es ist ein Gigabyte Board Gaming 7 mit Xeon Prozessor.
Wie bekomme ich es zum laufen?
Ole4

Das hier hat nicht funktioniert:
https://pve.proxmox.com/wiki/Pci_passthrough

Benutzeravatar
habakug
Moderator
Beiträge: 4313
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: KVM und pci Passtrought

Beitrag von habakug » 08.04.2015 12:07:44

Hallo!

In dem Wiki wird mit "allow_unsafe_interrupts=1" und "pcie_acs_override=downstream" die Holzhammermethode beschrieben, die einige Sicherheitsrisiken birgt.
Es geht im Prinzip darum, alle Geräte in einer "iommu_group" an die virtuelle Maschine zuzuweisen. Weist man z.B. eine Grafikkarte zu, muß man auch das nachgegliederte Audiodevice, meist HDMI-Audio, zuweisen.
So etwa sieht das hier aus:

Code: Alles auswählen

$ find /sys/kernel/iommu_groups/ -type l
/sys/kernel/iommu_groups/0/devices/0000:00:00.0
/sys/kernel/iommu_groups/1/devices/0000:00:02.0
/sys/kernel/iommu_groups/2/devices/0000:00:04.0
/sys/kernel/iommu_groups/3/devices/0000:00:09.0
/sys/kernel/iommu_groups/4/devices/0000:00:11.0
/sys/kernel/iommu_groups/5/devices/0000:00:12.0
/sys/kernel/iommu_groups/5/devices/0000:00:12.2
/sys/kernel/iommu_groups/6/devices/0000:00:13.0
/sys/kernel/iommu_groups/6/devices/0000:00:13.2
/sys/kernel/iommu_groups/7/devices/0000:00:14.0
/sys/kernel/iommu_groups/8/devices/0000:00:14.2
/sys/kernel/iommu_groups/9/devices/0000:00:14.3
/sys/kernel/iommu_groups/10/devices/0000:00:14.4
/sys/kernel/iommu_groups/11/devices/0000:00:14.5
/sys/kernel/iommu_groups/12/devices/0000:00:15.0
/sys/kernel/iommu_groups/13/devices/0000:00:16.0
/sys/kernel/iommu_groups/13/devices/0000:00:16.2
/sys/kernel/iommu_groups/14/devices/0000:01:00.0
/sys/kernel/iommu_groups/14/devices/0000:01:00.1
/sys/kernel/iommu_groups/15/devices/0000:02:00.0
/sys/kernel/iommu_groups/16/devices/0000:03:00.0
$ lspci
[...]
01:00.0 VGA compatible controller: NVIDIA Corporation GF108 [GeForce GT 440] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GF108 High Definition Audio Controller (rev a1)
[...]
$ ls /sys/bus/pci/devices/0000\:01\:00.0/iommu_group/devices/
0000:01:00.0  0000:01:00.1
Du mußt also auch das "0000:01:00.1" zuweisen, wenn du "0000:01:00.0" verwendest. Auch andere Geräte, wie z.B. Cardreader usw. sind so zu behandeln.

Gruss, habakug
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

ole4
Beiträge: 5
Registriert: 21.10.2005 20:20:09
Kontaktdaten:

Re: KVM und pci Passtrought

Beitrag von ole4 » 08.04.2015 12:21:55

Hallo,
Danke für die Antwort.
bei mir sieht es so aus.
/sys/kernel/iommu_groups/0/devices/0000:00:00.0
/sys/kernel/iommu_groups/1/devices/0000:00:01.0
/sys/kernel/iommu_groups/1/devices/0000:00:01.1
/sys/kernel/iommu_groups/1/devices/0000:00:01.2
/sys/kernel/iommu_groups/1/devices/0000:01:00.0
/sys/kernel/iommu_groups/1/devices/0000:02:00.0
/sys/kernel/iommu_groups/1/devices/0000:02:00.1
/sys/kernel/iommu_groups/1/devices/0000:03:00.0
/sys/kernel/iommu_groups/1/devices/0000:03:00.1
/sys/kernel/iommu_groups/2/devices/0000:00:02.0
/sys/kernel/iommu_groups/3/devices/0000:00:03.0
/sys/kernel/iommu_groups/4/devices/0000:00:14.0
/sys/kernel/iommu_groups/5/devices/0000:00:16.0
/sys/kernel/iommu_groups/6/devices/0000:00:1a.0
/sys/kernel/iommu_groups/7/devices/0000:00:1c.0
/sys/kernel/iommu_groups/7/devices/0000:00:1c.2
/sys/kernel/iommu_groups/7/devices/0000:00:1c.3
/sys/kernel/iommu_groups/7/devices/0000:00:1c.4
/sys/kernel/iommu_groups/7/devices/0000:00:1c.5
/sys/kernel/iommu_groups/7/devices/0000:00:1c.6
/sys/kernel/iommu_groups/7/devices/0000:00:1c.7
/sys/kernel/iommu_groups/7/devices/0000:05:00.0
/sys/kernel/iommu_groups/7/devices/0000:06:00.0
/sys/kernel/iommu_groups/7/devices/0000:09:00.0
/sys/kernel/iommu_groups/7/devices/0000:0a:00.0
/sys/kernel/iommu_groups/7/devices/0000:0b:00.0
/sys/kernel/iommu_groups/8/devices/0000:00:1d.0
/sys/kernel/iommu_groups/9/devices/0000:00:1f.0
/sys/kernel/iommu_groups/9/devices/0000:00:1f.2
/sys/kernel/iommu_groups/9/devices/0000:00:1f.3

ls /sys/bus/pci/devices/0000\:01\:00.0/iommu_group/devices/
0000:00:01.0 0000:00:01.1 0000:00:01.2 0000:01:00.0 0000:02:00.0 0000:02:00.1 0000:03:00.0 0000:03:00.1

Sieht doch so aus das die beiden Karten ohne Anhang sind?!

Ole4

Benutzeravatar
habakug
Moderator
Beiträge: 4313
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: KVM und pci Passtrought

Beitrag von habakug » 08.04.2015 12:51:36

Hallo!

Ich sehe gerade, das du an einem Xeon sitzt. Dieser Prozessor hat da seine eigenen Probleme [1]:
It is recommended to avoid device direct assignment to Virtual Machines in virtualized
environments with this processor due to the lack of Access Control Services (ACS)
support in PCI-Express root ports. Some Operating Systems may check for ACS support
and potentially disable direct device assignment (that is, affects SR-IOV setup/
configuration within the server) as well
Die Holzhammermethoden (ACS Override) sind also tatsächlich zum Scheitern verurteilt.
Bitte verwende für deine Postings Code-Tags, siehe meine Postings. Ausgaben, die länger als 30 Zeilen sind kommen nach NoPaste.
Du solltest nochmal ganz klar sagen, welches Gerät du verwenden möchtest und die Ausgabe von

Code: Alles auswählen

# lspci -nvv
posten.
Vielleicht kannst du das Gerät umstecken und die Aufnahme in eine andere Gruppe provozieren.

Gruss, habakug

[1] https://www-ssl.intel.com/content/dam/w ... update.pdf
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

ole4
Beiträge: 5
Registriert: 21.10.2005 20:20:09
Kontaktdaten:

Re: KVM und pci Passtrought

Beitrag von ole4 » 08.04.2015 13:09:51

Hallo,

Code: Alles auswählen

	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [70] MSI: Enable- Count=1/2 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Capabilities: [90] Express (v2) Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s, Exit Latency L0s unlimited, L1 <1us
			ClockPM- Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Range A, TimeoutDis+, LTR-, OBFF Not Supported
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
		LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
			 EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
	Capabilities: [100 v1] Vendor Specific Information: ID=0000 Rev=0 Len=00c <?>

root@dreem:/home/ole/computer# 
mehr passt nicht ins Fenster. :(

Es ist eine Onboard Netzwerkkarte und eine Tv Karte von DD Device.
Das ganze lief schon einmal mit den Einstellungen unter Ubuntu Server 12.04.
Weil ich Netzwerkprobleme hatte habe ich neu installiert, und dann kamen die
Fehlermeldungen.
Jetzt ist Debian Jessie installiert (wollte schon lange wechseln). Ohne graphische Oberfläche.

Ole4

ole4
Beiträge: 5
Registriert: 21.10.2005 20:20:09
Kontaktdaten:

Re: KVM und pci Passtrought

Beitrag von ole4 » 08.04.2015 19:41:26

Hallo,
da hat sich ja viel getan mit KVM.
Was ist OVMF? iommu Gruppen?
Alles Neuland!!!

http://www.vdr-portal.de/board60-linux/ ... f0a18f5e84

Ob das bei mir auch Hilft?

Morgen oder Übermorgen werde ich mich mal durchbeissen.
Über Hilfe bin ich immer noch froh.

Ole4

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: KVM und pci Passtrought

Beitrag von NAB » 08.04.2015 21:06:04

ole4 hat geschrieben: please ensure all devices within the iommu_group are bound to their vfio bus driver.
[...]
Module wurden in /etc/modprobe/blacklist.conf eingetragen.
Das reicht eventuell nicht. Bist du sicher, dass die durchzureichenden Karten auch wirklich nicht von einem anderen Treiber verwendet werden?
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

ole4
Beiträge: 5
Registriert: 21.10.2005 20:20:09
Kontaktdaten:

Re: KVM und pci Passtrought

Beitrag von ole4 » 09.04.2015 08:35:28

Hallo,

bei lspci -vv sind keine Module für die Karten geladen.

Ole4

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: KVM und pci Passtrought

Beitrag von NAB » 09.04.2015 17:55:20

Und das gilt für alle Geräte der Gruppe 7?

Denn wenn du dann mal guckst ... die Gruppe 7, über die er sich beschwert, hat erstaunlich viele Mitglieder:
ole4 hat geschrieben:/sys/kernel/iommu_groups/7/devices/0000:00:1c.0
/sys/kernel/iommu_groups/7/devices/0000:00:1c.2
/sys/kernel/iommu_groups/7/devices/0000:00:1c.3
/sys/kernel/iommu_groups/7/devices/0000:00:1c.4
/sys/kernel/iommu_groups/7/devices/0000:00:1c.5
/sys/kernel/iommu_groups/7/devices/0000:00:1c.6
/sys/kernel/iommu_groups/7/devices/0000:00:1c.7
/sys/kernel/iommu_groups/7/devices/0000:05:00.0
/sys/kernel/iommu_groups/7/devices/0000:06:00.0
/sys/kernel/iommu_groups/7/devices/0000:09:00.0
/sys/kernel/iommu_groups/7/devices/0000:0a:00.0
/sys/kernel/iommu_groups/7/devices/0000:0b:00.0
Die müssen eigentlich in einem Block durchgereicht werden ... oder gar nicht. Ich hab nun keine Ahnung, was das alles ist ... aber wie habakug schon sagte, durch Umstecken der Karten erreichst du vielleicht eine etwas günstigere Gruppenverteilung.

OVMF hilft nur beim Durchreichen von Grafikkarten, und darum geht es auch in dem vdr-portal-Link. Das ist bei dir ja nicht der Fall.

Und de IOMMU-Gruppen dürften es sein, die hier das Problem verursachen.
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

clue
Beiträge: 943
Registriert: 08.07.2007 17:36:57

Re: KVM und pci Passtrought

Beitrag von clue » 30.05.2016 00:07:36

Sorry dass ich jetzt den alten thread wieder aufwärme. Aber ich sitze vor einem ähnlichen Problem. Ich möchte gerne unter Debian win7 zum Zocken benutzen. Ich habe mich an folgendes WiKi gehalten:
https://wiki.debian.org/VGAPassthrough

egrep -q '^flags.*(svm|vmx)' /proc/cpuinfo && echo virtualization extensions available sagt:
  • virtualization extensions available

Ich hoffe dass das auch so stimmt.

lspci -vnn sagt:
http://nopaste.debianforum.de/39335

Ich möchte meine R9 M290X ([Radeon HD 8970M] [1002:6801]) an win7 durchreichen.

Dafür habe ich folgenden Befehl benutzt:

Code: Alles auswählen

  export QEMU_AUDIO_DRV=alsa QEMU_AUDIO_TIMER_PERIOD=0
    qemu-system-x86_64 \
        -enable-kvm -M q35 -m 4G -cpu host -smp 4,sockets=1,cores=4,threads=1 \
        -bios /usr/share/seabios/bios.bin -vga none \
        -device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
        -device piix4-ide,bus=pcie.0,id=piix4-ide \
        -device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on, \
        -device vfio-pci,host=01:00.1,bus=pcie.0 \
        -soundhw ac97 \
        -drive file=/data/vm/win7.img,id=disk,format=raw -device ide-hd,bus=piix4-ide.0,drive=disk \
        -drive file=/data/vm/win7x64.iso,id=isocd -device ide-cd,bus=piix4-ide.1,drive=isocd \
    ;

Als Reaktion kommt folgende Meldung:
  • qemu-system-x86_64: -device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on,: vfio: error no iommu_group for device
    qemu-system-x86_64: -device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on,: Device initialization failed.
    qemu-system-x86_64: -device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on,: Device 'vfio-pci' could not be initialized
Ich habe (abweichend vom WiKi) kein ROM für meine GraKa angegeben, außerdem die Pfade zum win7x64.iso und den Pfad zur VM geändert. AUßERDEM musste ich noch den pfad für das bios ändern auf SEAbios (ist wohl ein Bug im Qemu-Paket, jedenfalls gibts dort im Verzeichnis kein /usr/share/qemu/bios.bin).

Ist meine Befehlzeile überhaupt korrekt?
Offenbarung 13 erfüllt sich gerade vor unseren Augen, genießen wir also die letzten Jahre unserer Scheinfreiheit

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: KVM und pci Passtrought

Beitrag von NAB » 30.05.2016 00:42:34

clue hat geschrieben:egrep -q '^flags.*(svm|vmx)' /proc/cpuinfo && echo virtualization extensions available sagt:
  • virtualization extensions available
Das besagt nur, dass "AMD-V" vorhanden ist. Du brauchst aber zusätzlich "AMD-Vi", um die IOMMU nutzen zu können.
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

clue
Beiträge: 943
Registriert: 08.07.2007 17:36:57

Re: KVM und pci Passtrought

Beitrag von clue » 30.05.2016 21:33:15

Aha! Ich habe einen A10-5750M. Der gehört laut http://www.notebookcheck.net/AMD-A-Seri ... 882.0.html zur Richland-Architektur. Aber wie finde ich nun heraus, ob mein Prozessor und mainboard AMD-Vi können? Ich find im Netz irgendwie nichts darüber.

lsmod | grep kvm sagt jedenfalls, dass das KVM Modul geladen ist:
  • kvm_amd 59128 0
    kvm 388784 1 kvm_amd
Heißt das nun, mein mainboard unterstützt iommu ebenfalls?
Offenbarung 13 erfüllt sich gerade vor unseren Augen, genießen wir also die letzten Jahre unserer Scheinfreiheit

NAB
Beiträge: 5501
Registriert: 06.03.2011 16:02:23
Lizenz eigener Beiträge: MIT Lizenz

Re: KVM und pci Passtrought

Beitrag von NAB » 30.05.2016 21:49:24

clue hat geschrieben:Aber wie finde ich nun heraus, ob mein Prozessor und mainboard AMD-Vi können?
Tja ... das ist gemeiner Weise das große Geheimnis. Mit AMD kenne ich mich nicht sonderlich gut aus. Was sagt denn

Code: Alles auswählen

dmesg | grep AMD-Vi
?
Und eventuell muss man es im BIOS erst einschalten.
Never change a broken system. It could be worse afterwards.

"No computer system can be absolutely secure." Intel Document Number: 336983-001

Antworten