布特林 (一家專門為嵌入式系統開發 Linux 的公司), 廣為人知 幾天前 snagboot 發射,旨在恢復和閃存已停止啟動的嵌入式設備,例如,由於固件損壞。
短靴 它的誕生是因為大多數嵌入式平台都提供USB或UART接口 用於在固件損壞的情況下恢復和傳輸引導映像,但這些接口是 具體到每個平台 並要求使用與個別製造商的產品相關的恢復實用程序。
為了解決這個問題,Bootlin 今天很高興地發布了一個名為 Snagboot 的新恢復和更新工具,它旨在成為上述供應商特定工具的通用開源替代品。
關於 Snagboot
Snagboot 充當專業實用程序的模擬,主要是業主, 恢復和更新設備,如STM32CubeProgrammer、SAM-BA ISP、UUU和sunxi-fel。
短靴 設計用於廣泛的電路板和嵌入式設備,這消除了嵌入式系統開發人員學習使用不同實用程序的來龍去脈的需要。
例如,第一版snagboot可用於恢復基於ST STM32MP1、Microchip SAMA5、NXP i.MX6/7/8、Texas Instruments AM335x、Allwinner SUNXI和Texas Instruments AM62x SoC的設備。
有一些工具利用此功能通過 USB 提供快速恢復和更新,例如 STM32CubeProgrammer、SAM-BA 或 UUU。 然而,這些工具都是特定於供應商的,這意味著在多種類型的平台上工作的開發人員必須在不同的工具之間切換並學習如何使用每一種工具。
提到 Snagboot 包括兩個用於下載和更新的實用程序:
- 陷阱覆蓋- 使用特定於供應商的 ROM 代碼機制來初始化外部 RAM 並運行 U-Boot 引導加載程序,而無需更改永久內存的內容。
- 閃光燈- 與正在運行的 U-Boot 交互,使用 DFU(設備固件更新)、UMS(USB 大容量存儲)或 Fastboot 將系統映像閃存到非易失性內存。
對於那些感興趣的人 了解更多請注意,Snagboot 的代碼是用 Python 編寫的,並在 GPLv2 許可下開源。
如何在 Linux 上安裝 Snagboot?
對於那些有興趣在他們的系統上安裝 Snagboot 的人,他們應該知道 你可以很容易地做到這一點。 他們應該只安裝必要的依賴項,以免以後出現問題。
第一個是 libhidapi,可以按如下方式安裝(取決於您的發行版)。 他們只需要打開一個終端,然後在其中輸入:
於Debian / Ubuntu
sudo apt install libhidapi-hidraw0
或者你也可以安裝:
sudo apt install libhidapi-libusb0
Arch Linux(雖然它也可以從 AUR 安裝,請參閱下面的安裝命令)
sudo pacman -S hidapi
RHEL/軟呢帽
sudo dnf -y install hidapi
完成後,您所要做的就是使用 pip 安裝 Snagboot 並執行此操作,只需鍵入以下命令:
python3 -m pip install --user snagboot
最後,我們只需要添加 udev 規則,以便 snagrecover 具有對目標 SoC 的 USB 設備的讀寫訪問權限:
snagrecover --udev > 80-snagboot.rules
sudo cp 80-snagboot.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
準備就緒後,您就可以開始使用此工具了。 對於 Arch Linux 用戶,如前所述,該工具可以直接從 AUR 安裝,為此他們只需啟用存儲庫並安裝 AUR 嚮導。
安裝該工具的命令是:
yay -S snagboot
最後但同樣重要的是,對於那些喜歡自己編譯的人,只需運行以下命令:
git 克隆 https://github.com/bootlin/snagboot.git
cd snagboot
./install.sh
關於手冊和使用說明,您可以在 下一個鏈接.