找回密码
 立即注册
img_loading
智能检测中

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
glinet
查看: 3369|回复: 12

贝尔 EA0326GMP 刷官方 ImmortalWrt 教程

[复制链接]
发表于 2024-11-27 14:38 | 显示全部楼层 |阅读模式
本帖最后由 yhyxwgy 于 2024-11-27 15:21 编辑

机器介绍
贝尔 EA0326GMP 是一款中国移动定制的WiFi 6 路由器,采用喜闻乐见的 MT7981B 方案,具有 128MB NAND 与 256MB DDR,无线规格为 2x2 MIMO AX3000。由于其优良的硬件规格与低廉的价格,该路由器具备了一定的可玩性与折腾价值。

本教程旨在提供一个刷写官方OpenWrt/ImmortalWrt与其ubootmod的方法,为喜欢使用OpenWrt/ImmortalWrt opkg 生态的用户提供参考。

原始教程在:https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=40e7fab9e4a294882f198cb7fb5bc5eecee26ac8,commit message 为具体步骤。

解锁SSH
首先下载配置文件:https://firmware.download.immortalwrt.eu.org/cnsztl/mediatek/filogic/openwrt-mediatek-mt7981-nokia-ea0326gmp-enable-ssh.tar.gz
将电脑网卡IP 设为192.168.10.100,子网掩码24255.255.255.0。登录路由器后台192.168.10.1,导入刚刚下载的配置文件。

导入完成后,你会发现web界面登不上了,密码总是错误,不过这已经不重要了。此时已经可以通过ssh连接到路由器。


备份 SPI NAND
在路由器原厂系统环境(以下简称stock固件)下查看SPI分区表:
  1. #cat /proc/mtd
  2. dev:    size  erasesize  name
  3. mtd0: 08000000 00020000 "spi0.0"
  4. mtd1: 00100000 00020000 "BL2"
  5. mtd2: 00080000 00020000 "u-boot-env"
  6. mtd3: 00200000 00020000 "Factory"
  7. mtd4: 00200000 00020000 "FIP"
  8. mtd5: 00200000 00020000 "Config"
  9. mtd6: 00200000 00020000 "Config2"
  10. mtd7: 00c00000 00020000 "Aos-net"
  11. mtd8: 00c00000 00020000 "bvasPlugin"
  12. mtd9: 05680000 00020000 "ubi"
复制代码

因为已经把整个 SPI NAND 映射到mtd0,所以只要备份mtd0就行了。由于stock固件可用内存过小,强行备份会oom,所以选择使用TCP发送数据,PC端上位机接收来备份。

因为路由器自带的busybox是阉割版,没有netcat,所以我们下一个静态链接的arm64 busybox: https://busybox.net/downloads/binaries/1.31.0-defconfig-multiarch-musl/busybox-armv8l ,用scp传到路由器的/tmp目录。
  1. cd /tmp
  2. # 赋执行权限
  3. chmod +x /tmp/busybox-armv8l
  4. dd if=/dev/mtdblock0 bs=1M | ./busybox-armv8l nc 192.168.10.100 5000
复制代码


在pc端下个netcat,具体参考:https://cloud.tencent.com/developer/article/2182697

我使用MSYS2,更加简单方便。
  1. pacman -Syyu
  2. pacman -S openbsd-netcat pv
  3. nc -l -p 5000 | pv > spi0_0.img
复制代码

至此固件备份结束。

刷入OpenWrt/ImmortalWrt
收集文件
首先前往官方 FirmwareSelector (如果你有能力,可以直接前往国内镜像站下载相关文件)
需要获取的文件如下:

文件短名
下载链接
备注
preloader.bin
路由器的第一级Bootloader,由MTK提供的SDK提供。一般的厂商没有对其做出修改的能力,不刷也行。
bl31-uboot.fip 引导程序映像。 用于启动时加载操作系统的底层软件。
initramfs-recovery.itb 集成最小文件系统的 Linux 内核。适用于首次安装或故障恢复。
squashfs-sysupgrade.itb 完整的系统,用于刷写新系统或更新现有系统。

此外,我们还需要一个TFTP服务器,建议使用 Tftpd64 : https://bitbucket.org/phjounin/tftpd64/downloads/tftpd64.464.zip

刷写 U-Boot
下载 bl31-uboot.fip,并在stock固件环境执行以下命令刷入FIP分区:
  1. mtd write immortalwrt-23.05.4-mediatek-filogic-nokia_ea0326gmp-bl31-uboot.fip FIP
复制代码

进入 Initramfs 恢复环境
将PC的IP设置为 192.168.1.254,子网掩码255.255.255.0

将下载好的initramfs-recovery.itb文件去除版本前缀,即去掉23.05.4-,重命名之后的文件名应该像这样:immortalwrt-mediatek-filogic-nokia_ea0326gmp-initramfs-recovery.itb。把该文件放置在 Tftpd64 的根目录,并启动 Tftpd 服务器。这一步最好关闭防火墙,不然很大可能失败。

拔路由器电源,找个针按住路由器上的 Reset ,插电开机。

过一会儿 tftp 服务器会读条,等待 Initramfs 恢复环境启动。等到路由器上的LAN灯亮起,就成功启动了,此时已经成功一半。

重新分区并刷入系统
SSH 连接192.168.1.1进入 Initramfs 恢复环境。首先新建目录mkdir -p /tmp/flash,scp上传4个刷机所需文件。

获取权限
安装kmod-mtd-rw,去你对应版本的包源里面找,比如 https://mirrors.nju.edu.cn/immortalwrt/releases/23.05.4/targets/mediatek/filogic/packages/
SCP 传到/tmp/flash,执行
  1. opkg install --nodeps kmod-mtd-rw*.ipk
复制代码
安装,再执行
  1. insmod /lib/modules/$(uname -r)/mtd-rw.ko i_want_a_brick=1
复制代码
以安装内核模块,获取 mtd 的写权限。
执行以下命令确认分区表:
  1. root@ImmortalWrt:/tmp/flash# cat /proc/mtd
  2. dev:    size  erasesize  name
  3. mtd0: 00100000 00020000 "bl2"
  4. mtd1: 00080000 00020000 "u-boot-env"
  5. mtd2: 00200000 00020000 "factory"
  6. mtd3: 00200000 00020000 "fip"
  7. mtd4: 00200000 00020000 "config"
  8. mtd5: 00200000 00020000 "config2"
  9. mtd6: 07680000 00020000 "ubi"
复制代码

这里你的输出结果如果跟我的不一样,建议你不要进行下一步操作,以免破坏原厂分区。

建立 U-Boot 环境变量分区
执行以下命令重新建立 UBI 子卷:
  1. ubidetach -p /dev/mtd6 && ubiformat /dev/mtd6 -y && ubiattach -p /dev/mtd6
  2. ubimkvol /dev/ubi0 -n 0 -N ubootenv -s 128KiB
  3. ubimkvol /dev/ubi0 -n 1 -N ubootenv2 -s 128KiB
复制代码

创建片上恢复分区
这一步是可选的。如果您不想使用 ubootmod 提供的 NAND 恢复启动功能,可以跳过此步骤。

但是假如你的路由器出现问题,你就要参照“进入 Initramfs 恢复环境” 一节,使用 tftp 进入 Initramfs 恢复环境。如果你刷了,在启动时按住 Reset 直接就能进入 Initramfs 恢复环境而无需在PC上启动 tftp 服务器。代价是ImmortalWrt系统会损失约10MB的可用空间,这是一个 Trade-off。

执行以下命令以创建片上恢复分区。这里恢复分区的大小要跟initramfs-recovery.itb的大小对应。即11520KiB
  1. ubimkvol /dev/ubi0 -n 2 -N recovery -s 11520KiB
  2. ubiupdatevol /dev/ubi0_2 /tmp/flash/initramfs-recovery.itb
复制代码

刷入主分区
保险起见再刷一遍preloader与ubootmod:
  1. mtd write preloader.bin bl2
  2. mtd write bl31-uboot.fip fip
复制代码

最后使用sysupgrade命令刷写主分区,该命令执行后会自动重启。
  1. sysupgrade -n squashfs-sysupgrade.itb
复制代码

自动重启完成后,访问192.168.1.1,享受openwrt吧!
最后放一张配置完的图




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2024-11-28 07:58 来自手机 | 显示全部楼层
这个太麻烦了。有没有大佬出品的非官方宣布的刷机教程。就是开ssh,然后进ssh刷入UBoot,然后进图形UBoot涮入固件的那种?
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2024-11-29 08:07 | 显示全部楼层
支持

只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2024-12-6 03:33 | 显示全部楼层
支持楼主,感谢楼主给出的教材。

如果我已经按照如下的教程刷了订制版的uboot和openwrt,请问如何刷到官方的openwrt?

诺基亚贝尔AX3000(EA0326GMP)刷机教程: https://blog.wwang.pw/post/EA0326GMP

点评

在uboot状态下,浏览器192.168.1.1/uboot.html,然后上传官方uboot升级后,刷官方系统.  详情 回复 发表于 2024-12-6 09:39
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2024-12-6 09:39 | 显示全部楼层
roberthuang 发表于 2024-12-6 03:33
支持楼主,感谢楼主给出的教材。

如果我已经按照如下的教程刷了订制版的uboot和openwrt,请问如何刷到官方 ...

在uboot状态下,浏览器192.168.1.1/uboot.html,然后上传官方uboot升级后,刷官方系统.

点评

谢谢回复! 想和你确认一下,是通过浏览器192.168.1.1/uboot.html来刷bl31-uboot.fip这个文件吗?  详情 回复 发表于 2024-12-7 03:01
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2024-12-6 19:40 | 显示全部楼层
程旨在提供一个刷写官方OpenWrt/ImmortalWrt与其ubootmod的方
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2024-12-7 03:01 | 显示全部楼层
本帖最后由 roberthuang 于 2024-12-7 03:02 编辑
wicosy 发表于 2024-12-6 09:39
在uboot状态下,浏览器192.168.1.1/uboot.html,然后上传官方uboot升级后,刷官方系统. ...
谢谢回复!

想和你确认一下,是通过浏览器192.168.1.1/uboot.html来刷bl31-uboot.fip这个官方uboot文件吗?

点评

如果刷了hackckf的uboot的,建议先刷一遍initramfs,进入initramfs后,再按照我的教程刷。 因为如果直接在hackckf的uboot刷openwrt/immortalwrt的ubootmod,不会初始化ubootenv分区。  详情 回复 发表于 2024-12-7 18:29
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-12-7 18:29 | 显示全部楼层
roberthuang 发表于 2024-12-7 03:01
谢谢回复!

想和你确认一下,是通过浏览器192.168.1.1/uboot.html来刷bl31-uboot.fip这个官方uboot文件吗 ...

如果刷了hackckf的uboot的,建议先刷一遍initramfs,进入initramfs后,再按照我的教程刷。
因为如果直接在hackckf的uboot刷openwrt/immortalwrt的ubootmod,不会初始化ubootenv分区。

点评

大佬,我想再次和你确认,生怕搞错了将路由器变砖。你建议“建议先刷一遍initramfs,进入initramfs后,再按照我的教程刷。”是忽略掉下面教程的第一步吗?如果是,第一步在什么时候做。请详细指导,目前大多数人都已  详情 回复 发表于 2024-12-9 22:20
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2024-12-9 22:20 | 显示全部楼层
yhyxwgy 发表于 2024-12-7 18:29
如果刷了hackckf的uboot的,建议先刷一遍initramfs,进入initramfs后,再按照我的教程刷。
因为如果直接 ...

大佬,我想再次和你确认,生怕搞错了将路由器变砖。你建议“建议先刷一遍initramfs,进入initramfs后,再按照我的教程刷。”是忽略掉下面教程的第一步吗?如果是,第一步在什么时候做。请详细指导,目前大多数人都已经刷了hackckf的uboot。

1.        刷写 U-Boot
2.        进入 Initramfs 恢复环境
3.        重新分区并刷入系统
4.        获取权限
5.        建立 U-Boot 环境变量分区
6.        创建片上恢复分区
7.        刷入主分区
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-12-15 01:11 | 显示全部楼层
首先对我的不及时回复感到抱歉。本人为大四学生,最近在准备考试,没有登录论坛。
你理解的完全没有问题。
有的机器官方还做了额外适配,刷了hackckf的,可以直接下载专用固件。以红米AX6000为例:


选择Custom Uboot Layout即可。

有人爱用hackckf uboot,想必也是看重其便利的web界面,相比设立tftp服务器,门槛还是低了很多。这其实是mtk自己维护的uboot分支里面自带的一个小功能,源码在 https://github.com/uimye/u-boot-mtk/blob/master/net/httpd.c
因为没进入uboot主线,所以openwrt ubootmod没有添加此功能。uboot要服务广大嵌入式设备,并不是所有的soc都有如此丰富的功能:硬件UART、RMGII PHY等等。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2024-12-28 06:46 | 显示全部楼层
本帖最后由 zj0ppd 于 2024-12-28 06:48 编辑

我晕了怎么比半年前的教学还多了3000字

正常流程就是开启ssh
执行命令 刷入uboot
搞定

只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2025-1-9 11:50 | 显示全部楼层
真是详细,刷官方 OpenWRT
必须刷这个 bl31-uboot.fip 才行么

点评

请查看我的上一条回复。 如果您选择hackckf的uboot,就刷入Custom Uboot Layout固件。 如果您选择官方ubootmod,就刷入Openwrt Uboot Layout。 hackckf的uboot支持大overlay分区,可用空间约100MB。 如果要使用片上  详情 回复 发表于 2025-1-16 17:18
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-16 17:18 | 显示全部楼层
fejich 发表于 2025-1-9 11:50
真是详细,刷官方 OpenWRT
必须刷这个 bl31-uboot.fip 才行么

请查看我的上一条回复。
如果您选择hackckf的uboot,就刷入Custom Uboot Layout固件。
如果您选择官方ubootmod,就刷入Openwrt Uboot Layout。
hackckf的uboot支持大overlay分区,可用空间约100MB。
如果要使用片上恢复分区,即救砖不需要电脑起tftp服务器,那么就有110MB的可用空间。
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛

只谈技术、莫论政事!切勿转播谣言!为了你也为了他人。
只谈技术、莫论政事!(点击见详情) 切记不要随意传播谣言,把自己的日子过安稳了就行,为了自己好也为了大家好。 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。

查看 »

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2025-5-30 00:34

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表