mediatek: store MAC address in boot partition on Banana Pi R2
Like many boards, the Banana Pi R2 doesn't have permanant storage of its MAC address, and we store the first random one that the kernel generates in order to use it later and at least be consistent. Store it in the FAT boot partition, just as the U7623 board (and others) do. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
This commit is contained in:
parent
7adc29f59e
commit
e19ffb25d9
|
@ -1,23 +1,19 @@
|
|||
# Copyright (C) 2018 OpenWrt.org
|
||||
|
||||
RECOVERY_PART=/dev/mmcblk0p1
|
||||
. /lib/functions.sh
|
||||
. /lib/functions/system.sh
|
||||
|
||||
preinit_set_mac_address() {
|
||||
set_recovery_mac_address() {
|
||||
local RECOVERY_PART="$1"
|
||||
local mac
|
||||
|
||||
. /lib/functions.sh
|
||||
. /lib/functions/system.sh
|
||||
|
||||
case $(board_name) in
|
||||
unielec,u7623-02-emmc-512m)
|
||||
if [ -b $RECOVERY_PART ]; then
|
||||
insmod nls_cp437
|
||||
insmod nls_iso8859-1
|
||||
insmod fat
|
||||
insmod vfat
|
||||
mkdir -p /tmp/recovery
|
||||
mount -o rw,noatime $RECOVERY_PART /tmp/recovery
|
||||
|
||||
if [ -b $RECOVERY_PART ]; then
|
||||
insmod nls_cp437
|
||||
insmod nls_iso8859-1
|
||||
insmod fat
|
||||
insmod vfat
|
||||
mkdir -p /tmp/recovery
|
||||
if mount -o rw,noatime $RECOVERY_PART -t vfat /tmp/recovery; then
|
||||
if [ -f "/tmp/recovery/mac_addr" ];
|
||||
then
|
||||
mac=$(cat /tmp/recovery/mac_addr)
|
||||
|
@ -28,17 +24,34 @@ preinit_set_mac_address() {
|
|||
|
||||
sync
|
||||
umount /tmp/recovery
|
||||
rm -rf /tmp/recovery
|
||||
rmdir /tmp/recovery
|
||||
|
||||
ip link set dev wan address $mac 2> /dev/null
|
||||
|
||||
mac=$(macaddr_add $mac 1)
|
||||
|
||||
ip link set dev lan0 address $mac 2>/dev/null
|
||||
ip link set dev lan1 address $mac 2>/dev/null
|
||||
ip link set dev lan2 address $mac 2>/dev/null
|
||||
ip link set dev lan3 address $mac 2>/dev/null
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
ip link set dev wan address $mac 2> /dev/null
|
||||
preinit_set_mac_address() {
|
||||
local rootpart
|
||||
|
||||
mac=$(macaddr_add $mac 1)
|
||||
|
||||
ip link set dev lan0 address $mac 2>/dev/null
|
||||
ip link set dev lan1 address $mac 2>/dev/null
|
||||
ip link set dev lan2 address $mac 2>/dev/null
|
||||
ip link set dev lan3 address $mac 2>/dev/null
|
||||
case $(board_name) in
|
||||
bananapi,bpi-r2)
|
||||
rootpart=$(cat /proc/cmdline)
|
||||
rootpart="${rootpart##*root=}"
|
||||
rootpart="${rootpart%%p3 *}"
|
||||
if [ "$rootpart" = "/dev/mmcblk0" -o "$rootpart" = "/dev/mmcblk1" ]; then
|
||||
set_recovery_mac_address ${rootpart}p2
|
||||
fi
|
||||
;;
|
||||
unielec,u7623-02-emmc-512m)
|
||||
set_recovery_mac_address /dev/mmcblk0p1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue