mt798x uboot 功能介绍
bl-mt798x项目基于mtk原厂提供的ATF及uboot源码,特点如下
uboot自带mtk原厂开发的简易webui恢复界面,可以通过webui直接刷入固件或者更新uboot,也可以使用串口+TFTP刷入固件
支持GL.iNet开发的通电后长按RESET按钮自动进入webui恢复界面的功能
支持多种Flash分区布局切换功能(仅支持spi-nand),可以在webui中切换不同的分区布局,完美兼容小米原厂固件
支持机型
路由器型号CPU型号BOARD名称默认IP地址360 T7/T7U/T7Mmt7981360t7192.168.1.1ZR3020mt7981livinet_zr-3020192.168.1.1Cetron CT3003mt7981cetron_ct3003192.168.1.1JCG Q30 PROmt7981jcg_q30192.168.1.1康佳 KOMI-A31mt7981konka_komi-a31192.168.2.1小米 WR30U/T/Mmt7981wr30u192.168.31.1乐橙 LC-HX3001mt7981imou_lc-hx3001192.168.1.1创联腾 CLT-R30B1mt7981clt_r30b1192.168.1.1安博通 ABT ASR3000mt7981abt_asr3000192.168.1.1CMCC A10mt7981cmcc_a10192.168.1.1CMCC RAX3000M (SPI-NAND)mt7981cmcc_rax3000m192.168.1.1CMCC RAX3000M (EMMC)mt7981cmcc_rax3000m-emmc192.168.1.1H3C NX30 Promt7981h3c_magic-nx30-pro192.168.1.1小米 AX3000Tmt7981ax3000t192.168.31.1红米 AX6000mt7986redmi_ax6000192.168.31.1
源码
https://github.com/hanwckf/bl-mt798x
下载
https://github.com/hanwckf/bl-mt798x/releases/latest
目前最新的release已经更新到2023.07版本的uboot,同时也提供2022.06的旧版uboot下载
编译说明
拉取源码,安装arm-gcc工具链。对于ubuntu/debian系统,可以使用以下命令安装
1
2
sudo apt update
sudo apt install gcc-aarch64-linux-gnu build-essential flex bison libssl-dev
运行源码目录下的
build.sh
开始自动编译,脚本参数如下
1
2
3
4
5
6
7
8
9
SOC=[mt7981|mt7986] BOARD= MULTI_LAYOUT=[0|1] ./build.sh
# SOC=mt7981 BOARD=360t7 ./build.sh
# SOC=mt7981 BOARD=wr30u MULTI_LAYOUT=1 ./build.sh
# SOC=mt7986 BOARD=redmi_ax6000 MULTI_LAYOUT=1 ./build.sh
# SOC: CPU型号,可以选择mt7981或mt7986
# BOARD: 路由器型号,根据支持机型表格里的BOARD名称填写
# MULTI_LAYOUT: 是否启用多种Flash分区布局支持,默认禁用。目前此功能仅支持小米wr30u和红米ax6000
# FIXED_MTDPARTS: 是否忽略mtdparts环境变量并固定Flash分区布局,默认开启,推荐开启
编译完成后,在
output
目录下生成可直接写入Flash的uboot FIP二进制文件
failsafe webui使用说明
按住路由器的RESET按钮后通电,保持至少15秒后松开,路由器会自动进入failsafe模式
因uboot不支持DHCP功能,需要把电脑的IP地址设置成固定IP,其中
对于小米路由器,应设置成
192.168.31.100
对于康佳KOMI-A31,应设置成
192.168.2.100
对于对于其它路由器,应设置成
192.168.1.100
将电脑连接到路由器任一LAN口,使用浏览器的隐身模式访问路由器的IP地址,其中
对于小米路由器,访问
192.168.31.1
对于康佳KOMI-A31,访问
192.168.2.1
对于其它路由器,访问
192.168.1.1
选择固件文件上传,支持sysupgrade或factory格式的固件,待上传完毕后点击开始刷机
刷机完成后,路由器会自动重启,请将电脑的IP地址重新设置成DHCP自动获取
如果要使用webui更新uboot,可以访问
http://<路由器IP>/uboot.html
(例如http://192.168.31.1/uboot.html
),选择FIP格式的uboot二进制并上传刷入即可,如下图所示
自定义failsafe模式触发按钮
默认情况下,开机后按住RESET按钮会进入failsafe模式,可设置glbtn_key
环境变量自定义failsafe模式触发按钮
1
2
3
# 在uboot串口控制台设置触发按钮为mesh按键并保存
setenv glbtn_key mesh
saveenv
也可以在openwrt系统内通过fw_setenv
命令设置uboot环境变量
1
2
# 在openwrt/immortalwrt系统内设置glbtn_key环境变量
fw_setenv glbtn_key mesh
串口控制台使用说明
uboot的默认波特率为115200,流控关闭
uboot启动阶段会显示mtk的启动菜单,此时选择最后一项,并再次按下任意键即可进入uboot控制台
使用
mtkupgrade fw
命令可以通过TFTP刷入固件
使用
mtkupgrade fip
命令可以通过TFTP刷入uboot
多种分区布局切换功能
uboot支持在dts里定义多种不同的Flash分区布局,并可在webui刷入固件时进行切换,此功能目前支持小米WR30U和红米AX6000
在uboot串口控制台中,可以使用showlayout
查看内置的分区布局信息。 环境变量mtd_layout_label
代表当前使用的分区布局,当mtd_layout_label
未设置时,默认使用default
分区布局
1
2
3
4
5
6
7
8
9
10
11
12
MT7981> showlayout
mtd label: default, mtdids: nmbm0=nmbm0, mtdparts: nmbm0:1024k(bl2),256k(Nvram),256k(Bdata),2048k(factory),2048k(fip),256k(crash),256k(crash_log),34816k(ubi_kernel),79872k(ubi),256k(KF)
mtd label: immortalwrt-112m, mtdids: nmbm0=nmbm0, mtdparts: nmbm0:1024k(bl2),256k(Nvram),256k(Bdata),2048k(factory),2048k(fip),256k(crash),256k(crash_log),112m(ubi),256k(KF)
mtd label: qwrt, mtdids: nmbm0=nmbm0, mtdparts: nmbm0:1024k(bl2),256k(Nvram),256k(Bdata),2048k(factory),2048k(fip),256k(crash),256k(crash_log),1024k(rsv0),110m(ubi)
MT7981> printenv mtd_layout_label
mtd_layout_label=immortalwrt-112m
# 手动设置mtd_layout_label环境变量并保存即可切换分区布局,与webui中选择分区布局的效果完全一致
# 必须在刷入固件之前设置正确的mtd_layout_label才能生效,例如:
# setenv mtd_layout_label default
# saveenv
小米WR30U多种分区布局固件兼容性
固件类型uboot (default)uboot (immortalwrt-112m)uboot (qwrt)小米原厂mtd8/mtd9备份文件√××immortalwrt-mt798x stock√××OpenWrt stock√××immortalwrt stock√××X-Wrt stock√××immortalwrt-mt798x 112m×√×GL.iNet by 237176253×√×X-Wrt 112m nmbm×√×OpenWrt 112m nmbm×√×immortalwrt 112m nmbm×√×X-Wrt 112m nmbm×√×QWRT××√OpenWrt ubootmod×××immortalwrt ubootmod×××X-Wrt ubootmod×××
红米AX6000多种分区布局固件兼容性
固件类型uboot (default)uboot (immortalwrt-110m)小米原厂mtd8/mtd9备份文件√×immortalwrt-mt798x stock√×OpenWrt stock√×immortalwrt stock√×X-Wrt stock√×immortalwrt-mt798x×√GL.iNet by 237176253×√X-Wrt ubootlayout×√OpenWrt ubootmod××immortalwrt ubootmod××X-Wrt ubootmod××
其它注意事项
刷入不同分区布局的固件,必须在uboot内切换分区布局并刷入固件,不得在原有系统内刷入
uboot支持刷入小米原厂mtd8/mtd9备份文件(可从此处下载),不支持
miwifi.com
官网下载的固件刷入小米原厂固件后,首次开机时会自动重启3次,请耐心等待
刷入小米原厂固件后,uboot env环境变量分区将会被小米原厂固件覆盖重写
刷入小米原厂固件后,不得在小米系统内升级固件,如果要更新原厂系统,必须通过uboot刷入新系统的mtd8/mtd9备份文件
由于OpenWrt主线的ubootmod固件未开启nmbm支持,因此不支持任何ubootmod分区布局的主线固件(包括OpenWrt, X-Wrt等带有ubootmod字样的固件),请使用OpenWrt主线提供的uboot启动ubootmod固件
mieeessi
校验提示文案
SanNdMan
校验提示文案
SanNdMan
校验提示文案
mieeessi
校验提示文案