No Ethernet with RTL8125

The mainboard manual only says Realtek 2.5GbE LAN chip. Their website says something about “GIGABYTE Exclusive 8118 Gaming GbE LAN” though

Your LAN cable is o.K

yes, it’s working with the usb lan adapter I have

LAN is enabled in the BIOS?

I left everything on the defaults. I’ll check though, can’t hurt
Edit: there was something about network stack that was disabled but that was just about network booting and didn’t change anything

If your chip is a RTL 8118 then test linux59-r8168 and blacklist rtl8169.
(do not forget: sudo update-grub (its magic))

when I do that, it falls back to r8125 (that I installed from the realtek site) and doesn’t show r8168 at all:

07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)
DeviceName: RTL8111E Giga LAN
Subsystem: Gigabyte Technology Co., Ltd Device e000
Flags: bus master, fast devsel, latency 0, IRQ 33, IOMMU group 13
I/O ports at f000 [size=256]
Memory at fce00000 (64-bit, non-prefetchable) [size=64K]
Memory at fce10000 (64-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: r8125
Kernel modules: r8169, r8125

Btw, I’m not too sure about the

GIGABYTE Exclusive 8118 Gaming GbE LAN

there appear to be multiple versions of this mainboard :confused:
The page with a description that exactly matches my mainboard doesn’t specify more than “2.5GbE Ethernet”, same as the manual

I give up…

Maybe the LAN port is simply broken :confused:

Thanks for trying anyways.

What you have is a RTL8125B that is supported from kernel version 5.9. Why don’t you go step by step when analyzing the issue? First check whether driver detects the network chip and generates the network device: go with r8169 and show what dmesg | grep r8169 says.
If the network device exists then it may be a network manager issue, therefore check w/o network manager. Assign IP and bring up the network manually.

It does generate a network device. This is the output from dmesg | grep r8169:

[    7.851906] libphy: r8169: probed
[    7.852051] r8169 0000:07:00.0 eth0: RTL8125B, b4:2e:99:ef:c6:82, XID 641, IRQ 66
[    7.852053] r8169 0000:07:00.0 eth0: jumbo features [frames: 9194 bytes, tx checksumming: ko]
[    7.861433] r8169 0000:07:00.0 eno1: renamed from eth0
[    8.388532] RTL8125B 2.5Gbps internal r8169-700:00: attached PHY driver [RTL8125B 2.5Gbps internal] (mii_bus:phy_addr=r8169-700:00, irq=IGNORE)
[    8.565379] r8169 0000:07:00.0 eno1: Link is Down

I’m not familiar with setting up networking without NM, how can I do that?

Hi, @Zamundaaa
Can you post the output of the following terminal command: ip add ?

Regards

$ ip add
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: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether b4:2e:99:ef:c6:82 brd ff:ff:ff:ff:ff:ff
    altname enp7s0
5: enp1s0f0u9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:60:6e:00:0a:61 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.167/24 brd 192.168.2.255 scope global dynamic noprefixroute enp1s0f0u9
       valid_lft 863998sec preferred_lft 863998sec
    inet6 fe80::1567:e686:8681:81af/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

Hi @Zamundaaa

The ethernet port is up, but you have the eno1 ether port. down. Do you have two ether ports?

Could you post the output of the terminal command inxi -N?
Regards

eno1 is the one on the mainboard, enp1s0f0u9 is an adapter connected over USB

$ inxi -N
Network:   Device-1: Realtek RTL8125 2.5GbE driver: r8169 
           Device-2: Davicom DM9601 Fast Ethernet Adapter type: USB driver: dm9601

This looks good so far. Driver correctly detects device, and device is brought up. Just no link is established. Is the link partner 2.5Gbps-capable, or just 1Gbps?
For a stable link at 1Gbps (or a link at all) this chip version needs firmware. Check whether you have file /lib/firmware/rtl_nic/rtl8125b-2.fw, and whether dmesg | grep -i firmware reports a problem loading the firmware. Also the output of ethtool -i eno1 would help.
If you don’t have the firmware file you have to update package linux-firmware, or get the file from the linux-firmware git repo directly.

The firmware file is there and dmesg doesn’t show any errors.

$ ethtool -i eno1
driver: r8169
version: 5.9.6-2-MANJARO
firmware-version: rtl8125b-2_0.0.2 07/13/20
expansion-rom-version: 
bus-info: 0000:07:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no

Then from software perspective all looks good and maybe something is broken physically.
As a last resort you could try: ethtool -s eno1 speed 100
Reason: 100Mbps just needs two wire pairs, whilst 1Gbps needs all four. Means if one wire needed for 1Gbps has a problem, 100Mbps might still work.

1 Like

As a last resort you could try: ethtool -s eno1 speed 100

That did nothing… until I pulled the cable out and plugged it in again. Now it finds the connection :partying_face:
Thank you so much!

Is there anything I can set so I don’t have ot run that command on every boot?

1 Like

Usually the ethtool speed command triggers an auto-negotiation and re-plugging the cable isn’t needed. This leaves one question: What is your link partner, and has it auto-negotiation enabled? Not that your link partner is fixed at 100Mbps. Output of ethtool eno1 may help.

On the other end of the cable the router is directly connected. Auto-negotiation IIRC didn’t work correctly with my old PC (but it does for everything else in the house) or I just had a slower connection, so it was actually disabled in the UI.
However back then it definitely did show the connection, here it didn’t even recognize there was a cable plugged in (no LED blinking on the port or anything)

$ ethtool eno1
Settings for eno1:
        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:  100baseT/Half 100baseT/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: No
        Advertised FEC modes: Not reported
        Speed: 100Mb/s
        Duplex: Full
        Auto-negotiation: off
        master-slave cfg: preferred slave
        master-slave status: slave
        Port: MII
        PHYAD: 0
        Transceiver: external
netlink error: Operation not permitted
        Link detected: yes

Maybe the old PC supported max. 100Mbps. Best should be to re-enable auto-negotiation in your router and use the USB network adapter with the old PC if needed. With auto-negotiation in the router re-enabled, do you have 1Gbps after reboot of your system?

Everything is good for something: You got an idea how to analyze network problems. So you don’t have to believe any longer the people who immediately say (w/o having seen any log): the driver is crap.

1 Like

My router apparently doesn’t support auto-negotiation, I can only switch between 100Mbit and 1Gbit.
Edit: after setting it to 1Gbit however the connection works automatically :slight_smile:

2 Likes

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.