next up previous
Next: Getting the kernel to Up: Setting up a Linux Previous: Network configuration

Choosing and configuring the linux kernel

Linux 2.2.19 I could not get to work at all (I didn't try very hard either). Linux 2.4.9 works well, it automatically configures the 3com adapter, and everything works beautifully. Sadly though, there is no NFS-swapping patch for any version of linux greater than 2.4.5. Since I am too dumb to get nbd to run reliably, the only ``solution'' I could find was Peter Breuer's enbd. It's a beautiful program which compiles, installs and works out-of-the-box and is utterly unsuited to the task at hand, namely swapping over the network. Sometimes it will work and sometimes it won't.

There is an nfs-swapping patch available for Linux 2.4.5. However, Linux 2.4.5 does not correctly configure the 3c905C-TX-M card with the NFS-swapping-patch applied and 3com-support compiled into the kernel. The net result is that you can't configure the network using anything but the information the card's ROM provides, which is sparse. As soon as you issue an explicit ifconfig ... up, it works fine. For a network card that works with this kernel revision though, 2.4.5 is a good choice.

Have you made up your mind? Good. Grab the selected kernel source, untar and configure in your preferred way. Remember that everything you need for booting CAN'T BE BUILD AS A MODULE! That is, unless you want to create an initial ramdrive and go through all that just to dig a couple k of mem usage out of your kernel.

You will need to say yes to the following options:

If you feel the need to use a temporary directory on your diskless nodes, at least say module to the following questions:

You can safely say no to swapping to block devices.

If you don't want your client to swap at all, or if you want it to swap to an NBD device, you can leave out swapping via NFS. In that case, you will have to say y or m to the network block device code.

If you want to use 2.4.9 (or later), you can leave out Prompt for experimental code.

Now, build a bzImage. It can be found in arch/i386/boot/bzImage. Make a copy of that. It is now time to get the mknbi package from Debian unstable, if you are using etherboot or netboot. If you are using the 3com MBA, you need to use mknbi version 1.0. They can be obtained from the etherboot homepage or directly from

Also, when using the 3com MBA, obtain the imggen program from the Linux Terminal Server Project's contrib pages at

Now, tag your bzImage-copy:

mknbi-linux --output <output-name> <bzImage-copy>\
--append="ip=<method> <additional kernel-command-line parameters>"
What's that method thing? It tells the kernel where it can obtain its IP configuration. this can be any, dhcp, bootp, rom or a ip:server:gateway:netmask:hostname structure. If something doesn't work at the point where the kernel configures the network, choose rom.

If it's not already present, you may have to create a character special file /dev/nfs with major 0, minor 255 (mknod /dev/nfs c 0 255).

When using 3com, do ``imggen -a <output-name> <final-name>''.

You can now rename <output-name> or <final-name> to the option given under ``bf'' in your bootptab file.

next up previous
Next: Getting the kernel to Up: Setting up a Linux Previous: Network configuration