aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ramips/base-files/lib
diff options
context:
space:
mode:
authorblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-10-05 10:12:53 +0000
committerblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-10-05 10:12:53 +0000
commit5c105d9f3fd086aff195d3849dcf847d6b0bd927 (patch)
tree1229a11f725bfa58aa7c57a76898553bb5f6654a /target/linux/ramips/base-files/lib
downloadopenwrt-5c105d9f3fd086aff195d3849dcf847d6b0bd927.tar.gz
openwrt-5c105d9f3fd086aff195d3849dcf847d6b0bd927.zip
branch Attitude Adjustment
git-svn-id: svn://svn.openwrt.org/openwrt/branches/attitude_adjustment@33625 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ramips/base-files/lib')
-rw-r--r--target/linux/ramips/base-files/lib/preinit/03_preinit_do_ramips.sh7
-rw-r--r--target/linux/ramips/base-files/lib/preinit/05_ramips_load-input_drivers12
-rw-r--r--target/linux/ramips/base-files/lib/preinit/06_set_iface_mac66
-rwxr-xr-xtarget/linux/ramips/base-files/lib/ramips.sh194
-rwxr-xr-xtarget/linux/ramips/base-files/lib/upgrade/platform.sh84
5 files changed, 363 insertions, 0 deletions
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 000000000..e76418dad
--- /dev/null
+++ b/target/linux/ramips/base-files/lib/preinit/03_preinit_do_ramips.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+do_ramips() {
+ . /lib/ramips.sh
+}
+
+boot_hook_add preinit_main do_ramips
diff --git a/target/linux/ramips/base-files/lib/preinit/05_ramips_load-input_drivers b/target/linux/ramips/base-files/lib/preinit/05_ramips_load-input_drivers
new file mode 100644
index 000000000..fbd4c83d8
--- /dev/null
+++ b/target/linux/ramips/base-files/lib/preinit/05_ramips_load-input_drivers
@@ -0,0 +1,12 @@
+#
+# Copyright (C) 2011 OpenWrt.org
+#
+
+preinit_ramips_load_input_drivers() {
+ insmod input-core
+ insmod input-polldev
+ insmod gpio_keys_polled
+ insmod button-hotplug
+}
+
+boot_hook_add preinit_main preinit_ramips_load_input_drivers
diff --git a/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac
new file mode 100644
index 000000000..591c549d1
--- /dev/null
+++ b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac
@@ -0,0 +1,66 @@
+#
+# Copyright (C) 2011 OpenWrt.org
+#
+
+preinit_set_mac_address() {
+ local mac
+
+ . /lib/ramips.sh
+
+ case $(ramips_board_name) in
+ 3g-6200n)
+ mac=$(ramips_get_mac_binary factory 4)
+ ifconfig eth0 hw ether $mac 2>/dev/null
+ ;;
+ bc2 |\
+ dir-620-a1 |\
+ esr-9753 |\
+ freestation5 |\
+ nw718 |\
+ psr-680w |\
+ rt-n56u |\
+ sl-r7205)
+ mac=$(ramips_get_mac_binary factory 4)
+ mac=$(maccalc or "$mac" "02:00:00:00:00:00")
+ ifconfig eth0 hw ether $mac 2>/dev/null
+ ;;
+ dir-300-b1 |\
+ dir-300-b2 |\
+ dir-600-b1)
+ mac=$(ramips_get_mac_binary devdata 16388)
+ ifconfig eth0 hw ether $mac 2>/dev/null
+ ;;
+ dap-1350)
+ mac=$(ramips_get_mac_binary devdata 46)
+ ifconfig eth0 hw ether $mac 2>/dev/null
+ ;;
+ all0239-3g |\
+ all0256n |\
+ all5002 |\
+ carambola |\
+ dir-615-h1 |\
+ fonera20n |\
+ hw550-3g |\
+ nbg-419n |\
+ omni-emb |\
+ w306r-v20 |\
+ w502u |\
+ wl-330n |\
+ wl-330n3g |\
+ wr6202 |\
+ xdxrn502j)
+ mac=$(ramips_get_mac_binary factory 40)
+ ifconfig eth0 hw ether $mac 2>/dev/null
+ ;;
+ wl341v3)
+ mac=$(ramips_get_mac_binary board-nvram 65440)
+ ifconfig eth0 hw ether $mac 2>/dev/null
+ ;;
+ rt-n10-plus)
+ mac=$(ramips_get_mac_binary devconf 4)
+ ifconfig eth0 hw ether $mac 2>/dev/null
+ ;;
+ esac
+}
+
+boot_hook_add preinit_main preinit_set_mac_address
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 000000000..90c28b7ab
--- /dev/null
+++ b/target/linux/ramips/base-files/lib/ramips.sh
@@ -0,0 +1,194 @@
+#!/bin/sh
+#
+# Copyright (C) 2010 OpenWrt.org
+#
+
+ramips_get_mac_binary()
+{
+ local mtdname="$1"
+ local seek="$2"
+ local part
+
+ . /lib/functions.sh
+
+ part=$(find_mtd_part "$mtdname")
+ if [ -z "$part" ]; then
+ echo "ramips_get_mac_binary: partition $mtdname not found!" >&2
+ return
+ fi
+
+ dd bs=1 skip=$seek count=6 if=$part 2>/dev/null | /usr/sbin/maccalc bin2mac
+}
+
+ramips_get_mac_nvram()
+{
+ local mtdname="$1"
+ local key="$2"
+ local part
+ local mac_dirty
+
+ . /lib/functions.sh
+
+ part=$(find_mtd_part "$mtdname")
+ if [ -z "$part" ]; then
+ echo "ramips_get_mac_nvram: partition $mtdname not found!" >&2
+ return
+ fi
+
+ mac_dirty=$(strings "$part" | sed -n 's/'"$key"'=//p')
+ # "canonicalize" mac
+ /usr/sbin/maccalc add "$mac_dirty" 0
+}
+
+ramips_board_name() {
+ local machine
+ local name
+
+ machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /proc/cpuinfo)
+
+ case "$machine" in
+ *"8devices Carambola")
+ name="carambola"
+ ;;
+ *"Edimax 3g-6200n")
+ name="3g-6200n"
+ ;;
+ *"Allnet ALL0239-3G")
+ name="all0239-3g"
+ ;;
+ *"Allnet ALL0256N")
+ name="all0256n"
+ ;;
+ *"Allnet ALL5002")
+ name="all5002"
+ ;;
+ *"ARC FreeStation5")
+ name="freestation5"
+ ;;
+ *"Argus ATP-52B")
+ name="argus-atp52b"
+ ;;
+ *"Asus WL-330N")
+ name="wl-330n"
+ ;;
+ *"Asus WL-330N3G")
+ name="wl-330n3g"
+ ;;
+ *"Aztech HW550-3G")
+ name="hw550-3g"
+ ;;
+ *"DIR-300 B1")
+ name="dir-300-b1"
+ ;;
+ *"DIR-600 B1")
+ name="dir-600-b1"
+ ;;
+ *"DIR-600 B2")
+ name="dir-600-b2"
+ ;;
+ *"DIR-620 A1")
+ name="dir-620-a1"
+ ;;
+ *"DIR-615 H1")
+ name="dir-615-h1"
+ ;;
+ *"DAP-1350")
+ name="dap-1350"
+ ;;
+ *"ESR-9753")
+ name="esr-9753"
+ ;;
+ *"F5D8235 v1")
+ name="f5d8235-v1"
+ ;;
+ *"F5D8235 v2")
+ name="f5d8235-v2"
+ ;;
+ *"La Fonera 2.0N")
+ name="fonera20n"
+ ;;
+ *"MoFi Network MOFI3500-3GN")
+ name="mofi3500-3gn"
+ ;;
+ *"NBG-419N")
+ name="nbg-419n"
+ ;;
+ *"NexAira BC2")
+ name="bc2"
+ ;;
+ *"NW718")
+ name="nw718"
+ ;;
+ *"Omnima MiniEMBWiFi")
+ name="omni-emb"
+ ;;
+ *"Petatel PSR-680W"*)
+ name="psr-680w"
+ ;;
+ *"PWH2004")
+ name="pwh2004"
+ ;;
+ *"RT-G32 B1")
+ name="rt-g32-b1"
+ ;;
+ *"RT-N10+")
+ name="rt-n10-plus"
+ ;;
+ *"RT-N15")
+ name="rt-n15"
+ ;;
+ *"RT-N56U")
+ name="rt-n56u"
+ ;;
+ *"Skyline SL-R7205"*)
+ name="sl-r7205"
+ ;;
+ *"Sparklan WCR-150GN")
+ name="wcr-150gn"
+ ;;
+ *"V22RW-2X2")
+ name="v22rw-2x2"
+ ;;
+ *"W502U")
+ name="w502u"
+ ;;
+ *"WHR-G300N")
+ name="whr-g300n"
+ ;;
+ *"Sitecom WL-341 v3")
+ name="wl341v3"
+ ;;
+ *"Sitecom WL-351 v1 002")
+ name="wl-351"
+ ;;
+ *"Tenda W306R V2.0")
+ name="w306r-v20"
+ ;;
+ *"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-336UN Wireless N router")
+ name="ur-336un"
+ ;;
+ *"AWB WR6202")
+ name="wr6202"
+ ;;
+ *"XDX RN502J")
+ name="xdxrn502j"
+ ;;
+ *)
+ name="generic"
+ ;;
+ esac
+
+ 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 000000000..5ebf42a85
--- /dev/null
+++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh
@@ -0,0 +1,84 @@
+#
+# 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_word "$1")"
+
+ [ "$ARGC" -gt 1 ] && return 1
+
+ case "$board" in
+ 3g-6200n | \
+ all0239-3g | \
+ all0256n | \
+ all5002 | \
+ bc2 | \
+ carambola | \
+ dir-300-b1 | \
+ dir-600-b1 | \
+ dir-600-b2 | \
+ dir-615-h1 | \
+ dir-620-a1 | \
+ dap-1350 | \
+ esr-9753 | \
+ fonera20n | \
+ freestation5 | \
+ hw550-3g | \
+ mofi3500-3gn | \
+ nbg-419n | \
+ nw718 | \
+ omni-emb | \
+ psr-680w | \
+ rt-g32-b1 | \
+ rt-n10-plus | \
+ rt-n15 | \
+ rt-n56u | \
+ sl-r7205 | \
+ w306r-v20 |\
+ w502u |\
+ wr6202 |\
+ v22rw-2x2 | \
+ wl341v3 | \
+ wl-330n | \
+ wl-351 | \
+ wli-tx4-ag300n | \
+ whr-g300n |\
+ ur-336un |\
+ wr512-3gn)
+ [ "$magic" != "2705" ] && {
+ 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