[rdc] base-files: gracefully handle empty variables in preinit (#11155)
[openwrt-working-2016/.git] / target / linux / rdc / base-files / lib / preinit / 05_set_ether_mac_rdc
index 1fe1109981bf5507eeabadfbce9a0f9c8a46d7ba..1a9ad2f2336b4dd843329927867fcd390e134401 100644 (file)
@@ -1,15 +1,19 @@
 #!/bin/sh
-# Copyright (C) 2009 OpenWrt.org
+# Copyright (C) 2009-2012 OpenWrt.org
 
 . /lib/functions/boot.sh
 
 r6040_module() {
+       insmod libphy
+       insmod swconfig
+       insmod ip17xx
+       sleep 1
        insmod r6040
 }
 
 set_ether_mac() {
        kernel=$(grep firmware /proc/mtd | awk -F: '{print $1}')
-       [ -n $kernel ] && hdr=$(dd if=/dev/$kernel count=4 bs=1 2> /dev/null)
+       [ -n "$kernel" ] && hdr=$(dd if=/dev/$kernel count=4 bs=1 2> /dev/null)
        [ "$hdr" = "CSYS" ] && config=$(find_mtd_part config)
        if [ -n "$config" ]; then
                mac0=$(hexdump -n 6 -e '6/1 ":%X"' -s 24583 $config | cut -c2-)
@@ -17,13 +21,13 @@ set_ether_mac() {
                mac1=$(hexdump -n 6 -e '6/1 ":%X"' -s 24589 $config | cut -c2-)
                [ "$mac1" = "FF:FF:FF:FF:FF:FF" -o "$mac0" = "0:0:0:0:0:0" ] && unset mac1
        fi
-       if [ -n $mac0 ]; then
+       if [ -n "$mac0" ]; then
                logger -t kernel -p user.info "r6040: Setting MAC for eth0 to $mac0"
-               ifconfig eth0 hw ether $mac0
+               ifconfig eth0 hw ether "$mac0"
        fi
-       if [ -n $mac1 ]; then
+       if [ -n "$mac1" ]; then
                logger -t kernel -p user.info "r6040: Setting MAC for eth1 to $mac1"
-               ifconfig eth1 hw ether $mac1
+               ifconfig eth1 hw ether "$mac1"
        fi
 }