AI News HubLIVE
站内改写2 分钟阅读

Ratchet – 一款内置MCP服务器的BIOS刷写工具,专为AI代理设计

Ratchet是一款用Rust编写的硬件调试与闪存编程工具包,专为CH341A和CH347 USB编程器设计。其核心功能包括SPI闪存编程和BIOS分析,并支持I2C、UART、1-Wire、JTAG、SWD、CAN等多种协议。该工具集成了MCP(模型上下文协议)服务器,允许AI代理直接控制硬件操作,如读取、写入、验证和修复BIOS芯片。目前为预发布版本,需从源码安装。

来源Hacker News AI作者: JackLau

Ratchet 是一款由 Rust 编写的硬件调试与闪存编程工具包,专为 CH341A 和 CH347 USB 编程器设计。其核心功能集中在 SPI 闪存编程和 BIOS 分析,为从端到端驱动实际硅片提供了完整路径。此外,它还包含经过单元测试的协议层(I2C、UART、1-Wire、被动 SPI 嗅探、JTAG、SWD、CAN)、目标 MCU 编程器(AVR ISP、STK500/Arduino 引导加载程序、24Cxx 和 93xxx EEPROM、ESP32/ESP8266、通过 SWD 和 AN3155 UART 的 STM32)、ARM 调试接口(ADIv5、Cortex-M 暂停/恢复/单步、支持 ELF 的内存窥探)、JTAG IDCODE 和 BSDL 边界扫描、逻辑分析器模型(支持 Saleae/sigrok 导出)以及 Bus Pirate/slcan CAN 桥接器。不过,并非所有功能都已连接到实际硬件;每个命令的状态标记为 [live]、[offline] 或 [n/w](未连线)。规则是:任何没有实际传输通道的命令都会以非零退出并显示明确信息,绝不会伪造成功。

Ratchet 完全用 Rust 编写,生成单个自包含二进制文件,使用自定义 libusb FFI 和手写 JSON-RPC MCP 服务器,无需 Node 或 Python 运行时。它在 SPI 闪存路径上替代了 AsProgrammer 和 NeoProgrammer,并覆盖了通常由 flashrom、avrdude、esptool、stm32flash 和 OpenOCD 分别处理的功能:原生 USB、镜像分析、诊断知识库,以及内置的 AI 代理 MCP 服务器。

目前 Ratchet 处于预发布阶段,尚未发布任何 GitHub Release,因此唯一的安装方式是从源码编译。当前支持的实际硬件操作(通过 CLI 和 MCP)包括:SPI 闪存和 BIOS 的完整端到端操作(状态检测、识别、读取、写入、验证、擦除、区域擦除、空白检查、SFDP、写保护状态、完全修复和完全备份);通过 CH341A 位碰撞或 CH347 原生方式进行的 I2C 操作(扫描、读写、24Cxx EEPROM 读写);通过 CH347 JTAG 引擎进行的 JTAG IDCODE 扫描(CH341A 不支持)。后端自动选择:首先探测 CH347,然后 CH341A,最后回退到模拟模式(带警告),也可通过环境变量强制模拟。所有协议使用统一的开放总线接口,在无设备时返回错误而非静默回退。

离线工具包括:I2C 嗅探(解码捕获的时序)、JTAG BSDL 解析、逻辑分析导出、串口列举、REPL 交互式终端,以及分析、差异比较、校验和、芯片信息、搜索、后解码和电压参考等命令。尚未连接到实际硬件的功能包括:UART、1-Wire、SWD、AVR、Microwire EEPROM、ESP、STM32、逻辑分析捕获、Bus Pirate 和 CAN。这些命令的协议逻辑已实现并通过模拟测试,但尚未编写对应的 CH341A/CH347 传输适配器,它们会以非零退出或返回 JSON-RPC 错误,绝不会伪造成功。

破坏性路径经过强化:短 USB 读取视为硬错误而非静默填充零;擦除和写入拒绝写保护的硅片、未知容量的芯片以及静默选择的模拟后端;4 字节地址模式在使用后始终退出;全范围读取在单个片选断言内流式传输。SPI 写入路径通过 LoopbackFlash 测试总线在无硬件情况下验证,该总线模拟 CH341A USB 帧后的 SPI NOR 芯片。模拟后端确保在无设备连接时仍可在 CI 中测试 SPI 闪存表面。目前共有 472 个单元测试和集成测试通过。

安装过程需要 Rust 1.82+ 和 libusb-1.0,可通过 cargo 从源码安装。提供了详细的 BIOS 修复指南,包括必要的硬件(CH341A 或 CH347 编程器、SOIC-8/16 测试夹)、注意事项(电压检查)、以及从备份到写入的完整步骤。特别强调写入前务必备份,并且写入会自动创建时间戳备份,在擦除前进行逐页编程,并轮询写入中位。写入命令会拒绝全 0xFF 或全 0x00 的镜像,以及大于芯片容量的镜像。

总而言之,Ratchet 是一个功能强大且安全的 BIOS 刷写工具,其内置的 MCP 服务器为 AI 代理提供了硬件控制能力,适合需要自动化硬件调试和编程的场景。