前言
一次偶然的机会,我在二手市场发现了一台 H3C TX1801 Plus 路由器。通过手机搜索,我发现这款路由器已有成熟的 OpenWRT 和梅林固件可用,于是果断以 30 元的价格将其购入。
原厂固件虽然功能看似丰富,但大多华而不实,尤其是我最需要的 IPv6 相关功能并不完善。

在使用几周后,我决定刷入 OpenWRT 系统。本文主要参考了 DragonBluep 在恩山无线论坛发布的《新华三 H3C TX1801 Plus OpenWrt 刷机教程》,并结合我的实际操作经验整理而成。
一、拆机准备
拆开路由器外壳后,内部做工精致,H3C TX1801 Plus 是 MT7621 芯片 + 256MB RAM + 128MB NAND 的配置,TTL 接口清晰可见。使用杜邦线简单焊接后,连接到 CH341 编程器。

二、环境准备
[!TIP]
刷机原理详解
整体刷机流程设计
本次刷机采用 「两步走」 的安全策略,核心思想是 「先测试后刷写」,最大程度降低变砖风险。
各阶段技术原理
1. U-Boot 阶段 - 底层控制
- U-Boot 是路由器的底层引导程序,类似 PC 的 BIOS
- 通过 TTL 串口中断正常启动流程,进入 U-Boot 控制台
- 在此阶段拥有对硬件的完全控制权,可以执行底层操作
2. 临时系统阶段 - 安全测试
tftpboot initramfs.bin # 通过网络加载镜像到内存 bootm # 从内存直接启动
- initramfs.bin 是包含完整系统的内存盘镜像
- 整个系统在 内存中运行,完全不写入 Flash 闪存
- 优点:测试固件功能,确认硬件兼容性,零风险体验
- 缺点:重启后所有更改丢失,无法永久使用
3. 永久刷写阶段 - 固件写入
- xxxx-tx1801-plus-squashfs-sysupgrade.bin 是完整的固件镜像
- 通过 OpenWRT 的 sysupgrade 机制安全刷写
- 会擦除原厂固件分区,写入新的 OpenWRT 系统
- 刷写过程包含坏块管理和分区校验,确保数据完整性
关键技术要点
NMBM 坏块管理
- TX1801 Plus 使用 NAND Flash,可能存在坏块 NMBM (NAND Memory Bad-block Management) 自动处理坏块
- 这也是为什么不能刷 Breed 等第三方 U-Boot 的原因
- 原生 U-Boot 与 NMBM 紧密配合,确保数据安全
分区保护机制
原厂分区布局: bootloader → 配置区 → 固件区 → 用户配置区
- 刷机过程主要修改「固件区」
- U-Boot 和关键引导区域得到保护
- 即使固件刷写失败,仍可通过 U-Boot 恢复
为什么选择这种方案?
- 安全性高:临时系统阶段相当于「试驾」,满意再购买
- 容错性强:网络加载失败不影响原有系统
- 标准化操作:使用 OpenWRT 官方推荐的 sysupgrade 流程
- 可逆性:在临时系统阶段可以随时退出,恢复原状
风险控制设计
整个刷机过程设计了多重保护:
- 物理层:TTL 接线避免 VCC 短路
- 引导层:保留原厂 U-Boot,确保引导能力
- 系统层:内存运行测试,避免直接写闪存
- 应用层:标准刷写工具,避免低级错误
理解了这些原理,就能明白每个步骤的意义,在遇到问题时也能准确判断故障环节。
准备固件文件
- 从教程提供的网盘下载 OpenWRT 固件包(h3c_tx1801-plus.tar.7z)
- 解压压缩包
- 将
xxxx-tx1801-plus-initramfs-kernel.bin重命名为initramfs.bin - 确保
xxxx-tx1801-plus-squashfs-sysupgrade.bin文件也在同一目录中
下载地址(来自帖子)
- 百度网盘:https://pan.baidu.com/s/18spj7RM_ebZWeGrTmKTmYg (提取码:iff3)
- 蓝奏云:https://wwm.lanzouw.com/b03j568yb (密码:f9b1)
准备 TFTP 服务端
安装和配置 TFTP 服务器: (如有不清楚的地方还请自行搜索tftp64配置方法)
- 下载 TFTP 服务端软件
- 推荐使用 tftpd64(Windows)或 tftpd-hpa(Linux)
- tftpd64 下载地址:官方页面 或各大软件下载站
- 配置 TFTP 服务端
- 安装后打开 tftpd64
- 设置服务器接口:选择你设置的 IP 地址(192.168.124.99)
- 将
initramfs.bin放入 TFTP 根目录(如使用 tftpd64) - 确保服务正常运行
- 防火墙已关闭或放行 TFTP 端口(69)
网络设置
使用网线连接路由器 LAN 口至电脑网口,设置电脑 IP 为:
- IP 地址:192.168.124.99
- 子网掩码:255.255.255.0
- 网关和DNS不填
三、刷机步骤
1. TTL 接线
CH340 编程器接线方式:
- TTL 模块 GND ↔ 路由器 GND(暂时不接)
- TTL 模块 RX ↔ 路由器 TX
- TTL 模块 TX ↔ 路由器 RX
- 路由器 VCC 接口不接
注意: CH341 编程器接口名称略有不同:
- TTL 模块 TXD → 路由器 RX
- TTL 模块 RXD → 路由器 TX
- TTL 模块 GND → 路由器 GND(暂时不接)
- 路由器 VCC 接口不接
2. 进入 U-Boot 模式
- 路由器先不通电,将USB-TTL模块( CH341 编程器)插入电脑 USB 接口
- 在 Windows 设备管理器中设置 CH341 波特率为 115200,数据位 8,奇偶校验关闭(None),停止位 1

- 打开Xshell,新建会话,协议选择SERIAL(串口)

然后点击"串口"选项,设置端口为你在设备管理器里面看到的CH341编程器端口(如COM4),波特率为115200,然后点击连接

- 连接后,看到控制台显示 “connected” 时,接通路由器电源

-
当指示灯变为绿色时,立即连接 TTL 刷机线的 GND
-
在控制台中一直按
0键中断启动过程
***************************************************************
* *
* H3C TX1801_Plus_C uboot, Version 102 *
* *
***************************************************************
Hit any key to stop autoboot: 0
*** U-Boot Boot Menu ***
1. Startup system (Default)
2. Upgrade firmware
3. Upgrade Factory
4. Upgrade bootloader
5. Upgrade bootloader (advanced mode)
6. Load image
0. U-Boot console #选择这一项
Press UP/DOWN to move, ENTER to select
- 选择 0. U-Boot console 进入 U-Boot 命令行

3. 加载并启动临时系统
在 U-Boot 命令行中依次执行:
env set bootflag 0
env save
tftpboot initramfs.bin
bootm
请确保 TFTP 服务端正常运行
正常输出如下:
=> tftpboot initramfs.bin
Using eth@1e100000 device
TFTP from server 192.168.124.99; our IP address is 192.168.124.54
Filename 'initramfs.bin'.
Load address: 0x80010000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
################
7 MiB/s
done
Bytes transferred = 6904336 (695a10 hex)
=> bootm
## Loading kernel from FIT Image at 80010000 ...
Using 'config-1' configuration
Trying 'kernel-1' kernel subimage
Description: MIPS OpenWrt Linux-5.15.103
Type: Kernel Image
Compression: lzma compressed
Data Start: 0x800100e4
Data Size: 6891349 Bytes = 6.6 MiB
Architecture: MIPS
OS: Linux
成功加载后,系统将从 内存启动 OpenWRT(不写入 Flash)
[!NOTE]
提示:约 50 秒后可通过浏览器访问
http://192.168.1.1,输入任意密码即可登录 LuCI。此为临时系统, 所以现在后悔还来得及,重启后恢复原厂固件

4. 备份关键分区
进入 LuCI 后台后,建议先备份关键分区:
- 进入 系统 → 备份
- 在 保存 mtdblock 部分备份关键分区,如 firmware 分区

5. 刷入正式 OpenWRT 固件
- 在 LuCI 中进入 系统 → 备份/升级 → 刷写新的固件
- 上传
xxxx-tx1801-plus-squashfs-sysupgrade.bin(注意不是initramfs.bin) - 可选勾选"保留配置"
- 等待自动重启

重启后,Xshell 控制台会显示 U-Boot 菜单,选择 1. Startup system (Default) 启动系统。
启动完成后,访问 http://192.168.1.1 进入登录界面,输入任意密码即可进入 OpenWRT 后台。

如需后续升级至 X-WRT 或 梅林固件,也可在此 OpenWRT 基础上继续操作
重要提醒与风险提示
| 风险点 | 说明与解决方案 |
|---|---|
| 不要刷第三方 U-Boot(如 Breed) | TX1801 Plus 使用 NMBM 坏块管理,普通 U-Boot 无法正确识别分区,可能导致设备无法启动 |
不要使用 cp.l 直接写固件 | 容易因对齐错误或坏块处理不当导致系统崩溃 |
| TTL 接线时 VCC 不要接 | 只连接 GND、TX、RX 三线,供电由路由器本身提供 |
| 波特率设置问题 | 如出现乱码,尝试调整波特率至 115200 ± 误差,或更换 USB-TTL 模块(推荐 CH340/CP2102) |
| Xshell 不显示输出(不跑代码) | 先将 TTL 刷机线接入电脑(暂时不接 GND),路由器上电后绿灯亮起时立即连接 GND,此时 Xshell 应正常显示输出 |
结语
本次刷机过程总体顺利,OpenWRT 系统运行稳定,提供了比原厂固件更丰富的功能和更好的 IPv6 支持。刷机有风险,操作需谨慎,建议在充分了解步骤和风险后再进行尝试。
希望这篇记录能为有同样需求的用户提供参考和帮助。

3万+

被折叠的 条评论
为什么被折叠?



