Enabling gigabit ethernet on RTL8111/8168/8411

7,945

You can check the capability of your ethernet hardware quite easily. E.g., To check the ethernet hardware device eth0

sudo ethtool eth0
Settings for eth0
    Supported ports: [ TP MII ]
    Supported link modes:   10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Half 1000baseT/Full 
    Supported pause frame use: No
    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/Full 
    Link partner advertised pause frame use: Symmetric
    Link partner advertised auto-negotiation: Yes
    Link partner advertised FEC modes: Not reported
    Speed: 1000Mb/s
    Duplex: Full
    Port: MII
    PHYAD: 32
    Transceiver: internal
    Auto-negotiation: on
    Supports Wake-on: pumbg
    Wake-on: g
    Current message level: 0x00007fff (32767)
                   drv probe link timer ifdown ifup rx_err tx_err tx_queued intr tx_done rx_status pktdata hw wol
    Link detected: yes

Once you established that your hardware and linux driver do support the gigabit speed, you can proceed to check the cable you use and the switch or router you are connecting to.

To force 1000mb full duplex, for enp4s0 try

sudo ethtool -s enp4s0 speed 1000 duplex full

This may or may not work. It may work if your cable is marginal capable of doing 1000mb. Even if this work, you should get a better cable to ensure reliable gigabit connection, otherwise it may renegotiate down to a low speed when errors occur.

Share:
7,945

Related videos on Youtube

Simon
Author by

Simon

Updated on September 18, 2022

Comments

  • Simon
    Simon over 1 year

    I am completely new to Ubuntu, but I've installed Ubuntu 16.04 on an old machine mainly to be used as a Plex server for large movie files.

    When I go to the ethernet settings I can clearly see ethernet is only running at 100mb/s. Here is some information about the network configuration:

    *-network               
       description: Ethernet interface
       product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:04:00.0
       logical name: enp4s0
       version: 06
       serial: bc:5f:f4:e9:a0:e4
       size: 100Mbit/s
       capacity: 1Gbit/s
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=full firmware=rtl_nic/rtl8168e-2.fw ip=192.168.1.68 latency=0 link=yes multicast=yes port=MII speed=100Mbit/s
       resources: irq:24 ioport:e000(size=256) memory:d0004000-d0004fff memory:d0000000-d0003fff
    

    How can I enable gigabit ethernet?

    edit:

    Settings for enp4s0:
    Supported ports: [ TP MII ]
    Supported link modes:   10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Half 1000baseT/Full 
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Advertised link modes:  10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Half 1000baseT/Full 
    Advertised pause frame use: Symmetric Receive-only
    Advertised auto-negotiation: Yes
    Link partner advertised link modes:  10baseT/Half 10baseT/Full 
                                         100baseT/Half 100baseT/Full 
    Link partner advertised pause frame use: Symmetric Receive-only
    Link partner advertised auto-negotiation: Yes
    Speed: 100Mb/s
    Duplex: Full
    Port: MII
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: on
    Supports Wake-on: pumbg
    Wake-on: d
    Current message level: 0x00000033 (51)
                   drv probe ifdown ifup
    Link detected: yes
    
    • N0rbert
      N0rbert over 5 years
      Are you sure that cable is capable to run on 1 Gbit/s?
    • Simon
      Simon over 5 years
      No, I'm not sure. They're cables I've had lying around for a while. I will pick up a couple of new gigabit cables to see if that fixes the issue. Thanks
    • Terrance
      Terrance over 5 years
      Ethernet cable for gigabit should be at least a CAT-5e but best to go with a CAT-6 type cable.
  • Simon
    Simon over 5 years
    Hi Bernard. I receive 'Cannot get device settings: No such device' when I try this
  • N0rbert
    N0rbert over 5 years
    Change eth0 to yours enp4s0.
  • Bernard Wei
    Bernard Wei over 5 years
    As @N0rbert indicated, use your ethernet device in the place of eth0, such as sudo ethtool enp4s0
  • Simon
    Simon over 5 years
    Thanks. I've updated the main post with that info. I see the 'Link partner advertised link modes' does not include the 1000baseT/Full option
  • Bernard Wei
    Bernard Wei over 5 years
    @Simon Everything indicates your device and software can handle gigabit network. The hardware is negotiating the speed down to 100 megabits. I added some steps to foce gigabit speed if your cable is marginally supporting gigabits.
  • Simon
    Simon over 5 years
    Thanks. I will give your suggestion a try to get it working temporarily, and order some new cat6 cables.