SysTutorials

Linux 2.0 Release Notes

· updated April 11, 2026

This document provides the essential software versions and upgrade instructions for running Linux 2.0.x kernels successfully. It covers package compatibility, known issues, and practical solutions for system administrators upgrading from earlier kernel releases.

Networking Configuration

The loopback route configuration in many older network scripts is incorrect and will cause kernel errors in 2.0.x. Look for lines like:

route add -net 127.0.0.1

Change them to:

route add -net 127.0.0.0

This affects all Red Hat distributions and derivatives. Edit /etc/sysconfig/network-scripts/ifup-lo and update the route command accordingly.

Bootloader and Kernel Build Changes

The 2.0.x boot subsystem supports larger kernels via bzImage format and can load initial ramdisks (initrd). Update your bootloader if you need these features. Use make bzImage, make bzlilo, or make bzdisk instead of the older zImage targets.

If your system uses LILO and you have ramdisk=0 in your configuration, comment it out and rerun lilo. This is common in older Slackware installations.

C Library Compatibility

The stable libc-5.2.18 release introduces changes that can break some utilities—notably GNU make. Read the release notes before upgrading from libc-5.0.9 or earlier.

The beta libc-5.3.12 release fixes a dirent structure bug and resolves an rlogin security vulnerability. However, it breaks programs that incorrectly call free() on pointers not returned by malloc(). Some GNU packages (including older make versions) depend on the buggy behavior and require patching.

If you see this error:

fcntl_setlk() called by process 123 with broken flock() emulation

Upgrade to at least libc-5.2.18. The 2.0.x kernel adds proper BSD-style flock() support, which older libc versions don’t recognize. You can suppress the warning by commenting out the printk call in linux/fs/locks.c if upgrading isn’t feasible.

Process Utilities (Procps)

The /proc filesystem structure changed in 2.0.x. Upgrade procps to 1.01 or later to avoid floating-point errors in ps and related commands.

Kernel Modules

Almost all 2.0.x drivers can be built as modules. Kerneld is now integrated into the kernel itself, so you need the latest module utilities (modules-2.0.0 or later).

Important limitations:

If modules fail to load with symbol mismatch errors, upgrade your module utilities.

PPP Networking

Use pppd from ppp-2.2.0f or later. Earlier versions are incompatible with 2.0.x.

Named Pipes and Init System

Linux’s named pipe implementation changed to follow proper Unix semantics rather than SunOS behavior. This breaks SysVinit 2.59 and earlier, causing repeated “INIT: error reading initrequest” messages during shutdown.

Upgrade to sysvinit-2.64 or later to fix this. The same issue affects other daemons that use named pipes opened in read-only mode. If you encounter problems with applications like Hylafax, change their configuration to open named pipes in read-write mode:

# Before
CONFIG_OPENFIFO="O_RDONLY"

# After
CONFIG_OPENFIFO="O_RDWR"

File Locking (Sendmail)

Mixed file locking styles are no longer allowed in 2.0.x. A file cannot be simultaneously locked with both flock() and fcntl(). Sendmail versions prior to 8.7.x fail with lock errors on aliases.dir and similar files.

Upgrade to sendmail 8.7.5 or later.

Serial Line Configuration (Uugetty)

Older uugetty versions don’t support bidirectional serial lines. Upgrade to getty_ps-2.0.7i or later.

Keyboard Support

For non-ASCII character and font support, upgrade to kbd-0.91 or later.

Mount Utilities

The mount utility is part of util-linux. Upgrade to version 2.5 or later if you use loop devices, NFS, or automounting. Modern loop device support requires updated mount utilities.

Console and Terminal Configuration

The Linux console type changed in 2.0.x. Update terminfo if console output displays incorrectly:

ln -s /usr/lib/terminfo/l/linux /usr/lib/terminfo/c/console

Alternatively, update termcap to version 2.0.8 or the fixed 2.0.8.fix version. If terminal entries are too long, use the fixed version.

The console driver now manages character-to-glyph mapping. If display problems occur, run:

loadunimap def

Disk Performance (Hdparm)

Hdparm 3.1 and later versions take advantage of new 2.0.x kernel driver features for disk optimization.

IP Firewall and Masquerading

The firewall architecture changed significantly. Three rule categories now exist: incoming, outgoing, and forwarded packets. You can match rules by device name and address to prevent spoofing.

Use ipfwadm-2.3.0 or later to configure firewall rules. The older ipfw tool has no 2.0.x support.

IP masquerading is now built-in, but you must load separate modules for FTP (ip_masq_ftp.o) and IRC (ip_masq_irc.o) support.

IP Accounting

All IP packets now pass through the accounting chain. Forwarded packets pass through twice. Use ipfwadm-2.3.0 to define directional accounting rules.

Network Tools

Update net-tools to 1.32-alpha or later due to /proc/net format changes. Note that ipfw has no 2.0.x support; use ipfwadm instead.

Additional Features

ISDN Support: Kernel 2.0.x includes ISDN drivers. Install isdn4k-utils-2.0 or later for configuration.

Frame Relay: Frame relay support is available for Sangoma cards. Refer to frad and routing packages for implementation.

NTP Daemon: Upgrade xntpd to xntp3.5f or later.

Sound Drivers: The sound driver was upgraded, breaking vplay. Install snd-util-3.5 or later and recompile other sound utilities as needed.

Floppy and IDE I/O Control

The floppy ioctl numbering scheme changed in 2.0.x. Recompile mtools, fdutils, and similar utilities to use the new scheme. The old scheme generates warnings in 2.0 and disappears entirely in 2.1.x.

SCSI Drivers

NCR 53c810 drivers are included in the kernel source but require Perl to compile. Ensure Perl is installed before building.

Perl Compatibility

Perl’s connect() call times out with 2.0.x kernels due to changes in optional bind() behavior. Remove the bind() call from your scripts.

Older Perl versions also have issues with readdir() due to libc changes. Upgrade to a current Perl version.

Compiler and Build Tools

If you encounter “Internal compiler error: program cc1 got fatal signal 11” errors, check the Sig11 FAQ (http://www.bitwizard.nl/sig11/). These are usually hardware problems, not kernel bugs. If using Pentium-optimized GCC patches, downgrade to standard GCC.

Random OOPses without clear causes may relate to APM support on some motherboards. Try disabling APM or recompiling the kernel with APM enabled.

Cyclades Serial Drivers

Minor device numbers changed from starting at 32 to starting at 0. Use mknod or an updated MAKEDEV script to recreate device files.

Documentation and Terminal Issues

Groff/Man Pages: Slackware users may see display issues with man pages. Set LESSCHARSET=latin1 or edit /usr/lib/man.config to change -Tlatin1 to -Tascii.

E2fsprogs: e2fsprogs 1.02 works with 2.0.x but cannot compile on it. Use version 1.04 or later if you need to rebuild.

Tcsh: If tcsh behaves incorrectly, add #define SYSMALLOC to config_f.h before recompiling.

Make: If GNU make breaks after libc upgrades, read the libc release notes. When upgrading to libc-5.3.9, apply the provided patches to make. This is a libc issue, not a kernel issue.

Xterm: Libc upgrades can break xterm. Recompile xterm if needed.

Additional Features in 2.0.x

Legacy Compatibility

iBCS2: Binary compatibility for SCO/Unix executables is available.

DOSemu: DOS emulation support. Follow the README.newkernels instructions to patch include files before compiling.

← All posts