499 字
2 分钟

云编译 256M闪存的360t7路由器immoralwrt固件

原机是128M闪存,扩容到256M之后,云编译将ubi分区在原基础上扩大128M#

  • overlay 在 UBI 里
  • 软件安装空间在 UBI 里
  • rootfs_data 在 UBI 里

分区结构#

原 128M分区:

| boot | ... | ubi (108M) | config | factory | log | 空6M |
0x00000000 ------------------------------------ 0x08000000

扩容 256M分区(扩大128M):

| boot | ... | ubi (108M + 128M) | config | factory | log | 空6M |
0x00000000 ------------------------------------ 0x10000000

immoralwrt 默认360t7的DTS配置#

partition@580000 {
label = "ubi";
reg = <0x0580000 0x6c00000>; #起始位置:0x0580000。分区大小:0x6c00000
compatible = "linux,ubi";
volumes {
ubi_rootdisk: ubi-volume-fit {
volname = "fit";
};
};
};
partition@7180000 {
label = "config";
reg = <0x7180000 0x0100000>;#起始位置=前一分区结束位置=ubi起始+ubi大小=0x0580000+0x6c00000
read-only;
};
partition@7280000 {
label = "factory";
reg = <0x7280000 0x0080000>;
read-only;
};
partition@7300000 {
label = "log";
reg = <0x7300000 0x0700000>;
read-only;
};

简单计算扩128M#

前提条件:除了ubi分区扩大之外,其他分区大小不变

128MB=0x800 0000

ubi分区:

  • 起始=原来位置
  • 大小=原来大小+扩大的128M=0x6c00000+128MB=0x6c00000+0x800 0000=0x0ec00000

config分区:

  • 起始=ubi分区结束位置=ubi分区起始+ubi扩大128M后大小=0x0580000+0x0ec00000=0x0f180000
  • 大小=不变

修改DTS#

#!/bin/bash
set -eux
cd openwrt
echo "==== 360T7 Flash 256MB Patch Start ===="
DTS="target/linux/mediatek/dts/mt7981b-qihoo-360t7.dts"
if [ ! -f "$DTS" ]; then
DTS="$(grep -RIl --include='*.dts' '360T7\|qihoo' target/linux/mediatek | head -n 1 || true)"
fi
[ -f "$DTS" ] || { echo "ERROR: Cannot find 360T7 DTS file"; exit 1; }
echo "Using DTS: $DTS"
# 目标:256MiB=0x10000000,保留与原 128MiB 一样的尾部空洞 0x0600000
# UBI: start 0x0580000, end 0x0f180000 => size 0x0ec00000
# config: start 0x0f180000 size 0x0100000
# factory:start 0x0f280000 size 0x0080000
# log: start 0x0f300000 size 0x0700000 (end 0x0fa00000)
# gap: 0x0fa00000 ~ 0x10000000 (0x0600000)
# 1) 扩大 UBI
sed -i \
-e 's/reg = <0x0580000 0x6c00000>;/reg = <0x0580000 0x0ec00000>;/' \
"$DTS"
# 2) 移动尾部分区(同时改 node 名更干净;不改也能编,但建议改)
sed -i \
-e 's/partition@7180000/partition@f180000/g' \
-e 's/reg = <0x7180000 0x0100000>;/reg = <0x0f180000 0x0100000>;/' \
"$DTS"
sed -i \
-e 's/partition@7280000/partition@f280000/g' \
-e 's/reg = <0x7280000 0x0080000>;/reg = <0x0f280000 0x0080000>;/' \
"$DTS"
sed -i \
-e 's/partition@7300000/partition@f300000/g' \
-e 's/reg = <0x7300000 0x0700000>;/reg = <0x0f300000 0x0700000>;/' \
"$DTS"
echo "==== Patch Result (key lines) ===="
grep -nE 'label = "(ubi|config|factory|log)"|reg = <0x0580000' "$DTS" || true
echo "==== 360T7 Flash 256MB Patch Done ===="

保存为diy_360t7_256m.sh,供action调用

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

云编译 256M闪存的360t7路由器immoralwrt固件
https://blog.rax.pp.ua/posts/云编译-256m闪存的360t7路由器immoralwrt固件/
作者
DH
发布于
2026-02-18
许可协议
CC BY-NC-SA 4.0
最后更新于 2026-02-18,距今已过 36 天

部分内容可能已过时

目录