milas / talos-sbc-rk3588

System overlay & custom kernel/installer to support running Talos Linux on RK3588
Mozilla Public License 2.0
5 stars 2 forks source link

Random MAC addresses resulting in changing IP addresses when using DHCP #2

Open choopm opened 1 month ago

choopm commented 1 month ago

Thanks for your builds. My testing Rock 5B is finally happy to boot with networking available :rocket:

However, on every reboot the MAC address is randomized:

[    3.090080] r8169 0004:41:00.0: can't read MAC address, setting random one
[    3.091770] r8169 0004:41:00.0 eth0: RTL8125B, 1e:01:97:a0:7a:9a, XID 641, IRQ 129
...
[    3.122015] r8169 0004:41:00.0: can't read MAC address, setting random one
[    3.123643] r8169 0004:41:00.0 eth0: RTL8125B, 0a:1b:7d:24:b3:aa, XID 641, IRQ 129
...
[    3.102139] r8169 0004:41:00.0: can't read MAC address, setting random one
[    3.103723] r8169 0004:41:00.0 eth0: RTL8125B, 6a:92:84:9f:db:01, XID 641, IRQ 127

This forces me to use dynamic dns for lan dhcp clients.

I noticed those commits on the default branch rk3588: https://gitlab.collabora.com/hardware-enablement/rockchip-3588/u-boot/-/compare/2024.01-rk3588...rk3588

u-boot btw always shows the same MAC address:

U-Boot 2024.01 (May 21 2024 - 02:36:29 +0000)
....
Hit any key to stop autoboot:  0

=> printenv
...
eth1addr=8a:29:89:6c:ab:4b
ethaddr=8a:29:89:6c:ab:4a
...

Any idea on how to pass it to the driver?

milas commented 1 month ago

Good find! I just updated the U-Boot ref and kicked off new builds: f301361cfa440221997e4dc0fe1ae3fb5e956ced

I'll test on a 5B when it's done and see if that's sufficient.

milas commented 1 month ago

OK, give v1.7.4-rk3588.alpha.5 a try and let me know.

I got a stable MAC across 2x boots:

[    3.119591] r8169 0004:41:00.0: enabling device (0000 -> 0003)
[    3.136067] r8169 0004:41:00.0 eth0: RTL8125B, 00:e0:4c:68:01:85, XID 641, IRQ 129
[    3.136758] r8169 0004:41:00.0 eth0: jumbo features [frames: 9194 bytes, tx checksumming: ko]

I ran talosctl shutdown, pulled the plug, then powered it back up:

[    3.069189] r8169 0004:41:00.0: enabling device (0000 -> 0003)
[    3.090836] r8169 0004:41:00.0 eth0: RTL8125B, 00:e0:4c:68:01:85, XID 641, IRQ 127
[    3.091505] r8169 0004:41:00.0 eth0: jumbo features [frames: 9194 bytes, tx checksumming: ko]

Let me know if it looks better for you -- you should be able to in-place upgrade:

talosctl upgrade --nodes=$IP --debug --image=ghcr.io/milas/talos-rk3588:v1.7.4-rk3588.alpha.5-rock-5b
choopm commented 1 month ago

I tried v1.7.4-rk3588.alpha.5 without any luck:

u-boot now doesn't show the MAC address anymore when using printenv. Kernel driver still picks random addresses:

[    3.201370] r8169 0004:41:00.0: enabling device (0000 -> 0003)
[    3.218116] r8169 0004:41:00.0: can't read MAC address, setting random one
[    3.219839] r8169 0004:41:00.0 eth0: RTL8125B, 96:a9:ef:02:59:63, XID 641, IRQ 129
...
[    3.097266] r8169 0004:41:00.0: enabling device (0000 -> 0003)
[    3.114289] r8169 0004:41:00.0: can't read MAC address, setting random one
[    3.115792] r8169 0004:41:00.0 eth0: RTL8125B, 32:65:d5:58:44:b5, XID 641, IRQ 129

I checked a few things and it seems Collabora is using u-boot 2023.07-rc4-g46349e27 in their CI test pipelines which is currently HEAD on branch rk3588-rock5b.

Can we give that u-boot version a try? Note that they are using rk3588_bl31_v1.27.elf from Jul '22 - I'm not sure whether this is required.

However, the 2023.07-rc4 u-boot looks promising since u-boot also supports network booting where the 2024.01 builds are not showing any interface to me. The previous change makes things worse as no MAC address is showing up in u-boot anymore. I noticed network PXE support when I played with my own sbc overlay in the past and using the combination of 2023.07-rc4+rk3588_bl31_v1.27.elf.

I wonder why your board gets a stable MAC address. Did you ever booted vendors images and might have burned an efuse?

milas commented 1 month ago

Did you ever booted vendors images and might have burned an efuse?

Ah, yeah, that's likely it 🤦🏻

However, the 2023.07-rc4 u-boot looks promising

Sounds good to me - my goal is to PXE boot my cluster now as well! I'll update it when I have a moment