From 626d9efa74685720020e816f3a917b7591d3cf7a Mon Sep 17 00:00:00 2001 From: James <> Date: Sat, 26 Sep 2015 12:29:31 +0100 Subject: trunk-47048 --- target/linux/ramips/base-files/etc/board.d/01_leds | 253 ++++++++++++ .../linux/ramips/base-files/etc/board.d/02_network | 362 ++++++++++++++++ target/linux/ramips/base-files/etc/diag.sh | 196 +++++++++ .../etc/hotplug.d/firmware/10-rt2x00-eeprom | 50 +++ .../ramips/base-files/etc/hotplug.d/usb/10-motion | 1 + target/linux/ramips/base-files/etc/inittab | 3 + .../etc/uci-defaults/09_fix-seama-header | 22 + .../base-files/lib/preinit/03_preinit_do_ramips.sh | 9 + .../base-files/lib/preinit/04_handle_checksumming | 56 +++ .../lib/preinit/07_set_preinit_iface_ramips | 34 ++ target/linux/ramips/base-files/lib/ramips.sh | 460 +++++++++++++++++++++ .../ramips/base-files/lib/upgrade/platform.sh | 201 +++++++++ 12 files changed, 1647 insertions(+) create mode 100755 target/linux/ramips/base-files/etc/board.d/01_leds create mode 100755 target/linux/ramips/base-files/etc/board.d/02_network create mode 100644 target/linux/ramips/base-files/etc/diag.sh create mode 100644 target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom create mode 100644 target/linux/ramips/base-files/etc/hotplug.d/usb/10-motion create mode 100644 target/linux/ramips/base-files/etc/inittab create mode 100644 target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header create mode 100644 target/linux/ramips/base-files/lib/preinit/03_preinit_do_ramips.sh create mode 100644 target/linux/ramips/base-files/lib/preinit/04_handle_checksumming create mode 100644 target/linux/ramips/base-files/lib/preinit/07_set_preinit_iface_ramips create mode 100755 target/linux/ramips/base-files/lib/ramips.sh create mode 100755 target/linux/ramips/base-files/lib/upgrade/platform.sh (limited to 'target/linux/ramips/base-files') diff --git a/target/linux/ramips/base-files/etc/board.d/01_leds b/target/linux/ramips/base-files/etc/board.d/01_leds new file mode 100755 index 0000000..a9959e3 --- /dev/null +++ b/target/linux/ramips/base-files/etc/board.d/01_leds @@ -0,0 +1,253 @@ +#!/bin/sh + +. /lib/functions/uci-defaults-new.sh +. /lib/ramips.sh + +set_usb_led() { + ucidef_set_led_usbdev "usb" "USB" "$1" "1-1" +} + +set_wifi_led() { + ucidef_set_led_netdev "wifi_led" "wifi" "$1" "wlan0" +} + + +board=$(ramips_board_name) + +board_config_update + +case $board in +3g150b|\ +3g300m) + set_usb_led "$board:blue:3g" + ;; +3g-6200n) + set_wifi_led "$board:amber:wlan" + set_usb_led "$board:blue:3g" + ;; +3g-6200nl|\ +br-6475nd|\ +mzk-w300nh2) + set_wifi_led "$board:amber:wlan" + ;; +a5-v11) + ucidef_set_led_default "power" "POWER" "$board:red:power" "1" + ;; +ai-br100) + ucidef_set_led_netdev "wan" "wan" "$board:blue:wan" "eth0.2" + set_wifi_led "$board:blue:wlan" + ;; +air3gii) + set_wifi_led "$board:green:wlan" + set_usb_led "$board:green:mobile" + ;; +all0239-3g|\ +hw550-3g|\ +mofi3500-3gn|\ +sap-g3200u3) + set_usb_led "$board:green:usb" + ;; +all0256n) + ucidef_set_rssimon "wlan0" "40000" "1" + ucidef_set_led_rssi "rssilow" "RSSILOW" "$board:green:rssilow" "wlan0" "1" "40" "0" "6" + ucidef_set_led_rssi "rssimedium" "RSSIMEDIUM" "$board:green:rssimed" "wlan0" "30" "80" "-29" "5" + ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "$board:green:rssihigh" "wlan0" "70" "100" "-69" "8" + set_wifi_led "rt2800pci-phy0::radio" + ;; +ar670w|\ +ar725w|\ +awapn2403) + set_wifi_led "rt2800soc-phy0::radio" + ;; +asl26555) + ucidef_set_led_default "power" "POWER" "$board:green:power" "1" + ucidef_set_led_netdev "eth" "ETH" "$board:green:eth" "eth0" + set_wifi_led "$board:green:wlan" + set_usb_led "$board:green:3g" + ;; +bc2) + set_usb_led "$board:blue:usb" + ;; +br-6425) + set_wifi_led "$board:orange:wlan" + ;; +broadway) + set_usb_led "$board:red:diskmounted" + set_wifi_led "$board:red:wps_active" + ;; +cf-wr800n) + ucidef_set_led_netdev "lan" "lan" "$board:white:ethernet" eth0.1 + set_wifi_led "$board:white:wifi" + ;; +cy-swr1100) + ucidef_set_led_default "wps" "WPS" "$board:blue:wps" "0" + set_usb_led "$board:blue:usb" + ;; +d105) + ucidef_set_led_default "power" "POWER" "$board:red:power" "1" + set_usb_led "$board:green:usb" + ;; +db-wrt01) + ucidef_set_led_default "power" "power" "$board:orange:power" "1" + ;; +dcs-930l-b1) + ucidef_set_led_default "power" "POWER" "$board:red:power" "1" + ucidef_set_led_netdev "wifi" "WiFi" "$board:blue:wps" + ;; +dir-300-b1|\ +dir-600-b1|\ +dir-600-b2|\ +dir-620-a1) + ucidef_set_led_default "wan" "WAN LED (amber)" "$board:amber:wan" "1" + set_wifi_led "rt2800pci-phy0::radio" + ;; +dir-300-b7|\ +dir-320-b1|\ +dir-610-a1|\ +esr-9753|\ +hlk-rm04|\ +sl-r7205|\ +v11st-fe|\ +w306r-v20|\ +wt1520) + set_wifi_led "rt2800pci-phy0::radio" + ;; +dir-615-d|\ +dir-615-h1) + ucidef_set_led_default "status" "Status LED (amber)" "$board:amber:status" "0" + set_wifi_led "rt2800pci-phy0::radio" + ;; +dir-620-d1) + set_wifi_led "$board:green:wifi" + ;; +dir-810l|\ +mzk-dp150n) + ucidef_set_led_default "power" "power" "$board:green:power" "1" + ;; +f5d8235-v1|\ +f5d8235-v2) + set_usb_led "$board:blue:storage" + ;; +fonera20n) + set_usb_led "$board:orange:usb" + set_wifi_led "$board:orange:wifi" + ;; +hg255d) + set_wifi_led "$board:green:wlan" + set_usb_led "$board:green:usb" + ucidef_set_led_interface "lan" "$board:green:internet" + ;; +hpm) + ucidef_set_led_default "power" "POWER" "$board:orange:power" "1" + ucidef_set_led_netdev "eth" "ETH" "$board:green:eth" "eth0" + set_wifi_led "$board:green:wifi" + ;; +ht-tm02) + ucidef_set_led_netdev "eth" "Ethernet" "$board:green:lan" "eth0" + set_wifi_led "$board:blue:wlan" + ;; +m2m) + set_wifi_led "$board:blue:wifi" + ucidef_set_led_netdev "eth" "Ethernet" "$board:green:wan" "eth0" + ;; +miniembplug) + set_wifi_led "$board:red:wlan" + set_usb_led "$board:green:mobile" + ;; +miwifi-mini) + ucidef_set_led_default "power" "power" "$board:red:status" "1" + ;; +mlw221|\ +mlwg2) + set_wifi_led "$board:blue:wifi" + ucidef_set_led_default "system" "system" "$board:blue:system" "1" + ;; +mpr-a1|\ +mpr-a2) + set_wifi_led "$board:blue:system" + ;; +mr-102n) + set_wifi_led "$board:green:wlan" + set_usb_led "$board:green:usb" + ;; +na930) + set_usb_led "$board:blue:status" + ;; +nw718) + set_usb_led "$board:amber:usb" + ;; +oy-0001) + ucidef_set_led_default "power" "power" "$board:green:power" "1" + set_wifi_led "$board:green:wifi" + ;; +pbr-m1) + ucidef_set_led_netdev "internet" "internet" "$board:green:internet" "eth0.2" + ucidef_set_led_default "power" "power" "$board:green:power" "1" + ucidef_set_led_default "sys" "sys" "$board:green:sys" "1" + ;; +px-4885) + set_wifi_led "$board:orange:wifi" + set_usb_led "$board:blue:storage" + ;; +re6500) + ucidef_set_led_default "power" "power" "$board:white:power" "1" + ucidef_set_led_default "wifi" "wifi" "$board:orange:wifi" "1" + ;; +rp-n53) + ucidef_set_led_netdev "eth" "Network" "$board:white:back" "eth0" + set_wifi_led "$board:blue:wifi" + ;; +rt-n14u) + ucidef_set_led_default "power" "power" "$board:blue:power" "1" + ucidef_set_led_netdev "lan" "lan" "$board:blue:lan" eth0.1 + ucidef_set_led_netdev "wan" "wan" "$board:blue:wan" eth0.2 + set_wifi_led "$board:blue:air" + set_usb_led "$board:blue:usb" + ;; +vocore) + ucidef_set_led_netdev "eth" "ETH" "$board:orange:eth" "eth0" + set_wifi_led "$board:green:status" + ;; +w502u) + set_usb_led "$board:blue:usb" + set_wifi_led "rt2800pci-phy0::radio" + ;; +wcr-150gn) + set_usb_led "$board:amber:user" + ;; +whr-1166d|\ +whr-300hp2|\ +whr-600d) + ucidef_set_led_default "power" "power" "$board:green:power" "1" + ucidef_set_led_default "router" "router" "$board:green:router" "1" + ;; +wnce2001) + set_wifi_led "$board:green:wlan" + ;; +wt3020) + ucidef_set_led_default "power" "power" "$board:blue:power" "0" + ;; +y1|\ +y1s) + ucidef_set_led_default "power" "power" "$board:blue:power" "1" + set_usb_led "$board:blue:usb" + set_wifi_led "$board:blue:wifi" + ;; +zbt-wa05) + ucidef_set_led_default "power" "power" "$board:blue:power" "1" + set_wifi_led "$board:blue:air" + set_usb_led "$board:blue:usb" + ;; +zbt-wr8305rt) + ucidef_set_led_default "power" "power" "$board:green:sys" "1" + set_usb_led "$board:green:usb" + set_wifi_led "$board:green:wifi" + ;; +zte-q7) + set_wifi_led "$board:blue:status" + ;; +esac + +board_config_flush + +exit 0 diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network new file mode 100755 index 0000000..75cccae --- /dev/null +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -0,0 +1,362 @@ +#!/bin/sh + +. /lib/functions.sh +. /lib/ramips.sh +. /lib/functions/uci-defaults-new.sh +. /lib/functions/system.sh + +ramips_setup_rt3x5x_vlans() +{ + if [ ! -x /sbin/swconfig ]; then + # legacy default + ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" + return + fi + local wanports="" + local lanports="" + for port in 5 4 3 2 1 0; do + if [ `swconfig dev rt305x port $port get disable` = "1" ]; then + continue + fi + if [ `swconfig dev rt305x port $port get lan` = "0" ]; then + wanports="$port $wanports" + else + lanports="$port $lanports" + fi + done + ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" + ucidef_add_switch "rt305x" "1" "1" + ucidef_add_switch_vlan "rt305x" "1" "$lanports 6t" + ucidef_add_switch_vlan "rt305x" "2" "$wanports 6t" +} + +ramips_setup_interfaces() +{ + local board="$1" + + ucidef_set_interface_loopback + + case $board in + 3g150b|\ + 3g300m|\ + all0256n|\ + all5002|\ + all5003|\ + broadway|\ + dcs-930|\ + dcs-930l-b1|\ + ht-tm02|\ + microwrt|\ + ncs601w|\ + w150m|\ + wnce2001|\ + zte-q7) + ucidef_add_switch "switch0" "1" "0" + ucidef_set_interface_lan "eth0" + ;; + 3g-6200nl|\ + mlw221|\ + mr-102n) + ucidef_set_interface_lan "eth0.2" + ;; + 3g-6200n|\ + ai-br100|\ + db-wrt01|\ + dir-300-b7|\ + dir-320-b1|\ + dir-610-a1|\ + dir-615-h1|\ + firewrt|\ + hlk-rm04|\ + miwifi-mini|\ + mt7621|\ + mt7628|\ + mzk-750dhp|\ + mzk-w300nh2|\ + oy-0001|\ + pbr-m1|\ + sap-g3200u3|\ + whr-300hp2|\ + whr-600d|\ + wsr-1166|\ + wsr-600|\ + wt1520|\ + y1) + ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 6t" + ucidef_add_switch_vlan "switch0" "2" "4 6t" + ;; + a5-v11) + ucidef_set_interface_lan "eth0.1" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 6t" + ;; + ar670w|\ + ar725w|\ + rt-n15|\ + wl-351) + ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 5t" + ucidef_add_switch_vlan "switch0" "2" "4 5t" + ;; + asl26555|\ + re6500) + ucidef_set_interface_lan "eth0.1" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 6t" + ;; + atp-52b|\ + awm002-evb|\ + awm003-evb|\ + dir-645|\ + dir-860l-b1|\ + f5d8235-v1|\ + f5d8235-v2|\ + hg255d|\ + rt-n14u|\ + ur-326n4g|\ + wrtnode|\ + wt3020|\ + zbt-wa05) + ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 6t" + ucidef_add_switch_vlan "switch0" "2" "0 6t" + ;; + awapn2403) + ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 6t" + ucidef_add_switch_vlan "switch0" "2" "1 6t" + ;; + b2c|\ + nw718|\ + psr-680w|\ + sl-r7205|\ + ur-336un|\ + w502u|\ + wr6202) + ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" + ;; + br-6475nd) + ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 9t" + ucidef_add_switch_vlan "switch0" "2" "0 9t" + ;; + cf-wr800n) + ucidef_set_interface_lan "eth0.1" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "4 6t" + ;; + cy-swr1100) + ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 9t" + ucidef_add_switch_vlan "switch0" "2" "4 9t" + ;; + d105|\ + hpm|\ + na930|\ + wli-tx4-ag300n) + ucidef_set_interface_lan "eth0" + ;; + e1700|\ + mt7620a_mt7530) + ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" + ucidef_add_switch "switch1" "1" "1" + ucidef_add_switch_vlan "switch1" "1" "0 1 2 3 6t" + ucidef_add_switch_vlan "switch1" "2" "4 6t" + ;; + m2m) + ucidef_add_switch "switch0" "4" + ucidef_set_interface_lan "eth0" + ;; + mlwg2|\ + wizard8800|\ + wl-330n|\ + wmr-300) + ucidef_set_interface_lan "eth0.1" + ;; + mzk-dp150n|\ + vocore) + ucidef_set_interface_lan "eth0.1" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 4 6t" + ;; + rt-n56u) + ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 8t" + ucidef_add_switch_vlan "switch0" "2" "4 8t" + ;; + tew-691gr|\ + tew-692gr) + ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0t 1 2 3 4" + ucidef_add_switch_vlan "switch0" "2" "0t 5" + ;; + v11st-fe|\ + wzr-agl300nh) + ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 5t" + ucidef_add_switch_vlan "switch0" "2" "0 5t" + ;; + wcr-150gn) + ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 6t" + ucidef_add_switch_vlan "switch0" "2" "6t" + ;; + whr-1166d) + ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 6t" + ucidef_add_switch_vlan "switch0" "2" "5 6t" + ;; + wizfi630a) + ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "1 2 6t" + ucidef_add_switch_vlan "switch0" "2" "0 6t" + ;; + y1s) + ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 5 6t" + ucidef_add_switch_vlan "switch0" "2" "0 6t" + ;; + zbt-wr8305rt) + ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 4 6t" + ucidef_add_switch_vlan "switch0" "2" "4 6t" + ;; + *) + RT3X5X=`cat /proc/cpuinfo | egrep "(RT3.5|RT5350)"` + if [ -n "${RT3X5X}" ]; then + ramips_setup_rt3x5x_vlans + else + ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" + fi + ;; + esac +} + +ramips_setup_macs() +{ + local board="$1" + local lan_mac="" + local wan_mac="" + + case $board in + a5-v11|\ + bc2|\ + broadway|\ + d105|\ + dir-300-b7|\ + dir-320-b1|\ + dir-620-a1|\ + esr-9753|\ + freestation5|\ + hlk-rm04|\ + mpr-a1|\ + mpr-a2|\ + psr-680w|\ + sl-r7205|\ + y1|\ + y1s) + lan_mac=$(cat /sys/class/net/eth0/address) + lan_mac=$(macaddr_setbit_la "$lan_mac") + wan_mac=$(macaddr_add "$lan_mac" 1) + ;; + all0239-3g|\ + carambola|\ + freestation5|\ + w502u|\ + wnce2001) + wan_mac=$(mtd_get_mac_binary factory 46) + ;; + br-6475nd) + lan_mac=$(cat /sys/class/net/eth0/address) + wan_mac=$(mtd_get_mac_binary devdata 7) + ;; + cy-swr1100|\ + dir-645) + lan_mac=$(mtd_get_mac_ascii nvram lanmac) + wan_mac=$(mtd_get_mac_ascii nvram wanmac) + ;; + e1700) + wan_mac=$(mtd_get_mac_ascii config WAN_MAC_ADDR) + ;; + ht-tm02) + lan_mac=$(cat /sys/class/net/eth0/address) + ;; + m3|\ + m4|\ + x5|\ + x8) + lan_mac=$(cat /sys/class/net/eth0/address) + lan_mac=$(macaddr_add "$lan_mac" -2) + ;; + oy-0001) + lan_mac=$(mtd_get_mac_binary factory 40) + wan_mac=$(mtd_get_mac_binary factory 46) + ;; + rt-n56u) + lan_mac=$(cat /sys/class/net/eth0/address) + lan_mac=$(macaddr_setbit_la "$lan_mac") + wan_mac=$(mtd_get_mac_binary factory 32772) + ;; + tew-691gr) + lan_mac=$(cat /sys/class/net/eth0/address) + wan_mac=$(macaddr_add "$lan_mac" 3) + ;; + tew-692gr) + lan_mac=$(cat /sys/class/net/eth0/address) + wan_mac=$(macaddr_add "$lan_mac" 4) + ;; + w306r-v20) + lan_mac=$(cat /sys/class/net/eth0/address) + wan_mac=$(macaddr_add "$lan_mac" 5) + ;; + wcr-150gn) + wan_mac=$(mtd_get_mac_binary factory 40) + ;; + whr-1166d|\ + whr-300hp2|\ + whr-600d|\ + wsr-600) + wan_mac=$(mtd_get_mac_binary factory 4) + lan_mac=$wan_mac + ;; + wizfi630a) + lan_mac=$(mtd_get_mac_binary factory 4) + wan_mac=$(mtd_get_mac_binary factory 40) + ;; + wsr-1166) + local index="$(find_mtd_index "board_data")" + wan_mac="$(grep -m1 mac= "/dev/mtd${index}" | cut -d= -f2)" + lan_mac=$wan_mac + ;; + *) + lan_mac=$(cat /sys/class/net/eth0/address) + wan_mac=$(macaddr_add "$lan_mac" 1) + ;; + esac + + [ -n "$lan_mac" ] && ucidef_set_interface_macaddr lan $lan_mac + [ -n "$wan_mac" ] && ucidef_set_interface_macaddr wan $wan_mac +} + +board_config_update +board=$(ramips_board_name) +ramips_setup_interfaces $board +ramips_setup_macs $board +board_config_flush + +exit 0 diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh new file mode 100644 index 0000000..7fc6f29 --- /dev/null +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -0,0 +1,196 @@ +#!/bin/sh +# Copyright (C) 2010-2013 OpenWrt.org + +. /lib/functions/leds.sh +. /lib/ramips.sh + +get_status_led() { + board=$(ramips_board_name) + + case $board in + 3g150b|\ + 3g300m|\ + w150m) + status_led="$board:blue:ap" + ;; + 3g-6200n|\ + ar670w|\ + ar725w|\ + asl26555|\ + br-6425|\ + br-6475nd|\ + e1700|\ + fonera20n|\ + mzk-dp150n|\ + mzk-w300nh2|\ + nbg-419n|\ + pwh2004|\ + wnce2001|\ + x5|\ + x8|\ + xdxrn502j) + status_led="$board:green:power" + ;; + a5-v11|\ + d105|\ + dcs-930l-b1|\ + hlk-rm04|\ + mpr-a1|\ + mpr-a2) + status_led="$board:red:power" + ;; + ai-br100|\ + ht-tm02) + status_led="$board:blue:wlan" + ;; + all0239-3g|\ + dcs-930|\ + dir-300-b1|\ + dir-300-b7|\ + dir-320-b1|\ + dir-600-b1|\ + dir-600-b2|\ + dir-610-a1|\ + dir-615-d|\ + dir-615-h1|\ + dir-620-a1|\ + dir-620-d1|\ + hpm|\ + hw550-3g|\ + miniembwifi|\ + mofi3500-3gn|\ + rut5xx|\ + v11st-fe|\ + vocore|\ + wmr-300) + status_led="$board:green:status" + ;; + atp-52b|\ + ip2202) + status_led="$board:green:run" + ;; + awapn2403|\ + dir-645) + status_led="$board:green:wps" + ;; + cf-wr800n) + status_led="$board:white:wps" + ;; + cy-swr1100|\ + w502u) + status_led="$board:blue:wps" + ;; + dap-1350|\ + na930|\ + rt-n13u|\ + rt-n14u|\ + rt-n15|\ + rt-n56u|\ + wl-330n|\ + wl-330n3g|\ + wli-tx4-ag300n|\ + wt3020|\ + y1|\ + y1s) + status_led="$board:blue:power" + ;; + db-wrt01|\ + esr-9753) + status_led="$board:orange:power" + ;; + f5d8235-v2) + status_led="$board:blue:router" + ;; + f7c027) + status_led="$board:orange:status" + ;; + m2m) + status_led="$board:blue:wifi" + ;; + m3|\ + m4) + status_led="$board:blue:status" + ;; + miwifi-mini|\ + zte-q7) + status_led="$board:red:status" + ;; + mlw221|\ + mlwg2) + status_led="$board:blue:system" + ;; + mr-102n) + status_led="$board:amber:status" + ;; + nw718) + status_led="$board:amber:cpu" + ;; + oy-0001|\ + sl-r7205) + status_led="$board:green:wifi" + ;; + pbr-m1|\ + w306r-v20|\ + zbt-wr8305rt) + status_led="$board:green:sys" + ;; + psr-680w) + status_led="$board:red:wan" + ;; + px-4885|\ + re6500|\ + whr-1166d|\ + whr-300hp2|\ + whr-600d) + status_led="$board:orange:wifi" + ;; + rt-n10-plus|\ + tew-691gr|\ + tew-692gr|\ + ur-326n4g|\ + ur-336un|\ + wr512-3gn) + status_led="$board:green:wps" + ;; + sap-g3200u3) + status_led="$board:green:usb" + ;; + v22rw-2x2) + status_led="$board:green:security" + ;; + wcr-150gn|\ + wl-351) + status_led="$board:amber:power" + ;; + whr-g300n|\ + wzr-agl300nh) + status_led="$board:green:router" + ;; + wizfi630a) + status_led="$board::run" + ;; + wsr-1166|\ + wsr-600) + status_led="$board:orange:diag" + ;; + esac +} + +set_state() { + get_status_led + + case "$1" in + preinit) + status_led_blink_preinit + ;; + failsafe) + status_led_blink_failsafe + ;; + preinit_regular) + status_led_blink_preinit_regular + ;; + done) + status_led_on + ;; + esac +} diff --git a/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom new file mode 100644 index 0000000..0cd95a5 --- /dev/null +++ b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom @@ -0,0 +1,50 @@ +#!/bin/sh + +rt2x00_eeprom_die() { + echo "rt2x00 eeprom: " "$*" + exit 1 +} + +rt2x00_eeprom_extract() { + local part=$1 + local offset=$2 + local count=$3 + local mtd + + . /lib/functions.sh + + mtd=$(find_mtd_part $part) + [ -n "$mtd" ] || \ + rt2x00_eeprom_die "no mtd device found for partition $part" + + dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \ + rt2x00_eeprom_die "failed to extract from $mtd" +} + +FW="/lib/firmware/$FIRMWARE" +[ -e "$FW" ] && exit 0 + +. /lib/ramips.sh + +board=$(ramips_board_name) + +case "$FIRMWARE" in +"soc_wmac.eeprom") + case $board in + *) + rt2x00_eeprom_die "Please define mtd-eeprom in $board DTS file!" + ;; + esac + ;; + +"rt2x00pci_1_0.eeprom") + case $board in + cy-swr1100) + rt2x00_eeprom_extract "factory" 8192 512 + ;; + br-6475nd | rt-n56u | whr-600d | whr-1166d) + rt2x00_eeprom_extract "factory" 32768 512 + ;; + esac + ;; +esac diff --git a/target/linux/ramips/base-files/etc/hotplug.d/usb/10-motion b/target/linux/ramips/base-files/etc/hotplug.d/usb/10-motion new file mode 100644 index 0000000..e96acc8 --- /dev/null +++ b/target/linux/ramips/base-files/etc/hotplug.d/usb/10-motion @@ -0,0 +1 @@ +[ "$ACTION" = "motion" ] && logger webcam motion event diff --git a/target/linux/ramips/base-files/etc/inittab b/target/linux/ramips/base-files/etc/inittab new file mode 100644 index 0000000..7817185 --- /dev/null +++ b/target/linux/ramips/base-files/etc/inittab @@ -0,0 +1,3 @@ +::sysinit:/etc/init.d/rcS S boot +::shutdown:/etc/init.d/rcS K shutdown +::askconsole:/bin/ash --login diff --git a/target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header b/target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header new file mode 100644 index 0000000..35167f1 --- /dev/null +++ b/target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header @@ -0,0 +1,22 @@ +#!/bin/sh +# +# Copyright (C) 2012 OpenWrt.org +# + +. /lib/ramips.sh + +fix_seama_header() { + local part=$1 + + mtd fixseama $part +} + +board=$(ramips_board_name) + +case "$board" in +cy-swr1100 | \ +dir-645 | \ +dir-860l-b1) + fix_seama_header kernel + ;; +esac diff --git a/target/linux/ramips/base-files/lib/preinit/03_preinit_do_ramips.sh b/target/linux/ramips/base-files/lib/preinit/03_preinit_do_ramips.sh new file mode 100644 index 0000000..31ef5f8 --- /dev/null +++ b/target/linux/ramips/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/ramips/base-files/lib/preinit/04_handle_checksumming b/target/linux/ramips/base-files/lib/preinit/04_handle_checksumming new file mode 100644 index 0000000..057fe45 --- /dev/null +++ b/target/linux/ramips/base-files/lib/preinit/04_handle_checksumming @@ -0,0 +1,56 @@ +#!/bin/sh + +# Netgear WNCE2001 has does a checksum check on boot and goes into recovery +# tftp mode when the check fails. Initializing the JFFS2 partition triggers +# this, so we make sure to zero checksum and size to be checksummed before +# that happens, so this needs to run very early during boot. + +do_checksumming_disable() { + . /lib/ramips.sh + + local board=$(ramips_board_name) + + case "$board" in + wnce2001) + echo "Board is WNCE2001, updating checksum partition..." + local zeroes=/dev/zero + local tmpfile=/tmp/wnce2001_checksum + local partname=checksum + local mtd=$(find_mtd_part $partname) + dd if=$mtd of=$tmpfile bs=80 count=1 2>/dev/null + signature=$(dd if=$tmpfile bs=1 skip=24 count=20 2>/dev/null) + checksum=$(dd if=$tmpfile bs=1 count=4 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"') + if [ "$signature" != "RT3052-AP-WNCE2001-3" ]; then + echo "Signature of checksum partition is wrong, bailing." + return 0 + fi + if [ "$checksum" != "00000000" ]; then + echo "Checksum is set, zeroing." + # zero out checksum + dd if=$zeroes of=$tmpfile conv=notrunc bs=1 seek=0 count=4 2>/dev/null + # zero out bytecount to be checksummed + dd if=$zeroes of=$tmpfile conv=notrunc bs=1 seek=60 count=4 2>/dev/null + mtd write $tmpfile $partname + else + echo "Checksum is already zero, nothing to do." + fi + ;; + rt-n56u) + echo "Board is ASUS RT-N56U, replacing uImage header..." + local firmware_mtd=$(find_mtd_part firmware) + local rootfs_mtd=$(find_mtd_part rootfs) + local rootfs_data_mtd=$(find_mtd_part rootfs_data) + local rootfs_len=$(grep \"rootfs\" /proc/mtd | awk -F' ' '{print "0x"$2}') + local rootfs_data_len=$(grep \"rootfs_data\" /proc/mtd | awk -F' ' '{print "0x"$2}') + local offset=$(echo "$rootfs_len $rootfs_data_len 0x40" | awk -F' ' '{printf "%i",$1-$2-$3}') + local signature=$(dd if=$rootfs_mtd skip=$offset bs=1 count=4 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"') + if [ "$signature" = "27051956" ]; then + dd conv=notrunc if=$rootfs_mtd skip=$offset of=$firmware_mtd bs=1 count=64 2>/dev/null + fi + ;; + esac + + return 0 +} + +boot_hook_add preinit_main do_checksumming_disable diff --git a/target/linux/ramips/base-files/lib/preinit/07_set_preinit_iface_ramips b/target/linux/ramips/base-files/lib/preinit/07_set_preinit_iface_ramips new file mode 100644 index 0000000..90b6d15 --- /dev/null +++ b/target/linux/ramips/base-files/lib/preinit/07_set_preinit_iface_ramips @@ -0,0 +1,34 @@ +#!/bin/sh +# +# Copyright (C) 2013 OpenWrt.org +# + +. /lib/ramips.sh + +ramips_set_preinit_iface() { + RT3X5X=`cat /proc/cpuinfo | egrep "(RT3.5|RT5350|MT7628|MT7688)"` + if [ -n "${RT3X5X}" ]; then + swconfig dev rt305x set reset 1 + fi + + if echo $RT3X5X | egrep -q "(RT5350|MT7628|MT7688)"; then + # This is a dirty hack to get by while the switch + # problem is investigated. When VLAN is disabled, ICMP + # pings work as expected, but TCP connections time + # out, so telnetting in failsafe is impossible. The + # likely reason is TCP checksumming hardware getting + # disabled: + # https://www.mail-archive.com/openwrt-devel@lists.openwrt.org/msg19870.html + swconfig dev rt305x set enable_vlan 1 + swconfig dev rt305x vlan 1 set ports "0 6" + swconfig dev rt305x port 6 set untag 0 + swconfig dev rt305x set apply 1 + vconfig add eth0 1 + ifconfig eth0 up + ifname=eth0.1 + else + ifname=eth0 + fi +} + +boot_hook_add preinit_main ramips_set_preinit_iface diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh new file mode 100755 index 0000000..d242235 --- /dev/null +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -0,0 +1,460 @@ +#!/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 + *"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") + name="all0256n" + ;; + *"ALL5002") + name="all5002" + ;; + *"ALL5003") + name="all5003" + ;; + *"AR670W") + name="ar670w" + ;; + *"AR725W") + name="ar725w" + ;; + *"ASL26555") + name="asl26555" + ;; + *"ATP-52B") + name="atp-52b" + ;; + *"AWAPN2403") + name="awapn2403" + ;; + *"AWM002 EVB") + name="awm002-evb" + ;; + *"AWM003 EVB") + name="awm003-evb" + ;; + *"BC2") + name="bc2" + ;; + *"BR-6425") + name="br-6425" + ;; + *"BR-6475nD") + name="br-6475nd" + ;; + *"Broadway") + name="broadway" + ;; + *"C20i") + name="c20i" + ;; + *"Carambola") + name="carambola" + ;; + *"CF-WR800N") + name="cf-wr800n" + ;; + *"CY-SWR1100") + name="cy-swr1100" + ;; + *"D105") + name="d105" + ;; + *"DAP-1350") + name="dap-1350" + ;; + *"DB-WRT01") + name="db-wrt01" + ;; + *"DCS-930") + name="dcs-930" + ;; + *"DCS-930L B1") + name="dcs-930l-b1" + ;; + *"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-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" + ;; + *"E1700") + name="e1700" + ;; + *"ESR-9753") + name="esr-9753" + ;; + *"F5D8235 v1") + name="f5d8235-v1" + ;; + *"F5D8235 v2") + name="f5d8235-v2" + ;; + *"F7C027") + name="f7c027" + ;; + *"FireWRT") + name="firewrt" + ;; + *"Fonera 2.0N") + name="fonera20n" + ;; + *"FreeStation5") + name="freestation5" + ;; + *"HG255D") + name="hg255d" + ;; + *"HLK-RM04") + name="hlk-rm04" + ;; + *"HPM") + name="hpm" + ;; + *"HT-TM02") + name="ht-tm02" + ;; + *"HW550-3G") + name="hw550-3g" + ;; + *"IP2202") + name="ip2202" + ;; + *"M3") + name="m3" + ;; + *"M4") + name="m4" + ;; + *"Memory 2 Move") + name="m2m" + ;; + *"MicroWRT") + name="microwrt" + ;; + *"MiniEMBPlug") + name="miniembplug" + ;; + *"MiniEMBWiFi") + name="miniembwifi" + ;; + *"MiWiFi Mini") + name="miwifi-mini" + ;; + *"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" + ;; + *"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-W300NH2"*) + name="mzk-w300nh2" + ;; + *"NA930") + name="na930" + ;; + *"NBG-419N") + name="nbg-419n" + ;; + *"NCS601W") + name="ncs601w" + ;; + *"NW718") + name="nw718" + ;; + *"OY-0001") + name="oy-0001" + ;; + *"PBR-M1") + name="pbr-m1" + ;; + *"PSR-680W"*) + name="psr-680w" + ;; + *"PWH2004") + name="pwh2004" + ;; + *"PX-4885") + name="px-4885" + ;; + *"Q7") + name="zte-q7" + ;; + *"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" + ;; + *"SAP-G3200U3") + name="sap-g3200u3" + ;; + *"SL-R7205"*) + name="sl-r7205" + ;; + *"TEW-691GR") + name="tew-691gr" + ;; + *"TEW-692GR") + name="tew-692gr" + ;; + *"UR-326N4G") + name="ur-326n4g" + ;; + *"UR-336UN") + name="ur-336un" + ;; + *"V11ST-FE") + name="v11st-fe" + ;; + *"V22RW-2X2") + name="v22rw-2x2" + ;; + *"VoCore") + name="vocore" + ;; + *"W150M") + name="w150m" + ;; + *"W306R V2.0") + name="w306r-v20" + ;; + *"W502U") + name="w502u" + ;; + *"WCR-150GN") + name="wcr-150gn" + ;; + *"WHR-1166D") + name="whr-1166d" + ;; + *"WHR-300HP2") + name="whr-300hp2" + ;; + *"WHR-600D") + name="whr-600d" + ;; + *"WHR-G300N") + name="whr-g300n" + ;; + *"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" + ;; + *"WLI-TX4-AG300N") + name="wli-tx4-ag300n" + ;; + *"WMR-300") + name="wmr-300" + ;; + *"WNCE2001") + name="wnce2001" + ;; + *"WR512-3GN-like"*) + name="wr512-3gn" + ;; + *"WR6202") + name="wr6202" + ;; + *"WRTNODE") + name="wrtnode" + ;; + *"WSR-1166DHP") + name="wsr-1166" + ;; + *"WSR-600DHP") + name="wsr-600" + ;; + *"WT1520") + name="wt1520" + ;; + *"WT3020") + name="wt3020" + ;; + *"WZR-AGL300NH") + name="wzr-agl300nh" + ;; + *"X5") + name="x5" + ;; + *"X8") + name="x8" + ;; + *"Y1") + name="y1" + ;; + *"Y1S") + name="y1s" + ;; + *"ZBT-WA05") + name="zbt-wa05" + ;; + *"ZBT-WR8305RT") + name="zbt-wr8305rt" + ;; + *) + 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" +} diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh new file mode 100755 index 0000000..2f6c624 --- /dev/null +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -0,0 +1,201 @@ +# +# 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 + 3g150b|\ + 3g300m|\ + 3g-6200n|\ + 3g-6200nl|\ + a5-v11|\ + ai-br100|\ + air3gii|\ + all0239-3g|\ + all0256n|\ + all5002|\ + all5003|\ + ar725w|\ + asl26555|\ + awapn2403|\ + awm002-evb|\ + awm003-evb|\ + bc2|\ + broadway|\ + carambola|\ + cf-wr800n|\ + d105|\ + dap-1350|\ + db-wrt01|\ + dcs-930|\ + dcs-930l-b1|\ + dir-300-b1|\ + dir-300-b7|\ + dir-320-b1|\ + dir-600-b1|\ + dir-600-b2|\ + dir-615-d|\ + dir-615-h1|\ + dir-620-a1|\ + dir-620-d1|\ + dir-810l|\ + e1700|\ + esr-9753|\ + f7c027|\ + firewrt|\ + fonera20n|\ + freestation5|\ + hg255d|\ + hlk-rm04|\ + hpm|\ + ht-tm02|\ + hw550-3g|\ + ip2202|\ + m2m|\ + m3|\ + m4|\ + microwrt|\ + miniembplug|\ + miniembwifi|\ + miwifi-mini|\ + mlw221|\ + mlwg2|\ + mofi3500-3gn|\ + mpr-a1|\ + mpr-a2|\ + mr-102n|\ + mzk-dp150n|\ + mzk-w300nh2|\ + nbg-419n|\ + nw718|\ + oy-0001|\ + pbr-m1|\ + psr-680w|\ + px-4885|\ + re6500|\ + rp-n53|\ + rt5350f-olinuxino|\ + rt5350f-olinuxino-evb|\ + rt-g32-b1|\ + rt-n10-plus|\ + rt-n13u|\ + rt-n14u|\ + rt-n15|\ + rt-n56u|\ + rut5xx|\ + sap-g3200u3|\ + sl-r7205|\ + tew-691gr|\ + tew-692gr|\ + ur-326n4g|\ + ur-336un|\ + v22rw-2x2|\ + vocore|\ + w150m|\ + w306r-v20|\ + w502u|\ + whr-1166d|\ + whr-300hp2|\ + whr-600d|\ + whr-g300n|\ + wizfi630a|\ + wl-330n|\ + wl-330n3g|\ + wl-341v3|\ + wl-351|\ + wli-tx4-ag300n|\ + wmr-300|\ + wnce2001|\ + wr512-3gn|\ + wr6202|\ + wrtnode|\ + wsr-600|\ + wt1520|\ + wt3020|\ + wzr-agl300nh|\ + x5|\ + x8|\ + y1|\ + y1s|\ + zbt-wa05|\ + zbt-wr8305rt|\ + zte-q7) + [ "$magic" != "27051956" ] && { + echo "Invalid image type." + return 1 + } + return 0 + ;; + ar670w) + [ "$magic" != "6d000080" ] && { + echo "Invalid image type." + return 1 + } + return 0 + ;; + br-6475nd) + [ "$magic" != "43535953" ] && { + echo "Invalid image type." + return 1 + } + return 0 + ;; + c20i) + [ "$magic" != "03000000" ] && { + echo "Invalid image type." + return 1 + } + return 0 + ;; + cy-swr1100|\ + dir-610-a1|\ + dir-645|\ + dir-860l-b1) + [ "$magic" != "5ea3a417" ] && { + echo "Invalid image type." + return 1 + } + return 0 + ;; + wsr-1166) + [ "$magic" != "48445230" ] && { + 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 -- cgit v1.2.3