aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorClyne Sullivan <clyne@bitgloo.com>2022-04-29 21:22:24 -0400
committerClyne Sullivan <clyne@bitgloo.com>2022-04-29 21:22:24 -0400
commite5a5b64c61de0b687b465fb19d8f0208df7cc14e (patch)
tree00d8967a3cf7506e37d969e484a200b68c63b2c8 /README.md
parent700a1b10b3a9d021b6a02d0f837ddfde52578634 (diff)
add complete build system
Diffstat (limited to 'README.md')
-rw-r--r--README.md40
1 files changed, 32 insertions, 8 deletions
diff --git a/README.md b/README.md
index 7f58007..fc2a15a 100644
--- a/README.md
+++ b/README.md
@@ -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.