Do a quick lspci. Now do you see: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02) for your Ethernet controller?
If so and your network connection information is reporting that your speed is 100 Mb/s rather than 1000 Mb/s, then you MIGHT be using the r8619 driver rather than the CORRECT r8168!
This is what I experienced when I had recently hooked my network up at home. I bought a ReadyNas Duo and updated my network switches to gigabit speeds with two D-Link Gigabit switches.
The expected Gigabit speeds 30 – 40 MB/s did not come. Instead I was getting sh*tty performance of 8 MB/s. So I tweaked a bunch of times then discovered the the bottleneck of the whole system was my NIC which when using the r8169 driver reports that 1000M mode is not advertised when probed by ethtool.
# ethtool eth0
This is because you are using the incorrect driver. Ubuntu linux by default somehow matches this particular NIC with the r8169 driver. You can fix this by downloading the correct r8168 driver, unpacking the downloaded driver archive and installing the driver following a quick step by step how-to in the r8168 driver’s readme file.
This is how you fix it.
- Download the official realtek driver from here
- First, remove the r8169 module from the linux kernel.
# rmmod r8169
- Unpack the download and install the driver as per the readme instructions included with the driver. Here’s the relevant part of the readme file; well, the “Quick Install” anyway:
<Quick install with proper kernel settings>Unpack the tarball :# tar vjxf r8168-8.aaa.bb.tar.bz2Change to the directory:# cd r8168-8.aaa.bbIf you are running the target kernel, then you should be able to do :# ./autorun.sh (as root or with sudo)You can check whether the driver is loaded by using following commands.# lsmod | grep r8168# ifconfig -aIf there is a device name, ethX, shown on the monitor, the linuxdriver is loaded. Then, you can use the following command to activatethe ethX.# ifconfig ethX up
- Finally, blacklist the r8169 driver add the following to /etc/modprobe.d/blacklist.conf:
#blacklist r8169 driverblacklist r8169
Driver downloaded, Driver Installed and Blacklisted the r8169 driver – all done!
If your kernel’s settings are “proper” (apparently mine is because the above worked for me), you should now have 1000MB/s availble. This is because you are now using the correct driver for your Network Card or NIC.
- Linux RT818X driver crashes 2.6.20.x kernel
- Trying out some of The best 100 Linux Software from Ubuntu Repos
- Disabling the Laptop TouchPad in Ubuntu Linux
- Ubuntu Linux: Tweak your network connectivity and/or performance by disabling IPV6
- Linux Finally! I’m all Penguined up!