diff options
author | Clyne Sullivan <clyne@bitgloo.com> | 2022-04-29 21:22:24 -0400 |
---|---|---|
committer | Clyne Sullivan <clyne@bitgloo.com> | 2022-04-29 21:22:24 -0400 |
commit | e5a5b64c61de0b687b465fb19d8f0208df7cc14e (patch) | |
tree | 00d8967a3cf7506e37d969e484a200b68c63b2c8 /README.md | |
parent | 700a1b10b3a9d021b6a02d0f837ddfde52578634 (diff) |
add complete build system
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 40 |
1 files changed, 32 insertions, 8 deletions
@@ -1,14 +1,38 @@ # linux-486 -This repo provides the files necessary to build a Linux-based "operating system" for old i486 systems with at least 8MB of RAM. +This repo provides the files necessary to build a Linux-based "operating system" for old i486 systems with at least 8MB of RAM. Build scripts for all components of the sysem are provided. An i486-linux toolchain is also built, enabling you to compile other programs for the system. -The generated single floppy disk image allows you to boot into a Busybox system that is kept entirely in memory, freeing up the floppy disk drive for other disks/data. +The generated boot floppy disk provides you with a Busybox system that is kept entirely in memory. uClibc's shared library files are also loaded into memory, allowing other programs to save on memory (as opposed to using static binaries). -The boot process goes: -* GRUB 0.96 boots Linux. -* Linux loads an embedded initramfs with a "preinit" init binary. -* "preinit" mounts the floppy disk, decompresses busybox into the root ramdisk filesystem, then unmounts the floppy. -* busybox runs its own init process, bringing you to a shell. +A second floppy containing additional kernel modules can also be generated. Both floppies are ext2 formatted. -To test the floppy image with QEMU, provide at least 8320K of RAM. +## Build requirements + +* building tools (make, gcc, linux's requirements, etc.) +* bash +* wget +* tar, xz, bzip2 + +## Build steps + +Run the build scripts in this order: + +1. `build-toolchain.sh` (after this script, add ~/i486-linux/bin to your PATH) +2. `build-linux.sh` +3. `build-busybox.sh` +4. `build-floppy.sh` +5. `build-modules.sh` + +After successful execution of all scripts, you should have `floppy.img` (boot image) and `modules.img` (modules). These can be `dd`'d to a 1.44M 3.5" floppy disk. + +## Booting the system + +The system requires an i486 or better processor, a 3.5" floppy drive, and at least 8MB of RAM (8320K for QEMU). + +Notes: + +* Once the system is booted, the floppy disk can be removed. +* root's password is `toor`. +* Mount the modules floppy to `/lib/modules`; then, use `modprobe` for loading and unloading. +* The `msdos` module may need to be loaded to read MS-DOS/FAT floppies. |