Важни ощипвания, поправки и заобиколни решения на Proxmox VE 8 PCI/PCIE Passthrough

Vazni Osipvania Popravki I Zaobikolni Resenia Na Proxmox Ve 8 Pci Pcie Passthrough



През последните години поддръжката за PCI/PCIE (т.е. GPU passthrough) се подобри много в по-новия хардуер. И така, редовното Ръководство за преминаване на Proxmox VE PCI/PCIE и GPU трябва да работи в повечето нов хардуер. Все пак може да се сблъскате с много проблеми при преминаване през GPU и други PCI/PCIE устройства на виртуална машина Proxmox VE. Има много ощипвания/поправки/заобиколни решения за някои от често срещаните проблеми с пропускането на Proxmox VE GPU и PCI/PCIE.

В тази статия ще обсъдя някои от най-често срещаните проблеми с пропускането на Proxmox VE PCI/PCIE и GPU и стъпките, които можете да предприемете, за да разрешите тези проблеми.









Съдържание

  1. Какво да направите, ако IOMMU Interrupt Remapping не се поддържа?
  2. Какво да направя, ако Моят графичен процесор (или PCI/PCIE устройство) не е в неговата собствена IOMMU група?
  3. Как да направя черен списък с AMD GPU драйвери на Proxmox VE?
  4. Как да направя черен списък с NVIDIA GPU драйвери на Proxmox VE?
  5. Как да направя черния списък на драйверите на Intel GPU на Proxmox VE?
  6. Как да проверя дали моят GPU (или PCI/PCIE устройство) използва VFIO драйвера на Proxmox VE?
  7. Включих в черния списък драйверите на AMU GPU, но все пак графичният процесор не използва VFIO драйвера, какво да правя?
  8. Поставих в черния списък драйверите на NVIDIA GPU, но все пак графичният процесор не използва VFIO драйвера, какво да правя?
  9. Вчерах драйверите на Intel GPU в черния списък, но графичният процесор не използва VFIO драйвера, какво да правя?
  10. Единичен GPU използва VFIO драйвер, но когато е конфигуриран втори GPU, той не работи, защо?
  11. Защо да деактивирате VGA арбитраж за графичните процесори и как да го направите?
  12. Какво става, ако моят GPU все още не използва VFIO драйвера дори след конфигуриране на VFIO?
  13. GPU Passthrough не показа грешки, но получавам черен екран на монитора, свързан към GPU, прехвърлен към Proxmox VE VM, защо?
  14. Какво представлява грешката при нулиране на доставчик на AMD и как да я разрешим?
  15. Как да осигуря vBIOS за преминалия GPU на виртуална машина Proxmox VE?
  16. Какво да направите, ако някои приложения блокират виртуалната машина на Windows Proxmox VE?
  17. Как да разрешите проблеми с пращене/счупване на HDMI аудио на Proxmox VE Linux виртуални машини?.
  18. Как да актуализирам Proxmox VE initramfs?
  19. Как да актуализирате Bootloader на Proxmox VE GRUB?
  20. Заключение
  21. Препратки



Какво да направите, ако IOMMU Interrupt Remapping не се поддържа?

За PCI/PCIE преминаване пренареждането на прекъсване на IOMMU е от съществено значение.





За да проверите дали вашият процесор поддържа IOMMU пренасочване на прекъсвания, изпълнете командата по-долу:

$ dmesg | grep -i пренасочване



Ако вашият процесор поддържа пренареждане на прекъсване на IOMMU, ще видите някакъв изход, потвърждаващ, че пренареждането на прекъсване е разрешено. В противен случай няма да видите резултати.

Ако пренасочването на прекъсвания на IOMMU не се поддържа от вашия процесор, ще трябва да конфигурирате опасни прекъсвания на вашия сървър Proxmox VE, за да преминават през PCI/PCIE устройства на виртуални машини Proxmox VE.

За да конфигурирате опасни прекъсвания на Proxmox VE, създайте нов файл iommu_unsafe_interrupts.conf в /etc/modprobe.d директория и я отворете с нано текстовия редактор, както следва:

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

Добавете следния ред в iommu_unsafe_interrupts.conf файл и натиснете + х следван от И и за да запазите файла.

опции vfio_iommu_type1 allow_unsafe_interrupts=1

След като сте готови, трябва актуализирайте initramfs на вашия Proxmox VE сървър .

Какво да направя, ако моят графичен процесор (или PCI/PCIE устройство) не е в неговата собствена IOMMU група?

Ако вашият сървър има множество PCI/PCIE слота, можете да преместите графичния процесор в друг PCI/PCIE слот и да видите дали графичният процесор е в собствената си IOMMU група.

Ако това не работи, можете да опитате да активирате корекцията на ядрото за отмяна на ACS на Proxmox VE.

За да опитате да активирате корекцията на ядрото за замяна на ACS на Proxmox VE, отворете /etc/default/grub файл с нано текстовия редактор, както следва:

$ nano /etc/default/grub

Добавете опцията за зареждане на ядрото pcie_acs_override=надолу по веригата в края на GRUB_CMDLINE_LINUX_DEFAULT .

След като сте готови, натиснете + х следван от И и за да запазите файла и се уверете, че актуализирайте програмата за зареждане на Proxmox VE GRUB за да влязат в сила промените.

Трябва да имате по-добро групиране на IOMMU, след като вашият Proxmox VE сървър се зареди.

Ако вашият графичен процесор все още няма своя собствена IOMMU група, можете да отидете една стъпка напред, като използвате pcie_acs_override=надолу по веригата, многофункционален вместо. Трябва да имате още по-добро групиране на IOMMU.

Ако pcie_acs_override=надолу по веригата, многофункционален води до по-добро групиране на IOMMU, което pcie_acs_override=надолу по веригата , тогава защо да използвате pcie_acs_override=надолу по веригата изобщо?

Е, целта на PCIE ACS override е да заблуди ядрото да мисли, че PCIE устройствата са изолирани, когато не са в действителност. Така че замяната на PCIE ACS идва с проблеми със сигурността и стабилността. Ето защо трябва да опитате да използвате по-малко агресивна опция за отмяна на PCIE ACS pcie_acs_override=надолу по веригата първо и вижте дали проблемът ви е решен. Ако pcie_acs_override=надолу по веригата не работи, само тогава трябва да използвате по-агресивния вариант pcie_acs_override=надолу по веригата, многофункционален .

Как да направя черен списък с AMD GPU драйвери на Proxmox VE?

Ако искате да преминете през AMD GPU на Proxmox VE виртуални машини, трябва да поставите в черен списък драйверите на AMD GPU и да се уверите, че той използва драйвера VFIO вместо това.

Първо отворете /etc/modprobe.d/blacklist.conf файл с нано текстовия редактор, както следва:

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

За да поставите в черен списък драйверите на AMD GPU, добавете следните редове към /etc/modprobe.d/blacklist.conf файл и натиснете + х следван от И и за да запазите файла.

черен списък radeon

черен списък amdgpu

След като сте готови, трябва актуализирайте initramfs на вашия Proxmox VE сървър за да влязат в сила промените.

Как да направя черен списък с NVIDIA GPU драйвери на Proxmox VE?

Ако искате да преминете през NVIDIA GPU на Proxmox VE виртуални машини, трябва да поставите в черен списък драйверите на NVIDIA GPU и да се уверите, че той използва драйвера VFIO вместо това.

Първо отворете /etc/modprobe.d/blacklist.conf файл с нано текстовия редактор, както следва:

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

За да поставите в черен списък драйверите на NVIDIA GPU, добавете следните редове към /etc/modprobe.d/blacklist.conf файл и натиснете + х следван от И и за да запазите файла.

черен списък нуво

черен списък на nvidia

черен списък nvidiafb

черен списък nvidia_drm

След като сте готови, трябва актуализирайте initramfs на вашия Proxmox VE сървър за да влязат в сила промените.

Как да направя черния списък на драйверите на Intel GPU на Proxmox VE?

Ако искате да преминете през Intel GPU на Proxmox VE виртуални машини, трябва да поставите в черен списък драйверите на Intel GPU и да се уверите, че той използва драйвера VFIO вместо това.

Първо отворете /etc/modprobe.d/blacklist.conf файл с нано текстовия редактор, както следва:

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

За да поставите в черен списък драйверите на Intel GPU, добавете следните редове към /etc/modprobe.d/blacklist.conf файл и натиснете + х следван от И и за да запазите файла.

черен списък snd_hda_intel

черен списък snd_hda_codec_hdmi

черен списък i915

След като сте готови, трябва актуализирайте initramfs на вашия Proxmox VE сървър за да влязат в сила промените.

Как да проверя дали моят GPU (или PCI/PCIE устройство) използва VFIO драйвера на Proxmox VE?

За да проверите дали вашият GPU или желаните PCI/PCIE устройства използват VFIO драйвера, изпълнете следната команда:

$ lspci -v

Ако вашето GPU или PCI/PCIE устройство използва VFIO драйвера, трябва да видите реда Използван драйвер на ядрото: vfio-pci както е отбелязано на екранната снимка по-долу.

Включих в черния списък драйверите на AMU GPU, но все пак графичният процесор не използва VFIO драйвера, какво да правя?

Понякога поставянето в черен списък на драйверите на AMD GPU не е достатъчно, вие също трябва да конфигурирате драйверите на AMD GPU да се зареждат след VFIO драйвера.

За да направите това, отворете /etc/modprobe.d/vfio.conf файл с нано текстовия редактор, както следва:

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

За да конфигурирате драйверите на AMD GPU да се зареждат след VFIO драйвера, добавете следните редове към /etc/modprobe.d/vfio.conf файл и натиснете + х следван от И и за да запазите файла.

softdep radeon pre: vfio-pci

softdep amdgpu pre: vfio-pci

След като сте готови, трябва актуализирайте initramfs на вашия Proxmox VE сървър за да влязат в сила промените.

Вчерах драйверите на NVIDIA GPU в черния списък, но графичният процесор не използва VFIO драйвера, какво да правя?

Понякога поставянето в черен списък на драйверите на NVIDIA GPU не е достатъчно, вие също трябва да конфигурирате драйверите на NVIDIA GPU да се зареждат след VFIO драйвера.

За да направите това, отворете /etc/modprobe.d/vfio.conf файл с нано текстовия редактор, както следва:

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

За да конфигурирате драйверите на NVIDIA GPU да се зареждат след VFIO драйвера, добавете следните редове към /etc/modprobe.d/vfio.conf файл и натиснете + х следван от И и за да запазите файла.

softdep нов пре: vfio-pci

softdep nvidia за: vfio-pci

softdep nvidiafb за: vfio-pci

softdep nvidia_drm pre: vfio-pci

softdep drm pre: vfio-pci

След като сте готови, трябва актуализирайте initramfs на вашия Proxmox VE сървър за да влязат в сила промените.

Вчерах драйверите на Intel GPU в черния списък, но графичният процесор не използва VFIO драйвера, какво да правя?

Понякога поставянето в черен списък на драйверите на Intel GPU не е достатъчно, вие също трябва да конфигурирате драйверите на Intel GPU да се зареждат след VFIO драйвера.

За да направите това, отворете /etc/modprobe.d/vfio.conf файл с нано текстовия редактор, както следва:

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

За да конфигурирате драйверите на Intel GPU да се зареждат след VFIO драйвера, добавете следните редове към /etc/modprobe.d/vfio.conf файл и натиснете + х следван от И и за да запазите файла.

softdep snd_hda_intel pre: vfio-pci

softdep snd_hda_codec_hdmi pre: vfio-pci

softdep i915 pre: vfio-pci

След като сте готови, трябва актуализирайте initramfs на вашия Proxmox VE сървър за да влязат в сила промените.

Единичен GPU използва VFIO драйвер, но когато е конфигуриран втори GPU, той не работи, защо?

В /etc/modprobe.d/vfio.conf файл, трябва да добавите идентификаторите на всички PCI/PCIE устройства, които искате да използвате VFIO драйвера в един ред. Едно устройство на линия няма да работи.

Например, ако имате 2 графични процесора, които искате да конфигурирате да използват VFIO драйвера, трябва да добавите техните идентификатори в един ред в /etc/modprobe.d/vfio.conf файл, както следва:

опции vfio-pci ids=,,,

Ако искате да добавите друг GPU към списъка, просто го добавете в края на съществуващия vfio-pci линия в /etc/modprobe.d/vfio.conf файл, както следва:

опции vfio-pci ids=,,,,,

Никога не правете това. Въпреки че изглежда много по-чисто, няма да работи. Иска ми се да можем да посочим PCI/PCIE идентификатори по този начин.

опции vfio-pci ids=,

опции vfio-pci ids=,

опции vfio-pci ids=,

Защо да деактивирате VGA арбитраж за графичните процесори и как да го направите?

Ако използвате UEFI/OVMF BIOS на виртуалната машина Proxmox VE, където искате да преминете през GPU, можете да деактивирате VGA арбитраж, което ще намали наследените кодове, необходими по време на зареждане.

За да деактивирате VGA арбитраж за графичните процесори, добавете disable_vga=1 в края на vfio-pci опция в /etc/modprobe.d/vfio.conf файл, както е показано по-долу:

опции vfio-pci ids=,,, disable_vga=1

Какво става, ако моят GPU все още не използва VFIO драйвера дори след конфигуриране на VFIO?

Дори и след като сте направили всичко правилно, ако вашият графичен процесор все още не използва VFIO драйвера, ще трябва да опитате да стартирате Proxmox VE с опции на ядрото, които дезактивират буфера на кадри за видео.

На Proxmox VE 7.1 и по-стари, nofb nomodeset video=vesafb:изкл. video=efifb:изкл. video=simplefb:изкл. опциите на ядрото деактивират GPU фреймбуфера за вашия Proxmox VE сървър.

На Proxmox VE 7.2 и по-нова версия initcall_blacklist=sysfb_init опцията на ядрото върши по-добра работа при деактивирането на GPU framebuffer за вашия Proxmox VE сървър.

Отворете конфигурационния файл за зареждане на GRUB /etc/default/grub файл с нано текстовия редактор със следната команда:

$ nano /etc/default/grub

Добавете опцията за ядрото initcall_blacklist=sysfb_init в края на GRUB_CMDLINE_LINUX_DEFAULT .

След като сте готови, натиснете + х следван от И и за да запазите файла и се уверете, че актуализирайте програмата за зареждане на Proxmox VE GRUB за да влязат в сила промените.

GPU Passthrough не показа грешки, но получавам черен екран на монитора, свързан към GPU, прехвърлен към Proxmox VE VM, защо?

След като прехвърлите GPU към виртуална машина Proxmox VE, не забравяйте да използвате По подразбиране Графична карта, преди да стартирате виртуалната машина. По този начин ще можете да получите достъп до дисплея на виртуалната машина от потребителския интерфейс за уеб управление на Proxmox VE, да изтеглите инсталатора на GPU драйвера на виртуалната машина и да го инсталирате на виртуалната машина.

След като драйверът на графичния процесор е инсталиран на виртуалната машина, екранът на виртуалната машина ще се покаже на монитора, свързан към графичния процесор, който също сте предали на виртуалната машина.

След като драйверът на графичния процесор е инсталиран на виртуалната машина и екранът на виртуалната машина се покаже на монитора, свързан към графичния процесор (предаден на виртуалната машина), изключете виртуалната машина и задайте Графична карта на дисплея на виртуалната машина към нито един .

След като сте настроили, следващия път, когато включите виртуалната машина, екранът на виртуалната машина ще се покаже само на монитора, свързан към GPU (предадено към виртуалната машина), нищо няма да се покаже в мрежата на Proxmox VE потребителски интерфейс за управление. По този начин ще имате същото изживяване, както при използването на истински компютър, въпреки че използвате виртуална машина.

Запомнете, никога не използвайте SPICE, VirtIO GPU и VirGL GPU Display Графична карта на виртуалната машина Proxmox VE, която конфигурирате за пропускане на GPU, тъй като има голям шанс за повреда.

Какво представлява грешката при нулиране на доставчик на AMD и как да я разрешим?

Графичните процесори на AMD имат добре познат бъг, наречен „бъг за нулиране на доставчика“. След като AMD GPU бъде прехвърлен към виртуална машина Proxmox VE и изключите тази виртуална машина, няма да можете да използвате AMD GPU в друга виртуална машина Proxmox VE. Понякога вашият Proxmox VE сървър ще спре да отговаря в резултат на това. Това се нарича „грешка при нулиране на производителя“ на AMD GPU.

Причината това да се случва е, че графичните процесори на AMD не могат да се нулират правилно, след като бъдат предадени на виртуална машина. За да разрешите този проблем, ще трябва да нулирате вашия AMD GPU правилно. За повече информация относно инсталирането на нулирането на производителя на AMD на Proxmox VE, прочетете тази статия и прочетете тази тема във форума на Proxmox VE . Също, проверете страницата GitHub за нулиране на доставчика .

Как да осигуря vBIOS за преминалия GPU на виртуална машина Proxmox VE?

Ако сте инсталирали графичния процесор на първия слот на вашата дънна платка, може да не можете да преминете през графичния процесор във виртуална машина Proxmox VE по подразбиране. Някои дънни платки засенчват vBIOS на графичния процесор, инсталиран на първия слот по подразбиране, което е причината графичният процесор, инсталиран на първия слот на тези дънни платки, да не може да бъде прехвърлен на виртуални машини.

Решението на този проблем е да инсталирате GPU на втория слот на дънната платка, да извлечете vBIOS на GPU, да инсталирате GPU на първия слот на дънната платка и да прехвърлите GPU към виртуална машина Proxmox VE заедно с извлечения vBIOS на GPU.

За да научите как да извлечете vBIOS на вашия GPU, прочетете тази статия .

След като получите vBIOS за вашия GPU, трябва да съхраните vBIOS файла в /usr/share/kvm/ директория на вашия Proxmox VE сървър за достъп до него.

След като vBIOS файлът за вашия GPU бъде съхранен в /usr/share/kvm/ директория, трябва да конфигурирате вашата виртуална машина, за да я използвате. Понастоящем няма начин да посочите vBIOS файла за PCI/PCIE устройства на Proxmox VE виртуални машини от потребителския интерфейс за уеб управление на Proxmox VE. Така че ще трябва да направите всичко от обвивката/командния ред на Proxmox VE.

Можете да намерите конфигурационните файлове на виртуалната машина Proxmox VE в /etc/pve/qemu-сървър/ директория на вашия Proxmox VE сървър. Всяка виртуална машина Proxmox VE има един конфигурационен файл в тази директория във формат .conf .

Например, за да отворите конфигурационния файл на виртуалната машина Proxmox VE (за редактиране) за ID на виртуалната машина 100, ще трябва да изпълните следната команда:

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

В конфигурационния файл на виртуалната машина ще трябва да добавите romfile= в hostpciX линия, която отговаря за предаването на GPU на виртуалната машина.

Например, ако vBIOS името на файла за моя GPU е gigabyte-nvidia-1050ti.bin и преминах GPU на първия слот (слот 0) на виртуалната машина ( hostpci0 ), след това в 100.конф файл, редът трябва да бъде както следва:

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

След като сте готови, запишете конфигурационния файл на виртуалната машина, като натиснете + х следван от И и , стартирайте виртуалната машина и проверете дали преминаването на GPU работи.

Какво да направите, ако някои приложения сринат виртуалната машина на Proxmox VE Windows?

Някои приложения като GeForce Experience, Passmark и т.н. може да сринат Proxmox VE Windows виртуални машини. Може също така да изпитате внезапен син екран на смъртта (BSOD) на вашите Proxmox VE Windows виртуални машини. Причината да се случи е, че виртуалната машина на Windows може да се опита да получи достъп до специфичните за модела регистри (MSR), които всъщност не са налични и в зависимост от това как вашият хардуер обработва MSR заявки, системата ви може да се срине.

Решението на този проблем е игнорирането на MSRs съобщенията на вашия Proxmox VE сървър.

За да конфигурирате MSR на вашия Proxmox VE сървър, отворете /etc/modprobe.d/kvm.conf файл с нано текстовия редактор, както следва:

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

За да игнорирате MSR на вашия Proxmox VE сървър, добавете следния ред към /etc/modprobe.d/kvm.conf файл.

опции kvm ignore_msrs=1

След като MSRs бъдат игнорирани, може да видите много предупредителни съобщения за MSRs във вашия системен журнал на dmesg. За да избегнете това, можете да игнорирате MSR, както и да деактивирате записването на предупредителните съобщения за MSR, като вместо това добавите следния ред:

опции kvm ignore_msrs=1 report_ignored_msrs=0

След като сте готови, натиснете + х следван от И и за да спаси /etc/modprobe.d/kvm.conf файл и актуализирайте initramfs на вашия Proxmox VE сървър за да влязат в сила промените.

Как да разрешите проблеми с пращене/счупване на HDMI аудио на виртуални машини Proxmox VE Linux?

Ако сте предали графичния процесор на виртуална машина Linux Proxmox VE и получавате лошо качество на звука на виртуалната машина, ще трябва да активирате MSI (Прекъсване на сигнала за съобщение) за аудио устройството на виртуалната машина Proxmox VE.

За да активирате MSI на виртуалната машина Linux Proxmox VE, отворете /etc/modprobe.d/snd-hda-intel.conf файл с нано текстовия редактор на виртуалната машина със следната команда:

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

Добавете следния ред и запазете файла, като натиснете + х следван от И и .

опции snd-hda-intel enable_msi=1

За да влязат в сила промените, рестартирайте виртуалната машина на Linux със следната команда:

$ sudo рестартиране

След като виртуалната машина се зареди, проверете дали MSI е активиран за аудио устройството със следната команда:

$ sudo lspci -vv

Ако MSI е активиран за аудиоустройството на виртуалната машина, трябва да видите маркирания ред в информацията за аудиоустройството.

Как да актуализирам Proxmox VE initramfs?

Всеки път, когато правите промени във файлове в /etc/modules-load.d/ и /etc/modprobe.d/ директории, трябва да актуализирате initramfs на вашата инсталация на Proxmox VE 8 със следната команда:

$ update-initramfs -u -k всички

След като Proxmox VE initramfs бъде актуализиран, рестартирайте вашия Proxmox VE сървър, за да влязат в сила промените.

$ рестартиране

Как да актуализирате Bootloader на Proxmox VE GRUB?

Всеки път, когато актуализирате конфигурационния файл за стартиране на Proxmox VE GRUB /etc/default/grub , трябва да актуализирате GRUB буутлоудъра, за да влязат в сила промените.

За да актуализирате буутлоудъра Proxmox VE GRUB с новите конфигурации, изпълнете следната команда:

$ актуализиране-grub2

След като GRUB буутлоудърът се актуализира с новата конфигурация, рестартирайте вашия Proxmox VE сървър, за да влязат в сила промените.

$ рестартиране

Заключение

В тази статия обсъдихме някои от най-често срещаните проблеми с пропускането на Proxmox VE PCI/PCIE и GPU и стъпките, които можете да предприемете, за да разрешите тези проблеми.

Препратки

  1. [ИНСТРУКЦИЯ] – PCI/GPU Passthrough на Proxmox VE 8 : Инсталиране и конфигуриране | Форум за поддръжка на Proxmox
  2. Крайно ръководство за начинаещи за Proxmox GPU Passthrough
  3. Четене и писане на специфични за модела регистри в Linux
  4. Ръководството за драйвер на MSI HOWTO — Документацията на ядрото на Linux