63 lines
1.4 KiB
Plaintext
63 lines
1.4 KiB
Plaintext
|
|
. /lib/functions/uci-defaults.sh
|
|
. /lib/functions/system.sh
|
|
|
|
rockchip_setup_interfaces()
|
|
{
|
|
local board="$1"
|
|
|
|
case "$board" in
|
|
friendlyarm,nanopi-r4s)
|
|
ucidef_set_interfaces_lan_wan 'eth1' 'eth0'
|
|
;;
|
|
friendlyarm,nanopi-r5s)
|
|
ucidef_set_interfaces_lan_wan 'eth1 eth2' 'eth0'
|
|
;;
|
|
*)
|
|
ucidef_set_interface_lan 'eth0'
|
|
;;
|
|
esac
|
|
}
|
|
|
|
nanopi_generate_mac()
|
|
{
|
|
local mmc_hash=$(sha256sum /sys/block/mmcblk*/device/cid | head -n 1)
|
|
local mac_base=$(macaddr_canonicalize "$(echo "${mmc_hash}" | dd bs=1 count=12 2>/dev/null)")
|
|
echo "$(macaddr_unsetbit_mc "$(macaddr_setbit_la "${mac_base}")")"
|
|
}
|
|
|
|
rockchip_setup_macs()
|
|
{
|
|
local board="$1"
|
|
local lan_mac=""
|
|
local wan_mac=""
|
|
local label_mac=""
|
|
|
|
case "$board" in
|
|
friendlyarm,nanopi-r4s)
|
|
if [ -f /sys/bus/i2c/devices/2-0051/eeprom ]; then
|
|
wan_mac=$(get_mac_binary "/sys/bus/i2c/devices/2-0051/eeprom" 0xfa)
|
|
else
|
|
wan_mac=$(nanopi_generate_mac)
|
|
fi
|
|
lan_mac=$(macaddr_setbit_la "$wan_mac")
|
|
;;
|
|
friendlyarm,nanopi-r5s)
|
|
wan_mac=$(nanopi_generate_mac)
|
|
lan_mac=$(macaddr_add "$wan_mac" +1)
|
|
;;
|
|
esac
|
|
|
|
[ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
|
|
[ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
|
|
[ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
|
|
}
|
|
|
|
board_config_update
|
|
board=$(board_name)
|
|
rockchip_setup_interfaces $board
|
|
rockchip_setup_macs $board
|
|
board_config_flush
|
|
|
|
exit 0
|