diff options
author | Hauke Mehrtens <hauke@hauke-m.de> | 2014-01-12 18:56:15 +0000 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2014-01-12 18:56:15 +0000 |
commit | edab966e45dc53325de169b25d12dcaef6f64e10 (patch) | |
tree | a172bc7564f4fb68db94610de2ff33da3493bb10 /target/linux/brcm47xx/base-files/lib/preinit/05_init_interfaces_brcm | |
parent | f4f31511fdbc833d7d0d0f24bf2a646d309c9d9e (diff) |
brcm47xx: fix network failsafe indication
Remove the code used on the old switch driver.
The Ethernet drive is loaded as a module and needs some time to get up
therefor we added some wait function.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 39254
Diffstat (limited to 'target/linux/brcm47xx/base-files/lib/preinit/05_init_interfaces_brcm')
-rw-r--r-- | target/linux/brcm47xx/base-files/lib/preinit/05_init_interfaces_brcm | 35 |
1 files changed, 7 insertions, 28 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 index 76382e5cee..4b0d0eb674 100644 --- a/target/linux/brcm47xx/base-files/lib/preinit/05_init_interfaces_brcm +++ b/target/linux/brcm47xx/base-files/lib/preinit/05_init_interfaces_brcm @@ -1,37 +1,16 @@ #!/bin/sh -set_preinit_iface() { +preinit_iface() { ifname=eth0 # hardware specific overrides - case "$(cat /proc/diag/model)" in - "Linksys WAP54G V1") ifname=eth1;; - "ASUS WL-HDD") ifname=eth1;; - "ASUS WL-300g") ifname=eth1;; - "ASUS (unknown, BCM4702)") ifname=eth1;; - "Sitecom WL-105b") ifname=eth1;; + case "$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /proc/cpuinfo)" in + "Asus WLHDD") ifname=eth1;; + "Asus WL300G") ifname=eth1;; esac - # The interface has to be up to configure the switch - ifconfig $ifname 0.0.0.0 up - [ -f /lib/modules/`uname -r`/switch-robo.ko ] && { - rmmod switch-robo - insmod switch-robo - } - [ -f /lib/modules/`uname -r`/switch-adm.ko ] && { - rmmod switch-adm - insmod switch-adm - } + local try=0; + while [ $((try++)) -le 5 ] && [ ! -f /sys/class/net/$ifname/operstate ]; do sleep 1; done } -init_iface() { - [ -d /proc/switch/eth0 ] && [ "$ifname" = "eth0" ] && { - case "$(cat /proc/switch/eth0/cpuport)" in - "5") cpu_port="5u*";; - "8") cpu_port="8u*";; - esac - } -} - -boot_hook_add preinit_main set_preinit_iface -boot_hook_add preinit_main init_iface +boot_hook_add preinit_main preinit_iface |