Upgrading to kernel 2.2

Sept 1st, 1999

The 2.2 kernel has finally been officially released from the NetWinder. However there are a number of gotcha's that you should be aware of, if you wish to upgrade. This page aims to help you with this process.

There will be a new DM disk image, ready for the 2.2 kernel, rsn. This page is for those people who can't wait :)

What's needed to upgrade

The starting point is assumed to be DM build #12 with the 2.0.35 kernel. If you have an older build (or worse, you don't even know what build you have) then please deal with that first before tackling the 2.2 kernel.

The 2.2 kernel uses a different way of passing arguments from the firmware to the kernel, and therefore needs recent firmware. The recommended version is nettrom-2.1.7.bin. Please see the Firmware-HOWTO for more instructions on how to upgrade and operate the firmware. Reboot your machine after you've installed the new firmware and make sure you can still boot with your original kernel (otherwise if you have a problem, it will be hard to figure out which update caused the trouble).

The 2.2 kernel can be downloaded in binary or source from pub/ccc/kernel/. In the binaries directory, you will find two RPM packages for each kernel - one containing the binary and modules, the other containing the system header files. Both packages should be installed with the rpm -i command (and if necessary, the --nodeps flag). This will not remove the old 2.0.35 kernel, it will merly install the new one alongside the old, and will change the symlinks in /boot so the new kernel is loaded by default.


Upon rebooting after having installed the kernel RPM's, you should be greeted with the friendly little penguin logo. If you get a black screen and nothing else... well that is rather sad indeed. In that case, you should reboot and stop the firmware at the autoboot prompt, then enter setenv kernfile /boot/old_kernel_name to use the original kernel.

In general the kernel should boot for everyone though (famous last words...) The trouble sets in later on, since some of the apps don't like the kernel. The remainder of this page lists some of the services that fail and what to do about them.

Sound doesn't work

This is because the sound is now completely modular, and soundcore needs to be loaded before it will work. The best way to fix this is to create/edit the file /etc/conf.modules and add a line that reads alias sound waveartist. Then remove the /etc/rc.d/rc.modules file since module autoloading will work now.

Vidcap module doesn't load

Well the vidcap stuff hasn't been ported to 2.2 yet. So it doesn't work. Get rid of /etc/rc.d/rc.modules and the annoying errors will go away.

klogd segfaults

Yes, it doesn't seem to like the 2.2 kernel. You can either ignore it, or install a newer version. I fetched a SRPM and did an rpm --rebuild on it, then install the resulting binary rpm. Seems to work.

Incoming ftp and telnet fail

Once again, recompiling the in.ftpd and in.telnetd fixes this. If you are only ftp'ing or telnet'ing out of your system, it doesn't matter.


I've not been able to confirm this positively, but it seems that fdisk from builds #12 or #13 in combination with the 2.2 kernel spells disaster - the partition table gets messed badly. If you want to repartition your disk, do it using the 2.0.35 kernel. Or get a new version of fdisk and cross your fingers.

X window system

The old XF68_FBDev driver works as-is (but its' slow). The accelerated XF86_SVGA driver will fail with "no devices were detected". An updated X server is available in Andrew's redhat directory, but keep in mind that the binaries there are not well tested.

Parallel port

Under 2.2 the parallel port is handled somewhat differently than before. Any task that uses the port (eg. printers, ZIP drives) has to insmod parport and insmod parport_pc before loading the other regular drivers. Please see parallel port notes for more details.

NFS services

The rpc.mountd and rpc.nfsd services fault and die upon startup, meaning no NFS services. Rebuilding a newer version ought to cure things...

This list is not complete

There are probably other problems... Please send me any information you think I should include on this page, or updates to the above items. Thanks.

In general, recompiling the packages is the first thing to try (but obviously some things are much harder to recompile than others). Please note also that the glibc on build #12 is now rather dated, numerous bugs have been fixed in newer versions. The upcoming DM-15 disk image will save you a lot of hassle if you are willing to wait for it... snapshots of the components can be found in Andrew's redhat directory for those that want to experiment.

Ralph Siemsen / ralphs@netwinder.org