On this page You find some files to make Linux work with the net4801 product by Soekris.

For kernel 2.4.22 net4801.kernel.patch (02-09-2003)
For kernel 2.4.24 net4801.kernel.patch_2.4.24 (21-01-2004)
For kernel 2.4.25 net4801.kernel.patch_2.4.25 (18-02-2004)
For kernel 2.4.26 net4801.kernel.patch_2.4.26 (22-06-2004)
For kernel 2.4.27 net4801.kernel.patch_2.4.27 (09-08-2004)
For kernel 2.4.28 net4801.kernel.patch_2.4.28 (update 15-02-2005)
For kernel 2.4.29 net4801.kernel.patch_2.4.29 (15-02-2005)
For kernel 2.4.31 net4801.kernel.patch_2.4.31 (30-08-2005)

For kernel 2.6.8.1 net4801.kernel.patch_2.6.8.1 (12-09-2004)
For kernel 2.6.9 net4801.kernel.patch_v2_2.6.9 (29-11-2004)
For kernel 2.6.10 net4801.kernel.patch_v2_2.6.10 (27-02-2005)
For kernel 2.6.11 net4801.kernel.patch_v2_2.6.11 (02-03-2005)

For kernel 2.6.12 and up the patches are included in the vanilla kernel.

For kernel 2.6.x scx200 watchdog scx200_wdt.patch (28-11-2004)
For kernel 2.6.10 scx200 watchdog scx200_wdt.patch (02-03-2005)

The patch includes three fixes for the device. First in the "Processor type and features" section you can select "MediaGX/Geode". Second it makes the PCI scan work, and third it includes a drivers for the hardware watchdog included in the net4801.

To apply the patch, use a stock kernel, I used Version 2.4.22/24/25. Unzip the kernel. Change to the kernel directory and apply the patch:

   # patch -p1 < net4801.kernel.patch
(or net4801.kernel.patch_2.4.24 or net4801.kernel.patch_2.4.25, etc)

When configuring the kernel make sure to enable MediaGX/Geode in the Processor type and features.

Watchdog on 2.4.x Kernels

Enable the CONFIG_WD1100 option in the Watchdog section. The WD1100 Watchdog should be compiled as an Module.

Compile and install the kernel and modules. Boot the net4801. Create the watchdog device:

   # mknod -m 600 /dev/wd c 10 130
... and load the driver:
   # modprobe wd1100 timeout=30
This will make the Watchdog reboot your box if there has been no activity on /dev/wd for more than 30 seconds. If no "timeout" parameter is passed to the module, it will default to 4 seconds, which is probably to short.

Now you will need the watchdog user-space program. I use the one included with busybox. Start the watchdog with

   # watchdog -t 15 /dev/wd
This will write to /dev/wd every 15 seconds.

To test the Watchdog, set the timeout to 10 seconds by issuing


   # echo "10" > /proc/sys/dev/wd/timeout
The box should reboot after 10 seconds.

You will find the original watchdog drivers here.

Watchdog on 2.6.x Kernels

Patch the kernel with the above Kernel and Watchdog (scx200) Patch.

Enable and the SCx200 option in the Watchdog section. The SXx200 Watchdog should be compiled as an Module.

Compile and install the kernel and modules. Boot the net4801. Create the watchdog device:

   # mknod -m 600 /dev/wd c 10 130
... and load the driver:
   # modprobe scx200_wdt margin=30
This will make the Watchdog reboot your box if there has been no activity on /dev/wd for more than 30 seconds. If no "margin" parameter is passed to the module, it will default to 60 seconds.

Now you will need the watchdog user-space program. I use the one included with busybox. Start the watchdog with

   # watchdog -t 15 /dev/wd
This will write to /dev/wd every 15 seconds.

To test the Watchdog, simply kill the user-space program and wait (at most) 30 seconds to see your Soekris (hopefully) reboot.

The original CPUID-Patch can be found at http://www.da-cha.org/geode/geode.html.

Have Fun!

Page hosted on SK-TECH.net Kianusch Sayah Karadji kianusch@sk-tech.net