PCI Karte an VM durchreichen (PCI Passthrough) auf Proxmox VE

Einleitung:

Proxmox VE bietet die Möglichkeit, PCI-Karten vom eigentlichen Server an die virtuelle Maschine weiterzureichen bzw. durchschleifen (PCI Passthrough). So erkennt das Gast-System eigenständig die  eingesteckte PCI-Karte. Häufig wird dieses für Netzwerkkarten (Performance) , Soundkarten oder Multimediakarten  verwendet.  Es sind PCI-Karten , aber auch PCIx- oder PCIe-Karten möglich. Ein  durchgereichte PCI-Karte kann nicht auf mehreren laufenden Gast-Systemen gleichzeitig genutzt werden.  Für USB-Geräte gibt es USB-Passthrough

Anleitung:

Der Bootloader Grub wird  in der Datei /etc/default/grub mit folgende Zeile durch einen beliebigen Texteditor wie Nano angepasst bzw. geändert: GRUB_CMDLINE_LINUX_DEFAULT=“quiet intel_iommu=on“
Mit update-grub wird  der neue Eintrag übernommen und Du  startest dann das System neu.

Im Bios muss vt-d aktiviert sein. Nach dem Neustart gibst Du  den Befehl dmesg | grep -e DMAR -e IOMMU ein. Hier sollten nun eine Ausgabe erscheinen.  Wird nichts ausgegeben, ist noch ein Fehler vorhanden. Bitte prüfe ob vt-d im Bios aktiviert wurde und die CPU vt-d auch unterstützt.

Erhälst Du eine Ausgabe, machst Du  weiter indem Du die PCI-Karte identifizieren. Dies erfolgt mit dem Befehl lspci und zeigt alle Geräte wie im Beispiel:

Für das Durchschleifen ist lediglich die Adresse wichtig. So befinden sich auf meinem Screenshot z.B. auf 01:00.0 und 04:00.0 jeweils eine Netzwerkkarte und auf 03:00,0 und 06:00,0 jeweils eine SAT-Karte. Ich will nun die beiden SAT-Karten durchschleifen, diese werden  in einer VM unter VDR genutzt.

Falls die VM läuft, sollte diese nun beendet werden. Du öffnest mit einem beliebigen Texteditor (nano) die Konfigurationsdatei die sich unter /etc/pve/qemu-server/ befindet. In meinem Beispiel ist es die 103.conf

Als Zeile wird nun hostpci0: 03:00.0,pcie=1 und hostpci1: 06:00.0,pcie=1 hinzugefügt. 
Für mehrere PCI-Karten kann fortlaufend hostpci0, hostpci1, hostpci2… verwendet werden. pcie=1 da es sich um eine PCI-Express Karte handelt, bei normalen PCI-Karten wird dieser Eintrag weggelassen.  Anbei ein Screenshot meiner kompletten Konfigurationsdatei:

Das Screenshot ist nur ein Beispiel, die Werte sind bei Dir natürlich anders.  

Nun kann die VM wieder gestartet werden. In der VM findet man nun die PCI-Karten. Je nach PCI-Karte müssen dann hier die Treiber installiert werden.

Anmerkung:

Im oberen Beispiel werden jeweils zwei Dual SAT-PCIe-Karten zuverlässig in einer VM mit VDR durchgereicht (PCI Passthrough). Die VM arbeitet zusätzlich mit einer native Festplatte (Eintrag virtio1). Da beim durchschleifen der Host sein Gerät verliert, sind OnBoard-Grafikkarten nicht möglich. Bei OnBoard Soundkarten hatte ich Probleme beim durchschleifen  und nutze seitdem eine USB-Soundkarte erfolgreich mit USB-Passthrough

Scroll to Top Skip to content