You were never here, you didn't see anything..

Endian CE & Realtek


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”.

  1. Install Endian
  2. Install the needed RPMs to build the module:rpm -i $rpmname
    • libgomp
    • binuntils
    • make
    • glibc-devel (requires nodeps)
    • glibc-kernheaders
    • glibc-headers
    • gcc4
    • kernel-devel
  3. Fix the /lib/modules/2.6.22.19-72.e18/build symlink
    cd /lib/modules/2.6.22.19-72.e18/
    rm builds
    ln -s /usr/src/kernels/2.6.22.19-72.endian15-i586/ builds
  4. Untar the compressed tarball and build the module
    tar xvf r8168-8.015.00.tar.bz2
    cd r8168-8.015.00
    make clean modules
  5. Copy the module into place
    gzip src/r8168.ko
    cp src/r8168.ko.gz /lib/modules/2.6.22.19-72.e18/kernel/drivers/net/
  6. If the r8169 module is loaded, unload itrmmod r8169
  7. Rebuild module dependenciesdepmod -a
  8. Reboot and test things outreboot

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.

Links that got things going in the right direction:
Endian forum thread
Helped in finding the devel pkgs

Have any Question or Comment?

0 comments on “Endian CE & Realtek

John Maddison

Hi,

I’m also trying to build a module (ndiswrapper) under Endian Firewall Community.

Unfortunately it seems the most recent kernel-devel rpm only matches
kernel 2.6.22.19_72.endian15. Yet you imply you are using 2.6.22.19-72.e18.

Where/how can I get a build environment to match 2.6.22.19-72.e18 ?

Endian 2.3 does not include the development RPMS
Endian 2.2-rc3 does include the development RPMS, but kernel-devel (“endian15”) does not match the kernel installed by the 2.2-rc3 *.iso CD image (“e18”).
The devel website (http://updates.endian.org/devel/pool/) only has “endian15” versions on it, so it is some distance behind the CD releases.

Thanks in advance,

John

I’ve spent the weekend

Reply

The .endian15 vs .endian18 is the patch level the Endian team has applied to the kernel. Since the major version is the same you can use the development stuff for .endian15 to build for .endian18. This is assuming that the module you are building is not affected by their patches. If it is then you are likely to get some nice (sarcasm) errors when you try to load the module.

If you look at the update site for the deve-rpms you will even see the .endian15 kernel rpms in the 2.3 tree. I have no idea what Endian is doing here but it is very annoying and counterproductive. Should some one build something that is affected by the paches they apply then there would be an issue.

Yes, this is a gamble, but a minimal one that has worked so far for me. Right now according to the forums and such there is no way to match the .endian18 kernel.

andarius

Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

*

This blog is kept spam free by WP-SpamFree.

Most who fail…

Most who fail have yet to really try!