Proxmox VE 8 ist einer der besten Open-Source- und kostenlosen Typ-I-Hypervisoren für die Ausführung virtueller QEMU/KVM-Maschinen (VMs) und LXC-Container. Es verfügt über eine schöne Webverwaltungsoberfläche und viele Funktionen.
Eine der erstaunlichsten Funktionen von Proxmox VE besteht darin, dass es PCI/PCIE-Geräte (d. h. eine NVIDIA-GPU) von Ihrem Computer an virtuelle Maschinen (VMs) von Proxmox VE weiterleiten kann. Der PCI/PCIE-Passthrough wird mit neueren Proxmox VE-Releases immer besser. Zum Zeitpunkt des Verfassens dieses Artikels ist Proxmox VE v8.1 die neueste Version von Proxmox VE und bietet hervorragende PCI/PCIE-Passthrough-Unterstützung.
In diesem Artikel zeige ich Ihnen, wie Sie Ihren Proxmox VE 8-Host/Server für PCI/PCIE-Passthrough konfigurieren und Ihre NVIDIA-GPU für PCIE-Passthrough auf virtuellen Proxmox VE 8-Maschinen (VMs) konfigurieren.
Inhaltsverzeichnis
- Aktivieren der Virtualisierung über die BIOS/UEFI-Firmware Ihres Motherboards
- Proxmox VE 8 installieren
- Aktivieren von Proxmox VE 8 Community Repositories
- Updates auf Proxmox VE 8 installieren
- Aktivieren Sie IOMMU über die BIOS/UEFI-Firmware Ihres Motherboards
- IOMMU auf Proxmox VE 8 aktivieren
- Überprüfen, ob IOMMU auf Proxmox VE 8 aktiviert ist
- Laden von VFIO-Kernelmodulen auf Proxmox VE 8
- Auflisten von IOMMU-Gruppen auf Proxmox VE 8
- Prüfen, ob Ihre NVIDIA-GPU Passthrough zu einer virtuellen Proxmox VE 8-Maschine (VM) durchführen kann
- Suche nach Kernelmodulen, die für PCI/PCIE-Passthrough auf Proxmox VE 8 auf die schwarze Liste gesetzt werden sollen
- Erforderliche Kernelmodule für PCI/PCIE-Passthrough auf Proxmox VE 8 auf die schwarze Liste setzen
- Konfigurieren Ihrer NVIDIA-GPU für die Verwendung des VFIO-Kernelmoduls auf Proxmox VE 8
- Passthrough der NVIDIA-GPU an eine virtuelle Proxmox VE 8-Maschine (VM)
- Haben Sie immer noch Probleme mit PCI/PCIE-Passthrough auf virtuellen Proxmox VE 8-Maschinen (VMs)?
- Abschluss
- Verweise
Aktivieren der Virtualisierung über die BIOS/UEFI-Firmware Ihres Motherboards
Bevor Sie Proxmox VE 8 auf Ihrem Computer/Server installieren können, müssen Sie die Hardware-Virtualisierungsfunktion Ihres Prozessors über die BIOS/UEFI-Firmware Ihres Motherboards aktivieren. Der Vorgang ist bei verschiedenen Motherboards unterschiedlich. Wenn Sie also Hilfe bei der Aktivierung der Hardware-Virtualisierung auf Ihrem Motherboard benötigen, wenden Sie sich an uns. Lesen Sie diesen Artikel .
Proxmox VE 8 installieren
Proxmox VE 8 kann kostenlos heruntergeladen, installiert und verwendet werden. Bevor Sie beginnen, stellen Sie sicher, dass Sie Proxmox VE 8 auf Ihrem Computer installieren. Wenn Sie dabei Hilfe benötigen, Lesen Sie diesen Artikel .
Aktivieren von Proxmox VE 8 Community Repositories
Sobald Sie Proxmox VE 8 auf Ihrem Computer/Server installiert haben, stellen Sie sicher, dass dies der Fall ist Aktivieren Sie die Proxmox VE 8 Community-Paket-Repositorys .
Standardmäßig sind Proxmox VE 8 Enterprise-Paket-Repositories aktiviert und Sie können keine Updates und Fehlerbehebungen aus den Enterprise-Repositories abrufen/installieren, es sei denn, Sie haben Proxmox VE 8 Enterprise-Lizenzen erworben. Wenn Sie also Proxmox VE 8 kostenlos nutzen möchten, sollten Sie dies unbedingt tun Aktivieren Sie die Proxmox VE 8 Community-Paket-Repositorys um kostenlos die neuesten Updates und Fehlerbehebungen von Proxmox zu erhalten.
Updates auf Proxmox VE 8 installieren
Sobald Sie es getan haben aktivierte die Proxmox VE 8 Community-Paket-Repositorys , stellen Sie sicher, dass Installieren Sie alle verfügbaren Updates auf Ihrem Proxmox VE 8 Server .
Aktivieren Sie IOMMU über die BIOS/UEFI-Firmware Ihres Motherboards
Die IOMMU-Konfiguration befindet sich an verschiedenen Stellen auf verschiedenen Motherboards. Um IOMMU auf Ihrem Motherboard zu aktivieren, Lesen Sie diesen Artikel .
IOMMU auf Proxmox VE 8 aktivieren
Sobald IOMMU auf der Hardwareseite aktiviert ist, müssen Sie IOMMU auch auf der Softwareseite (ab Proxmox VE 8) aktivieren.
Um IOMMU von Proxmox VE 8 aus zu aktivieren, müssen Sie die folgenden Kernel-Boot-Parameter hinzufügen:
Prozessoranbieter | Hinzuzufügende Kernel-Boot-Parameter |
Intel | intel_iommu=on, iommu=pt |
AMD | iommu=pt |
Um die Kernel-Boot-Parameter von Proxmox VE 8 zu ändern, öffnen Sie die /etc/default/grub Datei mit dem Nano-Texteditor wie folgt:
$ nano /etc/default/grub
Am Ende von GRUB_CMDLINE_LINUX_DEFAULT , fügen Sie je nach verwendetem Prozessor die erforderlichen Kernel-Boot-Parameter hinzu, um IOMMU zu aktivieren.
Da ich einen AMD-Prozessor verwende, habe ich nur den Kernel-Boot-Parameter hinzugefügt iommu=pt am Ende von GRUB_CMDLINE_LINUX_DEFAULT Linie in der /etc/default/grub Datei.
Wenn Sie fertig sind, drücken Sie
Aktualisieren Sie nun die GRUB-Boot-Konfigurationen mit dem folgenden Befehl:
$ update-grub2
Sobald die GRUB-Boot-Konfigurationen aktualisiert sind, klicken Sie auf Neustart Sie müssen Ihren Proxmox VE 8-Server neu starten, damit die Änderungen wirksam werden.
Überprüfen, ob IOMMU auf Proxmox VE 8 aktiviert ist
Um zu überprüfen, ob IOMMU auf Proxmox VE 8 aktiviert ist, führen Sie den folgenden Befehl aus:
$ dmesg | grep -e DMAR -e IOMMU
Wenn IOMMU aktiviert ist, werden einige Ausgaben angezeigt, die bestätigen, dass IOMMU aktiviert ist.
Wenn IOMMU nicht aktiviert ist, werden möglicherweise keine Ausgaben angezeigt.
Sie müssen auch das haben IOMMU-Interrupt-Neuzuordnung aktiviert, damit PCI/PCIE-Passthrough funktioniert.
Um zu überprüfen, ob IOMMU Interrupt Remapping auf Ihrem Proxmox VE 8-Server aktiviert ist, führen Sie den folgenden Befehl aus:
$ dmesg | grep 'remapping'
Wie Sie sehen können, ist IOMMU Interrupt Remapping auf meinem Proxmox VE 8-Server aktiviert.
Bei den meisten modernen AMD- und Intel-Prozessoren ist IOMMU Interrupt Remapping aktiviert. Wenn Sie aus irgendeinem Grund IOMMU Interrupt Remapping nicht aktiviert haben, gibt es eine Problemumgehung. Sie müssen unsichere Interrupts für VFIO aktivieren. Lesen Sie diesen Artikel Weitere Informationen zum Aktivieren unsicherer Interrupts auf Ihrem Proxmox VE 8-Server.
Laden von VFIO-Kernelmodulen auf Proxmox VE 8
Der PCI/PCIE-Passthrough erfolgt hauptsächlich über die VFIO-Kernelmodule (Virtual Function I/O) auf Proxmox VE 8. Die VFIO-Kernelmodule werden auf Proxmox VE 8 standardmäßig nicht beim Booten geladen. Das Laden des VFIO ist jedoch einfach Kernel-Module beim Booten auf Proxmox VE 8.
Öffnen Sie zunächst die /etc/modules-load.d/vfio.conf Datei mit der Nano Texteditor wie folgt:
$ nano /etc/modules-load.d/vfio.conf
Geben Sie die folgenden Zeilen ein /etc/modules-load.d/vfio.conf Datei.
vfiovfio_iommu_type1
vfio_pci
Wenn Sie fertig sind, drücken Sie
Aktualisieren Sie nun die Initramfs Ihrer Proxmox VE 8-Installation mit dem folgenden Befehl:
$ update-initramfs -u -k all
Sobald die initramfs aktualisiert sind, klicken Sie auf Neustart Sie müssen Ihren Proxmox VE 8-Server neu starten, damit die Änderungen wirksam werden.
Sobald Ihr Proxmox VE 8-Server startet, sollten Sie sehen, dass alle erforderlichen VFIO-Kernelmodule geladen sind.
$ lsmod | grip vfio
Auflisten von IOMMU-Gruppen auf Proxmox VE 8
Um PCI/PCIE-Geräte auf virtuellen Proxmox VE 8-Maschinen (VMs) weiterzuleiten, müssen Sie die IOMMU-Gruppen Ihrer PCI/PCIE-Geräte regelmäßig überprüfen. Um die Suche nach IOMMU-Gruppen zu vereinfachen, habe ich beschlossen, ein Shell-Skript (ich habe es von GitHub erhalten, kann mich aber nicht an den Namen des Originalposters erinnern) in den Pfad zu schreiben /usr/local/bin/print-iommu-groups damit ich einfach laufen kann print-iommu-groups Befehl und es werden die IOMMU-Gruppen auf der Proxmox VE 8-Shell gedruckt.
Erstellen Sie zunächst eine neue Datei print-iommu-groups in dem Weg /usr/local/bin und öffnen Sie es mit dem Nano-Texteditor wie folgt:
$ nano /usr/local/bin/print-iommu-groups
Geben Sie die folgenden Zeilen ein print-iommu-groups Datei:
#!/bin/bashGeschäfte -S nullglob
für G In ` finden / sys / Kernel / iommu_groups /* -maximale Tiefe 0 -Typ D | Sortieren -IN ` ; Tun
Echo „IOMMU-Gruppe ${g##*/} :'
für D In $g / Geräte /* ; Tun
Echo -Es ist ' \T $(lspci -nns ${d##*/}) '
Erledigt ;
Erledigt ;
Wenn Sie fertig sind, drücken Sie
Mach das print-iommu-groups Skriptdatei mit dem folgenden Befehl ausführbar:
$ chmod +x /usr/local/bin/print-iommu-groups
Jetzt können Sie das ausführen print-iommu-groups Befehl wie folgt, um die IOMMU-Gruppen der auf Ihrem Proxmox VE 8-Server installierten PCI/PCIE-Geräte zu drucken:
$ print-iommu-groups
Wie Sie sehen können, werden die IOMMU-Gruppen der auf meinem Proxmox VE 8-Server installierten PCI/PCIE-Geräte gedruckt.
Prüfen, ob Ihre NVIDIA-GPU Passthrough zu einer virtuellen Proxmox VE 8-Maschine (VM) durchführen kann
Um ein PCI/PCIE-Gerät an eine virtuelle Proxmox VE 8-Maschine (VM) weiterzuleiten, muss es sich in einer eigenen IOMMU-Gruppe befinden. Wenn zwei oder mehr PCI/PCIE-Geräte eine IOMMU-Gruppe teilen, können Sie keines der PCI/PCIE-Geräte dieser IOMMU-Gruppe an virtuelle Proxmox VE 8-Maschinen (VMs) weiterleiten.
Wenn sich Ihre NVIDIA-GPU und ihr Audiogerät also in einer eigenen IOMMU-Gruppe befinden, können Sie die NVIDIA-GPU an alle virtuellen Maschinen (VMs) von Proxmox VE 8 weiterleiten.
Auf meinem Proxmox VE 8-Server verwende ich ein MSI X570 ACE-Motherboard gepaart mit einem Ryzen 3900X-Prozessor und einer Gigabyte RTX 4070 NVIDIA-GPU. Gemäß den IOMMU-Gruppen meines Systems kann ich die NVIDIA RTX 4070-GPU (IOMMU-Gruppe 21), den RTL8125 2.5Gbe Ethernet Controller (IOMMU-Gruppe 20), den Intel I211 Gigabit Ethernet Controller (IOMMU-Gruppe 19) und einen USB 3.0-Controller ( IOMMU-Gruppe 24) und der Onboard HD Audio Controller (IOMMU-Gruppe 25).
$ print-iommu-groups
Da der Schwerpunkt dieses Artikels auf der Konfiguration von Proxmox VE 8 für die Weitergabe der NVIDIA-GPU an virtuelle Proxmox VE 8-Maschinen liegt, müssen sich die NVIDIA-GPU und ihr Audiogerät in einer eigenen IOMMU-Gruppe befinden.
Suche nach Kernelmodulen, die für PCI/PCIE-Passthrough auf Proxmox VE 8 auf die schwarze Liste gesetzt werden sollen
Um ein PCI/PCIE-Gerät auf einer virtuellen Maschine (VM) von Proxmox VE 8 durchzuleiten, müssen Sie sicherstellen, dass Proxmox VE die Verwendung des VFIO-Kernelmoduls anstelle seines ursprünglichen Kernelmoduls erzwingt.
Um herauszufinden, welches Kernelmodul Ihre PCI/PCIE-Geräte verwenden, müssen Sie die Hersteller-ID und Geräte-ID dieser PCI/PCIE-Geräte kennen. Die Hersteller-ID und Geräte-ID der PCI/PCIE-Geräte finden Sie über die print-iommu-groups Befehl.
$ print-iommu-groups
Beispielsweise lautet die Hersteller-ID und Geräte-ID meiner NVIDIA RTX 4070-GPU 10de:2786 und sein Audiogerät ist 10de:22 v. Chr .
Um das Kernelmodul zu finden, ist ein PCI/PCIE-Gerät erforderlich 10de:2786 (meine NVIDIA RTX 4070 GPU) verwendet, führen Sie das aus lspci Befehl wie folgt:
$ lspci -v -d 10de:2786
Wie Sie sehen können, verwendet meine NVIDIA RTX 4070 GPU die nvidiafb Und neu Kernel-Module standardmäßig. Daher können sie derzeit nicht an eine virtuelle Maschine (VM) von Proxmox VE 8 übergeben werden.
Das Audiogerät meiner NVIDIA RTX 4070 GPU verwendet das snd_hda_intel Kernelmodul. Daher kann es derzeit auch nicht an eine virtuelle Proxmox VE 8-Maschine weitergegeben werden.
$ lspci -v -d 10de:22bc
Um also meine NVIDIA RTX 4070-GPU und ihr Audiogerät auf einer virtuellen Proxmox VE 8-Maschine (VM) durchzuleiten, muss ich sie auf die schwarze Liste setzen nvidiafb , neu , Und snd_hda_intel Kernel-Module und konfigurieren Sie meine NVIDIA RTX 4070-GPU und ihr Audiogerät für die Verwendung vfio-pci Kernelmodul.
Erforderliche Kernelmodule für PCI/PCIE-Passthrough auf Proxmox VE 8 auf die schwarze Liste setzen
Um Kernel-Module auf Proxmox VE 8 auf die schwarze Liste zu setzen, öffnen Sie die /etc/modprobe.d/blacklist.conf Datei mit dem Nano-Texteditor wie folgt:
$ nano /etc/modprobe.d/blacklist.conf
Um die Kernelmodule auf die schwarze Liste zu setzen neu , nvidiafb , Und snd_hda_intel Kernel-Module (zur Durchleitung der NVIDIA-GPU) hinzufügen, fügen Sie die folgenden Zeilen in die Datei ein /etc/modprobe.d/blacklist.conf Datei:
schwarze Liste im JugendstilNvidiafb auf die schwarze Liste setzen
Blacklist snd_hda_intel
Wenn Sie fertig sind, drücken Sie
Konfigurieren Ihrer NVIDIA-GPU für die Verwendung des VFIO-Kernelmoduls auf Proxmox VE 8
Um das PCI/PCIE-Gerät (d. h. Ihre NVIDIA-GPU) für die Verwendung des VFIO-Kernelmoduls zu konfigurieren, müssen Sie dessen Hersteller-ID und Geräte-ID kennen.
In diesem Fall sind es die Hersteller-ID und die Geräte-ID meiner NVIDIA RTX 4070 GPU und ihres Audiogeräts 10de:2786 Und 10de:22 v. Chr .
Um Ihre NVIDIA-GPU für die Verwendung des VFIO-Kernelmoduls zu konfigurieren, öffnen Sie die /etc/modprobe.d/vfio.conf Datei mit dem Nano-Texteditor wie folgt:
$ nano /etc/modprobe.d/vfio.conf
So konfigurieren Sie Ihre NVIDIA-GPU und ihr Audiogerät mit der
Wenn Sie fertig sind, drücken Sie
Aktualisieren Sie nun die Initramfs von Proxmove VE 8 mit dem folgenden Befehl:
$ update-initramfs -u -k all
Sobald initramfs aktualisiert ist, klicken Sie auf Neustart Sie müssen Ihren Proxmox VE 8-Server neu starten, damit die Änderungen wirksam werden.
Sobald Ihr Proxmox VE 8-Server startet, sollten Sie sehen, dass Ihre NVIDIA-GPU und ihr Audiogerät ( 10de:2786 Und 10de:22 v. Chr in meinem Fall) verwenden die vfio-pci Kernelmodul. Jetzt kann Ihre NVIDIA-GPU an eine virtuelle Proxmox VE 8-Maschine übergeben werden.
$ lspci -v -d 10de:2786$ lspci -v -d 10de:22bc
Passthrough der NVIDIA-GPU an eine virtuelle Proxmox VE 8-Maschine (VM)
Da Ihre NVIDIA-GPU nun für das Passthrough auf virtuellen Proxmox VE 8-Maschinen (VMs) bereit ist, können Sie Ihre NVIDIA-GPU auf Ihrer gewünschten virtuellen Proxmox VE 8-Maschine weiterleiten und die NVIDIA-GPU-Treiber je nach dem von Ihnen verwendeten Betriebssystem installieren diese virtuelle Maschine wie gewohnt.
Ausführliche Informationen zum Passthrough Ihrer NVIDIA-GPU auf einer virtuellen Maschine (VM) Proxmox VE 8 mit verschiedenen installierten Betriebssystemen finden Sie in einem der folgenden Artikel:
- So übergeben Sie eine NVIDIA-GPU an eine virtuelle Maschine (VM) mit Windows 11 Proxmox VE 8
- So übergeben Sie eine NVIDIA-GPU an eine virtuelle Maschine (VM) mit Ubuntu 24.04 LTS Proxmox VE 8
- So übergeben Sie eine NVIDIA-GPU an eine virtuelle LinuxMint 21 Proxmox VE 8-Maschine (VM)
- So übergeben Sie eine NVIDIA-GPU an eine virtuelle Debian 12 Proxmox VE 8-Maschine (VM)
- So übergeben Sie eine NVIDIA-GPU an eine virtuelle Maschine (VM) mit Elementary OS 8 Proxmox VE 8
- So übergeben Sie eine NVIDIA-GPU an eine virtuelle Maschine (VM) mit Fedora 39+ Proxmox VE 8
- So führen Sie eine NVIDIA-GPU auf einer virtuellen Arch Linux Proxmox VE 8-Maschine (VM) durch
- So führen Sie eine NVIDIA-GPU auf einer virtuellen Maschine (VM) mit Red Hat Enterprise Linux 9 (RHEL 9) Proxmox VE 8 durch
Haben Sie immer noch Probleme mit PCI/PCIE-Passthrough auf virtuellen Proxmox VE 8-Maschinen (VMs)?
Selbst nachdem Sie alles, was in diesem Artikel aufgeführt ist, richtig ausprobiert haben, stellen Sie sicher, dass PCI/PCIE-Passthrough bei Ihnen immer noch nicht funktioniert Probieren Sie einige der Proxmox VE PCI/PCIE-Passthrough-Tricks und/oder Workarounds aus mit dem Sie PCI/PCIE-Passthrough auf Ihrer Hardware zum Laufen bringen können.
Abschluss
In diesem Artikel habe ich Ihnen gezeigt, wie Sie Ihren Proxmox VE 8-Server für PCI/PCIE-Passthrough konfigurieren, damit Sie PCI/PCIE-Geräte (d. h. Ihre NVIDIA-GPU) an Ihre virtuellen Proxmox VE 8-Maschinen (VMs) weiterleiten können. Ich habe Ihnen auch gezeigt, wie Sie die Kernel-Module herausfinden, die Sie auf die schwarze Liste setzen müssen, und wie Sie sie für einen erfolgreichen Passthrough Ihrer gewünschten PCI/PCIE-Geräte (d. h. Ihrer NVIDIA-GPU) zu einer virtuellen Proxmox VE 8-Maschine auf die schwarze Liste setzen. Abschließend habe ich Ihnen gezeigt, wie Sie Ihre gewünschten PCI/PCIE-Geräte (d. h. Ihre NVIDIA-GPU) für die Verwendung der VFIO-Kernelmodule konfigurieren. Dies ist auch ein wesentlicher Schritt für einen erfolgreichen Passthrough Ihrer gewünschten PCI/PCIE-Geräte (d. h. Ihrer NVIDIA-GPU). ) auf eine virtuelle Proxmox VE 8-Maschine (VM).