Importantes ajustes, correções e soluções alternativas no Proxmox VE 8 PCI/PCIE Passthrough

Importantes Ajustes Correcoes E Solucoes Alternativas No Proxmox Ve 8 Pci Pcie Passthrough



Nos últimos anos, o suporte para PCI/PCIE (ou seja, passagem de GPU) melhorou muito em hardware mais recente. Então, o regular Guia de passagem Proxmox VE PCI/PCIE e GPU deve funcionar na maioria dos novos hardwares. Ainda assim, você pode enfrentar muitos problemas ao passar por GPUs e outros dispositivos PCI/PCIE em uma máquina virtual Proxmox VE. Existem muitos ajustes/correções/soluções alternativas para alguns dos problemas comuns de GPU Proxmox VE e passagem PCI/PCIE.

Neste artigo, discutirei alguns dos problemas mais comuns de passagem Proxmox VE PCI/PCIE e passagem de GPU e as etapas que você pode seguir para resolver esses problemas.









Índice

  1. O que fazer se o remapeamento de interrupção IOMMU não for compatível?
  2. O que fazer se minha GPU (ou dispositivo PCI/PCIE) não estiver em seu próprio grupo IOMMU?
  3. Como faço para colocar drivers de GPU AMD na lista negra no Proxmox VE?
  4. Como faço para colocar drivers de GPU NVIDIA na lista negra no Proxmox VE?
  5. Como faço para colocar drivers de GPU Intel na lista negra no Proxmox VE?
  6. Como verificar se minha GPU (ou dispositivo PCI/PCIE) está usando o driver VFIO no Proxmox VE?
  7. Coloquei os drivers de GPU AMU na lista negra, mas a GPU não está usando o driver VFIO, o que fazer?
  8. Coloquei os drivers de GPU NVIDIA na lista negra, mas a GPU não está usando o driver VFIO, o que fazer?
  9. Coloquei os drivers de GPU Intel na lista negra, mas a GPU não está usando o driver VFIO, o que fazer?
  10. Uma única GPU usou driver VFIO, mas quando configurou uma segunda GPU, não funcionou, por quê?
  11. Por que desativar a arbitragem VGA para GPUs e como fazer isso?
  12. E se minha GPU ainda não estiver usando o driver VFIO mesmo depois de configurar o VFIO?
  13. A passagem da GPU não mostrou erros, mas estou recebendo uma tela preta no monitor conectado à GPU passada para a VM Proxmox VE, por quê?
  14. O que é o bug de redefinição do fornecedor AMD e como resolvê-lo?
  15. Como fornecer um vBIOS para a GPU aprovada em uma máquina virtual Proxmox VE?
  16. O que fazer se alguns aplicativos travarem a máquina virtual Windows Proxmox VE?
  17. Como resolver problemas de quebra/estalo de áudio HDMI em máquinas virtuais Proxmox VE Linux?
  18. Como atualizar o initramfs do Proxmox VE?
  19. Como atualizar o bootloader Proxmox VE GRUB?
  20. Conclusão
  21. Referências



O que fazer se o remapeamento de interrupção IOMMU não for compatível?

Para passagem PCI/PCIE, o remapeamento de interrupção IOMMU é essencial.





Para verificar se o seu processador suporta remapeamento de interrupção IOMMU, execute o comando abaixo:

$ dmesg | grep -i remapear



Se o seu processador suportar o remapeamento de interrupção IOMMU, você verá algum tipo de saída confirmando que o remapeamento de interrupção está habilitado. Caso contrário, você não verá saídas.

Se o remapeamento de interrupção IOMMU não for compatível com seu processador, você terá que configurar interrupções inseguras em seu servidor Proxmox VE para passar por dispositivos PCI/PCIE em máquinas virtuais Proxmox VE.

Para configurar interrupções inseguras no Proxmox VE, crie um novo arquivo iommu_unsafe_interrupts.conf no /etc/modprobe.d diretório e abra-o com o editor de texto nano da seguinte forma:

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

Adicione a seguinte linha no iommu_unsafe_interrupts.conf arquivo e pressione + X seguido pela E e para salvar o arquivo.

opções vfio_iommu_type1 permitir_unsafe_interrupts=1

Quando terminar, você deve atualize o initramfs do seu servidor Proxmox VE .

O que fazer se minha GPU (ou dispositivo PCI/PCIE) não estiver em seu próprio grupo IOMMU?

Se o seu servidor tiver vários slots PCI/PCIE, você poderá mover a GPU para um slot PCI/PCIE diferente e ver se a GPU está em seu próprio grupo IOMMU.

Se isso não funcionar, você pode tentar ativar o patch do kernel de substituição ACS no Proxmox VE.

Para tentar ativar o patch do kernel de substituição ACS no Proxmox VE, abra o /etc/default/grub arquivo com o editor de texto nano da seguinte maneira:

$ nano /etc/default/grub

Adicione a opção de inicialização do kernel pcie_acs_override = downstream no final de GRUB_CMDLINE_LINUX_DEFAULT .

Quando terminar, pressione + X seguido pela E e para salvar o arquivo e certifique-se de atualize o bootloader Proxmox VE GRUB para que as alterações entrem em vigor.

Você deverá ter um agrupamento IOMMU melhor assim que o servidor Proxmox VE inicializar.

Se sua GPU ainda não possui seu próprio grupo IOMMU, você pode dar um passo adiante usando o pcie_acs_override = downstream, multifuncional em vez de. Você deveria ter um agrupamento IOMMU ainda melhor.

Se pcie_acs_override = downstream, multifuncional resulta em um melhor agrupamento do IOMMU que pcie_acs_override = downstream , então por que usar pcie_acs_override = downstream de forma alguma?

Bem, o objetivo da substituição do PCIE ACS é enganar o kernel fazendo-o pensar que os dispositivos PCIE estão isolados quando na realidade não estão. Portanto, a substituição do PCIE ACS traz problemas de segurança e estabilidade. É por isso que você deve tentar usar uma opção de substituição PCIE ACS menos agressiva pcie_acs_override = downstream primeiro e veja se o seu problema foi resolvido. Se pcie_acs_override = downstream não funciona, só então você deve usar a opção mais agressiva pcie_acs_override = downstream, multifuncional .

Como faço para colocar drivers de GPU AMD na lista negra no Proxmox VE?

Se quiser passar por uma GPU AMD em máquinas virtuais Proxmox VE, você deve colocar os drivers de GPU AMD na lista negra e certificar-se de que ele use o driver VFIO.

Primeiro, abra o /etc/modprobe.d/blacklist.conf arquivo com o editor de texto nano da seguinte maneira:

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

Para colocar os drivers de GPU AMD na lista negra, adicione as seguintes linhas ao /etc/modprobe.d/blacklist.conf arquivo e pressione + X seguido pela E e para salvar o arquivo.

lista negra radeon

lista negra amdgpu

Quando terminar, você deve atualize o initramfs do seu servidor Proxmox VE para que as alterações entrem em vigor.

Como faço para colocar drivers de GPU NVIDIA na lista negra no Proxmox VE?

Se quiser passar por uma GPU NVIDIA em máquinas virtuais Proxmox VE, você deve colocar os drivers de GPU NVIDIA na lista negra e certificar-se de que ele use o driver VFIO.

Primeiro, abra o /etc/modprobe.d/blacklist.conf arquivo com o editor de texto nano da seguinte maneira:

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

Para colocar os drivers de GPU NVIDIA na lista negra, adicione as seguintes linhas ao /etc/modprobe.d/blacklist.conf arquivo e pressione + X seguido pela E e para salvar o arquivo.

lista negra nova

lista negra da Nvidia

lista negra nvidiafb

lista negra nvidia_drm

Quando terminar, você deve atualize o initramfs do seu servidor Proxmox VE para que as alterações entrem em vigor.

Como faço para colocar drivers de GPU Intel na lista negra no Proxmox VE?

Se quiser passar por uma GPU Intel em máquinas virtuais Proxmox VE, você deve colocar os drivers da GPU Intel na lista negra e certificar-se de que ele use o driver VFIO.

Primeiro, abra o /etc/modprobe.d/blacklist.conf arquivo com o editor de texto nano da seguinte maneira:

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

Para colocar os drivers de GPU Intel na lista negra, adicione as seguintes linhas ao /etc/modprobe.d/blacklist.conf arquivo e pressione + X seguido pela E e para salvar o arquivo.

lista negra snd_hda_intel

lista negra snd_hda_codec_hdmi

lista negra i915

Quando terminar, você deve atualize o initramfs do seu servidor Proxmox VE para que as alterações entrem em vigor.

Como verificar se minha GPU (ou dispositivo PCI/PCIE) está usando o driver VFIO no Proxmox VE?

Para verificar se sua GPU ou dispositivos PCI/PCIE desejados estão usando o driver VFIO, execute o seguinte comando:

$ lspci -v

Se sua GPU ou dispositivo PCI/PCIE estiver usando o driver VFIO, você deverá ver a linha Driver do kernel em uso: vfio-pci conforme marcado na imagem abaixo.

Coloquei os drivers de GPU AMU na lista negra, mas a GPU não está usando o driver VFIO, o que fazer?

Às vezes, colocar os drivers de GPU AMD na lista negra não é suficiente, você também precisa configurar os drivers de GPU AMD para carregar após o driver VFIO.

Para fazer isso, abra o /etc/modprobe.d/vfio.conf arquivo com o editor de texto nano da seguinte maneira:

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

Para configurar os drivers da GPU AMD para serem carregados após o driver VFIO, adicione as seguintes linhas ao arquivo /etc/modprobe.d/vfio.conf arquivo e pressione + X seguido pela E e para salvar o arquivo.

softdep radeon pré: vfio-pci

softdep amdgpu pré: vfio-pci

Quando terminar, você deve atualize o initramfs do seu servidor Proxmox VE para que as alterações entrem em vigor.

Coloquei os drivers de GPU NVIDIA na lista negra, mas a GPU não está usando o driver VFIO, o que fazer?

Às vezes, colocar os drivers de GPU NVIDIA na lista negra não é suficiente, você também precisa configurar os drivers de GPU NVIDIA para carregar após o driver VFIO.

Para fazer isso, abra o /etc/modprobe.d/vfio.conf arquivo com o editor de texto nano da seguinte maneira:

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

Para configurar os drivers de GPU NVIDIA para serem carregados após o driver VFIO, adicione as seguintes linhas ao arquivo /etc/modprobe.d/vfio.conf arquivo e pressione + X seguido pela E e para salvar o arquivo.

softdep novo pré: vfio-pci

softdep nvidia para: vfio-pci

softdep nvidiafb para: vfio-pci

softdep nvidia_drm pré: vfio-pci

softdep drm pré: vfio-pci

Quando terminar, você deve atualize o initramfs do seu servidor Proxmox VE para que as alterações entrem em vigor.

Coloquei os drivers de GPU Intel na lista negra, mas a GPU não está usando o driver VFIO, o que fazer?

Às vezes, colocar os drivers da GPU Intel na lista negra não é suficiente, você também precisa configurar os drivers da GPU Intel para carregar após o driver VFIO.

Para fazer isso, abra o /etc/modprobe.d/vfio.conf arquivo com o editor de texto nano da seguinte forma:

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

Para configurar os drivers da GPU Intel para serem carregados após o driver VFIO, adicione as seguintes linhas ao arquivo /etc/modprobe.d/vfio.conf arquivo e pressione + X seguido pela E e para salvar o arquivo.

softdep snd_hda_intel pré: vfio-pci

softdep snd_hda_codec_hdmi pré: vfio-pci

softdep i915 pré: vfio-pci

Quando terminar, você deve atualize o initramfs do seu servidor Proxmox VE para que as alterações entrem em vigor.

Uma única GPU usou driver VFIO, mas quando configurou uma segunda GPU, não funcionou, por quê?

No /etc/modprobe.d/vfio.conf arquivo, você deve adicionar os IDs de todos os dispositivos PCI/PCIE que deseja usar o driver VFIO em uma única linha. Um dispositivo por linha não funcionará.

Por exemplo, se você tiver 2 GPUs que deseja configurar para usar o driver VFIO, deverá adicionar seus IDs em uma única linha no campo /etc/modprobe.d/vfio.conf arquivo da seguinte forma:

opções vfio-pci ids=,,,

Se você quiser adicionar outra GPU à lista, basta anexá-la no final da existente vfio-pci linha no /etc/modprobe.d/vfio.conf arquivo da seguinte forma:

opções vfio-pci ids=,,,,,

Nunca faça isso. Embora pareça muito mais limpo, não funcionará. Eu gostaria que pudéssemos especificar IDs PCI/PCIE desta forma.

opções vfio-pci ids=,

opções vfio-pci ids=,

opções vfio-pci ids=,

Por que desativar a arbitragem VGA para GPUs e como fazer isso?

Se estiver usando BIOS UEFI/OVMF na máquina virtual Proxmox VE onde deseja passar pela GPU, você pode desabilitar a arbitragem VGA, o que reduzirá os códigos legados necessários durante a inicialização.

Para desativar a arbitragem VGA para as GPUs, adicione desativar_vga = 1 no final de opção vfio-pci no /etc/modprobe.d/vfio.conf arquivo conforme mostrado abaixo:

opções vfio-pci ids=,,, desabilitar_vga=1

E se minha GPU ainda não estiver usando o driver VFIO mesmo depois de configurar o VFIO?

Mesmo depois de fazer tudo corretamente, se sua GPU ainda não usa o driver VFIO, você precisará tentar inicializar o Proxmox VE com opções de kernel que desabilitam o framebuffer de vídeo.

No Proxmox VE 7.1 e versões anteriores, o nofb nomodeset video=vesafb:off video=efifb:off video=simplefb:off as opções do kernel desabilitam o framebuffer GPU para seu servidor Proxmox VE.

No Proxmox VE 7.2 e mais recente, o initcall_blacklist=sysfb_init A opção do kernel faz um trabalho melhor ao desabilitar o framebuffer da GPU para o seu servidor Proxmox VE.

Abra o arquivo de configuração do bootloader GRUB /etc/default/grub arquivo com o editor de texto nano com o seguinte comando:

$ nano /etc/default/grub

Adicione a opção de kernel initcall_blacklist=sysfb_init no final de GRUB_CMDLINE_LINUX_DEFAULT .

Quando terminar, pressione + X seguido pela E e para salvar o arquivo e certifique-se de atualize o bootloader Proxmox VE GRUB para que as alterações entrem em vigor.

A passagem da GPU não mostrou erros, mas estou recebendo uma tela preta no monitor conectado à GPU passada para a VM Proxmox VE, por quê?

Depois de passar uma GPU para uma máquina virtual Proxmox VE, certifique-se de usar o Padrão Placa gráfica antes de iniciar a máquina virtual. Dessa forma, você poderá acessar a exibição da máquina virtual a partir da UI de gerenciamento web do Proxmox VE, baixar o instalador do driver GPU na máquina virtual e instalá-lo na máquina virtual.

Assim que o driver da GPU estiver instalado na máquina virtual, a tela da máquina virtual também será exibida no monitor conectado à GPU que você passou para a máquina virtual.

Assim que o driver GPU estiver instalado na máquina virtual e a tela da máquina virtual for exibida no monitor conectado à GPU (passada para a máquina virtual), desligue a máquina virtual e configure o Exibir placa gráfica da máquina virtual para nenhum .

Depois de configurado, na próxima vez que você ligar a máquina virtual, a tela da máquina virtual será exibida apenas no monitor conectado à GPU (passada para a máquina virtual), nada será exibido na web do Proxmox VE interface de gerenciamento. Dessa forma, você terá a mesma experiência de usar um computador real, mesmo usando uma máquina virtual.

Lembre-se, nunca use Placa gráfica SPICE, VirtIO GPU e VirGL GPU Display na máquina virtual Proxmox VE que você está configurando para passagem de GPU, pois há uma grande chance de falha.

O que é o bug de redefinição do fornecedor AMD e como resolvê-lo?

As GPUs AMD têm um bug bem conhecido chamado “bug de redefinição de fornecedor”. Depois que uma GPU AMD for passada para uma máquina virtual Proxmox VE e você desligar essa máquina virtual, não será possível usar a GPU AMD em outra máquina virtual Proxmox VE. Às vezes, o servidor Proxmox VE deixará de responder. Isso é chamado de “bug de redefinição de fornecedor” das GPUs AMD.

A razão pela qual isso acontece é que as GPUs AMD não conseguem se reinicializar corretamente após serem passadas para uma máquina virtual. Para corrigir esse problema, você terá que redefinir sua GPU AMD corretamente. Para obter mais informações sobre como instalar a redefinição do fornecedor AMD no Proxmox VE, leia este artigo e leia este tópico no fórum Proxmox VE . Também, verifique a página GitHub de redefinição do fornecedor .

Como fornecer um vBIOS para a GPU aprovada em uma máquina virtual Proxmox VE?

Se você instalou a GPU no primeiro slot da placa-mãe, talvez não consiga passar a GPU em uma máquina virtual Proxmox VE por padrão. Algumas placas-mãe ocultam o vBIOS da GPU instalada no primeiro slot por padrão, razão pela qual a GPU instalada no primeiro slot dessas placas-mãe não pode ser passada para máquinas virtuais.

A solução para este problema é instalar a GPU no segundo slot da placa-mãe, extrair o vBIOS da GPU, instalar a GPU no primeiro slot da placa-mãe e passar a GPU para uma máquina virtual Proxmox VE junto com o extraído vBIOS da GPU.

Para aprender como extrair o vBIOS da sua GPU, leia este artigo .

Depois de obter o vBIOS para sua GPU, você deve armazenar o arquivo vBIOS no /usr/share/kvm/ diretório do seu servidor Proxmox VE para acessá-lo.

Depois que o arquivo vBIOS da sua GPU for armazenado no /usr/share/kvm/ diretório, você precisa configurar sua máquina virtual para usá-lo. Atualmente, não há como especificar o arquivo vBIOS para dispositivos PCI/PCIE de máquinas virtuais Proxmox VE a partir da UI de gerenciamento da Web do Proxmox VE. Portanto, você terá que fazer tudo desde o shell/linha de comando do Proxmox VE.

Você pode encontrar os arquivos de configuração da máquina virtual Proxmox VE no /etc/pve/qemu-server/ diretório do seu servidor Proxmox VE. Cada máquina virtual Proxmox VE possui um arquivo de configuração neste diretório no formato .conf .

Por exemplo, para abrir o arquivo de configuração da máquina virtual Proxmox VE (para edição) para a máquina virtual ID 100, você precisará executar o seguinte comando:

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

No arquivo de configuração da máquina virtual, você precisará anexar romfile= no hostpciX linha que é responsável por passar a GPU na máquina virtual.

Por exemplo, se o nome do arquivo vBIOS da minha GPU for gigabyte-nvidia-1050ti.bin , e passei a GPU no primeiro slot (slot 0) da máquina virtual ( hostpci0 ), então no 100.conf arquivo, a linha deve ser a seguinte:

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

Quando terminar, salve o arquivo de configuração da máquina virtual pressionando + X seguido pela E e , inicie a máquina virtual e verifique se a passagem da GPU está funcionando.

O que fazer se alguns aplicativos travarem a máquina virtual Windows Proxmox VE?

Alguns aplicativos como GeForce Experience, Passmark, etc. podem travar as máquinas virtuais Proxmox VE Windows. Você também pode experimentar uma tela azul repentina de morte (BSOD) em suas máquinas virtuais Proxmox VE Windows. A razão pela qual isso acontece é que a máquina virtual do Windows pode tentar acessar os registros específicos do modelo (MSRs) que não estão realmente disponíveis e dependendo de como o seu hardware lida com as solicitações de MSRs, o seu sistema pode travar.

A solução para este problema é ignorar as mensagens MSRs no seu servidor Proxmox VE.

Para configurar MSRs em seu servidor Proxmox VE, abra o /etc/modprobe.d/kvm.conf arquivo com o editor de texto nano da seguinte forma:

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

Para ignorar MSRs em seu servidor Proxmox VE, adicione a seguinte linha ao arquivo /etc/modprobe.d/kvm.conf arquivo.

opções kvm ignore_msrs=1

Depois que os MSRs forem ignorados, você poderá ver muitas mensagens de aviso de MSRs no log do sistema dmesg. Para evitar isso, você pode ignorar os MSRs, bem como desabilitar o registro de mensagens de aviso dos MSRs, adicionando a seguinte linha:

opções kvm ignore_msrs=1 report_ignored_msrs=0

Quando terminar, pressione + X seguido pela E e para salvar o /etc/modprobe.d/kvm.conf arquivo e atualize o initramfs do seu servidor Proxmox VE para que as alterações entrem em vigor.

Como resolver problemas de quebra/estalo de áudio HDMI em máquinas virtuais Proxmox VE Linux?

Se você passou a GPU para uma máquina virtual Linux Proxmox VE e está obtendo qualidade de áudio ruim na máquina virtual, será necessário habilitar MSI (Message Signal Interrupt) para o dispositivo de áudio na máquina virtual Proxmox VE.

Para habilitar o MSI na máquina virtual Linux Proxmox VE, abra o /etc/modprobe.d/snd-hda-intel.conf arquivo com o editor de texto nano na máquina virtual com o seguinte comando:

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

Adicione a seguinte linha e salve o arquivo pressionando + X seguido pela E e .

opções snd-hda-intel enable_msi=1

Para que as alterações tenham efeito, reinicie a máquina virtual Linux com o seguinte comando:

$ sudo reiniciar

Assim que a máquina virtual inicializar, verifique se o MSI está habilitado para o dispositivo de áudio com o seguinte comando:

$ sudo lspci -vv

Se o MSI estiver habilitado para o dispositivo de áudio na máquina virtual, você deverá ver a linha marcada nas informações do dispositivo de áudio.

Como atualizar o initramfs do Proxmox VE?

Cada vez que você faz alguma alteração nos arquivos do /etc/modules-load.d/ e /etc/modprobe.d/ diretórios, você deve atualizar o initramfs da instalação do Proxmox VE 8 com o seguinte comando:

$ update-initramfs -u -k tudo

Depois que o initramfs do Proxmox VE for atualizado, reinicie o servidor Proxmox VE para que as alterações tenham efeito.

$ reiniciar

Como atualizar o bootloader Proxmox VE GRUB?

Cada vez que você atualiza o arquivo de configuração de inicialização do Proxmox VE GRUB /etc/default/grub , você deve atualizar o gerenciador de inicialização GRUB para que as alterações tenham efeito.

Para atualizar o bootloader Proxmox VE GRUB com as novas configurações, execute o seguinte comando:

$ atualização-grub2

Assim que o bootloader GRUB for atualizado com a nova configuração, reinicie o servidor Proxmox VE para que as alterações tenham efeito.

$ reiniciar

Conclusão

Neste artigo, discutimos alguns dos problemas mais comuns de passagem Proxmox VE PCI/PCIE e passagem de GPU e as etapas que você pode seguir para resolver esses problemas.

Referências

  1. [TUTORIAL] – Passagem PCI/GPU no Proxmox VE 8: Instalação e configuração | Fórum de suporte Proxmox
  2. Guia definitivo para iniciantes em passagem de GPU Proxmox
  3. Lendo e gravando registros específicos do modelo no Linux
  4. O Guia do Driver MSI HOWTO - A documentação do Kernel Linux