diff options
Diffstat (limited to 'target/linux/mediatek/base-files/lib')
3 files changed, 556 insertions, 0 deletions
diff --git a/target/linux/mediatek/base-files/lib/preinit/03_preinit_do_ramips.sh b/target/linux/mediatek/base-files/lib/preinit/03_preinit_do_ramips.sh new file mode 100755 index 0000000..31ef5f8 --- /dev/null +++ b/target/linux/mediatek/base-files/lib/preinit/03_preinit_do_ramips.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +do_ramips() { + . /lib/ramips.sh + + ramips_board_detect +} + +boot_hook_add preinit_main do_ramips diff --git a/target/linux/mediatek/base-files/lib/ramips.sh b/target/linux/mediatek/base-files/lib/ramips.sh new file mode 100755 index 0000000..2691247 --- /dev/null +++ b/target/linux/mediatek/base-files/lib/ramips.sh @@ -0,0 +1,396 @@ +#!/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 + *"7Links PX-4885") + name="px4885" + ;; + *"8devices Carambola") + name="carambola" + ;; + *"Edimax 3g-6200n") + name="3g-6200n" + ;; + *"Edimax 3g-6200nl") + name="3g-6200nl" + ;; + *"Airlink101 AR725W") + name="ar725w" + ;; + *"AirLive Air3GII") + name="air3gii" + ;; + *"Edimax BR-6425") + name="br6425" + ;; + *"Allnet ALL0239-3G") + name="all0239-3g" + ;; + *"Allnet ALL0256N") + name="all0256n" + ;; + *"Allnet ALL5002") + name="all5002" + ;; + *"Allnet ALL5003") + name="all5003" + ;; + *"ARC FreeStation5") + name="freestation5" + ;; + *"Argus ATP-52B") + name="argus-atp52b" + ;; + *"AsiaRF AWM002 EVB") + name="awm002-evb" + ;; + *"AsiaRF AWM003 EVB") + name="awm003-evb" + ;; + *"AsiaRF AWAPN2403") + name="awapn2403" + ;; + *"Asus WL-330N") + name="wl-330n" + ;; + *"Asus WL-330N3G") + name="wl-330n3g" + ;; + *"Alpha ASL26555") + name="asl26555" + ;; + *"Aztech HW550-3G") + name="hw550-3g" + ;; + *"CY-SWR1100") + name="cy-swr1100" + ;; + *"DCS-930") + name="dcs-930" + ;; + *"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-600 B2") + name="dir-600-b2" + ;; + *"DIR-610 A1") + name="dir-610-a1" + ;; + *"DIR-620 A1") + name="dir-620-a1" + ;; + *"DIR-620 D1") + name="dir-620-d1" + ;; + *"DIR-615 H1") + name="dir-615-h1" + ;; + *"DIR-615 D") + name="dir-615-d" + ;; + *"DIR-645") + name="dir-645" + ;; + *"DIR-810L") + name="dir-810l" + ;; + *"DAP-1350") + name="dap-1350" + ;; + *"ESR-9753") + name="esr-9753" + ;; + *"Edimax BR-6475nD") + name="br-6475nd" + ;; + *"F7C027") + name="f7c027" + ;; + *"F5D8235 v1") + name="f5d8235-v1" + ;; + *"F5D8235 v2") + name="f5d8235-v2" + ;; + *"Hauppauge Broadway") + name="broadway" + ;; + *"Huawei D105") + name="d105" + ;; + *"La Fonera 2.0N") + name="fonera20n" + ;; + *"Asus RT-N14U") + name="rt-n14u" + ;; + *"Asus RT-N13U") + name="rt-n13u" + ;; + *"MoFi Network MOFI3500-3GN") + name="mofi3500-3gn" + ;; + *"HILINK HLK-RM04") + name="hlk-rm04" + ;; + *"HAME MPR-A1") + name="mpr-a1" + ;; + *"HAME MPR-A2") + name="mpr-a2" + ;; + *"Kingston MLW221") + name="mlw221" + ;; + *"Kingston MLWG2") + name="mlwg2" + ;; + *"Planex MZK-750DHP") + name="mzk-750dhp" + ;; + *"NBG-419N") + name="nbg-419n" + ;; + *"Netgear WNCE2001") + name="wnce2001" + ;; + *"NexAira BC2") + name="bc2" + ;; + *"NW718") + name="nw718" + ;; + *"Omnima EMB HPM") + name="omni-emb-hpm" + ;; + *"Omnima MiniEMBWiFi") + name="omni-emb" + ;; + *"Omnima MiniPlug") + name="omni-plug" + ;; + *"Petatel PSR-680W"*) + name="psr-680w" + ;; + *"Planex MZK-W300NH2"*) + name="mzk-w300nh2" + ;; + *"Poray IP2202") + name="ip2202" + ;; + *"Poray M3") + name="m3" + ;; + *"Poray M4") + name="m4" + ;; + *"Poray X5") + name="x5" + ;; + *"Poray X8") + name="x8" + ;; + *"PWH2004") + name="pwh2004" + ;; + *"Asus RP-N53") + name="rp-n53" + ;; + *"RT-G32 B1") + name="rt-g32-b1" + ;; + *"RT-N10+") + name="rt-n10-plus" + ;; + *"RT-N15") + name="rt-n15" + ;; + *"RT-N56U") + name="rt-n56u" + ;; + *"RUT5XX") + name="rut5xx" + ;; + *"Skyline SL-R7205"*) + name="sl-r7205" + ;; + *"Sparklan WCR-150GN") + name="wcr-150gn" + ;; + *"V22RW-2X2") + name="v22rw-2x2" + ;; + *"VoCore") + name="vocore" + ;; + *"W502U") + name="w502u" + ;; + *"WMR-300") + name="wmr300" + ;; + *"WHR-300HP2") + name="whr-300hp2" + ;; + *"WHR-600D") + name="whr-600d" + ;; + *"WHR-1166D") + name="whr-1166d" + ;; + *"WHR-G300N") + name="whr-g300n" + ;; + *"Sitecom WL-341 v3") + name="wl341v3" + ;; + *"Sitecom WL-351 v1 002") + name="wl-351" + ;; + *"Tenda 3G300M") + name="3g300m" + ;; + *"Tenda W306R V2.0") + name="w306r-v20" + ;; + *"Tenda W150M") + name="w150m" + ;; + *"TEW-691GR") + name="tew-691gr" + ;; + *"TEW-692GR") + name="tew-692gr" + ;; + *"Ralink V11ST-FE") + name="v11st-fe" + ;; + *"WLI-TX4-AG300N") + name="wli-tx4-ag300n" + ;; + *"WZR-AGL300NH") + name="wzr-agl300nh" + ;; + *"WR512-3GN-like router") + name="wr512-3gn" + ;; + *"UR-326N4G Wireless N router") + name="ur-326n4g" + ;; + *"UR-336UN Wireless N router") + name="ur-336un" + ;; + *"AWB WR6202") + name="wr6202" + ;; + *"XDX RN502J") + name="xdxrn502j" + ;; + *"HG255D") + name="hg255d" + ;; + *"V22SG") + name="v22sg" + ;; + *"WRTNODE") + name="wrtnode" + ;; + *"Wansview NCS601W") + name="ncs601w" + ;; + *"Sercomm NA930") + name="na930" + ;; + *"Zbtlink ZBT-WA05") + name="zbt-wa05" + ;; + *"ZBT WR8305RT") + name="wr8305rt" + ;; + *"Lenovo Y1") + name="y1" + ;; + *"Lenovo Y1S") + name="y1s" + ;; + *) + name="generic" + ;; + esac + + if [ "$name" == "generic" ]; then + machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /system type/ {print $2}' /proc/cpuinfo) + case "$machine" in + *"Ralink SoC") + name="ralink-soc" + ;; + *"MT7620") + name="ralink-soc" + ;; + *"MT7620a") + name="ralink-soc" + ;; + *"MT7621") + name="ralink-soc" + ;; + *"MT7628") + name="ralink-soc" + ;; + *"MT7688") + name="ralink-soc" + ;; + *"MT7615") + name="ralink-soc" + ;; + *"MT7623") + name="ralink-soc" + ;; + esac + + machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /Hardware/ {print $2}' /proc/cpuinfo) + case $machine in + *"MT7623") + name="ralink-soc" + ;; + esac + fi + + [ -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" +} + diff --git a/target/linux/mediatek/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/base-files/lib/upgrade/platform.sh new file mode 100755 index 0000000..58d6c82 --- /dev/null +++ b/target/linux/mediatek/base-files/lib/upgrade/platform.sh @@ -0,0 +1,151 @@ +# +# Copyright (C) 2010 OpenWrt.org +# + +. /lib/ramips.sh + +PART_NAME=firmware +RAMFS_COPY_DATA=/lib/ramips.sh + +platform_check_image() { + local board=$(ramips_board_name) + local magic="$(get_magic_long "$1")" + + [ "$#" -gt 1 ] && return 1 + + case "$board" in + ralink-soc | \ + 3g-6200n | \ + 3g-6200nl | \ + 3g300m | \ + w150m | \ + air3gii | \ + all0239-3g | \ + all0256n | \ + all5002 | \ + all5003 | \ + ar725w | \ + asl26555 | \ + awm002-evb | \ + awm003-evb | \ + awapn2403 | \ + bc2 | \ + broadway | \ + carambola | \ + d105 | \ + dcs-930 | \ + dir-300-b1 | \ + dir-300-b7 | \ + dir-320-b1 | \ + dir-600-b1 | \ + dir-600-b2 | \ + dir-615-h1 | \ + dir-615-d | \ + dir-620-a1 | \ + dir-620-d1 | \ + dir-810l | \ + dap-1350 | \ + esr-9753 | \ + f7c027 | \ + fonera20n | \ + rt-n13u | \ + freestation5 | \ + hw550-3g | \ + hg255d | \ + hlk-rm04 | \ + ip2202 | \ + m3 | \ + m4 | \ + mlw221 | \ + mlwg2 | \ + mofi3500-3gn | \ + mpr-a1 | \ + mpr-a2 | \ + mzk-w300nh2 | \ + nbg-419n | \ + nw718 | \ + omni-emb | \ + omni-emb-hpm | \ + omni-plug | \ + psr-680w | \ + px4885 | \ + rp-n53 | \ + rt-g32-b1 | \ + rt-n10-plus | \ + rt-n14u | \ + rt-n15 | \ + rt-n56u | \ + rut5xx | \ + sl-r7205 | \ + tew-691gr | \ + tew-692gr | \ + w306r-v20 |\ + w502u |\ + wr6202 |\ + v22rw-2x2 | \ + vocore | \ + wl341v3 | \ + wl-330n | \ + wl-330n3g | \ + wl-351 | \ + wnce2001 | \ + wli-tx4-ag300n | \ + whr-g300n |\ + ur-326n4g |\ + ur-336un |\ + wr512-3gn |\ + wmr300 |\ + wr8305rt |\ + wrtnode |\ + x5 |\ + x8 |\ + zbt-wa05 |\ + y1 |\ + y1s) + [ "$magic" != "27051956" ] && { + echo "Invalid image type." + return 1 + } + return 0 + ;; + cy-swr1100 |\ + dir-610-a1 |\ + dir-645) + [ "$magic" != "5ea3a417" ] && { + echo "Invalid image type." + return 1 + } + return 0 + ;; + br-6475nd) + [ "$magic" != "43535953" ] && { + echo "Invalid image type." + return 1 + } + return 0 + ;; + esac + + echo "Sysupgrade is not yet supported on $board." + return 1 +} + +platform_do_upgrade() { + local board=$(ramips_board_name) + + case "$board" in + *) + default_do_upgrade "$ARGV" + ;; + esac +} + +disable_watchdog() { + killall watchdog + ( ps | grep -v 'grep' | grep '/dev/watchdog' ) && { + echo 'Could not disable watchdog' + return 1 + } +} + +append sysupgrade_pre_upgrade disable_watchdog |