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 代理提供了硬件控制能力,適合需要自動化硬件調試和編程的場景。