Hardware specification: SoC: MediaTek MT7986A 4x A53 Flash: ESMT F50L1G41LB 128MB RAM: MT40A512M16TB-062ER 1GB Ethernet: 2x 2.5G, 4x 1G Lan WiFi1: MT7976GN 2.4GHz 4T4R WiFi2: MT7976AN 5.2GHz 4T4R WiFi3: MT7915AN 5.8GHz 4T4R Button: Reset, WPS, Turbo USB: 1 x USB 3.0 Power: DC 12V 5A Flash instructions: 1. Execute the following operation to open nc shell: https://openwrt.org/inbox/toh/tp-link/xdr-6086#rooting 2. Replace the stock bootloader to OpenWrt's: dd bs=131072 conv=sync of=/dev/mtdblock9 if=/tmp/xxx-preloader.bin dd bs=131072 conv=sync of=/dev/mtdblock9 seek=28 if=/tmp/xxx-bl31-uboot.fip 3. Connect to your PC via the Gigabit port of the router, set a static ip on the ethernet interface of your PC. 4. Download the initramfs image, and restart the router, waiting for tftp recovery to complete. 5. After openwrt boots up, perform sysupgrade. Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn> Link: https://github.com/openwrt/openwrt/pull/15930 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
244 lines
4.8 KiB
Bash
Executable File
244 lines
4.8 KiB
Bash
Executable File
REQUIRE_IMAGE_METADATA=1
|
|
RAMFS_COPY_BIN='fitblk'
|
|
|
|
asus_initial_setup()
|
|
{
|
|
# initialize UBI if it's running on initramfs
|
|
[ "$(rootfs_type)" = "tmpfs" ] || return 0
|
|
|
|
ubirmvol /dev/ubi0 -N rootfs
|
|
ubirmvol /dev/ubi0 -N rootfs_data
|
|
ubirmvol /dev/ubi0 -N jffs2
|
|
ubimkvol /dev/ubi0 -N jffs2 -s 0x3e000
|
|
}
|
|
|
|
xiaomi_initial_setup()
|
|
{
|
|
# initialize UBI and setup uboot-env if it's running on initramfs
|
|
[ "$(rootfs_type)" = "tmpfs" ] || return 0
|
|
|
|
local mtdnum="$( find_mtd_index ubi )"
|
|
if [ ! "$mtdnum" ]; then
|
|
echo "unable to find mtd partition ubi"
|
|
return 1
|
|
fi
|
|
|
|
local kern_mtdnum="$( find_mtd_index ubi_kernel )"
|
|
if [ ! "$kern_mtdnum" ]; then
|
|
echo "unable to find mtd partition ubi_kernel"
|
|
return 1
|
|
fi
|
|
|
|
ubidetach -m "$mtdnum"
|
|
ubiformat /dev/mtd$mtdnum -y
|
|
|
|
ubidetach -m "$kern_mtdnum"
|
|
ubiformat /dev/mtd$kern_mtdnum -y
|
|
|
|
if ! fw_printenv -n flag_try_sys2_failed &>/dev/null; then
|
|
echo "failed to access u-boot-env. skip env setup."
|
|
return 0
|
|
fi
|
|
|
|
fw_setenv boot_wait on
|
|
fw_setenv uart_en 1
|
|
fw_setenv flag_boot_rootfs 0
|
|
fw_setenv flag_last_success 1
|
|
fw_setenv flag_boot_success 1
|
|
fw_setenv flag_try_sys1_failed 8
|
|
fw_setenv flag_try_sys2_failed 8
|
|
|
|
local board=$(board_name)
|
|
case "$board" in
|
|
xiaomi,mi-router-ax3000t|\
|
|
xiaomi,mi-router-wr30u-stock)
|
|
fw_setenv mtdparts "nmbm0:1024k(bl2),256k(Nvram),256k(Bdata),2048k(factory),2048k(fip),256k(crash),256k(crash_log),34816k(ubi),34816k(ubi1),32768k(overlay),12288k(data),256k(KF)"
|
|
;;
|
|
xiaomi,redmi-router-ax6000-stock)
|
|
fw_setenv mtdparts "nmbm0:1024k(bl2),256k(Nvram),256k(Bdata),2048k(factory),2048k(fip),256k(crash),256k(crash_log),30720k(ubi),30720k(ubi1),51200k(overlay)"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
platform_do_upgrade() {
|
|
local board=$(board_name)
|
|
|
|
case "$board" in
|
|
abt,asr3000|\
|
|
bananapi,bpi-r3|\
|
|
bananapi,bpi-r3-mini|\
|
|
bananapi,bpi-r4|\
|
|
bananapi,bpi-r4-poe|\
|
|
cmcc,rax3000m|\
|
|
jdcloud,re-cp-03|\
|
|
mediatek,mt7988a-rfb|\
|
|
nokia,ea0326gmp|\
|
|
openwrt,one|\
|
|
tplink,tl-xdr4288|\
|
|
tplink,tl-xdr6086|\
|
|
tplink,tl-xdr6088|\
|
|
tplink,tl-xtr8488|\
|
|
xiaomi,redmi-router-ax6000-ubootmod)
|
|
fit_do_upgrade "$1"
|
|
;;
|
|
acer,predator-w6|\
|
|
smartrg,sdg-8612|\
|
|
smartrg,sdg-8614|\
|
|
smartrg,sdg-8622|\
|
|
smartrg,sdg-8632|\
|
|
smartrg,sdg-8733|\
|
|
smartrg,sdg-8734)
|
|
CI_KERNPART="kernel"
|
|
CI_ROOTPART="rootfs"
|
|
emmc_do_upgrade "$1"
|
|
;;
|
|
asus,rt-ax59u|\
|
|
asus,tuf-ax4200|\
|
|
asus,tuf-ax6000)
|
|
CI_UBIPART="UBI_DEV"
|
|
CI_KERNPART="linux"
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
cudy,re3000-v1|\
|
|
cudy,wr3000-v1|\
|
|
yuncore,ax835)
|
|
default_do_upgrade "$1"
|
|
;;
|
|
glinet,gl-mt2500|\
|
|
glinet,gl-mt6000|\
|
|
glinet,gl-x3000|\
|
|
glinet,gl-xe3000)
|
|
CI_KERNPART="kernel"
|
|
CI_ROOTPART="rootfs"
|
|
emmc_do_upgrade "$1"
|
|
;;
|
|
h3c,magic-nx30-pro|\
|
|
jcg,q30-pro|\
|
|
mediatek,mt7981-rfb|\
|
|
netcore,n60|\
|
|
qihoo,360t7|\
|
|
xiaomi,mi-router-ax3000t-ubootmod|\
|
|
xiaomi,mi-router-wr30u-ubootmod)
|
|
CI_KERNPART="fit"
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
mercusys,mr90x-v1|\
|
|
tplink,re6000xd)
|
|
CI_UBIPART="ubi0"
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
ubnt,unifi-6-plus)
|
|
CI_KERNPART="kernel0"
|
|
EMMC_ROOT_DEV="$(cmdline_get_var root)"
|
|
emmc_do_upgrade "$1"
|
|
;;
|
|
xiaomi,mi-router-ax3000t|\
|
|
xiaomi,mi-router-wr30u-stock|\
|
|
xiaomi,redmi-router-ax6000-stock)
|
|
CI_KERN_UBIPART=ubi_kernel
|
|
CI_ROOT_UBIPART=ubi
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
zyxel,ex5601-t0-ubootmod)
|
|
CI_KERNPART="fit"
|
|
CI_ROOTPART="ubi_rootfs"
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
unielec,u7981-01*)
|
|
local rootdev="$(cmdline_get_var root)"
|
|
rootdev="${rootdev##*/}"
|
|
rootdev="${rootdev%p[0-9]*}"
|
|
case "$rootdev" in
|
|
mmc*)
|
|
CI_ROOTDEV="$rootdev"
|
|
CI_KERNPART="kernel"
|
|
CI_ROOTPART="rootfs"
|
|
emmc_do_upgrade "$1"
|
|
;;
|
|
*)
|
|
CI_KERNPART="fit"
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
esac
|
|
;;
|
|
*)
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
PART_NAME=firmware
|
|
|
|
platform_check_image() {
|
|
local board=$(board_name)
|
|
local magic="$(get_magic_long "$1")"
|
|
|
|
[ "$#" -gt 1 ] && return 1
|
|
|
|
case "$board" in
|
|
bananapi,bpi-r3|\
|
|
bananapi,bpi-r3-mini|\
|
|
bananapi,bpi-r4|\
|
|
bananapi,bpi-r4-poe|\
|
|
cmcc,rax3000m)
|
|
[ "$magic" != "d00dfeed" ] && {
|
|
echo "Invalid image type."
|
|
return 1
|
|
}
|
|
return 0
|
|
;;
|
|
*)
|
|
nand_do_platform_check "$board" "$1"
|
|
return $?
|
|
;;
|
|
esac
|
|
|
|
return 0
|
|
}
|
|
|
|
platform_copy_config() {
|
|
case "$(board_name)" in
|
|
bananapi,bpi-r3|\
|
|
bananapi,bpi-r3-mini|\
|
|
bananapi,bpi-r4|\
|
|
bananapi,bpi-r4-poe|\
|
|
cmcc,rax3000m)
|
|
if [ "$CI_METHOD" = "emmc" ]; then
|
|
emmc_copy_config
|
|
fi
|
|
;;
|
|
acer,predator-w6|\
|
|
glinet,gl-mt2500|\
|
|
glinet,gl-mt6000|\
|
|
glinet,gl-x3000|\
|
|
glinet,gl-xe3000|\
|
|
jdcloud,re-cp-03|\
|
|
smartrg,sdg-8612|\
|
|
smartrg,sdg-8614|\
|
|
smartrg,sdg-8622|\
|
|
smartrg,sdg-8632|\
|
|
smartrg,sdg-8733|\
|
|
smartrg,sdg-8734|\
|
|
ubnt,unifi-6-plus)
|
|
emmc_copy_config
|
|
;;
|
|
esac
|
|
}
|
|
|
|
platform_pre_upgrade() {
|
|
local board=$(board_name)
|
|
|
|
case "$board" in
|
|
asus,rt-ax59u|\
|
|
asus,tuf-ax4200|\
|
|
asus,tuf-ax6000)
|
|
asus_initial_setup
|
|
;;
|
|
xiaomi,mi-router-ax3000t|\
|
|
xiaomi,mi-router-wr30u-stock|\
|
|
xiaomi,redmi-router-ax6000-stock)
|
|
xiaomi_initial_setup
|
|
;;
|
|
esac
|
|
}
|