Issues with systemd-networkd

@drewmoseley Help me pls. I can’t ping I only can ping localhost
I have imx7d-pico (thud 2.6) Yocto, based on this tutorial: Technexion PICO-PI-IMX7

Can you ping Is that your router?

What do the following commands show?
# ip addr
# systemctl status systemd-networkd
# journalctl -u systemd-networkd

And if you can post the output as text rather than a screenshot it’s much easier to review.


@drewmoseley tks. I can’t ping to

My best guess is that something in your DHCP server setting is incorrect. You are being assigned an IP address of and a default gateway of I don’t know what your network architecture is so I can’t really troubleshoot any further. Are you able to connect other devices to this network cable?

you have static address and dhcp configuration in the same network section in your client .network file?
if its static then remove dhcp=yes :slightly_smiling_face:

if you only want dhcp6 then change ‘yes’ to ‘ipv6’

@drewmoseley @dellgreen tks. But not solved Yet. My ethernet cable stay Ok. I tested in HOST PC with ubuntu. @dellgreen I not need ipv6.

vi /etc/hosts localhost.localdomain localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
vi /etc/hostname

also remove LinkLocalAddressing and IPv6AcceptRA for now as i have known this to have adverse effects on some versions of systemd/kernel

also run the following command to check that your system has automatically added a routing entry in your tables. Its should of done, please post the response.

ip route show

@dellgreen tks. But no yet:

@dellgreen I installed Yocto (thud, 2.6) in other board imx7d-pico.
I know now that by default only ipv6 is installed but I can’t ping it out:
ping6 2804:14c:b385:8df4:fb9e:12e6:688f:dee
PING 2804:14c:b385:8df4:fb9e:12e6:688f:deeb (2804:14c:b385:8df4:fb9e:12e6:688f:deeb): 56 data bytes

It would seem less likely that ipv4 is disabled unless your kernel provider has removed modules, or they have added a sysctl/systemd config file to disable it, otherwise I wouldn’t of expected it to allow you to set an ipv4 static address on your interface. I think its better focusing back on why ipv4 isn’t working as you already mentioned that you have no requirement for ipv6 and you would be widening the problem domain rather than narrowing it.

Your ipv4 routes look correct, i would check that your ethernet lights are flashing as expected on the rj45 connector and check the other end to see if your network switch rj45 connector is flashing as expected.

I assume you laptop/pc is also connected to the same switch and it can ping the gateway?


My ethernet lights are flashing. It was the first thing I saw. I have ipv6 on my network and could have it on my board. But that doesn’t work either. An expert from the board (who uses ubuntu) and helped me to climb Yocto, found the problem too: ipv4 doesn’t seem to be enabled out of the box… … and ipv6 too. How to solve ?

I still dont believe this is the case, as you have a loopback interface with ipv4 working on it, and you can ping your loopback address i assume?

try looking in /etc/sysctl.conf or a file in /etc/sysctl.d/ thats disabling ipv4.

also see if /proc/sys/net/ipv4/ directory exists and has content in it, if it does then ipv4 is enabled.

I can ping loopback
root@imx7d-pico:/etc/sysctl.d# pwd
root@imx7d-pico:/etc/sysctl.d# ls


Yes, /proc/sys/net/ipv4/ directory exists with several tcp.xxxx

root@imx7d-pico:/proc/sys/net/ipv4# pwd

Am out of the office at the moment to look into further. But also to remove all other sources of problem. Connect your laptop and boards ethernet together directly without any router/ switch.

Set the static IP address of each to be on the same network. and same subnet masks of you shouldn’t need to set a gateway. Then ping each other that way. Also replace the Ethernet cable to ensure all twisted pairs are working correctly.

@dellgreen tks. I tried with ethernet crossover cable and with normal ethernet cable. The results were the same and with issue:

ok thats good, its narrowed down the problem. I also see from all your screengrabs of the imx7d-pico that your are transmitting and receiving packet via the eth0 interface (see RX,TX), which is good.

Do you have strict firewall rules running on the pico (i.e by using iptables, firewalld) that are blocking/dropping ping request and reponses? When configuring firewalld in the past i have accidentally stopped ping from working by being too strict by disallowing icmp by mistake.

@dellgreen iptables and firewalld not exists

sorry, but I’m all out of ideas now. I would recommend getting onto the vendors board support forum for your device to see if any other users of the board have experienced the same issue.

@dellgreen tomorrow I will reinstall this:

in my other board (with multi touch) and I will be able to analyze, in detail, if the ethernet works and what settings it may be using.

1 Like