Binario de firmware identificado por dispositivo

Binario de firmware identificado por dispositivo

Cómo el archivo binario del firmware es identificado por cualquier dispositivo, ya que el archivo binario está destinado a ese dispositivo. ¿Cuál es el papel del kernel en esto?

Respuesta1

El dispositivo de hardware no especificará el nombre del archivo de firmware; el controlador del dispositivo hace eso.

En términos generales, el kernel puede detectar el hardware basándose en identificadores estandarizados (como ID de proveedor/producto en buses PCI/PCIe o USB, o información DMI), o puede que ya sepa que el dispositivo se supone que está ahí (dispositivos de plataforma; basados ​​en en la información del árbol de dispositivos en algunas arquitecturas como ARM), o el administrador o los scripts de inicio del sistema pueden decirle explícitamente al kernel que cargue un determinado controlador (aún se usa con algunos dispositivos heredados x86 basados ​​en la antigua arquitectura ISA que no es completamente automática -detectable).

Luego, el controlador intentará confirmar que el dispositivo existe y determinar su estado, utilizando algún método documentado por el proveedor del hardware o mediante ingeniería inversa. Si el dispositivo requiere firmware, el controlador incluirá las llamadas al kernel necesarias para cargar el archivo de firmware apropiado. Una vez que los datos del firmware se cargan en la memoria, el controlador los enviará al dispositivo de hardware, utilizando cualquier método apropiado para ese hardware en particular.

El propio dispositivo de hardware puede validar o no que los datos del firmware sean correctos. Los diseños de hardware más simples pueden simplemente confiar en que el firmware proporcionado por el controlador es correcto, y podrían bloquearse si eso no es cierto, posiblemente requiriendo una secuencia de reinicio específica del dispositivo o incluso un apagado/desconexión para que el dispositivo pueda volver a utilizarse. En el otro extremo, el firmware puede estar firmado criptográficamente o incluso cifrado, con las claves y la funcionalidad adecuadas para verificarlo/descifrarlo integrado en el hardware del dispositivo.

Agregar lógica de verificación/descifrado de firmware en el propio hardware aumentará el precio y la complejidad del dispositivo de hardware, por lo que generalmente los fabricantes lo harán sólo si el uso de firmware no estándar puede causar algo más significativo que el hecho de que el dispositivo en sí no funcione: por ejemplo, el firmware de un dispositivo WiFi puede regular las frecuencias y los niveles de potencia utilizados, por lo que un firmware incorrecto podría hacer que el dispositivo transmita en frecuencias prohibidas, lo que podría causar interferencias en los radares de control de tráfico aéreo (ya sean civiles o militares). Esto podría tener consecuencias muy graves, por lo que los fabricantes de hardware tienen un incentivo para garantizar que sólo se puedan utilizar las versiones de firmware que hayan sido certificadas para cumplir con las regulaciones apropiadas.

información relacionada