itb固件
itb固件简介
在openwrt新版本中,部分型号的设备编译出来的sysupgrade固件为itb格式,itb是一种新型的固件格式,相对于传统bin文件,配置更加灵活, 但是itb固件升级需要用对应的uboot,在openwrt官方发布的固件中,都对应发布了itb固件对应的uboot(fip文件),后面会讲解如何升级itb固件, 先来看看itb固件和bin固件的具体区别。
ITB (Image Tree Blob) 固件:
- 基于设备树(Device Tree)的固件格式
- 使用 Flattened Image Tree (FIT) 格式
- 本质是一个包含多个镜像的容器格式 下面是itb image定义示例代码:
IMAGE/sysupgrade.itb := append-kernel | \
fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | append-metadata
传统 .bin 固件:
- 单一二进制镜像文件
- 直接包含内核、根文件系统等所有内容
- 格式相对简单,是连续的二进制数据
下面是bin image定义示例代码:
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
fanchmwrt mt798x设备固件格式
fanchmwrt基于openwrt24.10.4较新的版本,所以固件包含了itb格式文件,无法通过不死uboot(传统uboot)升级,但是后面会对热门型号适配传统固件,如果不会itb固件升级的用户可以等后面的兼容固件。
| 型号 | bin固件 | itb固件 |
|---|---|---|
| Cudy TR3000(128&256) | ✅ | ✅ |
| JCG Q30 Pro | ✅ | ✅ |
| H3C NX30 Pro | ✅ | ✅ |
| Cetron CT3003 | ✅ | ❌ |
| CMCC RAX3000M(nand) | ❌ | ✅ |
| 小米AX3000T | ✅ | ✅ |
| 红米AX6000 | ✅ | ✅ |
| 360T7 | ❌ | ✅ |
| Nokia ea0326gmp | ❌ | ✅ |
| jdcloud re-cp-03 | ❌ | ✅ |
| OpenWrt One | ✅ | ✅ |
| GL-inet MT3000 | ✅ | ❌ |
| GL-inet MT6000 | ✅ | ❌ |
itb固件如何升级
- 升级openwrt官方发布的uboot 下载地址(以openwrt24.10.5为例):
https://downloads.openwrt.org/releases/24.10.5/targets/mediatek/filogic/
这是mt798x系列设备固件的下载地址,里面包含了preloader(bl2)和uboot(bl31),比如jcg_q30-pro的对应文件名为:
jcg_q30-pro-preloader.bin
jcg_q30-pro-bl31-uboot.fip
下载后通过当前系统后台mtd刷入,注意两个文件都要刷入,写入的分区不一样,具体要参考详细的刷入教程,对于小白用户不要随便操作,刷uboot是非常危险的行为, 除非自己又百分百把握没有弄错教程。 建议新手还是使用最开始刷机使用的uboot,等后续传统的bin固件。
- 刷入itb固件
如果你已经成功升级了openwrt官方的uboot,通过uboot升级itb固件了。 该uboot是没有web界面的,但是内置了tftp客户端,需要在电脑中开启tftp服务,并且要关闭防火墙。 将需要的recovery文件放在tftp根目录(注意名称不要随便修改,否则uboot不认识,直接保留openwrt那几个文件的原名称) 比如jcg q30的recovery文件名称为jcg_q30-pro-initramfs-recovery.itb 启动tftp服务后重启设备,