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.