Intel D945GCLF Ethernet Packet Drop.

Realtek and Linux appear to have a long history of not getting along nicely, the Linux community like their open source solutions and Realtek while playing along, look like they are doing so reluctantly and with minimum effort. Unfortunately the Intel D945GCLF mini-itx atom powered motherboard contains one RTL8101E/RTL8102E PCI Express Fast Ethernet controller manufactured by our friends at Realtek. The default drivers which come with the 2.6.26-2-686 Linux kernel do work with this chip however its RX engine is broken, buggy and dropping packets more times a second than America spends on war. The solution according to a quick google search was to download the driver source provided by Realtek and follow the README provided.

I kept getting compile errors such as:

make -C src/ clean
make[1]: Entering directory `/share/r8101-1.012.00/src'
rm -rf *.o *.ko *~ core* .dep* .*.d .*.cmd *.mod.c *.a *.s .*.flags .tmp_versions Module.symvers Modules.symvers Module.markers *.order
make[1]: Leaving directory `/share/r8101-1.012.00/src'
make -C src/ modules
make[1]: Entering directory `/share/r8101-1.012.00/src'
make -C /lib/modules/2.6.26-2-686/build SUBDIRS=/share/r8101-1.012.00/src modules
make[2]: Entering directory `/lib/modules/2.6.26-2-686/build'
make[2]: *** No rule to make target `modules'.  Stop.
make[2]: Leaving directory `/lib/modules/2.6.26-2-686/build'
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/share/r8101-1.012.00/src'
make: *** [modules] Error 2

These errors caused much head scratching in #debian before one member valdyn had a go at compiling it himself and sent me the driver as it would not compile on my machine. I am still not sure why it would not install however as I now have a compiled driver I don’t need to investigate any further into that. Now that I have the driver it needs to be moved into the following folder:

lib/modules/2.6.26-2-686/kernel/drivers/net

Then run the following commands to finalise the install:

depmod -a
modprobe -r r8169
modprobe r8101
lsmod | grep r81

The response to lsmod as shown below means that the driver was loaded successfully:

r8101                  26992  0

I double checked this by running ifconfig which gave the response below showing no dropped packets.

RX packets:6232 errors:0 dropped:0 overruns:0 frame:0
TX packets:5214 errors:0 dropped:0 overruns:0 carrier:0

While I am not sure if the following is required after having deleted the module I wanted to make sure that it would not reload on boot so I have added it to the modules blacklist via opening /etc/modprobe.d/blacklist and appending the following lines to the bottom:

# blacklist the default driver for realtec
blacklist r8169

Once all that is done I can now reboot the server and it load the correct driver for the realtec network chip. I have attached below a copy of the compiled driver for those whom cant compile it themselves.

Download Driver

As the bug has been fixed in the package already shipped with current versions of linux, there should be no reason to download this driver. If you do still require a compiled version please get in touch via comments below and I will re-upload the driver to here.

One Response to “Intel D945GCLF Ethernet Packet Drop.”

  1. Sébastien says:

    hi,
    Thanks for putting the information together about this issue. I’ve the exact same motherboard and I was experiencing this bug. The last kernel update on Debian Lenny has the necessary fix to resolve the bug. :)
    http://packages.debian.org/changelogs/pool/main/l/linux-2.6/linux-2.6_2.6.26-21/changelog.txt

    So there is no need to go and compile the driver from now on! Thanks to great Debian community.

    If it would be that easy to fix the problem of the Americans spending on war…. The world would be a better place for EVERYONE.

Leave a Reply