 
BYLD: Build Your Linux Disk
License: GPL2 (see LICENSE)

(C) 1999-2000, Erich Roncarolo <erich@roncarolo.eu.org>


*** Please, read README first! ***


--- BYLDING ---
In this file is described how customize your own BYLD Linux floppy disk.
For installation see INSTALL. For copying see LICENSE.


--- How BYLD is organized ---
This is BYLD home directory:

.:
total 1717
-rw-r--r--   1 root     byld         7310 Sep  5 00:57 .config-2.2.5
-rw-r--r--   1 root     byld          529 Sep 10 21:00 BYLDING
-rwxr-xr-x   1 root     byld         7396 Sep  5 00:57 BuildRoot*
-rw-r--r--   1 root     byld         5361 Sep  5 00:57 CREDITS
drwxr-xr-x   2 root     byld         1024 Sep 10 18:03 CVS/
-rwxr-xr-x   1 root     byld         2956 Sep  5 00:57 Clean*
-rw-r--r--   1 root     byld         4591 Sep 10 20:19 Environment
-rw-r--r--   1 root     byld        87507 Sep  5 00:58 FHS
-rw-r--r--   1 root     byld         3826 Sep 10 20:57 INSTALL
-rw-r--r--   1 root     byld      1024637 Sep 10 20:55 Image.gz
-rw-r--r--   1 root     byld        18251 Sep  5 00:58 LICENSE
-rwxr-xr-x   1 root     byld        26758 Sep  5 00:58 MAKEDEV*
-rw-r--r--   1 root     byld         9281 Sep  5 00:58 MAKEDEV.8
-rwxr-xr-x   1 root     byld         3172 Sep  5 00:58 MakeImage*
-rw-r--r--   1 root     byld         2189 Sep  5 00:58 PAKING
-rwxr-xr-x   1 root     byld         1178 Sep  5 00:58 Pak*
-rw-r--r--   1 root     byld         1461 Sep 10 20:05 README
-rw-r--r--   1 root     byld         2180 Sep  5 00:58 Take
-rwxr-xr-x   1 root     byld         6323 Sep 10 20:20 WriteDisk*
-rw-r--r--   1 root     byld         4540 Sep  5 00:58 boot.b
drwxr-xr-x   3 root     byld         1024 Sep 10 18:03 conf/
-rw-r--r--   1 root     byld          128 Sep 10 20:55 err
drwxr-xr-x   3 root     byld         1024 Sep 10 18:03 linux/
-rw-r--r--   1 root     byld        12248 Sep 10 20:54 logfile
-rwxr-xr-x   1 root     byld        26938 Nov 25 18:31 mklibs.sh*
drwxr-xr-x   7 root     byld         1024 Sep 10 18:09 packages/
drwxr-xr-x  12 root     byld         1024 Sep 10 20:54 root/
drwxr-xr-x   5 root     byld         1024 Sep 10 18:09 testpak/
-rw-r--r--   2 root     root       489947 Jun  7 10:08 vmlinuz

What is each file:

.config-2.2.5	# Current kernel configuration file
BYLDING		# This file
BuildRoot*	# Script: build ./root/ directory
CREDITS		# Original works and ideas
Clean*		# Script: clean the distribution
Environment	# Configuration file
FHS		# Filesystem Hierarchy Standard documentation
INSTALL		# Installation instruction
Image.gz	# RAM disk image (created by MakeImage)
		#  don't worry if now it is not present!
LICENSE		# GNU General Public License version 2
MAKEDEV*	# Script: creates devices (used by BuildRoot)
MAKEDEV.8	# Manual page: use 'man -l MAKEDEV.8' to see it
MakeImage*	# Script: makes RAM disk image
PAKING		# How to make BYLD packages
Pak*		# Script: makes BYLD packages
README		# READ THIS FILE FIRST!
Take		# Script: used by BuildRoot
WriteDisk*	# Script: writes floppy disk
boot.b		# Boot sector used by LILO
byld.img	# Floppy image: created by WriteDisk
		#  don't worry if now it is not present!
conf/		# Configurations directory
lilo.conf	# LILO configuaration file (generated by WriteDisk)
		#  don't worry if now it is not present!
linux/		# Sources of Linux kernel (now it's empty)
logfile		# Logfile generated by BuildRoot
mklibs.sh*	# An automated way to create a minimal /lib/ directory
		#  Script: used by BuildRoot
packages/	# Packages directory
root/		# Root of RAM disk content
testpak/	# Example of BYLD pak
vmlinuz		# Image of the current kernel (if not present,
		#  you should create it)


--- Root distribution customization ---
Now I'll explain how customize your BYLD.
You should read this thinking that you are building a little Linux
distribution, so you can change everything you want!
BYLD distribution is very close to Filesystem Hierarchy Standard (see FHS)
and I please you to keep this in you mind when you'll handle ./root/ dir and
choose BYLD packages!

Five important rules:
1. Don't put a lot of files: if ./root/ contains more than 2.3MB, probably the
   distribution will exceed one single floppy.
2. If you need a command, you can include it in BusyBox (see below). Do this
   if command is very small, or if you only need add an option to an
   existing BusyBox command.
3. Remember to strip each binary you put in ./root/
4. Before remove something, check if other programs need it.
5. If you really need everything you put in BYLD and so it exceed one single
   1440k floppy, don't worry! You probably can 'fdformat' a floppy to
   contain more than 1440k (see below).

And now...

Since version 1.0, BYLD ./root/ is generated by a BuildRoot, a script that
read a configuration file and put packages in ./root/
A BYLD package is a directory in which some files are present:

./packages/<DistributionName>/<PackageName>/README
./packages/<DistributionName>/<PackageName>/Buildfile
./packages/<DistributionName>/<PackageName>/Depend
...

README		# informations about package.
Buildfile	# a bash script that contains all command to install package.
Depend		# a file in which are listed (one each line) packages which
		#  current package depends on.

Each package depends on Base (except Base itself).
For detailed informations about each package, read package README file.

Why there are binaries in packages when BYLD can take them from running
distribution? Because these files are compiled to work without depend from
some big and not so useful (for BYLD targets) libraries. For example, bash
in Base package is compiled to work with termcap that is smaller than
ncurses. If you want you can rename these files, and BuildRoot will take
them from your running distribution.


--- Configuration files ---

BuildRoot reads configuration file given as parameter. Each configuration
file is in directory ./conf/
Configuration files format is very similar to Depend file format: packages
are listed one each line and are installed in order.

An example:

# --------------------------------------------
# LittleFloppy 1.0 - (C) 2000 Erich Roncarolo
# License: GPL2 (see LICENSE)
# --------------------------------------------

#
# This file contains packages list (one each line) that
# should be present in default single floppy BYLD.
#

BIN/Base		# The base package (you need it)
BYLD/BusyBox		# The applications package (necessary binaries)
BIN/Joe			# An editor
BYLD/DiskUtils		# Disk utilities
BYLD/GPM		# Mouse utility
BYLD/NetBase		# Network needed files

# --------------------------
# End of configuration file
# --------------------------

As you can see, a configuration file can include packages from different
distributions (BIN/ and BYLD/ in the example).
We suggest to make your own configurations starting from the ones contained
in ./conf/



--- Too big for a single floppy ---
This is a problem: since version 1.0, BYLD doesn't support two floppies
system any more (as you can remember, I don't like it).
OK, don't worry. You can create bigger disks simply setting DEST_DEV and
MAXSIZE to other values in Environment (this is an experimental feature).
Thanks to Marek Nazarko <mnazarko@computerland.pl> because he explained me
how to do this.


--- The End ---
Now you know what is what in BYLD: YOU CAN CHANGE EVERYTHING! TRY!
This is only a starting point to Build Your Linux Disk as you like!


Good luck!

Erich Roncarolo
<erich@roncarolo.eu.org>


