Cómo configurar Proxmox VE 8 para PCI/PCIE y NVIDIA GPU Passthrough

Como Configurar Proxmox Ve 8 Para Pci Pcie Y Nvidia Gpu Passthrough



Proxmox VE 8 es uno de los mejores hipervisores Tipo I gratuitos y de código abierto que existen para ejecutar máquinas virtuales (VM) QEMU/KVM y contenedores LXC. Tiene una agradable interfaz de administración web y muchas funciones.

Una de las características más sorprendentes de Proxmox VE es que puede pasar a través de dispositivos PCI/PCIE (es decir, una GPU NVIDIA) desde su computadora a máquinas virtuales (VM) Proxmox VE. La transferencia PCI/PCIE es cada vez mejor con las nuevas versiones de Proxmox VE. Al momento de escribir este artículo, la última versión de Proxmox VE es Proxmox VE v8.1 y tiene un excelente soporte de transferencia PCI/PCIE.







En este artículo, le mostraré cómo configurar su host/servidor Proxmox VE 8 para transferencia PCI/PCIE y configurar su GPU NVIDIA para transferencia PCIE en máquinas virtuales (VM) Proxmox VE 8.



 



Tabla de contenido

  1. Habilitación de la virtualización desde el firmware BIOS/UEFI de su placa base
  2. Instalación de Proxmox VE 8
  3. Habilitación de los repositorios comunitarios de Proxmox VE 8
  4. Instalación de actualizaciones en Proxmox VE 8
  5. Habilitar IOMMU desde el firmware BIOS/UEFI de su placa base
  6. Habilitando IOMMU en Proxmox VE 8
  7. Verificar si IOMMU está habilitado en Proxmox VE 8
  8. Cargando módulos del kernel VFIO en Proxmox VE 8
  9. Listado de grupos IOMMU en Proxmox VE 8
  10. Comprobar si su GPU NVIDIA se puede transferir a una máquina virtual (VM) Proxmox VE 8
  11. Comprobación de los módulos del kernel incluidos en la lista negra para paso a través de PCI/PCIE en Proxmox VE 8
  12. Incluir en la lista negra los módulos de kernel necesarios para el paso PCI/PCIE en Proxmox VE 8
  13. Configuración de su GPU NVIDIA para utilizar el módulo kernel VFIO en Proxmox VE 8
  14. Pasar la GPU NVIDIA a una máquina virtual (VM) Proxmox VE 8
  15. ¿Sigue teniendo problemas con el paso PCI/PCIE en máquinas virtuales (VM) Proxmox VE 8?
  16. Conclusión
  17. Referencias

 





Habilitación de la virtualización desde el firmware BIOS/UEFI de su placa base

Antes de poder instalar Proxmox VE 8 en su computadora/servidor, debe habilitar la función de virtualización de hardware de su procesador desde el firmware BIOS/UEFI de su placa base. El proceso es diferente para diferentes placas base. Entonces, si necesita ayuda para habilitar la virtualización de hardware en su placa base, Lee este artículo .

 



Instalación de Proxmox VE 8

Proxmox VE 8 se puede descargar, instalar y utilizar de forma gratuita. Antes de comenzar, asegúrese de instalar Proxmox VE 8 en su computadora. Si necesita ayuda con eso, Lee este artículo .

 

Habilitación de los repositorios comunitarios de Proxmox VE 8

Una vez que tenga Proxmox VE 8 instalado en su computadora/servidor, asegúrese de habilitar los repositorios de paquetes comunitarios de Proxmox VE 8 .

De forma predeterminada, los repositorios de paquetes empresariales de Proxmox VE 8 están habilitados y no podrá obtener/instalar actualizaciones y correcciones de errores de los repositorios empresariales a menos que haya comprado licencias empresariales de Proxmox VE 8. Entonces, si desea utilizar Proxmox VE 8 de forma gratuita, asegúrese de habilitar los repositorios de paquetes comunitarios de Proxmox VE 8 para obtener las últimas actualizaciones y correcciones de errores de Proxmox de forma gratuita.

 

Instalación de actualizaciones en Proxmox VE 8

Una vez que hayas habilitó los repositorios de paquetes de la comunidad Proxmox VE 8 , asegurate que instale todas las actualizaciones disponibles en su servidor Proxmox VE 8 .

 

Habilitar IOMMU desde el firmware BIOS/UEFI de su placa base

La configuración IOMMU se encuentra en diferentes ubicaciones en diferentes placas base. Para habilitar IOMMU en su placa base, Lee este artículo .

 

Habilitando IOMMU en Proxmox VE 8

Una vez que IOMMU esté habilitado en el lado del hardware, también deberá habilitar IOMMU desde el lado del software (desde Proxmox VE 8).

Para habilitar IOMMU desde Proxmox VE 8, debe agregar los siguientes parámetros de arranque del kernel:

Proveedor de procesador Parámetros de arranque del kernel para agregar
Intel intel_iommu=activado, iommu=pt
AMD iommu=pt

 

Para modificar los parámetros de arranque del kernel de Proxmox VE 8, abra el /etc/default/grub archivo con el editor de texto nano de la siguiente manera:

$ nano /etc/default/grub

 

Al final de GRUB_CMDLINE_LINUX_DEFAULT , agregue los parámetros de arranque del kernel necesarios para habilitar IOMMU según el procesador que esté utilizando.

Como estoy usando un procesador AMD, agregué solo el parámetro de arranque del kernel. iommu=pt al final de GRUB_CMDLINE_LINUX_DEFAULT línea en el /etc/default/grub archivo.

Una vez que hayas terminado, presiona + X seguido por Y y para salvar el /etc/default/grub archivo.

 

Ahora, actualice las configuraciones de arranque de GRUB con el siguiente comando:

$ actualización-grub2

 

Una vez actualizadas las configuraciones de arranque de GRUB, haga clic en Reiniciar para reiniciar su servidor Proxmox VE 8 para que los cambios surtan efecto.

 

Verificar si IOMMU está habilitado en Proxmox VE 8

Para verificar si IOMMU está habilitado en Proxmox VE 8, ejecute el siguiente comando:

$dmesg | grep -e DMAR -e IOMMU

 

Si IOMMU está habilitado, verá algunos resultados que confirman que IOMMU está habilitado.

Si IOMMU no está habilitado, es posible que no vea ningún resultado.

 

También necesitas tener el Reasignación de interrupciones de IOMMU habilitado para que funcione el paso a través de PCI/PCIE.

Para verificar si IOMMU Interrupt Remapping está habilitado en su servidor Proxmox VE 8, ejecute el siguiente comando:

$dmesg | grep 'reasignación'

 

Como puede ver, la reasignación de interrupciones IOMMU está habilitada en mi servidor Proxmox VE 8.

La mayoría de los procesadores AMD e Intel modernos tendrán habilitada la reasignación de interrupciones IOMMU. Si por algún motivo no tienes habilitada la reasignación de interrupción de IOMMU, existe una solución. Debe habilitar las interrupciones inseguras para VFIO. Lee este artículo para obtener más información sobre cómo habilitar interrupciones inseguras en su servidor Proxmox VE 8.

 

Cargando módulos del kernel VFIO en Proxmox VE 8

El paso PCI/PCIE se realiza principalmente mediante los módulos del kernel VFIO (Virtual Function I/O) en Proxmox VE 8. Los módulos del kernel VFIO no se cargan en el momento del arranque de forma predeterminada en Proxmox VE 8. Pero es fácil cargar el VFIO módulos del kernel en el momento del arranque en Proxmox VE 8.

Primero, abre el /etc/modules-load.d/vfio.conf presentar con el nano editor de texto de la siguiente manera:

$nano /etc/modules-load.d/vfio.conf

 

Escriba las siguientes líneas en el /etc/modules-load.d/vfio.conf archivo.

vfio

vfio_iommu_type1

vfio_pci

 

Una vez que hayas terminado, presiona + X seguido por Y y para guardar los cambios.

 

Ahora, actualice el initramfs de su instalación de Proxmox VE 8 con el siguiente comando:

$ actualización-initramfs -u -k todo

 

Una vez actualizado initramfs, haga clic en Reiniciar para reiniciar su servidor Proxmox VE 8 para que los cambios surtan efecto.

 

Una vez que se inicie su servidor Proxmox VE 8, debería ver que todos los módulos del kernel VFIO necesarios están cargados.

$lsmod | agarre vfio

 

Listado de grupos IOMMU en Proxmox VE 8

Para pasar a través de dispositivos PCI/PCIE en máquinas virtuales (VM) Proxmox VE 8, deberá verificar los grupos IOMMU de sus dispositivos PCI/PCIE con bastante frecuencia. Para facilitar la búsqueda de grupos IOMMU, decidí escribir un script de shell (lo obtuve de GitHub, pero no recuerdo el nombre del autor original) en la ruta /usr/local/bin/print-iommu-groups para que pueda simplemente correr imprimir-iommu-grupos comando e imprimirá los grupos IOMMU en el shell Proxmox VE 8.

 

Primero, crea un nuevo archivo. imprimir-iommu-grupos en el camino /usr/local/bin y ábrelo con el editor de texto nano de la siguiente manera:

$ nano /usr/local/bin/print-iommu-groups

 

Escriba las siguientes líneas en el imprimir-iommu-grupos archivo:

#!/bin/bash

tiendas -s globo nulo

para gramo en ` encontrar / sistema / núcleo / grupos_iommu /* -máxima profundidad 0 -tipo d | clasificar -EN ` ; hacer

eco 'Grupo IOMMU ${g##*/} :'

para d en $g / dispositivos /* ; hacer

eco -Es ' \ t $(lspci -nns ${d##*/}) '

hecho ;

hecho ;

 

Una vez que hayas terminado, presiona + X seguido por Y y para guardar los cambios en el imprimir-iommu-grupos archivo.

 

Hacer el imprimir-iommu-grupos archivo de script ejecutable con el siguiente comando:

$ chmod +x /usr/local/bin/print-iommu-groups

 

Ahora puedes ejecutar el imprimir-iommu-grupos comando de la siguiente manera para imprimir los grupos IOMMU de los dispositivos PCI/PCIE instalados en su servidor Proxmox VE 8:

$ imprimir-iommu-grupos

 

Como puede ver, están impresos los grupos IOMMU de los dispositivos PCI/PCIE instalados en mi servidor Proxmox VE 8.

 

Comprobar si su GPU NVIDIA se puede transferir a una máquina virtual (VM) Proxmox VE 8

Para pasar un dispositivo PCI/PCIE a una máquina virtual (VM) Proxmox VE 8, debe estar en su propio grupo IOMMU. Si 2 o más dispositivos PCI/PCIE comparten un grupo IOMMU, no puede pasar ninguno de los dispositivos PCI/PCIE de ese grupo IOMMU a ninguna máquina virtual (VM) Proxmox VE 8.

Por lo tanto, si su GPU NVIDIA y su dispositivo de audio están en su propio grupo IOMMU, puede pasar a través de la GPU NVIDIA a cualquier máquina virtual (VM) Proxmox VE 8.

En mi servidor Proxmox VE 8, estoy usando una placa base MSI X570 ACE combinada con un procesador Ryzen 3900X y una GPU Gigabyte RTX 4070 NVIDIA. Según los grupos IOMMU de mi sistema, puedo pasar a través de la GPU NVIDIA RTX 4070 (IOMMU Group 21), el controlador Ethernet RTL8125 de 2,5 Gbe (IOMMU Group 20), el controlador Intel I211 Gigabit Ethernet (IOMMU Group 19), un controlador USB 3.0 ( IOMMU Grupo 24) y el controlador de audio HD integrado (IOMMU Grupo 25).

$ imprimir-iommu-grupos

 

Como el enfoque principal de este artículo es configurar Proxmox VE 8 para pasar a través de la GPU NVIDIA a las máquinas virtuales Proxmox VE 8, la GPU NVIDIA y su dispositivo de audio deben estar en su propio grupo IOMMU.

 

Comprobación de los módulos del kernel incluidos en la lista negra para paso a través de PCI/PCIE en Proxmox VE 8

Para pasar a través de un dispositivo PCI/PCIE en una máquina virtual (VM) Proxmox VE 8, debe asegurarse de que Proxmox VE le obligue a utilizar el módulo del kernel VFIO en lugar de su módulo del kernel original.

Para averiguar el módulo del kernel que utilizan sus dispositivos PCI/PCIE, necesitará conocer el ID del proveedor y el ID del dispositivo de estos dispositivos PCI/PCIE. Puede encontrar el ID del proveedor y el ID del dispositivo de los dispositivos PCI/PCIE utilizando el imprimir-iommu-grupos dominio.

$ imprimir-iommu-grupos

 

Por ejemplo, el ID del proveedor y el ID del dispositivo de mi GPU NVIDIA RTX 4070 es 10de:2786 y su dispositivo de audio es 10de:22 a.c. .

 

Para encontrar el módulo del kernel en un dispositivo PCI/PCIE 10de:2786 (mi GPU NVIDIA RTX 4070) está usando, ejecute el lspci comando de la siguiente manera:

$ lspci -v -d 10de:2786

 

Como puede ver, mi GPU NVIDIA RTX 4070 está usando el nvidiafb y nuevo módulos del kernel de forma predeterminada. Por lo tanto, no se pueden pasar a una máquina virtual (VM) Proxmox VE 8 en este momento.

 

El dispositivo de audio de mi GPU NVIDIA RTX 4070 está usando el snd_hda_intel módulo del núcleo. Por lo tanto, tampoco se puede pasar a una máquina virtual Proxmox VE 8 en este momento.

$ lspci -v -d 10de:22bc

 

Entonces, para pasar a través de mi GPU NVIDIA RTX 4070 y su dispositivo de audio en una máquina virtual (VM) Proxmox VE 8, debo incluir en la lista negra el nvidiafb , nuevo , y snd_hda_intel módulos del kernel y configurar mi GPU NVIDIA RTX 4070 y su dispositivo de audio para usar el vfio-pci módulo del núcleo.

 

Incluir en la lista negra los módulos de kernel necesarios para el paso PCI/PCIE en Proxmox VE 8

Para incluir en la lista negra los módulos del kernel en Proxmox VE 8, abra 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 módulos del kernel nuevo , nvidiafb , y snd_hda_intel módulos del kernel (para pasar a través de la GPU NVIDIA), agregue las siguientes líneas en el /etc/modprobe.d/blacklist.conf archivo:

lista negra nueva

lista negra nvidiafb

lista negra snd_hda_intel

 

Una vez que hayas terminado, presiona + X seguido por Y y para salvar el /etc/modprobe.d/blacklist.conf archivo.

 

Configuración de su GPU NVIDIA para utilizar el módulo kernel VFIO en Proxmox VE 8

Para configurar el dispositivo PCI/PCIE (es decir, su GPU NVIDIA) para usar el módulo del kernel VFIO, necesita conocer su ID de proveedor y su ID de dispositivo.

En este caso, el ID del proveedor y el ID del dispositivo de mi GPU NVIDIA RTX 4070 y su dispositivo de audio son 10de:2786 y 10de:22 a.c. .

 

Para configurar su GPU NVIDIA para usar el módulo del kernel VFIO, 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 su GPU NVIDIA y su dispositivo de audio con : 10de:2786 y 10de:22 a.c. (digamos) respectivamente para usar el módulo del kernel VFIO, agregue la siguiente línea al /etc/modprobe.d/vfio.conf archivo.

opciones vfio-pci ids=10de:2786,10de:22bc

 

Una vez que hayas terminado, presiona + X seguido por Y y para salvar el /etc/modprobe.d/vfio.conf archivo.

 

Ahora, actualice initramfs de Proxmove VE 8 con el siguiente comando:

$ actualización-initramfs -u -k todo

 

Una vez actualizado initramfs, haga clic en Reiniciar para reiniciar su servidor Proxmox VE 8 para que los cambios surtan efecto.

 

Una vez que se inicie su servidor Proxmox VE 8, debería ver que su GPU NVIDIA y su dispositivo de audio ( 10de:2786 y 10de:22 a.c. en mi caso) están usando el vfio-pci módulo del núcleo. Ahora, su GPU NVIDIA está lista para pasar a una máquina virtual Proxmox VE 8.

$ lspci -v -d 10de:2786

$ lspci -v -d 10de:22bc

 

Pasar la GPU NVIDIA a una máquina virtual (VM) Proxmox VE 8

Ahora que su GPU NVIDIA está lista para la transferencia en las máquinas virtuales (VM) Proxmox VE 8, puede transferir su GPU NVIDIA en la máquina virtual Proxmox VE 8 que desee e instalar los controladores de la GPU NVIDIA según el sistema operativo que esté utilizando. esa máquina virtual como de costumbre.

Para obtener información detallada sobre cómo transferir su GPU NVIDIA en una máquina virtual (VM) Proxmox VE 8 con diferentes sistemas operativos instalados, lea uno de los siguientes artículos:

  • Cómo pasar una GPU NVIDIA a una máquina virtual (VM) Proxmox VE 8 con Windows 11
  • Cómo pasar una GPU NVIDIA a una máquina virtual (VM) Ubuntu 24.04 LTS Proxmox VE 8
  • Cómo pasar una GPU NVIDIA a una máquina virtual (VM) LinuxMint 21 Proxmox VE 8
  • Cómo pasar una GPU NVIDIA a una máquina virtual (VM) Debian 12 Proxmox VE 8
  • Cómo pasar una GPU NVIDIA a una máquina virtual (VM) Proxmox VE 8 de Elementary OS 8
  • Cómo pasar una GPU NVIDIA a una máquina virtual (VM) Fedora 39+ Proxmox VE 8
  • Cómo pasar a través de una GPU NVIDIA en una máquina virtual (VM) Arch Linux Proxmox VE 8
  • Cómo pasar a través de una GPU NVIDIA en una máquina virtual (VM) Red Hat Enterprise Linux 9 (RHEL 9) Proxmox VE 8

 

¿Sigue teniendo problemas con el paso PCI/PCIE en máquinas virtuales (VM) Proxmox VE 8?

Incluso después de intentar correctamente todo lo enumerado en este artículo, si la transferencia PCI/PCIE aún no funciona, asegúrese de Pruebe algunos de los trucos y/o soluciones de paso a través de Proxmox VE PCI/PCIE que puede utilizar para que funcione la transferencia PCI/PCIE en su hardware.

 

Conclusión

En este artículo, le he mostrado cómo configurar su servidor Proxmox VE 8 para paso PCI/PCIE para que pueda pasar dispositivos PCI/PCIE (es decir, su GPU NVIDIA) a sus máquinas virtuales (VM) Proxmox VE 8. También le he mostrado cómo encontrar los módulos del kernel que necesita incluir en la lista negra y cómo incluirlos en la lista negra para un paso exitoso de sus dispositivos PCI/PCIE deseados (es decir, su GPU NVIDIA) a una máquina virtual Proxmox VE 8. Finalmente, le he mostrado cómo configurar sus dispositivos PCI/PCIE deseados (es decir, su GPU NVIDIA) para usar los módulos del kernel VFIO, lo cual también es un paso esencial para una transferencia exitosa de sus dispositivos PCI/PCIE deseados (es decir, su GPU NVIDIA). ) a una máquina virtual (VM) Proxmox VE 8.

 

Referencias

  1. Paso PCI(e) – Proxmox VE
  2. Paso a través de PCI – Proxmox VE
  3. La máquina virtual de juegos definitiva en proxmox – YouTube