1、MTK76X8 原厂SDK包的NOR FALSH分区信息;
root@OpenWrt:/# cat /proc/mtd
dev: size erasesize name
mtd0: 01000000 00010000 "ALL"
mtd1: 00030000 00010000 "Bootloader"
mtd2: 00010000 00010000 "Config"
mtd3: 00010000 00010000 "Factory"
mtd4: 00fb0000 00010000 "firmware"
mtd5: 00e7c089 00010000 "rootfs"
mtd6: 00aa0000 00010000 "rootfs_data"
root@OpenWrt:/#
root@OpenWrt:/#
root@OpenWrt:/# df -h
Filesystem Size Used Available Use% Mounted on
rootfs 10.6M 440.0K 10.2M 4% /
/dev/root 4.0M 4.0M 0 100% /rom
tmpfs 29.9M 120.0K 29.8M 0% /tmp
/dev/mtdblock6 10.6M 440.0K 10.2M 4% /overlay
overlayfs:/overlay 10.6M 440.0K 10.2M 4% /
tmpfs 512.0K 0 512.0K 0% /dev
/dev/mtdblock5 4.0M 4.0M 0 100% /mnt/mtdblock5
root@OpenWrt:/#
2、MTK76X8 基于openwrt 源生态的NOR FALSH分区信息;
root@TroLink:~# cat /proc/mtd
dev: size erasesize name
mtd0: 00030000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00010000 00010000 "factory"
mtd3: 00fb0000 00010000 "firmware"
mtd4: 00114e93 00010000 "kernel"
mtd5: 00e9b16d 00010000 "rootfs"
mtd6: 00b90000 00010000 "rootfs_data"
root@TroLink:~#
root@TroLink:~# df -h
Filesystem Size Used Available Use% Mounted on
rootfs 11.6M 404.0K 11.2M 3% /
/dev/root 3.3M 3.3M 0 100% /rom
tmpfs 30.0M 80.0K 30.0M 0% /tmp
/dev/mtdblock6 11.6M 404.0K 11.2M 3% /overlay
overlayfs:/overlay 11.6M 404.0K 11.2M 3% /
tmpfs 512.0K 0 512.0K 0% /dev
root@TroLink:~#
3、MTK7621(MT7603+MT7613) 原厂SDK包的NOR FALSH分区信息;
root@OpenWrt:/# cat /proc/mtd
dev: size erasesize name
mtd0: 02000000 00010000 "ALL"
mtd1: 00030000 00010000 "Bootloader"
mtd2: 00010000 00010000 "Config"
mtd3: 00010000 00010000 "Factory"
mtd4: 01fb0000 00010000 "firmware"
mtd5: 01ca1064 00010000 "rootfs"
mtd6: 017e0000 00010000 "rootfs_data"
root@OpenWrt:/#
root@OpenWrt:/# df -h
Filesystem Size Used Available Use% Mounted on
rootfs 59.4M 168.0K 59.2M 0% /
/dev/root 4.8M 4.8M 0 100% /rom
tmpfs 59.4M 236.0K 59.2M 0% /tmp
tmpfs 59.4M 168.0K 59.2M 0% /tmp/root
overlayfs:/tmp/root 59.4M 168.0K 59.2M 0% /
tmpfs 512.0K 0 512.0K 0% /dev
root@OpenWrt:/#
4、MTK7621(MT7603+MT7613)基于openwrt 源生态的NOR FALSH分区信息;
root@OpenWrt:/# cat /proc/mtd
dev: size erasesize name
mtd0: 00030000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00010000 00010000 "factory"
mtd3: 00fb0000 00010000 "firmware"
mtd4: 0029fcb5 00010000 "kernel"
mtd5: 00d1034b 00010000 "rootfs"
mtd6: 006e0000 00010000 "rootfs_data"
root@OpenWrt:/#
5、MTK7621(MT7915+MT7975)WIFI6 基于原厂的LEDE NOR FALSH分区信息;
root@LEDE:/# cat /proc/mtd
dev: size erasesize name
mtd0: 00030000 00010000 "Bootloader"
mtd1: 00010000 00010000 "Config"
mtd2: 00040000 00010000 "Factory"
mtd3: 03f70000 00010000 "firmware"
mtd4: 00340000 00010000 "kernel"
mtd5: 03c30000 00010000 "rootfs"
mtd6: 03560000 00010000 "rootfs_data"
root@LEDE:/#
root@LEDE:/# df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 7.0M 7.0M 0 100% /rom
tmpfs 120.5M 1.5M 119.0M 1% /tmp
/dev/mtdblock6 53.4M 1.4M 52.0M 3% /overlay
overlayfs:/overlay 53.4M 1.4M 52.0M 3% /
tmpfs 512.0K 0 512.0K 0% /dev
root@LEDE:/#
6、MTK7621(MT7915+MT7975)WIFI6 基于OpenWrt源生态的NOR FALSH分区信息;
root@ZhouWu:~# cat /proc/mtd
dev: size erasesize name
mtd0: 00030000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00040000 00010000 "factory"
mtd3: 00fb0000 00010000 "firmware"
mtd4: 002b8e86 00010000 "kernel"
mtd5: 00cf717a 00010000 "rootfs"
mtd6: 00580000 00010000 "rootfs_data"
root@ZhouWu:~#
root@ZhouWu:~# df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 7.5M 7.5M 0 100% /rom
tmpfs 122.1M 100.0K 122.0M 0% /tmp
tmpfs 122.1M 84.0K 122.0M 0% /tmp/root
tmpfs 512.0K 0 512.0K 0% /dev
/dev/mtdblock6 5.5M 308.0K 5.2M 5% /overlay
overlayfs:/overlay 5.5M 308.0K 5.2M 5% /
root@ZhouWu:~#
7、MTK7981 原厂SDK包的NOR FALSH分区信息;
root@OpenWrt:/# cat /proc/mtd
dev: size erasesize name
mtd0: 00040000 00010000 "BL2"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 000b0000 00010000 "Factory"
mtd3: 00080000 00010000 "FIP"
mtd4: 01d80000 00010000 "firmware"
mtd5: 00350000 00010000 "kernel"
mtd6: 01a20000 00010000 "rootfs"
mtd7: 00f20000 00010000 "rootfs_data"
root@OpenWrt:/#
8、MTK7981 基于immortalwrti源代码的NOR FALSH分区信息;
root@ZhouWu:/# cat /proc/mtd
dev: size erasesize name
mtd0: 00040000 00010000 "BL2"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 000b0000 00010000 "Factory"
mtd3: 00080000 00010000 "FIP"
mtd4: 01e80000 00010000 "firmware"
mtd5: 00360000 00010000 "kernel"
mtd6: 01b20000 00010000 "rootfs"
mtd7: 005d0000 00010000 "rootfs_data"
root@ZhouWu:/#
root@ZhouWu:/# df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 21.5M 21.5M 0 100% /rom
tmpfs 112.6M 1.1M 111.5M 1% /tmp
tmpfs 112.6M 136.0K 112.5M 0% /tmp/root
tmpfs 512.0K 0 512.0K 0% /dev
/dev/mtdblock7 5.8M 388.0K 5.4M 7% /overlay
overlayfs:/overlay 5.8M 388.0K 5.4M 7% /
root@ZhouWu:/#
MTK7628/MT7621 FALSH标准分区
&spi0 {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <10000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x0 0x30000>;
//read-only;
};
partition@30000 {
label = "u-boot-env";
reg = <0x30000 0x10000>;
//read-only;
};
factory: partition@40000 {
label = "factory";
reg = <0x40000 0x10000>;
//read-only;
};
partition@50000 {
compatible = "denx,uimage";
label = "firmware";
/* reg = <0x50000 0x7b0000>; 8M FLASH */
/* reg = <0x50000 0xfb0000>; 16M FLASH */
/* reg = <0x50000 0x1fb0000>; 32M FLASH */
reg = <0x50000 0x3fb0000>; //64M FALSH */
};
};
};
};
<------------ Openwrt使用mtd和sysupgrade刷机、备份恢复系统配置、修改mac地址 -------------->
1、查看当前系统分区
# cat /proc/mtd
dev: size erasesize name
mtd0: 00030000 00010000 "u-boot"
mtd1: 00010000 00010000 "u-boot-env"
mtd2: 00010000 00010000 "factory"
mtd3: 00fb0000 00010000 "firmware"
mtd4: 00185df7 00010000 "kernel"
mtd5: 00e2a209 00010000 "rootfs"
mtd6: 00810000 00010000 "rootfs_data"
2、备份恢复openwrt系统配置
#备份自定义系统信息,包括新装软件包,读文件可以用cat 操作,但是写文件不能用cat操作
dd if=/dev/mtd6 of=/mnt/overlay.bin
#or
cat /dev/mtd0 > /mnt/overlay.bin
#恢复备份文件
mtd -r write /mnt/overlay.bin rootfs_data
#仅备份系统配置
sysupgrade -b /mnt/back.tar.gz
#恢复系统配置
sysupgrade -f /mnt/back.tar.gz
3、恢复Openwrt系统默认设置:
#删除/overlay分区所有文件,重启即恢复默认设置
rm -rf /overlay/* && reboot
#使用命令恢复出厂设置,重启。firstboot = /sbin/jffs2reset $@
jffs2reset -y && reboot -f
#or
firstboot reboot
#使用mtd清除/overlay分区信息后重启即恢复默认设置
mtd -r erase rootfs_data && reboot -f
4、刷新系统:
#使用mtd更新系统
mtd -r write openwrt.bin firmware
#使用sysupgrade更新系统,推荐
sysupgrade openwrt.bin
5、修改MAC地址:
#查看mac地址
cat /sys/class/ieee80211/phy0/macaddress
#or
hexdump -s 4 -n 6 -C /dev/mtd2 | head -n 1 | sed 's/\ \ /:/g' | cut -d: -f 2 | sed 's/\ /:/g'
#hexdump -s 偏移4个字节,-n 读取6个字节长度
#head -n 显示1行
#sed 's/\ \ /:/g' 将两个空格替换为一个冒号,在此为了取第二个域的mac地址
#cut -d: 自定义分隔符‘:’,默认制表符;-f 与-d一起使用,指定显示哪个区域。
#sed 's/\ /:/g' 将单空格替换为冒号进行显示
#修改Factory分区
#读取Factory分区
dd if=/dev/mtd2 of=/tmp/factory.bin
#or
cat /dev/mtd2 > /tmp/factory.bin
#修改Factory分区可写
vi target/linux/(xxx)/dts/xxx.dts
#去掉Factory分区的read-only
#修改Mac地址
#......通过二进制编辑器或者代码等等修改
#写回Factory分区
mtd write /tmp/factory.bin factory