Rock64: MAC Address is NOT Unique!
#1
I have two Rock64 boards:
  • One is Version 2 (4GB).
  • One is Version 3 (4GB).
I've installed DietPi 6.34.3 on both boards. But I'm not able to connect both to the same broadcast domain at the same time because each has board has the same MAC address (86:e0:c0:ea:fa:a9)!

So I started digging around. And I found that...

I'm not able to find the first 3 octets (86:e0:c0) in any OUI databases. But the kernel ring buffer had these entries...

Code:
e1000e: Intel(R) PRO/1000 Network Driver e1000e: Copyright(c) 1999 - 2015 Intel Corporation. igb: Intel(R) Gigabit Ethernet Network Driver igb: Copyright (c) 2007-2014 Intel Corporation. igbvf: Intel(R) Gigabit Virtual Function Network Driver

...and...

Code:
RTL8211F Gigabit Ethernet stmmac-0:00: attached PHY driver [RTL8211F Gigabit Ethernet] (mii_bus:phy_addr=stmmac-0:00, irq=POLL) RTL8211F Gigabit Ethernet stmmac-0:01: attached PHY driver [RTL8211F Gigabit Ethernet] (mii_bus:phy_addr=stmmac-0:01, irq=POLL)

To state the obvious:
  • The first one appears to be related to an Intel PRO/1000 NIC.
  • The second one appears to be a Realtek RTL8211 NIC.
I've read a few of Mark's posts on the subject. And I know/believe that...

  1. When setting the MAC address: It should begin with 00:06:dc (i.e., The OUI of Syabas Technology [Amquest]). [ Reference ]
  2. The accepted solution is to specify the MAC address manually in /etc/uEnv.txt using the macaddr= and/or the eth_addr= settings. I may be wrong - But I believe that these settings are now located in /boot/armbianEnv.txt. [ Reference ]
But specifying either one or both has no affect on the MAC address (86:e0:c0:ea:fa:a9)! e.g., Neither setting appears in the Kernel command-line:


Code:
dietpi@DietPi:~$ grep addr  /boot/armbianEnv.txt ethaddr=00:06:dc:00:00:01 mac_addr=00:06:dc:00:00:01 dietpi@DietPi:~$ ip add | grep ether | awk '{ print $2 }' 86:e0:c0:ea:fa:a9 dietpi@DietPi:~$ cat /proc/cmdline root=UUID=1542112e-4bd9-4f4a-9660-e9405c792736 rootwait rootfstype=ext4  consoleblank=0 loglevel=4 ubootpart=72193746-01 usb-storage.quirks=0x2537:0x1066:u,0x2537:0x1068:u  dietpi@DietPi:~$ sudo dmesg | grep 'Kernel command line' | sed 's/\[.*\] //' Kernel command line: root=UUID=1542112e-4bd9-4f4a-9660-e9405c792736 rootwait rootfstype=ext4  consoleblank=0 loglevel=4 ubootpart=72193746-01 usb-storage.quirks=0x2537:0x1066:u,0x2537:0x1068:u

  1. Have I overlooked something besides the solution proposed on the Wiki page? i.e., WNpctool.exe
  2. Is there a solution for folks that don't have MS Windows in their environment? e.g., Linux "purists"
TIA!
Eric P.
Portland, Oregon
  Reply
#2
You need to spoof the MAC address when you have more than one on your network.
It seems the MAC address is not physically burned onto a chip or something, but is created by the Operating System and changes with Linux flavour (Arch is different than Debian for instance)

create /etc/systemd/network/00-default.link like below
Code:
[Match] MACAddress=da:19:c8:7a:6d:f4 <--- whatever your original address is [Link] MACAddress=da:19:c8:7a:6d:f5 <--- your desired address NamePolicy=kernel database onboard slot path

This will overwrite the system settings at each boot and works fine on Arch and Debian.
  Reply
#3
(01-25-2021, 09:42 AM)as365n4 Wrote: create /etc/systemd/network/00-default.link like below
Code:
[Match] MACAddress=da:19:c8:7a:6d:f4 <--- whatever your original address is [Link] MACAddress=da:19:c8:7a:6d:f5 <--- your desired address NamePolicy=kernel database onboard slot path

This will overwrite the system settings at each boot and works fine on Arch and Debian.

FIRST: I removed the previous entries from /boot/armbianEnv.txt...

Code:
dietpi@DietPi:~$ cat /boot/armbianEnv.txt verbosity=4 bootlogo=false overlay_prefix=rockchip rootdev=UUID=1542112e-4bd9-4f4a-9660-e9405c792736 rootfstype=ext4 usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u docker_optimizations=off console=none

SECOND: I created the /etc/systemd/network/00-default.link file and entered the five lines of configuration into it:

Code:
dietpi@DietPi:~$ ls -l /etc/systemd/network/ total 4 -rw-r--r-- 1 root root 118 Jan 25 16:26 00-default.link lrwxrwxrwx 1 root root  9 Dec 16 07:48 99-default.link -> /dev/null dietpi@DietPi:~$ cat /etc/systemd/network/00-default.link [Match] MACAddress=86:e0:c0:ea:fa:a9 [Link] MACAddress=00:06:dc:00:00:01 NamePolicy=kernel database onboard slot path

THIRD: I rebooted the Rock64.

But the MAC address persists, unchanged:

Code:
dietpi@DietPi:~$ ip add | grep ether | awk '{ print $2 }' 86:e0:c0:ea:fa:a9

Is there something more that I need to do? e.g., Perhaps remove /etc/systemd/network/99-default.link?

TIA!
Eric P.
Portland, Oregon
  Reply
#4
UPDATE

Over on the DietPi forum: Michalng provided a couple of feasible solutions to this. This is the one that I selected...

Code:
root@DietPi:~# mv /etc/udev/rules.d/80-net-setup-link.rules /tmp root@DietPi:~# echo 'SUBSYSTEM=="net", KERNEL=="eth0", ACTION=="add", RUN+="ip l set dev eth0 address 00:06:dc:00:00:01"' > /etc/udev/rules.d/99-eth0-mac.rules

And it seems to have worked as expected:

Code:
root@DietPi:~# cat /etc/udev/rules.d/99-eth0-mac.rules SUBSYSTEM=="net", KERNEL=="eth0", ACTION=="add", RUN+="ip l set dev eth0 address 00:06:dc:00:00:01" root@DietPi:~# reboot dietpi@DietPi:~$ ip address show eth0 | grep ether     link/ether 00:06:dc:00:00:01 brd ff:ff:ff:ff:ff:ff

HTH somebody!
Eric P.
Portland, Oregon
  Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  ROCK64 keeps connection bikz19 1 4,573 03-09-2019, 07:39 PM
Last Post: dkryder
  connect 2 network cable to rock64 device. idanskira 0 3,240 05-29-2018, 07:34 AM
Last Post: idanskira
  The Mac Address Would Not Change on Debian, nor Gentoo MarkHaysHarris777 5 14,496 03-27-2017, 12:57 PM
Last Post: grobbs
Question no permanent MAC address? need it to give Pine64 a reserved IP. faddah 14 37,787 08-24-2016, 03:25 PM
Last Post: MarkHaysHarris777
  Howto use MAC address as printed on the label on the back longsleep 3 9,818 08-21-2016, 07:31 AM
Last Post: MarkHaysHarris777

Forum Jump:


Users browsing this thread: 1 Guest(s)