
Snagboot to narzędzie do odzyskiwania open source.
bootlin (firma specjalizująca się w Linuksie dla systemów wbudowanych), dał mi znać kilka dni temu uruchomienie snagboota, przeznaczony do przywracania i flashowania wbudowanych urządzeń, które przestały się uruchamiać, na przykład z powodu uszkodzenia oprogramowania układowego.
zaczepka Powstaje, ponieważ większość platform wbudowanych zapewnia interfejsy USB lub UART do odzyskiwania i przesyłania obrazów rozruchowych w przypadku uszkodzenia oprogramowania układowego, ale te interfejsy są specyficzne dla każdej platformy i wymagają użycia narzędzi do odzyskiwania związanych z produktami poszczególnych producentów.
Aby rozwiązać ten problem, firma Bootlin ma przyjemność wypuścić dziś nowe narzędzie do odzyskiwania i aktualizacji, zwane Snagboot, które ma być ogólnym zamiennikiem narzędzi typu open source dla wspomnianych powyżej narzędzi specyficznych dla dostawców.
O Snagboot
Snagboot działa jako odpowiednik specjalistycznych narzędzi, głównie właściciele, przywracać i aktualizować urządzenia, takich jak STM32CubeProgrammer, SAM-BA ISP, UUU i sunxi-fel.
zaczepka jest przeznaczony do pracy z szeroką gamą płyt głównych i urządzeń wbudowanych, co eliminuje konieczność poznawania przez programistów systemów wbudowanych tajników korzystania z różnych narzędzi.
Na przykład pierwsza wersja Snagboot może być używana do odzyskiwania urządzeń opartych na ST STM32MP1, Microchip SAMA5, NXP i.MX6/7/8, Texas Instruments AM335x, Allwinner SUNXI i Texas Instruments AM62x SoC.
Istnieje kilka narzędzi, które wykorzystują tę funkcjonalność, aby zapewnić szybkie odzyskiwanie i aktualizację przez USB, takie jak STM32CubeProgrammer , SAM-BA lub UUU . Jednak wszystkie te narzędzia są zależne od dostawcy, co oznacza, że programiści pracujący na wielu typach platform muszą przełączać się między różnymi narzędziami i uczyć się, jak korzystać z każdego z nich.
Wspomniano, że Snagboot zawiera dwa narzędzia do pobierania i aktualizacji:
- snagrecover— Wykorzystuje specyficzne dla producenta mechanizmy kodu ROM do inicjowania zewnętrznej pamięci RAM i uruchamiania programu ładującego U-Boot bez zmiany zawartości pamięci stałej.
- przebłysk- Współpracuje z uruchomionym U-Bootem, aby sflashować obraz systemu do pamięci nieulotnej za pomocą DFU (Aktualizacja oprogramowania sprzętowego urządzenia), UMS (Pamięć masowa USB) lub Fastboot.
Dla zainteresowanych dowiedzieć się więcej na ten tematPamiętaj, że kod Snagboot jest napisany w Pythonie i jest open source na licencji GPLv2.
Jak zainstalować Snagboot w systemie Linux?
Osoby zainteresowane możliwością zainstalowania Snagboot w swoim systemie powinny o tym wiedzieć Możesz to zrobić dość łatwo. Powinni zainstalować tylko niezbędne zależności, aby później nie mieć problemów.
Pierwszym z nich jest libhidapi, który można zainstalować w następujący sposób (w zależności od dystrybucji). Muszą tylko otworzyć terminal i wpisać w nim:
Debian / Ubuntu
sudo apt install libhidapi-hidraw0
Możesz też zainstalować:
sudo apt install libhidapi-libusb0
Arch Linux (chociaż można go również zainstalować z AUR, zobacz polecenie instalacji poniżej)
sudo pacman -S hidapi
RHEL/Fedora
sudo dnf -y install hidapi
Gdy to zrobisz, wszystko, co musisz zrobić, to zainstalować Snagboot z pip i aby to zrobić, po prostu wpisz następujące polecenie:
python3 -m pip install --user snagboot
Na koniec będziemy musieli tylko dodać reguły udev, aby snagrecover miał dostęp do odczytu i zapisu do urządzeń USB docelowych SoC:
snagrecover --udev > 80-snagboot.rules
sudo cp 80-snagboot.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
I gotowe, możesz rozpocząć pracę z tym narzędziem. W przypadku użytkowników Arch Linux, jak wspomniano wcześniej, narzędzie można zainstalować bezpośrednio z AUR i do tego wystarczy włączyć repozytorium i zainstalować kreatora AUR.
Polecenie instalacji narzędzia to:
yay -S snagboot
Wreszcie, dla tych, którzy wolą samodzielnie kompilować, po prostu uruchom następujące polecenie:
klon git https://github.com/bootlin/snagboot.git
cd snagboot
./install.sh
Jeśli chodzi o podręczniki i instrukcje użytkowania, wszystkie te informacje można znaleźć w Link.