After several years of not bothering, I finally got Gigabit ethernet working on my old Linux server, which has a Biostar TF8050-M2 motherboard. The motherboard has a Realtek 8111B PCI-E LAN controller, which is supposed to be 10/100/1000 (Ethernet, Fast Ethernet, Gigabit) capable, but when transferring files over Samba, I never saw more than 10 megabytes per second. After fixing the issue, my network transfers jumped to 41MB/s, as reported by TeraCopy.
Verify Current Speed
To verify that you're running at less that Gigabit speeds, run ethtool. Here's the output after I fixed my problem:
$ ethtool eth0 Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: Symmetric Receive-only Advertised auto-negotiation: Yes Speed: 1000Mb/s <=== Look at this line Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on MDI-X: Unknown
If your listing shows "Speed: 100Mb/s", then you're only getting Fast Ethernet (100 megabits per second) speeds.
Replace the Driver
I replaced the default Realtek driver, which is for the r8169 (check which driver you have by running lsmod | grep r.* and look for something like r8169), with an updated R8168 driver from the Realtek website.
I followed the instructions from this Ubuntu Forums post, but I found that they can be reduced to the following:
Download the latest drivers from the Realtek site.
Unpack the archive (tar xvjf r8168-x.xxx.xx.tar.bz2).
Change into the new directory and execute autorun.sh with administrative privileges (cd r8168-x.xxx.xx followed by sudo ./autorun.sh).
The autorun.sh script will automatically remove the existing r8169 module and replace it with the correct r8168 one. This worked, even over an ssh session, though the connection dropped while the operation completed.
Power Cycle the Switch
After updating the driver, I was still only seeing Fast Ethernet speeds. The lights on my Linksys GS105 switch indicated 100Mb/s connections. Unplugging and re-plugging cables would sometimes change the indicators to Gigabit, and other times it would simply kill the connection. I finally unplugged the switch for thirty seconds, plugged it back in, and suddenly had Gigabit speeds.