For Christmas I was given a board I had on my wish list to replace my current firewall hardware. The board is the Intel BOXD945GCLF2, an Atom 330 powered board with a single PCI slot and onboard gigabit NIC. An ample replacement for the aging Via board.
I use Endian Firewall Community Edition on my firewall. I loaded things up and all seemed fine until the first reboot. I plugged my cable up to the ethernet port to configure things via the web interface and was unable to connect. After trying different cables and all the other normal means of troubleshooting I figured it was time to diagnose the board itself. I pulled out a Slackware 13.0 install CD and loaded it. After reboot the interface worked like a champ. I transferred a few large files and even rebooted a few times to make sure. Not a problem one showed up on the Slackware install so I went back to installing Endian.
I spent a bit of time doing some research since I had experienced issues with Realtek and Linux in the past. Several posts on the Endian Support forum reported problems with the RTL8111C chipset used on the system board I had and Endian. A similar post for Endian v2.2 solved the problem by building the driver module provided by Realtek. Since v2.2 and v2.3 use the same kernel it seems to reason they would have the same problem. One would have thought the Endian team would have updated the kernel considering the time between releases but that is a side point. They could have at least fixed the problems with this module since it was a known problem and a resolution was even on the forums. Ohh well…
Here I will outline what I did to build the driver module provided by Realtek to solve the problem. Before I do so, for those who don’t want to endure this I have shared the module in the files section of this site. You can simply download it and follow the appropriate steps below to install it and be done. For those who may want to build their own and so I have it written down somewhere here are the steps I took.
To transfer the required files I used a USB drive. I had no desire to spend time hacking transfer tools onto the system. I guess I could have used the feature of RPM that allows directly installing from a URL. Either works I suppose. The USB drive is auto-mounted as “/mnt/usbstick”.
- Install Endian
- Install the needed RPMs to build the module:
rpm -i $rpmname
- glibc-devel (requires nodeps)
- Fix the /lib/modules/220.127.116.11-72.e18/build symlink
cd /lib/modules/18.104.22.168-72.e18/ rm builds ln -s /usr/src/kernels/22.214.171.124-72.endian15-i586/ builds
- Untar the compressed tarball and build the module
tar xvf r8168-8.015.00.tar.bz2 cd r8168-8.015.00 make clean modules
- Copy the module into place
gzip src/r8168.ko cp src/r8168.ko.gz /lib/modules/126.96.36.199-72.e18/kernel/drivers/net/
- If the r8169 module is loaded, unload it
- Rebuild module dependencies
- Reboot and test things out
Notes on the above steps.
#2 – The development RPMs are on the Endian updates site You have to register on the community site, then use your username from there and the password is community. glibc-devel requires you pass the nodeps flag as the versions don’t really match up (wth Endian team??).
#3 – This may need doing since the kenel sources are not identical. v2.3 has a tail of .endian18 where the one on the updates server is .endian15. Either way, things won’t build without it.
#6 – This step is not required.
The finished product can be found here.