Durante la instalación de Jellyfin en Proxmox LXC he aprovechado para habilitar la aceleración hardware de la tarjeta Intel HD Graphics 630.
Introducción
Esta tarjeta gráfica está integrada en el procesador Intel i5-7500T de mi servidor Proxmox, un Dell OptiPlex 7050 Micro.
Este procesador, perteneciente a la 7a generación de Intel Core i5 y la familia Kaby Lake, tiene las siguientes características:
- 4 nucleos
- velocidad máxima de 3,30GHz
- velocidad base de 2,70GHz
- 6 MB caché
- TDP 35W
La tarjeta gráfica tiene las siguientes características:
- Procesador gráfico Kaby Lake GT2
- Arquitectura de Generación 9.5
- Soporta DirectX 12.1
- Soporta OpenGL 4.6
- Compatible con Intel Quick Sync Video (es la parte que nos interesa)
Descubrir la GPU en Proxmox
La identificación de una tarjeta gráfica en Proxmox se realiza igual que en cualquier Linux. Se puede utilizar el comando lspci
para localizarla:
root@pve:~# lspci -k | grep -EA3 'VGA|3D|Display'
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04)
Subsystem: Dell HD Graphics 630
Kernel driver in use: i915
Kernel modules: i915
Drivers de Intel
A continuación, hay que asegurarse que la GPU está disponible como un dispositivo de render DRI en Proxmox (p.ej. /dev/dri/renderD128
). Si no es así, hay que instalar los drivers de Intel necesarios para permitir la aceleración de vídeo mediante hardware usando VA-API.
Intel divide estos drivers según la generación de la tarjeta gráfica y si son o no gratuitos tal como se muestra en la siguiente tabla:
Licencia \ Generación | Gen 8+ | Older |
Free | intel-media-va-driver |
i965-va-driver |
Non-Free | intel-media-va-driver-non-free |
i965-va-driver-shaders |
Los drivers non-free son necesarios para codificar (transcoding) mientras que los gratuitos únicamente decodifican.
Actualizar repositorios
Para poder instalar los drivers no gratuitos, hay que cambiar los orígenes APT de Proxmox, modificando el fichero /etc/apt/sources.list
:
deb http://ftp.es.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://ftp.es.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
deb http://security.debian.org bookworm-security main contrib non-free non-free-firmware
Hay que añadir non-free
y non-free-firmware
dado que Debian dividió los repositorios no gratuitos hace un tiempo.
A continuación se actualiza el sistema:
apt update
Instalar vainfo
La herramienta vainfo
permite comprobar si el soporta de VA-API es funcional y con qué codecs.
apt install vainfo -y
Instalar intel-gpu-tools
La herramienta intel_gpu_top
del paquete intel-gpu-tools
permite confirmar que se está usando aceleración gráfica:
![Hardware Acceleration][5]
Si la sección Engine/Video
tiene un uso superior al 0%, cuando se reproduce un vídeo, significa que se está usando la aceleración gráfica.
Instalar drivers no gratuitos
La instalación de los drivers no gratuitos es bastante sencilla después de haber cambiado los repositorios:
apt install -y intel-media-va-driver-non-free
# Es recomendable reiniciar el servidor Proxmox después de la instalación
reboot -h now
Comprobar instalación
VA-API
Al ejecutar vainfo
, si todo es correcto, se debería mostrar versión de VA-API y del driver de Intel utilizados, así como los diferentes profiles soportados:
root@pve:~# vainfo
error: can't connect to X server!
libva info: VA-API version 1.17.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_17
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.17 (libva 2.12.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 23.1.1 ()
vainfo: Supported profile and entrypoints
VAProfileNone : VAEntrypointVideoProc
VAProfileNone : VAEntrypointStats
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
[...]
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSlice
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD
Card / Render
Se lista el contenido del directorio /dev/dri
:
root@pve:~# ls -lh /dev/dri
total 0
drwxr-xr-x 2 root root 80 Sep 26 20:53 by-path
crw-rw---- 1 root video 226, 1 Sep 26 20:53 card1
crw-rw---- 1 root render 226, 128 Sep 26 20:53 renderD128
En mi caso, hay dos dispositivos:
/dev/dri/card1
(ID 226,1) que representa la tarjeta gráfica/dev/dri/renderD128
(ID 226,128) que es usado para la renderización de gráficos
Referencias
- Setting up Intel GPU passthrough on Proxmox LXC containers
- How to Install Plex on Proxmox + Hardware Acceleration
- Intel Quick Sync Video
- Intel Graphics Media Driver para soportar codificación/decodificación/procesamiento de vídeo mediante hardware
- Intel media stack on Ubuntu
- HWA Tutorial On Intel GPU by Jellyfin
- Using an Intel GPU for Jellyfin Hardware Acceleration
Historial de cambios
- 2024-09-28: Documento inicial