diff options
Diffstat (limited to 'release/src/router/busybox/bootfloppy')
-rw-r--r-- | release/src/router/busybox/bootfloppy/bootfloppy.txt | 185 | ||||
-rw-r--r-- | release/src/router/busybox/bootfloppy/display.txt | 4 | ||||
-rw-r--r-- | release/src/router/busybox/bootfloppy/etc/fstab | 2 | ||||
-rw-r--r-- | release/src/router/busybox/bootfloppy/etc/inittab | 5 | ||||
-rw-r--r-- | release/src/router/busybox/bootfloppy/etc/profile | 8 | ||||
-rwxr-xr-x | release/src/router/busybox/bootfloppy/mkdevs.sh | 62 | ||||
-rwxr-xr-x | release/src/router/busybox/bootfloppy/mkrootfs.sh | 106 | ||||
-rwxr-xr-x | release/src/router/busybox/bootfloppy/mksyslinux.sh | 48 | ||||
-rw-r--r-- | release/src/router/busybox/bootfloppy/quickstart.txt | 15 | ||||
-rw-r--r-- | release/src/router/busybox/bootfloppy/syslinux.cfg | 7 |
10 files changed, 0 insertions, 442 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 diff --git a/release/src/router/busybox/bootfloppy/display.txt b/release/src/router/busybox/bootfloppy/display.txt deleted file mode 100644 index 399d326d..00000000 --- a/release/src/router/busybox/bootfloppy/display.txt +++ /dev/null @@ -1,4 +0,0 @@ - -This boot floppy is made with Busybox, uClibc, and the Linux kernel. -Hit RETURN to boot or enter boot parameters at the prompt below. - diff --git a/release/src/router/busybox/bootfloppy/etc/fstab b/release/src/router/busybox/bootfloppy/etc/fstab deleted file mode 100644 index ef14ca2c..00000000 --- a/release/src/router/busybox/bootfloppy/etc/fstab +++ /dev/null @@ -1,2 +0,0 @@ -proc /proc proc defaults 0 0 - diff --git a/release/src/router/busybox/bootfloppy/etc/inittab b/release/src/router/busybox/bootfloppy/etc/inittab deleted file mode 100644 index eb3e979c..00000000 --- a/release/src/router/busybox/bootfloppy/etc/inittab +++ /dev/null @@ -1,5 +0,0 @@ -::sysinit:/etc/init.d/rcS -::respawn:-/bin/sh -tty2::askfirst:-/bin/sh -::ctrlaltdel:/bin/umount -a -r - diff --git a/release/src/router/busybox/bootfloppy/etc/profile b/release/src/router/busybox/bootfloppy/etc/profile deleted file mode 100644 index e9b11e90..00000000 --- a/release/src/router/busybox/bootfloppy/etc/profile +++ /dev/null @@ -1,8 +0,0 @@ -# /etc/profile: system-wide .profile file for the Bourne shells - -echo -echo -n "Processing /etc/profile... " -# no-op -echo "Done" -echo - diff --git a/release/src/router/busybox/bootfloppy/mkdevs.sh b/release/src/router/busybox/bootfloppy/mkdevs.sh deleted file mode 100755 index 03a1a855..00000000 --- a/release/src/router/busybox/bootfloppy/mkdevs.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/sh -# -# makedev.sh - creates device files for a busybox boot floppy image - - -# we do our work in the dev/ directory -if [ -z "$1" ]; then - echo "usage: `basename $0` path/to/dev/dir" - exit 1 -fi - -cd $1 - - -# miscellaneous one-of-a-kind stuff -mknod console c 5 1 -mknod full c 1 7 -mknod kmem c 1 2 -mknod mem c 1 1 -mknod null c 1 3 -mknod port c 1 4 -mknod random c 1 8 -mknod urandom c 1 9 -mknod zero c 1 5 -ln -s /proc/kcore core - -# IDE HD devs -# note: not going to bother creating all concievable partitions; you can do -# that yourself as you need 'em. -mknod hda b 3 0 -mknod hdb b 3 64 -mknod hdc b 22 0 -mknod hdd b 22 64 - -# loop devs -for i in `seq 0 7`; do - mknod loop$i b 7 $i -done - -# ram devs -for i in `seq 0 9`; do - mknod ram$i b 1 $i -done -ln -s ram1 ram - -# ttys -mknod tty c 5 0 -for i in `seq 0 9`; do - mknod tty$i c 4 $i -done - -# virtual console screen devs -for i in `seq 0 9`; do - mknod vcs$i b 7 $i -done -ln -s vcs0 vcs - -# virtual console screen w/ attributes devs -for i in `seq 0 9`; do - mknod vcsa$i b 7 $i -done -ln -s vcsa0 vcsa diff --git a/release/src/router/busybox/bootfloppy/mkrootfs.sh b/release/src/router/busybox/bootfloppy/mkrootfs.sh deleted file mode 100755 index b59b57af..00000000 --- a/release/src/router/busybox/bootfloppy/mkrootfs.sh +++ /dev/null @@ -1,106 +0,0 @@ -#!/bin/bash -# -# mkrootfs.sh - creates a root file system -# - -# TODO: need to add checks here to verify that busybox, uClibc and bzImage -# exist - - -# command-line settable variables -BUSYBOX_DIR=.. -UCLIBC_DIR=../../uClibc -TARGET_DIR=./loop -FSSIZE=4000 -CLEANUP=1 -MKFS='mkfs.ext2 -F' - -# don't-touch variables -BASE_DIR=`pwd` - - -while getopts 'b:u:s:t:Cm' opt -do - case $opt in - b) BUSYBOX_DIR=$OPTARG ;; - u) UCLIBC_DIR=$OPTARG ;; - t) TARGET_DIR=$OPTARG ;; - s) FSSIZE=$OPTARG ;; - C) CLEANUP=0 ;; - m) MKFS='mkfs.minix' ;; - *) - echo "usage: `basename $0` [-bu]" - echo " -b DIR path to busybox direcory (default ..)" - echo " -u DIR path to uClibc direcory (default ../../uClibc)" - echo " -t DIR path to target direcory (default ./loop)" - echo " -s SIZE size of root filesystem in Kbytes (default 4000)" - echo " -C don't perform cleanup (umount target dir, gzip rootfs, etc.)" - echo " (this allows you to 'chroot loop/ /bin/sh' to test it)" - echo " -m use minix filesystem (default is ext2)" - exit 1 - ;; - esac -done - - - - -# clean up from any previous work -mount | grep -q loop -[ $? -eq 0 ] && umount $TARGET_DIR -[ -d $TARGET_DIR ] && rm -rf $TARGET_DIR/ -[ -f rootfs ] && rm -f rootfs -[ -f rootfs.gz ] && rm -f rootfs.gz - - -# prepare root file system and mount as loopback -dd if=/dev/zero of=rootfs bs=1k count=$FSSIZE -$MKFS -i 2000 rootfs -mkdir $TARGET_DIR -mount -o loop,exec rootfs $TARGET_DIR # must be root - - -# install uClibc -mkdir -p $TARGET_DIR/lib -cd $UCLIBC_DIR -make INSTALL_DIR= -cp -a libc.so* $BASE_DIR/$TARGET_DIR/lib -cp -a uClibc*.so $BASE_DIR/$TARGET_DIR/lib -cp -a ld.so-1/d-link/ld-linux-uclibc.so* $BASE_DIR/$TARGET_DIR/lib -cp -a ld.so-1/libdl/libdl.so* $BASE_DIR/$TARGET_DIR/lib -cp -a crypt/libcrypt.so* $BASE_DIR/$TARGET_DIR/lib -cd $BASE_DIR - - -# install busybox and components -cd $BUSYBOX_DIR -make distclean -make CC=$BASE_DIR/$UCLIBC_DIR/extra/gcc-uClibc/i386-uclibc-gcc -make PREFIX=$BASE_DIR/$TARGET_DIR install -cd $BASE_DIR - - -# make files in /dev -mkdir $TARGET_DIR/dev -./mkdevs.sh $TARGET_DIR/dev - - -# make files in /etc -cp -a etc $TARGET_DIR -ln -s /proc/mounts $TARGET_DIR/etc/mtab - - -# other miscellaneous setup -mkdir $TARGET_DIR/initrd -mkdir $TARGET_DIR/proc -$UCLIBC_DIR/ld.so-1/util/ldconfig -r $TARGET_DIR - - -# Done. Maybe do cleanup. -if [ $CLEANUP -eq 1 ] -then - umount $TARGET_DIR - rmdir $TARGET_DIR - gzip -9 rootfs -fi - diff --git a/release/src/router/busybox/bootfloppy/mksyslinux.sh b/release/src/router/busybox/bootfloppy/mksyslinux.sh deleted file mode 100755 index e2541735..00000000 --- a/release/src/router/busybox/bootfloppy/mksyslinux.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash -# -# Formats a floppy to use Syslinux - -dummy="" - - -# need to have mtools installed -if [ -z `which mformat` -o -z `which mcopy` ]; then - echo "You must have the mtools package installed to run this script" - exit 1 -fi - - -# need an arg for the location of the kernel -if [ -z "$1" ]; then - echo "usage: `basename $0` path/to/linux/kernel" - exit 1 -fi - - -# need to have a root file system built -if [ ! -f rootfs.gz ]; then - echo "You need to have a rootfs built first." - echo "Hit RETURN to make one now or Control-C to quit." - read dummy - ./mkrootfs.sh -fi - - -# prepare the floppy -echo "Please insert a blank floppy in the drive and press RETURN to format" -echo "(WARNING: All data will be erased! Hit Control-C to abort)" -read dummy - -echo "Formatting the floppy..." -mformat a: -echo "Making it bootable with Syslinux..." -syslinux -s /dev/fd0 -echo "Copying Syslinux configuration files..." -mcopy syslinux.cfg display.txt a: -echo "Copying root filesystem file..." -mcopy rootfs.gz a: -# XXX: maybe check for "no space on device" errors here -echo "Copying linux kernel..." -mcopy $1 a:linux -# XXX: maybe check for "no space on device" errors here too -echo "Finished: boot floppy created" diff --git a/release/src/router/busybox/bootfloppy/quickstart.txt b/release/src/router/busybox/bootfloppy/quickstart.txt deleted file mode 100644 index 0d809082..00000000 --- a/release/src/router/busybox/bootfloppy/quickstart.txt +++ /dev/null @@ -1,15 +0,0 @@ -Quickstart on making the Busybox boot-floppy: - - 1) Download Busybox and uClibc from CVS or tarballs. Make sure they share a - common parent directory. (i.e. busybox/ and uclibc/ are both right off of - /tmp, or wherever.) - - 2) Build a Linux kernel. Make sure you include support for initrd. - - 3) Put a floppy in the drive. Make sure it is a floppy you don't care about - because the contents will be overwritten. - - 4) As root, type ./mksyslinux.sh path/to/linux/kernel from this directory. - Wait patiently while the magic happens. - - 5) Boot up on the floppy. diff --git a/release/src/router/busybox/bootfloppy/syslinux.cfg b/release/src/router/busybox/bootfloppy/syslinux.cfg deleted file mode 100644 index 8d407cad..00000000 --- a/release/src/router/busybox/bootfloppy/syslinux.cfg +++ /dev/null @@ -1,7 +0,0 @@ -display display.txt -default linux -timeout 10 -prompt 1 -label linux - kernel linux - append initrd=rootfs.gz root=/dev/ram0 |