You are not logged in.
My ethernet connection seems to be stuck at 100Mbps, despite my board supporting 2.5Gbps, using all cat5e or cat6 cables, and a router that provides gigabit connection to multiple other devices. I have tried setting it with ethtool, which only makes the link go down and doesn't fix anything. I have tried swapping all kinds of cables, and connecting to different ports on the router and on the network switch. Everything I have found online implies a cable issue, but I have tried every cable under the sun, including ones that have worked at gigabit speeds with other devices. I'm rather stumped, and hoping against hope it's not a motherboard issue.
Output of "ethtool enp39s0":
Settings for enp39s0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
2500baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
2500baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Link partner advertised pause frame use: Symmetric Receive-only
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 100Mb/s
Duplex: Full
Auto-negotiation: on
master-slave cfg: preferred slave
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
MDI-X: Unknown
netlink error: Operation not permitted
Link detected: yes
Output of "ethtool enp39s0" after running "sudo ethtool -s enp39s0 speed 1000 duplex full autoneg on":
Settings for enp39s0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
2500baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Auto-negotiation: on
master-slave cfg: preferred slave
master-slave status: unknown
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
MDI-X: Unknown
netlink error: Operation not permitted
Link detected: no
Output of "sudo dmesg | grep r8169":
[ 3.912817] r8169 0000:27:00.0: enabling device (0000 -> 0003)
[ 3.919722] r8169 0000:27:00.0 eth0: RTL8125A, 2c:f0:5d:10:00:0b, XID 609, IRQ 81
[ 3.919729] r8169 0000:27:00.0 eth0: jumbo features [frames: 9194 bytes, tx checksumming: ko]
[ 3.936778] r8169 0000:27:00.0 enp39s0: renamed from eth0
[ 5.329249] Realtek Internal NBASE-T PHY r8169-0-2700:00: attached PHY driver (mii_bus:phy_addr=r8169-0-2700:00, irq=MAC)
[ 5.461415] r8169 0000:27:00.0 enp39s0: Link is Down
[ 35.416291] Realtek Internal NBASE-T PHY r8169-0-2700:00: Downshift occurred from negotiated speed 1Gbps to actual speed 100Mbps, check cabling!
[ 35.416319] r8169 0000:27:00.0 enp39s0: Link is Up - 100Mbps/Full (downshifted) - flow control rx/tx
[ 853.288083] r8169 0000:27:00.0 enp39s0: Link is Down
Yes, I know it says "check cabling". I have.
Output of "nmcli connection up 'Wired connection 1'" after trying to change speed with ethtool:
Error: Connection activation failed: No suitable device found for this connection (device enp39s0 not available because device has no carrier).
Any help would be greatly appreciated!
Last edited by TheLastTeapot (2025-05-04 05:51:18)
Offline
boot into a liveUSB and see if it's picking up 1000 or 100
Offline
That is a good idea, I hadn't thought of that. Unfortunately the result is the same.
https://i.ibb.co/VYw15ckD/Live-Iso-Output.jpg
Last edited by TheLastTeapot (2025-04-14 10:23:28)
Offline
Please replace the oversized image w/ a link.
Instead of the install iso w/ likely similar-ish kernel, try eg. https://grml.org/
Then remember that plugs and jacks are part of the cable, on both ends!
If you can still wiggle an rj45 connector, it's not properly slotted.
That being said:
https://bbs.archlinux.org/viewtopic.php?id=304219
https://bbs.archlinux.org/viewtopic.php?id=304570
https://bbs.archlinux.org/viewtopic.php … 6#p2232136
Offline
I have heard before that some Realek adapters are more picky than other brands, hearing it again gives me hope. I have downloaded grml and am working on manufacturing a cat6 cable to connect directly to the router. Thank you for your help, I will update you.
Offline
No luck. I booted into grml, connected directly to the router with a cat6 ethernet cable I just terminated myself. Same result from ethtool and dmesg:
Offline
Can you test it against a different peer?
Offline
I have tested it with two gigabit laptops, one windows and one linux, and I know the windows one has a realtek adapter. Both got a gigabit connection with no difficulty.
Offline
I meant the affected system against a different routerswitchmodem resp. at least a different slot on the presently used one.
Offline
I don't have another router or modem to test against, but I do have a gigabit switch. I actually get some interesting behavior here. When connected to the router, either port, ethtool lists 1000Mbps as the advertised speed, it autonegotiates 1000Mbps, and then fails. But when connected to the switch, any port, ethtool lists 100Mbps as the advertised speed, and it doesn't even try to reach gigabit. I wonder if this has something to do with the switch detecting that my computer won't get gigabit, and setting it to 100Mb instead. For the record, other devices can get gigabit speeds through the switch, on the same ports I have tested my computer on.
Offline
Assuming the plug is firmly seated and does not rattle and you cannot wiggle it: how long is the cable?
(Your host advertises 1000Mbit/s - the switch might just be more aggressive about "yeah, that signal won't do gigabit" where the router just goes w/ the advertisements and downshifts later)
Offline
working on manufacturing a cat6 cable to connect directly to the router
a cat6 ethernet cable I just terminated myself
Are you crimping the cables yourself?
Have you tried a manufactured patch cable instead?
Offline
TheLastTeapot wrote:working on manufacturing a cat6 cable to connect directly to the router
TheLastTeapot wrote:a cat6 ethernet cable I just terminated myself
Are you crimping the cables yourself?
Have you tried a manufactured patch cable instead?
Allow me to explain my network setup. I have a router/modem, which has two gigabit ethernet ports. Since we need more than that, one of those ports goes to a gigabit ethernet switch, which has several devices connected. All those cables go to a patch panel in the wall behind the router/modem. The patch panels are all wired with cat5e ethernet cable. One of those lines goes to a room with a different, working gigabit laptop. Another goes to the room with my pc, which is closer than the other. So when I am connected to the switch, the path is:
Modem-cat5e-switch-cat5e-patch panel-cat5e-other patch panel-cat5e/cat6-pc
When I am connected directly to the modem, the path is:
Modem-cat5e-panel-cat5e-panel-cat5e/cat6-pc
With that setup, I have tried an assortment of cat5e and cat6 cables going from the nearest patch panel to my pc. Homemade, the one that came with the router, a cat6 one we bought, and an assortment of other cat5e cables of unknown origin. When that failed, I lugged my pc into the room with the router, and retried all those same cables connected directly to the router, with the exception of the storebought cat6 cable, because it is too short (1ft/30cm). I can test that one directly to the router, if you're really sure it will help.
When that failed, yesterday my brother and I pulled out his spool of shielded cat6 cable, cut a ~20-30 foot section, crimped it with new connectors, and ran it through the wall, which means that now, instead of the whole complicated setup, I have a direct high quality cat6 link to the router/modem, no patch panels or other connections between, no more than 30 feet long, and in all likelihood closer to 20. I can't measure now, because it's in the wall.
That gave me no different results than the complicated cat5e setup.
Assuming the plug is firmly seated and does not rattle and you cannot wiggle it: how long is the cable?
It wiggles a little, does not rattle. It is about 25 feet long, heavy duty shielded cat6. Here is a video of the wiggling:
https://drive.google.com/file/d/19YkKz4 … p=drivesdk
TL; DR: Yes I crimped it myself. Yes I have tried other cables. It's about 25 feet long.
It doesn't rattle, it does wiggle a little. Here's a video, no idea if it's within tolerance or not. All 8 pins inside the port are present and coreect, none appear to be damaged, bent, or stuck in any way.
Offline
lugged my pc into the room with the router, and retried … the one that came with the router
And the amount of wiggling is fine (it's plastic after all, but doesn't move inside the slot)
Do you get a better signal w/ https://aur.archlinux.org/packages/r8125-dkms ?
Offline
I will test that tomorrow, today I am away from home all day
Offline
sudo ethtool enp39s0
gives:
Settings for enp39s0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
2500baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
2500baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Link partner advertised pause frame use: Symmetric Receive-only
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 100Mb/s
Duplex: Full
Auto-negotiation: on
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
MDI-X: on
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000033 (51)
drv probe ifdown ifup
Link detected: yes
sudo dmesg | grep r8125
gives:
[ 3.837620] r8125 Ethernet controller driver 9.015.00-NAPI loaded
[ 3.837671] r8125 0000:27:00.0: enabling device (0000 -> 0003)
[ 3.860435] r8125: This product is covered by one or more of the following patents: US6,570,884, US6,115,776, and US6,327,625.
[ 3.860511] r8125 Copyright (C) 2024 Realtek NIC software team <nicfae@realtek.com>
[ 3.874843] r8125 0000:27:00.0 enp39s0: renamed from eth0
[ 20.754170] r8125: enp39s0: link up
Still at 100Mbps, but this time it didn't even autonegotiate. Setting it to 1Gbps has the same result as before. It looks like "Supported ports" has lost MII, and now only has TP. I don't know what those are and if that matters.
Offline
https://github.com/aravance/r8125/
Apparently the module allows you to force the speed=1000 … see what that gets you (transmission errors?)
https://serverfault.com/questions/56622 … ir-is-used - that's fine
Offline
I am having no success forcing the speed, with the aur version or the git version. It simply has the same result as trying to set with ethtool did before. I assume the instructions in the readme are what I need to follow to force the settings? Trying to force with ethtool had the same result as before, and trying to force it when loading the module also had no effect, but in dmesg it said "unknown parameter 'speed' ignored" "unknown parameter 'duplex' ignored" "unknown parameter 'autoneg' ignored". Am I missing sonething?
Offline
systool -vm r8125
Booting w/ "r8125.speed=1000" should™ enforce it.
Edit: there seems some "speed_mode" parameter.
Last edited by seth (2025-04-17 15:03:59)
Offline
Booting w/ "r8125.speed=1000" should™ enforce it.
As a kernel parameter?
Sorry about the delay, these last couple days got crazy
Offline
Yup, but from looking up the code test the speed_mode parameter and post the "systool -vm 8125" output (it'll hopefully list all set parameters, "modinfo r8125" might as well show the available ones)
Offline
modinfo r8125:
filename: /lib/modules/6.14.2-arch1-1/kernel/drivers/net/ethernet/realtek/r8125.ko.zst
version: 9.015.00-NAPI
license: GPL
description: Realtek r8125 Ethernet controller driver
author: Realtek and the Linux r8125 crew <netdev@vger.kernel.org>
srcversion: FBFD27B273C12494CC52E86
alias: pci:v000010ECd00003000sv*sd*bc*sc*i*
alias: pci:v000010ECd00008162sv*sd*bc*sc*i*
alias: pci:v000010ECd00008125sv*sd*bc*sc*i*
depends:
name: r8125
retpoline: Y
vermagic: 6.14.2-arch1-1 SMP preempt mod_unload
parm: speed_mode:force phy operation. Deprecated by ethtool (8). (uint)
parm: duplex_mode:force phy operation. Deprecated by ethtool (8). (uint)
parm: autoneg_mode:force phy operation. Deprecated by ethtool (8). (uint)
parm: aspm:Enable ASPM. (int)
parm: s5wol:Enable Shutdown Wake On Lan. (int)
parm: s5_keep_curr_mac:Enable Shutdown Keep Current MAC Address. (int)
parm: use_dac:Enable PCI DAC. Unsafe on 32 bit PCI slot. (int)
parm: timer_count:Timer Interrupt Interval. (int)
parm: eee_enable:Enable Energy Efficient Ethernet. (int)
parm: hwoptimize:Enable HW optimization function. (ulong)
parm: s0_magic_packet:Enable S0 Magic Packet. (int)
parm: tx_no_close_enable:Enable TX No Close. (int)
parm: enable_ptp_master_mode:Enable PTP Master Mode. (int)
parm: disable_wol_support:Disable PM support. (int)
parm: enable_double_vlan:Enable Double VLAN. (int)
parm: eee_giga_lite:Enable Giga Lite. (int)
parm: debug:Debug verbosity level (0=none, ..., 16=all) (int)
Booting with r8125.speed_mode=1000 has almost the same result. When I booted up ethtool looked the same as after trying to set the speed, with the speed and duplex listed as "Unknown!"
Settings for enp39s0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
2500baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Auto-negotiation: on
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
MDI-X: Unknown
netlink error: Operation not permitted
Current message level: 0x00000033 (51)
drv probe ifdown ifup
Link detected: no
The major difference is that this time running "nmcli connection up 'Wired Connection 1'" actually had an effect. It didn't set the speed to 1000, but it produced this state in ethtool:
Settings for enp39s0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
2500baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Link partner advertised pause frame use: Symmetric Receive-only
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 100Mb/s
Duplex: Full
Auto-negotiation: on
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
MDI-X: on
netlink error: Operation not permitted
Current message level: 0x00000033 (51)
drv probe ifdown ifup
Link detected: yes
When I disabled all other internet connections and tried to pull up the browser to open internet speed test, at first the pages loaded, just very slowly. But after a minute they would not load at all, and after that point I couldn't get anything to load. Ethtool still had that same output as after setting the connection up with nmcli.
Also, I don't have systool. What package does that come with?
Offline
sysfsutils - let's try something different: return to the in-tree driver, stock config, no special parameters - except: disable the duplex mode.
Does it still downshift or can you run 100Mbit half-duplex?
Offline
100Mbit half duplex or 1000Mbit half duplex?
Last edited by TheLastTeapot (2025-04-23 00:13:00)
Offline
1000Mbit half duplex
The theory would be that duplex doesn't properly work what causes (too much) noise what then causes the downshift, so half-duplex might go (slightly slower but) uninterfered at 1000 Mbit/s
Offline