9b35815f0f
This device features both a 2.4 and 5Ghz radio, and supports 802.11a/b/g/n/ac modes. It has 5 Gb-Ethernet ports and a USB 3.0 host port. It is powered by the Mediatek MT7621 SoC, and the MT7602E and MT7612E wifi chipsets, together with 128MB of RAM and 16 MB of SPI Flash. The stock firmware is in fact based on some openwrt barrier breaker, with a mediatek SDK kernel, and an afoundry custom made web interface (not LuCI based). Firmware update page on the stock web interface can not accept sysupgrade images, it bricks the device. At this point, the only working solution I found was to connect to the serial console port (available on J4 header) and to use opkg to install dropbear. Then scp the sysupgrade file in the device's /tmp and run sysupgrade from console without preserving configuration files. Signed-off-by: Francois Goudal <francois@goudal.net>
688 lines
9 KiB
Bash
Executable file
688 lines
9 KiB
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# Copyright (C) 2010-2013 OpenWrt.org
|
|
#
|
|
|
|
RAMIPS_BOARD_NAME=
|
|
RAMIPS_MODEL=
|
|
|
|
ramips_board_detect() {
|
|
local machine
|
|
local name
|
|
|
|
machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /proc/cpuinfo)
|
|
|
|
case "$machine" in
|
|
*"11AC NAS Router")
|
|
name="11acnas"
|
|
;;
|
|
*"3G150B")
|
|
name="3g150b"
|
|
;;
|
|
*"3G300M")
|
|
name="3g300m"
|
|
;;
|
|
*"3g-6200n")
|
|
name="3g-6200n"
|
|
;;
|
|
*"3g-6200nl")
|
|
name="3g-6200nl"
|
|
;;
|
|
*"A5-V11")
|
|
name="a5-v11"
|
|
;;
|
|
*"Ai-BR100")
|
|
name="ai-br100"
|
|
;;
|
|
*"Air3GII")
|
|
name="air3gii"
|
|
;;
|
|
*"ALL0239-3G")
|
|
name="all0239-3g"
|
|
;;
|
|
*"ALL0256N (4M)")
|
|
name="all0256n-4M"
|
|
;;
|
|
*"ALL0256N (8M)")
|
|
name="all0256n-8M"
|
|
;;
|
|
*"ALL5002")
|
|
name="all5002"
|
|
;;
|
|
*"ALL5003")
|
|
name="all5003"
|
|
;;
|
|
*"AR670W")
|
|
name="ar670w"
|
|
;;
|
|
*"AR725W")
|
|
name="ar725w"
|
|
;;
|
|
*"ASL26555 (8M)")
|
|
name="asl26555-8M"
|
|
;;
|
|
*"ASL26555 (16M)")
|
|
name="asl26555-16M"
|
|
;;
|
|
*"ATP-52B")
|
|
name="atp-52b"
|
|
;;
|
|
*"AWAPN2403")
|
|
name="awapn2403"
|
|
;;
|
|
*"AWM002 EVB (4M)")
|
|
name="awm002-evb-4M"
|
|
;;
|
|
*"AWM002 EVB (8M)")
|
|
name="awm002-evb-8M"
|
|
;;
|
|
*"AWM003 EVB")
|
|
name="awm003-evb"
|
|
;;
|
|
*"BC2")
|
|
name="bc2"
|
|
;;
|
|
*"BR-6425")
|
|
name="br-6425"
|
|
;;
|
|
*"BR-6475nD")
|
|
name="br-6475nd"
|
|
;;
|
|
*"Broadway")
|
|
name="broadway"
|
|
;;
|
|
*"C20i")
|
|
name="c20i"
|
|
;;
|
|
*"C50")
|
|
name="c50"
|
|
;;
|
|
*"Carambola")
|
|
name="carambola"
|
|
;;
|
|
*"CF-WR800N")
|
|
name="cf-wr800n"
|
|
;;
|
|
*"CS-QR10")
|
|
name="cs-qr10"
|
|
;;
|
|
*"CY-SWR1100")
|
|
name="cy-swr1100"
|
|
;;
|
|
*"D105")
|
|
name="d105"
|
|
;;
|
|
*"D240")
|
|
name="d240"
|
|
;;
|
|
*"DAP-1350")
|
|
name="dap-1350"
|
|
;;
|
|
*"DB-WRT01")
|
|
name="db-wrt01"
|
|
;;
|
|
*"DCH-M225")
|
|
name="dch-m225"
|
|
;;
|
|
*"DCS-930")
|
|
name="dcs-930"
|
|
;;
|
|
*"DCS-930L B1")
|
|
name="dcs-930l-b1"
|
|
;;
|
|
*"Digineo AC1200 Pro")
|
|
name="ac1200pro"
|
|
;;
|
|
*"DIR-300 B1")
|
|
name="dir-300-b1"
|
|
;;
|
|
*"DIR-300 B7")
|
|
name="dir-300-b7"
|
|
;;
|
|
*"DIR-320 B1")
|
|
name="dir-320-b1"
|
|
;;
|
|
*"DIR-600 B1")
|
|
name="dir-600-b1"
|
|
;;
|
|
*"DIR-610 A1")
|
|
name="dir-610-a1"
|
|
;;
|
|
*"DIR-615 D")
|
|
name="dir-615-d"
|
|
;;
|
|
*"DIR-615 H1")
|
|
name="dir-615-h1"
|
|
;;
|
|
*"DIR-620 A1")
|
|
name="dir-620-a1"
|
|
;;
|
|
*"DIR-620 D1")
|
|
name="dir-620-d1"
|
|
;;
|
|
*"DIR-645")
|
|
name="dir-645"
|
|
;;
|
|
*"DIR-810L")
|
|
name="dir-810l"
|
|
;;
|
|
*"DIR-860L B1")
|
|
name="dir-860l-b1"
|
|
;;
|
|
*"Dovado Tiny AC")
|
|
name="tiny-ac"
|
|
;;
|
|
*"DuZun DM06")
|
|
name="duzun-dm06"
|
|
;;
|
|
*"DWR-512 B")
|
|
name="dwr-512-b"
|
|
;;
|
|
*"E1700")
|
|
name="e1700"
|
|
;;
|
|
*"ESR-9753")
|
|
name="esr-9753"
|
|
;;
|
|
*"EW1200")
|
|
name="ew1200"
|
|
;;
|
|
*"EX2700")
|
|
name="ex2700";
|
|
;;
|
|
*"F5D8235 v1")
|
|
name="f5d8235-v1"
|
|
;;
|
|
*"F5D8235 v2")
|
|
name="f5d8235-v2"
|
|
;;
|
|
*"F7C027")
|
|
name="f7c027"
|
|
;;
|
|
*"FireWRT")
|
|
name="firewrt"
|
|
;;
|
|
*"Fonera 2.0N")
|
|
name="fonera20n"
|
|
;;
|
|
*"FreeStation5")
|
|
name="freestation5"
|
|
;;
|
|
*"GL-MT300A")
|
|
name="gl-mt300a"
|
|
;;
|
|
*"GL-MT300N")
|
|
name="gl-mt300n"
|
|
;;
|
|
*"GL-MT750")
|
|
name="gl-mt750"
|
|
;;
|
|
*"HC5661")
|
|
name="hc5661"
|
|
;;
|
|
*"HC5661A")
|
|
name="hc5661a"
|
|
;;
|
|
*"HC5761")
|
|
name="hc5761"
|
|
;;
|
|
*"HC5861")
|
|
name="hc5861"
|
|
;;
|
|
*"HC5962")
|
|
name="hc5962"
|
|
;;
|
|
*"HG255D")
|
|
name="hg255d"
|
|
;;
|
|
*"HLK-RM04")
|
|
name="hlk-rm04"
|
|
;;
|
|
*"HPM")
|
|
name="hpm"
|
|
;;
|
|
*"HT-TM02")
|
|
name="ht-tm02"
|
|
;;
|
|
*"HW550-3G")
|
|
name="hw550-3g"
|
|
;;
|
|
*"IP2202")
|
|
name="ip2202"
|
|
;;
|
|
*"JHR-N805R")
|
|
name="jhr-n805r"
|
|
;;
|
|
*"JHR-N825R")
|
|
name="jhr-n825r"
|
|
;;
|
|
*"JHR-N926R")
|
|
name="jhr-n926r"
|
|
;;
|
|
*"M3")
|
|
name="m3"
|
|
;;
|
|
*"M4 (4M)")
|
|
name="m4-4M"
|
|
;;
|
|
*"M4 (8M)")
|
|
name="m4-8M"
|
|
;;
|
|
*"MediaTek LinkIt Smart 7688")
|
|
linkit="$(dd bs=1 skip=1024 count=12 if=/dev/mtd2 2> /dev/null)"
|
|
if [ "${linkit}" = "LINKITS7688D" ]; then
|
|
name="linkits7688d"
|
|
RAMIPS_MODEL="${machine} DUO"
|
|
else
|
|
name="linkits7688"
|
|
fi
|
|
;;
|
|
*"Memory 2 Move")
|
|
name="m2m"
|
|
;;
|
|
*"Mercury MAC1200R v2")
|
|
name="mac1200r-v2"
|
|
;;
|
|
*"MicroWRT")
|
|
name="microwrt"
|
|
;;
|
|
*"MiniEMBPlug")
|
|
name="miniembplug"
|
|
;;
|
|
*"MiniEMBWiFi")
|
|
name="miniembwifi"
|
|
;;
|
|
*"MiWiFi Mini")
|
|
name="miwifi-mini"
|
|
;;
|
|
*"MiWiFi Nano")
|
|
name="miwifi-nano"
|
|
;;
|
|
*"MLW221")
|
|
name="mlw221"
|
|
;;
|
|
*"MLWG2")
|
|
name="mlwg2"
|
|
;;
|
|
*"MOFI3500-3GN")
|
|
name="mofi3500-3gn"
|
|
;;
|
|
*"MPR-A1")
|
|
name="mpr-a1"
|
|
;;
|
|
*"MPR-A2")
|
|
name="mpr-a2"
|
|
;;
|
|
*"MR-102N")
|
|
name="mr-102n"
|
|
;;
|
|
*"MR200")
|
|
name="mr200"
|
|
;;
|
|
*"MT7620a + MT7530 evaluation"*)
|
|
name="mt7620a_mt7530"
|
|
;;
|
|
*"MT7620a V22SG"*)
|
|
name="mt7620a_v22sg"
|
|
;;
|
|
*"MT7621 evaluation"*)
|
|
name="mt7621"
|
|
;;
|
|
*"MT7628AN evaluation"*)
|
|
name="mt7628"
|
|
;;
|
|
*"MT7688 evaluation"*)
|
|
name="mt7688"
|
|
;;
|
|
*"MZK-750DHP")
|
|
name="mzk-750dhp"
|
|
;;
|
|
*"MZK-DP150N")
|
|
name="mzk-dp150n"
|
|
;;
|
|
*"MZK-EX300NP")
|
|
name="mzk-ex300np"
|
|
;;
|
|
*"MZK-EX750NP")
|
|
name="mzk-ex750np"
|
|
;;
|
|
*"MZK-W300NH2"*)
|
|
name="mzk-w300nh2"
|
|
;;
|
|
*"MZK-WDPR"*)
|
|
name="mzk-wdpr"
|
|
;;
|
|
*"NA930")
|
|
name="na930"
|
|
;;
|
|
*"NBG-419N")
|
|
name="nbg-419n"
|
|
;;
|
|
*"NBG-419N v2")
|
|
name="nbg-419n2"
|
|
;;
|
|
*"Newifi-D1")
|
|
name="newifi-d1"
|
|
;;
|
|
*"NCS601W")
|
|
name="ncs601w"
|
|
;;
|
|
*"NixcoreX1 (8M)")
|
|
name="nixcore-x1-8M"
|
|
;;
|
|
*"NixcoreX1 (16M)")
|
|
name="nixcore-x1-16M"
|
|
;;
|
|
*"NW718")
|
|
name="nw718"
|
|
;;
|
|
*"Onion Omega2")
|
|
name="omega2"
|
|
;;
|
|
*"Onion Omega2+")
|
|
name="omega2p"
|
|
;;
|
|
*"OY-0001")
|
|
name="oy-0001"
|
|
;;
|
|
*"PBR-D1")
|
|
name="pbr-d1"
|
|
;;
|
|
*"PBR-M1")
|
|
name="pbr-m1"
|
|
;;
|
|
*"PSG1208")
|
|
name="psg1208"
|
|
;;
|
|
*"PSG1218")
|
|
name="psg1218"
|
|
;;
|
|
*"PSR-680W"*)
|
|
name="psr-680w"
|
|
;;
|
|
*"PWH2004")
|
|
name="pwh2004"
|
|
;;
|
|
*"PX-4885 (4M)")
|
|
name="px-4885-4M"
|
|
;;
|
|
*"PX-4885 (8M)")
|
|
name="px-4885-8M"
|
|
;;
|
|
*"Q7")
|
|
name="zte-q7"
|
|
;;
|
|
*"RB750Gr3")
|
|
name="rb750gr3"
|
|
;;
|
|
*"RE6500")
|
|
name="re6500"
|
|
;;
|
|
*"RN502J")
|
|
name="xdxrn502j"
|
|
;;
|
|
*"RP-N53")
|
|
name="rp-n53"
|
|
;;
|
|
*"RT5350F-OLinuXino")
|
|
name="rt5350f-olinuxino"
|
|
;;
|
|
*"RT5350F-OLinuXino-EVB")
|
|
name="rt5350f-olinuxino-evb"
|
|
;;
|
|
*"RT-G32 B1")
|
|
name="rt-g32-b1"
|
|
;;
|
|
*"RT-N10+")
|
|
name="rt-n10-plus"
|
|
;;
|
|
*"RT-N13U")
|
|
name="rt-n13u"
|
|
;;
|
|
*"RT-N14U")
|
|
name="rt-n14u"
|
|
;;
|
|
*"RT-N15")
|
|
name="rt-n15"
|
|
;;
|
|
*"RT-N56U")
|
|
name="rt-n56u"
|
|
;;
|
|
*"RUT5XX")
|
|
name="rut5xx"
|
|
;;
|
|
*"SamKnows Whitebox 8")
|
|
name="sk-wb8"
|
|
;;
|
|
*"SAP-G3200U3")
|
|
name="sap-g3200u3"
|
|
;;
|
|
*"SL-R7205"*)
|
|
name="sl-r7205"
|
|
;;
|
|
*"TEW-691GR")
|
|
name="tew-691gr"
|
|
;;
|
|
*"TEW-692GR")
|
|
name="tew-692gr"
|
|
;;
|
|
*"TEW-714TRU")
|
|
name="tew-714tru"
|
|
;;
|
|
*"Timecloud")
|
|
name="timecloud"
|
|
;;
|
|
*"UBNT-ERX")
|
|
name="ubnt-erx"
|
|
;;
|
|
*"UR-326N4G")
|
|
name="ur-326n4g"
|
|
;;
|
|
*"UR-336UN")
|
|
name="ur-336un"
|
|
;;
|
|
*"V11ST-FE")
|
|
name="v11st-fe"
|
|
;;
|
|
*"V22RW-2X2")
|
|
name="v22rw-2x2"
|
|
;;
|
|
*"VoCore (8M)")
|
|
name="vocore-8M"
|
|
;;
|
|
*"VoCore (16M)")
|
|
name="vocore-16M"
|
|
;;
|
|
*"VoCore2")
|
|
name="vocore2"
|
|
;;
|
|
*"VR500")
|
|
name="vr500"
|
|
;;
|
|
*"W150M")
|
|
name="w150m"
|
|
;;
|
|
*"W2914NS v2")
|
|
name="w2914nsv2"
|
|
;;
|
|
*"W306R V2.0")
|
|
name="w306r-v20"
|
|
;;
|
|
*"W502U")
|
|
name="w502u"
|
|
;;
|
|
*"WCR-1166DS")
|
|
name="wcr-1166ds"
|
|
;;
|
|
*"WCR-150GN")
|
|
name="wcr-150gn"
|
|
;;
|
|
*"WF-2881")
|
|
name="wf-2881"
|
|
;;
|
|
*"WHR-1166D")
|
|
name="whr-1166d"
|
|
;;
|
|
*"WHR-300HP2")
|
|
name="whr-300hp2"
|
|
;;
|
|
*"WHR-600D")
|
|
name="whr-600d"
|
|
;;
|
|
*"WHR-G300N")
|
|
name="whr-g300n"
|
|
;;
|
|
*"Widora-NEO")
|
|
name="widora-neo"
|
|
;;
|
|
*"WiTi")
|
|
name="witi"
|
|
;;
|
|
*"WIZARD 8800")
|
|
name="wizard8800"
|
|
;;
|
|
*"WizFi630A")
|
|
name="wizfi630a"
|
|
;;
|
|
*"WL-330N")
|
|
name="wl-330n"
|
|
;;
|
|
*"WL-330N3G")
|
|
name="wl-330n3g"
|
|
;;
|
|
*"WL-341 v3")
|
|
name="wl-341v3"
|
|
;;
|
|
*"WL-351 v1 002")
|
|
name="wl-351"
|
|
;;
|
|
*"WL-WN575A3")
|
|
name="wl-wn575a3"
|
|
;;
|
|
*"WLI-TX4-AG300N")
|
|
name="wli-tx4-ag300n"
|
|
;;
|
|
*"WLR-6000")
|
|
name="wlr-6000"
|
|
;;
|
|
*"WMR-300")
|
|
name="wmr-300"
|
|
;;
|
|
*"WN3000RPv3")
|
|
name="wn3000rpv3"
|
|
;;
|
|
*"WNCE2001")
|
|
name="wnce2001"
|
|
;;
|
|
*"WNDR3700v5")
|
|
name="wndr3700v5"
|
|
;;
|
|
*"WR512-3GN (4M)")
|
|
name="wr512-3gn-4M"
|
|
;;
|
|
*"WR512-3GN (8M)")
|
|
name="wr512-3gn-8M"
|
|
;;
|
|
*"WR6202")
|
|
name="wr6202"
|
|
;;
|
|
*"WRH-300CR")
|
|
name="wrh-300cr"
|
|
;;
|
|
*"WRTNODE")
|
|
name="wrtnode"
|
|
;;
|
|
*"WRTnode2R")
|
|
name="wrtnode2r"
|
|
;;
|
|
*"WRTnode2P")
|
|
name="wrtnode2p"
|
|
;;
|
|
*"WSR-1166DHP")
|
|
name="wsr-1166"
|
|
;;
|
|
*"WSR-600DHP")
|
|
name="wsr-600"
|
|
;;
|
|
*"WT1520 (4M)")
|
|
name="wt1520-4M"
|
|
;;
|
|
*"WT1520 (8M)")
|
|
name="wt1520-8M"
|
|
;;
|
|
*"WT3020 (4M)")
|
|
name="wt3020-4M"
|
|
;;
|
|
*"WT3020 (8M)")
|
|
name="wt3020-8M"
|
|
;;
|
|
*"WZR-AGL300NH")
|
|
name="wzr-agl300nh"
|
|
;;
|
|
*"X5")
|
|
name="x5"
|
|
;;
|
|
*"X8")
|
|
name="x8"
|
|
;;
|
|
*"Y1")
|
|
name="y1"
|
|
;;
|
|
*"Y1S")
|
|
name="y1s"
|
|
;;
|
|
*"ZBT-APE522II")
|
|
name="zbt-ape522ii"
|
|
;;
|
|
*"ZBT-CPE102")
|
|
name="zbt-cpe102"
|
|
;;
|
|
*"ZBT-WA05")
|
|
name="zbt-wa05"
|
|
;;
|
|
*"ZBT-WE826")
|
|
name="zbt-we826"
|
|
;;
|
|
*"ZBT-WG2626")
|
|
name="zbt-wg2626"
|
|
;;
|
|
*"ZBT-WG3526")
|
|
name="zbt-wg3526"
|
|
;;
|
|
*"ZBT-WR8305RT")
|
|
name="zbt-wr8305rt"
|
|
;;
|
|
*"ZyXEL Keenetic Omni")
|
|
name="kn_rc"
|
|
;;
|
|
*"ZyXEL Keenetic Omni II")
|
|
name="kn_rf"
|
|
;;
|
|
*"ZyXEL Keenetic Viva")
|
|
name="kng_rc"
|
|
;;
|
|
*"YK1")
|
|
name="youku-yk1"
|
|
;;
|
|
*)
|
|
name="generic"
|
|
;;
|
|
esac
|
|
|
|
[ -z "$RAMIPS_BOARD_NAME" ] && RAMIPS_BOARD_NAME="$name"
|
|
[ -z "$RAMIPS_MODEL" ] && RAMIPS_MODEL="$machine"
|
|
|
|
[ -e "/tmp/sysinfo/" ] || mkdir -p "/tmp/sysinfo/"
|
|
|
|
echo "$RAMIPS_BOARD_NAME" > /tmp/sysinfo/board_name
|
|
echo "$RAMIPS_MODEL" > /tmp/sysinfo/model
|
|
}
|
|
|
|
ramips_board_name() {
|
|
local name
|
|
|
|
[ -f /tmp/sysinfo/board_name ] && name=$(cat /tmp/sysinfo/board_name)
|
|
[ -z "$name" ] && name="unknown"
|
|
|
|
echo "${name%-[0-9]*M}"
|
|
}
|