diff options
Diffstat (limited to 'target/linux')
-rwxr-xr-x | target/linux/oxnas/base-files/etc/board.d/02_network | 10 | ||||
-rwxr-xr-x | target/linux/oxnas/base-files/lib/oxnas.sh | 24 |
2 files changed, 34 insertions, 0 deletions
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 a025027fea..d4010e8b3a 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 991f92720d..b0d79ea7cf 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 |