diff options
Diffstat (limited to 'release/src/router/busybox/bootfloppy/bootfloppy.txt')
-rw-r--r-- | release/src/router/busybox/bootfloppy/bootfloppy.txt | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/release/src/router/busybox/bootfloppy/bootfloppy.txt b/release/src/router/busybox/bootfloppy/bootfloppy.txt deleted file mode 100644 index 575c93fc..00000000 --- a/release/src/router/busybox/bootfloppy/bootfloppy.txt +++ /dev/null @@ -1,185 +0,0 @@ -Building a Busybox Boot Floppy -============================== - -This document describes how to buid a boot floppy using the following -components: - - - Linux Kernel (http://www.kernel.org) - - uClibc: C library (http://cvs.uclinux.org/uClibc.html) - - Busybox: Unix utilities (http://busybox.lineo.com) - - Syslinux: bootloader (http://syslinux.zytor.com) - -It is based heavily on a paper presented by Erik Andersen at the 2001 Embedded -Systems Conference. - - - -Building The Software Components --------------------------------- - -Detailed instructions on how to build Busybox, uClibc, or a working Linux -kernel are beyond the scope of this document. The following guidelines will -help though: - - - Stock Busybox from CVS or a tarball will work with no modifications to - any files. Just extract and go. - - Ditto uClibc. - - Your Linux kernel must include support for initrd or else the floppy - won't be able to mount it's root file system. - -If you require further information on building Busybox uClibc or Linux, please -refer to the web pages and documentation for those individual programs. - - - -Making a Root File System -------------------------- - -The following steps will create a root file system. - - - Create an empty file that you can format as a filesystem: - - dd if=/dev/zero of=rootfs bs=1k count=4000 - - - Set up the rootfs file we just created to be used as a loop device (may not - be necessary) - - losetup /dev/loop0 rootfs - - - Format the rootfs file with a filesystem: - - mkfs.ext2 -F -i 2000 rootfs - - - Mount the file on a mountpoint so we can place files in it: - - mkdir loop - mount -o loop rootfs loop/ - - (you will probably need to be root to do this) - - - Copy on the C library, the dynamic linking library, and other necessary - libraries. For this example, we copy the following files from the uClibc - tree: - - mkdir loop/lib - (chdir to uClibc directory) - cp -a libc.so* uClibc*.so \ - ld.so-1/d-link/ld-linux-uclibc.so* \ - ld.so-1/libdl/libdl.so* \ - crypt/libcrypt.so* \ - (path to)loop/lib - - - Install the Busybox binary and accompanying symlinks: - - (chdir to busybox directory) - make PREFIX=(path to)loop/ install - - - Make device files in /dev: - - This can be done by running the 'mkdevs.sh' script. If you want the gory - details, you can read the script. - - - Make necessary files in /etc: - - For this, just cp -a the etc/ directory onto rootfs. Again, if you want - all the details, you can just look at the files in the dir. - - - Run ldconfig so busybox and other binaries can have access to the libraries - that they need: - - (path to)uClibc/ld.so-1/util/ldconfig -r loop/ - - - Unmount the rootfs from the mountpoint: - - umount loop - - - Compress it: - - gzip -9 rootfs - - -Making a SYSLINUX boot floppy ------------------------------ - -The following steps will create the boot floppy. - -Note: You will need to have the mtools package installed beforehand. - - - Insert a floppy in the drive and format it with an MSDOS filesystem: - - mformat a: - - (if the system doesn't know what device 'a:' is, look at /etc/mtools.conf) - - - Run syslinux on the floppy: - - syslinux -s /dev/fd0 - - (the -s stands for "safe, slow, and stupid" and should work better with - buggy BIOSes; it can be omitted) - - - Put on a syslinux.cfg file: - - mcopy syslinux.cfg a: - - (more on syslinux.cfg below) - - - Copy the root file system you made onto the MSDOS formatted floppy - - mcopy rootfs.gz a: - - - Build a linux kernel and copy it onto the disk with the filename 'linux' - - mcopy bzImage a:linux - - -Sample syslinux.cfg -~~~~~~~~~~~~~~~~~~~ - -The following simple syslinux.cfg file should work. You can tweak it if you -like. - -----begin-syslinux.cfg--------------- -DEFAULT linux -APPEND initrd=rootfs.gz root=/dev/ram0 -TIMEOUT 10 -PROMPT 1 -----end-syslinux.cfg--------------- - -Some changes you could make to syslinux.cfg: - - - This value is the number seconds it will wait before booting. You can set - the timeout to 0 (or omit) to boot instantly, or you can set it as high as - 10 to wait awhile. - - - PROMPT can be set to 0 to disable the 'boot:' prompt. - - - you can add this line to display the contents of a file as a welcome - message: - - DISPLAY display.txt - - - -Additional Resources --------------------- - -Other useful information on making a Linux bootfloppy is available at the -following URLs: - -http://www.linuxdoc.org/HOWTO/Bootdisk-HOWTO/index.html -http://www.linux-embedded.com/howto/Embedded-Linux-Howto.html -http://linux-embedded.org/howto/LFS-HOWTO.html -http://linux-embedded.org/pmhowto.html -http://recycle.lbl.gov/~ldoolitt/embedded/ (Larry Doolittle's stuff) - - - -Possible TODOs --------------- - -The following features that we might want to add later: - - - support for additional filesystems besides ext2, i.e. minix - - different libc, static vs dynamic loading - - maybe using an alternate bootloader |