O ZimaOS não suporta a instalação informal de firmware do kernel no anfitrião com comandos do estilo Ubuntu apt install linux-firmware-.... O ZimaOS é um sistema do tipo appliance, e a IceWhale informou explicitamente os utilizadores de que o firmware do anfitrião deveria ser integrado na versão do sistema operativo, em vez de ser copiado manualmente.
O caso original envolvia um sintonizador USB DVB-S2 Hauppauge WinTV-NOVA-S2 que precisava de um blob de firmware antes de poder ser utilizado pelo Tvheadend ou pelo Plex. A IceWhale concordou em integrar o firmware numa versão futura e pediu ao utilizador que o testasse.
Por que motivo os comandos do Ubuntu não são diretamente aplicáveis
Os gestores de pacotes do Ubuntu podem gravar firmware num sistema de ficheiros mutável do anfitrião. O ZimaOS não é uma instalação Debian genérica com o mesmo fluxo de instalação de pacotes.
O firmware do kernel tem de estar disponível no anfitrião
Muitos dispositivos DVB, Wi-Fi e outros solicitam firmware ao kernel do anfitrião durante a inicialização. Um contentor Docker não consegue resolver o problema se o anfitrião nunca inicializar o hardware.
Passo 1: Identifique o dispositivo exato e o blob em falta
lsusb
dmesg | grep -i -E 'firmware|dvb|usb'
Registe os IDs USB/PCI, o nome do controlador e o nome exato do ficheiro em falta.
Passo 2: Confirme a origem e a licença do firmware
Ao pedir à IceWhale que o inclua, forneça a fonte oficial do fornecedor/kernel-firmware e as informações sobre a redistribuição.
Passo 3: Solicite a integração no sistema operativo
A IceWhale afirmou que, por motivos de segurança, os utilizadores não podiam adicionar firmware ao anfitrião por conta própria e que a equipa poderia integrar um blob específico quando existisse um caso de utilização claro.
Passo 4: Teste depois de uma versão incluir o firmware
Volte a ligar o dispositivo e inspecione dmesg. Deve garantir que o controlador é inicializado sem o erro «ficheiro de firmware não encontrado» antes de configurar o Tvheadend ou o Plex.
Passe o dispositivo para a aplicação separadamente
Depois de o anfitrião reconhecer um sintonizador DVB, uma aplicação Docker pode ainda precisar do firmware relevante /dev/dvb dispositivos mapeados no contentor. O firmware do anfitrião e o acesso do contentor são camadas separadas.
Não confunda o firmware do espaço do utilizador com o firmware do kernel
Algumas aplicações carregam os seus próprios modelos/ficheiros de dados, que podem ser montados num contentor. O firmware solicitado por um controlador do kernel é diferente.
O guia de resolução de problemas de hardware ajuda a estruturar o relatório.
Como funciona o carregamento de firmware no Linux
Quando um controlador do kernel inicializa o hardware, pode chamar o carregador de firmware do Linux e solicitar um blob identificado por um nome a partir dos caminhos de firmware do anfitrião. Se esse ficheiro estiver em falta, o controlador pode associar-se apenas parcialmente ou recusar-se a expor o nó final do dispositivo.
A {A("https://docs.kernel.org/driver-api/firmware/request_firmware.html","documentação do carregador de firmware do Linux","Compreenda como os controladores do kernel solicitam firmware ao sistema operativo anfitrião")} explica este mecanismo ao nível do anfitrião.
Confirme a existência do controlador antes de solicitar apenas o firmware
Um blob de firmware não pode ajudar se o ZimaOS não tiver o controlador do kernel para o dispositivo. Verifique dmesg e as informações do módulo para determinar se o controlador é carregado e, em seguida, solicita firmware, ou se o hardware não é suportado numa fase anterior da pilha.
O encaminhamento para o contentor vem depois da deteção pelo anfitrião
Para o Tvheadend, Plex ou outra aplicação, certifique-se primeiro de que o anfitrião expõe o sintonizador em /dev/dvb. Só depois configure os mapeamentos de dispositivos do Docker e as permissões das aplicações.
Volte a testar após cada atualização do ZimaOS
Se a IceWhale integrar o firmware numa versão, confirme que o sintonizador continua a inicializar após atualizações principais posteriores. Mantenha os IDs exatos do hardware nas suas notas para que os relatórios de regressão possam ser reproduzidos.
Compreenda o carregador de firmware do Linux
Os controladores do kernel solicitam frequentemente um blob de firmware identificado por um nome durante a inicialização do dispositivo. A documentação do carregador de firmware do Linux explica que isto acontece ao nível do kernel do anfitrião, antes de a maioria dos contentores de aplicações poder utilizar o dispositivo.
Se o controlador estiver presente, mas o blob solicitado estiver em falta, uma atualização do firmware integrada no sistema operativo é a solução mais adequada. Se o próprio controlador estiver em falta, adicionar apenas o blob não fará o hardware funcionar.
Perguntas frequentes
Posso instalar o linux-firmware no ZimaOS com o apt?
Não trate o ZimaOS como o Ubuntu; a posição da IceWhale era integrar o firmware necessário do anfitrião.
O Docker pode incluir o firmware em falta?
Não, se o kernel do anfitrião precisar dele antes de o dispositivo existir para o contentor.
O que devo verificar após a integração?
Utilize dmesg e a enumeração do hardware para confirmar uma inicialização sem problemas.
O firmware requer uma interface gráfica de desktop?
Não. O firmware do kernel/dispositivo funciona num servidor sem interface.
