aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm47xx/base-files/lib/preinit
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm47xx/base-files/lib/preinit')
-rw-r--r--target/linux/brcm47xx/base-files/lib/preinit/05_init_interfaces_brcm16
-rw-r--r--target/linux/brcm47xx/base-files/lib/preinit/15_set_preinit_interface_brcm16
2 files changed, 32 insertions, 0 deletions
diff --git a/target/linux/brcm47xx/base-files/lib/preinit/05_init_interfaces_brcm b/target/linux/brcm47xx/base-files/lib/preinit/05_init_interfaces_brcm
new file mode 100644
index 0000000..4b0d0eb
--- /dev/null
+++ b/target/linux/brcm47xx/base-files/lib/preinit/05_init_interfaces_brcm
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+preinit_iface() {
+ ifname=eth0
+
+ # hardware specific overrides
+ case "$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /proc/cpuinfo)" in
+ "Asus WLHDD") ifname=eth1;;
+ "Asus WL300G") ifname=eth1;;
+ esac
+
+ local try=0;
+ while [ $((try++)) -le 5 ] && [ ! -f /sys/class/net/$ifname/operstate ]; do sleep 1; done
+}
+
+boot_hook_add preinit_main preinit_iface
diff --git a/target/linux/brcm47xx/base-files/lib/preinit/15_set_preinit_interface_brcm b/target/linux/brcm47xx/base-files/lib/preinit/15_set_preinit_interface_brcm
new file mode 100644
index 0000000..f40e160
--- /dev/null
+++ b/target/linux/brcm47xx/base-files/lib/preinit/15_set_preinit_interface_brcm
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+preinit_ip() {
+ # if the preinit interface isn't specified and ifname is set in
+ # preinit.arch use that interface
+ if [ -z "$pi_ifname" ]; then
+ pi_ifname=$ifname
+ fi
+
+ [ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && {
+ ifconfig $pi_ifname $pi_ip netmask $pi_netmask broadcast $pi_broadcast up
+
+ local try=0;
+ while [ $((try++)) -le 5 ] && [ ! "$(cat /sys/class/net/$pi_ifname/operstate)" = "up" ]; do sleep 1; done
+ }
+}