r8152 network driver issue - disconnects / no connection at all

Hi,

I’m having issue with the RTL8152B driver.
The RaspberryPi0-2W does boot most of the time with functioning network.
This network connection can break, then the whole pi is offline.
A power cycle fixes it. (most of the time, sometimes multiple reboots are necessary)

Here a log from a boot up process where the pi does not have a valid network connection.
From switch perspective a 100Mbps full duplex is advertised. In case of this issue no packets are send from the pi.

balenaOS 6.1.24+rev2

root@2a63c82:~# modinfo r8152
filename:       /lib/modules/5.15.92-v8/kernel/drivers/net/usb/r8152.ko.zst
version:        v1.12.13
license:        GPL
description:    Realtek RTL8152/RTL8153 Based USB Ethernet Adapters
author:         Realtek linux nic maintainers <nic_swsd@realtek.com>
firmware:       rtl_nic/rtl8156b-2.fw
firmware:       rtl_nic/rtl8156a-2.fw
firmware:       rtl_nic/rtl8153c-1.fw
firmware:       rtl_nic/rtl8153b-2.fw
firmware:       rtl_nic/rtl8153a-4.fw
firmware:       rtl_nic/rtl8153a-3.fw
firmware:       rtl_nic/rtl8153a-2.fw
srcversion:     C5092A86D889EBD2D5BEE0E
alias:          usb:v2357p0601d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v2357p0601d*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v0955p09FFd*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v0955p09FFd*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v13B1p0041d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v13B1p0041d*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v17EFpA387d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v17EFpA387d*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v17EFp721Ed*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v17EFp721Ed*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v17EFp7214d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v17EFp7214d*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v17EFp720Cd*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v17EFp720Cd*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v17EFp7205d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v17EFp7205d*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v17EFp3082d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v17EFp3082d*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v17EFp3069d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v17EFp3069d*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v17EFp3062d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v17EFp3062d*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v17EFp3054d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v17EFp3054d*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v17EFp304Fd*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v17EFp304Fd*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v04E8pA101d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v04E8pA101d*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v045Ep0C5Ed*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v045Ep0C5Ed*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v045Ep0927d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v045Ep0927d*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v045Ep07C6d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v045Ep07C6d*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v045Ep07ABd*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v045Ep07ABd*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v0BDAp8156d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v0BDAp8156d*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v0BDAp8155d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v0BDAp8155d*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v0BDAp8153d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v0BDAp8153d*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v0BDAp8152d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v0BDAp8152d*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v0BDAp8053d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v0BDAp8053d*dc*dsc*dp*icFFisc*ip*in*
alias:          usb:v0BDAp8050d*dc*dsc*dp*ic02isc06ip00in*
alias:          usb:v0BDAp8050d*dc*dsc*dp*icFFisc*ip*in*
depends:        mii
intree:         Y
name:           r8152
vermagic:       5.15.92-v8 SMP preempt mod_unload modversions aarch64
root@2a63c82:~# 

Here are the boot up logs. Once I’ve the logs from a working one (intermittent connection loss) I’ll add them here as well.

Jan 19 11:55:29 localhost kernel: usb 1-1.4: new high-speed USB device number 3 using dwc_otg
Jan 19 11:55:29 localhost kernel: usb 1-1.4: New USB device found, idVendor=0bda, idProduct=8152, bcdDevice=20.00
Jan 19 11:55:29 localhost kernel: usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jan 19 11:55:29 localhost kernel: usb 1-1.4: Product: USB 10/100 LAN
Jan 19 11:55:29 localhost kernel: usb 1-1.4: Manufacturer: Realtek
Jan 19 11:55:29 localhost kernel: usb 1-1.4: SerialNumber: <REDACTED>
...
Jan 19 11:55:31 localhost kernel: usbcore: registered new interface driver r8152
Jan 19 11:55:31 localhost kernel: r8152 1-1.4:1.0: skip request firmware
Jan 19 11:55:31 localhost kernel: r8152 1-1.4:1.0 (unnamed net_device) (uninitialized): Get ether addr fail
Jan 19 11:55:31 localhost kernel: r8152 1-1.4:1.0 eth0: v1.12.13
...

Jan 19 11:55:37 fea082b NetworkManager[2028]: <info>  [1737284137.4101] manager: (eth0): new Ethernet device (/org/freedesktop/NetworkManager/Devices/2)
Jan 19 11:55:37 fea082b NetworkManager[2028]: <info>  [1737284137.4199] settings: (eth0): created default wired connection 'Wired connection 1'
Jan 19 11:55:37 fea082b NetworkManager[2028]: <info>  [1737284137.4203] device (eth0): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
Jan 19 11:55:37 fea082b NetworkManager[2028]: <warn>  [1737284137.4239] platform-linux: do-change-link[3]: failure 99 (Cannot assign requested address)