布特林 (一家专门为嵌入式系统开发 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
关于手册和使用说明,您可以在 以下链接.