First create a directory where we will build the whole project. I chose the name myboot. I will use this name throughout the document. Type the following command in your home directory:
mkdir myboot
Obtain the following source packages and collect them into the directory myboot:
Some of these packages may already be present in your Linux distribution. For all packages except uClibc and Busybox this is very likely. But of course there may exist more recent versions.
After you have downloaded all the sources, your myboot directory may look like this. Of course you may have different (more recent) versions of all programs:
total 27776 -rw-rw-r-- 1 lennartb lennartb 613464 Jun 9 11:44 busybox-0.60.3.tar.bz2 -rw-rw-r-- 1 lennartb lennartb 1376698 Jun 12 19:56 e2fsprogs-1.27.tar.gz -rw-rw-r-- 1 lennartb lennartb 24161675 Jun 8 19:28 linux-2.4.18.tar.bz2 -rw-rw-r-- 1 lennartb lennartb 1170790 Jun 8 19:00 uClibc-snapshot.tar.bz2 -rw-rw-r-- 1 lennartb lennartb 1065574 Jun 9 16:01 util-linux-2.11r.tar.bz2
So let's unpack what we've got. Type the following commands when inside the myboot directory:
bunzip2 -c busybox-0.60.3.tar.bz2 | tar xvf - gunzip -c e2fsprogs-1.27.tar.gz | tar xvf - bunzip2 -c linux-2.4.18.tar.bz2 | tar xvf - bunzip2 -c uClibc-snapshot.tar.bz2 | tar xvf - bunzip2 -c util-linux-2.11r.tar.bz2 | tar xvf -After this you should have the sources of the five packages, each in its own subdirectory.
Note: the myboot directory is assumed to be created under a user's home directory. In several places in this text we will use an absolute path to this directory and on my system this is /home/lennartb/myboot. Other users should replace this with their own home directory.
Note: in this document you see many sequences of shell commands. Of course you can put them into shell scripts, so you need not retype them when you try to build a modified boot disk.