From 9c69ba83e2d0c19959fed81cf4fa038fde3e518d Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Sun, 4 Sep 2016 03:34:19 +0200 Subject: [PATCH] oxnas: add method to extract mac_adr from legacy cmdline Signed-off-by: Daniel Golle --- .../oxnas/base-files/etc/board.d/02_network | 10 ++++++++ target/linux/oxnas/base-files/lib/oxnas.sh | 24 +++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/target/linux/oxnas/base-files/etc/board.d/02_network b/target/linux/oxnas/base-files/etc/board.d/02_network index a025027fea7..d4010e8b3a6 100755 --- a/target/linux/oxnas/base-files/etc/board.d/02_network +++ b/target/linux/oxnas/base-files/etc/board.d/02_network @@ -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 diff --git a/target/linux/oxnas/base-files/lib/oxnas.sh b/target/linux/oxnas/base-files/lib/oxnas.sh index 991f92720dd..b0d79ea7cf0 100755 --- a/target/linux/oxnas/base-files/lib/oxnas.sh +++ b/target/linux/oxnas/base-files/lib/oxnas.sh @@ -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 -- 2.30.2