diff --git a/target/linux/sunxi/base-files/etc/board.d/02_network b/target/linux/sunxi/base-files/etc/board.d/02_network index 19fdd5d060..415a344389 100755 --- a/target/linux/sunxi/base-files/etc/board.d/02_network +++ b/target/linux/sunxi/base-files/etc/board.d/02_network @@ -31,6 +31,13 @@ sunxi_setup_interfaces() esac } +orangepi_generate_mac() +{ + local sd_hash=$(sha256sum /sys/class/block/mmcblk0/device/cid) + local mac_base=$(macaddr_canonicalize "$(echo "${sd_hash}" | dd bs=1 count=12 2>/dev/null)") + echo "$(macaddr_unsetbit_mc "$(macaddr_setbit_la "${mac_base}")")" +} + sunxi_setup_macs() { local board="$1" @@ -42,6 +49,9 @@ sunxi_setup_macs() friendlyarm,nanopi-r1s-h5) lan_mac=$(get_mac_binary "/sys/bus/i2c/devices/0-0051/eeprom" 0xfa) ;; + xunlong,orangepi-3) + lan_mac=$(orangepi_generate_mac) + ;; esac [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac