Importanti modifiche, correzioni e soluzioni alternative al passthrough PCI/PCIE di Proxmox VE 8

Importanti Modifiche Correzioni E Soluzioni Alternative Al Passthrough Pci Pcie Di Proxmox Ve 8



Negli ultimi anni, il supporto per PCI/PCIE (ovvero il passthrough GPU) è migliorato molto negli hardware più recenti. Quindi, il normale Guida al passthrough Proxmox VE PCI/PCIE e GPU dovrebbe funzionare nella maggior parte dei nuovi hardware. Tuttavia, potresti riscontrare molti problemi nel passaggio attraverso GPU e altri dispositivi PCI/PCIE su una macchina virtuale Proxmox VE. Sono disponibili numerose modifiche/correzioni/soluzioni alternative per alcuni dei comuni problemi di passthrough GPU Proxmox VE e PCI/PCIE.

In questo articolo discuterò alcuni dei problemi più comuni di passthrough PCI/PCIE e GPU di Proxmox VE e i passaggi che è possibile eseguire per risolverli.









Sommario

  1. Cosa fare se la rimappatura degli interrupt IOMMU non è supportata?
  2. Cosa fare se la mia GPU (o dispositivo PCI/PCIE) non è nel proprio gruppo IOMMU?
  3. Come posso inserire nella lista nera i driver GPU AMD su Proxmox VE?
  4. Come posso inserire nella lista nera i driver GPU NVIDIA su Proxmox VE?
  5. Come posso inserire nella lista nera i driver GPU Intel su Proxmox VE?
  6. Come verificare se la mia GPU (o dispositivo PCI/PCIE) utilizza il driver VFIO su Proxmox VE?
  7. Ho inserito nella lista nera i driver GPU AMU, ma la GPU non utilizza il driver VFIO, cosa fare?
  8. Ho inserito nella lista nera i driver GPU NVIDIA, ma la GPU non utilizza il driver VFIO, cosa fare?
  9. Ho inserito nella lista nera i driver GPU Intel, ma la GPU non utilizza il driver VFIO, cosa fare?
  10. Una GPU singola utilizzava il driver VFIO, ma quando configurava una seconda GPU, non funzionava, perché?
  11. Perché disabilitare l'arbitraggio VGA per le GPU e come farlo?
  12. Cosa succede se la mia GPU continua a non utilizzare il driver VFIO anche dopo aver configurato VFIO?
  13. Il passthrough GPU non ha mostrato errori, ma viene visualizzata una schermata nera sul monitor collegato alla GPU trasmessa alla VM Proxmox VE, perché?
  14. Cos'è il bug di ripristino del fornitore AMD e come risolverlo?
  15. Come fornire un vBIOS per la GPU superata su una macchina virtuale Proxmox VE?
  16. Cosa fare se alcune app bloccano la macchina virtuale Windows Proxmox VE?
  17. Come risolvere i problemi di crepitio/rottura dell'audio HDMI sulle macchine virtuali Linux Proxmox VE?.
  18. Come aggiornare gli initramfs di Proxmox VE?
  19. Come aggiornare il bootloader Proxmox VE GRUB?
  20. Conclusione
  21. Riferimenti



Cosa fare se la rimappatura degli interrupt IOMMU non è supportata?

Per il passthrough PCI/PCIE, la rimappatura degli interrupt IOMMU è essenziale.





Per verificare se il tuo processore supporta la rimappatura degli interrupt IOMMU, esegui il comando seguente:

$dmesg | grep -i rimappare



Se il tuo processore supporta la rimappatura degli interrupt IOMMU, vedrai una sorta di output che conferma che la rimappatura degli interrupt è abilitata. Altrimenti non vedrai alcun output.

Se la rimappatura degli interrupt IOMMU non è supportata sul tuo processore, dovrai configurare gli interrupt non sicuri sul tuo server Proxmox VE per far passare i dispositivi PCI/PCIE sulle macchine virtuali Proxmox VE.

Per configurare gli interrupt non sicuri su Proxmox VE, creare un nuovo file iommu_unsafe_interrupts.conf nel /etc/modprobe.d directory e aprirla con l'editor di testo nano come segue:

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

Aggiungi la seguente riga nel file iommu_unsafe_interrupts.conf archiviare e premere + X seguito da E E per salvare il file.

opzioni vfio_iommu_type1allow_unsafe_interrupts=1

Una volta finito, devi aggiorna l'initramfs del tuo server Proxmox VE .

Cosa fare se la mia GPU (o dispositivo PCI/PCIE) non è nel proprio gruppo IOMMU?

Se il tuo server ha più slot PCI/PCIE, puoi spostare la GPU su uno slot PCI/PCIE diverso e vedere se la GPU si trova nel proprio gruppo IOMMU.

Se il problema persiste, puoi provare ad abilitare la patch del kernel di override ACS su Proxmox VE.

Per provare ad abilitare la patch del kernel di sostituzione ACS su Proxmox VE, aprire il file /etc/default/grub file con l'editor di testo nano come segue:

$ nano /etc/default/grub

Aggiungi l'opzione di avvio del kernel pcie_acs_override=a valle alla fine di GRUB_CMDLINE_LINUX_DEFAULT .

Una volta finito, premi + X seguito da E E per salvare il file e assicurati di farlo aggiornare il bootloader Proxmox VE GRUB affinché le modifiche abbiano effetto.

Dovresti avere un raggruppamento IOMMU migliore una volta avviato il server Proxmox VE.

Se la tua GPU non dispone ancora di un proprio gruppo IOMMU, puoi fare un ulteriore passo avanti utilizzando il file pcie_acs_override=downstream,multifunzione Invece. Dovresti avere un raggruppamento IOMMU ancora migliore.

Se pcie_acs_override=downstream,multifunzione si traduce in un migliore raggruppamento dell'IOMMU pcie_acs_override=a valle , allora perché usarlo pcie_acs_override=a valle affatto?

Ebbene, lo scopo dell'override PCIE ACS è ingannare il kernel facendogli credere che i dispositivi PCIE siano isolati quando in realtà non lo sono. Pertanto, l'override PCIE ACS comporta problemi di sicurezza e stabilità. Ecco perché dovresti provare a utilizzare un'opzione di override PCIE ACS meno aggressiva pcie_acs_override=a valle prima e vedi se il tuo problema è stato risolto. Se pcie_acs_override=a valle non funziona, solo allora dovresti usare l'opzione più aggressiva pcie_acs_override=downstream,multifunzione .

Come posso inserire nella lista nera i driver GPU AMD su Proxmox VE?

Se desideri passare attraverso una GPU AMD su macchine virtuali Proxmox VE, devi inserire nella lista nera i driver della GPU AMD e assicurarti che utilizzi invece il driver VFIO.

Innanzitutto, apri il file /etc/modprobe.d/blacklist.conf file con l'editor di testo nano come segue:

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

Per inserire nella lista nera i driver della GPU AMD, aggiungi le seguenti righe al file /etc/modprobe.d/blacklist.conf archiviare e premere + X seguito da E E per salvare il file.

radeon nella lista nera

lista nera amdgpu

Una volta finito, devi aggiorna l'initramfs del tuo server Proxmox VE affinché le modifiche abbiano effetto.

Come posso inserire nella lista nera i driver GPU NVIDIA su Proxmox VE?

Se desideri passare attraverso una GPU NVIDIA su macchine virtuali Proxmox VE, devi inserire nella lista nera i driver GPU NVIDIA e assicurarti che utilizzi invece il driver VFIO.

Innanzitutto, apri il file /etc/modprobe.d/blacklist.conf file con l'editor di testo nano come segue:

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

Per inserire nella lista nera i driver della GPU NVIDIA, aggiungi le seguenti righe al file /etc/modprobe.d/blacklist.conf archiviare e premere + X seguito da E E per salvare il file.

nuova lista nera

lista nera nvidia

lista nera nvidiafb

lista nera nvidia_drm

Una volta finito, devi aggiorna l'initramfs del tuo server Proxmox VE affinché le modifiche abbiano effetto.

Come posso inserire nella lista nera i driver GPU Intel su Proxmox VE?

Se desideri passare attraverso una GPU Intel su macchine virtuali Proxmox VE, devi inserire nella blacklist i driver della GPU Intel e assicurarti che utilizzi invece il driver VFIO.

Innanzitutto, apri il file /etc/modprobe.d/blacklist.conf file con l'editor di testo nano come segue:

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

Per inserire nella lista nera i driver della GPU Intel, aggiungi le seguenti righe al file /etc/modprobe.d/blacklist.conf archiviare e premere + X seguito da E E per salvare il file.

lista nera snd_hda_intel

lista nera snd_hda_codec_hdmi

lista nera i915

Una volta finito, devi aggiorna l'initramfs del tuo server Proxmox VE affinché le modifiche abbiano effetto.

Come verificare se la mia GPU (o dispositivo PCI/PCIE) utilizza il driver VFIO su Proxmox VE?

Per verificare se la tua GPU o i dispositivi PCI/PCIE desiderati utilizzano il driver VFIO, esegui il comando seguente:

$ lspci -v

Se la tua GPU o il tuo dispositivo PCI/PCIE utilizza il driver VFIO, dovresti vedere la linea Driver del kernel in uso: vfio-pci come indicato nello screenshot qui sotto.

Ho inserito nella lista nera i driver GPU AMU, ma la GPU non utilizza il driver VFIO, cosa fare?

A volte, inserire nella lista nera i driver della GPU AMD non è sufficiente, è necessario anche configurare i driver della GPU AMD in modo che vengano caricati dopo il driver VFIO.

Per fare ciò, apri il file /etc/modprobe.d/vfio.conf file con l'editor di testo nano come segue:

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

Per configurare i driver GPU AMD da caricare dopo il driver VFIO, aggiungere le seguenti righe al file /etc/modprobe.d/vfio.conf archiviare e premere + X seguito da E E per salvare il file.

softdep radeon pre: vfio-pci

softdep amdgpu pre: vfio-pci

Una volta finito, devi aggiorna l'initramfs del tuo server Proxmox VE affinché le modifiche abbiano effetto.

Ho inserito nella lista nera i driver GPU NVIDIA, ma la GPU non utilizza il driver VFIO, cosa fare?

A volte, inserire nella lista nera i driver della GPU NVIDIA non è sufficiente, è necessario anche configurare i driver della GPU NVIDIA in modo che vengano caricati dopo il driver VFIO.

Per fare ciò, apri il file /etc/modprobe.d/vfio.conf file con l'editor di testo nano come segue:

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

Per configurare i driver GPU NVIDIA in modo che vengano caricati dopo il driver VFIO, aggiungere le seguenti righe al file /etc/modprobe.d/vfio.conf archiviare e premere + X seguito da E E per salvare il file.

softdep nuovo pre: vfio-pci

softdep nvidia per: vfio-pci

softdep nvidiafb per: vfio-pci

softdep nvidia_drm pre: vfio-pci

softdep drm pre: vfio-pci

Una volta finito, devi aggiorna l'initramfs del tuo server Proxmox VE affinché le modifiche abbiano effetto.

Ho inserito nella lista nera i driver della GPU Intel, ma la GPU non utilizza il driver VFIO, cosa fare?

A volte, inserire nella lista nera i driver della GPU Intel non è sufficiente, è necessario anche configurare i driver della GPU Intel in modo che vengano caricati dopo il driver VFIO.

Per fare ciò, apri il file /etc/modprobe.d/vfio.conf file con l'editor di testo nano come segue:

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

Per configurare i driver della GPU Intel da caricare dopo il driver VFIO, aggiungere le seguenti righe al file /etc/modprobe.d/vfio.conf archiviare e premere + X seguito da E E per salvare il file.

softdep snd_hda_intel pre: vfio-pci

softdep snd_hda_codec_hdmi pre: vfio-pci

softdep i915 pre: vfio-pci

Una volta finito, devi aggiorna l'initramfs del tuo server Proxmox VE affinché le modifiche abbiano effetto.

Una GPU singola utilizzava il driver VFIO, ma quando configurava una seconda GPU, non funzionava, perché?

Nel /etc/modprobe.d/vfio.conf file, è necessario aggiungere gli ID di tutti i dispositivi PCI/PCIE che si desidera utilizzare il driver VFIO in un'unica riga. Un dispositivo per linea non funzionerà.

Ad esempio, se disponi di 2 GPU che desideri configurare per utilizzare il driver VFIO, devi aggiungere i loro ID in un'unica riga nel campo /etc/modprobe.d/vfio.conf archiviare come segue:

opzioni vfio-pci ids=,,,

Se desideri aggiungere un'altra GPU all'elenco, aggiungila alla fine di esistente vfio-pci linea nel /etc/modprobe.d/vfio.conf archiviare come segue:

opzioni vfio-pci ids=,,,,,

Non farlo mai. Anche se sembra molto più pulito, non funzionerà. Vorrei che potessimo specificare gli ID PCI/PCIE in questo modo.

opzioni vfio-pci ids=,

opzioni vfio-pci ids=,

opzioni vfio-pci ids=,

Perché disabilitare l'arbitraggio VGA per le GPU e come farlo?

Se utilizzi il BIOS UEFI/OVMF sulla macchina virtuale Proxmox VE su cui desideri passare attraverso la GPU, puoi disabilitare l'arbitraggio VGA che ridurrà i codici legacy richiesti durante l'avvio.

Per disabilitare l'arbitraggio VGA per le GPU, aggiungi disabilita_vga=1 alla fine di opzione vfio-pci nel /etc/modprobe.d/vfio.conf file come mostrato di seguito:

opzioni vfio-pci ids=,,, disattiva_vga=1

Cosa succede se la mia GPU continua a non utilizzare il driver VFIO anche dopo aver configurato VFIO?

Anche dopo aver fatto tutto correttamente, se la tua GPU continua a non utilizzare il driver VFIO, dovrai provare ad avviare Proxmox VE con le opzioni del kernel che disabilitano il framebuffer video.

Su Proxmox VE 7.1 e versioni precedenti, il nofb nomodeset video=vesafb:off video=efifb:off video=simplefb:off le opzioni del kernel disabilitano il framebuffer della GPU per il tuo server Proxmox VE.

Su Proxmox VE 7.2 e versioni successive, il initcall_blacklist=sysfb_init l'opzione del kernel fa un lavoro migliore nel disabilitare il framebuffer della GPU per il tuo server Proxmox VE.

Apri il file di configurazione del bootloader GRUB /etc/default/grub file con l'editor di testo nano con il seguente comando:

$ nano /etc/default/grub

Aggiungi l'opzione del kernel initcall_blacklist=sysfb_init alla fine di GRUB_CMDLINE_LINUX_DEFAULT .

Una volta finito, premi + X seguito da E E per salvare il file e assicurati di farlo aggiornare il bootloader Proxmox VE GRUB affinché le modifiche abbiano effetto.

Il passthrough GPU non ha mostrato errori, ma viene visualizzata una schermata nera sul monitor collegato alla GPU trasmessa alla VM Proxmox VE, perché?

Dopo aver passato una GPU a una macchina virtuale Proxmox VE, assicurati di utilizzare il file Predefinito Scheda grafica prima di avviare la macchina virtuale. In questo modo potrai accedere al display della macchina virtuale dall'interfaccia utente di gestione web di Proxmox VE, scaricare il programma di installazione del driver GPU sulla macchina virtuale e installarlo sulla macchina virtuale.

Una volta installato il driver GPU sulla macchina virtuale, lo schermo della macchina virtuale verrà visualizzato sul monitor collegato alla GPU che hai passato anche alla macchina virtuale.

Una volta installato il driver GPU sulla macchina virtuale e visualizzato lo schermo della macchina virtuale sul monitor collegato alla GPU (passato alla macchina virtuale), spegnere la macchina virtuale e impostare il Visualizza la scheda grafica della macchina virtuale a nessuno .

Una volta impostato, alla successiva accensione della macchina virtuale, lo schermo della macchina virtuale verrà visualizzato solo sul monitor collegato alla GPU (passato alla macchina virtuale), nulla verrà visualizzato sul web Proxmox VE interfaccia utente di gestione. In questo modo, avrai la stessa esperienza di utilizzo di un computer reale anche se stai utilizzando una macchina virtuale.

Ricorda, non usare mai Scheda grafica display SPICE, VirtIO GPU e GPU VirGL sulla macchina virtuale Proxmox VE che stai configurando per il passthrough GPU poiché ha un'alta probabilità di guasto.

Cos'è il bug di ripristino del fornitore AMD e come risolverlo?

Le GPU AMD hanno un bug ben noto chiamato 'bug di ripristino del fornitore'. Una volta che una GPU AMD viene passata a una macchina virtuale Proxmox VE e si spegne questa macchina virtuale, non sarà possibile utilizzare la GPU AMD in un'altra macchina virtuale Proxmox VE. Di conseguenza, a volte il tuo server Proxmox VE non risponderà. Questo è chiamato 'bug di ripristino del fornitore' delle GPU AMD.

Il motivo per cui ciò accade è che le GPU AMD non possono reimpostarsi correttamente dopo essere state passate a una macchina virtuale. Per risolvere questo problema, dovrai ripristinare correttamente la tua GPU AMD. Per ulteriori informazioni sull'installazione del ripristino del fornitore AMD su Proxmox VE, leggi questo articolo E leggi questo thread sul forum Proxmox VE . Anche, controlla la pagina GitHub di ripristino del fornitore .

Come fornire un vBIOS per la GPU superata su una macchina virtuale Proxmox VE?

Se hai installato la GPU nel primo slot della scheda madre, potresti non essere in grado di passare attraverso la GPU in una macchina virtuale Proxmox VE per impostazione predefinita. Alcune schede madri oscurano il vBIOS della GPU installata nel primo slot per impostazione predefinita, motivo per cui la GPU installata nel primo slot di tali schede madri non può essere passata alle macchine virtuali.

La soluzione a questo problema è installare la GPU sul secondo slot della scheda madre, estrarre il vBIOS della GPU, installare la GPU sul primo slot della scheda madre e passare la GPU a una macchina virtuale Proxmox VE insieme al file estratto vBIOS della GPU.

Per sapere come estrarre il vBIOS della tua GPU, leggi questo articolo .

Una volta ottenuto il vBIOS per la tua GPU, devi archiviare il file vBIOS nel file /usr/condividi/kvm/ directory del server Proxmox VE per accedervi.

Una volta archiviato il file vBIOS per la tua GPU nel file /usr/condividi/kvm/ directory, è necessario configurare la macchina virtuale per utilizzarla. Attualmente, non è possibile specificare il file vBIOS per i dispositivi PCI/PCIE delle macchine virtuali Proxmox VE dall'interfaccia utente di gestione Web di Proxmox VE. Quindi, dovrai fare tutto dalla shell/riga di comando di Proxmox VE.

Puoi trovare i file di configurazione della macchina virtuale Proxmox VE nel file /etc/pve/qemu-server/ directory del server Proxmox VE. Ogni macchina virtuale Proxmox VE ha un file di configurazione in questa directory nel formato .conf .

Ad esempio, per aprire il file di configurazione della macchina virtuale Proxmox VE (per la modifica) per l'ID della macchina virtuale 100, sarà necessario eseguire il seguente comando:

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

Nel file di configurazione della macchina virtuale, dovrai aggiungere romfile= nel hostpciX linea che è responsabile del passaggio della GPU sulla macchina virtuale.

Ad esempio, se il nome file vBIOS per la mia GPU è gigabyte-nvidia-1050ti.bin , e ho passato la GPU sul primo slot (slot 0) della macchina virtuale ( hostpci0 ), poi nel 100.conf file, la riga dovrebbe essere la seguente:

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

Una volta terminato, salva il file di configurazione della macchina virtuale premendo + X seguito da E E , avvia la macchina virtuale e controlla se il passthrough GPU funziona.

Cosa fare se alcune app bloccano la macchina virtuale Windows Proxmox VE?

Alcune app come GeForce Experience, Passmark, ecc. potrebbero causare l'arresto anomalo delle macchine virtuali Windows Proxmox VE. Potresti anche riscontrare una schermata blu improvvisa della morte (BSOD) sulle tue macchine virtuali Windows Proxmox VE. Il motivo per cui ciò accade è che la macchina virtuale Windows potrebbe tentare di accedere ai registri specifici del modello (MSR) che non sono effettivamente disponibili e, a seconda di come l'hardware gestisce le richieste MSR, il sistema potrebbe bloccarsi.

La soluzione a questo problema è ignorare i messaggi MSR sul tuo server Proxmox VE.

Per configurare gli MSR sul tuo server Proxmox VE, apri il file /etc/modprobe.d/kvm.conf file con l'editor di testo nano come segue:

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

Per ignorare gli MSR sul tuo server Proxmox VE, aggiungi la seguente riga al file /etc/modprobe.d/kvm.conf file.

opzioni kvm ignore_msrs=1

Una volta che gli MSR vengono ignorati, potresti vedere molti messaggi di avviso MSR nel registro di sistema dmesg. Per evitare ciò, puoi ignorare gli MSR e disabilitare la registrazione dei messaggi di avviso degli MSR aggiungendo invece la seguente riga:

opzioni kvm ignore_msrs=1 report_ignored_msrs=0

Una volta finito, premi + X seguito da E E per salvare il /etc/modprobe.d/kvm.conf file e aggiorna l'initramfs del tuo server Proxmox VE affinché le modifiche abbiano effetto.

Come risolvere i problemi di crepitio/rottura dell'audio HDMI sulle macchine virtuali Proxmox VE Linux?

Se hai passato la GPU a una macchina virtuale Linux Proxmox VE e la qualità audio sulla macchina virtuale è scadente, dovrai abilitare MSI (Message Signal Interrupt) per il dispositivo audio sulla macchina virtuale Proxmox VE.

Per abilitare MSI sulla macchina virtuale Linux Proxmox VE, aprire il file /etc/modprobe.d/snd-hda-intel.conf file con l'editor di testo nano sulla macchina virtuale con il seguente comando:

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

Aggiungere la riga seguente e salvare il file premendo + X seguito da E E .

opzioni snd-hda-intel abilita_msi=1

Per rendere effettive le modifiche, riavviare la macchina virtuale Linux con il seguente comando:

$ sudo riavvio

Una volta avviata la macchina virtuale, controlla se MSI è abilitato per il dispositivo audio con il seguente comando:

$ sudo lspci -vv

Se MSI è abilitato per il dispositivo audio sulla macchina virtuale, dovresti vedere la linea contrassegnata nelle informazioni sul dispositivo audio.

Come aggiornare gli initramfs di Proxmox VE?

Ogni volta che apporti modifiche ai file nel file /etc/modules-load.d/ E /etc/modprobe.d/ directory, è necessario aggiornare l'initramfs della propria installazione Proxmox VE 8 con il seguente comando:

$ update-initramfs -u -k all

Una volta aggiornato Proxmox VE initramfs, riavviare il server Proxmox VE affinché le modifiche abbiano effetto.

$ riavviare

Come aggiornare il bootloader Proxmox VE GRUB?

Ogni volta che aggiorni il file di configurazione di avvio di Proxmox VE GRUB /etc/default/grub , è necessario aggiornare il bootloader GRUB affinché le modifiche abbiano effetto.

Per aggiornare il bootloader Proxmox VE GRUB con le nuove configurazioni, eseguire il comando seguente:

$ aggiornamento-grub2

Una volta aggiornato il bootloader GRUB con la nuova configurazione, riavvia il server Proxmox VE affinché le modifiche abbiano effetto.

$ riavviare

Conclusione

In questo articolo, sono stati discussi alcuni dei problemi più comuni di passthrough PCI/PCIE e GPU di Proxmox VE e i passaggi che è possibile eseguire per risolvere tali problemi.

Riferimenti

  1. [TUTORIAL] – Passthrough PCI/GPU su Proxmox VE 8: Installazione e configurazione | Forum di supporto Proxmox
  2. Guida definitiva per principianti al passthrough GPU Proxmox
  3. Lettura e scrittura di registri specifici del modello in Linux
  4. MSI Driver Guide Howto: la documentazione del kernel Linux