Stable 2.2.x Linux Kernels and Older i386 Boxen?
juan.fernandez asks: "A couple of years ago I found a dust-covered CANON A-200TP/16 'portable' personal computer (9 kg weight, 40MB HD, 4MB RAM, 386SX/16, 2.1 bogomips) which dated from 1988. It was running DOS 4.0, being a completely useless computer. I managed to install Slackware 4.0 and a custom 2.2.13 minimum kernel I compiled on my girlfriend's computer (AMD K6II 300MHZ, kernel 2.2.13, distro Suse 6.4). I just went through the usual steps (make config, make dep, make clean, make zImage) and the kernel compiled and booted fine.
The other day i tried to 'upgrade' to the 2.2.20 kernel since i'm interested in running the latest stable Linux kernel on this machine, but despite the fact that the resulting 2.2.20 zImage is even much smaller than the current, well-working, 2.2.13 zImage, I get 'out of memory' when the computer tries to decompress the kernel image right after lilo has finished loading it." Sounds like he doesn't have much memory to play with and the 2.2.13 image, although larger, fit in the available memory footprint available and the 2.2.20 one just didn't. The simple suggestion would be to move a few things into modules, but could this possibly be a memory bug in 2.2.20 that appears only on certain 386 machines?
"When it was running, I could link the little beast via ppp (its got a serial port, 1KB/sec due the ancient UART chip) and reach the internet, running lynx, pine and ircII happily. After some weeks ofplaying with the toy, I forgot about it...until now.
I made many tries, the box where I compile is a PIII 600MHZ running Suse 7.0 with kernel 2.4.14. Kernels compiled for different boxes in this very same machine work well, but not the 2.2.20 one for the 386sx.
What's wrong? Is there the need for any special 'cross-compiling' hack to the kernel source tree or compiling scripts that was not there in the 2.2.13 times?"
It's not your computer, it's 2.2.20 I've had the exact same problem with every build I tried. 2.2.19 works fine, and "make bzImage" works fine. However with the exact same config, 2.2.20 "make zImage" hacks when booting with an "out of memory" error. (On machines with 64 t0 256MB of RAM, kernel built with both glibc and libc5.)
Two solutions:
Run 2.2.19, with appropriate security patches.
Use "make bzImage" instead.
Seriously. 2.0.x lacks some features, and is a little slower in some areas, but it came from the day when 386s were not uncommon, so compromises were made to make them work better.
How much I can't say, I just remember that when 2.2 first went stable I was told my 386 is better off staying with 2.0. It still is today, as my mail spool, though I keep it behind a firewall due to age.