磊科 N60 Pro 刷入 OpenWrt 官方固件
自从六年前换上 MikroTik RB750Gr3 之后就几乎没再折腾过给路由器(硬件)刷 OpenWrt,对于路由器刷机的技艺已经逐渐生疏。最近要帮同学的办公室换个路由器,选中了磊科 N60 Pro 这款容易刷的路由。
因为我有强迫症,所以没有选择网上别人提供在网盘上的固件,而是选择了 OpenWrt 官方的固件,正是因为网上关于刷 OP 官方固件的资料比较少,加上我很久没有碰 OpenWrt 了,差点刷成砖了(其实没有,我误以为是砖了),因此写下这篇记录,给同样有强迫症的朋友一些刷机参考。
下载固件
首先固件和 U-Boot 我是在 OpenWrt 官网 https://firmware-selector.openwrt.org/?target=mediatek%2Ffilogic&id=netcore_n60-pro 下载的(我下载的是彼时最新的 25.12.3 这个版本)。
具体需要下载的文件是:
SYSUPGRADE # openwrt-25.12.3-mediatek-filogic-netcore_n60-pro-squashfs-sysupgrade.itb
BL31-UBOOT.FIP # openwrt-25.12.3-mediatek-filogic-netcore_n60-pro-bl31-uboot.fip
KERNEL # openwrt-25.12.3-mediatek-filogic-netcore_n60-pro-initramfs-recovery.itb备份原厂固件
使用 ssh 连接到路由器,用户名是 useradmin,密码是管理后台密码,如果没有修改过 LAN 网段,那应该是用下面这个命令连接:
ssh [email protected]使用 cat /proc/mtd 我们可以查看原厂固件分区信息:
useradmin@N60PRO:~# cat /proc/mtd
dev: size erasesize name
mtd0: 08000000 00020000 "spi0.1"
mtd1: 00100000 00020000 "BL2"
mtd2: 00080000 00020000 "u-boot-env"
mtd3: 00200000 00020000 "Factory"
mtd4: 00200000 00020000 "FIP"
mtd5: 07280000 00020000 "ubi"然后用 dd 命令备份到 /tmp 目录(内存)中:
dd if=/dev/mtd1 of=/tmp/mtd1_BL2.bin
dd if=/dev/mtd2 of=/tmp/mtd2_ubootenv.bin
dd if=/dev/mtd3 of=/tmp/mtd3_Factory.bin # 必备,包含硬件信息,要还原原厂固件,其他分区可以用别人,但是这个只能用自己的
dd if=/dev/mtd5 of=/tmp/mtd5_ubi.bin
# 网上其他教程没提,但我有备份的两个分区
dd if=/dev/mtd0 of=/tmp/mtd0_spi.bin
dd if=/dev/mtd4 of=/tmp/mtd4_FIP.bin然后将备份文件拷贝出来,Windows 应该直接用 WinSCP 就能完成了,如果你是用 macOS 或者 Ubuntu Desktop 之类的,你可能会发现 scp 复制不了,因为路由器没有安装 sftp-server,有一个比较 tricky 的方式:从路由器上面去 scp 到你的电脑😂
刷入 U-Boot 和擦除系统分区
把前面下载的 uboot.fip (此处省略很长的文件名)文件上传到路由器 /tmp/,同样的,Windows 用 WinSCP,macOS/Linux 则是从路由器侧 scp。
假设你把 uboot.fip 上传到路由器并重命名成了 /tmp/uboot.fip,接下来刷入 U-Boot:
# 注意命令末尾有个大写的 FIP 不要漏了
mtd write /tmp/uboot.fip FIP注意:上面的命令执行完之前不要断电,不然就砖了
接下来这一步跟很多教程不一样,很多刷第三方 U-Boot 和固件的教程到这一步就会让你断电、顶住 reset 孔再上电 8 秒再松开,但是刷 OpenWrt 官方固件的流程不太一样
执行完之后擦除系统分区(好像是因为 OP 官方 uboot 的工作原理是如果系统分区是空白的,那它就会进入 recovery 模式;并且 BL31-UBOOT 是不带 WebUI 的):
mtd erase /dev/mtd5在擦除完系统之后,重启路由器:
reboot刷入 OpenWrt 官方固件
前面的操作执行完之后,你的路由器就已经没有系统了,看起来像是变“砖”了,莫慌,接下来正式刷入系统。
这时候需要你的电脑插入网线,并且手动设置 IP 为:192.168.1.254、子网掩码 255.255.255.0、网关 192.168.1.1。
你可能会有叛逆心理,IP 没有设置成 192.168.1.254,并且你会试图用浏览器访问 http://192.168.1.1,然后你会发现访问不了,这时你可能急了:变砖了?!
为什么我会知道,因为我一开始就是那个有叛逆心理的人(手动捂脸)。
这里啰嗦几句原理:正如前面所说,OpenWrt 官方的 BL31-UBOOT 是不带 WebUI 的,所以不像网上其他教程一样是通过网页上传固件来刷入,它是用 TFTP 协议来请求固件并刷入的。
我是怎么知道 192.168.1.254 这个 IP 的?因为“变砖”之后我找了一些教程,有提到 TFTP 这事,我突然想到(好吧,其实是 Gemini 老师提示)用 Wireshark 抓包看看,看到一条广播:
ARP 60 Who has 192.168.1.254? Tell 192.168.1.1这时我就确信路由器没有变砖!于是把 IP 改为 192.168.1.254,再次抓包,果然发现 192.168.1.1 用 TFTP 协议请求固件:openwrt-mediatek-filogic-netcore_n60-pro-initramfs-recovery.itb,也就是我们前面下载的 KERNEL 那个文件,重命名去掉版本号即可。
Windows 用 tftpd64 这个工具选择 xxx-initramfs-recovery.itb 这个文件所在目录即可。macOS 用户可以用系统自带的 TFTP 工具(Linux Desktop 用户应该无需我多言,好吧,其实是我也不知道,要你自己研究下怎么启动 TFTP Server),具体操作如下:
先将下载的固件(...-initramfs-...)拷贝到 /private/tftpboot 这个目录(macOS 默认的 TFTP 路径)并重命名成前面抓包看到的文件名,然后执行:
sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
# 如果你不放心,可以用以下命令检查启动状态,如果看到输出,说明服务已起:
sudo lsof -i udp:69
# 以及刷机完成后关闭 TFTP Server 服务的命令也提前告诉你
sudo launchctl unload -F /System/Library/LaunchDaemons/tftp.plist等待一小会,你就会发现路由器的灯在闪,再过一会就变成常亮了,这时候已经刷入了,IP 可以改回 DHCP 设置,然后浏览器访问 http://192.168.1.1,亲切的 LuCI 界面就会出现了。
这时你会注意到,顶部有个警告提示你当前使用的是用于初始化的固件,重启后可能会丢失数据 balabala,点击它给的链接跳转进更新系统界面,上传前面下载的 SYSUPGRADE 固件(比如我这次用到的 openwrt-25.12.3-mediatek-filogic-netcore_n60-pro-squashfs-sysupgrade.itb)让它自己更新下就可以正常使用了
参考资料: