Rick Moen's Notes on Upgrading to Linux 2.2

This is a listing of the packages you may need to upgrade, in order to successfully switch to the 2.2 series of Linux kernels. The list is intended for users who manage their systems manually, from source code archives. Users who depend on binary distributions and pre-built, self-installing "packages" (such as .deb or .rpm files) will probably prefer to wait for new versions of their Linux distributions, built around 2.2.x kernels.

For further 2.2 installation help, see the Documentation/Changes file (and other Documentation/* files) in each kernel's source tree, and Alan Cox's "Clue Point Two" Web page. The Debian Project's Kernel 2.2 Checklist is also an outstanding resource.

Miscellaneous notes:

  • You will need to change /etc/printcap to use /dev/lp0 instead of /dev/lp1, because of parallel port driver changes in Linux 2.1/2.2 that now number parallel devices from zero instead of imitating obsolete DOS driver numbering. You may wish to switch to the more-modular "parport" driver, which supports plug-in drivers for sundry parallel devices.
  • It is reported (by Michael Vance) that some hardware drivers -- lp, sound, and joystick -- must be compiled into the kernel, as they have problems when run as modules.
  • Be aware that /dev/cua* device files are being phased out, and their usage is now deprecated in kernel 2.2.x. Use /dev/ttyS??, instead.
  • kerneld can be disabled, if you include kmod (a kernel thread). See Documentation/kmod.txt, in your kernel source tree.
  • Recent kernels are said to compile now (in general) reliably with egcs 1.03 or pgcc (or FSF's gcc 2.7.2.3 or above). The last word in compatibility remains gcc 2.7.2.3, however.
  • smbmount and fdutils (among probably other utilities) must be recompiled against the 2.2.x headers, to work optimally.
  • Old-style /dev/ttyp* pseudo-TTY devices (major device #4) have been dropped. You may need to make /dev/tty* (major device #3) and /dev/pty* (major device #2) device files, if you get bogus "out of pty" errors.
  • The 128MB/partition limit on Intel-Linux swap partitions is gone in 2.2, provided you replace mount and mkswap (both in util-linux).
  • Compiling syncookie support into the kernel doesn't suffice to enable it: You should issue the command "echo 1 > /proc/sys/net/ipv4/tcp_syncookies" at boot time, to do so.
  • Ctrl-Alt-Del now defaults to a cold reboot. For warm reboot, add a "reboot=warm" (or sometimes "reboot=bios") to /etc/lilo.conf.
  • You can now provide kernel-level interpretator services for java binaries, python, and elisp code -- and potentially others.

Here are the latest of the relevant packages I've been able to find. No warranty, no assurances, post no bills, tra la. These things may give you trenchfoot and terminal halitosis, for all I know. Have fun! Fnord.

autoconf:
Source site: ftp://prep.ai.mit.edu/pub/gnu/autoconf/
Latest known: autoconf-2.13.tar.gz

autofs:
Source site: ftp://ftp.kernel.org/pub/linux/daemons/autofs/
Mirror site: ftp://ftp.tux.org/pub/sites/ftp.kernel.org/linux/daemons/autofs
Mirror site: ftp://ftp.varesearch.com/pub/mirrors/kernel/pub/linux/daemons/autofs/
Latest known: autofs-3.1.3.tar.gz
Use in place of amd (auto-mount daemon).

bash:
Source site: ftp://prep.ai.mit.edu/pub/gnu/bash/
Latest known: bash-2.03.tar.gz
Minimum version: bash-1.14.7.tar.gz

bash-doc:
Source site: ftp://prep.ai.mit.edu/pub/gnu/bash/
Latest known: bash-doc-2.03.tar.gz
Minimum version: bash-doc-1.14.7.tar.gz

binutils:
Source site: ftp://tsx-11.mit.edu/pub/linux/packages/GCC/
Source site: ftp://ftp.tux.org/pub/sites/ftp.kernel.org/linux/devel/gcc/
Mirror site: ftp://ftp.varesearch.com/pub/mirrors/kernel/pub/linux/devel/gcc/
Latest known: binutils-2.9.1.0.23.tar.gz
Minimum version: binutils-2.8.1.0.23.tar.gz

dhcp client (ISC version):
Source site: ftp://ftp.isc.org/isc/dhcp/
Mirror site: ftp://ftp.tux.org/pub/sites/ftp.isc.org/dhcp/
Latest known: dhcp-2.0b1p26.tar.gz

dhcp client (PhysTech version)::
Source site: ftp://ftp.phystech.com/pub/
Latest known: dhcpcd-1.3.17-pl5.tar.gz

dosemu:
Source site: ftp://ftp.dosemu.org/dosemu/
Latest known: dosemu-0.98.6.tgz

fbset:
Source site: http://www.cs.kuleuven.ac.be/~geert/bin/
Latest known: fbset-19990118.tar.gz
If you'll be using the framebuffer device for video.

gettext:
In the glibc FAQ, the FSF says: "This package contains the tools needed to construct `message catalog' files containing translated versions of system messages."
Source site: ftp://prep.ai.mit.edu/pub/gnu/gettext/
Mirror site: ftp://ftp.tux.org/pub/sites/prep.ai.mit.edu/
Latest known: gettext-0.10.tar.gz

glibc:
Current source site: ftp://sourceware.cygnus.com/pub/glibc/
Traditional source site, release: ftp://prep.ai.mit.edu/pub/gnu/glibc/
Traditional source site, pre-release: ftp://alpha.gnu.org/gnu/
Latest known: glibc-2.1.tar.gz
Minimum version: glibc-2.0.7pre6.tar.gz
Note optional add-ons: glibc-crypt, glibc-linuxthreads, glibc-localedata.
See: http://www.imaxx.net/~thrytis/glibc/ and
http://www.imaxx.net/~thrytis/glibc/glibc-FAQ.html and
http://www.linuxhq.com/HOWTO/Glibc2-HOWTO.html
glibc 2.1 is unavailable from the traditional GNU site because Richard Stallman pulled it from availability -- on grounds that it cannot be compiled with the FSF's gcc version 2.8 compiler (but can with other popular compilers). Please note that the so-called "2.0.7" C libraries in some popular distributions (such as Red Hat 5.2) are the distributor's patched CVS snapshots, are not real GNU versions, and may omit an important dynamic-linker bugfix added only in the real 2.0.7pre6 beta.

glibc-crypt:
"The GNU C library now includes Michael Glad's Ultra Fast Crypt, which provides the Unix `crypt' function, plus some other entry points. Because of the United States export restriction on DES implementations, we are distributing this code separately from the rest of the C library...."
Current source site: ftp://sourceware.cygnus.com/pub/glibc/
Traditional source site: ftp://ftp.ifi.uio.no/pub/gnu/
Latest known: glibc-crypt-2.0.111.tar.gz
Presumably, the CYGNUS site's version is required for glibc 2.1.

glibc-linuxthreads:
An implementation of the Posix 1003.1c "pthread" interface.
Current source site: ftp://sourceware.cygnus.com/pub/glibc/
Traditional source site: ftp://prep.ai.mit.edu/pub/gnu/glibc/
Latest known: glibc-linuxthreads-2.1.tar.gz
Presumably, the CYGNUS site's version is required for glibc 2.1.

glibc-localedata:
Contains the data needed to build the locale data files to use the internationalization features of the glibc.
Source site: ftp://prep.ai.mit.edu/pub/gnu/glibc/
Latest known: glibc-localedata-2.0.6.tar.gz

ibcs:
Source site: ftp://tsx-11.mit.edu/pub/linux/BETA/ibcs2/
Mirror site: ftp://ftp.tux.org/pub/sites/tsx-11.mit.edu/BETA/ibcs2/
Latest known: ibcs-2.1-981105.tar.gz

ipchains:
Source site: ftp://ftp.rustcorp.com/ipchains/
Latest known: ipchains-1.3.8.tar.gz
Replacement for ipfwadm.

ipmasqadm:
Source site: http://juanjox.linuxhq.com/
Latest known: ipmasqadm-0.4.2.tar.gz
For IP masquerading forwarding.

iputils:
Source site: ftp://ftp.inr.ac.ru/ip-routing/
Latest known: iputils-ss990107.tar.gz
To get a non-buggy ping utility.

isdn4linux:
Source site: ftp://ftp.suse.com/pub/isdn4linux
Latest known: (daily updates)

knfsd:
Source site, release: ftp://ftp.kernel.org/pub/linux/devel/gcc/
Source site: ftp://ftp.tux.org/pub/sites/ftp.kernel.org/linux/devel/gcc/
Mirror site, release: ftp://ftp.varesearch.com/pub/mirrors/kernel/pub/linux/devel/gcc/
Source site, pre-release: ftp://ftp.yggdrasil.com/private/hjl/
Latest known: knfsd-1.2.2a.tar.gz
Kernel-space NFS server; alternative to nfs-server.

ld.so:
Source site: ftp://ftp.ods.com/pub/linux/
Latest known: ld.so-1.9.10.tar.gz
Minimum version: ld.so-1.9.9.tar.gz
"The versions of ld.so found here should be considered beta, and sometimes alpha, until they are placed in the public GCC area on tsx-11.mit.edu."
[See also: ftp://tsx-11.mit.edu/pub/linux/packages/GCC/, where the latest is ld.so-1.9.9.tar.gz]

libc5:
Source site: ftp://metalab.unc.edu/pub/Linux/GCC/
Latest known: libc-5.4.46.tar.gz
Minimum version: libc-5.4.46.tar.gz
5.4.46 is the final version of libc5.

libg++:
Source site, release: ftp://ftp.kernel.org/pub/linux/devel/gcc/
Mirror site, release: ftp://ftp.tux.org/pub/sites/ftp.kernel.org/linux/devel/gcc/
Mirror site, release: ftp://ftp.varesearch.com/pub/mirrors/kernel/pub/linux/devel/gcc/
Source site, pre-release: ftp://ftp.yggdrasil.com/private/hjl/
Latest known: libg++-2.8.1.2-alpha.tar.bz2
Minimum version: libg++-2.7.2.8.tar.gz

linux:
Source site: ftp://ftp.kernel.org/pub/linux/kernel/v2.2/
Mirror site: ftp://ftp.tux.org/pub/kernel/v2.2/
Mirror site: ftp://ftp.varesearch.com/pub/mirrors/kernel/v2.2/
Latest known: linux-2.2.5.tar.bz2
(As of 2.2, kernels are only available in bzip2 format on the kernel.org original. Other mirrors may have unofficial .gz copies.)

linux-nfs:
Source site: ftp://linux.mathematik.tu-darmstadt.de/pub/linux/people/okir/
Mirror site: ftp://linux.nrao.edu/pub/people/linux/okir/
Latest version: linux-nfs-0.4.21.tar.gz
(Note that at last inspection, the NFS server contents appear to be obsolete, but not the client software within it.)

loadlin:
Source site: ftp://elserv.ffm.fgan.de/pub/linux/loadlin-1.6/update-1.6a/
Latest known: loadlin.exe.gz (version 1.6a)
Minimum version: loadlin.exe.gz (version 1.6a)
Because of recent kernels' new method of determining memory size, versions before 1.6a must be upgraded. (Above gzipped file appears to be the 1.6a replacement binary, only, not the complete loadlin package.) You do not need loadlin if you use LILO.

make:
Source site: ftp://prep.ai.mit.edu/pub/gnu/
Mirror site: ftp://ftp.tux.org/pub/sites/prep.ai.mit.edu/
Latest known: make-3.77.tar.gz
Minimum version: make-3.75.tar.gz
In the glibc FAQ, the FSF says: "We recommend GNU make version 3.75. Versions 3.76 and 3.76.1 have bugs that appear when building big projects like GNU libc. Versions before 3.74 have bugs and/or are missing features."

modutils:
Source site: ftp://ftp.kernel.org/pub/linux/kernel/v2.1/
Mirror site: ftp://ftp.tux.org/pub/kernel/v2.1/
Latest known: modutils-2.1.121.tar.gz
Minimum version: modutils-2.1.121.tar.gz

mount:
has been merged into util-linux

ncpfs:
Source site: ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/
Latest known: ncpfs-2.2.0.tgz
Minimum version: ncpfs-2.2.0.tgz

netatalk (ASUN version):
Source site: ftp://ftp.u.washington.edu/pub/user-supported/asun/
Latest known: netatalk-1.4b2+asun2.1.3.tar.gz
U. Mich. version of netatalk doesn't work with recent kernels, so switch to this one.

nettools:
Source site: ftp://ftp.cs-ipv6.lancs.ac.uk/pub/Code/Linux/Net_Tools/
Latest known: net-tools-1.50.tar.gz
Minimum version: net-tools-1.50.tar.gz

nfs-server:
Source site: ftp://ftp.mathematik.th-darmstadt.de/pub/linux/okir/dontuse/
Latest known: nfs-server-2.2beta41.tar.gz
Minimum version: nfs-server-2.2beta40.tar.gz
User-space NFS server; alternative to knfsd.

pciutils:
Source site: ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci/
Latest known: pciutils-1.10.tar.gz
Better control over and information about PCI devices.

pcmcia-cs:
Source site: ftp://hyper.stanford.edu/pub/pcmcia/
Latest known: pcmcia-cs-3.0.9.tar.gz
Minimum version: pcmcia-cs-3.0.7.tar.gz

procinfo:
Source site: ftp://ftp.cistron.nl/pub/people/svm/
Latest known: procinfo-16.tar.gz
Minimum version: procinfo-16.tar.gz

procps:
Source site:ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin/
Mirror site: ftp://ftp.tux.org/pub/sites/tsx-11.mit.edu/sources/usr.bin/
Mirror site: ftp://metalab.unc.edu/pub/Linux/system/Status/ps/
Latest known: procps-2.0.2.tar.gz
Minimum version: procps-1.2.9.tar.gz

psmisc:
Source site: ftp://lrcftp.epfl.ch/pub/linux/local/psmisc/
Latest known: psmisc-18.tar.gz
Minimum version: psmisc-17.tar.gz
Contains "fuser", which reads /proc, and so must be upgraded from any version prior to 17.

ppp:
Source site: ftp://cs.anu.edu.au/pub/software/ppp/
Latest known: ppp-2.3.7.tar.gz
Minimum version: ppp-2.3.5.tar.gz

quota:
Source site: ftp://ftp.uk.linux.org/pub/linux/sct/quota/
Latest known: quota-1.55-10.src.rpm
Tracks quota units in blocks instead of bytes, yielding an upper quota limit in the terabytes, versus 4 GB otherwise. To convert the RPM source archive to an ordinary .tar.gz archive, use the following cpio script:
ftp://ftp.cdrom.com/pub/linux/slackware-3.5/source/a/bin/rpm2targz

rpm:
Source site: ftp://ftp.redhat.com/redhat/current/SRPMS/SRPMS/
Latest known: rpm-2.5.5-5.2.src.rpm
You need 2.5.1 or later: That is a challenge, in that the rpm utility is available only as an RPM archive in a newer, non-backwards-compatible format. Once you have rpm's RPM package, convert it to an ordinary .tar.gz archive using the following cpio script:
ftp://ftp.cdrom.com/pub/linux/slackware-3.5/source/a/bin/rpm2targz

samba:
Source site: ftp://ftp.samba.org/pub/samba
Latest known: samba-2.0.3.tar.gz
To get the latest smbmount utility, which must also be compiled against the new kernel headers.

setserial:
Source site: ftp://tsx-11.mit.edu/pub/linux/sources/sbin/
Mirror site: ftp://ftp.tux.org/pub/sites/tsx-11.mit.edu/sources/sbin/
Latest known: setserial-2.15.tar.gz
Minimum version: setserial-2.15.tar.gz
Older versions cause random problems (stuck lines, lost characters, etc.) on recent kernels.

sh-utils:
Source site: ftp://prep.ai.mit.edu/pub/gnu/sh-utils/
Mirror site: ftp://ftp.tux.org/pub/sites/prep.ai.mit.edu/
Latest known: sh-utils-1.16.tar.gz
Minimum version: sh-utils-1.16.tar.gz

sysklogd:
Source site: ftp://ftp.infodrom.north.de/pub/people/joey/sysklogd/
Mirror site: ftp://metalab.unc.edu/pub/Linux/system/daemons/
Latest known: sysklogd-1.3-31.tar.gz
Minimum version: sysklogd-1.3-31.tar.gz
Older versions sometimes segfault on 2.2 kernels. Newer ones have better decoding of kernel "oopses", and support system power-off on halt.

texinfo:
Source site: ftp://prep.ai.mit.edu/pub/gnu/texinfo/
Mirror site: ftp://ftp.tux.org/pub/sites/prep.ai.mit.edu/
Latest known: texinfo-3.12.tar.gz

tunelp:
Source site: ftp://e-mind.com/pub/linux/tunelp/
Latest known: tunelp-0-2.1.131.tar.gz
Better support for IRQ-driven lp ports.

util-linux:
Source site: ftp://ftp.win.tue.nl/pub/linux/utils/util-linux/
Mirror site: ftp://ftp.tux.org//pub/sites/ftp.kernel.org/linux/utils/util-linux/
Latest known: util-linux-2.9i.tar.gz
Minimum version: util-linux-2.9i.tar.gz

xosview:
Source site: ftp://metalab.unc.edu/pub/Linux/system/status/xstatus/
Latest known: xosview-1.7.1.tar.gz
Recent versions are required by /proc interface changes.

ypbind:
Source site: ftp://ftp.uni-paderborn.de/pub/linux/local/yp/
Latest known: ypbind-3.3.tar.gz
Recent versions are required to work with libc5.4.x.

[This has been an unauthorised cybernetic announcement.]