network problem with pi400

Hello,

i have a pi400 that I use as samba server, using wicked with fixed ip address. This worked without problem.
I tried to move to systemd-networkd:
I created a file 05-eth0.network in /etc/systemd/network

[Match]
Name=eth0
[Network]
DHCP=false
Address=192.168.4.91/24
Gateway=192.168.4.1
LinkLocalAddressing=no
DNS=192.168.4.91

I disabled wicked, enabled systemd-networkd and systemd-resolved via systemctl command and reboot.
There was no network and ip a showed that eth0 was down

# ip a
...
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
      link/ether e4:5f:01:08:e1:2c brd ff:ff:ff:ff:ff:ff  

I tried to set it up

# ip link set eth0 up
[3031.8875931] T1617] could not attach to PHY
[3031.8900015] T1617] bcmgenet fd580000.ethernet eth0: failed to connect to PHY
RTNETLINK answers: No such device

I tried then to go back with wicked : disabled systemd-networkd, systemd-resolved, enabled wicked and reboot but the network eth0 device was still down and “ip link set eth0 up” gives the same error.
Looking in Yast I see that the network use wicked. Device eth0 is present and configured with a static address.
Module genet is loaded

# lsmod | grep genet
genet                73728  0
# inxi -n
Network:
   Device-1 bmc2835-mmc driver: sdhci_iproc
   IF: wlan0 state: down  mac: e4:5f:01:08:e1:2c
   Device-2: bmc7211-genet-v5 driver: bcmgenet
   IF: eth0 state: down mac: e4:5f:01:08:e1:2b
# dmesg | grep genet
    11.273377] bcmgenet fd580000.ethernet: GENET 5.0 EPHY 0x0000
    21.530839] bcmgenet fd580000.ethernet eth0: failed to connect to PHY

Any hint?
Many thanks in advance
Philippe

Hm, would have been informational when you had something like “systemd networking” in your subject.

In my case I can not be of much help then telling what I have (and no I do not see any connection with SAMBA in getting a NIC to function?):

boven:/etc/systemd/network # cat 20-wired.network 
[Match]
Name=eth0

[Network]
Address=10.0.0.154/24
Gateway=10.0.0.138
boven:/etc/systemd/network #

And my DNS resolver config is straight forward:

boven:~ # ls /l /etc/resolv.conf
ls: cannot access '/l': No such file or directory
/etc/resolv.conf
boven:~ # ls -l /etc/resolv.conf
-rw-r--r-- 1 root root 65 May 24 16:51 /etc/resolv.conf
boven:~ # cat /etc/resolv.conf 
search xs4all.nl
nameserver 195.121.1.34
nameserver 195.121.1.66
boven:~ #

Result:

boven:~ # 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: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether ec:8e:b5:da:0d:0d brd ff:ff:ff:ff:ff:ff
    altname enp1s0
    inet 10.0.0.154/24 brd 10.0.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 2a02:a465:d34e:1:ee8e:b5ff:feda:d0d/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 6941sec preferred_lft 3341sec
    inet6 fe80::ee8e:b5ff:feda:d0d/64 scope link 
       valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 94:e9:79:76:e6:cd brd ff:ff:ff:ff:ff:ff
    altname wlp2s0
boven:~ # ip route
default via 10.0.0.138 dev eth0 proto static 
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.154 
boven:~ #

And you say you “disabled wicked” without providing any details. There are several services with the string “wicked” in the name. Did you disable all of them?

This sounds like hardware or driver issue. Usual next step in troubleshooting is full hardware reset (cold boot after making sure all power supplies/batteries/whatever are unplugged). But quick search shows similar problems in the past caused by delay in hardware initialization. So test the latest kernel and if it still fails, try to open bug report.

You may be correct (as so often) and I am more or less a hardware noob. But I do not quite follow this. From what I read in the first post:

  • It worked with Wicked.
  • Switch to systemd.networkd and it does not work.
  • Switching back to Wicked and it does not work.

What can happen to the hardware/driver in between that after switching back to the same software method now stumbles into a hardware problem that apparently wasn’t there before?

For a tested static configuration see Systemd-networkd - openSUSE Wiki

Yes it was also my first feeling,
currently with wicked I have the following units

# systemctl list-units wick*
  UNIT                  LOAD   ACTIVE SUB     DESCRIPTION
  wicked.service        loaded active exited  wicked managed network interfaces
  wickedd-auto4.service loaded active running wicked AutoIPv4 supplicant service
  wickedd-dhcp4.service loaded active running wicked DHCPv4 supplicant service
  wickedd-dhcp6.service loaded active running wicked DHCPv6 supplicant service
  wickedd-nanny.service loaded active running wicked network nanny service
  wickedd.service       loaded active running wicked network management service daemon

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.
6 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

trying to restart wicked gives

# systmctl restart wicked
[11942.658125]  T774]could not attach to PHY
[11942.658928]  T774] bcmgenet fd580000.ethernet eth0 failed to connect to PHY

maybe arvidjaar is right and it is a hardware problem but how to confirm this >:(

For your information: Onboard LAN disabled? - Hardware - openSUSE Forums Reset the firmware and clear NVRAM. The issue appeared never again.

You are right.

I halted the system and removed the power. After one hour I tried again with same result
I tested with a new cable and with the delivered raspian linux and I have also the same problem>:(.
So the Ethernet port is probably dead but as it is on the motherboard I cannot replace it.
Strange that it died when I tried systemd-networkd.:
On the raspberry Pi 400 there is still a wifi on board but I don’t have one my HP server. I need to buy a new small unit.

Regards
Philippe

Perhaps related to this?
https://bugzilla.kernel.org/show_bug.cgi?id=213485
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=b2ac9800cfe0