A empresa Bootlin lançou a primeira versão da ferramenta Snagboot, destinada à recuperação e reprogramação de dispositivos embarcados que deixaram de inicializar, por exemplo, devido a falhas no firmware. O código do Snagboot é escrito em Python e está disponível sob a licença GPLv2.
A maioria das plataformas embarcadas, em caso de falha no firmware, oferece interfaces USB ou UART para recuperação e transferência da imagem de inicialização, mas essas interfaces são específicas para cada plataforma e requerem a utilização de utilitários de recuperação vinculados a produtos de diferentes fabricantes. O Snagboot atua como um análogo a utilitários especializados, principalmente proprietários, para recuperação e reprogramação de dispositivos, como STM32CubeProgrammer, SAM-BA ISP, UUU e sunxi-fel.
O Snagboot é projetado para funcionar com uma ampla gama de placas e dispositivos embarcados, o que liberta os desenvolvedores de sistemas embarcados da necessidade de aprender as especificidades do uso de diferentes utilitários. Por exemplo, a primeira versão do snagboot pode ser utilizada para recuperar dispositivos baseados em SoC ST STM32MP1, Microchip SAMA5, NXP i.MX6/7/8, Texas Instruments AM335x, Allwinner SUNXI e Texas Instruments AM62x.
A ferramenta inclui duas utilidades para inicialização e reprogramação:
- snagrecover — utiliza mecanismos específicos de diferentes fabricantes para trabalhar com o código na memória flash, a fim de inicializar a memória RAM externa e iniciar o carregador U-Boot sem modificar o conteúdo da memória permanente.
- snagflash — interage com o U-Boot em execução para gravar a imagem do sistema na memória imutável, utilizando DFU (Dispositivo de Atualização de Firmware), UMS (Armazenamento Em Massa USB) ou Fastboot.
Fonte: opennet.ru
