【教程】H3C Magic NX30 Pro 刷入 OpenWrt
本文最后更新于 31 天前,其中的信息可能已经有所发展或是发生改变。

很早之前家里就升级了电信千兆网络,但是电信送的WIFI6千兆路由器很快就坏了,只好换上电信送的旧的WIFI5千兆路由器,不得不说,也挺好用,没什么问题的。但是,人的欲望是无限的。

我爸的一台一体机在他的卧室,隔了一面墙,到一体机那边,信号就不好了,我甚至都给他外装了USB个无线网卡。但是之前我去给他下电视剧,看到2-3MB/s的网速,真的要吐了,受不了。

之前看我兄弟给我看他新家新加的一个路由器,就是看了我推荐,随便买了款H3C Magic NX30 Pro,站起来的路由器看起来挺好看的,而且最近看到这个路由器可以刷OpenWrt,可以路由器看世界,路由器看世界还是很有意义的,真的,我刷完后直接舒服了。以下是流程:

事前准备

准备

  • 一台正常可用的原版H3C Magic NX30 Pro,有电源有网,我是闲鱼133R+千把闲鱼币,买的外观不错里面最便宜的,没问还以为是箱说全的,结果收到是裸机,不过外观真的和新的没区别,就这样吧
    ▲已经配置过的可登录的
    ▲外加2 条网线
    ▲接上网络(因为需要在 NX30 Pro 上安装 ssh 的软件包,我们需要其能连接互联网)。故连接网线的方式:
    ⑴. 如果您有一台在役(能上网)的旧路由器。网线 1 一端连接旧路由器的 LAN 口,对端连接 NX30 Pro 的 WAN 口;网线 2 一端连接 NX30 Pro 的 LAN 口,对端连接电脑(或扩展坞)的网口
    ⑵ . 如果您只有一台 NX30 Pro,也一样的需要让其能正常访问网络。此时网线 1 一端是入户网口或者是光猫的网口,对端连接 NX30 Pro 的 WAN 口;网线 2 一端连接 NX30 Pro 的 LAN 口,对端连接电脑(或扩展坞)的网口
  • 一台个人电脑,我用的Win11,很好用,自从换上5900X和64G3600内存就不想用MacOS了
    ▲并启用Telnet,方法:
    Controll Panel」控制面板 → 「Programs」程序 → 「Turn Windows features on or off」关闭或启用 Windows 特性,确保以下功能项处于开启状态:
    Telnet Client
    ▲下载WinSCP,GUI操作文件,方便实用
  • 网盘提取码:iTPn,不用全部下载,按需要,有些是我刷的过程件
    待刷写镜像及工具的下载
    OpenWrt Firmware Selector
    为了避免无线局域网的干扰,可以暂时将电脑的无线网络断开。
文件名描述
dropbear_2019.78-2_aarch64_cortex-a53.ipkdropbear 软件包
openwrt-*-preloader.binBL2
openwrt-*-bl31-uboot.fipFIP
openwrt-*-initramfs-recovery.itbinitramfs 镜像
openwrt-*-squashfs-sysupgrade.itbSysupgrade 镜像
Tftpd64-4.64-setup.exeTFTP 工具安装包
nx30pro.zip包含uboot镜像和做好的ImmortalWrt系统
h3c_nx30pro.zip别人备份的原系统
待刷写镜像及工具列表

启用路由器SSH功能

这个是最需要的,有了它可以玩转整个设备:

# 打开 cmd 窗口,Telnet 命令登录到设备终端
## 用户名为 H3C、密码为您此前初始配置的 Web 管理密码
telnet 192.168.124.1 99

# 获取 dropbear 软件包,并启用 ssh 服务
curl -o /tmp/dropbear.ipk https://downloads.openwrt.org/releases/packages-19.07/aarch64_cortex-a53/base/dropbear_2019.78-2_aarch64_cortex-a53.ipk
opkg install /tmp/dropbear.ipk
/etc/init.d/dropbear enable
/etc/init.d/dropbear start

# 配置 ssh 登录的密码,建议设置成和 Web 管理密码一致
passwd
# 设置完密码 exit 退出登录终端、或直接关闭窗口

这里可能会有个问题:

root@NX30Pro:~# opkg install /tmp/dropbear.ipk
Installing dropbear (2019.78-2) to root...
Configuring dropbear.
Collected errors:
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_base https://downloads.openwrt.org/releases/21.02-SNAPSHOT/packages/aarch64_cortex-a53/base). Skipping.

这个错误提示是因为你的opkg配置文件中有重复的源声明,导致安装过程跳过了dropbear软件包的安装。
cat /etc/opkg/distfeeds.conf查看这个文件后发现的确重复了一行,用vi命令删除重复行保存后再执行就成功了。

分区备份

# 打开 cmd 窗口,ssh 命令登录到路由器终端
ssh [email protected]

# 查看分区表
root@NX30Pro:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 08000000 00020000 "spi0.0"
mtd1: 00100000 00020000 "BL2"
mtd2: 00080000 00020000 "u-boot-env"
mtd3: 00200000 00020000 "Factory"
mtd4: 00200000 00020000 "FIP"
mtd5: 04000000 00020000 "ubi"
mtd6: 00600000 00020000 "pdt_data"
mtd7: 00600000 00020000 "pdt_data_1"
mtd8: 00100000 00020000 "exp"
mtd9: 02580000 00020000 "plugin"

# 备份原厂固件
root@NX30Pro:~# dd if=/dev/mtd5 of=/tmp/mtd5_ubi
131072+0 records in
131072+0 records out
67108864 bytes (64.0MB) copied, 28.450201 seconds, 2.2MB/s
# 导出原厂固件至电脑
## 你可以使用 WinSCP 之类的 GUI 工具查看路由器的 /tmp 目录,导出至您的电脑
## 也可参考命令导出方法:新开一个 cmd 窗口,执行命令导出至指定目录
scp [email protected]:/tmp/mtd5_ubi D:\Downloads\backup\
# 删除 /tmp/mtd5_ubi
## 因为闪存空间有限,我们仍需要单独备份几个分区,故将已导出的固件删除
## 回到登陆 ssh 的终端窗口,执行命令
root@NX30Pro:~# rm /tmp/mtd5_ubi

# 单独备份(小)分区
root@NX30Pro:~# dd if=/dev/mtd1 of=/tmp/mtd1_BL2
2048+0 records in
2048+0 records out
1048576 bytes (1.0MB) copied, 0.390332 seconds, 2.6MB/s
root@NX30Pro:~# dd if=/dev/mtd3 of=/tmp/mtd3_Factory
4096+0 records in
4096+0 records out
2097152 bytes (2.0MB) copied, 0.786793 seconds, 2.5MB/s
root@NX30Pro:~# dd if=/dev/mtd4 of=/tmp/mtd4_FIP
4096+0 records in
4096+0 records out
2097152 bytes (2.0MB) copied, 0.798879 seconds, 2.5MB/s

# 导出分区镜像至电脑,像此前一样用 WinSCP 工具或用命令导出:
scp [email protected]:/tmp/mtd1_BL2 D:\Downloads\backup\
scp [email protected]:/tmp/mtd3_Factory D:\Downloads\backup\
scp [email protected]:/tmp/mtd4_FIP D:\Downloads\backup\

# 回到登陆完 ssh 的窗口,删除已导出镜像
root@NX30Pro:~# rm /tmp/mtd*

方案一、官方

刷写过程

刷写 BL2 和 uboot

## 本文下载的镜像存储在电脑的 D:\Downloads\ 目录下
## 刷写前,用 WinSCP 或命令将用到的镜像导至路由器的 /tmp 目录下
# cmd 窗口执行命令参考:
scp D:\Downloads\openwrt-23.05.0-mediatek-filogic-h3c_magic-nx30-pro-preloader.bin [email protected]:/tmp/
scp D:\Downloads\openwrt-23.05.0-mediatek-filogic-h3c_magic-nx30-pro-bl31-uboot.fip [email protected]:/tmp/

# 回到 ssh 的终端窗口,刷写到各自分区
# 发现 BL2 分区提示不能写入,这个可以暂时忽略
root@NX30Pro:~# cd /tmp/

root@NX30Pro:/tmp# mtd write *-preloader.bin BL2
Could not open mtd device: BL2
Can't open device for writing!

root@NX30Pro:/tmp# mtd write *-bl31-uboot.fip FIP
Unlocking FIP ...

Writing from openwrt-23.05.0-mediatek-filogic-h3c_magic-nx30-pro-bl31-uboot.fip to FIP ...
root@NX30Pro:/tmp# client_loop: send disconnect: Connection reset

将电脑设置为静态 IP

「控制面板」→「网络和共享中心」→「更改适配器设置」→ 找到有线网卡,鼠标右键点击 →「属性」→ 双击「Internet 协议版本 4(TCP/IPv4)」→ 使用以下 IP 地址:

  • IP 地址: 192.168.1.254
  • 子网掩码: 255.255.255.0
  • 默认网关: 192.168.1.1

填写完成,确认保存即可。

  1. 将文件 openwrt-23.05.2-mediatek-filogic-h3c_magic-nx30-pro-initramfs-recovery.itb 重新命名为 openwrt-mediatek-filogic-h3c_magic-nx30-pro-initramfs-recovery.itb
  2. 安装 tftpd64 ,然后将 openwrt-mediatek-filogic-h3c_magic-nx30-pro-initramfs-recovery.itb 移动至 tftpd64 安装目录,双击其主程序 tftpd64.exe 启动
  3. 物理断电重启下路由器,即可看到程序执行 tftp 恢复的进度条,可通过 tftpd64 程序的 Log viewer 栏查看日志,判断是否执行成功。
  4. 等待完成 tftp 恢复后设备完成启动(可以 ping 下 192.168.1.1 ,通了就说明起来了),最后 ssh 登录设备并执行 sysupgrade 完成固件刷写

经过上述操作,我们就完成了 OpenWrt 官方固件的刷写

重新刷写此前未刷入的 BL2 分区

虽然不知道 BL2 分区的作用,但是 OpenWrt 的首次引入设备支援的 commit 的作者有提到,强迫症的我还是想要刷进去,我们可以这么做:

# 清除临时过渡固件的密钥信息,否则 ssh 登录或用 scp 命令传输文件会报错
ssh-keygen -R 192.168.1.1

## 将需要用到的镜像导至路由器的 /tmp 目录下
# cmd 窗口执行命令参考:
scp D:\Downloads\openwrt-23.05.0-mediatek-filogic-h3c_magic-nx30-pro-preloader.bin [email protected]:/tmp/

# ssh 登录到设备终端
ssh [email protected]

# 同步仓库源,安装 kmod-mtd-rw 内核模块
root@OpenWrt:~# opkg update && opkg install kmod-mtd-rw
# 将分区配置为可读写
root@OpenWrt:~# insmod /lib/modules/$(uname -r)/mtd-rw.ko i_want_a_brick=1

# 刷写 BL2 分区
root@OpenWrt:~# mtd write /tmp/*-preloader.bin BL2
Unlocking BL2 ...

Writing from openwrt-23.05.0-mediatek-filogic-h3c_magic-nx30-pro-preloader.bin to BL2 ...

# 对了,OpenWrt 默认没设置 ssh / Luci Web 的密码。可以命令设置下:
root@OpenWrt:~# passwd

# 重启路由器
root@OpenWrt:~# reboot

最后,各位不要忘记将电脑的网络设置改回自动获取 IP 哦。

Luci 主题的安装

# ssh 登录到设备终端
ssh [email protected]

# 安装 luci-theme-material 主题
opkg update
opkg install luci-theme-material

# 安装 Luci 中文语言包(可选)
opkg install luci-i18n-base-zh-cn
以上摘自H3C Magic NX30 Pro 官方 OpenWrt 安装教程 – Eric (ericclose.github.io)

操作完后,发现官方系统给的可用空间少得可怜。虽然学会了如何刷入系统等等操作,但是完全没有可玩性……于是继续寻找方案。

方案二、(直接用别人做好的,版本有点老了,但是好用)

也是获取SSH权限后:

刷入uboot.bin:

选择压缩包nx30pro.zip里的uboot.bin导入到/tmp/目录下

mtd write /tmp/uboot.bin FIP

可能会有报错,没有读写权限,可先执行以下命令:

# 同步仓库源,安装 kmod-mtd-rw 内核模块
root@OpenWrt:~# opkg update && opkg install kmod-mtd-rw
# 将分区配置为可读写
root@OpenWrt:~# insmod /lib/modules/$(uname -r)/mtd-rw.ko i_want_a_brick=1

备份系统,同方案一备份方法,这里省写:

运行以下命令,将tmp目录备份的原厂固件backup.img下载到电脑进行保存。备份的大小大概是60多m

dd if=/dev/mtd5 of=/tmp/backup.img

重启并进入刷写系统:

拔掉路由器电源,按住路由器背后的reset按钮不放再插入电源,10s后松开reset。

电脑有线连接路由器任意lan口,并设置电脑固定ip 192.168.1.2 网关192.168.1.1,浏览器进入192.168.1.1 即可进入uboot刷机界面

刷机界面选择压缩包nx30pro.zip里的nx30pro.bin,点击upload 等待刷入完成后点击update,路由器会自动重启,记得改回电脑ip为自动获取。

进入系统

默认ip 192.168.6.1 用户名root 密码password

参考:H3C NX30 PRO 闭源驱动Openwrt/GL.inet固件/刷回原厂方法-OPENWRT专版-恩山无线论坛 (right.com.cn)

这个完整,直接一股脑塞给你了,方便好用得一批,就这个了!

还原系统:

原厂固件(解压后在uboot刷机界面内像刷op一样刷入即可,我这个刷了会变成我的序列号,请先备份自己的):之前备份的方案一中的“mtd5_ubi”、方案二中的“backup.img”就是。

没有尝试过,因为并不想刷回原厂。

Po几张我刷成方案二的预览图:

后记

好了,另一个老的路由器就当作无线AP放在我家得另一头,这样整个房子都被无线覆盖了,无死角。

24-2-13:

增加了多个包,酌情使用,目前本人在用:immortalwrt-23.05.0-d955ec2253e1-mediatek-filogic-h3c_magic-nx30-pro-nmbm-squashfs-factory.bin,内核新,系统精简。

附上一个主题luci-theme-argon_1.8.3-20230710_all.ipk,好康的。
ssh中 opkg install luci-theme-argon_1.8.3-20230710_all.ipk 使用

定制OpenWrt包进行安装

OpenWrt软路由固件下载与在线定制编译

这个比较好用,可以定制包,比如像我这样注册后登录,在线编译后下载底部第一个蓝色按钮的包进行刷入。

评论

  1. 谢谢
    Windows Chrome 123.0.0.0
    2 周前
    2024-4-12 21:27:52

    大佬,刷官方openwrt固件视频教程有吗

    • 博主
      谢谢
      Windows Edge 123.0.0.0
      已编辑
      2 周前
      2024-4-12 21:33:35

      和上面文章中的一样呀,把uboot刷完后,进uboot把下载的官方固件刷入就好了。

  2. mophis
    Windows Chrome 123.0.0.0
    4 周前
    2024-3-30 23:50:02

    你好,方案二中openclash无内核,加载内核一直失败怎么回事?

    • 博主
      mophis
      iPhone Safari 17.3.1
      4 周前
      2024-3-31 8:40:43

      闪存比较小,先到clash里设置小闪存模式,然后覆盖设置github设置cdn加速,然后更新内核。

  3. Chau
    Windows Edge 122.0.0.0
    1 月前
    2024-3-26 23:16:45

    你好,我是用方案二但是刷入immortalwrt-23.05.0-d955ec2253e1-mediatek-filogic-h3c_magic-nx30-pro-nmbm-squashfs-factory.bin这个包,发现管理密码不对,这个有什么办法吗 还是我操作有问题

    • 博主
      Chau
      Windows Edge 122.0.0.0
      1 月前
      2024-3-26 23:48:07

      嗯,这个都是别人定制的包,有的密码是admin,有的密码是root,而且我使用后发现并不稳定,可以用我最新增加的第7点,定制OpenWrt包来使用。

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
Source: https://github.com/MengXi2021/Argon-Emoji-DailyNotes
Source: https://github.com/Ghost-chu/argon-huhu-emotions
Source: github.com/zhheo/Sticker-Heo
颜文字
Emoji
小恐龙
花!
每日手帐
呼呼
Heo
上一篇
下一篇