Sådan konfigureres Proxmox VE 8 til PCI/PCIE og NVIDIA GPU Passthrough

Sadan Konfigureres Proxmox Ve 8 Til Pci Pcie Og Nvidia Gpu Passthrough



Proxmox VE 8 er en af ​​de bedste open source og gratis Type-I hypervisorer derude til at køre virtuelle QEMU/KVM-maskiner (VM'er) og LXC-containere. Den har en fin webadministrationsgrænseflade og en masse funktioner.

En af de mest fantastiske funktioner ved Proxmox VE er, at den kan overføre PCI/PCIE-enheder (dvs. en NVIDIA GPU) fra din computer til Proxmox VE virtuelle maskiner (VM'er). PCI/PCIE-gennemgangen bliver bedre og bedre med nyere Proxmox VE-udgivelser. I skrivende stund er den seneste version af Proxmox VE Proxmox VE v8.1, og den har fantastisk PCI/PCIE passthrough-understøttelse.







I denne artikel vil jeg vise dig, hvordan du konfigurerer din Proxmox VE 8-vært/server til PCI/PCIE-passthrough og konfigurerer din NVIDIA GPU til PCIE-passthrough på Proxmox VE 8 virtuelle maskiner (VM'er).





Indholdsfortegnelse

  1. Aktivering af virtualisering fra BIOS/UEFI-firmwaren på dit bundkort
  2. Installation af Proxmox VE 8
  3. Aktivering af Proxmox VE 8 Community Repositories
  4. Installation af opdateringer på Proxmox VE 8
  5. Aktivering af IOMMU fra BIOS/UEFI-firmwaren på dit bundkort
  6. Aktivering af IOMMU på Proxmox VE 8
  7. Bekræftelse af, om IOMMU er aktiveret på Proxmox VE 8
  8. Indlæser VFIO-kernemoduler på Proxmox VE 8
  9. Liste over IOMMU-grupper på Proxmox VE 8
  10. Kontrol af, om din NVIDIA GPU kan overføres til en Proxmox VE 8 Virtual Machine (VM)
  11. Kontrollerer, om kernemodulerne skal sortliste for PCI/PCIE Passthrough på Proxmox VE 8
  12. Sortlistning af påkrævede kernemoduler til PCI/PCIE Passthrough på Proxmox VE 8
  13. Konfiguration af din NVIDIA GPU til at bruge VFIO Kernel Module på Proxmox VE 8
  14. Gennemføre NVIDIA GPU'en til en Proxmox VE 8 Virtual Machine (VM)
  15. Har du stadig problemer med PCI/PCIE Passthrough på Proxmox VE 8 Virtual Machines (VM'er)?
  16. Konklusion
  17. Referencer





Aktivering af virtualisering fra BIOS/UEFI-firmwaren på dit bundkort

Før du kan installere Proxmox VE 8 på din computer/server, skal du aktivere hardwarevirtualiseringsfunktionen på din processor fra BIOS/UEFI-firmwaren på dit bundkort. Processen er forskellig for forskellige bundkort. Så hvis du har brug for hjælp til at aktivere hardwarevirtualisering på dit bundkort, læs denne artikel .



Installation af Proxmox VE 8

Proxmox VE 8 er gratis at downloade, installere og bruge. Før du går i gang, skal du sørge for at installere Proxmox VE 8 på din computer. Hvis du har brug for hjælp til det, læs denne artikel .

Aktivering af Proxmox VE 8 Community Repositories

Når du har Proxmox VE 8 installeret på din computer/server, skal du sørge for at aktiver Proxmox VE 8-fællesskabspakkedepoterne .

Som standard er Proxmox VE 8 enterprise-pakkelagre aktiveret, og du vil ikke være i stand til at få/installere opdateringer og fejlrettelser fra virksomhedslagrene, medmindre du har købt Proxmox VE 8 virksomhedslicenser. Så hvis du vil bruge Proxmox VE 8 gratis, så sørg for det aktiver Proxmox VE 8-fællesskabspakkedepoterne for at få de seneste opdateringer og fejlrettelser fra Proxmox gratis.

Installation af opdateringer på Proxmox VE 8

Når du har aktiverede Proxmox VE 8 community pakkedepoter , sørg for at installer alle tilgængelige opdateringer på din Proxmox VE 8-server .

Aktivering af IOMMU fra BIOS/UEFI-firmwaren på dit bundkort

IOMMU-konfigurationen findes forskellige steder på forskellige bundkort. For at aktivere IOMMU på dit bundkort, læs denne artikel .

Aktivering af IOMMU på Proxmox VE 8

Når IOMMU er aktiveret på hardwaresiden, skal du også aktivere IOMMU fra softwaresiden (fra Proxmox VE 8).

For at aktivere IOMMU fra Proxmox VE 8 skal du tilføje følgende kernestartparametre:

Processorleverandør Kernel boot-parametre at tilføje
Intel intel_iommu=on, iommu=pt
AMD iommu=pt

For at ændre kernestartparametrene for Proxmox VE 8 skal du åbne /etc/default/grub fil med nano-teksteditoren som følger:

$ nano /etc/default/grub

I slutningen af GRUB_CMDLINE_LINUX_DEFAULT , tilføje de nødvendige kernestartparametre for at aktivere IOMMU afhængigt af den processor, du bruger.

Da jeg bruger en AMD-processor, har jeg kun tilføjet kernestartparameteren iommu=pt i slutningen af GRUB_CMDLINE_LINUX_DEFAULT linje i /etc/default/grub fil.

Når du er færdig, skal du trykke på + x efterfulgt af OG og at gemme /etc/default/grub fil.

Opdater nu GRUB boot-konfigurationerne med følgende kommando:

$ update-grub2

Når GRUB boot-konfigurationerne er opdateret, skal du klikke på Genstart for at genstarte din Proxmox VE 8-server, for at ændringerne træder i kraft.

Bekræftelse af, om IOMMU er aktiveret på Proxmox VE 8

For at kontrollere, om IOMMU er aktiveret på Proxmox VE 8, skal du køre følgende kommando:

$ dmesg | grep -e DMAR -e IOMMU

Hvis IOMMU er aktiveret, vil du se nogle udgange, der bekræfter, at IOMMU er aktiveret.

Hvis IOMMU ikke er aktiveret, kan du muligvis ikke se nogen udgange.

Du skal også have IOMMU-afbrydelses-omlægning aktiveret for PCI/PCIE-passthrough til at fungere.

For at kontrollere, om IOMMU Interrupt Remapping er aktiveret på din Proxmox VE 8-server, skal du køre følgende kommando:

$ dmesg | grep 'remapping'

Som du kan se, er IOMMU Interrupt Remapping aktiveret på min Proxmox VE 8-server.

De fleste moderne AMD- og Intel-processorer vil have IOMMU Interrupt Remapping aktiveret. Hvis du af en eller anden grund ikke har IOMMU Interrupt Remapping aktiveret, er der en løsning. Du skal aktivere Unsafe Interrupts for VFIO. Læs denne artikel for mere information om aktivering af usikre afbrydelser på din Proxmox VE 8-server.

Indlæser VFIO-kernemoduler på Proxmox VE 8

PCI/PCIE-passthrough udføres hovedsageligt af VFIO (Virtual Function I/O)-kernemodulerne på Proxmox VE 8. VFIO-kernemodulerne indlæses som standard ikke ved opstart på Proxmox VE 8. Men det er nemt at indlæse VFIO'en kernemoduler ved opstart på Proxmox VE 8.

Åbn først /etc/modules-load.d/vfio.conf fil med nano teksteditor som følger:

$ nano /etc/modules-load.d/vfio.conf

Indtast følgende linjer i /etc/modules-load.d/vfio.conf fil.

vfio

vfio_iommu_type1

vfio_pci

Når du er færdig, skal du trykke på + x efterfulgt af OG og for at gemme ændringerne.

Opdater nu initramfs for din Proxmox VE 8 installation med følgende kommando:

$ update-initramfs -u -k alle

Når initramfs er opdateret, skal du klikke på Genstart for at genstarte din Proxmox VE 8-server, for at ændringerne træder i kraft.

Når din Proxmox VE 8-server starter, bør du se, at alle de nødvendige VFIO-kernemoduler er indlæst.

$ lsmod | greb vfio

Liste over IOMMU-grupper på Proxmox VE 8

For at passere PCI/PCIE-enheder på Proxmox VE 8 virtuelle maskiner (VM'er), skal du tjekke IOMMU-grupperne på dine PCI/PCIE-enheder ret ofte. For at gøre det lettere at tjekke efter IOMMU-grupper besluttede jeg at skrive et shell-script (jeg fik det fra GitHub, men jeg kan ikke huske navnet på den originale plakat) i stien /usr/local/bin/print-iommu-groups så jeg bare kan løbe print-iommu-grupper kommandoen, og den vil udskrive IOMMU-grupperne på Proxmox VE 8-skallen.

Først skal du oprette en ny fil print-iommu-grupper i stien /usr/local/bin og åbn den med nano-teksteditoren som følger:

$ nano /usr/local/bin/print-iommu-groups

Indtast følgende linjer i print-iommu-grupper fil:

#!/bin/bash

butikker -s nullglob

til g i ` Find / sys / kerne / iommu_grupper /* -maxdybde 0 -type d | sortere -I ` ; gør

ekko 'IOMMU Group ${g##*/} :'

til d i $g / enheder /* ; gør

ekko -Det er ' \t $(lspci -nns ${d##*/}) '

Færdig ;

Færdig ;

Når du er færdig, skal du trykke på + x efterfulgt af OG og for at gemme ændringerne i print-iommu-grupper fil.

Lav print-iommu-grupper script fil eksekverbar med følgende kommando:

$ chmod +x /usr/local/bin/print-iommu-groups

Nu kan du køre print-iommu-grupper kommando som følger for at udskrive IOMMU-grupperne for PCI/PCIE-enhederne installeret på din Proxmox VE 8-server:

$ print-iommu-grupper

Som du kan se, udskrives IOMMU-grupperne af PCI/PCIE-enhederne installeret på min Proxmox VE 8-server.

Kontrol af, om din NVIDIA GPU kan overføres til en Proxmox VE 8 Virtual Machine (VM)

For at overføre en PCI/PCIE-enhed til en Proxmox VE 8 virtuel maskine (VM), skal den være i sin egen IOMMU-gruppe. Hvis 2 eller flere PCI/PCIE-enheder deler en IOMMU-gruppe, kan du ikke overføre nogen af ​​PCI/PCIE-enhederne i den IOMMU-gruppe til nogen virtuelle Proxmox VE 8-maskiner (VM'er).

Så hvis din NVIDIA GPU og dens lydenhed er på sin egen IOMMU-gruppe, kan du overføre NVIDIA GPU'en til enhver Proxmox VE 8 virtuelle maskiner (VM'er).

På min Proxmox VE 8 server bruger jeg et MSI X570 ACE bundkort parret med en Ryzen 3900X processor og Gigabyte RTX 4070 NVIDIA GPU. I henhold til IOMMU-grupperne på mit system kan jeg føre NVIDIA RTX 4070 GPU (IOMMU Group 21), RTL8125 2.5Gbe Ethernet-controller (IOMMU Group 20), Intel I211 Gigabit Ethernet-controller (IOMMU Group 19), en USB 3.0-controller ( IOMMU Group 24) og den indbyggede HD Audio Controller (IOMMU Group 25).

$ print-iommu-grupper

Da hovedfokus i denne artikel er at konfigurere Proxmox VE 8 til at passere gennem NVIDIA GPU'en til Proxmox VE 8 virtuelle maskiner, skal NVIDIA GPU'en og dens lydenhed være i sin egen IOMMU-gruppe.

Kontrollerer, om kernemodulerne skal sortliste for PCI/PCIE Passthrough på Proxmox VE 8

For at passere en PCI/PCIE-enhed på en Proxmox VE 8 virtuel maskine (VM), skal du sørge for, at Proxmox VE tvinger den til at bruge VFIO-kernemodulet i stedet for dets originale kernemodul.

For at finde ud af, hvilket kernemodul dine PCI/PCIE-enheder bruger, skal du kende leverandør-id'et og enheds-id'et for disse PCI/PCIE-enheder. Du kan finde leverandør-id'et og enheds-id'et for PCI/PCIE-enhederne ved hjælp af print-iommu-grupper kommando.

$ print-iommu-grupper

For eksempel er leverandør-id'et og enheds-id'et for min NVIDIA RTX 4070 GPU 10de:2786 og det er lydenheden 10de:22 f.Kr .

For at finde kernemodulet en PCI/PCIE-enhed 10de:2786 (min NVIDIA RTX 4070 GPU) bruger, kør lspci kommando som følger:

$ lspci -v -d 10de:2786

Som du kan se, bruger min NVIDIA RTX 4070 GPU nvidiafb og ny kernemoduler som standard. Så de kan ikke overføres til en Proxmox VE 8 virtuel maskine (VM) på dette tidspunkt.

Lydenheden på min NVIDIA RTX 4070 GPU bruger snd_hda_intel kernemodul. Så det kan heller ikke videregives på en Proxmox VE 8 virtuel maskine på dette tidspunkt.

$ lspci -v -d 10de:22bc

Så for at passere min NVIDIA RTX 4070 GPU og dens lydenhed på en Proxmox VE 8 virtuel maskine (VM), skal jeg sortliste nvidiafb , ny , og snd_hda_intel kernemoduler og konfigurer min NVIDIA RTX 4070 GPU og dens lydenhed til at bruge vfio-pci kernemodul.

Sortlistning af påkrævede kernemoduler til PCI/PCIE Passthrough på Proxmox VE 8

For at sortliste kernemoduler på Proxmox VE 8 skal du åbne /etc/modprobe.d/blacklist.conf fil med nano-teksteditoren som følger:

$ nano /etc/modprobe.d/blacklist.conf

For at blackliste kernemodulerne ny , nvidiafb , og snd_hda_intel kernemoduler (for at passere NVIDIA GPU), tilføj følgende linjer i /etc/modprobe.d/blacklist.conf fil:

sortliste nouveau

sortliste nvidiafb

sortliste snd_hda_intel

Når du er færdig, skal du trykke på + x efterfulgt af OG og at gemme /etc/modprobe.d/blacklist.conf fil.

Konfiguration af din NVIDIA GPU til at bruge VFIO Kernel Module på Proxmox VE 8

For at konfigurere PCI/PCIE-enheden (dvs. din NVIDIA GPU) til at bruge VFIO-kernemodulet, skal du kende deres leverandør-id og enheds-id.

I dette tilfælde er leverandør-id'et og enheds-id'et på min NVIDIA RTX 4070 GPU og dens lydenhed 10de:2786 og 10de:22 f.Kr .

For at konfigurere din NVIDIA GPU til at bruge VFIO-kernemodulet, skal du åbne /etc/modprobe.d/vfio.conf fil med nano-teksteditoren som følger:

$ nano /etc/modprobe.d/vfio.conf

Sådan konfigurerer du din NVIDIA GPU og dens lydenhed med : 10de:2786 og 10de:22 f.Kr (lad os sige) for at bruge VFIO-kernemodulet, skal du tilføje følgende linje til /etc/modprobe.d/vfio.conf fil.

muligheder vfio-pci ids=10de:2786,10de:22bc

Når du er færdig, skal du trykke på + x efterfulgt af OG og at gemme /etc/modprobe.d/vfio.conf fil.

Opdater nu initramf'erne for Proxmove VE 8 med følgende kommando:

$ update-initramfs -u -k alle

Når initramfs er opdateret, skal du klikke på Genstart for at genstarte din Proxmox VE 8-server, for at ændringerne træder i kraft.

Når din Proxmox VE 8-server starter, bør du se, at din NVIDIA GPU og dens lydenhed ( 10de:2786 og 10de:22 f.Kr i mit tilfælde) bruger vfio-pci kernemodul. Nu er din NVIDIA GPU klar til at blive overført til en Proxmox VE 8 virtuel maskine.

$ lspci -v -d 10de:2786

$ lspci -v -d 10de:22bc

Gennemføre NVIDIA GPU'en til en Proxmox VE 8 Virtual Machine (VM)

Nu hvor din NVIDIA GPU er klar til passthrough på Proxmox VE 8 virtuelle maskiner (VM'er), kan du passere din NVIDIA GPU på din ønskede Proxmox VE 8 virtuelle maskine og installere NVIDIA GPU-driverne afhængigt af det operativsystem, du bruger på den virtuelle maskine som normalt.

For detaljerede oplysninger om, hvordan du passerer din NVIDIA GPU på en Proxmox VE 8 virtuel maskine (VM) med forskellige operativsystemer installeret, skal du læse en af ​​følgende artikler:

  • Sådan overføres en NVIDIA GPU til en Windows 11 Proxmox VE 8 Virtual Machine (VM)
  • Sådan overføres en NVIDIA GPU til en Ubuntu 24.04 LTS Proxmox VE 8 Virtual Machine (VM)
  • Sådan overføres en NVIDIA GPU til en LinuxMint 21 Proxmox VE 8 Virtual Machine (VM)
  • Sådan overføres en NVIDIA GPU til en Debian 12 Proxmox VE 8 Virtual Machine (VM)
  • Sådan overføres en NVIDIA GPU til en Elementary OS 8 Proxmox VE 8 Virtual Machine (VM)
  • Sådan overføres en NVIDIA GPU til en Fedora 39+ Proxmox VE 8 Virtual Machine (VM)
  • Sådan passerer du en NVIDIA GPU på en Arch Linux Proxmox VE 8 Virtual Machine (VM)
  • Sådan passerer du en NVIDIA GPU på en Red Hat Enterprise Linux 9 (RHEL 9) Proxmox VE 8 Virtual Machine (VM)

Har du stadig problemer med PCI/PCIE Passthrough på Proxmox VE 8 Virtual Machines (VM'er)?

Selv efter at have prøvet alt, der er angivet i denne artikel korrekt, hvis PCI/PCIE-passthrough stadig ikke virker for dig, skal du sørge for at prøv nogle af Proxmox VE PCI/PCIE passthrough tricks og/eller løsninger som du kan bruge til at få PCI/PCIE passthrough-arbejde på din hardware.

Konklusion

I denne artikel har jeg vist dig, hvordan du konfigurerer din Proxmox VE 8-server til PCI/PCIE-passthrough, så du kan overføre PCI/PCIE-enheder (dvs. din NVIDIA GPU) til dine Proxmox VE 8 virtuelle maskiner (VM'er). Jeg har også vist dig, hvordan du finder ud af de kernemoduler, som du skal sortliste, og hvordan du sortlister dem for en vellykket gennemførsel af dine ønskede PCI/PCIE-enheder (dvs. din NVIDIA GPU) til en Proxmox VE 8 virtuel maskine. Endelig har jeg vist dig, hvordan du konfigurerer dine ønskede PCI/PCIE-enheder (dvs. din NVIDIA GPU) til at bruge VFIO-kernemodulerne, hvilket også er et væsentligt trin for en vellykket gennemførsel af dine ønskede PCI/PCIE-enheder (dvs. din NVIDIA GPU ) til en Proxmox VE 8 virtuel maskine (VM).

Referencer

  1. PCI(e) Passthrough – Proxmox VE
  2. PCI Passthrough – Proxmox VE
  3. Den ultimative virtuelle spilmaskine på proxmox – YouTube