mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2024-11-25 14:36:14 +00:00
a6991fc7d2
The vendor u-boot knows nothing about UBI, and we used to have a fixed-size kernel partition for vendor u-boot and UBI for rootfs. However, that fixed partition becomes too small eventually, and expanding it requires complicated procedure. This commit changed the flash layout and added a second u-boot where the kernel supposed to be. Now the vendor u-boot chainloads our mainline u-boot, and our u-boot reads kernel+rootfs from UBI, verifies it, and boot into OpenWrt. There are two possible ways to convert from the old fw: Flash the factory image using mtd (provided by @rany2): mount -o remount,ro / mount -o remount,ro /overlay cd /tmp dd if=factory.bin bs=1M count=4 | mtd write - kernel dd if=factory.bin bs=1M skip=4 | mtd -r write - ubi Or, flash the 2nd u-boot via mtd and upload the firmware to the 2nd u-boot using tftp: 1. prepare a tftp server at 192.168.1.254 to serve the sysupgrade image: openwrt-mediatek-mt7622-xiaomi_redmi-router-ax6s-squashfs-sysupgrade.itb 2. upload the ubi-loader.itb to OpenWrt /tmp, and flash it to the old kernel partition: mtd -r write openwrt-mediatek-mt7622-xiaomi_redmi-router-ax6s-ubi-loader.itb 3. The router should reboot and flash the sysupgrade image via TFTP. Procedure for flashing from vendor firmware shouldn't change. Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
20 lines
361 B
Plaintext
20 lines
361 B
Plaintext
. /lib/functions.sh
|
|
|
|
case "$(board_name)" in
|
|
bananapi,bpi-r64)
|
|
uci set system.@system[0].compat_version="1.2"
|
|
uci commit system
|
|
;;
|
|
buffalo,wsr-2533dhp2)
|
|
uci set system.@system[0].compat_version="1.1"
|
|
uci commit system
|
|
;;
|
|
linksys,e8450-ubi|\
|
|
xiaomi,redmi-router-ax6s)
|
|
uci set system.@system[0].compat_version="2.0"
|
|
uci commit system
|
|
;;
|
|
esac
|
|
|
|
exit 0
|