Viktige Proxmox VE 8 PCI/PCIE Passthrough-justeringer, rettelser og løsninger

Viktige Proxmox Ve 8 Pci Pcie Passthrough Justeringer Rettelser Og Losninger



De siste årene har støtte for PCI/PCIE (dvs. GPU-passthrough) forbedret seg mye i nyere maskinvare. Så den vanlige Proxmox VE PCI/PCIE og GPU-gjennomgangsveiledning skal fungere i det meste av ny maskinvare. Likevel kan du møte mange problemer med å gå gjennom GPUer og andre PCI/PCIE-enheter på en virtuell Proxmox VE-maskin. Det er mange justeringer/rettinger/løsninger for noen av de vanlige Proxmox VE GPU- og PCI/PCIE-gjennomgangsproblemene.

I denne artikkelen skal jeg diskutere noen av de vanligste Proxmox VE PCI/PCIE-passthrough- og GPU-passthrough-problemene og trinnene du kan ta for å løse disse problemene.









Innholdsfortegnelse

  1. Hva skal jeg gjøre hvis IOMMU Interrupt Remapping ikke støttes?
  2. Hva skal jeg gjøre hvis min GPU (eller PCI/PCIE-enhet) ikke er i sin egen IOMMU-gruppe?
  3. Hvordan svartelister jeg AMD GPU-drivere på Proxmox VE?
  4. Hvordan svartelister jeg NVIDIA GPU-drivere på Proxmox VE?
  5. Hvordan svartelister jeg Intel GPU-drivere på Proxmox VE?
  6. Hvordan sjekke om min GPU (eller PCI/PCIE-enhet) bruker VFIO-driveren på Proxmox VE?
  7. Jeg har svartelistet AMU GPU-driverne, men GPUen bruker ikke VFIO-driveren, hva skal jeg gjøre?
  8. Jeg har svartelistet NVIDIA GPU-driverne, men GPU-en bruker ikke VFIO-driveren, hva skal jeg gjøre?
  9. Jeg har svartelistet Intel GPU-driverne, men GPUen bruker ikke VFIO-driveren, hva skal jeg gjøre?
  10. Enkelt GPU brukte VFIO-driver, men når den ble konfigurert en andre GPU, fungerte den ikke, hvorfor?
  11. Hvorfor deaktivere VGA-arbitrering for GPU-ene og hvordan gjøre det?
  12. Hva om GPUen min fortsatt ikke bruker VFIO-driveren selv etter konfigurering av VFIO?
  13. GPU-gjennomgang viste ingen feil, men jeg får en svart skjerm på skjermen koblet til GPU-en sendt til Proxmox VE VM, hvorfor?
  14. Hva er AMD Vendor Reset Bug og hvordan løses det?
  15. Hvordan gi en vBIOS for den beståtte GPUen på en Proxmox VE Virtual Machine?
  16. Hva skal jeg gjøre hvis noen apper krasjer Proxmox VE Windows Virtual Machine?
  17. Hvordan løse HDMI Audio Crackling / Ødelagte problemer på Proxmox VE Linux Virtual Machines?.
  18. Hvordan oppdatere Proxmox VE initramfs?
  19. Hvordan oppdatere Proxmox VE GRUB Bootloader?
  20. Konklusjon
  21. Referanser



Hva skal jeg gjøre hvis IOMMU Interrupt Remapping ikke støttes?

For PCI/PCIE-passthrough, er IOMMU-avbruddsomordning viktig.





For å sjekke om prosessoren din støtter IOMMU-avbruddstilordning, kjør kommandoen nedenfor:

$ dmesg | grep -i remap



Hvis prosessoren din støtter IOMMU-avbruddstilordning, vil du se en slags utdata som bekrefter at avbruddstilordning er aktivert. Ellers vil du ikke se noen utganger.

Hvis IOMMU-avbruddstilordning ikke støttes på prosessoren din, må du konfigurere usikre avbrudd på Proxmox VE-serveren for å sende gjennom PCI/PCIE-enheter på virtuelle Proxmox VE-maskiner.

For å konfigurere usikre avbrudd på Proxmox VE, opprett en ny fil iommu_unsafe_interrupts.conf i /etc/modprobe.d katalogen og åpne den med nanotekstredigereren som følger:

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

Legg til følgende linje i iommu_unsafe_interrupts.conf fil og trykk + X etterfulgt av OG og for å lagre filen.

alternativer vfio_iommu_type1 allow_unsafe_interrupts=1

Når du er ferdig, må du oppdater initramfs til din Proxmox VE-server .

Hva skal jeg gjøre hvis min GPU (eller PCI/PCIE-enhet) ikke er i sin egen IOMMU-gruppe?

Hvis serveren din har flere PCI/PCIE-spor, kan du flytte GPU-en til et annet PCI/PCIE-spor og se om GPU-en er i sin egen IOMMU-gruppe.

Hvis det ikke fungerer, kan du prøve å aktivere ACS-overstyringskjerneoppdateringen på Proxmox VE.

For å prøve å aktivere ACS-overstyringskjerneoppdateringen på Proxmox VE, åpne /etc/default/grub fil med nanotekstredigeringsprogrammet som følger:

$ nano /etc/default/grub

Legg til kjerneoppstartsalternativet pcie_acs_override=nedstrøms på slutten av GRUB_CMDLINE_LINUX_DEFAULT .

Når du er ferdig, trykk + X etterfulgt av OG og for å lagre filen og sørge for å oppdater Proxmox VE GRUB bootloader for at endringene skal tre i kraft.

Du bør ha bedre IOMMU-gruppering når Proxmox VE-serveren starter opp.

Hvis din GPU fortsatt ikke har sin egen IOMMU-gruppe, kan du gå ett skritt videre ved å bruke pcie_acs_override=nedstrøms, multifunksjon i stedet. Du burde ha en enda bedre IOMMU-gruppering.

Hvis pcie_acs_override=nedstrøms, multifunksjon resulterer i bedre IOMMU-gruppering som pcie_acs_override=nedstrøms , så hvorfor bruke pcie_acs_override=nedstrøms i det hele tatt?

Vel, hensikten med PCIE ACS-overstyring er å lure kjernen til å tro at PCIE-enhetene er isolert når de ikke er i virkeligheten. Så, PCIE ACS-overstyring kommer med sikkerhets- og stabilitetsproblemer. Det er derfor du bør prøve å bruke et mindre aggressivt PCIE ACS-overstyringsalternativ pcie_acs_override=nedstrøms først og se om problemet ditt er løst. Hvis pcie_acs_override=nedstrøms fungerer ikke, bare da bør du bruke det mer aggressive alternativet pcie_acs_override=nedstrøms, multifunksjon .

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

Hvis du vil gå gjennom en AMD GPU på virtuelle Proxmox VE-maskiner, må du svarteliste AMD GPU-driverne og sørge for at den bruker VFIO-driveren i stedet.

Først åpner du /etc/modprobe.d/blacklist.conf fil med nanotekstredigeringsprogrammet som følger:

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

For å svarteliste AMD GPU-drivere, legg til følgende linjer i /etc/modprobe.d/blacklist.conf fil og trykk + X etterfulgt av OG og for å lagre filen.

svarteliste radeon

svarteliste amdgpu

Når du er ferdig, må du oppdater initramfs til din Proxmox VE-server for at endringene skal tre i kraft.

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

Hvis du vil gå gjennom en NVIDIA GPU på virtuelle Proxmox VE-maskiner, må du svarteliste NVIDIA GPU-driverne og sørge for at den bruker VFIO-driveren i stedet.

Først åpner du /etc/modprobe.d/blacklist.conf fil med nanotekstredigeringsprogrammet som følger:

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

For å svarteliste NVIDIA GPU-driverne, legg til følgende linjer i /etc/modprobe.d/blacklist.conf fil og trykk + X etterfulgt av OG og for å lagre filen.

svarteliste nouveau

svarteliste nvidia

svarteliste nvidiafb

svarteliste nvidia_drm

Når du er ferdig, må du oppdater initramfs til din Proxmox VE-server for at endringene skal tre i kraft.

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

Hvis du vil gå gjennom en Intel GPU på virtuelle Proxmox VE-maskiner, må du svarteliste Intel GPU-driverne og sørge for at den bruker VFIO-driveren i stedet.

Først åpner du /etc/modprobe.d/blacklist.conf fil med nanotekstredigeringsprogrammet som følger:

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

For å svarteliste Intel GPU-driverne, legg til følgende linjer i /etc/modprobe.d/blacklist.conf fil og trykk + X etterfulgt av OG og for å lagre filen.

svarteliste snd_hda_intel

svarteliste snd_hda_codec_hdmi

svarteliste i915

Når du er ferdig, må du oppdater initramfs til din Proxmox VE-server for at endringene skal tre i kraft.

Hvordan sjekke om min GPU (eller PCI/PCIE-enhet) bruker VFIO-driveren på Proxmox VE?

For å sjekke om din GPU eller ønskede PCI/PCIE-enheter bruker VFIO-driveren, kjør følgende kommando:

$ lspci -v

Hvis din GPU eller PCI/PCIE-enhet bruker VFIO-driveren, bør du se linjen Kjernedriver i bruk: vfio-pci som markert i skjermbildet nedenfor.

Jeg har svartelistet AMU GPU-driverne, men GPUen bruker ikke VFIO-driveren, hva skal jeg gjøre?

Noen ganger er det ikke nok å svarteliste AMD GPU-driverne, du må også konfigurere AMD GPU-driverne til å laste etter VFIO-driveren.

For å gjøre det, åpne /etc/modprobe.d/vfio.conf fil med nanotekstredigeringsprogrammet som følger:

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

For å konfigurere AMD GPU-driverne til å laste etter VFIO-driveren, legg til følgende linjer i /etc/modprobe.d/vfio.conf fil og trykk + X etterfulgt av OG og for å lagre filen.

softdep radeon pre: vfio-pci

softdep amdgpu pre: vfio-pci

Når du er ferdig, må du oppdater initramfs til din Proxmox VE-server for at endringene skal tre i kraft.

Jeg har svartelistet NVIDIA GPU-driverne, men GPU-en bruker ikke VFIO-driveren, hva skal jeg gjøre?

Noen ganger er det ikke nok å svarteliste NVIDIA GPU-driverne, du må også konfigurere NVIDIA GPU-driverne til å laste etter VFIO-driveren.

For å gjøre det, åpne /etc/modprobe.d/vfio.conf fil med nanotekstredigeringsprogrammet som følger:

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

For å konfigurere NVIDIA GPU-driverne til å laste etter VFIO-driveren, legg til følgende linjer i /etc/modprobe.d/vfio.conf fil og trykk + X etterfulgt av OG og for å lagre filen.

softdep ny pre: vfio-pci

softdep nvidia for: vfio-pci

softdep nvidiafb for: vfio-pci

softdep nvidia_drm pre: vfio-pci

softdep drm pre: vfio-pci

Når du er ferdig, må du oppdater initramfs til din Proxmox VE-server for at endringene skal tre i kraft.

Jeg har svartelistet Intel GPU-driverne, men GPUen bruker ikke VFIO-driveren, hva skal jeg gjøre?

Noen ganger er det ikke nok å svarteliste Intel GPU-driverne, du må også konfigurere Intel GPU-driverne til å laste etter VFIO-driveren.

For å gjøre det, åpne /etc/modprobe.d/vfio.conf fil med nanotekstredigeringsprogrammet som følger:

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

For å konfigurere Intel GPU-driverne til å laste etter VFIO-driveren, legg til følgende linjer i /etc/modprobe.d/vfio.conf fil og trykk + X etterfulgt av OG og for å lagre 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 ferdig, må du oppdater initramfs til din Proxmox VE-server for at endringene skal tre i kraft.

Enkelt GPU brukte VFIO-driver, men når den ble konfigurert en andre GPU, fungerte den ikke, hvorfor?

I /etc/modprobe.d/vfio.conf fil, må du legge til ID-ene til alle PCI/PCIE-enhetene du vil bruke VFIO-driveren på én enkelt linje. Én enhet per linje vil ikke fungere.

For eksempel, hvis du har 2 GPUer som du vil konfigurere for å bruke VFIO-driveren, må du legge til ID-ene deres på en enkelt linje i /etc/modprobe.d/vfio.conf fil som følger:

alternativer vfio-pci ids=,,,

Hvis du vil legge til en annen GPU til listen, legg den til på slutten av den eksisterende vfio-pci linje i /etc/modprobe.d/vfio.conf fil som følger:

alternativer vfio-pci ids=,,,,,

Gjør aldri dette. Selv om det ser mye renere ut, vil det ikke fungere. Jeg skulle ønske vi kunne spesifisere PCI/PCIE-ID-er på denne måten.

alternativer vfio-pci ids=,

alternativer vfio-pci ids=,

alternativer vfio-pci ids=,

Hvorfor deaktivere VGA-arbitrering for GPU-ene og hvordan gjøre det?

Hvis du bruker UEFI/OVMF BIOS på den virtuelle Proxmox VE-maskinen der du ønsker å gå gjennom GPUen, kan du deaktivere VGA-arbitrering som vil redusere de eldre kodene som kreves under oppstart.

For å deaktivere VGA-arbitrering for GPU-ene, legg til disable_vga=1 på slutten av vfio-pci-alternativet i /etc/modprobe.d/vfio.conf fil som vist nedenfor:

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

Hva om GPUen min fortsatt ikke bruker VFIO-driveren selv etter konfigurering av VFIO?

Selv etter å ha gjort alt riktig, hvis GPUen din fortsatt ikke bruker VFIO-driveren, må du prøve å starte opp Proxmox VE med kjernealternativer som deaktiverer videorammebufferen.

På Proxmox VE 7.1 og eldre er nofb nomodeset video=vesafb:off video=efifb:off video=simplefb:off kjernealternativer deaktiverer GPU-rammebufferen for din Proxmox VE-server.

På Proxmox VE 7.2 og nyere er initcall_blacklist=sysfb_init kjernealternativet gjør en bedre jobb med å deaktivere GPU-rammebufferen for din Proxmox VE-server.

Åpne GRUB bootloader-konfigurasjonsfilen /etc/default/grub fil med nanotekstredigereren med følgende kommando:

$ nano /etc/default/grub

Legg til kjernealternativet initcall_blacklist=sysfb_init på slutten av GRUB_CMDLINE_LINUX_DEFAULT .

Når du er ferdig, trykk + X etterfulgt av OG og for å lagre filen og sørge for å oppdater Proxmox VE GRUB bootloader for at endringene skal tre i kraft.

GPU-gjennomgang viste ingen feil, men jeg får en svart skjerm på skjermen koblet til GPU-en sendt til Proxmox VE VM, hvorfor?

Når du har sendt en GPU til en virtuell Proxmox VE-maskin, sørg for å bruke Misligholde Grafikkort før du starter den virtuelle maskinen. På denne måten vil du kunne få tilgang til visningen av den virtuelle maskinen fra Proxmox VE-nettadministrasjonsgrensesnittet, laste ned GPU-driverinstallasjonsprogrammet på den virtuelle maskinen og installere det på den virtuelle maskinen.

Når GPU-driveren er installert på den virtuelle maskinen, vil skjermen til den virtuelle maskinen vises på skjermen koblet til GPUen som du også har sendt til den virtuelle maskinen.

Når GPU-driveren er installert på den virtuelle maskinen og skjermen til den virtuelle maskinen vises på skjermen koblet til GPUen (overført til den virtuelle maskinen), slår du av den virtuelle maskinen og setter inn Vis grafikkort av den virtuelle maskinen til ingen .

Når du er klar, neste gang du slår på den virtuelle maskinen, vil skjermen til den virtuelle maskinen kun vises på skjermen som er koblet til GPUen (overført til den virtuelle maskinen), ingenting vil vises på Proxmox VE-nettet administrasjonsgrensesnitt. På denne måten vil du ha den samme opplevelsen som å bruke en ekte datamaskin selv om du bruker en virtuell maskin.

Husk, bruk aldri SPICE, VirtIO GPU og VirGL GPU Display Grafikkort på den virtuelle Proxmox VE-maskinen du konfigurerer for GPU-gjennomgang, da den har stor sjanse for feil.

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

AMD GPUer har en velkjent feil kalt 'leverandørreset bug'. Når en AMD GPU er sendt til en virtuell Proxmox VE-maskin, og du slår av denne virtuelle maskinen, vil du ikke kunne bruke AMD GPU i en annen virtuell Proxmox VE-maskin. Noen ganger vil Proxmox VE-serveren ikke reagere som et resultat. Dette kalles 'vendor reset bug' for AMD GPUer.

Grunnen til at dette skjer er at AMD GPUer ikke kan tilbakestille seg selv riktig etter å ha blitt sendt til en virtuell maskin. For å fikse dette problemet må du tilbakestille AMD GPU riktig. For mer informasjon om installering av AMD-leverandørreset på Proxmox VE, les denne artikkelen og les denne tråden på Proxmox VE-forumet . Også, sjekk GitHub-siden for tilbakestilling av leverandøren .

Hvordan gi en vBIOS for den beståtte GPUen på en Proxmox VE Virtual Machine?

Hvis du har installert GPU-en på det første sporet på hovedkortet, kan det hende du ikke kan passere GPU-en i en virtuell Proxmox VE-maskin som standard. Noen hovedkort skygger vBIOS-en til GPU-en som er installert på det første sporet som standard, noe som er grunnen til at GPU-en installert på det første sporet på disse hovedkortene ikke kan overføres til virtuelle maskiner.

Løsningen på dette problemet er å installere GPUen på hovedkortets andre spor, trekke ut vBIOS-en til GPUen, installere GPUen på hovedkortets første spor og sende GPU-en til en virtuell Proxmox VE-maskin sammen med den utpakkede vBIOS til GPUen.

For å lære hvordan du trekker ut vBIOS fra GPUen din, les denne artikkelen .

Når du har fått tak i vBIOS for GPUen din, må du lagre vBIOS-filen i /usr/share/kvm/ katalogen til din Proxmox VE-server for å få tilgang til den.

Når vBIOS-filen for GPU-en din er lagret i /usr/share/kvm/ katalogen, må du konfigurere den virtuelle maskinen for å bruke den. For øyeblikket er det ingen måte å spesifisere vBIOS-filen for PCI/PCIE-enheter til virtuelle Proxmox VE-maskiner fra Proxmox VE-nettadministrasjonsgrensesnittet. Så du må gjøre alt fra Proxmox VE-skallet/kommandolinjen.

Du kan finne konfigurasjonsfilene for den virtuelle Proxmox VE-maskinen i /etc/pve/qemu-server/ katalogen til din Proxmox VE-server. Hver virtuelle Proxmox VE-maskin har én konfigurasjonsfil i denne katalogen i formatet .conf .

For å åpne konfigurasjonsfilen for den virtuelle Proxmox VE-maskinen (for redigering) for den virtuelle maskinens ID 100, må du for eksempel kjøre følgende kommando:

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

I konfigurasjonsfilen for den virtuelle maskinen må du legge til romfil= i hostpciX linje som er ansvarlig for å sende GPU på den virtuelle maskinen.

For eksempel, hvis vBIOS-filnavnet for min GPU er gigabyte-nvidia-1050ti.bin , og jeg har passert GPU-en på det første sporet (spor 0) på den virtuelle maskinen ( hostpci0 ), deretter i 100.conf fil, skal linjen være som følger:

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

Når du er ferdig, lagrer du konfigurasjonsfilen for den virtuelle maskinen ved å trykke + X etterfulgt av OG og , start den virtuelle maskinen og sjekk om GPU-gjennomgangen fungerer.

Hva skal jeg gjøre hvis noen apper krasjer Proxmox VE Windows Virtual Machine?

Noen apper som GeForce Experience, Passmark osv. kan krasje Proxmox VE Windows virtuelle maskiner. Du kan også oppleve en plutselig blå skjerm (BSOD) på Proxmox VE Windows virtuelle maskiner. Grunnen til at det skjer er at den virtuelle Windows-maskinen kan prøve å få tilgang til de modellspesifikke registrene (MSR) som faktisk ikke er tilgjengelige, og avhengig av hvordan maskinvaren din håndterer MSR-forespørsler, kan systemet krasje.

Løsningen på dette problemet er å ignorere MSR-meldinger på din Proxmox VE-server.

For å konfigurere MSR-er på din Proxmox VE-server, åpne /etc/modprobe.d/kvm.conf fil med nanotekstredigeringsprogrammet som følger:

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

For å ignorere MSR-er på din Proxmox VE-server, legg til følgende linje i /etc/modprobe.d/kvm.conf fil.

alternativer kvm ignore_msrs=1

Når MSR-er er ignorert, kan du se mange MSR-advarselsmeldinger i dmesg-systemloggen. For å unngå det kan du ignorere MSR-er samt deaktivere logging av MSR-advarselsmeldinger ved å legge til følgende linje i stedet:

alternativer kvm ignore_msrs=1 report_ignored_msrs=0

Når du er ferdig, trykk + X etterfulgt av OG og å lagre /etc/modprobe.d/kvm.conf fil og oppdater initramfs til din Proxmox VE-server for at endringene skal tre i kraft.

Hvordan løse HDMI Audio Crackling / Ødelagte problemer på Proxmox VE Linux Virtual Machines?

Hvis du har sendt GPU-en til en Linux Proxmox VE virtuell maskin og du får dårlig lydkvalitet på den virtuelle maskinen, må du aktivere MSI (Message Signal Interrupt) for lydenheten på den virtuelle Proxmox VE-maskinen.

For å aktivere MSI på den virtuelle Linux Proxmox VE-maskinen, åpne /etc/modprobe.d/snd-hda-intel.conf fil med nanotekstredigereren på den virtuelle maskinen med følgende kommando:

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

Legg til følgende linje og lagre filen ved å trykke + X etterfulgt av OG og .

alternativer snd-hda-intel enable_msi=1

For at endringene skal tre i kraft, start den virtuelle Linux-maskinen på nytt med følgende kommando:

$ sudo omstart

Når den virtuelle maskinen starter, sjekk om MSI er aktivert for lydenheten med følgende kommando:

$ sudo lspci -vv

Hvis MSI er aktivert for lydenheten på den virtuelle maskinen, bør du se den merkede linjen i informasjonen om lydenheten.

Hvordan oppdatere Proxmox VE initramfs?

Hver gang du gjør endringer i filene i /etc/modules-load.d/ og /etc/modprobe.d/ kataloger, må du oppdatere initramfs for din Proxmox VE 8-installasjon med følgende kommando:

$ update-initramfs -u -k alle

Når Proxmox VE initramfs er oppdatert, starter du Proxmox VE-serveren på nytt for at endringene skal tre i kraft.

$ restart

Hvordan oppdatere Proxmox VE GRUB Bootloader?

Hver gang du oppdaterer oppstartskonfigurasjonsfilen for Proxmox VE GRUB /etc/default/grub , må du oppdatere GRUB bootloader for at endringene skal tre i kraft.

For å oppdatere Proxmox VE GRUB bootloader med de nye konfigurasjonene, kjør følgende kommando:

$ update-grub2

Når GRUB bootloader er oppdatert med den nye konfigurasjonen, start Proxmox VE-serveren på nytt for at endringene skal tre i kraft.

$ restart

Konklusjon

I denne artikkelen har vi diskutert noen av de vanligste Proxmox VE PCI/PCIE-passthrough- og GPU-passthrough-problemene og trinnene du kan ta for å løse disse problemene.

Referanser

  1. [VEILEDNING] – PCI/GPU Passthrough på Proxmox VE 8 : Installasjon og konfigurasjon | Proxmox Support Forum
  2. Ultimate Beginner's Guide to Proxmox GPU Passthrough
  3. Lese og skrive modellspesifikke registre i Linux
  4. MSI Driver Guide HOWTO — Linux-kjernen dokumentasjon