Vigtige Proxmox VE 8 PCI/PCIE Passthrough Tweaks, rettelser og løsninger

Vigtige Proxmox Ve 8 Pci Pcie Passthrough Tweaks Rettelser Og Losninger



I de seneste år er understøttelsen af ​​PCI/PCIE (dvs. GPU-passthrough) forbedret meget i nyere hardware. Altså den almindelige Proxmox VE PCI/PCIE og GPU passthrough guide burde virke i de fleste nye hardware. Alligevel kan du stå over for mange problemer, der passerer gennem GPU'er og andre PCI/PCIE-enheder på en Proxmox VE virtuel maskine. Der er mange tweaks/rettelser/løsninger til nogle af de almindelige Proxmox VE GPU og PCI/PCIE passthrough-problemer.

I denne artikel vil jeg diskutere nogle af de mest almindelige Proxmox VE PCI/PCIE-passthrough- og GPU-passthrough-problemer og de trin, du kan tage for at løse disse problemer.









Indholdsfortegnelse

  1. Hvad skal man gøre, hvis IOMMU Interrupt Remapping ikke understøttes?
  2. Hvad skal jeg gøre, hvis min GPU (eller PCI/PCIE-enhed) ikke er i sin egen IOMMU-gruppe?
  3. Hvordan sortlister jeg AMD GPU-drivere på Proxmox VE?
  4. Hvordan sortlister jeg NVIDIA GPU-drivere på Proxmox VE?
  5. Hvordan sortlister jeg Intel GPU-drivere på Proxmox VE?
  6. Hvordan kontrollerer jeg, om min GPU (eller PCI/PCIE-enhed) bruger VFIO-driveren på Proxmox VE?
  7. Jeg har sortlistet AMU GPU-driverne, men GPU'en bruger stadig ikke VFIO-driveren, hvad skal jeg gøre?
  8. Jeg har sortlistet NVIDIA GPU-driverne, men GPU'en bruger stadig ikke VFIO-driveren, hvad skal jeg gøre?
  9. Jeg har sortlistet Intel GPU-driverne, men GPU'en bruger stadig ikke VFIO-driveren, hvad skal jeg gøre?
  10. Enkelt GPU brugte VFIO-driver, men da den blev konfigureret en anden GPU, virkede den ikke, hvorfor?
  11. Hvorfor deaktivere VGA-arbitration for GPU'erne, og hvordan gør man det?
  12. Hvad hvis min GPU stadig ikke bruger VFIO-driveren, selvom jeg har konfigureret VFIO?
  13. GPU Passthrough viste ingen fejl, men jeg får en sort skærm på skærmen forbundet til GPU'en videregivet til Proxmox VE VM, hvorfor?
  14. Hvad er AMD Vendor Reset Bug, og hvordan løses det?
  15. Hvordan leverer man en vBIOS til den beståede GPU på en Proxmox VE Virtual Machine?
  16. Hvad skal man gøre, hvis nogle apps crasher Proxmox VE Windows Virtual Machine?
  17. Hvordan løser man HDMI-lyd-knatrende/brudte problemer på Proxmox VE Linux virtuelle maskiner?.
  18. Sådan opdateres Proxmox VE initramfs?
  19. Sådan opdateres Proxmox VE GRUB Bootloader?
  20. Konklusion
  21. Referencer



Hvad skal man gøre, hvis IOMMU Interrupt Remapping ikke understøttes?

For PCI/PCIE passthrough er IOMMU interrupt remapping afgørende.





For at kontrollere, om din processor understøtter IOMMU interrupt remapping, skal du køre kommandoen nedenfor:

$ dmesg | grep -i remap



Hvis din processor understøtter IOMMU interrupt remapping, vil du se en slags output, der bekræfter, at interrupt remapping er aktiveret. Ellers vil du ikke se nogen udgange.

Hvis IOMMU interrupt remapping ikke understøttes på din processor, bliver du nødt til at konfigurere usikre afbrydelser på din Proxmox VE-server til at passere PCI/PCIE-enheder på Proxmox VE virtuelle maskiner.

For at konfigurere usikre afbrydelser på Proxmox VE skal du oprette en ny fil iommu_unsafe_interrupts.conf i /etc/modprobe.d mappe og åbn den med nano-teksteditoren som følger:

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

Tilføj følgende linje i iommu_unsafe_interrupts.conf fil og tryk + x efterfulgt af OG og for at gemme filen.

muligheder vfio_iommu_type1 allow_unsafe_interrupts=1

Når du er færdig, skal du opdater initramf'erne på din Proxmox VE-server .

Hvad skal jeg gøre, hvis min GPU (eller PCI/PCIE-enhed) ikke er i sin egen IOMMU-gruppe?

Hvis din server har flere PCI/PCIE-slots, kan du flytte GPU'en til en anden PCI/PCIE-slot og se, om GPU'en er i sin egen IOMMU-gruppe.

Hvis det ikke virker, kan du prøve at aktivere ACS-tilsidesættelse af kernel patch på Proxmox VE.

For at prøve at aktivere ACS-tilsidesættelse af kernel-patch på Proxmox VE, skal du åbne /etc/default/grub fil med nano-teksteditoren som følger:

$ nano /etc/default/grub

Tilføj kernel boot-indstillingen pcie_acs_override=nedstrøms i slutningen af GRUB_CMDLINE_LINUX_DEFAULT .

Når du er færdig, skal du trykke på + x efterfulgt af OG og for at gemme filen og sørge for at opdater Proxmox VE GRUB bootloader for at ændringerne træder i kraft.

Du burde have bedre IOMMU-gruppering, når din Proxmox VE-server starter.

Hvis din GPU stadig ikke har sin egen IOMMU-gruppe, kan du gå et skridt videre ved at bruge pcie_acs_override=downstream, multifunktion i stedet. Du burde have en endnu bedre IOMMU-gruppering.

Hvis pcie_acs_override=downstream, multifunktion resulterer i bedre IOMMU-gruppering pcie_acs_override=nedstrøms , hvorfor så bruge pcie_acs_override=nedstrøms overhovedet?

Nå, formålet med PCIE ACS-tilsidesættelse er at narre kernen til at tro, at PCIE-enhederne er isolerede, når de ikke er i virkeligheden. Så PCIE ACS-tilsidesættelse kommer med sikkerheds- og stabilitetsproblemer. Derfor bør du prøve at bruge en mindre aggressiv PCIE ACS-tilsidesættelsesmulighed pcie_acs_override=nedstrøms først og se om dit problem er løst. Hvis pcie_acs_override=nedstrøms virker ikke, kun så skal du bruge den mere aggressive mulighed pcie_acs_override=downstream, multifunktion .

Hvordan sortlister jeg AMD GPU-drivere på Proxmox VE?

Hvis du vil passere en AMD GPU på virtuelle Proxmox VE-maskiner, skal du sortliste AMD GPU-driverne og sikre dig, at den bruger VFIO-driveren i stedet.

Åbn først /etc/modprobe.d/blacklist.conf fil med nano-teksteditoren som følger:

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

For at sortliste AMD GPU-driverne skal du tilføje følgende linjer til /etc/modprobe.d/blacklist.conf fil og tryk + x efterfulgt af OG og for at gemme filen.

sortliste radeon

sortliste amdgpu

Når du er færdig, skal du opdater initramf'erne på din Proxmox VE-server for at ændringerne træder i kraft.

Hvordan sortlister jeg NVIDIA GPU-drivere på Proxmox VE?

Hvis du vil overføre en NVIDIA GPU på virtuelle Proxmox VE-maskiner, skal du sortliste NVIDIA GPU-driverne og sikre dig, at den bruger VFIO-driveren i stedet.

Åbn først /etc/modprobe.d/blacklist.conf fil med nano-teksteditoren som følger:

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

For at sortliste NVIDIA GPU-driverne skal du tilføje følgende linjer til /etc/modprobe.d/blacklist.conf fil og tryk + x efterfulgt af OG og for at gemme filen.

sortliste nouveau

sortliste nvidia

sortliste nvidiafb

sortliste nvidia_drm

Når du er færdig, skal du opdater initramf'erne på din Proxmox VE-server for at ændringerne træder i kraft.

Hvordan sortlister jeg Intel GPU-drivere på Proxmox VE?

Hvis du vil passere en Intel GPU på virtuelle Proxmox VE-maskiner, skal du sortliste Intel GPU-driverne og sørge for, at den bruger VFIO-driveren i stedet.

Åbn først /etc/modprobe.d/blacklist.conf fil med nano-teksteditoren som følger:

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

For at sortliste Intel GPU-driverne skal du tilføje følgende linjer til /etc/modprobe.d/blacklist.conf fil og tryk + x efterfulgt af OG og for at gemme filen.

sortliste snd_hda_intel

sortliste snd_hda_codec_hdmi

sortliste i915

Når du er færdig, skal du opdater initramf'erne på din Proxmox VE-server for at ændringerne træder i kraft.

Hvordan kontrollerer jeg, om min GPU (eller PCI/PCIE-enhed) bruger VFIO-driveren på Proxmox VE?

For at kontrollere, om din GPU eller ønskede PCI/PCIE-enheder bruger VFIO-driveren, skal du køre følgende kommando:

$ lspci -v

Hvis din GPU eller PCI/PCIE-enhed bruger VFIO-driveren, bør du se linjen Kerneldriver i brug: vfio-pci som markeret på skærmbilledet nedenfor.

Jeg har sortlistet AMU GPU-driverne, men GPU'en bruger stadig ikke VFIO-driveren, hvad skal jeg gøre?

Til tider er det ikke nok at sortliste AMD GPU-driverne, du skal også konfigurere AMD GPU-driverne til at indlæse efter VFIO-driveren.

For at gøre det skal du åbne /etc/modprobe.d/vfio.conf fil med nano-teksteditoren som følger:

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

For at konfigurere AMD GPU-driverne til at indlæse efter VFIO-driveren skal du tilføje følgende linjer til /etc/modprobe.d/vfio.conf fil og tryk + x efterfulgt af OG og for at gemme filen.

softdep radeon pre: vfio-pci

softdep amdgpu pre: vfio-pci

Når du er færdig, skal du opdater initramf'erne på din Proxmox VE-server for at ændringerne træder i kraft.

Jeg har sortlistet NVIDIA GPU-driverne, men GPU'en bruger stadig ikke VFIO-driveren, hvad skal jeg gøre?

Til tider er det ikke nok at sortliste NVIDIA GPU-driverne, du skal også konfigurere NVIDIA GPU-driverne til at indlæse efter VFIO-driveren.

For at gøre det skal du åbne /etc/modprobe.d/vfio.conf fil med nano-teksteditoren som følger:

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

For at konfigurere NVIDIA GPU-driverne til at indlæse efter VFIO-driveren skal du tilføje følgende linjer til /etc/modprobe.d/vfio.conf fil og tryk + x efterfulgt af OG og for at gemme filen.

softdep ny pre: vfio-pci

softdep nvidia til: vfio-pci

softdep nvidiafb til: vfio-pci

softdep nvidia_drm pre: vfio-pci

softdep drm pre: vfio-pci

Når du er færdig, skal du opdater initramf'erne på din Proxmox VE-server for at ændringerne træder i kraft.

Jeg har sortlistet Intel GPU-driverne, men GPU'en bruger stadig ikke VFIO-driveren, hvad skal jeg gøre?

Til tider er det ikke nok at sortliste Intel GPU-driverne, du skal også konfigurere Intel GPU-driverne til at indlæse efter VFIO-driveren.

For at gøre det skal du åbne /etc/modprobe.d/vfio.conf fil med nano-teksteditoren som følger:

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

For at konfigurere Intel GPU-driverne til at indlæse efter VFIO-driveren skal du tilføje følgende linjer til /etc/modprobe.d/vfio.conf fil og tryk + x efterfulgt af OG og for at gemme filen.

softdep snd_hda_intel pre: vfio-pci

softdep snd_hda_codec_hdmi pre: vfio-pci

softdep i915 pre: vfio-pci

Når du er færdig, skal du opdater initramf'erne på din Proxmox VE-server for at ændringerne træder i kraft.

Enkelt GPU brugte VFIO-driver, men da den blev konfigureret en anden GPU, virkede den ikke, hvorfor?

I den /etc/modprobe.d/vfio.conf fil, skal du tilføje ID'erne for alle de PCI/PCIE-enheder, som du vil bruge VFIO-driveren på en enkelt linje. Én enhed pr. linje virker ikke.

For eksempel, hvis du har 2 GPU'er, som du vil konfigurere til at bruge VFIO-driveren, skal du tilføje deres ID'er på en enkelt linje i /etc/modprobe.d/vfio.conf fil som følger:

valgmuligheder vfio-pci ids=,,,

Hvis du vil tilføje en anden GPU til listen, skal du blot tilføje den i slutningen af ​​den eksisterende vfio-pci linje i /etc/modprobe.d/vfio.conf fil som følger:

valgmuligheder vfio-pci ids=,,,,,

Gør aldrig dette. Selvom det ser meget renere ud, virker det ikke. Jeg ville ønske, at vi kunne specificere PCI/PCIE ID'er på denne måde.

muligheder vfio-pci ids=,

muligheder vfio-pci ids=,

muligheder vfio-pci ids=,

Hvorfor deaktivere VGA-arbitration for GPU'erne, og hvordan gør man det?

Hvis du bruger UEFI/OVMF BIOS på den virtuelle Proxmox VE-maskine, hvor du vil passere GPU'en, kan du deaktivere VGA-arbitration, hvilket vil reducere de ældre koder, der kræves under opstart.

For at deaktivere VGA-arbitration for GPU'erne skal du tilføje disable_vga=1 i slutningen af vfio-pci mulighed i /etc/modprobe.d/vfio.conf fil som vist nedenfor:

muligheder vfio-pci ids=,,, disable_vga=1

Hvad hvis min GPU stadig ikke bruger VFIO-driveren, selvom jeg har konfigureret VFIO?

Selv efter at have gjort alt korrekt, hvis din GPU stadig ikke bruger VFIO-driveren, bliver du nødt til at prøve at starte Proxmox VE med kerneindstillinger, der deaktiverer videoframebufferen.

På Proxmox VE 7.1 og ældre er nofb nomodeset video=vesafb:off video=efifb:off video=simplefb:off kerneindstillinger deaktiverer GPU-framebufferen for din Proxmox VE-server.

På Proxmox VE 7.2 og nyere er initcall_blacklist=sysfb_init kernel option gør et bedre stykke arbejde med at deaktivere GPU framebuffer for din Proxmox VE server.

Åbn GRUB bootloader-konfigurationsfilen /etc/default/grub fil med nano-teksteditoren med følgende kommando:

$ nano /etc/default/grub

Tilføj kerneindstillingen initcall_blacklist=sysfb_init i slutningen af GRUB_CMDLINE_LINUX_DEFAULT .

Når du er færdig, skal du trykke på + x efterfulgt af OG og for at gemme filen og sørge for at opdater Proxmox VE GRUB bootloader for at ændringerne træder i kraft.

GPU Passthrough viste ingen fejl, men jeg får en sort skærm på skærmen forbundet til GPU'en videregivet til Proxmox VE VM, hvorfor?

Når du har overført en GPU til en Proxmox VE virtuel maskine, skal du sørge for at bruge Standard Grafikkort, før du starter den virtuelle maskine. På denne måde vil du være i stand til at få adgang til visningen af ​​den virtuelle maskine fra Proxmox VE web management UI, downloade GPU driver installationsprogrammet på den virtuelle maskine og installere det på den virtuelle maskine.

Når GPU-driveren er installeret på den virtuelle maskine, vil skærmen på den virtuelle maskine blive vist på skærmen, der er forbundet til den GPU, som du også har videregivet til den virtuelle maskine.

Når GPU-driveren er installeret på den virtuelle maskine, og skærmen på den virtuelle maskine vises på skærmen, der er forbundet til GPU'en (overført til den virtuelle maskine), skal du slukke for den virtuelle maskine og indstille Display grafikkort af den virtuelle maskine til ingen .

Når du er indstillet, næste gang du tænder for den virtuelle maskine, vil skærmen på den virtuelle maskine kun blive vist på skærmen, der er tilsluttet GPU'en (overført til den virtuelle maskine), intet vil blive vist på Proxmox VE-webstedet management UI. På denne måde får du den samme oplevelse som at bruge en rigtig computer, selvom du bruger en virtuel maskine.

Husk, brug aldrig SPICE, VirtIO GPU og VirGL GPU Display Grafikkort på den virtuelle Proxmox VE-maskine, som du konfigurerer til GPU-passthrough, da den har en høj chance for fejl.

Hvad er AMD Vendor Reset Bug, og hvordan løses det?

AMD GPU'er har en velkendt fejl kaldet 'vendor reset bug'. Når en AMD GPU er overført til en Proxmox VE virtuel maskine, og du slukker for denne virtuelle maskine, vil du ikke være i stand til at bruge AMD GPU'en i en anden Proxmox VE virtuel maskine. Til tider vil din Proxmox VE-server ikke reagere som et resultat. Dette kaldes 'vendor reset bug' af AMD GPU'er.

Grunden til dette sker er, at AMD GPU'er ikke kan nulstille sig selv korrekt efter at være blevet sendt til en virtuel maskine. For at løse dette problem skal du nulstille din AMD GPU korrekt. For mere information om installation af AMD-leverandørnulstilling på Proxmox VE, læs denne artikel og læs denne tråd på Proxmox VE forum . Også, tjek leverandørens nulstilling af GitHub-siden .

Hvordan leverer man en vBIOS til den beståede GPU på en Proxmox VE Virtual Machine?

Hvis du har installeret GPU'en på det første slot på dit bundkort, er du muligvis ikke i stand til at passere GPU'en i en Proxmox VE virtuel maskine som standard. Nogle bundkort skygger som standard vBIOS for GPU'en installeret på den første slot, hvilket er grunden til, at GPU'en installeret på den første slot på disse bundkort ikke kan overføres til virtuelle maskiner.

Løsningen på dette problem er at installere GPU'en på bundkortets anden slot, udtrække GPU'ens vBIOS, installere GPU'en på bundkortets første slot og sende GPU'en til en Proxmox VE virtuel maskine sammen med den udpakkede vBIOS af GPU'en.

For at lære, hvordan du udtrækker vBIOS fra din GPU, læs denne artikel .

Når du har fået vBIOS til din GPU, skal du gemme vBIOS-filen i /usr/share/kvm/ bibliotek på din Proxmox VE-server for at få adgang til den.

Når vBIOS-filen til din GPU er gemt i /usr/share/kvm/ mappe, skal du konfigurere din virtuelle maskine for at bruge den. I øjeblikket er der ingen måde at specificere vBIOS-filen for PCI/PCIE-enheder på Proxmox VE virtuelle maskiner fra Proxmox VE web management UI. Så du bliver nødt til at gøre alt fra Proxmox VE shell/kommando-linjen.

Du kan finde Proxmox VE virtuelle maskine konfigurationsfiler i /etc/pve/qemu-server/ bibliotek på din Proxmox VE-server. Hver virtuelle Proxmox VE-maskine har en konfigurationsfil i denne mappe i formatet .conf .

For at åbne Proxmox VE virtuelle maskine-konfigurationsfilen (til redigering) for den virtuelle maskine ID 100, skal du køre følgende kommando:

$ nano /etc/pve/qemu-server/100.conf

I den virtuelle maskine-konfigurationsfil skal du tilføje romfil= i hostpciX linje, som er ansvarlig for at sende GPU'en på den virtuelle maskine.

For eksempel, hvis vBIOS-filnavnet for min GPU er gigabyte-nvidia-1050ti.bin , og jeg har bestået GPU'en på den første slot (slot 0) på den virtuelle maskine ( hostpci0 ), derefter i 100.konf fil, skal linjen være som følger:

hostpci0: ,x-vga=on,romfile=gigabyte-nvidia-1050ti.bin

Når du er færdig, skal du gemme den virtuelle maskine-konfigurationsfil ved at trykke på + x efterfulgt af OG og , start den virtuelle maskine, og kontroller, om GPU-passthrough'en virker.

Hvad skal man gøre, hvis nogle apps crasher Proxmox VE Windows Virtual Machine?

Nogle apps som f.eks. GeForce Experience, Passmark osv. kan nedbryde Proxmox VE Windows virtuelle maskiner. Du kan også opleve en pludselig blå dødsskærm (BSOD) på dine Proxmox VE Windows virtuelle maskiner. Grunden til, at det sker, er, at den virtuelle Windows-maskine forsøger at få adgang til de modelspecifikke registre (MSR'er), som faktisk ikke er tilgængelige, og afhængigt af hvordan din hardware håndterer MSR'er-anmodninger, kan dit system gå ned.

Løsningen på dette problem er at ignorere MSR-meddelelser på din Proxmox VE-server.

For at konfigurere MSR'er på din Proxmox VE-server skal du åbne /etc/modprobe.d/kvm.conf fil med nano-teksteditoren som følger:

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

For at ignorere MSR'er på din Proxmox VE-server skal du tilføje følgende linje til /etc/modprobe.d/kvm.conf fil.

muligheder kvm ignore_msrs=1

Når først MSR'er er ignoreret, kan du muligvis se en masse MSR'er advarselsmeddelelser i din dmesg-systemlog. For at undgå det kan du ignorere MSR'er samt deaktivere logning af MSR-advarselsmeddelelser ved at tilføje følgende linje i stedet:

muligheder kvm ignore_msrs=1 report_ignored_msrs=0

Når du er færdig, skal du trykke på + x efterfulgt af OG og at gemme /etc/modprobe.d/kvm.conf fil og opdater initramf'erne på din Proxmox VE-server for at ændringerne træder i kraft.

Hvordan løser man HDMI-lydknaldende/brudte problemer på Proxmox VE Linux virtuelle maskiner?

Hvis du har givet GPU'en til en Linux Proxmox VE virtuel maskine, og du får dårlig lydkvalitet på den virtuelle maskine, skal du aktivere MSI (Message Signal Interrupt) for lydenheden på den virtuelle Proxmox VE maskine.

For at aktivere MSI på den virtuelle Linux Proxmox VE-maskine skal du åbne /etc/modprobe.d/snd-hda-intel.conf fil med nano-teksteditoren på den virtuelle maskine med følgende kommando:

$ sudo nano /etc/modprobe.d/snd-had-intel.conf

Tilføj følgende linje og gem filen ved at trykke på + x efterfulgt af OG og .

muligheder snd-hda-intel enable_msi=1

For at ændringerne træder i kraft, skal du genstarte den virtuelle Linux-maskine med følgende kommando:

$ sudo genstart

Når den virtuelle maskine starter, skal du kontrollere, om MSI er aktiveret for lydenheden med følgende kommando:

$ sudo lspci -vv

Hvis MSI er aktiveret for lydenheden på den virtuelle maskine, bør du se den markerede linje i oplysningerne om lydenheden.

Sådan opdateres Proxmox VE initramfs?

Hver gang du foretager ændringer i filer i /etc/modules-load.d/ og /etc/modprobe.d/ mapper, skal du opdatere initramf'erne for din Proxmox VE 8 installation med følgende kommando:

$ update-initramfs -u -k alle

Når Proxmox VE initramfs er opdateret, genstart din Proxmox VE-server for at ændringerne træder i kraft.

$ genstart

Sådan opdateres Proxmox VE GRUB Bootloader?

Hver gang du opdaterer Proxmox VE GRUB boot-konfigurationsfilen /etc/default/grub , skal du opdatere GRUB bootloader for at ændringerne træder i kraft.

For at opdatere Proxmox VE GRUB bootloader med de nye konfigurationer skal du køre følgende kommando:

$ update-grub2

Når GRUB-bootloaderen er opdateret med den nye konfiguration, genstart din Proxmox VE-server for at ændringerne træder i kraft.

$ genstart

Konklusion

I denne artikel har vi diskuteret nogle af de mest almindelige Proxmox VE PCI/PCIE-passthrough- og GPU-passthrough-problemer og de trin, du kan tage for at løse disse problemer.

Referencer

  1. [TUTORIAL] – PCI/GPU Passthrough på Proxmox VE 8: Installation og konfiguration | Proxmox Support Forum
  2. Ultimativ begyndervejledning til Proxmox GPU Passthrough
  3. Læse- og skrivemodelspecifikke registre i Linux
  4. MSI Driver Guide HOWTO — Linux Kernel-dokumentationen