La empresa Bootlin ha publicado la primera versión de la herramienta Snagboot, diseñada para restaurar el funcionamiento y reprogamar dispositivos embebidos que han dejado de arrancar, por ejemplo, debido a un daño en el firmware. El código de Snagboot está escrito en Python y se distribuye bajo la licencia GPLv2.
La mayoría de las plataformas embebidas, en caso de daño en el firmware, ofrecen interfaces a través de USB o UART para restaurar el funcionamiento y transferir la imagen de arranque, pero estas interfaces son específicas para cada plataforma y requieren usar utilidades de recuperación vinculadas a productos de fabricantes específicos. Snagboot actúa como una alternativa a herramientas especializadas, en su mayoría propietarias, para la recuperación y reprogamación de dispositivos, como STM32CubeProgrammer, SAM-BA ISP, UUU y sunxi-fel.
Snagboot está diseñado para trabajar con una amplia gama de placas y dispositivos embebidos, lo que libera a los desarrolladores de sistemas embebidos de la necesidad de aprender las especificaciones de uso de diferentes utilidades. Por ejemplo, la primera versión de snagboot se puede utilizar para restaurar dispositivos basados en SoC ST STM32MP1, Microchip SAMA5, NXP i.MX6/7/8, Texas Instruments AM335x, Allwinner SUNXI y Texas Instruments AM62x.
La herramienta incluye dos utilidades para carga y reprogamación:
- snagrecover — utiliza mecanismos específicos de varios fabricantes para trabajar con el código en la memoria de solo lectura (ROM) para inicializar la memoria RAM externa y lanzar el cargador U-Boot sin alterar el contenido de la memoria permanente.
- snagflash — interactúa con U-Boot en ejecución para grabar la imagen del sistema en la memoria inmutable, utilizando DFU (Device Firmware Upgrade), UMS (USB Mass Storage) o Fastboot.
Fuente: opennet.ru
