[SOLVED] How to compile Linux Kernel and write it to a 1.44M floppy disk?
Linux - KernelThis forum is for all discussion relating to the Linux kernel.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
How to compile Linux Kernel and write it to a 1.44M floppy disk?
Hi guys! I'm a retro computing nerd and I want to make a Linux Distro for very old computers (486 and up). To start off I just want to compile the kernel and put it on a 1.44M floppy disk. What would be the most recent version of the kernel could I do this with, and how would I go about compiling it to a .img file or whatever?
You should be asking what is the most recent version of the kernel that would actually run on a machine like that! Probably something in the 2.0 series.
To compile a kernel, you download the source and use a command sequence like make menuconfig->make bzImage->make modules. But again I don't know if a very old kernel would compile at all with modern compilation tools.
You should be asking what is the most recent version of the kernel that would actually run on a machine like that! Probably something in the 2.0 series.
To compile a kernel, you download the source and use a command sequence like make menuconfig->make bzImage->make modules. But again I don't know if a very old kernel would compile at all with modern compilation tools.
You would be short of both disc space and memory so you would not want to build any drivers for hardware that was not present on the machine. If it was me, I'd put drivers for the disk controller, partition and filesystem into the kernel (so no need for an initrd) and compile the few other drivers you would need as modules.
Not quite what you're asking for, but these projects might still be useful...
No idea if it'll run on a 486, but Tiny Core Linux gets a modern kernel down to 17MB without a GUI, 23MB with GUI. (Maybe check if there are download archives of early versions that go smaller?)
The typical "old computer" distro is AntiX Linux, but it requires at least a Pentium 1 (i.e. 586), and would require a CD.
More importantly, both of them have forums where you might be able to ask advice on going smaller/older... Tiny Core Linux Forum and AntiX Forum.
Until recently, you could get tomsrtbt at www.toms.net/rb. That reformatted the floppy to 1.82MB, and wrote a 2.0 kernel and ancient busybox to it. It was libc5 based, and enshrined everything that was bad about early pcs. But you want that, by the sound of it.
You may find tomsrtbt mirrored somewhere. Otherwise, pick up a kernel from the 1990s and get a second floppy for the initrd & busybox. Slackware was originally distributed on floppy disks. Slackware goes back to version 1.x on ftp.slackware.uk, which has decent bandwidth.
EDIT: Slackware was compiled i486 for most of it's 32bit life. I'm sure it was i386 back then.
Last edited by business_kid; 07-03-2023 at 12:58 PM.
2.0 won't compile on modern Ubuntu Linux. Should I try setting up a older linux disro in a VM or something?
I would grab an old distro kernel which is precompiled. That stuff links against libc.so.5. Everything since about kernel 3.0 links against libc.so.6 and the two are teetotally different.
Early slackware was distributed on floppies in the mid 1990s, when 486s were current.
Last edited by business_kid; 07-04-2023 at 08:11 AM.
Well, let's say I drop the 1.44MB limit. Would the newest linux kernel run on a 486? (I remember hearing somewhere they were thinking about dropping support for it, not sure if that happened.)
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.