Customization
Theory of Operation
The basic boot process goes like this:
- MS-DOS boots from CD-ROM
- MS-DOS loads CD-ROM drivers
- MS-DOS calls
LOADLIN.EXE
from the CD LOADLIN
boots the Linux kernelinitfs.gz/linuxrc
loads CD-ROM drivers- Alternatively,
initfs.gz/linuxrc
calls/floppy/drivers.sh
to load SCSI drivers
- Alternatively,
initfs.gz/linuxrc
looks for/baslin/FS.IMG
on each IDE block deviceinitfs.gz/linuxrc
useslosetup
to set upFS.IMG
as/dev/loop0
- Linux kernel continues boot using
/dev/loop0
as root
Repo Explanation
/cdboot
Contents of the disk image cdboot.ima
Should be built into a cdboot.ima
file that eventually becomes the "boot image" for ImgBurn.
THIS IMAGE MUST BE MS-DOS BOOTABLE
The distributed cdboot.ima
contains MS-DOS and BasicLinux-LCARS boot code. This boot code is located in cdboot.bin
at the root of the repo. If you make a new disk image, ensure to re-use the original boot code.
/driverdisk
Contents of the demonstration "Adaptec AHA-1542CP SCSI Driver Disk"
driverdisk.ima
and the /driverdisk
directory show how to load additional drivers in "SCSI" boot mode. You can run any arbitrary script, but the boot-init shell only has a handful of commands available (see the demonstration /driverdisk/drivers.sh
for examples).
/livecd
Files which belong on the LiveCD root partition (separate from the cdboot.ima
"emulated" CD boot disk image)
/rootfs
Files which belong in the FS.IMG
root Linux system image.
WARNING: One does not simply mke2fs -d /rootfs
' into a new ext2 image. The 2.2.x kernel does not support devfs
, so any dev nodes must be present in the read-only FS.IMG
prior to boot. It's best to copy the existing FS.IMG
, and modify it, unless you really know what you're doing. The /rootfs
directory is only for reference, not for immediate reuse.
Note that you'll need to add any new dev nodes to /etc/ttyS0.img
, /etc/ttyS1.img
, /etc/psaux.img
as well if you want those devices to be accessible from Xvesa sessions.
The final FS.IMG
image size of ~256MB is not totally arbitrary; this is approximately the maximum size while keeping all official add-ons installed and the full Slackware-4.0 package repo on-disc.
/rootfs/etc/ttyS*.img, /rootfs/etc/psaux.img
X is tricky to get running on a fully read-only filesystem (and in fact, it is not truly possible to do so entirely, the lock files in /tmp
and Xauthority
must be writable). Traditionally, to choose a mouse device with X, one simply symlinks /dev/mouse
to the desired device - for example, /dev/mouse -> /dev/ttyS0
for a serial mouse, or /dev/mouse -> /dev/psaux
for a PS/2 mouse. On the LiveCD, /dev
is read-only, so we cannot create the symlink. Initializing /dev
as a RAMDISK at boot time would cost at least 160K of RAM, which is undesirable.
So instead, there are 3 separate /dev
images, each with a different /dev/mouse
symlink. startx
will mount the appropriate one depending on which mouse the user indicates they want to use.
/slackware
Complete mirrors of the full Slackware 4.0 and 9.0 repositories, for posterity. Slackware 4 packages which run on BasicLinux are in the /packages
directory already. Slackware 9 glibc2 libraries are included in /extras
. The rest is merely for historical preservation.
/contrib
Mirrors of the add-on sites that still exist (some packages sadly lost to time)