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?"
Hmm. This does sound rather unfortunate, but you might want to try using a bzImage boot image instead... sometimes they work better, sometimes they don't :-)
make bzImage
does the magic. If that fails, then try as Cliff suggested to make a few more things modules.
Good luck!
I hate to answer a question with a question but do you have a reason for upgradeing, other than it's the latest and greatest thing? Not saying it's not a significant difference between 2.2.13 and 2.2.20...
Secondly have you tried those in between...if this is for fun/experimental I'd try those in between if there IS a reason to upgrade...
Starz McCllelan
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.
Hey, no shit? That's how you read it too, eh?
--saint
The thing weighs about 20 pounds, has less memory than most modern hard drives have cache, and is about as portable as a suitcase. Why not retire it to the nearest landfill (after recycling key components, I suppose), and pick up something made in the past decade? What could you possibly do on something that old anyway? Use it as a portable...terminal?
"Ask Slashdot" seems to be, a lot of the time, about chasing your tail and wasting hours of your time figuring out kludgey solutions to silly problems. This is the case here, I think.
"Remember when the U.S. had a drug problem, and then we declared a War On Drugs, and now you can't buy drugs anymore?"
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.
I have a 386 deployed as a production server. It's colocated far away, and I can't physically get to it without a lot of trouble. It's mostly working fine and has for a LONG time, and fundamentally, if the box does the job, why replace it?
Another reality is that yesterday's underpowered desktop systems look a lot like today's lightweight embedded systems. A 386 or 386SX with 1MB of RAM might be the core of a palmtop or wearable box being sold new today. The problem of supporting lightweight embedded systems and the problem of supporting old hardware is frequently similar.
On a similar note to this main topic, has anyone gotten 2.4 to work on a real 386? It fails to boot on mine, and does so in various ways depending on kernel versions. Some 2.4.x versions don't even start, and others start to boot but then panic not far into the boot process. 2.2.x runs okay on the same box.