From: Adrian Schmutzler Date: Thu, 15 Aug 2019 13:13:27 +0000 (+0200) Subject: base-files: provide option to specify label MAC address in board.d X-Git-Tag: v21.02.0-rc1~5002 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=469e347f19ce9eefdc16f421b8e1f18ed60c310c;p=thirdparty%2Fopenwrt.git base-files: provide option to specify label MAC address in board.d For many devices, MAC addresses cannot be retrieved via the device tree alias. To still provide the label MAC address for those, this implements a second mechanism that will put the address into uci config. Note that this stores the actual MAC address, whereas in DTS we reference the bearing device. This is based on the work of Rosy Song Signed-off-by: Adrian Schmutzler --- diff --git a/package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate index 3ca035ca8b2..0b26afe57f4 100755 --- a/package/base-files/files/bin/config_generate +++ b/package/base-files/files/bin/config_generate @@ -260,6 +260,11 @@ generate_static_system() { uci -q set "system.@system[-1].hostname=$hostname" fi + local label_macaddr + if json_get_var label_macaddr label_macaddr; then + uci -q set "system.@system[-1].label_macaddr=$label_macaddr" + fi + if json_is_a ntpserver array; then local keys key json_get_keys keys ntpserver diff --git a/package/base-files/files/lib/functions/system.sh b/package/base-files/files/lib/functions/system.sh index 3051ac8476c..cb0508fe9cd 100644 --- a/package/base-files/files/lib/functions/system.sh +++ b/package/base-files/files/lib/functions/system.sh @@ -19,6 +19,7 @@ get_mac_label() { [ -n "$macdevice" ] && macaddr=$(get_mac_binary "$basepath/$macdevice/mac-address" 0 2>/dev/null) [ -n "$macaddr" ] || macaddr=$(get_mac_binary "$basepath/$macdevice/local-mac-address" 0 2>/dev/null) + [ -n "$macaddr" ] || macaddr=$(uci -q get system.@system[0].label_macaddr) echo $macaddr } diff --git a/package/base-files/files/lib/functions/uci-defaults.sh b/package/base-files/files/lib/functions/uci-defaults.sh index 2fb75559698..c2c6dc3fdc2 100755 --- a/package/base-files/files/lib/functions/uci-defaults.sh +++ b/package/base-files/files/lib/functions/uci-defaults.sh @@ -307,6 +307,14 @@ ucidef_set_interface_macaddr() { ucidef_set_interface "$network" macaddr "$macaddr" } +ucidef_set_label_macaddr() { + local macaddr="$1" + + json_select_object system + json_add_string label_macaddr "$macaddr" + json_select .. +} + ucidef_add_atm_bridge() { local vpi="$1" local vci="$2"