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
- ¿Qué hacer si no se admite la reasignación de interrupciones de IOMMU?
- ¿Qué hacer si mi GPU (o dispositivo PCI/PCIE) no está en su propio grupo IOMMU?
- ¿Cómo incluyo en la lista negra los controladores de GPU AMD en Proxmox VE?
- ¿Cómo incluyo en la lista negra los controladores de GPU NVIDIA en Proxmox VE?
- ¿Cómo incluyo en la lista negra los controladores de GPU Intel en Proxmox VE?
- ¿Cómo comprobar si mi GPU (o dispositivo PCI/PCIE) está utilizando el controlador VFIO en Proxmox VE?
- He incluido en la lista negra los controladores de GPU AMU, pero la GPU no utiliza el controlador VFIO, ¿qué hacer?
- He incluido en la lista negra los controladores de GPU NVIDIA, pero la GPU no utiliza el controlador VFIO, ¿qué hacer?
- He incluido en la lista negra los controladores de GPU Intel, pero la GPU no utiliza el controlador VFIO, ¿qué hacer?
- Una sola GPU usaba el controlador VFIO, pero cuando se configuraba una segunda GPU, no funcionaba, ¿por qué?
- ¿Por qué deshabilitar el arbitraje VGA para las GPU y cómo hacerlo?
- ¿Qué pasa si mi GPU todavía no usa el controlador VFIO incluso después de configurar VFIO?
- 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é?
- ¿Qué es el error de restablecimiento de proveedores de AMD y cómo solucionarlo?
- ¿Cómo proporcionar un vBIOS para la GPU aprobada en una máquina virtual Proxmox VE?
- ¿Qué hacer si algunas aplicaciones fallan en la máquina virtual Windows Proxmox VE?
- ¿Cómo resolver problemas de roturas o crujidos de audio HDMI en máquinas virtuales Proxmox VE Linux?
- ¿Cómo actualizar los initramfs de Proxmox VE?
- ¿Cómo actualizar el gestor de arranque Proxmox VE GRUB?
- Conclusión
- 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
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
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
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
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
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
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
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
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=
¿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
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
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=
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:
Una vez que haya terminado, guarde el archivo de configuración de la máquina virtual presionando
¿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
¿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
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
- [TUTORIAL] – Paso PCI/GPU en Proxmox VE 8: Instalación y configuración | Foro de soporte de Proxmox
- Guía definitiva para principiantes sobre el paso a través de GPU Proxmox
- Lectura y escritura de registros específicos del modelo en Linux
- La guía del controlador MSI HOWTO: la documentación del kernel de Linux