Desde Linux Darkcrizt  

Snagboot, una excelente utilidad para restaurar y flashear dispositivos integrados

 

snagboot

Snagboot es una herramienta de recuperación open source

Bootlin (una empresa especializada en Linux para sistemas integrados), dio a conocer hace ya varios días el lanzamiento de Snagboot, diseñado para restaurar y flashear dispositivos integrados que han dejado de arrancar, por ejemplo, debido a la corrupción del firmware.

Snagboot nace debido a que la mayoría de las plataformas integradas proporcionan interfaces USB o UART para la recuperación y la transferencia de imágenes de arranque en caso de corrupción del firmware, pero estas interfaces son específicas de cada plataforma y requieren el uso de utilidades de recuperación asociadas con productos de fabricantes individuales.

Para abordar este problema, Bootlin se complace en lanzar hoy una nueva herramienta de recuperación y actualización, llamada Snagboot , que pretende ser un reemplazo genérico y de código abierto de las herramientas específicas del proveedor mencionadas anteriormente.

Sobre Snagboot

Snagboot actúa como un análogo de utilidades especializadas, en su mayoría propietarias, para restaurar y actualizar dispositivos, como STM32CubeProgrammer, SAM-BA ISP, UUU y sunxi-fel.

Snagboot está diseñado para funcionar con una amplia gama de placas y dispositivos integrados, lo que elimina la necesidad de que los desarrolladores de sistemas integrados aprendan los detalles del uso de diferentes utilidades.

Por ejemplo, la primera versión de snagboot se puede usar para recuperar dispositivos basados ​​en ST STM32MP1, Microchip SAMA5, NXP i.MX6/7/8, Texas Instruments AM335x, Allwinner SUNXI y Texas Instruments AM62x SoC.

Existen algunas herramientas que aprovechan esta funcionalidad para ofrecer una recuperación y actualización rápidas a través de USB, como STM32CubeProgrammer , SAM-BA o UUU . Sin embargo, estas herramientas son todas específicas del proveedor, lo que significa que los desarrolladores que trabajan en varios tipos de plataformas tienen que cambiar entre diferentes herramientas y aprender a usar cada una.

Se menciona que Snagboot incluye dos utilidades para descargar y actualizar:

  1. snagrecover: utiliza mecanismos de código ROM específicos del proveedor para inicializar la RAM externa y ejecutar el cargador de arranque U-Boot sin cambiar el contenido de la memoria permanente.
  2. snagflash: interactúa con un U-Boot en ejecución para flashear una imagen del sistema en una memoria no volátil mediante DFU (Actualización de firmware del dispositivo), UMS (Almacenamiento masivo USB) o Fastboot.

Para los interesados en poder conocer más al respecto, deben saber que el código de Snagboot está escrito en Python y es de código abierto bajo la licencia GPLv2.

¿Como instalar Snagboot en Linux?

Para los interesados en poder instalar Snagboot en su sistema, deben saber que pueden hacerlo de una forma bastante sencilla, solo deben de instalar las dependencias necesarias para no tener problemas posteriormente.

La primera de ellas es libhidapi la cual se puede instalar de la siguiente forma (dependiendo de tu distribución). Solo deben de abrir una terminal y en ella van a teclear:

Debian/Ubuntu

sudo apt install libhidapi-hidraw0

O tambien pueden instalar:

sudo apt install libhidapi-libusb0

Arch Linux (aunque tambien se puede instalar desde AUR, ver más adelante el comando de instalación)

sudo pacman -S hidapi

RHEL/Fedora

sudo dnf -y install hidapi

Hecho esto, ya solo basta con instalar Snagboot con pip y para ello basta con teclear el siguiente comando:

python3 -m pip install --user snagboot

Finalmente, solo tendremos que añadir las reglas udev para que snagrecover tenga acceso de lectura y escritura a los dispositivos USB de los SoC de destino:

snagrecover --udev > 80-snagboot.rules
sudo cp 80-snagboot.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger

Y listo con ello ya puedes comenzar a trabajar con esta herramienta. Para el caso de los usuarios de Arch Linux como se menciono antes, se puede instalar la herramienta directamente desde AUR y para ello solo deben de contar con el repositorio habilitado y tener un asistente de AUR instalado.

El comando para instalar la herramienta es:

yay -S snagboot

Por ultimo y no menos importante, para aquellos que prefieren realizar la compilación por su cuenta basta con ejecutar lo siguiente:

git clone https://github.com/bootlin/snagboot.git

cd snagboot
./install.sh

Por la parte de los manuales e instrucciones de uso, pueden consultar toda esta información en el siguiente enlace.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.