NOKIA XG-040G-MD · 图文教程

网页救砖指南 · Web 0.1.0(存档)

给普通用户看的操作手册:怎么把这台路由器换成带浏览器救砖功能的 U-Boot,以及换好之后怎么用它。跟着步骤做,不需要懂 U-Boot 或 Linux。

存档版 · 对应恢复页 Web 0.1.0 仅适用 ubi 变体 master-XG-040G-MD
最新版 这一页是留给 Web 0.1.0 的存档,内容不再更新 如果你的恢复页右上角写着 Web 0.1.1、或者引导菜单标题是 OpenWrt-Web 0.1.1,请看最新版教程 —— 那边多了「退回原厂」、引导菜单手动进恢复页、出厂 MAC 丢失后的自动处理。 打开最新版教程 →

下载 0.1.0 对应的固件(已固定)

这一页固定列出 XG-040G-MD-ubi-auto-20260831-47 这一次构建,不跟随最新 Release 变化 —— 存档教程里的每张截图、每一步都是照着它写的。想要新版本请到最新版教程。点文件名直接下,文件名不用改,网页会按名字做核对。

正在读取固定的 Release…
00

准备工作

如果系统还能正常进 OpenWrt 后台,SSH 上去执行 cat /proc/mtd:看到 bl2 和 ubi 这两个分区名,说明已经是这个 U-Boot 了,直接看「日常使用」;看到 bootloader / ubootenv,或者 nsb_1 / data,说明还没换过,走「首次迁移」。系统进不去就直接按「首次迁移」的步骤操作,安全。

  • 网线一根 + 一台电脑或手机
    全程只用来连这台路由器,不需要能上外网。固件已在页面上方列出,先下好。
  • USB 转 TTL 串口模块仅首次迁移
    3.3V 电平的那种(不是 RS232),淘宝搜「USB TTL CH340」一类都行,带 3 根杜邦线。之后日常用网页就不再需要它了。
  • 支持 Xmodem 发送的串口终端软件仅首次迁移
    Windows 上 MobaXterm、SecureCRT、Xshell 都自带「发送文件 → Xmodem」;macOS / Linux 可以用 minicom,或者装 lrzsz 后在 screen 里用 sx 命令发送。串口参数固定 115200 8N1。
  • 建议先做一次整机 flash 备份仅首次迁移
    首次迁移会清空原厂分区,其中 ri(MAC/序列号)和 bosa(光模块校准数据)是这台机器独有的、没有第二份。备份方法见原厂备份文档(本仓库 docs/backup-and-restore.md),几分钟就能做完,别省这一步。
A

首次迁移 · 接串口

先不要插网线。只有这一次需要打开机壳接串口,传完两个引导文件之后,剩下的和以后的每一次都只用浏览器。

1

找到串口调试口,接好线

拆开机壳,主板上电解电容旁边有一排焊盘,标着 Tx Rx GND,如下图红色箭头所示(图中「内存」箭头只是顺带标出芯片位置,跟接线无关,不用管):

主板串口焊盘位置,红色箭头标出 Tx / Rx / GND
▲ 主板实拍,电解电容左侧就是调试串口

接线是「交叉」的 —— 模块的 TX 接主板的 Rx,模块的 RX 接主板的 Tx,GND 接 GND,不同批次的板子位置可能略有出入,以实物丝印为准:

电脑
USB 口
TX
RX
GND
USB-TTL
模块
→RX
→TX
→GND
路由器
调试口
2

打开串口终端软件

新建一个串口连接,端口选 USB-TTL 模块对应的那个(Windows 是 COMx,macOS/Linux 是 /dev/tty.usb… 或 /dev/ttyUSB0),参数填:

波特率数据位校验停止位流控
1152008无1无

这时候先别急着连接路由器电源 —— 打开软件、连好线、参数填好就行,下一步再上电。

3

长按机身 reset 键并同时上电

长按机身 reset 键并同时上电,不要松开。终端软件里很快会滚出一串启动日志,留意其中一闪而过的 Press x —— 看到就立刻按键盘上的 x。

4

依次发送两个文件

按 x 之后屏幕会刷出一串 C(xmodem 请求校验的标志),这时用终端软件的「发送文件」功能,协议选 Xmodem,发送 preloader.bin:

终端出现 Press x 提示,按 x 后显示 C,准备用 Xmodem 发送 preloader.bin
▲ 出现 Press x 按键盘 x,出现 C 后开始发送 preloader.bin

传完 preloader.bin 后路由器会自动重启一次,很快会刷出第二个提示 Press x to load BL31... —— 这时再按一次 x,出现 C 后用同样的方式发送 bl31-uboot.fip:

preloader.bin 传完后路由器自动重启,出现第二个 Press x to load BL31 提示,按 x 后发送 bl31-uboot.fip
▲ 第二次 Press x,这次加载的是 BL31 + U-Boot FIP
发送快结束时、以及紧接着出现的启动菜单画面,reset 键都要继续按住不要松(大约 15 秒) —— 别看到「自动重启」或菜单画面就以为流程结束了:
U-Boot 启动菜单一闪而过,此时仍需按住 reset 键
▲ 这个菜单会一闪而过,出现时依旧按住 reset 不要松手

直到日志变成下面这样 —— Listening for HTTP on 192.168.1.1 —— 才代表真正进入了网页恢复模式,这时才可以松手:

出现 Listening for HTTP on 192.168.1.1,此时可以松开 reset 并插上网线
▲ 看到这个画面才可以松手,此时面板已经是流水灯
5

看到流水灯,松开 reset,再插网线

流水
正在等你打开浏览器上传
A

首次迁移 · 网页一次传完三样

这一步和日常使用共用同一个网页,唯一区别是要展开「引导程序」并勾选「先重建 UBI」。

6

网线插好,浏览器打开 192.168.1.1

进流水灯效果后再插入网线,插到路由器任意一个网口(建议是第 3 或第 4 个口)。电脑或手机的网络设置成自动获取 IP 即可,会分到 192.168.1.100。不用手动配 IP —— U-Boot 里带了个迷你 DHCP 服务器,就是为了省掉这一步。

电脑 / 手机
192.168.1.100
—— 网线 ——
路由器
192.168.1.1
7

展开「引导程序」,三个格子都选好文件

固件选 …-ubi-squashfs-sysupgrade.itb,展开下方「引导程序(仅首次迁移需要)」,BL2 选 …-ubi-preloader.bin,U-Boot 选 …-ubi-bl31-uboot.fip,勾上「先重建 UBI」(旧的分区布局里没有合法的 UBI 结构,不勾这一步后面会失败)。

▲ 三个文件都已选好,「先重建 UBI」已勾选

8

点「上传并刷写」,核对确认框

因为勾了「先重建 UBI」,确认框会用醒目的橙色提醒「重建 UBI 会擦掉出厂 MAC、U-Boot 环境与全部设置」—— 首次迁移这是正常且必要的,核对三个文件大小无误后点「仍要写入」。

▲ 橙色警示条只在「文件名对不上」或「勾了重建 UBI」时出现

9

灯齐闪 = 正在写,灯灭 = 写完自动重启

点击之后浏览器会立刻开始上传,进度条走满后设备开始真正写入 flash —— 这时候网页已经帮不上忙了,接下来只看面板灯:

流水
还在等 / 还在传
齐闪
正在写 flash,别断电
熄灭后重启
写完了,静待自动开机
齐闪期间唯一不能做的事是断电。网线可以随时拔,写 flash 不经过网络;但断电会让 flash 处于半写状态,只能再用串口救。
灯灭了很久(明显超出正常开机时间)还是没进系统,直接给路由器断电重启一次即可。有小概率会卡在重启过程里的 Press x 提示上等按键,没有串口连着时这一步没人按,看起来就像卡住了;重新上电通常就能正常继续,不用紧张。
重启之后就是正常的 OpenWrt 系统了 —— 首次进系统会自动完成初始化。之后再也不用碰串口,日常升级和救砖都只靠这个网页。
重建 UBI 把出厂 MAC 也清空了,网络能用但 MAC 变成随机值。想恢复真实 MAC,把之前备份出来的 ri 分区写回 UBI 的 ri 卷即可,随时能做,不需要重刷。
B

日常使用 · 进恢复页

迁移完成之后,这个恢复页就一直带在这台路由器的 U-Boot 里,不用串口。

什么时候怎么进
想主动刷机 / 升级引导器先上电,等 1~2 秒后再按住机身 reset 键,一直按着,等面板五个灯开始流水再松手(约 15 秒)。进流水灯效果后再插入网线(建议第 3 或第 4 个口)

流水灯亮起来就是进去了,跟首次迁移那一步看到的是同一种灯效。这时再插网线,浏览器打开 192.168.1.1。

B

日常使用 · 上传并刷写

日常升级只有固件这一格是必填的,BL2 和 U-Boot 只有它们本身需要更新版本时才传,「先重建 UBI」平时不要勾。

1

浏览器打开 192.168.1.1,选好固件

网线接好、设备自动获取 IP 之后,「固件」那一格选 …-ubi-squashfs-sysupgrade.itb,不用展开下面的「引导程序」。

▲ 恢复页初始状态,右上角是深浅色手动切换(跟随上次选择,不跟随系统)

2

点「上传并刷写」,看确认框

只刷固件的确认框是中性色的 —— 不涉及擦除 UBI 或文件名可疑,核对一下大小,点「开始写入」即可。上传过程中有一条走动的进度条,能看到已传字节数和百分比。

3

上传完毕后看面板灯,不用管网页

进度条走满只代表「上传完毕」,真正写 flash 在这之后才开始,此时页面已经收不到任何消息了,进度改看面板灯 —— 流水(等待/传输)→ 齐闪(写入中,别断电)→ 熄灭后自动重启(完成)。

▲ 上传中的进度条,走满后会切到「正在校验」的条纹动画

覆盖正在运行的这个 U-Boot 本身也是安全的:SPI-NAND 芯片不支持「原地执行」,当前这份 U-Boot 早就解压在内存里跑了,和 flash 上的旧副本毫无关系,写坏了也不影响这一次操作能不能走完。
B

面板灯是唯一的进度来源

网页上传结束后连接就关闭了,浏览器和设备之间再没有通道 —— 之后的每一步都只能看灯。

面板含义能拔网线吗
五灯流水在等你上传❌ 还在传
五灯齐闪正在写 flash✅ 随便拔
熄灭后重启写完了✅
拔网线随时安全,写 flash 不经过网络。要命的是断电 —— 齐闪期间断电才是真的把机器写砖。
?

常见问题

已经刷过 preloader 和 fip 了,以后升级还要再传这两个文件、勾「先重建 UBI」吗?
不用。日常更新只传固件就够了。BL2 和 U-Boot 走的是不同的写入方式:BL2 直接写 mtd 分区,完全不碰 UBI;U-Boot(fip) 只替换 UBI 里 fip 这一个卷,两者都不需要先清空重建。「先重建 UBI」只在从别的布局第一次换过来这一种情况下才需要勾,日常升级勾上反而会把出厂 MAC 和所有设置一起清空。
想从这个 U-Boot 换回 tcboot,能靠这个网页操作吗?
不能。这个网页是编在 ubi 布局的 U-Boot 里的,它只认自己的 bl2 分区和 UBI 里的几个卷,没有能力写 tcboot 用的那种引导程序和分区表。ubi 和 tcboot 之间互相切换在这个项目里都算「完整刷机」,需要走 tcboot 自己的刷机方式,不是这份文档覆盖的范围。
现在是原厂引导,想直接换成这个网页版 U-Boot,要勾「先重建 UBI」吗?
要。原厂的分区里同样没有合法的 UBI 结构,跟从 tcboot 迁移过来是完全一样的流程 —— 照着本文档「首次迁移」那一节做即可,不用区分原厂还是 tcboot。
「先重建 UBI」这个勾选框到底在干什么?
把 UBI 里现有的全部卷(包括出厂 MAC、U-Boot 环境)先擦掉,再重新建一个空的 UBI 分区去装新数据。只有旧的分区布局上本来就没有合法 UBI 结构(比如刚从 tcboot / 原厂迁移过来)时才需要,正常升级绝对不要勾 —— 勾了就是把这台机器的出厂 MAC 和所有配置清空重来。
写入过程中网线断了 / 电脑睡眠了,会不会写坏?
不会。上传结束、进度条走满之后,浏览器和设备之间的连接本来就已经关闭了,接下来的写入是设备自己在做,跟网线通不通、电脑在不在都没关系。只要面板灯还没到「齐闪」阶段,拔网线、关浏览器都是安全的。
文件选错了、或者名字不对,网页能拦住吗?
网页会按文件名做提醒(比如把 .itb 选进了 BL2 那一格),但只提醒不强制拦 —— 文件名是可以被改的,最终还是要靠你自己核对确认框里列出的文件和大小。刷错固件本身不严重,机器还能再进这个页面重来;真正的高风险操作只有「文件名对不上」和「勾了先重建 UBI」这两种,确认框里也只对这两种情况变成醒目的橙色警告。