Důležitá vylepšení, opravy a zástupná řešení Proxmox VE 8 PCI/PCIE Passthrough

Dulezita Vylepseni Opravy A Zastupna Reseni Proxmox Ve 8 Pci Pcie Passthrough



V posledních letech se u novějšího hardwaru hodně zlepšila podpora PCI/PCIE (tedy GPU passthrough). Takže štamgast Průchodový průvodce Proxmox VE PCI/PCIE a GPU by měl fungovat ve většině nového hardwaru. Přesto můžete čelit mnoha problémům s průchodem přes GPU a další zařízení PCI/PCIE na virtuálním počítači Proxmox VE. Existuje mnoho vylepšení/oprav/řešení pro některé běžné problémy s GPU Proxmox VE a PCI/PCIE.

V tomto článku se budu zabývat některými z nejběžnějších problémů s průchodem Proxmox VE PCI/PCIE a průchodem GPU a kroky, které můžete podniknout k vyřešení těchto problémů.









Obsah

  1. Co dělat, když přemapování přerušení IOMMU není podporováno?
  2. Co dělat, když můj GPU (nebo zařízení PCI/PCIE) není ve vlastní skupině IOMMU?
  3. Jak zakážu ovladače AMD GPU na Proxmox VE?
  4. Jak zakážu ovladače NVIDIA GPU na Proxmox VE?
  5. Jak zakážu ovladače Intel GPU na Proxmox VE?
  6. Jak zkontrolovat, zda moje GPU (nebo zařízení PCI/PCIE) používá ovladač VFIO na Proxmox VE?
  7. Zadal jsem ovladače GPU AMU na černou listinu, přesto GPU nepoužívá ovladač VFIO, co dělat?
  8. Zadal jsem ovladače GPU NVIDIA na černou listinu, ale GPU stále nepoužívá ovladač VFIO, co dělat?
  9. Zadal jsem ovladače Intel GPU na černou listinu, přesto GPU nepoužívá ovladač VFIO, co dělat?
  10. Jeden GPU používal ovladač VFIO, ale při konfiguraci druhého GPU to nefungovalo, proč?
  11. Proč zakázat arbitráž VGA pro GPU a jak to udělat?
  12. Co když moje GPU stále nepoužívá ovladač VFIO ani po konfiguraci VFIO?
  13. Průchod GPU neukázal žádné chyby, ale na monitoru připojeném k GPU se mi zobrazuje černá obrazovka, která byla předána do virtuálního počítače Proxmox VE, proč?
  14. Co je chyba při resetování dodavatele AMD a jak ji vyřešit?
  15. Jak poskytnout vBIOS pro prošlou GPU na virtuálním počítači Proxmox VE?
  16. Co dělat, když některé aplikace zhroutí virtuální počítač Proxmox VE Windows?
  17. Jak vyřešit problémy s praskáním/rozbitím zvuku HDMI na virtuálních strojích Proxmox VE Linux?.
  18. Jak aktualizovat Proxmox VE initramfs?
  19. Jak aktualizovat Bootloader Proxmox VE GRUB?
  20. Závěr
  21. Reference



Co dělat, když přemapování přerušení IOMMU není podporováno?

Pro průchod PCI/PCIE je zásadní přemapování přerušení IOMMU.





Chcete-li zkontrolovat, zda váš procesor podporuje přemapování přerušení IOMMU, spusťte níže uvedený příkaz:

$ dmesg | grep -i přemapovat



Pokud váš procesor podporuje přemapování přerušení IOMMU, uvidíte jakýsi výstup potvrzující, že je přemapování přerušení povoleno. V opačném případě neuvidíte žádné výstupy.

Pokud přemapování přerušení IOMMU není na vašem procesoru podporováno, budete muset nakonfigurovat nebezpečná přerušení na serveru Proxmox VE tak, aby procházela zařízeními PCI/PCIE na virtuálních strojích Proxmox VE.

Chcete-li nakonfigurovat nebezpečná přerušení na Proxmox VE, vytvořte nový soubor iommu_unsafe_interrupts.conf v /etc/modprobe.d adresář a otevřete jej pomocí textového editoru nano takto:

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

Přidejte následující řádek do iommu_unsafe_interrupts.conf soubor a stiskněte + X následován A a pro uložení souboru.

možnosti vfio_iommu_type1 allow_unsafe_interrupts=1

Jakmile budete hotovi, musíte aktualizujte initramfs vašeho serveru Proxmox VE .

Co dělat, když moje GPU (nebo zařízení PCI/PCIE) není ve vlastní skupině IOMMU?

Pokud má váš server více slotů PCI/PCIE, můžete přesunout GPU do jiného slotu PCI/PCIE a zjistit, zda je GPU ve své vlastní skupině IOMMU.

Pokud to nefunguje, můžete zkusit povolit opravu jádra ACS override na Proxmox VE.

Chcete-li zkusit povolit opravu jádra ACS override na Proxmox VE, otevřete soubor /etc/default/grub soubor s textovým editorem nano takto:

$ nano /etc/default/grub

Přidejte možnost spouštění jádra pcie_acs_override=downstream na konci GRUB_CMDLINE_LINUX_DEFAULT .

Až budete hotovi, stiskněte + X následován A a uložte soubor a ujistěte se, že aktualizujte bootloader Proxmox VE GRUB aby se změny projevily.

Jakmile se váš server Proxmox VE spustí, měli byste mít lepší seskupení IOMMU.

Pokud vaše GPU stále nemá vlastní skupinu IOMMU, můžete jít o krok dále pomocí pcie_acs_override=downstream,multifunkční namísto. Měli byste mít ještě lepší seskupení IOMMU.

Li pcie_acs_override=downstream,multifunkční výsledkem je lepší seskupení IOMMU pcie_acs_override=downstream , tak proč používat pcie_acs_override=downstream vůbec?

Účelem potlačení PCIE ACS je oklamat jádro, aby si myslelo, že zařízení PCIE jsou izolovaná, když ve skutečnosti nejsou. Přepis PCIE ACS tedy přichází s problémy se zabezpečením a stabilitou. Proto byste měli zkusit použít méně agresivní možnost přepsání PCIE ACS pcie_acs_override=downstream nejprve a zjistěte, zda je váš problém vyřešen. Li pcie_acs_override=downstream nefunguje, pouze byste měli použít agresivnější možnost pcie_acs_override=downstream,multifunkční .

Jak zakážu ovladače AMD GPU na Proxmox VE?

Pokud chcete na virtuálních strojích Proxmox VE projít AMD GPU, musíte na černou listinu ovladačů AMD GPU a ujistit se, že místo toho používá ovladač VFIO.

Nejprve otevřete /etc/modprobe.d/blacklist.conf soubor s textovým editorem nano takto:

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

Chcete-li ovladače GPU AMD na černou listinu, přidejte do souboru následující řádky /etc/modprobe.d/blacklist.conf soubor a stiskněte + X následován A a pro uložení souboru.

blacklist radeon

blacklist amdgpu

Jakmile budete hotovi, musíte aktualizujte initramfs vašeho serveru Proxmox VE aby se změny projevily.

Jak zakážu ovladače NVIDIA GPU na Proxmox VE?

Pokud chcete projít GPU NVIDIA na virtuálních počítačích Proxmox VE, musíte na černou listinu ovladačů GPU NVIDIA a ujistit se, že místo toho používá ovladač VFIO.

Nejprve otevřete /etc/modprobe.d/blacklist.conf soubor s textovým editorem nano takto:

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

Chcete-li na černou listinu ovladačů GPU NVIDIA, přidejte následující řádky /etc/modprobe.d/blacklist.conf soubor a stiskněte + X následován A a pro uložení souboru.

černá listina nouveau

blacklist nvidia

blacklist nvidiafb

blacklist nvidia_drm

Jakmile budete hotovi, musíte aktualizujte initramfs vašeho serveru Proxmox VE aby se změny projevily.

Jak zakážu ovladače Intel GPU na Proxmox VE?

Pokud chcete na virtuálních počítačích Proxmox VE projít GPU Intel, musíte na černou listinu ovladačů GPU Intel a ujistit se, že místo toho používá ovladač VFIO.

Nejprve otevřete /etc/modprobe.d/blacklist.conf soubor s textovým editorem nano takto:

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

Chcete-li na černou listinu ovladačů GPU Intel, přidejte následující řádky /etc/modprobe.d/blacklist.conf soubor a stiskněte + X následován A a pro uložení souboru.

blacklist snd_hda_intel

blacklist snd_hda_codec_hdmi

černá listina i915

Jakmile budete hotovi, musíte aktualizujte initramfs vašeho serveru Proxmox VE aby se změny projevily.

Jak zkontrolovat, zda moje GPU (nebo zařízení PCI/PCIE) používá ovladač VFIO na Proxmox VE?

Chcete-li zkontrolovat, zda vaše GPU nebo požadovaná zařízení PCI/PCIE používají ovladač VFIO, spusťte následující příkaz:

$ lspci -v

Pokud vaše zařízení GPU nebo PCI/PCIE používá ovladač VFIO, měli byste vidět řádek Používaný ovladač jádra: vfio-pci jak je vyznačeno na snímku obrazovky níže.

Zadal jsem ovladače GPU AMU na černou listinu, přesto GPU nepoužívá ovladač VFIO, co dělat?

Někdy nestačí umístit ovladače AMD GPU na černou listinu, musíte také nakonfigurovat ovladače GPU AMD tak, aby se načítaly po ovladači VFIO.

Chcete-li to provést, otevřete /etc/modprobe.d/vfio.conf soubor s textovým editorem nano takto:

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

Chcete-li nakonfigurovat ovladače GPU AMD tak, aby se načítaly po ovladači VFIO, přidejte do souboru následující řádky /etc/modprobe.d/vfio.conf soubor a stiskněte + X následován A a pro uložení souboru.

softdep radeon pre: vfio-pci

softdep amdgpu pre: vfio-pci

Jakmile budete hotovi, musíte aktualizujte initramfs vašeho serveru Proxmox VE aby se změny projevily.

Zadal jsem ovladače GPU NVIDIA na černou listinu, ale GPU stále nepoužívá ovladač VFIO, co dělat?

Někdy nestačí umístit ovladače GPU NVIDIA na černou listinu, musíte také nakonfigurovat ovladače GPU NVIDIA tak, aby se načítaly po ovladači VFIO.

Chcete-li to provést, otevřete /etc/modprobe.d/vfio.conf soubor s textovým editorem nano takto:

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

Chcete-li nakonfigurovat ovladače GPU NVIDIA tak, aby se načítaly po ovladači VFIO, přidejte do souboru následující řádky /etc/modprobe.d/vfio.conf soubor a stiskněte + X následován A a pro uložení souboru.

softdep nový pre: vfio-pci

softdep nvidia pro: vfio-pci

softdep nvidiafb pro: vfio-pci

softdep nvidia_drm pre: vfio-pci

softdep drm pre: vfio-pci

Jakmile budete hotovi, musíte aktualizujte initramfs vašeho serveru Proxmox VE aby se změny projevily.

Zadal jsem ovladače Intel GPU na černou listinu, přesto GPU nepoužívá ovladač VFIO, co dělat?

Někdy nestačí umístit ovladače Intel GPU na černou listinu, musíte také nakonfigurovat ovladače GPU Intel tak, aby se načítaly po ovladači VFIO.

Chcete-li to provést, otevřete /etc/modprobe.d/vfio.conf soubor s textovým editorem nano takto:

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

Chcete-li nakonfigurovat ovladače GPU Intel tak, aby se načítaly po ovladači VFIO, přidejte do souboru následující řádky /etc/modprobe.d/vfio.conf soubor a stiskněte + X následován A a pro uložení souboru.

softdep snd_hda_intel pro: vfio-pci

softdep snd_hda_codec_hdmi pre: vfio-pci

softdep i915 pre: vfio-pci

Jakmile budete hotovi, musíte aktualizujte initramfs vašeho serveru Proxmox VE aby se změny projevily.

Jeden GPU používal ovladač VFIO, ale při konfiguraci druhého GPU to nefungovalo, proč?

V /etc/modprobe.d/vfio.conf musíte přidat ID všech zařízení PCI/PCIE, která chcete použít ovladač VFIO, na jeden řádek. Jedno zařízení na řádek nebude fungovat.

Pokud máte například 2 GPU, které chcete nakonfigurovat pro použití ovladače VFIO, musíte přidat jejich ID na jeden řádek v /etc/modprobe.d/vfio.conf soubor takto:

možnosti vfio-pci ids=,,,

Pokud chcete do seznamu přidat další GPU, stačí jej připojit na konec stávajícího vfio-pci linka v /etc/modprobe.d/vfio.conf soubor takto:

možnosti vfio-pci ids=,,,,,

Nikdy to nedělej. I když to vypadá mnohem čistěji, nebude to fungovat. Přál bych si, abychom mohli specifikovat PCI/PCIE ID tímto způsobem.

možnosti vfio-pci ids=,

možnosti vfio-pci ids=,

možnosti vfio-pci ids=,

Proč zakázat arbitráž VGA pro GPU a jak to udělat?

Pokud používáte UEFI/OVMF BIOS na virtuálním počítači Proxmox VE, kde chcete procházet GPU, můžete deaktivovat arbitráž VGA, která sníží počet starších kódů vyžadovaných během spouštění.

Chcete-li zakázat arbitráž VGA pro GPU, přidejte disable_vga=1 na konci možnost vfio-pci v /etc/modprobe.d/vfio.conf soubor, jak je uvedeno níže:

možnosti vfio-pci ids=,,, disable_vga=1

Co když moje GPU stále nepoužívá ovladač VFIO ani po konfiguraci VFIO?

I po provedení všeho správně, pokud vaše GPU stále nepoužívá ovladač VFIO, budete muset zkusit zavést Proxmox VE s volbami jádra, které deaktivují video framebuffer.

Na Proxmox VE 7.1 a starším je nofb nomodeset video=vesafb:off video=efifb:off video=simplefb:off možnosti jádra deaktivují framebuffer GPU pro váš server Proxmox VE.

Na Proxmox VE 7.2 a novějších initcall_blacklist=sysfb_init kernel option odvádí lepší práci při deaktivaci framebufferu GPU pro váš server Proxmox VE.

Otevřete konfigurační soubor bootloaderu GRUB /etc/default/grub soubor s textovým editorem nano s následujícím příkazem:

$ nano /etc/default/grub

Přidejte možnost jádra initcall_blacklist=sysfb_init na konci GRUB_CMDLINE_LINUX_DEFAULT .

Až budete hotovi, stiskněte + X následován A a uložte soubor a ujistěte se, že aktualizujte bootloader Proxmox VE GRUB aby se změny projevily.

Průchod GPU neukázal žádné chyby, ale na monitoru připojeném k GPU se mi zobrazuje černá obrazovka, která byla předána do virtuálního počítače Proxmox VE, proč?

Jakmile předáte GPU virtuálnímu počítači Proxmox VE, nezapomeňte použít Výchozí Grafická karta před spuštěním virtuálního počítače. Tímto způsobem budete moci přistupovat k zobrazení virtuálního stroje z webového uživatelského rozhraní pro správu Proxmox VE, stáhnout si instalační program ovladače GPU na virtuální stroj a nainstalovat jej na virtuální stroj.

Jakmile je ovladač GPU nainstalován na virtuální počítač, obrazovka virtuálního počítače se zobrazí na monitoru připojeném k GPU, který jste také předali virtuálnímu počítači.

Jakmile je ovladač GPU nainstalován na virtuální počítač a obrazovka virtuálního počítače se zobrazí na monitoru připojeném ke GPU (předána virtuálnímu počítači), vypněte virtuální počítač a nastavte Grafická karta displeje virtuálního stroje žádný .

Jakmile budete nastaveni, při příštím zapnutí virtuálního počítače se obrazovka virtuálního počítače zobrazí pouze na monitoru připojeném ke GPU (předán virtuálnímu počítači), na webu Proxmox VE se nezobrazí nic uživatelské rozhraní pro správu. Tímto způsobem budete mít stejný zážitek jako při používání skutečného počítače, i když používáte virtuální stroj.

Pamatujte, nikdy nepoužívejte Grafická karta SPICE, VirtIO GPU a VirGL GPU Display na virtuálním počítači Proxmox VE, který konfigurujete pro průchod GPU, protože má vysokou šanci na selhání.

Co je chyba při resetování dodavatele AMD a jak ji vyřešit?

GPU AMD mají známou chybu zvanou „chyba resetování dodavatele“. Jakmile je AMD GPU předáno virtuálnímu stroji Proxmox VE a vypnete tento virtuální stroj, nebudete moci používat AMD GPU v jiném virtuálním stroji Proxmox VE. V důsledku toho někdy váš server Proxmox VE přestane reagovat. Toto se nazývá „chyba resetování dodavatele“ GPU AMD.

Důvodem je to, že GPU AMD se po předání virtuálnímu počítači nemohou správně resetovat. Chcete-li tento problém vyřešit, budete muset správně resetovat GPU AMD. Další informace o instalaci resetu dodavatele AMD na Proxmox VE přečtěte si tento článek a přečtěte si toto vlákno na fóru Proxmox VE . Taky, zkontrolujte stránku GitHub pro resetování dodavatele .

Jak poskytnout vBIOS pro prošlou GPU na virtuálním počítači Proxmox VE?

Pokud jste nainstalovali GPU do prvního slotu vaší základní desky, možná nebudete moci projít GPU ve virtuálním počítači Proxmox VE ve výchozím nastavení. Některé základní desky ve výchozím nastavení stíní vBIOS GPU nainstalovaného na prvním slotu, což je důvod, proč GPU nainstalovaný na prvním slotu těchto základních desek nelze předat virtuálním strojům.

Řešením tohoto problému je nainstalovat GPU do druhého slotu základní desky, extrahovat vBIOS GPU, nainstalovat GPU do prvního slotu základní desky a projít GPU na virtuální stroj Proxmox VE spolu s extrahovaným vBIOS GPU.

Chcete-li zjistit, jak extrahovat vBIOS vašeho GPU, přečtěte si tento článek .

Jakmile získáte vBIOS pro svůj GPU, musíte soubor vBIOS uložit do /usr/share/kvm/ adresář vašeho serveru Proxmox VE, abyste k němu měli přístup.

Jakmile je soubor vBIOS pro váš GPU uložen v /usr/share/kvm/ adresář, musíte nakonfigurovat svůj virtuální počítač, aby jej používal. V současné době neexistuje způsob, jak určit soubor vBIOS pro zařízení PCI/PCIE virtuálních počítačů Proxmox VE z webového uživatelského rozhraní pro správu Proxmox VE. Takže budete muset dělat vše z shellu/příkazového řádku Proxmox VE.

Konfigurační soubory virtuálního stroje Proxmox VE naleznete v /etc/pve/qemu-server/ adresář vašeho serveru Proxmox VE. Každý virtuální stroj Proxmox VE má v tomto adresáři jeden konfigurační soubor ve formátu .conf .

Chcete-li například otevřít konfigurační soubor virtuálního počítače Proxmox VE (pro úpravy) pro ID virtuálního počítače 100, budete muset spustit následující příkaz:

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

V konfiguračním souboru virtuálního počítače budete muset připojit romfile= v hostpciX linka, která je zodpovědná za předávání GPU na virtuálním počítači.

Pokud je například název souboru vBIOS pro můj GPU gigabyte-nvidia-1050ti.bin a předal jsem GPU v prvním slotu (slot 0) virtuálního počítače ( hostpci0 ), poté v 100.conf soubor, řádek by měl vypadat takto:

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

Až budete hotovi, uložte konfigurační soubor virtuálního počítače stisknutím + X následován A a , spusťte virtuální počítač a zkontrolujte, zda funguje průchod GPU.

Co dělat, když některé aplikace zhroutí virtuální počítač Proxmox VE Windows?

Některé aplikace jako GeForce Experience, Passmark atd. mohou způsobit selhání virtuálních počítačů Proxmox VE Windows. Můžete také zaznamenat náhlou modrou obrazovku smrti (BSOD) na virtuálních počítačích Proxmox VE Windows. Důvodem je to, že se virtuální stroj Windows může pokusit o přístup k registrům specifickým pro model (MSR), které ve skutečnosti nejsou dostupné, a v závislosti na tom, jak váš hardware zpracovává požadavky MSR, může dojít k selhání systému.

Řešením tohoto problému je ignorování zpráv MSR na vašem serveru Proxmox VE.

Chcete-li nakonfigurovat MSR na vašem serveru Proxmox VE, otevřete soubor /etc/modprobe.d/kvm.conf soubor s textovým editorem nano takto:

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

Chcete-li ignorovat MSR na vašem serveru Proxmox VE, přidejte do souboru následující řádek /etc/modprobe.d/kvm.conf soubor.

možnosti kvm ignore_msrs=1

Jakmile jsou MSR ignorovány, můžete ve svém systémovém protokolu dmesg vidět mnoho varovných zpráv MSR. Abyste tomu zabránili, můžete MSR ignorovat a také zakázat protokolování varovných zpráv MSR přidáním následujícího řádku:

možnosti kvm ignore_msrs=1 report_ignored_msrs=0

Až budete hotovi, stiskněte + X následován A a zachránit /etc/modprobe.d/kvm.conf soubor a aktualizujte initramfs vašeho serveru Proxmox VE aby se změny projevily.

Jak vyřešit problémy s praskáním/rozbitím zvuku HDMI na virtuálních strojích Proxmox VE Linux?

Pokud jste předali GPU virtuálnímu počítači Linux Proxmox VE a máte na virtuálním počítači špatnou kvalitu zvuku, budete muset pro zvukové zařízení na virtuálním počítači Proxmox VE povolit MSI (Message Signal Interrupt).

Chcete-li povolit MSI na virtuálním počítači Linux Proxmox VE, otevřete soubor /etc/modprobe.d/snd-hda-intel.conf soubor s textovým editorem nano na virtuálním počítači pomocí následujícího příkazu:

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

Přidejte následující řádek a uložte soubor stisknutím + X následován A a .

možnosti snd-hda-intel enable_msi=1

Aby se změny projevily, restartujte virtuální počítač Linux pomocí následujícího příkazu:

$ sudo restart

Jakmile se virtuální počítač spustí, zkontrolujte, zda je pro zvukové zařízení povoleno MSI pomocí následujícího příkazu:

$ sudo lspci -vv

Pokud je pro zvukové zařízení na virtuálním počítači povoleno MSI, měli byste v informacích o zvukovém zařízení vidět označený řádek.

Jak aktualizovat Proxmox VE initramfs?

Pokaždé, když provedete jakékoli změny v souborech v /etc/modules-load.d/ a /etc/modprobe.d/ adresářů, musíte aktualizovat initramfs vaší instalace Proxmox VE 8 pomocí následujícího příkazu:

$ update-initramfs -u -k all

Po aktualizaci initramfs Proxmox VE restartujte server Proxmox VE, aby se změny projevily.

$ restartovat

Jak aktualizovat Bootloader Proxmox VE GRUB?

Při každé aktualizaci spouštěcího konfiguračního souboru Proxmox VE GRUB /etc/default/grub , musíte aktualizovat zavaděč GRUB, aby se změny projevily.

Chcete-li aktualizovat bootloader Proxmox VE GRUB s novými konfiguracemi, spusťte následující příkaz:

$ update-grub2

Jakmile je zavaděč GRUB aktualizován novou konfigurací, restartujte server Proxmox VE, aby se změny projevily.

$ restartovat

Závěr

V tomto článku jsme probrali některé z nejběžnějších problémů s průchodem Proxmox VE PCI/PCIE a průchodem GPU a kroky, které můžete podniknout k vyřešení těchto problémů.

Reference

  1. [NÁVOD] – PCI/GPU Passthrough na Proxmox VE 8 : Instalace a konfigurace | Fórum podpory Proxmox
  2. Průvodce pro úplného začátečníka po průchodu GPU Proxmox
  3. Čtení a zápis registrů specifických pro model v Linuxu
  4. Průvodce ovladačem MSI HOWTO — Dokumentace jádra Linuxu