oxnas: add method to extract mac_adr from legacy cmdline
authorDaniel Golle <daniel@makrotopia.org>
Sun, 4 Sep 2016 01:34:19 +0000 (03:34 +0200)
committerDaniel Golle <daniel@makrotopia.org>
Sun, 4 Sep 2016 02:58:46 +0000 (04:58 +0200)
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
target/linux/oxnas/base-files/etc/board.d/02_network
target/linux/oxnas/base-files/lib/oxnas.sh

index a025027..d4010e8 100755 (executable)
@@ -2,10 +2,20 @@
 
 . /lib/functions/uci-defaults.sh
 . /lib/functions/system.sh
+. /lib/oxnas.sh
 
 board_config_update
 
+lan_mac=""
+
+case "$(oxnas_board_name)" in
+       kd20)
+               lan_mac="$(legacy_boot_mac_adr)"
+               ;;
+esac
+
 ucidef_set_interface_lan "eth0" "dhcp"
+[ -n "$lan_mac" ] && ucidef_set_interface_macaddr lan "$lan_mac"
 
 board_config_flush
 
index 991f927..b0d79ea 100755 (executable)
@@ -6,6 +6,30 @@
 OXNAS_BOARD_NAME=
 OXNAS_MODEL=
 
+bootloader_cmdline_var() {
+       local param
+       local pval
+       for arg in $(cat /proc/device-tree/chosen/bootloader-args); do
+               param="$(echo $arg | cut -d'=' -f 1)"
+               pval="$(echo $arg | cut -d'=' -f 2-)"
+
+               if [ "$param" = "$1" ]; then
+                       echo "$pval"
+               fi
+       done
+}
+
+legacy_boot_mac_adr() {
+       local macstr
+       local oIFS
+       macstr="$(bootloader_cmdline_var mac_adr)"
+       oIFS="$IFS"
+       IFS=","
+       set -- $macstr
+       printf "%02x:%02x:%02x:%02x:%02x:%02x" $1 $2 $3 $4 $5 $6
+       IFS="$oIFS"
+}
+
 oxnas_board_detect() {
        local machine
        local name