When only the eth0.network is present in the folder. The eth0 is able to configure properly and having both IPV4 and IPV6 IP address. When i added in the wlan0 the eth0 is not able to get an IPV4 IP address dynamically.
I dont think the hardware is a problem.
From the 1st screenshots to the 2nd screenshots above, the connection of the LAN was not touched.
When I connect to a WIFI AP the eth0 able to connect successfully, the Carrier gain and loss does not appear anymore.
How WiFi may persuade wire to drop link? Perhaps some service may do something to ethernet. But systemd-networkd works rock solid for me on different families SOC’s. Both, with WiFi and without WiFi. Try stopping relevant and not relevant services, perhaps some of them does bad things.
You wrote you added wlan and ethernet got broken. Then please show what you added to /etc/systemd/networkd.
I will try to playing around stopping relevant and non relevant services.
Here is a screenshot of the eth0 and wlan conf file.
Another thing that make me feel that it is not a hardware issue is, if i remove the eth0.network file from /etc/systemd/networkd and manual bring the eth0 up using the command “ifconfig” and assign ip using “udhcpc”. It is fine.
Are you using 802.1x wired ethernet authentication?
if i remove the eth0.network file from /etc/systemd/networkd and manual bring the eth0 up using the command “ifconfig” and assign ip using “udhcpc”. It is fine.
What about leaving eth0.network in place but starting with ethernet unplugged and plugging it only after WiFi connects? WiFi adds quite a lot to power consumption with noticeable peak while establishing connection. Doing manually later may reduce peak current. Something makes link down periodically. I don’t think it’s systemd-networkd. Can you use different WiFi adapter?
I tried your suggestion on switching the SOM from our carrier board to using one of Toradex Carrier board and it is working.
I get my hardware team to find what are the differences between our carrier board and Toradex Carrier board and the difference are Toradex Carrier board is using the Gigabit Ethernet Port and our carrier board is using the 10/100Mbit Ethernet Port.
What could cause it to work differently? Are there any driver that was missing?
I tried rolling back my changes( removing the wlan0 config file) and the eth0 is working fine.
I tried Kevins suggestion of trying it on the Toradex Carrier board and it is working. The differences between our carrier board and Toradex Carrier board and the difference are Toradex Carrier board is using the Gigabit Ethernet Port and our carrier board is using the 10/100Mbit Ethernet Port.
Is there any settings in the systemd for Gigabit and 10/100Mbit ehternet port?
I added in the Autonegotiation flag but it is still failing.
I don’t what’s going on. I don’t believe systemd is to blame.
It is not clear what’s the difference between your carrier board and TDX carrier board. Just two 1000TX wire pairs not wired to connector with magnetics? Perhaps a) those unused pairs need some termination or b) perhaps WiFi affects whose unterminated pairs and you need to tell in device tree that your phy is only 100Mbps capable. It is not clear for me which DT file you should look at. If I understood kernel Documentation properly it should be max-speed = <100>; setting among other phy settings. Like this one, but please review other settings if they mach your Apalis and carrier: