Duplicate MAC addresses

I am placing this in the Hardware section as MAC addresses are usually hardware based by default and you don’t generally need to worry with them while setting up a new machine. They obviously can be changed in software, but you rarely need to do that during the initial setup of a machine.

When I connected my 2 new Renegades (named jay and silentbob) to the NAS LAN for initial prep I noticed some strange behavior between these 2 new filer nodes and my existing controllers. I was seeing duplicate MAC addresses for the 2 Renegades on the controllers and upon investigating I found this on them by default:

billd@jay [05:30:44]:~$ ifconfig eth0
eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet6 fe80::90c9:d0ff:fe1c:d9ae prefixlen 64 scopeid 0x20
ether 92:c9:d0:1c:d9:ae txqueuelen 1000 (Ethernet)

billd@jay [05:30:47]:~$ ip link show eth0
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
link/ether 92:c9:d0:1c:d9:ae brd ff:ff:ff:ff:ff:ff

billd@silentbob [05:31:17]:~$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,MULTICAST> mtu 1500
inet6 fe80::90c9:d0ff:fe1c:d9ae prefixlen 64 scopeid 0x20
ether 92:c9:d0:1c:d9:ae txqueuelen 1000 (Ethernet)

billd@silentbob [05:32:37]:~$ ip link show eth0
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
link/ether 92:c9:d0:1c:d9:ae brd ff:ff:ff:ff:ff:ff

Note that both machines with identical installs of the Raspbian 11 image come online with the same MAC address of 92:c9:d0:1c:d9:ae. I worked around this for the moment by just changing their MACs at boot which works fine, but this might cause some confusion if you didn’t realize this was the case and were deploying more than one unit as I did. This wasn’t a cloned image or anything along those lines, both machines were built from the default image and I just ran through a process to configure them identically for use on my NAS LAN.

Since this MAC doesn’t seem to lookup to any specific vendor I’m curious if this is defined somewhere that can be changed in lieu of running ip link set dev eth0 address at each boot to something unique.

The MAC address is set by the bootloader and the efuses are not programmed. We will fix this in a few weeks by calculating the randomized MAC based on the fixed SoC unique ID.

This has been fixed in the bootloader and will get pushed to new images starting tomorrow. If you have an existing image, use libretech-flash-tool to flash a new bootloader onto the MicroSD card and it should not have duplicates now. Thanks for the report!

I know this is a little old, but I tried to update the bootloader of LibreELEC 11.x on my SD card in another linux system using your tool and it made it unresponsive. Nothing came up. How can I fix it such that it is set in the boot args in the /flash/extlinux/extlinux.conf file? Seems the folks over at LibreELEC aren’t using your latest bootloader for your device. I’m on a roc-3328-cc Renegade by the way.

Can’t have two of these hooked up on the network. Can you explain your fix in more detail?

Our ATF enables the RK3328 efuse block: rk3328: add efuse initialization in ATF · libre-computer-project/arm-trusted-firmware@4c7a663 · GitHub

Our u-boot enables makes use of the efuse block to generate the board’s static MAC.

LibreELEC might not be doing one or the other.