bootlin (azienda specializzata in Linux per sistemi embedded), lo ha reso noto diversi giorni fa avvio a strappo, progettato per ripristinare e aggiornare i dispositivi incorporati che hanno interrotto l'avvio, ad esempio a causa del danneggiamento del firmware.
snagboot Nasce perché la maggior parte delle piattaforme embedded prevede interfacce USB o UART per il ripristino e il trasferimento delle immagini di avvio in caso di danneggiamento del firmware, ma queste interfacce lo sono specifico per ogni piattaforma e richiedono l'uso di utilità di recupero associate ai singoli prodotti del produttore.
Per risolvere questo problema, Bootlin è lieta di rilasciare oggi un nuovo strumento di ripristino e aggiornamento, chiamato Snagboot , che intende essere un sostituto generico e open source per gli strumenti specifici del fornitore sopra menzionati.
A proposito di Snagboot
Snagboot funge da analogo di utilità specializzate, per lo più proprietari, per ripristinare e aggiornare i dispositivi, come STM32CubeProgrammer, SAM-BA ISP, UUU e sunxi-fel.
snagboot è progettato per funzionare con un'ampia gamma di schede e dispositivi embedded, che elimina la necessità per gli sviluppatori di sistemi integrati di apprendere i dettagli dell'utilizzo di diverse utilità.
Ad esempio, la prima versione di snagboot può essere utilizzata per ripristinare dispositivi basati su ST STM32MP1, Microchip SAMA5, NXP i.MX6/7/8, Texas Instruments AM335x, Allwinner SUNXI e Texas Instruments AM62x SoC.
Esistono alcuni strumenti che sfruttano questa funzionalità per offrire ripristino e aggiornamento rapidi tramite USB, come STM32CubeProgrammer , SAM-BA o UUU . Tuttavia, questi strumenti sono tutti specifici del fornitore, il che significa che gli sviluppatori che lavorano su più tipi di piattaforme devono passare da uno strumento all'altro e imparare a utilizzare ciascuno di essi.
Si dice che Snagboot includa due utilità da scaricare e aggiornare:
- snagrecover- Utilizza meccanismi di codice ROM specifici del fornitore per inizializzare la RAM esterna ed eseguire il bootloader U-Boot senza modificare il contenuto della memoria permanente.
- flash- Interagisce con un U-Boot in esecuzione per eseguire il flashing di un'immagine di sistema nella memoria non volatile utilizzando DFU (aggiornamento del firmware del dispositivo), UMS (memoria di massa USB) o Fastboot.
Per chi fosse interessato per saperne di piùTieni presente che il codice di Snagboot è scritto in Python ed è open source con licenza GPLv2.
Come installare Snagboot su Linux?
Per coloro che sono interessati a poter installare Snagboot sul proprio sistema, dovrebbero saperlo Puoi farlo abbastanza facilmente. Dovrebbero installare solo le dipendenze necessarie per non avere problemi in seguito.
Il primo è libhidapi che può essere installato come segue (a seconda della distribuzione). Devono solo aprire un terminale e in esso digiteranno:
Debian / Ubuntu
sudo apt install libhidapi-hidraw0
Oppure puoi anche installare:
sudo apt install libhidapi-libusb0
Arch Linux (sebbene possa essere installato anche da AUR, vedere il comando di installazione di seguito)
sudo pacman -S hidapi
REL/Fedora
sudo dnf -y install hidapi
Fatto ciò non vi resta che installare Snagboot con pip e per farlo vi basterà digitare il seguente comando:
python3 -m pip install --user snagboot
Infine, dovremo solo aggiungere le regole udev in modo che snagrecover abbia accesso in lettura e scrittura ai dispositivi USB dei SoC target:
snagrecover --udev > 80-snagboot.rules
sudo cp 80-snagboot.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
E pronto con questo puoi iniziare a lavorare con questo strumento. Nel caso degli utenti Arch Linux, come accennato in precedenza, lo strumento può essere installato direttamente da AUR e per questo devono solo avere il repository abilitato e avere una procedura guidata AUR installata.
Il comando per installare lo strumento è:
yay -S snagboot
Ultimo ma non meno importante, per coloro che preferiscono compilare da soli, basta eseguire quanto segue:
clone di git https://github.com/bootlin/snagboot.git
cd snagboot
./install.sh
Per quanto riguarda i manuali e le istruzioni per l'uso, è possibile consultare tutte queste informazioni nel seguente link.