ZimaOS no admite la instalación informal de firmware del kernel del host con comandos de estilo Ubuntu como apt install linux-firmware-.... ZimaOS es un sistema de tipo dispositivo y IceWhale indicó explícitamente a los usuarios que el firmware del host debía integrarse en la versión del sistema operativo en lugar de copiarse manualmente.
El caso de origen involucraba un sintonizador USB DVB-S2 Hauppauge WinTV-NOVA-S2 que necesitaba un blob de firmware antes de que Tvheadend o Plex pudieran usarlo. IceWhale aceptó integrar el firmware en una versión futura y pidió al usuario que lo probara.
Por qué los comandos de Ubuntu no se traducen directamente
Los gestores de paquetes de Ubuntu pueden escribir firmware en un sistema de archivos mutable del host. ZimaOS no es una instalación genérica de Debian con el mismo flujo de trabajo de paquetes.
El firmware del kernel debe estar disponible para el host
Muchos dispositivos DVB, Wi-Fi y otros solicitan firmware al kernel del host durante la inicialización. Un contenedor de Docker no puede solucionarlo si el host nunca inicializa el hardware.
Paso 1: Identifica el dispositivo exacto y el blob que falta
lsusb
dmesg | grep -i -E 'firmware|dvb|usb'
Registra los ID de USB/PCI, el nombre del controlador y el nombre exacto del archivo que falta.
Paso 2: Confirma la fuente y la licencia del firmware
Proporciona la fuente oficial del proveedor o de kernel-firmware y la información sobre su redistribución al solicitar a IceWhale que lo incluya.
Paso 3: Solicita la integración en el sistema operativo
IceWhale indicó que los usuarios no podían añadir firmware del host por su cuenta por motivos de seguridad y que el equipo podría integrar un blob específico cuando hubiera un caso de uso claro.
Paso 4: Prueba después de que una versión lo incluya
Vuelve a conectar el dispositivo e inspecciónalo dmesg. Debes asegurarte de que el controlador se inicialice sin el error «no se encontró el archivo de firmware» antes de configurar Tvheadend o Plex.
Pasa el dispositivo a la aplicación por separado
Después de que el host reconoce un sintonizador DVB, una aplicación de Docker aún puede necesitar el firmware correspondiente /dev/dvb dispositivos asignados al contenedor. El firmware del host y el acceso del contenedor son capas independientes.
No confundas el firmware del espacio de usuario con el firmware del kernel
Algunas aplicaciones cargan sus propios modelos o archivos de datos, que pueden montarse en un contenedor. El firmware solicitado por un controlador del kernel es diferente.
La guía de solución de problemas de hardware ayuda a estructurar el informe.
Cómo funciona la carga de firmware de Linux
Cuando un controlador del kernel inicializa el hardware, puede llamar al cargador de firmware de Linux y solicitar un blob con un nombre específico desde las rutas de firmware del host. Si falta ese archivo, es posible que el controlador solo se vincule parcialmente o se niegue a exponer el nodo de dispositivo final.
La {A("https://docs.kernel.org/driver-api/firmware/request_firmware.html","documentación del cargador de firmware de Linux","Comprende cómo los controladores del kernel solicitan firmware al sistema operativo host")} oficial explica este mecanismo a nivel del host.
Confirma que el controlador existe antes de solicitar solo el firmware
Un blob de firmware no puede ayudar si ZimaOS carece del controlador del kernel para el dispositivo. Comprueba dmesg y la información del módulo para determinar si el controlador se carga y luego solicita el firmware, o si el hardware no es compatible desde una etapa anterior de la pila.
El paso de dispositivos al contenedor viene después de la detección del host
Para Tvheadend, Plex u otra aplicación, primero asegúrate de que el host exponga el sintonizador en /dev/dvb. Solo entonces configura las asignaciones de dispositivos de Docker y los permisos de la aplicación.
Vuelve a probar después de cada actualización de ZimaOS
Si IceWhale integra el firmware en una versión, confirma que el sintonizador siga inicializándose después de las actualizaciones principales posteriores. Conserva los identificadores exactos del hardware en tus notas para que los informes de regresión sean reproducibles.
Comprender el cargador de firmware de Linux
Los controladores del kernel suelen solicitar un blob de firmware con un nombre específico durante la inicialización del dispositivo. La documentación oficial del cargador de firmware de Linux explica que esto ocurre en el nivel del kernel del host, antes de que la mayoría de los contenedores de aplicaciones puedan usar el dispositivo.
Si el controlador está presente, pero falta el blob solicitado, una actualización del firmware integrada en el sistema operativo es la solución adecuada. Si falta el controlador, añadir solo el blob no hará que el hardware funcione.
Preguntas frecuentes
¿Puedo instalar linux-firmware con apt en ZimaOS?
No trates ZimaOS como Ubuntu; la postura de soporte de IceWhale era integrar el firmware necesario del host.
¿Docker puede incluir el firmware que falta?
No, si el kernel del host lo necesita antes de que el dispositivo exista para el contenedor.
¿Qué debo comprobar después de la integración?
Usa dmesg y la enumeración del hardware para confirmar una inicialización correcta.
¿El firmware requiere una interfaz gráfica de escritorio?
No. El firmware del kernel/dispositivo funciona en un servidor sin interfaz gráfica.
