ipq40xx: set MAC address for AVM boxes at preinit
authorDavid Bauer <mail@david-bauer.net>
Sat, 17 Apr 2021 22:10:38 +0000 (00:10 +0200)
committerDavid Bauer <mail@david-bauer.net>
Mon, 3 Apr 2023 01:14:58 +0000 (03:14 +0200)
Usually the bootloader configures the MAC address of the ethernet
interfaces. However newer boxes do not have the MAC address and relevant
pointers in their bootloader partition anymore, hence boxes end up with
random addresses on every boot.

Obtain the MAC address from the TFFS and assign it to the ethernet
interface at preinit.

Signed-off-by: David Bauer <mail@david-bauer.net>
target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh

index ce0b55bb80915e9ad48bd127a5d5bf7ce2f8e596..e1a79e9c82bca37f33b0b96c9bbeb7913f8cea65 100644 (file)
@@ -16,6 +16,12 @@ preinit_set_mac_address() {
                ip link set dev lan4 address $base_mac
                ip link set dev wan address $(mtd_get_mac_binary_ubi Factory 0x9006)
                ;;
+       avm,fritzbox-7530|\
+       avm,fritzrepeater-1200|\
+       avm,fritzrepeater-3000)
+               tffsdev=$(find_mtd_chardev nand-tffs)
+               ip link set dev eth0 address $(/usr/bin/fritz_tffs_nand -d $tffsdev -n maca -b)
+               ;;
        engenius,eap2200)
                base_mac=$(cat /sys/class/net/eth0/address)
                ip link set dev eth1 address $(macaddr_add "$base_mac" 1)