V zadnjih letih se je podpora za PCI/PCIE (tj. GPU passthrough) v novejši strojni opremi močno izboljšala. Torej, redno Prehodni vodnik Proxmox VE PCI/PCIE in GPU mora delovati v večini nove strojne opreme. Kljub temu se lahko soočite s številnimi težavami pri prehodu GPU-jev in drugih naprav PCI/PCIE na virtualnem stroju Proxmox VE. Obstaja veliko prilagoditev/popravkov/obhodnih rešitev za nekatere pogoste težave s prehodom Proxmox VE GPU in PCI/PCIE.
V tem članku bom razpravljal o nekaterih najpogostejših težavah s prehodom Proxmox VE PCI/PCIE in prehodom GPU ter korakih, ki jih lahko naredite za rešitev teh težav.
Kazalo
- Kaj storiti, če preslikava prekinitve IOMMU ni podprta?
- Kaj storiti, če moj GPE (ali naprava PCI/PCIE) ni v lastni skupini IOMMU?
- Kako naredim črni seznam gonilnikov AMD GPU na Proxmox VE?
- Kako naredim črni seznam gonilnikov NVIDIA GPU na Proxmox VE?
- Kako postavim gonilnike Intel GPU na črni seznam na Proxmox VE?
- Kako preverim, ali moj GPE (ali naprava PCI/PCIE) uporablja gonilnik VFIO na Proxmox VE?
- Gonilnike GPE AMU sem uvrstil na črni seznam, vendar GPE še vedno ne uporablja gonilnika VFIO, kaj storiti?
- Gonilnike GPE NVIDIA sem uvrstil na črni seznam, vendar GPE še vedno ne uporablja gonilnika VFIO, kaj storiti?
- Gonilnike Intel GPU sem dal na črno listo, vendar GPE še vedno ne uporablja gonilnika VFIO, kaj storiti?
- Ena GPU je uporabljala gonilnik VFIO, vendar ko je bila konfigurirana druga GPE, ni delovala, zakaj?
- Zakaj onemogočiti arbitražo VGA za GPU in kako to storiti?
- Kaj pa, če moj GPE še vedno ne uporablja gonilnika VFIO tudi po konfiguraciji VFIO?
- GPE Passthrough ni pokazal nobenih napak, vendar dobivam črn zaslon na monitorju, ki je povezan z GPE, posredovanim Proxmox VE VM, zakaj?
- Kaj je AMD Vendor Reset Bug in kako ga rešiti?
- Kako zagotoviti vBIOS za uspešno GPE na virtualnem stroju Proxmox VE?
- Kaj storiti, če nekatere aplikacije zrušijo virtualni stroj Windows Proxmox VE?
- Kako rešiti težave s pokanjem/pokvarjenostjo zvoka HDMI na virtualnih strojih Proxmox VE Linux?.
- Kako posodobiti initramfs Proxmox VE?
- Kako posodobiti zagonski nalagalnik Proxmox VE GRUB?
- Zaključek
- Reference
Kaj storiti, če preslikava prekinitve IOMMU ni podprta?
Za prehod PCI/PCIE je preslikava prekinitve IOMMU bistvena.
Če želite preveriti, ali vaš procesor podpira preslikavo prekinitev IOMMU, zaženite spodnji ukaz:
$ dmesg | grep -i preslikava
Če vaš procesor podpira preslikavo prekinitve IOMMU, boste videli nekakšen izhod, ki potrjuje, da je preslikava prekinitve omogočena. V nasprotnem primeru ne boste videli rezultatov.
Če preslikava prekinitev IOMMU ni podprta na vašem procesorju, boste morali konfigurirati nevarne prekinitve na vašem strežniku Proxmox VE za prenos naprav PCI/PCIE na virtualnih strojih Proxmox VE.
Če želite konfigurirati nevarne prekinitve na Proxmox VE, ustvarite novo datoteko iommu_unsafe_interrupts.conf v /etc/modprobe.d imenik in ga odprite z nano urejevalnikom besedila, kot sledi:
$ nano /etc/modprobe.d/iommu_unsafe_interrupts.conf
Dodajte naslednjo vrstico v iommu_unsafe_interrupts.conf datoteko in pritisnite
Ko končate, morate posodobite initramfs vašega strežnika Proxmox VE .
Kaj storiti, če moj GPE (ali naprava PCI/PCIE) ni v lastni skupini IOMMU?
Če ima vaš strežnik več rež PCI/PCIE, lahko GPE premaknete v drugo režo PCI/PCIE in preverite, ali je GPE v lastni skupini IOMMU.
Če to ne deluje, lahko poskusite omogočiti popravek jedra za preglasitev ACS na Proxmox VE.
Če želite poskusiti omogočiti popravek jedra za preglasitev ACS na Proxmox VE, odprite /etc/default/grub datoteko z nano urejevalnikom besedila, kot sledi:
$ nano /etc/default/grub
Dodajte možnost zagona jedra pcie_acs_override=dolvodno na koncu GRUB_CMDLINE_LINUX_DEFAULT .
Ko končate, pritisnite
Ko se strežnik Proxmox VE zažene, bi morali imeti boljše združevanje IOMMU.
Če vaš GPE še vedno nima lastne skupine IOMMU, lahko greste še korak dlje z uporabo pcie_acs_override=dolvodno,večnamensko namesto tega. Morali bi imeti še boljšo skupino IOMMU.
če pcie_acs_override=dolvodno,večnamensko ima za posledico boljše združevanje IOMMU pcie_acs_override=dolvodno , zakaj potem uporabljati pcie_acs_override=dolvodno nasploh?
No, namen preglasitve PCIE ACS je preslepiti jedro, da misli, da so naprave PCIE izolirane, čeprav v resnici niso. Torej ima preglasitev PCIE ACS težave z varnostjo in stabilnostjo. Zato poskusite uporabiti manj agresivno možnost preglasitve PCIE ACS pcie_acs_override=dolvodno in preverite, ali je vaša težava rešena. če pcie_acs_override=dolvodno ne deluje, potem morate uporabiti bolj agresivno možnost pcie_acs_override=dolvodno,večnamensko .
Kako naredim črni seznam gonilnikov AMD GPU na Proxmox VE?
Če želite prepustiti GPU AMD na virtualnih strojih Proxmox VE, morate gonilnike GPU AMD uvrstiti na črni seznam in se prepričati, da namesto tega uporablja gonilnik VFIO.
Najprej odprite /etc/modprobe.d/blacklist.conf datoteko z nano urejevalnikom besedila, kot sledi:
$ nano /etc/modprobe.d/blacklist.conf
Če želite gonilnike GPU AMD uvrstiti na črni seznam, dodajte naslednje vrstice v /etc/modprobe.d/blacklist.conf datoteko in pritisnite
črni seznam amdgpu
Ko končate, morate posodobite initramfs vašega strežnika Proxmox VE da bodo spremembe začele veljati.
Kako naredim črni seznam gonilnikov NVIDIA GPU na Proxmox VE?
Če želite prepustiti NVIDIA GPE na virtualnih strojih Proxmox VE, morate gonilnike NVIDIA GPU uvrstiti na črni seznam in se prepričati, da namesto tega uporablja gonilnik VFIO.
Najprej odprite /etc/modprobe.d/blacklist.conf datoteko z nano urejevalnikom besedila, kot sledi:
$ nano /etc/modprobe.d/blacklist.conf
Če želite gonilnike GPE NVIDIA uvrstiti na črni seznam, dodajte naslednje vrstice v /etc/modprobe.d/blacklist.conf datoteko in pritisnite
črni seznam nvidia
črni seznam nvidiafb
črni seznam nvidia_drm
Ko končate, morate posodobite initramfs vašega strežnika Proxmox VE da bodo spremembe začele veljati.
Kako postavim gonilnike Intel GPU na črni seznam na Proxmox VE?
Če želite prepustiti Intel GPU na virtualnih strojih Proxmox VE, morate gonilnike Intel GPU uvrstiti na črni seznam in zagotoviti, da namesto tega uporablja gonilnik VFIO.
Najprej odprite /etc/modprobe.d/blacklist.conf datoteko z nano urejevalnikom besedila, kot sledi:
$ nano /etc/modprobe.d/blacklist.conf
Če želite gonilnike Intel GPU uvrstiti na črni seznam, dodajte naslednje vrstice v /etc/modprobe.d/blacklist.conf datoteko in pritisnite
črni seznam snd_hda_codec_hdmi
črni seznam i915
Ko končate, morate posodobite initramfs vašega strežnika Proxmox VE da bodo spremembe začele veljati.
Kako preverim, ali moj GPE (ali naprava PCI/PCIE) uporablja gonilnik VFIO na Proxmox VE?
Če želite preveriti, ali vaš GPE ali želene naprave PCI/PCIE uporabljajo gonilnik VFIO, zaženite naslednji ukaz:
$ lspci -v
Če vaša naprava GPE ali PCI/PCIE uporablja gonilnik VFIO, bi morali videti vrstico Gonilnik jedra v uporabi: vfio-pci kot je označeno na spodnjem posnetku zaslona.
Gonilnike GPE AMU sem uvrstil na črni seznam, vendar GPE še vedno ne uporablja gonilnika VFIO, kaj storiti?
Včasih uvrstitev gonilnikov AMD GPE na črni seznam ni dovolj, konfigurirati morate tudi gonilnike AMD GPU, da se naložijo po gonilniku VFIO.
Če želite to narediti, odprite /etc/modprobe.d/vfio.conf datoteko z nano urejevalnikom besedila, kot sledi:
$ nano /etc/modprobe.d/vfio.conf
Če želite konfigurirati gonilnike GPE AMD za nalaganje po gonilniku VFIO, dodajte naslednje vrstice v /etc/modprobe.d/vfio.conf datoteko in pritisnite
softdep amdgpu pre: vfio-pci
Ko končate, morate posodobite initramfs vašega strežnika Proxmox VE da bodo spremembe začele veljati.
Gonilnike GPE NVIDIA sem uvrstil na črni seznam, vendar GPE še vedno ne uporablja gonilnika VFIO, kaj storiti?
Včasih uvrstitev gonilnikov NVIDIA GPU na črni seznam ni dovolj, konfigurirati morate tudi gonilnike NVIDIA GPU, da se naložijo za gonilnikom VFIO.
Če želite to narediti, odprite /etc/modprobe.d/vfio.conf datoteko z nano urejevalnikom besedila, kot sledi:
$ nano /etc/modprobe.d/vfio.conf
Če želite konfigurirati gonilnike GPU NVIDIA za nalaganje po gonilniku VFIO, dodajte naslednje vrstice v /etc/modprobe.d/vfio.conf datoteko in pritisnite
softdep nvidia za: vfio-pci
softdep nvidiafb za: vfio-pci
softdep nvidia_drm pre: vfio-pci
softdep drm pre: vfio-pci
Ko končate, morate posodobite initramfs vašega strežnika Proxmox VE da bodo spremembe začele veljati.
Gonilnike Intel GPU sem uvrstil na črni seznam, vendar GPE še vedno ne uporablja gonilnika VFIO, kaj storiti?
Včasih uvrstitev gonilnikov Intel GPU na črni seznam ni dovolj, konfigurirati morate tudi gonilnike Intel GPU, da se naložijo po gonilniku VFIO.
Če želite to narediti, odprite /etc/modprobe.d/vfio.conf datoteko z nano urejevalnikom besedila, kot sledi:
$ nano /etc/modprobe.d/vfio.conf
Če želite konfigurirati gonilnike Intel GPE za nalaganje po gonilniku VFIO, dodajte naslednje vrstice v /etc/modprobe.d/vfio.conf datoteko in pritisnite
softdep snd_hda_codec_hdmi pre: vfio-pci
softdep i915 pre: vfio-pci
Ko končate, morate posodobite initramfs vašega strežnika Proxmox VE da bodo spremembe začele veljati.
Ena GPE je uporabljala gonilnik VFIO, vendar ko je bila konfigurirana druga GPE, ni delovala, zakaj?
V /etc/modprobe.d/vfio.conf morate v eno vrstico dodati ID-je vseh naprav PCI/PCIE, za katere želite, da uporabljajo gonilnik VFIO. Ena naprava na vrstico ne bo delovala.
Če imate na primer 2 grafični procesorji, ki ju želite konfigurirati za uporabo gonilnika VFIO, morate njuna ID-ja dodati v eno vrstico v /etc/modprobe.d/vfio.conf datoteko na naslednji način:
možnosti vfio-pci ids=
Če želite na seznam dodati še en GPE, ga samo dodajte na konec obstoječega vfio-pci vrstica v /etc/modprobe.d/vfio.conf datoteko na naslednji način:
možnosti vfio-pci ids=
Nikoli ne počni tega. Čeprav je videti veliko čistejše, ne bo delovalo. Želim si, da bi lahko na ta način določili ID-je PCI/PCIE.
možnosti vfio-pci ids=možnosti vfio-pci ids=
možnosti vfio-pci ids=
Zakaj onemogočiti arbitražo VGA za GPU in kako to storiti?
Če uporabljate UEFI/OVMF BIOS na virtualnem stroju Proxmox VE, kjer želite prehajati skozi GPE, lahko onemogočite arbitražo VGA, kar bo zmanjšalo stare kode, potrebne med zagonom.
Če želite onemogočiti arbitražo VGA za GPU, dodajte disable_vga=1 na koncu možnost vfio-pci v /etc/modprobe.d/vfio.conf datoteko, kot je prikazano spodaj:
možnosti vfio-pci ids=
Kaj pa, če moj GPE še vedno ne uporablja gonilnika VFIO tudi po konfiguraciji VFIO?
Če vaš GPE še vedno ne uporablja gonilnika VFIO, boste morali tudi po tem, ko ste vse naredili pravilno, poskusiti zagnati Proxmox VE z možnostmi jedra, ki onemogočajo video medpomnilnik okvirjev.
Na Proxmox VE 7.1 in starejših je nofb nomodeset video=vesafb:off video=efifb:off video=simplefb:off možnosti jedra onemogočijo medpomnilnik okvirjev GPU za vaš strežnik Proxmox VE.
Na Proxmox VE 7.2 in novejših je initcall_blacklist=sysfb_init možnost jedra je boljša pri onemogočanju okvirnega medpomnilnika GPU za vaš strežnik Proxmox VE.
Odprite konfiguracijsko datoteko zagonskega nalagalnika GRUB /etc/default/grub datoteko z nano urejevalnikom besedil z naslednjim ukazom:
$ nano /etc/default/grub
Dodajte možnost jedra initcall_blacklist=sysfb_init na koncu GRUB_CMDLINE_LINUX_DEFAULT .
Ko končate, pritisnite
GPU Passthrough ni pokazal nobenih napak, vendar dobivam črn zaslon na monitorju, ki je povezan z GPE, posredovanim na Proxmox VE VM, zakaj?
Ko prenesete GPE na virtualni stroj Proxmox VE, uporabite Privzeto Grafična kartica, preden zaženete virtualni stroj. Na ta način boste lahko dostopali do zaslona virtualnega stroja iz uporabniškega vmesnika spletnega upravljanja Proxmox VE, prenesli namestitveni program GPU gonilnika na virtualni stroj in ga namestili na virtualni stroj.
Ko je gonilnik GPE nameščen na virtualni stroj, bo zaslon virtualnega stroja prikazan na monitorju, povezanem z GPE, ki ste ga prav tako posredovali virtualnemu stroju.
Ko je gonilnik GPE nameščen v navidezni stroj in je zaslon navideznega stroja prikazan na monitorju, povezanem z GPE (posredovan v navidezni stroj), izklopite navidezni stroj in nastavite Prikaz grafične kartice virtualnega stroja do nič .
Ko ste nastavljeni, bo naslednjič, ko vklopite navidezni stroj, zaslon navideznega stroja prikazan samo na monitorju, povezanem z grafično procesorsko enoto (posredovan navideznemu stroju), na spletu Proxmox VE ne bo prikazano nič uporabniški vmesnik za upravljanje. Tako boste imeli enako izkušnjo kot pri uporabi pravega računalnika, čeprav uporabljate virtualni stroj.
Ne pozabite, nikoli ne uporabljajte SPICE, VirtIO GPU in VirGL GPU Display Graphic Card na virtualnem stroju Proxmox VE, ki ga konfigurirate za prehod GPE, saj obstaja velika verjetnost okvare.
Kaj je AMD Vendor Reset Bug in kako ga rešiti?
GPU AMD imajo dobro znano napako, imenovano 'napaka pri ponastavitvi prodajalca'. Ko je AMD GPE posredovan virtualnemu stroju Proxmox VE in izklopite ta virtualni stroj, ne boste mogli uporabljati AMD GPE v drugem virtualnem stroju Proxmox VE. Včasih se vaš strežnik Proxmox VE zaradi tega ne bo več odzival. To se imenuje 'napaka prodajalca pri ponastavitvi' grafičnih procesorjev AMD.
Razlog za to je, da se grafični procesorji AMD ne morejo pravilno ponastaviti, potem ko so bili posredovani virtualnemu stroju. Če želite odpraviti to težavo, boste morali pravilno ponastaviti vaš AMD GPE. Za več informacij o namestitvi ponastavitve prodajalca AMD na Proxmox VE, preberi ta članek in preberi to temo na forumu Proxmox VE . tudi preverite stran GitHub za ponastavitev ponudnika .
Kako zagotoviti vBIOS za uspešno GPE na virtualnem stroju Proxmox VE?
Če ste GPE namestili na prvo režo svoje matične plošče, morda privzeto ne boste mogli prenesti GPE v virtualni stroj Proxmox VE. Nekatere matične plošče privzeto zasenčijo vBIOS GPE-ja, nameščenega na prvi reži, kar je razlog, da GPE-ja, nameščenega na prvi reži teh matičnih plošč, ni mogoče posredovati virtualnim strojem.
Rešitev te težave je namestitev GPE-ja na drugo režo matične plošče, ekstrahiranje vBIOS-a GPE-ja, namestitev GPE-ja na prvo režo matične plošče in prehod GPE-ja na virtualni stroj Proxmox VE skupaj z ekstrahiranim vBIOS GPU-ja.
Če želite izvedeti, kako ekstrahirati vBIOS vaše GPE, preberi ta članek .
Ko pridobite vBIOS za vaš GPE, morate shraniti datoteko vBIOS v /usr/share/kvm/ imenik vašega strežnika Proxmox VE za dostop do njega.
Ko je datoteka vBIOS za vaš GPE shranjena v /usr/share/kvm/ imenik, morate konfigurirati vaš virtualni stroj, da ga lahko uporabljate. Trenutno ni mogoče določiti datoteke vBIOS za naprave PCI/PCIE virtualnih strojev Proxmox VE iz uporabniškega vmesnika za spletno upravljanje Proxmox VE. Torej boste morali narediti vse iz lupine/ukazne vrstice Proxmox VE.
Konfiguracijske datoteke virtualnega stroja Proxmox VE najdete v /etc/pve/qemu-server/ imenik vašega strežnika Proxmox VE. Vsak virtualni stroj Proxmox VE ima eno konfiguracijsko datoteko v tem imeniku v formatu
Če želite na primer odpreti konfiguracijsko datoteko virtualnega stroja Proxmox VE (za urejanje) za ID virtualnega stroja 100, boste morali zagnati naslednji ukaz:
$ nano /etc/pve/qemu-server/100.conf
V konfiguracijski datoteki navideznega stroja boste morali dodati romfile=
Na primer, če je ime datoteke vBIOS za moj GPE gigabyte-nvidia-1050ti.bin , in opravil sem GPE na prvi reži (reži 0) navideznega stroja ( hostpci0 ), nato v 100.konf datoteka, mora biti vrstica naslednja:
hostpci0:
Ko končate, shranite konfiguracijsko datoteko navideznega stroja s pritiskom na
Kaj storiti, če nekatere aplikacije zrušijo virtualni stroj Windows Proxmox VE?
Nekatere aplikacije, kot so GeForce Experience, Passmark itd., lahko zrušijo virtualne stroje Windows Proxmox VE. Prav tako lahko doživite nenaden modri zaslon smrti (BSOD) na svojih virtualnih strojih Proxmox VE Windows. Razlog za to je, da lahko navidezni stroj Windows poskuša dostopati do registrov, specifičnih za model (MSR), ki dejansko niso na voljo, in odvisno od tega, kako vaša strojna oprema obravnava zahteve MSR, se lahko vaš sistem zruši.
Rešitev te težave je ignoriranje sporočil MSR na vašem strežniku Proxmox VE.
Če želite konfigurirati MSR na vašem strežniku Proxmox VE, odprite /etc/modprobe.d/kvm.conf datoteko z nano urejevalnikom besedila, kot sledi:
$ nano /etc/modprobe.d/kvm.conf
Če želite prezreti MSR-je na vašem strežniku Proxmox VE, dodajte naslednjo vrstico v /etc/modprobe.d/kvm.conf mapa.
možnosti kvm ignore_msrs=1
Ko so MSR-ji prezrti, boste morda videli veliko opozorilnih sporočil MSR-jev v svojem sistemskem dnevniku dmesg. Da bi se temu izognili, lahko prezrete MSR-je in onemogočite beleženje opozorilnih sporočil MSR-jev, tako da namesto tega dodate naslednjo vrstico:
možnosti kvm ignore_msrs=1 report_ignored_msrs=0
Ko končate, pritisnite
Kako rešiti težave s pokanjem/pokvarjenostjo zvoka HDMI na virtualnih strojih Proxmox VE Linux?
Če ste GPE prenesli na virtualni stroj Linux Proxmox VE in na virtualnem stroju dobivate slabo kakovost zvoka, boste morali omogočiti MSI (prekinitev signala sporočila) za zvočno napravo na virtualnem stroju Proxmox VE.
Če želite omogočiti MSI na virtualnem stroju Linux Proxmox VE, odprite /etc/modprobe.d/snd-hda-intel.conf datoteko z nano urejevalnikom besedila na virtualnem računalniku z naslednjim ukazom:
$ sudo nano /etc/modprobe.d/snd-had-intel.conf
Dodajte naslednjo vrstico in shranite datoteko s pritiskom na
Da spremembe začnejo veljati, znova zaženite navidezni stroj Linux z naslednjim ukazom:
$ sudo ponovni zagon
Ko se virtualni stroj zažene, preverite, ali je MSI omogočen za zvočno napravo z naslednjim ukazom:
$ sudo lspci -vv
Če je MSI omogočen za zvočno napravo na virtualnem računalniku, bi morali videti označeno vrstico v informacijah o zvočni napravi.
Kako posodobiti initramfs Proxmox VE?
Vsakič, ko spremenite datoteke v /etc/modules-load.d/ in /etc/modprobe.d/ imenikov, morate posodobiti initramfs vaše namestitve Proxmox VE 8 z naslednjim ukazom:
$ posodobitev-initramfs -u -k vse
Ko je initramfs Proxmox VE posodobljen, znova zaženite strežnik Proxmox VE, da bodo spremembe začele veljati.
$ ponovni zagon
Kako posodobiti zagonski nalagalnik Proxmox VE GRUB?
Vsakič, ko posodobite zagonsko konfiguracijsko datoteko Proxmox VE GRUB /etc/default/grub , morate posodobiti zagonski nalagalnik GRUB, da bodo spremembe začele veljati.
Če želite posodobiti zagonski nalagalnik Proxmox VE GRUB z novimi konfiguracijami, zaženite naslednji ukaz:
$ posodobitev-grub2
Ko je zagonski nalagalnik GRUB posodobljen z novo konfiguracijo, znova zaženite strežnik Proxmox VE, da bodo spremembe začele veljati.
$ ponovni zagon
Zaključek
V tem članku smo razpravljali o nekaterih najpogostejših težavah s prehodom Proxmox VE PCI/PCIE in prehodom GPU ter o korakih, ki jih lahko naredite za rešitev teh težav.
Reference
- [VADNICA] – PCI/GPU Passthrough na Proxmox VE 8: Namestitev in konfiguracija | Forum za podporo Proxmox
- Ultimate Guide for Beginners to Proxmox GPU Passthrough
- Branje in pisanje registrov, specifičnih za model, v Linuxu
- Priročnik za gonilnik MSI HOWTO — Dokumentacija jedra Linuxa