Importantes ajustes, correcciones y soluciones de paso a través de PCI/PCIE de Proxmox VE 8

Importantes Ajustes Correcciones Y Soluciones De Paso A Traves De Pci Pcie De Proxmox Ve 8



En los últimos años, la compatibilidad con PCI/PCIE (es decir, transferencia de GPU) ha mejorado mucho en el hardware más nuevo. Entonces, el regular Guía de paso a través de Proxmox VE PCI/PCIE y GPU Debería funcionar en la mayoría del hardware nuevo. Aún así, puede enfrentar muchos problemas al pasar a través de GPU y otros dispositivos PCI/PCIE en una máquina virtual Proxmox VE. Hay muchos ajustes/arreglos/soluciones alternativas para algunos de los problemas comunes de transferencia de GPU y PCI/PCIE de Proxmox VE.

En este artículo, voy a analizar algunos de los problemas más comunes de transferencia de PCI/PCIE y GPU de Proxmox VE y los pasos que puede seguir para resolverlos.







 



Tabla de contenido

  1. ¿Qué hacer si no se admite la reasignación de interrupciones de IOMMU?
  2. ¿Qué hacer si mi GPU (o dispositivo PCI/PCIE) no está en su propio grupo IOMMU?
  3. ¿Cómo incluyo en la lista negra los controladores de GPU AMD en Proxmox VE?
  4. ¿Cómo incluyo en la lista negra los controladores de GPU NVIDIA en Proxmox VE?
  5. ¿Cómo incluyo en la lista negra los controladores de GPU Intel en Proxmox VE?
  6. ¿Cómo comprobar si mi GPU (o dispositivo PCI/PCIE) está utilizando el controlador VFIO en Proxmox VE?
  7. He incluido en la lista negra los controladores de GPU AMU, pero la GPU no utiliza el controlador VFIO, ¿qué hacer?
  8. He incluido en la lista negra los controladores de GPU NVIDIA, pero la GPU no utiliza el controlador VFIO, ¿qué hacer?
  9. He incluido en la lista negra los controladores de GPU Intel, pero la GPU no utiliza el controlador VFIO, ¿qué hacer?
  10. Una sola GPU usaba el controlador VFIO, pero cuando se configuraba una segunda GPU, no funcionaba, ¿por qué?
  11. ¿Por qué deshabilitar el arbitraje VGA para las GPU y cómo hacerlo?
  12. ¿Qué pasa si mi GPU todavía no usa el controlador VFIO incluso después de configurar VFIO?
  13. El paso de GPU no mostró errores, pero aparece una pantalla negra en el monitor conectado a la GPU pasada a la máquina virtual Proxmox VE, ¿por qué?
  14. ¿Qué es el error de restablecimiento de proveedores de AMD y cómo solucionarlo?
  15. ¿Cómo proporcionar un vBIOS para la GPU aprobada en una máquina virtual Proxmox VE?
  16. ¿Qué hacer si algunas aplicaciones fallan en la máquina virtual Windows Proxmox VE?
  17. ¿Cómo resolver problemas de roturas o crujidos de audio HDMI en máquinas virtuales Proxmox VE Linux?
  18. ¿Cómo actualizar los initramfs de Proxmox VE?
  19. ¿Cómo actualizar el gestor de arranque Proxmox VE GRUB?
  20. Conclusión
  21. Referencias

 



¿Qué hacer si no se admite la reasignación de interrupciones de IOMMU?

Para el paso PCI/PCIE, la reasignación de interrupciones IOMMU es esencial.





Para verificar si su procesador admite la reasignación de interrupciones IOMMU, ejecute el siguiente comando:

$dmesg | grep -i reasignar

 



Si su procesador admite la reasignación de interrupciones IOMMU, verá algún tipo de resultado que confirma que la reasignación de interrupciones está habilitada. De lo contrario, no verá resultados.

Si la reasignación de interrupciones IOMMU no es compatible con su procesador, tendrá que configurar interrupciones inseguras en su servidor Proxmox VE para pasar a través de dispositivos PCI/PCIE en máquinas virtuales Proxmox VE.

Para configurar interrupciones inseguras en Proxmox VE, cree un nuevo archivo iommu_unsafe_interrupts.conf en el /etc/modprobe.d directorio y ábralo con el editor de texto nano de la siguiente manera:

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

 

Agregue la siguiente línea en el iommu_unsafe_interrupts.conf archivo y presione + X seguido por Y y para guardar el archivo.

opciones vfio_iommu_type1 enable_unsafe_interrupts=1

 

Una vez que hayas terminado, debes actualice los initramfs de su servidor Proxmox VE .

 

¿Qué hacer si mi GPU (o dispositivo PCI/PCIE) no está en su propio grupo IOMMU?

Si su servidor tiene varias ranuras PCI/PCIE, puede mover la GPU a una ranura PCI/PCIE diferente y ver si la GPU está en su propio grupo IOMMU.

Si eso no funciona, puede intentar habilitar el parche del kernel de anulación de ACS en Proxmox VE.

Para intentar habilitar el parche del kernel de anulación de ACS en Proxmox VE, abra el /etc/default/grub archivo con el editor de texto nano de la siguiente manera:

$ nano /etc/default/grub

 

Agregue la opción de arranque del kernel pcie_acs_override=aguas abajo al final de GRUB_CMDLINE_LINUX_DEFAULT .

Una vez que hayas terminado, presiona + X seguido por Y y para guardar el archivo y asegúrese de actualizar el gestor de arranque Proxmox VE GRUB para que los cambios surtan efecto.

Debería tener una mejor agrupación de IOMMU una vez que arranque su servidor Proxmox VE.

Si su GPU aún no tiene su propio grupo IOMMU, puede ir un paso más allá utilizando el pcie_acs_override=aguas abajo,multifunción en cambio. Deberías tener una agrupación IOMMU aún mejor.

 

Si pcie_acs_override=aguas abajo,multifunción da como resultado una mejor agrupación IOMMU que pcie_acs_override=aguas abajo , entonces ¿por qué usar pcie_acs_override=aguas abajo ¿en absoluto?

Bueno, el propósito de la anulación de PCIE ACS es engañar al núcleo haciéndole creer que los dispositivos PCIE están aislados cuando en realidad no lo están. Por lo tanto, la anulación de PCIE ACS conlleva problemas de seguridad y estabilidad. Es por eso que debería intentar usar una opción de anulación de PCIE ACS menos agresiva. pcie_acs_override=aguas abajo primero y vea si su problema está resuelto. Si pcie_acs_override=aguas abajo no funciona, solo entonces deberías usar la opción más agresiva pcie_acs_override=aguas abajo,multifunción .

 

¿Cómo incluyo en la lista negra los controladores de GPU AMD en Proxmox VE?

Si desea pasar a través de una GPU AMD en máquinas virtuales Proxmox VE, debe incluir en la lista negra los controladores de la GPU AMD y asegurarse de que utilice el controlador VFIO en su lugar.

Primero, abre el /etc/modprobe.d/blacklist.conf archivo con el editor de texto nano de la siguiente manera:

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

 

Para incluir en la lista negra los controladores de GPU AMD, agregue las siguientes líneas al /etc/modprobe.d/blacklist.conf archivo y presione + X seguido por Y y para guardar el archivo.

radeon lista negra

lista negra amdgpu

 

Una vez que hayas terminado, debes actualice los initramfs de su servidor Proxmox VE para que los cambios surtan efecto.

 

¿Cómo incluyo en la lista negra los controladores de GPU NVIDIA en Proxmox VE?

Si desea pasar a través de una GPU NVIDIA en máquinas virtuales Proxmox VE, debe incluir en la lista negra los controladores de GPU NVIDIA y asegurarse de que utilice el controlador VFIO en su lugar.

Primero, abre el /etc/modprobe.d/blacklist.conf archivo con el editor de texto nano de la siguiente manera:

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

 

Para incluir en la lista negra los controladores de GPU NVIDIA, agregue las siguientes líneas al /etc/modprobe.d/blacklist.conf archivo y presione + X seguido por Y y para guardar el archivo.

lista negra nueva

lista negra nvidia

lista negra nvidiafb

lista negra nvidia_drm

 

Una vez que hayas terminado, debes actualice los initramfs de su servidor Proxmox VE para que los cambios surtan efecto.

 

¿Cómo incluyo en la lista negra los controladores de GPU Intel en Proxmox VE?

Si desea pasar a través de una GPU Intel en máquinas virtuales Proxmox VE, debe incluir en la lista negra los controladores de la GPU Intel y asegurarse de que utilice el controlador VFIO en su lugar.

Primero, abre el /etc/modprobe.d/blacklist.conf archivo con el editor de texto nano de la siguiente manera:

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

 

Para incluir en la lista negra los controladores de GPU Intel, agregue las siguientes líneas al /etc/modprobe.d/blacklist.conf archivo y presione + X seguido por Y y para guardar el archivo.

lista negra snd_hda_intel

lista negra snd_hda_codec_hdmi

lista negra i915

 

Una vez que hayas terminado, debes actualice los initramfs de su servidor Proxmox VE para que los cambios surtan efecto.

 

¿Cómo comprobar si mi GPU (o dispositivo PCI/PCIE) está utilizando el controlador VFIO en Proxmox VE?

Para verificar si su GPU o los dispositivos PCI/PCIE deseados están usando el controlador VFIO, ejecute el siguiente comando:

$ lspci-v

 

Si su GPU o dispositivo PCI/PCIE está utilizando el controlador VFIO, debería ver la línea Controlador kernel en uso: vfio-pci como se marca en la captura de pantalla a continuación.

 

He incluido en la lista negra los controladores de GPU AMU, pero la GPU no utiliza el controlador VFIO, ¿qué hacer?

A veces, poner en la lista negra los controladores de la GPU AMD no es suficiente; también debe configurar los controladores de la GPU AMD para que se carguen después del controlador VFIO.

Para hacer eso, abra el /etc/modprobe.d/vfio.conf archivo con el editor de texto nano de la siguiente manera:

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

 

Para configurar los controladores de GPU AMD para que se carguen después del controlador VFIO, agregue las siguientes líneas al /etc/modprobe.d/vfio.conf archivo y presione + X seguido por Y y para guardar el archivo.

softdep radeon pre: vfio-pci

softdep amdgpu pre:vfio-pci

 

Una vez que hayas terminado, debes actualice los initramfs de su servidor Proxmox VE para que los cambios surtan efecto.

 

He incluido en la lista negra los controladores de GPU NVIDIA, pero la GPU no utiliza el controlador VFIO, ¿qué hacer?

A veces, poner en la lista negra los controladores de la GPU NVIDIA no es suficiente, también hay que configurar los controladores de la GPU NVIDIA para que se carguen después del controlador VFIO.

Para hacer eso, abra el /etc/modprobe.d/vfio.conf archivo con el editor de texto nano de la siguiente manera:

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

 

Para configurar los controladores de GPU NVIDIA para que se carguen después del controlador VFIO, agregue las siguientes líneas al /etc/modprobe.d/vfio.conf archivo y presione + X seguido por Y y para guardar el archivo.

softdep nuevo pre: vfio-pci

softdep nvidia para: vfio-pci

softdep nvidiafb para: vfio-pci

softdep nvidia_drm pre: vfio-pci

softdep drm pre: vfio-pci

 

Una vez que hayas terminado, debes actualice los initramfs de su servidor Proxmox VE para que los cambios surtan efecto.

 

He incluido en la lista negra los controladores de GPU Intel, pero la GPU no utiliza el controlador VFIO, ¿qué hacer?

A veces, incluir en la lista negra los controladores de la GPU Intel no es suficiente; también debe configurar los controladores de la GPU Intel para que se carguen después del controlador VFIO.

Para hacer eso, abra el /etc/modprobe.d/vfio.conf archivo con el editor de texto nano de la siguiente manera:

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

 

Para configurar los controladores de GPU Intel para que se carguen después del controlador VFIO, agregue las siguientes líneas al /etc/modprobe.d/vfio.conf archivo y presione + X seguido por Y y para guardar el archivo.

softdep snd_hda_intel pre: vfio-pci

softdep snd_hda_codec_hdmi pre: vfio-pci

softdep i915 pre: vfio-pci

 

Una vez que hayas terminado, debes actualice los initramfs de su servidor Proxmox VE para que los cambios surtan efecto.

 

Una sola GPU usaba el controlador VFIO, pero cuando se configuraba una segunda GPU, no funcionaba, ¿por qué?

En el /etc/modprobe.d/vfio.conf archivo, debe agregar los ID de todos los dispositivos PCI/PCIE en los que desea utilizar el controlador VFIO en una sola línea. Un dispositivo por línea no funcionará.

Por ejemplo, si tiene 2 GPU que desea configurar para usar el controlador VFIO, debe agregar sus ID en una sola línea en el /etc/modprobe.d/vfio.conf archivo de la siguiente manera:

opciones vfio-pci ids=,,,

 

Si desea agregar otra GPU a la lista, simplemente agréguela al final de la existente vfio-pci línea en el /etc/modprobe.d/vfio.conf archivo de la siguiente manera:

opciones vfio-pci ids=,,,,,

 

Nunca hagas esto. Aunque parece mucho más limpio, no funcionará. Ojalá pudiéramos especificar los ID de PCI/PCIE de esta manera.

opciones vfio-pci ids=,

opciones vfio-pci ids=,

opciones vfio-pci ids=,

 

¿Por qué deshabilitar el arbitraje VGA para las GPU y cómo hacerlo?

Si está utilizando UEFI/OVMF BIOS en la máquina virtual Proxmox VE donde desea pasar a través de la GPU, puede desactivar el arbitraje VGA, lo que reducirá los códigos heredados necesarios durante el arranque.

Para deshabilitar el arbitraje VGA para las GPU, agregue desactivar_vga=1 al final de opción vfio-pci en el /etc/modprobe.d/vfio.conf archivo como se muestra a continuación:

opciones vfio-pci ids=,,, enable_vga=1

 

¿Qué pasa si mi GPU todavía no usa el controlador VFIO incluso después de configurar VFIO?

Incluso después de hacer todo correctamente, si su GPU aún no usa el controlador VFIO, deberá intentar iniciar Proxmox VE con opciones del kernel que deshabiliten el framebuffer de video.

En Proxmox VE 7.1 y anteriores, el nofb nomodeset video=vesafb:off video=efifb:off video=simplefb:off Las opciones del kernel desactivan el framebuffer de GPU para su servidor Proxmox VE.

En Proxmox VE 7.2 y posteriores, el initcall_blacklist=sysfb_init La opción kernel hace un mejor trabajo al deshabilitar el framebuffer de GPU para su servidor Proxmox VE.

Abra el archivo de configuración del gestor de arranque GRUB /etc/default/grub archivo con el editor de texto nano con el siguiente comando:

$ nano /etc/default/grub

 

Agregue la opción del núcleo initcall_blacklist=sysfb_init al final de GRUB_CMDLINE_LINUX_DEFAULT .

Una vez que hayas terminado, presiona + X seguido por Y y para guardar el archivo y asegúrese de actualizar el gestor de arranque Proxmox VE GRUB para que los cambios surtan efecto.

 

El paso de GPU no mostró errores, pero aparece una pantalla negra en el monitor conectado a la GPU pasada a la máquina virtual Proxmox VE, ¿por qué?

Una vez que haya pasado una GPU a una máquina virtual Proxmox VE, asegúrese de usar el Por defecto Tarjeta gráfica antes de iniciar la máquina virtual. De esta manera, podrá acceder a la pantalla de la máquina virtual desde la interfaz de usuario de administración web de Proxmox VE, descargar el instalador del controlador de GPU en la máquina virtual e instalarlo en la máquina virtual.

Una vez que el controlador de GPU esté instalado en la máquina virtual, la pantalla de la máquina virtual también se mostrará en el monitor conectado a la GPU que pasó a la máquina virtual.

 

Una vez que el controlador de GPU esté instalado en la máquina virtual y la pantalla de la máquina virtual se muestre en el monitor conectado a la GPU (pasada a la máquina virtual), apague la máquina virtual y configure el Pantalla Tarjeta gráfica de la máquina virtual para ninguno .

Una vez que esté configurado, la próxima vez que encienda la máquina virtual, la pantalla de la máquina virtual se mostrará únicamente en el monitor conectado a la GPU (pasado a la máquina virtual), no se mostrará nada en la web de Proxmox VE. interfaz de usuario de gestión. De esta manera, tendrás la misma experiencia que usar una computadora real aunque estés usando una máquina virtual.

 

Recuerde, nunca use Tarjeta gráfica de pantalla SPICE, VirtIO GPU y VirGL GPU en la máquina virtual Proxmox VE que está configurando para el paso de GPU, ya que tiene una alta probabilidad de fallar.

 

¿Qué es el error de restablecimiento de proveedores de AMD y cómo solucionarlo?

Las GPU AMD tienen un error conocido llamado 'error de restablecimiento del proveedor'. Una vez que se pasa una GPU AMD a una máquina virtual Proxmox VE y apaga esta máquina virtual, no podrá usar la GPU AMD en otra máquina virtual Proxmox VE. En ocasiones, su servidor Proxmox VE dejará de responder como resultado. Esto se denomina 'error de restablecimiento del proveedor' de las GPU AMD.

La razón por la que esto sucede es que las GPU de AMD no pueden restablecerse correctamente después de pasarlas a una máquina virtual. Para solucionar este problema, deberá restablecer su GPU AMD correctamente. Para obtener más información sobre cómo instalar el restablecimiento del proveedor de AMD en Proxmox VE, Lee este artículo y lea este hilo en el foro de Proxmox VE . También, consulte la página de GitHub para restablecer el proveedor .

 

¿Cómo proporcionar un vBIOS para la GPU aprobada en una máquina virtual Proxmox VE?

Si ha instalado la GPU en la primera ranura de su placa base, es posible que no pueda pasar a través de la GPU en una máquina virtual Proxmox VE de forma predeterminada. Algunas placas base ocultan el vBIOS de la GPU instalada en la primera ranura de forma predeterminada, razón por la cual la GPU instalada en la primera ranura de esas placas base no se puede pasar a máquinas virtuales.

La solución a este problema es instalar la GPU en la segunda ranura de la placa base, extraer el vBIOS de la GPU, instalar la GPU en la primera ranura de la placa base y pasar la GPU a una máquina virtual Proxmox VE junto con la GPU extraída. vBIOS de la GPU.

Para aprender cómo extraer el vBIOS de su GPU, Lee este artículo .

Una vez que haya obtenido el vBIOS para su GPU, debe almacenar el archivo vBIOS en el /usr/compartir/kvm/ directorio de su servidor Proxmox VE para acceder a él.

Una vez que el archivo vBIOS para su GPU esté almacenado en el /usr/compartir/kvm/ directorio, necesita configurar su máquina virtual para usarlo. Actualmente, no hay forma de especificar el archivo vBIOS para dispositivos PCI/PCIE de máquinas virtuales Proxmox VE desde la interfaz de usuario de administración web de Proxmox VE. Por lo tanto, tendrá que hacer todo desde el shell/línea de comandos de Proxmox VE.

Puede encontrar los archivos de configuración de la máquina virtual Proxmox VE en el /etc/pve/qemu-servidor/ directorio de su servidor Proxmox VE. Cada máquina virtual Proxmox VE tiene un archivo de configuración en este directorio en el formato .conf .

Por ejemplo, para abrir el archivo de configuración de la máquina virtual Proxmox VE (para editar) para la máquina virtual ID 100, deberá ejecutar el siguiente comando:

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

 

En el archivo de configuración de la máquina virtual, deberá agregar romfile= en el hostpciX Línea que se encarga de pasar la GPU en la máquina virtual.

Por ejemplo, si el nombre de archivo vBIOS de mi GPU es gigabyte-nvidia-1050ti.bin , y he pasado la GPU en la primera ranura (ranura 0) de la máquina virtual ( hostpci0 ), luego en el 100.conf archivo, la línea debe ser la siguiente:

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

 

Una vez que haya terminado, guarde el archivo de configuración de la máquina virtual presionando + X seguido por Y y , inicie la máquina virtual y verifique si la transferencia de GPU está funcionando.

 

¿Qué hacer si algunas aplicaciones bloquean la máquina virtual Windows Proxmox VE?

Algunas aplicaciones como GeForce Experience, Passmark, etc. pueden bloquear las máquinas virtuales Proxmox VE de Windows. También puede experimentar una pantalla azul repentina de muerte (BSOD) en sus máquinas virtuales Windows Proxmox VE. La razón por la que esto sucede es que la máquina virtual de Windows puede intentar acceder a los registros específicos del modelo (MSR) que en realidad no están disponibles y, dependiendo de cómo su hardware maneje las solicitudes de MSR, su sistema podría fallar.

La solución a este problema es ignorar los mensajes MSR en su servidor Proxmox VE.

Para configurar MSR en su servidor Proxmox VE, abra el /etc/modprobe.d/kvm.conf archivo con el editor de texto nano de la siguiente manera:

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

 

Para ignorar los MSR en su servidor Proxmox VE, agregue la siguiente línea al /etc/modprobe.d/kvm.conf archivo.

opciones kvm ignore_msrs=1

 

Una vez que se ignoran los MSR, es posible que vea muchos mensajes de advertencia de MSR en el registro del sistema dmesg. Para evitarlo, puede ignorar los MSR y deshabilitar el registro de mensajes de advertencia de MSR agregando la siguiente línea:

opciones kvm ignore_msrs=1 report_ignored_msrs=0

 

Una vez que hayas terminado, presiona + X seguido por Y y para salvar el /etc/modprobe.d/kvm.conf archivo y actualice los initramfs de su servidor Proxmox VE para que los cambios surtan efecto.

 

¿Cómo resolver problemas de rotura o crujido de audio HDMI en máquinas virtuales Proxmox VE Linux?

Si pasó la GPU a una máquina virtual Linux Proxmox VE y obtiene mala calidad de audio en la máquina virtual, deberá habilitar MSI (Interrupción de señal de mensaje) para el dispositivo de audio en la máquina virtual Proxmox VE.

Para habilitar MSI en la máquina virtual Linux Proxmox VE, abra el /etc/modprobe.d/snd-hda-intel.conf archivo con el editor de texto nano en la máquina virtual con el siguiente comando:

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

 

Agregue la siguiente línea y guarde el archivo presionando + X seguido por Y y .

opciones snd-hda-intel enable_msi=1

 

Para que los cambios surtan efecto, reinicie la máquina virtual Linux con el siguiente comando:

$ sudo reiniciar

 

Una vez que se inicie la máquina virtual, verifique si MSI está habilitado para el dispositivo de audio con el siguiente comando:

$sudolspci-vv

 

Si MSI está habilitado para el dispositivo de audio en la máquina virtual, debería ver la línea marcada en la información del dispositivo de audio.

 

¿Cómo actualizar los initramfs de Proxmox VE?

Cada vez que realiza algún cambio en los archivos del /etc/modules-load.d/ y /etc/modprobe.d/ directorios, debe actualizar el initramfs de su instalación de Proxmox VE 8 con el siguiente comando:

$ actualización-initramfs -u -k todo

 

Una vez que se actualice Proxmox VE initramfs, reinicie su servidor Proxmox VE para que los cambios surtan efecto.

$ reiniciar

 

¿Cómo actualizar el gestor de arranque Proxmox VE GRUB?

Cada vez que actualiza el archivo de configuración de arranque de Proxmox VE GRUB /etc/default/grub , debe actualizar el gestor de arranque GRUB para que los cambios surtan efecto.

Para actualizar el gestor de arranque Proxmox VE GRUB con las nuevas configuraciones, ejecute el siguiente comando:

$ actualización-grub2

 

Una vez que el gestor de arranque GRUB se actualice con la nueva configuración, reinicie su servidor Proxmox VE para que los cambios surtan efecto.

$ reiniciar

 

Conclusión

En este artículo, analizamos algunos de los problemas más comunes de transferencia de PCI/PCIE y GPU de Proxmox VE y los pasos que puede seguir para resolverlos.

 

Referencias

  1. [TUTORIAL] – Paso PCI/GPU en Proxmox VE 8: Instalación y configuración | Foro de soporte de Proxmox
  2. Guía definitiva para principiantes sobre el paso a través de GPU Proxmox
  3. Lectura y escritura de registros específicos del modelo en Linux
  4. La guía del controlador MSI HOWTO: la documentación del kernel de Linux