Ethernet stuck at 100baseT/Half-Duplex Across Multiple Kernels, Versions, Adapter, and Cables

A few weeks ago, my motherboard died during a system upgrade. As a result I was forced to replace it. While everything went fine with the upgrade (it carried on like nothing had even happened), now my ethernet is just broken.

I will say this now, before anyone asks, because it’s everyone’s favorite go-to with these kinds of issues: It is not the cabling!
I tried multiple known good cables, including the original cable, which worked fine with the original board, at gigabit speeds, foe years, and the cable that I’m currently using with my laptop, which is working fine, with no change.

I also tried connecting to different network switches, cleaning the the onboard network port, and even using an external network adapter, all with no change.

No matter what I do, any ethernet connection is pinned at 100mb/s at half-duplex.
The actual speed is even worse, ranging sporadically from 2-5Mb/s, down to just a few kb/s. This is for both local, and internet traffic, making using and managing my network a nightmare.

I really need this to be working. I even tried booting into a live image (I really need to reinstall anyway, but I don’t want to bother if it wont help), but it didn’t show any improvement.

I have no idea what to do!
It’s been weeks!
Please, I will take any help I can get. My workstation is unusable, and I don’t know what to do.

If I can’t get this working, my only other option will be to bridge my ethernet network over to my Infiniband network, as that’s the only thing that’s working correctly, but I want to keep those networks isolated for security reasons.

What is the output of sudo ethtool?

Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 100Mb/s
Duplex: Half
Auto-negotiation: on
Port: Twisted Pair
Transceiver: internal
MDI-X: off (auto)
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes

once upon a time, a PC in HR went from 100 Mbps to 10 Mbps just like that. the switch is in the next room so distance is not the issue. we also tested for any interference. nothing. used new utp cables. nothing. used a different PC it started working at 100 Mbps. replaced it with the original PC and speed went to 10 Mbps.

That looks like I see except I get 1000baseT/Full.

You could try sudo ethtool --negotiate <device> and see if that changes anything.

You could try sudo ethtool --change <device> speed 1000 duplex full and see if it works afterwards.

What does sudo inxi -i report? Maybe its a chip with a know issue?

Try to get it to negotiate has no effect.
Setting the speed manually doesn’t help. At best it just sets itself back, at worst it breaks it completely.

‘inxi’ doesn’t really report anything new.
It’s an Intel I211, using the igb driver, which, from what I understand, shouldn’t be an issue. Plus, if that were the issue, then why do external adapters have the same problem?

Hello @cptgraywolf ,
Perhaps sudo ethtool -s <device> duplex full, then sudo ethtool -s <device> speed 1000. I just did this with my ethernet device and if I do it with both changes in one command sometimes it comes back with speed and duplex settings as unknown when I verified if the changes had been made. If I issue just one change at a time it always reports back correctly. Perhaps it (ethtool) isn’t handling mutli command arguments reliably, or I guess I could be not letting the changes have time to be complete before querying.

Nether made any difference whatsoever.

That is the ethernet that is integrated into the motherboard?
Are there an settings in the BIOS that affect how the eithernet works?
Maybe its a fault on the motherboard?