Debian 11.9 network / eth0 not starting

Hi,

I have several Beaglebone Black for an industrial project with network issue that I would like some help with.

The units are flashed with (from the download page):
am335x-eMMC-flasher-debian-11.8-iot-armhf-2023-10-07-4gb.img.xz

then:

sudo apt update
sudo apt -y upgrade.
cat /etc/debian_version
11.9
uname -a
Linux BeagleBone 5.10.168-ti-r77 #1bullseye SMP PREEMPT Wed Feb 28 21:05:58 UTC 2024 armv7l GNU/Linux

The network/eth0 works as expected after the first installation for hours.
During this time, I can reboot, power cycles, halt, abrupt power loss by just unplugging the power cable/usb on a running system, wait 10-15 minute without any power to the unit. This works on multiple routers from different brand/models and multiple power supplies, USB keyboards/hdmi connected/disconnected.

However, if the unit is disconnected from power over night then some units do not start up the network interface again. The network/NIC LEDs lights up for about 5-10s and then turns off as soon as the heartbeat on the BBB indicator LED starts. Network do not turn on again. This issue seem to have a hardware dependency of the BBB. I have tried multiple power supplies and routers. Nothing brings up the eth0 but network over usb0 works.

I also found out that if I leave the SD-card with the flash image mentioned above mounted but without pressing S2 button, then the BBB “boot” from the SD but does not reinstall the image. If I now reboot without the SD card, network will work for a few hours but the process repeats it self after few hours.

I have also re-generated (from MachineId - Debian Wiki)
/etc/machine-id
/var/lib/dbus/machine-id

Does anyone have some pointers what the problem seem to be?

Some simple checks:

sudo systemctl status networking.service
[sudo] password for debian:
â—Ź networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
Active: active (exited) since Tue 2024-03-26 22:31:27 UTC; 10h ago
Docs: man:interfaces(5)
Process: 579 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=0/SUCCESS)
Main PID: 579 (code=exited, status=0/SUCCESS)
CPU: 222ms

Jun 18 14:56:02 BeagleBone systemd[1]: Starting Raise network interfaces…
Mar 26 22:31:27 BeagleBone systemd[1]: Finished Raise network interfaces.

debian@evdc-05:~$ dmesg | grep ether
[ 11.091824] cpsw 4a100000.ethernet: initialized cpsw ale version 1.4
[ 11.091851] cpsw 4a100000.ethernet: ALE Table size 1024
[ 11.092045] cpsw 4a100000.ethernet: cpts: overflow check period 1250 (jiffies)
[ 11.092128] cpsw 4a100000.ethernet: Detected MACID = f4:b8:98:8b:06:85
[ 29.884415] cpsw 4a100000.ethernet: initializing cpsw version 1.12 (0)
[ 29.896668] cpsw 4a100000.ethernet: phy “/ocp/interconnect@4a000000/segment@0/target-module@100000/ethernet@0/mdio@1000/ethernet-phy@0” not found on slave 0
[ 43.279200] using random self ethernet address
[ 43.279228] using random host ethernet address
[ 43.718445] using random self ethernet address
[ 43.718473] using random host ethernet address

ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether f4:b8:98:8b:06:85 brd ff:ff:ff:ff:ff:ff
3: can0: <NOARP,ECHO> mtu 16 qdisc noop state DOWN group default qlen 10
link/can
4: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether f4:b8:98:8b:06:88 brd ff:ff:ff:ff:ff:ff
inet 192.168.7.2/24 brd 192.168.7.255 scope global usb0
valid_lft forever preferred_lft forever
inet6 fe80::f6b8:98ff:fe8b:688/64 scope link
valid_lft forever preferred_lft forever
5: usb1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether f4:b8:98:8b:06:8a brd ff:ff:ff:ff:ff:ff
inet 192.168.6.2/24 brd 192.168.6.255 scope global usb1
valid_lft forever preferred_lft forever
inet6 fe80::f6b8:98ff:fe8b:68a/64 scope link
valid_lft forever preferred_lft forever

We have had a driver hack hanging around since 3.8.x to make this work, however in mid v5.x kernel TI pushed a new cpsw driver, so our old hack no longer works… patches/drivers/ti/cpsw/0001-cpsw-search-for-phy.patch · ti-linux-4.19.y · Robert Nelson / ti-linux-kernel-dev · GitLab

Options, stick with the older v4.19.x-ti branch, or remove C24 from your board to make it similar to the RevC3 pcb’s…

Regards,

1 Like

my state:
4: eth0: <NO-CARRIER,BROADCAST,MULTICAST,DYNAMIC,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000

Hi!
I have a similar problem, my eth0 does not detect any connection of the cable (cable checked and tested on 1Gb). I have tried all versions from debian 10 and above, while connecting a separate usb-eth adapter detects and works.
Maybe there is some kind of blocking at the board level?
I have a beagleboard-green.

@RobertCNelson do I understand you correctly, that with RevC3 PCB ethernet should work fine?
I’ve updated my Beaglebone Black RevC PCB (C24 is empty) and after apt update && apt dist-upgrade ethernet stopped working…

Do I have to downgrade or there is another workaround?

$sudo ifconfig

next

$pstree

updates from 17th April fixed the issues!

1 Like

Where did you get that update?
I just flashed sd card with teh newest version from the website

sudo apt update && sudo apt dist-upgrade

Thanks forget about that upgrade command, now it works

It stopped working again after updating

If anyone still looking for an answer. The kernel 5.10.168-ti-r77 and 5.10.168-ti-r82 both has the ethernet broken. Even if it starts from the first boot, it will break if you do ifconfig eth0 down then ifconfig eth0 up.

the right kernel which works perfectly is 5.10.168-ti-r71
Try that and see if your ethernet works