
Como o arquivo binário do firmware é identificado por qualquer dispositivo, como o arquivo binário se destina a esse dispositivo. Qual é o papel do kernel nisso?
Responder1
O dispositivo de hardware não especificará o nome do arquivo de firmware; o driver do dispositivo faz isso.
Em termos gerais, o kernel pode detectar o hardware com base em identificadores padronizados (como IDs de fornecedor/produto em barramentos PCI/PCIe ou USB, ou informações DMI), ou pode já saber que o dispositivo deveria estar lá (dispositivos de plataforma; baseados em nas informações da árvore de dispositivos em algumas arquiteturas como ARM), ou o administrador ou os scripts de inicialização do sistema podem dizer explicitamente ao kernel para carregar um determinado driver (ainda usado com alguns dispositivos legados x86 baseados na antiga arquitetura ISA que não é totalmente automática -detectável).
O driver tentará então confirmar se o dispositivo existe e verificar o estado do dispositivo, usando algum método documentado pelo fornecedor do hardware ou com engenharia reversa. Se o dispositivo exigir firmware, o driver incluirá as chamadas de kernel necessárias para carregar o arquivo de firmware apropriado. Assim que os dados do firmware forem carregados na memória, o driver os enviará para o dispositivo de hardware, usando qualquer método apropriado para aquele hardware específico.
O próprio dispositivo de hardware pode ou não validar se os dados do firmware estão corretos. Os designs de hardware mais simples podem simplesmente confiar que o firmware fornecido pelo driver está correto e podem travar se isso não for verdade, possivelmente exigindo uma sequência de reinicialização específica do dispositivo ou até mesmo desligar/desconectar para tornar o dispositivo utilizável novamente. No outro extremo, o firmware pode ser assinado criptograficamente ou mesmo criptografado, com as chaves e funcionalidades apropriadas para verificá-lo/descriptografá-lo incorporadas no hardware do dispositivo.
Adicionar lógica de verificação/descriptografia de firmware no próprio hardware aumentará o preço e a complexidade do dispositivo de hardware, então geralmente os fabricantes farão isso apenas se o uso de firmware não padrão puder causar algo mais significativo do que apenas o próprio dispositivo não funcionar: por exemplo, o firmware de um dispositivo WiFi pode regular as frequências e os níveis de potência utilizados, portanto, um firmware incorreto pode fazer com que o dispositivo transmita em frequências proibidas, causando potencialmente interferência nos radares de controle de tráfego aéreo (civis ou militares). Isto pode ter consequências muito graves, pelo que os fabricantes de hardware têm um incentivo para garantir que apenas as versões de firmware que foram certificadas para cumprir os regulamentos apropriados possam ser utilizadas.