修复固件

抢救刷入固件后无法开机的硬件

使用编程器修复损坏的固件程序

在进行修复工作之前

如果你正在查阅这个页面的内容,说明因为固件刷写或更新操作不当导致无法开机,本教程将帮助你如何自行通过编程器刷入固件。

在开始教程之前,请确保你已经购买过且已经拥有了以下硬件工具:

  1. 另一台能够进入系统的电脑
  2. CH341A USB 编程器
  3. 烧录夹或探针,若使用探针需自行确认 SPI Flash 规格(大多数为 SOP8-208mil 规格),如果使用的是华硕主板则建议使用华硕专用烧录线
  4. 1.8V 降压模块(目前大多数龙芯主板使用该电压的 Flash),若确认 Flash 为 3.3V 或 5V 则不需要
  5. 对于部分在散热器下方的 Flash 芯片,那么你还需要准备硅脂,以便修复固件之后重新安装散热器

在开始教程之前,请确保你已经安装了以软件工具:

  1. Windows 请事先安装好 CH341A 驱动程序,推荐使用 由 Alangoa 更新芯片数据库的 NeoProgrammer (来源: 恩山论坛)
  2. macOS / Linux 推荐使用 IMSProg

在烧写之前请先按以下步骤组装好编程器,此处分别以龙芯 XA61200 和华硕 XC-LS3A6M 两款主板作为范例。

下载固件并验证哈希

大多数主流产品可以在产品规格数据库下找到,若未能找到相应型号的固件,请联系经销商。

下载后请务必验证哈希值,否则将导致启动失败。

注:若从华硕下载固件,请验证其 zip 文件,因为华硕提供的是 zip 文件的 SHA-256 哈希,不影响后续刷写操作,验证后请务必解压,因为烧录程序不会自动处理压缩包。

若使用 Windows,推荐使用 OpenHashTab 进行验证:

若使用 macOS 或 Linux 发行版,可使用 sha256sum 命令进行校验:

bash
# 以华硕 XC-LS3A6M 最新版本 1402 为例
sha256sum XC-LS3A6M-1402.7z
echo "7B435CA09F34088D6922BD82C9A46945E57A93BC4E3C24016BCE8FC19826E0AF XC-LS3A6M-1402.7z" | sha256sum -c
# 此时将会输出:XC-LS3A6M-1402.7z: 成功

组装并连接编程器

请根据主板使用的 SPI Flash 丝印查找以确认规格,以下是一些常见主板使用的 SPI Flash 型号,由于可能的生产批次换料,仅供参考:

主板Flash 型号厂商电压近似型号(刷入时的临时选项)
XA61200 / XA61201GD25LQ64E兆易创新 (GigaDevice)1.8V
XB612B0_V1.1 / XB612B0_V1.2GD25LQ64E兆易创新 (GigaDevice)1.8V
XC-LS3A6MW25Q128JW华邦电子 (Winbond)1.8VW25Q128FW

之后请根据图示组合编程器,注意引脚位置从起始脚位 1 开始必须一一对应,一般情况下,SPI Flash 芯片上的圆圈位置所在的脚位为起始脚位1。

WARNING

请注意:请必须提前查阅 Flash 型号,1.8V 的芯片无法在 3.3V 和 5V 电压档位下进行操作,但部分烧录工具会正常探测,此时可能不会进行提醒,强行烧录将有可能导致 Flash 芯片损毁!!!

若确认为 1.8V 芯片,请安装降压模块(如图所示的绿色模块)。

连接 Flash 芯片

使用烧录夹或探针连接 Flash 芯片

根据图示,将烧录夹或探针引脚一一对应,这些连接器都有标记用于指示起始位置(烧录夹v始脚位 1 为红色线,探针起始脚位 1 为涂黑侧,具体请咨询对应经销商或厂商)

确认连接稳定后将烧录线的另一端根据顺序接入编程器,若使用探针连接请确保连接稳固避免因接触不良烧录失败

使用测试架连接 Flash 芯片

若主板为双 BIOS 芯片设计(XA61200 和 XB612B0 等主板均有该设计)且另一个 SPI Flash 芯片为如图所示可拆卸设计,那么可以使用 SOP8 测试架进行烧录。

将 Flash 芯片从插座拆出后,请事先确认起始脚位 1 所处的位置(如图序号 1 所示),以避免安装错误导致无法启动。

WARNING

注意:对于双 BIOS 芯片设计的主板,请查看上图序号 2 所示的跳线连接是否正确,这将会影响最终启动的固件和设定

一般情况下,对于 XA61200 和 XB612B0 等主板,跳线定义如下:

将跳线帽安装到 1 和 2 针脚将使用板载 SPI Flash 芯片内的固件,安装到 2 和 3 针脚将使用插座的 SPI Flash 芯片内的固件。

拆出后根据图示安装到测试架上:

确认安装完毕后将测试架根据顺序接入编程器。

(仅限华硕主板) 使用专用烧录线连接 Flash 芯片

如果使用的是华硕主板,这款主板用于存放 BIOS 固件的 SPI Flash 芯片位于 CPU 附近且在散热器下方,必须拆除散热器,且位置如图所示:

将专用烧录线插入位于 SPI Flash 上方的接口,注意接口涂白部分必须与主板左下角白色标识对应(即该位置是起始位置)

烧录线的另一端根据顺序照常接入编程器。

烧录固件程序

编程器组合并连接好 Flash 芯片后,将编程器连接到电脑,并根据当前的操作系统选择烧录软件:

使用 NeoProgrammer 刷写 (Windows)

在使用 NeoProgrammer 之前,请提前安装好驱动,驱动已随软件提供,位于 软件目录\Drivers\CH341A 下,双击 DRVSETUP64.exe 后点击 安装

然后在设备管理器确认有以下设备即安装成功:

之后请事先确认 CH341A 编程器外观,并在软件界面的切换编程器菜单中选择,考虑到销售情况,多数情况下为CH341 双电压黑色版

根据图示的序号按顺序操作:

  1. 点击打开文件,选择主板对应的固件文件(注意:扩展名需重命名为.bin

  2. 点击检测,可以探测连接的 Flash 芯片型号,若数据库中无完全对应的型号,也可使用近似型号,例如 W25Q128JW 可选择 W25Q128FW,这些型号在大多数情况下是新旧版本区别,参数基本相同。

  3. 点击擦除,将已经损坏的固件彻底清空,擦除成功后也可选择右侧的查空功能检查 Flash 芯片是否已经没有内容。

  4. 点击写入,将打开的固件文件烧录到 Flash 芯片中,在软件的默认设置中软件会按顺序执行写入和校验操作,期间请务必保证连接正常,否则将会导致无法预料的后果

  5. (可选)点击 校验,确认烧录内容是否与固件文件相同。

使用 IMSProg 刷写 (macOS, Linux)

由于 Linux 内核已有主线化 CH341 系列驱动,一般不需要安装驱动。

对于 macOS,请在此从官网获取驱动

由于 IMSProg 在大多数发行版中并未提供,如有,请首先尝试从发行版源中获取:

bash
# Debian (13/14/sid)
sudo apt install imsprog

# Ubuntu
sudo add-apt-repository ppa:bigmdm/imsprog
sudo apt update
sudo apt install imsprog

# Fedora
sudo dnf install imsprog

# ArchLinux AUR
yay -S imsprog

如果发行版未提供,则可以从源码编译:

bash
# AOSC OS
sudo oma install cmake gcc libusb qt-5 pkgconf wget zenity

# macOS (Homebrew)
brew install qt@5 libusb cmake pkgconf wget zenity

# Compiling all
git clone https://github.com/bigbigmdm/IMSProg.git && cd IMSProg
chmod +x build_all.sh
sudo ./build_all.sh # 对于 macOS 请去掉 sudo

之后可以从应用程序菜单中找到它。

启动后根据图示的序号按顺序操作:

  1. 点击打开文件,选择主板对应的固件文件(注意:与 NeoProgrammer 相同,扩展名需重命名为.bin

  2. 点击检测,可以探测连接的 Flash 芯片型号,若数据库中无完全对应的型号,也可使用近似型号,同上。

  3. 左侧的三个流程均需勾选,之后点击 开始 即开始将固件烧录到 Flash 中,期间请务必保证连接正常,否则将会导致无法预料的后果

验证修复结果

断开所有连接在 Flash 芯片上的工具或烧录线,若拆下了散热器则需要将 CPU 上的残余硅脂清理干净,使用自备的硅脂填充并重新安装散热器。

照常连接电源线,安装内存条、硬盘,接入键鼠和显示器,开机进行初次安装时的操作,若开机后出现LOONGSON 龙芯徽标即恢复成功。