LE 9.2.0 generic, r8169 NIC connected at 1Gbps but real speed only 100Mbps

  • New hardware, Asrock J4105-ITX - Intel gemini lake SOC

    NIC reports Gb speed but all transfers are only at 100Mbps.

    ifconfig shows no dropped frames, everything looks ok.

    Around 10m CAT5e cable, worked fine with previous HTPC.

    Tried another router, doesn't help.

    According to some google results blacklisting r8169 module could help but as it seems LE has it built into the kernel :(

    Any ideas?

    excerpt from dmesg:

    Code
    [    2.537772] libphy: r8169: probed
    [    2.538032] r8169 0000:02:00.0 eth0: RTL8168h/8111h, 70:85:c2:fa:31:f4, XID 541, IRQ 124
    [    2.538036] r8169 0000:02:00.0 eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko]
    [   12.840729] Generic Realtek PHY r8169-200:00: attached PHY driver [Generic Realtek PHY] (mii_bus:phy_addr=r8169-200:00, irq=IGNORE)
    [   12.949712] r8169 0000:02:00.0 eth0: Link is Down
    [   28.740218] r8169 0000:02:00.0 eth0: Link is Up - 1Gbps/Full - flow control rx/tx
    [   28.740238] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

    Full dmesg: http://ix.io/2cAr

    lshw:

    ifconfig:

    Code
    LibreELEC:~ # ifconfig
    eth0      Link encap:Ethernet  HWaddr 70:85:C2:FA:31:F4
    inet addr:192.168.1.101  Bcast:192.168.1.255  Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
    RX packets:1183886 errors:0 dropped:3 overruns:0 frame:0
    TX packets:595133 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:1770511686 (1.6 GiB)  TX bytes:41212717 (39.3 MiB)

    iperf:

  • I could, but does LE have another driver for this NIC?

    Other linux distributions (ubuntu) can compile proprietary r8168 from repository that should work with some hardware.

    I don't know if this is available in LE.

    Last night NIC suddenly started working full speed. This morning again gets only to 100Mbps :(

  • Included as module?

    Didn't find it in /lib

    Took me a while to find the correct initcall string to append, here it is for reference: initcall_blacklist=rtl8169_pci_driver_init

    No network after blacklisting the r8169 driver :(

  • I have the same motherboard with the same Realtek chip. No issues here:

    Try to test with another cable. At Gigabit speed Realtek NICs are very picky with ethernet cables. I've seen some short cat5e cables that work fine at 100M but fail at 1000M.

    I'm using Cat6 7.5m cable.

    Edited once, last by smp (February 25, 2020 at 8:03 PM).

  • Thx, I'll try another cable.

    Wouldn't in case of bad cable NIC connect at 100Mbps or show some errors/dropped frames?

    Old MBO had similar realtek, was using the same r8169 driver under LE 8.2.5 and was running fine for years. Too bad that j4105 doesn't work with older LE.

    Perhaps it's time to pull the cable out of the wall and replace it :)

  • Wouldn't in case of bad cable NIC connect at 100Mbps or show some errors/dropped frames?

    In your case it looks like it does connect at 100M but for some reason reports 1000M.

    I would test it with a short, known good cable before pulling out any cables from the wall :)

  • Solved :)

    One of the connectors had a little oxidized contacts.

    It seems realtek driver does not report correctly speed, bad/ dropped frames or anything.

    LE even boots faster, before systemd log was showing 15s wait for network service, now only 3s.