Skip to content

Aplicación de perfiles Jellyfin y HuC — 19 octubre 2026

Autorización: aplicar las recomendaciones de la revisión con agentes simultáneos. Responsabilidad de este trabajo: Jellyfin CT220 y preparación Intel pmx-51. No se modifica amdgpu de pmx-50 ni se ordena reiniciar un nodo desde este trabajo; el coordinador decide la ventana según HA/RAM y las otras operaciones.

Cambios aplicados

  • Fuente del selector: services/jellyfin-migration/jellyfin-arranque. Copia instalada: /usr/local/sbin/jellyfin-arranque en CT220.
  • Identifica fabricante PCI Intel/AMD; no basta la existencia de renderD128.
  • Usa la imagen Jellyfin local, sin pull, red ni montajes de bibliotecas, como UID/GID1000. Genera 15 frames de 320×180: verifica libx264 como recuperación, VAAPI decode/scale y H.264/HEVC con bitrate en CBR y VBR.
  • Habilita encode únicamente tras pasar los dos modos. Intel activa las opciones low-power H.264/HEVC correspondientes. Si encode falla conserva decode GPU y encode CPU; si decode o acceso GPU falla usa CPU.
  • Enumera codecs/10-bit según vainfo; no anuncia AV1 en Jasper Lake ni activa tone-mapping sin validar. No usa el antiguo marcador hw-encode.
  • Configuración XML atómica con Jellyfin parado; resultado elegido en /opt/jellyfin/hardware-profile.json. --probe-only no cambia XML ni servicio; --probe-only --force-cpu prueba recuperación CPU explícitamente.

Intel y ventana de mantenimiento

/etc/modprobe.d/jellyfin-i915.conf en pmx-51 contiene options i915 enable_guc=2. Se ha regenerado /boot/initrd.img-7.0.14-19-pve, verificando que incluye la configuración. i915 se carga desde raíz, no va en ese initramfs; los firmwares ehl_huc_9.0.0.bin y ehl_guc_70.1.1.bin están presentes en /lib/firmware/i915. No se cambia kernel ni línea de arranque. El coordinador gestiona el reinicio.

Guía oficial: https://jellyfin.org/docs/general/post-install/transcoding/hardware-acceleration/intel/

Pruebas antes del reinicio del host

  • Compilación Python y diff-check: correctos.
  • Probe CPU forzado como UID1000: correcto.
  • Probe Intel decode/scale: correcto. H.264/HEVC CBR/VBR rechazados sin HuC; selector mantiene correctamente encode CPU.
  • Reinicio acotado solo del servicio Jellyfin: correcto, sin reiniciar CT.
  • HLS real: segmento 229.548 bytes; identidad y recuentos preservados: <REDACTED>, 455 películas, 156 series, 8.023 episodios, 18.162 canciones y 68.017 elementos. SQLite quick_check=ok.
  • Estos resultados no acreditan varias sesiones simultáneas, 4K HDR ni cliente físico iPhone; HDR tone-mapping continúa sin validar.

AMD y estabilidad pmx-50

Radeon680M 1002:1681 existe y está libre de VFIO en la configuración revisada. /etc/modprobe.d/blacklist-amdgpu.conf tiene fecha 5-feb-2026 y bloquea amdgpu y radeon. La nota histórica de junio ya la recogía; no acredita motivo original. No se modifica ni carga el driver mientras el host presenta reinicios recientes sin causa demostrada. Activarlo sería introducir otra variable en el diagnóstico. El selector reconoce AMD pero su comportamiento físico queda pendiente de esa intervención y pruebas; la recuperación CPU sí está comprobada.

Recuperación

  • CT220: scripts/XML anteriores en /root/jellyfin-gpu-20261019/. Parar jellyfin-arranque, restaurar selector y encoding.xml, arrancar servicio. No sustituir la base de datos ni usar la copia congelada de VM208.
  • Host51: initramfs anterior en /root/jellyfin-huc-20261019/. Para revertir configuración eliminar únicamente /etc/modprobe.d/jellyfin-i915.conf, regenerar initramfs del kernel que se vaya a arrancar y reiniciar durante ventana coordinada. No descargar/recargar i915 en caliente con clientes activos.

Resultado tras el reinicio coordinado

El coordinador reinició pmx-51 con política temporal de mantenimiento para no drenar las cargas a pmx-50. Host volvió alrededor de las 21:59 y HA arrancó CT220 sin intervención manual de este trabajo.

  • enable_guc=2 efectivo; dmesg confirma «HuC: authenticated for all workloads». huc_info: firmware ehl_huc9.0.0, status RUNNING. GuC submission sigue desactivado de forma intencional: la opción2 habilita HuC, no submission.
  • Sondas repetidas de la revisión final: CPU=0, DECODE=0, H264 CBR=0/VBR=0, HEVC CBR=0/VBR=0. El perfil automático activo habilita ambos encoders y las dos opciones Intel low-power.
  • Se sincronizaron fuente y copia instalada finales, incluida limpieza explícita de los contenedores sonda si el cliente Docker agota timeout.
  • HLS real posterior: segmento 249.664 bytes. Log FFmpeg confirma -hwaccel vaapi, scale_vaapi, h264_vaapi y -low_power 1 en la petición. Mismo serverId y todos los recuentos anteriores; SQLite quick_check=ok.
  • La revisión final prepara/valida el árbol XML y archivo temporal antes de detener el servicio; el replace activo se realiza después de compose down. Un XML inválido aborta antes de parar un servidor sano. Copia instalada actualizada sin otro reinicio; no cambia el perfil ya aplicado.