summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root@europa5.lan>2009-03-21 11:49:00 +0100
committerroot <root@europa5.lan>2009-03-21 11:49:00 +0100
commit3a467eff5e435b5709d48f9d6cb48859925be5b8 (patch)
treed595bf80ef1f60eba722c8862634051f881dc911
downloadminilinux-3a467eff5e435b5709d48f9d6cb48859925be5b8.tar.gz
minilinux-3a467eff5e435b5709d48f9d6cb48859925be5b8.tar.bz2
checked in initial version
-rw-r--r--INSTALL10
-rw-r--r--Makefile229
-rw-r--r--README50
-rw-r--r--TODOS4
-rw-r--r--busybox-config869
-rw-r--r--devices.map1
-rw-r--r--doc/001291.html242
-rw-r--r--doc/CROSS-COMPILE-GUTS284
-rw-r--r--doc/HOWTO_bbox_with_uclibc.txt302
-rw-r--r--doc/LINKS56
-rw-r--r--doc/buildMin.html87
-rw-r--r--doc/crosstool-howto.html634
-rw-r--r--doc/embedded_lfs.odpbin0 -> 164275 bytes
-rw-r--r--doc/qemu_to_vmware_image.html1198
-rw-r--r--doc/tutorial.txt390
-rw-r--r--doc/uclibc-bootfloppy.txt667
-rw-r--r--group3
-rw-r--r--grub.install3
-rw-r--r--hosts1
-rw-r--r--inittab93
-rw-r--r--issue1
-rw-r--r--kernel-config1000
-rw-r--r--keymap.usbin0 -> 2823 bytes
-rw-r--r--mbrbin0 -> 512 bytes
-rw-r--r--menu.lst19
-rw-r--r--motd10
-rw-r--r--nsswitch.conf4
-rw-r--r--passwd3
-rwxr-xr-xrcS24
-rw-r--r--uclibc-config232
-rwxr-xr-xvditoolbin0 -> 20884 bytes
31 files changed, 6416 insertions, 0 deletions
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..718cb7e
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,10 @@
+Fetch all required sources with:
+
+make source
+
+Build the qemu image with:
+
+make qemu
+
+Note that building VDI images needs vditool, which needs a properly
+installed version of the VirtualBox shared library files.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..263b3b3
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,229 @@
+help:
+ @echo "Build a minimal Linux system"
+ @echo ""
+ @echo "all - create all images"
+ @echo "qemu - create an image for QEMU"
+ @echo "vdi - create an image for VirtualBox"
+ @echo "vmdk - create an image for VMware"
+ @echo ""
+ @echo "clean - cleanup build artifacts"
+ @echo ""
+ @echo "run minimal Linux for example with 'qema -hda minilinux.img'"
+
+.PHONY: help run all step1 step2 step3 step4 step5 mount-disk umount-disk mount-root umount-root
+
+all: qemu vdi vmdk zip-vdi zip-vmdk
+
+vdi:
+ -rm -f minilinux.vdi
+ ./vditool DD minilinux.vdi minilinux.img
+ ./vditool SHRINK minilinux.vdi
+ chmod 666 minilinux.vdi
+
+vmdk:
+ qemu-img convert -f raw minilinux.img -O vmdk minilinux.vmdk
+ chmod 666 minilinux.vmdk
+ chmod 777 minilinux.vmx
+
+zip-vdi:
+ zip -9 -v -u minilinux.zip minilinux.vdi
+ mv minilinux.zip minilinux-virtualbox.zip
+
+zip-vmdk:
+ zip -9 -v -u minilinux minilinux.vmx minilinux.vmdk
+ mv minilinux.zip minilinux-vmware.zip
+
+qemu: clean step1 step2 step3 step4 step5 umount-root
+
+#step1: crosstools
+step1:
+
+step2: disk-image mount-root directory-layout initial-devices
+
+step3: grub grub-loader
+
+#step4: kernel uclibc busybox
+step4: kernel busybox gpm
+
+step5: perl
+
+# disk image and directories
+
+directory-layout:
+ cd target && mkdir bin boot dev etc home lib mnt root sbin tmp usr var proc sys
+ cd target/boot && mkdir grub
+ cd target/var && mkdir lock log run spool
+ cd target/usr && mkdir bin include lib local sbin share src
+ cd target/usr/share && mkdir man
+ cd target/usr/share/man && mkdir man1 man2 man3 man4 man5 man6 man7 man8 man9
+ cd target/usr && ln -s share/man man
+ cd target/etc && mkdir init.d
+ cp inittab passwd group nsswitch.conf hosts motd issue target/etc
+ cp rcS target/etc/init.d
+
+initial-devices:
+ rm -rf target/dev/*
+ mknod target/dev/console c 5 1
+ mknod target/dev/null c 1 3
+ mknod target/dev/zero c 1 5
+ mknod target/dev/hda b 3 0
+ mknod target/dev/hda1 b 3 1
+ mknod target/dev/tty0 c 4 0
+ mknod target/dev/tty1 c 4 1
+ mknod target/dev/tty2 c 4 2
+ mknod target/dev/tty3 c 4 3
+ mknod target/dev/tty4 c 4 4
+ mknod target/dev/tty5 c 4 5
+ mknod target/dev/tty6 c 4 6
+ mknod target/dev/ttyS0 c 4 64
+ mknod target/dev/psaux c 10 1
+
+disk-image:
+ qemu-img create minilinux.img 16065
+ chmod 666 minilinux.img
+ /sbin/losetup /dev/loop0 minilinux.img
+ dd if=/dev/zero of=/dev/loop0 bs=1024 count=2048
+ dd if=mbr of=/dev/loop0 bs=512 count=1
+ echo ',2,L' | /sbin/sfdisk -H 255 -S 63 -C 2 --no-reread /dev/loop0
+ /sbin/losetup -d /dev/loop0
+ /sbin/losetup -o 512 /dev/loop0 minilinux.img
+ /sbin/mke2fs /dev/loop0
+ losetup -d /dev/loop0
+ mkdir target
+
+# grub boot loeader
+
+grub:
+ tar zxf tarballs/grub-0.97.tar.gz
+ mkdir grub-build && cd grub-build && ../grub-0.97/configure --prefix=`pwd`
+ cd grub-build && make
+ cd grub-build && make install
+ cp grub-build/lib/grub/i386-pc/stage1 target/boot/grub
+ cp grub-build/lib/grub/i386-pc/stage2 target/boot/grub
+ cp menu.lst target/boot/grub
+
+grub-loader:
+ -umount target
+ -mknod /dev/loop0 b 7 0
+ -mknod /dev/loop1 b 7 0
+ -/sbin/losetup -d /dev/loop0
+ -/sbin/losetup -d /dev/loop1
+ /sbin/losetup -o 512 /dev/loop1 minilinux.img
+ ln -s /dev/loop1 /dev/loop01
+ /sbin/losetup /dev/loop0 minilinux.img
+ grub-build/sbin/grub --batch --no-floppy --device-map=devices.map < grub.install
+ /sbin/losetup -d /dev/loop0
+ /sbin/losetup -d /dev/loop1
+ rm /dev/loop01
+ /sbin/losetup -o 512 /dev/loop0 minilinux.img
+ mount /dev/loop0 target
+
+grub-clean:
+ -rm -rf grub-build
+ -rm -rf grub-0.97
+
+# Linux kernel
+
+kernel:
+ -rm -rf linux-2.6.28.8
+ tar jxf tarballs/linux-2.6.28.8.tar.bz2
+ cp kernel-config linux-2.6.28.8/.config
+ cd linux-2.6.28.8 && make bzImage
+ cp linux-2.6.28.8/arch/i386/boot/bzImage target/boot/bzImage-2.6.28.8
+
+kernel-clean:
+ -rm -rf linux-2.6.28.8
+
+# micro C library
+
+uclibc:
+ -rm -rf uClibc-0.9.30.1
+ tar jxf tarballs/uClibc-0.9.30.1.tar.bz2
+ cp uclibc-config uClibc-0.9.30.1/.config
+ cd uClibc-0.9.30.1 && make CROSS=i486-pc-linux-gnu-
+ cd uClibc-0.9.30.1 && make install DESTDIR=/tools
+
+uclibc-clean:
+ -rm -rf uClibc-0.9.30.1
+
+# busybox
+
+busybox:
+ -rm -rf busybox-1.13.3
+ tar jxf tarballs/busybox-1.13.3.tar.bz2
+ cp busybox-config busybox-1.13.3/.config
+ cd busybox-1.13.3 && make
+ cd busybox-1.13.3 && make install
+ cp /lib/libcrypt.so.1 target/lib
+ cp /lib/ld-linux.so.2 target/lib
+ cp /lib/libm.so.6 target/lib
+ cp /lib/libc.so.6 target/lib
+ cp /lib/libdl.so.2 target/lib
+ cp /lib/libpthread.so.0 target/lib
+ -cp /lib/libpcre.so.0 target/lib
+ -cp /usr/lib/libpcre.so.3 target/lib
+
+
+busybox-clean:
+ -rm -rf busybox-1.13.3
+
+gpm:
+ -rm -rf gpm-1.20.6
+ tar jxf tarballs/gpm-1.20.6.tar.bz2
+ cd gpm-1.20.6 && ./configure --prefix=/usr --without-curses
+ cd gpm-1.20.6 && make LDFLAGS="-lm"
+ cd gpm-1.20.6 && cp src/gpm ../target/usr/sbin
+
+gpm-clean:
+ -rm -rf gpm-1.20.6
+
+perl:
+ -rm -rf perl-5.10.0
+ tar zxf tarballs/perl-5.10.0.tar.gz
+ cd perl-5.10.0 && make -f Makefile.micro
+ cd perl-5.10.0 && cp microperl ../target/usr/bin/perl
+
+perl-clean:
+ -rm -rf perl-5.10.0
+
+# helpers
+
+mount-disk:
+ /sbin/losetup /dev/loop0 minilinux.img
+
+umount-disk:
+ /sbin/losetup -d /dev/loop0
+
+mount-root:
+ /sbin/losetup -o 512 /dev/loop0 minilinux.img
+ mount /dev/loop0 target
+
+umount-root:
+ umount target
+ /sbin/losetup -d /dev/loop0
+
+# global clean
+
+clean: clean-cross-binutils clean-cross-gcc grub-clean uclibc-clean kernel-clean crosstools-clean busybox-clean gpm-clean perl-clean
+ -umount target
+ -/sbin/losetup -d /dev/loop0
+ -rm minilinux.img
+ -rm minilinux.vdi *-vditool-*.log
+ -rm minilinux.vmdk minilinux.nvram minilinux.vmem minilinux.vmsd minilinux.vmss vmware*.log minilinux.vmxf minilinux*.zip
+ -rm -rf target
+
+# download sources to tarballs
+
+source:
+ -test -r tarballs/busybox-1.13.3.tar.bz2 || \
+ wget -O tarballs/busybox-1.13.3.tar.bz2 http://www.busybox.net/downloads/busybox-1.13.3.tar.bz2
+ -test -r tarballs/grub-0.97.tar.gz || \
+ wget -O tarballs/grub-0.97.tar.gz ftp://alpha.gnu.org/gnu/grub/grub-0.97.tar.gz
+ -test -r tarballs/perl-5.10.0.tar.gz || \
+ wget -O tarballs/perl-5.10.0.tar.gz http://www.cpan.org/src/perl-5.10.0.tar.gz
+ -test -r tarballs/linux-2.6.28.8.tar.bz2 || \
+ wget -O tarballs/linux-2.6.28.8.tar.bz2 http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.8.tar.bz2
+ -test -r tarballs/gpm-1.20.6.tar.bz2 || \
+ wget -O tarballs/gpm-1.20.6.tar.bz2 http://unix.schottelius.org/gpm/archives/gpm-1.20.6.tar.bz2
+ -test -r tarballs/uClibc-0.9.30.1.tar.bz2 || \
+ wget -O tarballs/uClibc-0.9.30.1.tar.bz2 http://www.uclibc.org/downloads/uClibc-0.9.30.1.tar.bz2
diff --git a/README b/README
new file mode 100644
index 0000000..3458e3e
--- /dev/null
+++ b/README
@@ -0,0 +1,50 @@
+qemu
+----
+
+Why not VirtualBox, VMWare, Vex? Because:
+- it's really free
+- is fully batchable (Unix-philosophy, no GUI-nightmares)
+- it's really fast
+- the disk image format is quite open, so it should be able
+ to convert it into many other formats
+
+kernel
+------
+
+make allnoconfig
+
+select just hardware which is available in the QEMU emulation
+
+busybox
+-------
+
+make allnoconfig
+
+select just what's needed for booting and running a simple application
+
+GPM
+---
+
+so that copy-paste from/to the minilinux work
+
+miniperl
+--------
+
+Just as a demo of an application running on this minimal Linux.
+
+How to run it?
+--------------
+
+export SDL_VIDEO_X11_DGAMOUSE=0 (if the console mouse doesn't work)
+
+qemu -hda appliance.img
+
+or
+
+Visualbox (create a new machine using an "existing" virtual harddisk,
+appliance.vdi)
+
+or
+
+VMWare: start the player, workstation with the appliance.vmx virtual
+machine description
diff --git a/TODOS b/TODOS
new file mode 100644
index 0000000..4483f47
--- /dev/null
+++ b/TODOS
@@ -0,0 +1,4 @@
+- build a simplistic uClibc toolchain (binutils, uClibc and pcc), like
+ buildroot, but simpler
+- vditool (VirtualBox image creation) is a Linux closed source binary,
+ find the sources or alternatives
diff --git a/busybox-config b/busybox-config
new file mode 100644
index 0000000..57b488a
--- /dev/null
+++ b/busybox-config
@@ -0,0 +1,869 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.13.3
+# Sat Mar 21 11:47:47 2009
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Busybox Settings
+#
+
+#
+# General Configuration
+#
+# CONFIG_DESKTOP is not set
+# CONFIG_EXTRA_COMPAT is not set
+# CONFIG_FEATURE_ASSUME_UNICODE is not set
+CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
+CONFIG_SHOW_USAGE=y
+CONFIG_FEATURE_VERBOSE_USAGE=y
+CONFIG_FEATURE_COMPRESS_USAGE=y
+# CONFIG_FEATURE_INSTALLER is not set
+# CONFIG_LOCALE_SUPPORT is not set
+CONFIG_GETOPT_LONG=y
+# CONFIG_FEATURE_DEVPTS is not set
+# CONFIG_FEATURE_CLEAN_UP is not set
+CONFIG_FEATURE_PIDFILE=y
+CONFIG_FEATURE_SUID=y
+CONFIG_FEATURE_SUID_CONFIG=y
+# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
+# CONFIG_SELINUX is not set
+# CONFIG_FEATURE_PREFER_APPLETS is not set
+CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
+CONFIG_FEATURE_SYSLOG=y
+# CONFIG_FEATURE_HAVE_RPC is not set
+
+#
+# Build Options
+#
+# CONFIG_STATIC is not set
+# CONFIG_PIE is not set
+# CONFIG_NOMMU is not set
+# CONFIG_BUILD_LIBBUSYBOX is not set
+# CONFIG_FEATURE_INDIVIDUAL is not set
+# CONFIG_FEATURE_SHARED_BUSYBOX is not set
+# CONFIG_LFS is not set
+CONFIG_CROSS_COMPILER_PREFIX=""
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_DEBUG_PESSIMIZE is not set
+# CONFIG_WERROR is not set
+CONFIG_NO_DEBUG_LIB=y
+# CONFIG_DMALLOC is not set
+# CONFIG_EFENCE is not set
+# CONFIG_INCLUDE_SUSv2 is not set
+
+#
+# Installation Options
+#
+# CONFIG_INSTALL_NO_USR is not set
+CONFIG_INSTALL_APPLET_SYMLINKS=y
+# CONFIG_INSTALL_APPLET_HARDLINKS is not set
+# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
+# CONFIG_INSTALL_APPLET_DONT is not set
+# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
+# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
+# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
+CONFIG_PREFIX="../target"
+
+#
+# Busybox Library Tuning
+#
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SIZE_VS_SPEED=2
+CONFIG_FEATURE_FAST_TOP=y
+# CONFIG_FEATURE_ETC_NETWORKS is not set
+CONFIG_FEATURE_EDITING=y
+CONFIG_FEATURE_EDITING_MAX_LEN=1024
+CONFIG_FEATURE_EDITING_VI=y
+CONFIG_FEATURE_EDITING_HISTORY=15
+# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set
+CONFIG_FEATURE_TAB_COMPLETION=y
+# CONFIG_FEATURE_USERNAME_COMPLETION is not set
+CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
+# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
+CONFIG_FEATURE_COPYBUF_KB=4
+# CONFIG_MONOTONIC_SYSCALL is not set
+# CONFIG_IOCTL_HEX2STR_ERROR is not set
+CONFIG_FEATURE_HWIB=y
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+# CONFIG_FEATURE_SEAMLESS_LZMA is not set
+# CONFIG_FEATURE_SEAMLESS_BZ2 is not set
+# CONFIG_FEATURE_SEAMLESS_GZ is not set
+# CONFIG_FEATURE_SEAMLESS_Z is not set
+# CONFIG_AR is not set
+# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
+CONFIG_BUNZIP2=y
+# CONFIG_BZIP2 is not set
+# CONFIG_CPIO is not set
+# CONFIG_FEATURE_CPIO_O is not set
+# CONFIG_DPKG is not set
+# CONFIG_DPKG_DEB is not set
+# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
+CONFIG_GUNZIP=y
+# CONFIG_GZIP is not set
+# CONFIG_RPM2CPIO is not set
+# CONFIG_RPM is not set
+CONFIG_TAR=y
+CONFIG_FEATURE_TAR_CREATE=y
+# CONFIG_FEATURE_TAR_AUTODETECT is not set
+CONFIG_FEATURE_TAR_FROM=y
+# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
+CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y
+CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
+CONFIG_FEATURE_TAR_LONG_OPTIONS=y
+# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
+CONFIG_UNCOMPRESS=y
+# CONFIG_UNLZMA is not set
+# CONFIG_FEATURE_LZMA_FAST is not set
+# CONFIG_UNZIP is not set
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+# CONFIG_CAL is not set
+CONFIG_CAT=y
+# CONFIG_CATV is not set
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+# CONFIG_CHROOT is not set
+# CONFIG_CKSUM is not set
+# CONFIG_COMM is not set
+CONFIG_CP=y
+# CONFIG_CUT is not set
+CONFIG_DATE=y
+CONFIG_FEATURE_DATE_ISOFMT=y
+# CONFIG_DD is not set
+# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
+# CONFIG_FEATURE_DD_IBS_OBS is not set
+CONFIG_DF=y
+# CONFIG_FEATURE_DF_FANCY is not set
+CONFIG_DIRNAME=y
+CONFIG_DOS2UNIX=y
+CONFIG_UNIX2DOS=y
+CONFIG_DU=y
+CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
+CONFIG_ECHO=y
+CONFIG_FEATURE_FANCY_ECHO=y
+CONFIG_ENV=y
+CONFIG_FEATURE_ENV_LONG_OPTIONS=y
+# CONFIG_EXPAND is not set
+# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set
+CONFIG_EXPR=y
+CONFIG_EXPR_MATH_SUPPORT_64=y
+CONFIG_FALSE=y
+CONFIG_FOLD=y
+CONFIG_HEAD=y
+CONFIG_FEATURE_FANCY_HEAD=y
+CONFIG_HOSTID=y
+CONFIG_ID=y
+# CONFIG_INSTALL is not set
+# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
+# CONFIG_LENGTH is not set
+CONFIG_LN=y
+# CONFIG_LOGNAME is not set
+CONFIG_LS=y
+CONFIG_FEATURE_LS_FILETYPES=y
+CONFIG_FEATURE_LS_FOLLOWLINKS=y
+CONFIG_FEATURE_LS_RECURSIVE=y
+CONFIG_FEATURE_LS_SORTFILES=y
+CONFIG_FEATURE_LS_TIMESTAMPS=y
+CONFIG_FEATURE_LS_USERNAME=y
+CONFIG_FEATURE_LS_COLOR=y
+# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set
+CONFIG_MD5SUM=y
+CONFIG_MKDIR=y
+CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
+CONFIG_MKFIFO=y
+CONFIG_MKNOD=y
+CONFIG_MV=y
+CONFIG_FEATURE_MV_LONG_OPTIONS=y
+CONFIG_NICE=y
+CONFIG_NOHUP=y
+# CONFIG_OD is not set
+# CONFIG_PRINTENV is not set
+CONFIG_PRINTF=y
+CONFIG_PWD=y
+CONFIG_READLINK=y
+CONFIG_FEATURE_READLINK_FOLLOW=y
+# CONFIG_REALPATH is not set
+CONFIG_RM=y
+CONFIG_RMDIR=y
+# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
+CONFIG_SEQ=y
+# CONFIG_SHA1SUM is not set
+CONFIG_SLEEP=y
+CONFIG_FEATURE_FANCY_SLEEP=y
+# CONFIG_FEATURE_FLOAT_SLEEP is not set
+CONFIG_SORT=y
+CONFIG_FEATURE_SORT_BIG=y
+CONFIG_SPLIT=y
+CONFIG_FEATURE_SPLIT_FANCY=y
+CONFIG_STAT=y
+CONFIG_FEATURE_STAT_FORMAT=y
+# CONFIG_STTY is not set
+# CONFIG_SUM is not set
+CONFIG_SYNC=y
+# CONFIG_TAC is not set
+CONFIG_TAIL=y
+CONFIG_FEATURE_FANCY_TAIL=y
+CONFIG_TEE=y
+CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
+CONFIG_TEST=y
+# CONFIG_FEATURE_TEST_64 is not set
+CONFIG_TOUCH=y
+CONFIG_TR=y
+CONFIG_FEATURE_TR_CLASSES=y
+CONFIG_FEATURE_TR_EQUIV=y
+CONFIG_TRUE=y
+CONFIG_TTY=y
+CONFIG_UNAME=y
+# CONFIG_UNEXPAND is not set
+# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set
+CONFIG_UNIQ=y
+CONFIG_USLEEP=y
+# CONFIG_UUDECODE is not set
+# CONFIG_UUENCODE is not set
+CONFIG_WC=y
+# CONFIG_FEATURE_WC_LARGE is not set
+CONFIG_WHO=y
+CONFIG_WHOAMI=y
+CONFIG_YES=y
+
+#
+# Common options for cp and mv
+#
+CONFIG_FEATURE_PRESERVE_HARDLINKS=y
+
+#
+# Common options for ls, more and telnet
+#
+CONFIG_FEATURE_AUTOWIDTH=y
+
+#
+# Common options for df, du, ls
+#
+CONFIG_FEATURE_HUMAN_READABLE=y
+
+#
+# Common options for md5sum, sha1sum
+#
+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
+
+#
+# Console Utilities
+#
+CONFIG_CHVT=y
+CONFIG_CLEAR=y
+# CONFIG_DEALLOCVT is not set
+CONFIG_DUMPKMAP=y
+# CONFIG_KBD_MODE is not set
+# CONFIG_LOADFONT is not set
+CONFIG_LOADKMAP=y
+# CONFIG_OPENVT is not set
+CONFIG_RESET=y
+# CONFIG_RESIZE is not set
+# CONFIG_FEATURE_RESIZE_PRINT is not set
+# CONFIG_SETCONSOLE is not set
+# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
+# CONFIG_SETFONT is not set
+# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set
+CONFIG_DEFAULT_SETFONT_DIR=""
+# CONFIG_SETKEYCODES is not set
+# CONFIG_SETLOGCONS is not set
+# CONFIG_SHOWKEY is not set
+
+#
+# Debian Utilities
+#
+CONFIG_MKTEMP=y
+CONFIG_PIPE_PROGRESS=y
+# CONFIG_RUN_PARTS is not set
+# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
+# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
+# CONFIG_START_STOP_DAEMON is not set
+# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set
+# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set
+CONFIG_WHICH=y
+
+#
+# Editors
+#
+CONFIG_AWK=y
+# CONFIG_FEATURE_AWK_LIBM is not set
+CONFIG_CMP=y
+CONFIG_DIFF=y
+CONFIG_FEATURE_DIFF_BINARY=y
+CONFIG_FEATURE_DIFF_DIR=y
+CONFIG_FEATURE_DIFF_MINIMAL=y
+# CONFIG_ED is not set
+CONFIG_PATCH=y
+CONFIG_SED=y
+CONFIG_VI=y
+CONFIG_FEATURE_VI_MAX_LEN=1024
+CONFIG_FEATURE_VI_8BIT=y
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
+CONFIG_FEATURE_VI_SEARCH=y
+CONFIG_FEATURE_VI_USE_SIGNALS=y
+CONFIG_FEATURE_VI_DOT_CMD=y
+CONFIG_FEATURE_VI_READONLY=y
+CONFIG_FEATURE_VI_SETOPTS=y
+CONFIG_FEATURE_VI_SET=y
+CONFIG_FEATURE_VI_WIN_RESIZE=y
+CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
+CONFIG_FEATURE_ALLOW_EXEC=y
+
+#
+# Finding Utilities
+#
+CONFIG_FIND=y
+CONFIG_FEATURE_FIND_PRINT0=y
+CONFIG_FEATURE_FIND_MTIME=y
+CONFIG_FEATURE_FIND_MMIN=y
+CONFIG_FEATURE_FIND_PERM=y
+CONFIG_FEATURE_FIND_TYPE=y
+CONFIG_FEATURE_FIND_XDEV=y
+CONFIG_FEATURE_FIND_MAXDEPTH=y
+CONFIG_FEATURE_FIND_NEWER=y
+CONFIG_FEATURE_FIND_INUM=y
+CONFIG_FEATURE_FIND_EXEC=y
+CONFIG_FEATURE_FIND_USER=y
+CONFIG_FEATURE_FIND_GROUP=y
+CONFIG_FEATURE_FIND_NOT=y
+CONFIG_FEATURE_FIND_DEPTH=y
+CONFIG_FEATURE_FIND_PAREN=y
+CONFIG_FEATURE_FIND_SIZE=y
+CONFIG_FEATURE_FIND_PRUNE=y
+CONFIG_FEATURE_FIND_DELETE=y
+CONFIG_FEATURE_FIND_PATH=y
+CONFIG_FEATURE_FIND_REGEX=y
+# CONFIG_FEATURE_FIND_CONTEXT is not set
+CONFIG_GREP=y
+CONFIG_FEATURE_GREP_EGREP_ALIAS=y
+CONFIG_FEATURE_GREP_FGREP_ALIAS=y
+CONFIG_FEATURE_GREP_CONTEXT=y
+CONFIG_XARGS=y
+CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y
+CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
+CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
+CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
+
+#
+# Init Utilities
+#
+CONFIG_INIT=y
+CONFIG_FEATURE_USE_INITTAB=y
+CONFIG_FEATURE_KILL_REMOVED=y
+CONFIG_FEATURE_KILL_DELAY=0
+# CONFIG_FEATURE_INIT_SCTTY is not set
+CONFIG_FEATURE_INIT_SYSLOG=y
+# CONFIG_FEATURE_EXTRA_QUIET is not set
+# CONFIG_FEATURE_INIT_COREDUMPS is not set
+# CONFIG_FEATURE_INITRD is not set
+CONFIG_HALT=y
+# CONFIG_MESG is not set
+
+#
+# Login/Password Management Utilities
+#
+# CONFIG_FEATURE_SHADOWPASSWDS is not set
+CONFIG_USE_BB_PWD_GRP=y
+# CONFIG_USE_BB_SHADOW is not set
+CONFIG_USE_BB_CRYPT=y
+CONFIG_ADDGROUP=y
+CONFIG_FEATURE_ADDUSER_TO_GROUP=y
+CONFIG_DELGROUP=y
+# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
+# CONFIG_FEATURE_CHECK_NAMES is not set
+CONFIG_ADDUSER=y
+# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
+CONFIG_DELUSER=y
+CONFIG_GETTY=y
+CONFIG_FEATURE_UTMP=y
+CONFIG_FEATURE_WTMP=y
+CONFIG_LOGIN=y
+# CONFIG_PAM is not set
+CONFIG_LOGIN_SCRIPTS=y
+CONFIG_FEATURE_NOLOGIN=y
+CONFIG_FEATURE_SECURETTY=y
+CONFIG_PASSWD=y
+CONFIG_FEATURE_PASSWD_WEAK_CHECK=y
+# CONFIG_CRYPTPW is not set
+CONFIG_CHPASSWD=y
+CONFIG_SU=y
+CONFIG_FEATURE_SU_SYSLOG=y
+CONFIG_FEATURE_SU_CHECKS_SHELLS=y
+CONFIG_SULOGIN=y
+# CONFIG_VLOCK is not set
+
+#
+# Linux Ext2 FS Progs
+#
+# CONFIG_CHATTR is not set
+# CONFIG_FSCK is not set
+# CONFIG_LSATTR is not set
+
+#
+# Linux Module Utilities
+#
+CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
+CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
+# CONFIG_MODPROBE_SMALL is not set
+# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set
+# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set
+# CONFIG_INSMOD is not set
+# CONFIG_RMMOD is not set
+# CONFIG_LSMOD is not set
+# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set
+# CONFIG_MODPROBE is not set
+# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
+# CONFIG_DEPMOD is not set
+
+#
+# Options common to multiple modutils
+#
+# CONFIG_FEATURE_2_4_MODULES is not set
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
+# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set
+# CONFIG_FEATURE_MODUTILS_ALIAS is not set
+# CONFIG_FEATURE_MODUTILS_SYMBOLS is not set
+
+#
+# Linux System Utilities
+#
+# CONFIG_BLKID is not set
+CONFIG_DMESG=y
+CONFIG_FEATURE_DMESG_PRETTY=y
+# CONFIG_FBSET is not set
+# CONFIG_FEATURE_FBSET_FANCY is not set
+# CONFIG_FEATURE_FBSET_READMODE is not set
+# CONFIG_FDFLUSH is not set
+# CONFIG_FDFORMAT is not set
+# CONFIG_FDISK is not set
+# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
+# CONFIG_FEATURE_FDISK_WRITABLE is not set
+# CONFIG_FEATURE_AIX_LABEL is not set
+# CONFIG_FEATURE_SGI_LABEL is not set
+# CONFIG_FEATURE_SUN_LABEL is not set
+# CONFIG_FEATURE_OSF_LABEL is not set
+# CONFIG_FEATURE_FDISK_ADVANCED is not set
+# CONFIG_FINDFS is not set
+# CONFIG_FREERAMDISK is not set
+# CONFIG_FSCK_MINIX is not set
+# CONFIG_MKFS_MINIX is not set
+# CONFIG_FEATURE_MINIX2 is not set
+CONFIG_GETOPT=y
+# CONFIG_HEXDUMP is not set
+# CONFIG_FEATURE_HEXDUMP_REVERSE is not set
+# CONFIG_HD is not set
+# CONFIG_HWCLOCK is not set
+# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
+# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
+CONFIG_IPCRM=y
+CONFIG_IPCS=y
+# CONFIG_LOSETUP is not set
+# CONFIG_MDEV is not set
+# CONFIG_FEATURE_MDEV_CONF is not set
+# CONFIG_FEATURE_MDEV_RENAME is not set
+# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
+# CONFIG_FEATURE_MDEV_EXEC is not set
+# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
+# CONFIG_MKSWAP is not set
+# CONFIG_FEATURE_MKSWAP_V0 is not set
+CONFIG_MORE=y
+CONFIG_FEATURE_USE_TERMIOS=y
+# CONFIG_VOLUMEID is not set
+# CONFIG_FEATURE_VOLUMEID_EXT is not set
+# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
+# CONFIG_FEATURE_VOLUMEID_FAT is not set
+# CONFIG_FEATURE_VOLUMEID_HFS is not set
+# CONFIG_FEATURE_VOLUMEID_JFS is not set
+# CONFIG_FEATURE_VOLUMEID_XFS is not set
+# CONFIG_FEATURE_VOLUMEID_NTFS is not set
+# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set
+# CONFIG_FEATURE_VOLUMEID_UDF is not set
+# CONFIG_FEATURE_VOLUMEID_LUKS is not set
+# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set
+# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
+# CONFIG_FEATURE_VOLUMEID_ROMFS is not set
+# CONFIG_FEATURE_VOLUMEID_SYSV is not set
+# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
+# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
+CONFIG_MOUNT=y
+# CONFIG_FEATURE_MOUNT_FAKE is not set
+# CONFIG_FEATURE_MOUNT_VERBOSE is not set
+# CONFIG_FEATURE_MOUNT_HELPERS is not set
+# CONFIG_FEATURE_MOUNT_LABEL is not set
+# CONFIG_FEATURE_MOUNT_NFS is not set
+# CONFIG_FEATURE_MOUNT_CIFS is not set
+CONFIG_FEATURE_MOUNT_FLAGS=y
+CONFIG_FEATURE_MOUNT_FSTAB=y
+# CONFIG_PIVOT_ROOT is not set
+# CONFIG_RDATE is not set
+# CONFIG_RDEV is not set
+# CONFIG_READPROFILE is not set
+# CONFIG_RTCWAKE is not set
+# CONFIG_SCRIPT is not set
+# CONFIG_SETARCH is not set
+# CONFIG_SWAPONOFF is not set
+# CONFIG_FEATURE_SWAPON_PRI is not set
+# CONFIG_SWITCH_ROOT is not set
+CONFIG_UMOUNT=y
+CONFIG_FEATURE_UMOUNT_ALL=y
+
+#
+# Common options for mount/umount
+#
+# CONFIG_FEATURE_MOUNT_LOOP is not set
+# CONFIG_FEATURE_MTAB_SUPPORT is not set
+
+#
+# Miscellaneous Utilities
+#
+# CONFIG_ADJTIMEX is not set
+# CONFIG_BBCONFIG is not set
+# CONFIG_CHAT is not set
+# CONFIG_FEATURE_CHAT_NOFAIL is not set
+# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
+# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set
+# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set
+# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set
+# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
+# CONFIG_FEATURE_CHAT_CLR_ABORT is not set
+# CONFIG_CHRT is not set
+# CONFIG_CROND is not set
+# CONFIG_FEATURE_CROND_D is not set
+# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
+# CONFIG_CRONTAB is not set
+# CONFIG_DC is not set
+# CONFIG_FEATURE_DC_LIBM is not set
+# CONFIG_DEVFSD is not set
+# CONFIG_DEVFSD_MODLOAD is not set
+# CONFIG_DEVFSD_FG_NP is not set
+# CONFIG_DEVFSD_VERBOSE is not set
+# CONFIG_FEATURE_DEVFS is not set
+# CONFIG_DEVMEM is not set
+# CONFIG_EJECT is not set
+# CONFIG_FEATURE_EJECT_SCSI is not set
+# CONFIG_FBSPLASH is not set
+# CONFIG_INOTIFYD is not set
+# CONFIG_LAST is not set
+# CONFIG_FEATURE_LAST_SMALL is not set
+# CONFIG_FEATURE_LAST_FANCY is not set
+CONFIG_LESS=y
+CONFIG_FEATURE_LESS_MAXLINES=9999999
+CONFIG_FEATURE_LESS_BRACKETS=y
+CONFIG_FEATURE_LESS_FLAGS=y
+# CONFIG_FEATURE_LESS_DASHCMD is not set
+CONFIG_FEATURE_LESS_MARKS=y
+CONFIG_FEATURE_LESS_REGEXP=y
+# CONFIG_FEATURE_LESS_LINENUMS is not set
+# CONFIG_FEATURE_LESS_WINCH is not set
+# CONFIG_HDPARM is not set
+# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set
+# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
+# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set
+# CONFIG_MAKEDEVS is not set
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
+# CONFIG_FEATURE_MAKEDEVS_TABLE is not set
+# CONFIG_MAN is not set
+# CONFIG_MICROCOM is not set
+# CONFIG_MOUNTPOINT is not set
+# CONFIG_MT is not set
+# CONFIG_RAIDAUTORUN is not set
+# CONFIG_READAHEAD is not set
+# CONFIG_RUNLEVEL is not set
+# CONFIG_RX is not set
+# CONFIG_SETSID is not set
+# CONFIG_STRINGS is not set
+# CONFIG_TASKSET is not set
+# CONFIG_FEATURE_TASKSET_FANCY is not set
+CONFIG_TIME=y
+# CONFIG_TTYSIZE is not set
+# CONFIG_WATCHDOG is not set
+
+#
+# Networking Utilities
+#
+# CONFIG_FEATURE_IPV6 is not set
+# CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set
+# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
+# CONFIG_ARP is not set
+# CONFIG_ARPING is not set
+# CONFIG_BRCTL is not set
+# CONFIG_FEATURE_BRCTL_FANCY is not set
+# CONFIG_FEATURE_BRCTL_SHOW is not set
+# CONFIG_DNSD is not set
+# CONFIG_ETHER_WAKE is not set
+# CONFIG_FAKEIDENTD is not set
+# CONFIG_FTPGET is not set
+# CONFIG_FTPPUT is not set
+# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
+CONFIG_HOSTNAME=y
+# CONFIG_HTTPD is not set
+# CONFIG_FEATURE_HTTPD_RANGES is not set
+# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
+# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
+# CONFIG_FEATURE_HTTPD_SETUID is not set
+# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
+# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
+# CONFIG_FEATURE_HTTPD_CGI is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
+# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
+# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
+# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
+# CONFIG_FEATURE_HTTPD_PROXY is not set
+CONFIG_IFCONFIG=y
+CONFIG_FEATURE_IFCONFIG_STATUS=y
+CONFIG_FEATURE_IFCONFIG_SLIP=y
+CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y
+CONFIG_FEATURE_IFCONFIG_HW=y
+CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
+# CONFIG_IFENSLAVE is not set
+CONFIG_IFUPDOWN=y
+CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
+CONFIG_FEATURE_IFUPDOWN_IP=y
+CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y
+# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
+CONFIG_FEATURE_IFUPDOWN_IPV4=y
+# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
+# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
+# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
+# CONFIG_INETD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
+# CONFIG_FEATURE_INETD_RPC is not set
+CONFIG_IP=y
+CONFIG_FEATURE_IP_ADDRESS=y
+CONFIG_FEATURE_IP_LINK=y
+CONFIG_FEATURE_IP_ROUTE=y
+# CONFIG_FEATURE_IP_TUNNEL is not set
+# CONFIG_FEATURE_IP_RULE is not set
+# CONFIG_FEATURE_IP_SHORT_FORMS is not set
+# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
+# CONFIG_IPADDR is not set
+# CONFIG_IPLINK is not set
+# CONFIG_IPROUTE is not set
+# CONFIG_IPTUNNEL is not set
+# CONFIG_IPRULE is not set
+# CONFIG_IPCALC is not set
+# CONFIG_FEATURE_IPCALC_FANCY is not set
+# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
+# CONFIG_NAMEIF is not set
+# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
+CONFIG_NC=y
+CONFIG_NC_SERVER=y
+CONFIG_NC_EXTRA=y
+CONFIG_NETSTAT=y
+CONFIG_FEATURE_NETSTAT_WIDE=y
+# CONFIG_FEATURE_NETSTAT_PRG is not set
+CONFIG_NSLOOKUP=y
+CONFIG_PING=y
+# CONFIG_PING6 is not set
+CONFIG_FEATURE_FANCY_PING=y
+# CONFIG_PSCAN is not set
+CONFIG_ROUTE=y
+# CONFIG_SLATTACH is not set
+CONFIG_TELNET=y
+CONFIG_FEATURE_TELNET_TTYPE=y
+CONFIG_FEATURE_TELNET_AUTOLOGIN=y
+CONFIG_TELNETD=y
+CONFIG_FEATURE_TELNETD_STANDALONE=y
+# CONFIG_TFTP is not set
+# CONFIG_TFTPD is not set
+# CONFIG_FEATURE_TFTP_GET is not set
+# CONFIG_FEATURE_TFTP_PUT is not set
+# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
+# CONFIG_TFTP_DEBUG is not set
+# CONFIG_TRACEROUTE is not set
+# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
+# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
+# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
+# CONFIG_APP_UDHCPD is not set
+# CONFIG_APP_DHCPRELAY is not set
+# CONFIG_APP_DUMPLEASES is not set
+# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
+CONFIG_DHCPD_LEASES_FILE=""
+CONFIG_APP_UDHCPC=y
+CONFIG_FEATURE_UDHCPC_ARPING=y
+# CONFIG_FEATURE_UDHCP_PORT is not set
+# CONFIG_UDHCP_DEBUG is not set
+# CONFIG_FEATURE_UDHCP_RFC3397 is not set
+CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
+# CONFIG_VCONFIG is not set
+# CONFIG_WGET is not set
+# CONFIG_FEATURE_WGET_STATUSBAR is not set
+# CONFIG_FEATURE_WGET_AUTHENTICATION is not set
+# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
+# CONFIG_ZCIP is not set
+# CONFIG_TCPSVD is not set
+# CONFIG_UDPSVD is not set
+
+#
+# Print Utilities
+#
+# CONFIG_LPD is not set
+# CONFIG_LPR is not set
+# CONFIG_LPQ is not set
+
+#
+# Mail Utilities
+#
+# CONFIG_MAKEMIME is not set
+CONFIG_FEATURE_MIME_CHARSET=""
+# CONFIG_POPMAILDIR is not set
+# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set
+# CONFIG_REFORMIME is not set
+# CONFIG_FEATURE_REFORMIME_COMPAT is not set
+# CONFIG_SENDMAIL is not set
+# CONFIG_FEATURE_SENDMAIL_MAILX is not set
+# CONFIG_FEATURE_SENDMAIL_MAILXX is not set
+
+#
+# Process Utilities
+#
+CONFIG_FREE=y
+CONFIG_FUSER=y
+CONFIG_KILL=y
+# CONFIG_KILLALL is not set
+# CONFIG_KILLALL5 is not set
+# CONFIG_NMETER is not set
+# CONFIG_PGREP is not set
+# CONFIG_PIDOF is not set
+# CONFIG_FEATURE_PIDOF_SINGLE is not set
+# CONFIG_FEATURE_PIDOF_OMIT is not set
+CONFIG_PKILL=y
+CONFIG_PS=y
+CONFIG_FEATURE_PS_WIDE=y
+# CONFIG_FEATURE_PS_TIME is not set
+# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
+CONFIG_RENICE=y
+# CONFIG_BB_SYSCTL is not set
+CONFIG_TOP=y
+CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
+CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
+# CONFIG_FEATURE_TOP_SMP_CPU is not set
+CONFIG_FEATURE_TOP_DECIMALS=y
+# CONFIG_FEATURE_TOP_SMP_PROCESS is not set
+CONFIG_FEATURE_TOPMEM=y
+CONFIG_UPTIME=y
+CONFIG_WATCH=y
+
+#
+# Runit Utilities
+#
+# CONFIG_RUNSV is not set
+# CONFIG_RUNSVDIR is not set
+# CONFIG_FEATURE_RUNSVDIR_LOG is not set
+# CONFIG_SV is not set
+CONFIG_SV_DEFAULT_SERVICE_DIR=""
+# CONFIG_SVLOGD is not set
+# CONFIG_CHPST is not set
+# CONFIG_SETUIDGID is not set
+# CONFIG_ENVUIDGID is not set
+# CONFIG_ENVDIR is not set
+# CONFIG_SOFTLIMIT is not set
+# CONFIG_CHCON is not set
+# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
+# CONFIG_GETENFORCE is not set
+# CONFIG_GETSEBOOL is not set
+# CONFIG_LOAD_POLICY is not set
+# CONFIG_MATCHPATHCON is not set
+# CONFIG_RESTORECON is not set
+# CONFIG_RUNCON is not set
+# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
+# CONFIG_SELINUXENABLED is not set
+# CONFIG_SETENFORCE is not set
+# CONFIG_SETFILES is not set
+# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
+# CONFIG_SETSEBOOL is not set
+# CONFIG_SESTATUS is not set
+
+#
+# Shells
+#
+CONFIG_FEATURE_SH_IS_ASH=y
+# CONFIG_FEATURE_SH_IS_HUSH is not set
+# CONFIG_FEATURE_SH_IS_MSH is not set
+# CONFIG_FEATURE_SH_IS_NONE is not set
+CONFIG_ASH=y
+
+#
+# Ash Shell Options
+#
+CONFIG_ASH_BASH_COMPAT=y
+CONFIG_ASH_JOB_CONTROL=y
+# CONFIG_ASH_READ_NCHARS is not set
+# CONFIG_ASH_READ_TIMEOUT is not set
+CONFIG_ASH_ALIAS=y
+CONFIG_ASH_MATH_SUPPORT=y
+# CONFIG_ASH_MATH_SUPPORT_64 is not set
+# CONFIG_ASH_GETOPTS is not set
+CONFIG_ASH_BUILTIN_ECHO=y
+CONFIG_ASH_BUILTIN_PRINTF=y
+CONFIG_ASH_BUILTIN_TEST=y
+# CONFIG_ASH_CMDCMD is not set
+CONFIG_ASH_MAIL=y
+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
+# CONFIG_ASH_RANDOM_SUPPORT is not set
+# CONFIG_ASH_EXPAND_PRMT is not set
+# CONFIG_HUSH is not set
+# CONFIG_HUSH_HELP is not set
+# CONFIG_HUSH_INTERACTIVE is not set
+# CONFIG_HUSH_JOB is not set
+# CONFIG_HUSH_TICK is not set
+# CONFIG_HUSH_IF is not set
+# CONFIG_HUSH_LOOPS is not set
+# CONFIG_HUSH_CASE is not set
+# CONFIG_LASH is not set
+# CONFIG_MSH is not set
+
+#
+# Bourne Shell Options
+#
+# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
+# CONFIG_FEATURE_SH_STANDALONE is not set
+# CONFIG_FEATURE_SH_NOFORK is not set
+# CONFIG_CTTYHACK is not set
+
+#
+# System Logging Utilities
+#
+CONFIG_SYSLOGD=y
+# CONFIG_FEATURE_ROTATE_LOGFILE is not set
+# CONFIG_FEATURE_REMOTE_LOG is not set
+# CONFIG_FEATURE_SYSLOGD_DUP is not set
+# CONFIG_FEATURE_IPC_SYSLOG is not set
+CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=
+# CONFIG_LOGREAD is not set
+# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
+CONFIG_KLOGD=y
+# CONFIG_LOGGER is not set
diff --git a/devices.map b/devices.map
new file mode 100644
index 0000000..cec84ed
--- /dev/null
+++ b/devices.map
@@ -0,0 +1 @@
+(hd0) /dev/loop0
diff --git a/doc/001291.html b/doc/001291.html
new file mode 100644
index 0000000..5115daf
--- /dev/null
+++ b/doc/001291.html
@@ -0,0 +1,242 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<HTML>
+ <HEAD>
+ <TITLE> uclibc vs glibc
+ </TITLE>
+ <LINK REL="Index" HREF="index.html" >
+ <LINK REL="made" HREF="mailto:hlfs-dev%40linuxfromscratch.org?Subject=uclibc%20vs%20glibc&In-Reply-To=200411062022.37679.robert%40linuxfromscratch.org">
+ <META NAME="robots" CONTENT="index,nofollow">
+ <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
+ <LINK REL="Previous" HREF="001290.html">
+ <LINK REL="Next" HREF="001292.html">
+ </HEAD>
+ <BODY BGCOLOR="#ffffff">
+ <H1>uclibc vs glibc</H1>
+ <B>Robert Connolly</B>
+ <A HREF="mailto:hlfs-dev%40linuxfromscratch.org?Subject=uclibc%20vs%20glibc&In-Reply-To=200411062022.37679.robert%40linuxfromscratch.org"
+ TITLE="uclibc vs glibc">robert at linuxfromscratch.org
+ </A><BR>
+ <I>Sun Nov 7 00:10:55 MST 2004</I>
+ <P><UL>
+ <LI>Previous message: <A HREF="001290.html">uclibc vs glibc
+</A></li>
+ <LI>Next message: <A HREF="001292.html">uclibc vs glibc
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#1291">[ date ]</a>
+ <a href="thread.html#1291">[ thread ]</a>
+ <a href="subject.html#1291">[ subject ]</a>
+ <a href="author.html#1291">[ author ]</a>
+ </LI>
+ </UL>
+ <HR>
+<!--beginarticle-->
+<PRE>I think I have success, except that the host system is detected as -gnu
+instead of -uclibc. But otherwise its working fine {:-] I attached my
+instruction sheet. It appears as though we need to use --host/build/target on
+every package, but I'm starting to get the feeling it doesn't really matter
+excpet for packages that are patched for it. I'm interested to know what
+happens in chapter 6.
+
+Gawk's testsuite passed. Coreutils did not... it fails strait away.
+
+make[3]: Entering directory
+`/mnt/hlfs/sources/temp/coreutils-5.2.1/tests/basename'
+-: test fail-1: stderr mismatch, comparing fail-1.1 (actual) and fail-1.E
+(expected)
+*** fail-1.1 Sun Nov 7 02:02:47 2004
+--- fail-1.E Sun Nov 7 02:02:47 2004
+
+If I run Coreutils tests with make -k I get a lot of passes, but a lot of
+failures too. Odd stuff, like no such file, and permission denied, and
+mismatches too. Coreutils doesn't leave me any .out files to look at so I'll
+shelf this for now and I'll try to get to chapter 6 (tommorrow).
+
+nini
+Robert
+-------------- next part --------------
+# LFS with uclibc
+# robert
+
+# This is so the cross linker is found for cross gcc's build, and again for uClibc.
+# It gets removed after native tools are set up.
+# This path must go on the end so the native tools in /tools/bin are used when
+# they get installed.
+
+export PATH=&quot;$PATH:/tools/cross/bin&quot;
+
+- Uclibc unpack
+
+Just unpack it.
+
+- Linux-libc-headers 2.6
+
+cp -R include/asm-i386 ../uClibc/include/asm &amp;&amp;
+cp -R include/{linux,sound} ../uClibc/include
+
+- Uclibc headers
+
+make allyesconfig &amp;&amp;
+sed '<A HREF="http://linuxfromscratch.org/mailman/listinfo/hlfs-dev">s at RUNTIME_PREFIX.</A>*@RUNTIME_PREFIX=&quot;/tools&quot;@' -i .config &amp;&amp;
+echo &gt; extra/scripts/fix_includes.sh
+
+# This is better than 'cp -R include /tools/include' because this doesn't install
+# libintl.h because it doesn't seem to work.
+# Ignore the error about missing lib/
+
+make headers
+make DEVEL_PREFIX=/tools/cross/i386-pc-linux-uclibc/ install_dev
+
+# Remove this broken link (lets not pretend it works).
+# Then remove the empty directory (lets not pretend something is inside).
+
+rm /tools/cross/i386-pc-linux-uclibc/lib/libthread_db.so &amp;&amp;
+rmdir /tools/cross/i386-pc-linux-uclibc/lib/
+
+- Binutils cross linker
+
+# The second patch might not be needed, but I don't think it hurts either.
+
+cat ../binutils-2.15.90.0.3-uclibc-100-conf.patch \
+ | sed -e 's@/lib/@/tools/lib/@g' | patch -Np1 &amp;&amp;
+patch -Np1 -i ../binutils-2.15.90.0.3-uclibc-210-cflags.patch
+
+mkdir ../binutils-build &amp;&amp;
+cd ../binutils-build
+
+../binutils-2.15.90.0.3/configure --prefix=/tools/cross --disable-nls \
+ --target=i386-pc-linux-uclibc &amp;&amp;
+make configure-host &amp;&amp;
+make LDFLAGS=&quot;-all-static&quot; &amp;&amp;
+make install &amp;&amp;
+make -C ld clean &amp;&amp;
+make -C ld LDFLAGS=&quot;-all-static&quot; LIB_PATH=/tools/lib
+
+- Gcc cross compiler
+
+# Just unpack gcc-core
+
+# This is a replacement for the LFS specs patch, and adds uClibc specific stuff so
+# --target=uclibc works nicer.
+patch -Np1 -i ../gcc-3.4.3-uclibc_tools_conf-1.patch
+
+mkdir ../gcc-build &amp;&amp;
+cd ../gcc-build
+
+# The most important thing here is --disable-shared. Untill we have a native C library
+# Gcc can not build a libgcc.so (because it uses functions from libc.so).
+../gcc-3.4.3/configure --prefix=/tools/cross --target=i386-pc-linux-uclibc \
+ --libexecdir=/tools/cross/i386-pc-linux-uclibc/lib \
+ --with-local-prefix=/tools/cross \
+ --disable-nls --disable-shared --enable-languages=c
+
+# Not BOOT_LDFLAGS because we are not doing a bootstrap here.
+make LDFLAGS=&quot;-static&quot;
+
+make install
+
+- uClibc build
+
+make CROSS=i386-pc-linux-uclibc-
+
+make RUNTIME_PREFIX=/tools/ install_runtime
+make DEVEL_PREFIX=/tools/ install_dev
+
+- Adjusting toolchain
+
+# In binutils-build
+make -C ld install
+
+# I dont know how to avoid this. Its only for use durring cross compiling.
+ln -s /tools/lib/crt* /tools/cross/i386-pc-linux-uclibc/lib
+
+# Theres no sed(1) command in this, the gcc-uclibc-conf patch took care of it.
+# Now test that the compiler works.
+echo 'main(){}' &gt; dummy.c
+i386-pc-linux-uclibc-gcc dummy.c
+readelf -l a.out | grep ': /tools'
+
+- Gcc native
+
+patch -Np1 -i ../gcc-3.4.3-uclibc_tools_conf-1.patch
+
+# This patch tells GCC how to build with uClibc locales for c++.
+patch -Np1 -i ../gcc-3.4.1-uclibc-200-locale.patch
+
+# This is so we don't run the fixincludes scripts.
+patch -Np1 -i ../gcc-3.4.3-no_fixincludes-1.patch
+
+mkdir ../gcc-build &amp;&amp;
+cd ../gcc-build
+
+# Uclibc and __cxa_atexit don't get along. --enable-clocale=uclibc, but don't define
+# that or else it won't work, it will be echo'd during configure though.
+
+# The first pass will be with the cross compiler, the bootstrap is with the native.
+CC=&quot;i386-pc-linux-uclibc-gcc&quot; \
+../gcc-3.4.3/configure --prefix=/tools \
+ --host=i386-pc-linux-uclibc --build=i386-pc-linux-uclibc \
+ --target=i386-pc-linux-uclibc --enable-shared \
+ --libexecdir=/tools/lib --with-local-prefix=/tools \
+ --enable-threads=posix --disable-__cxa_atexit \
+ --enable-languages=c,c++ --disable-libstdcxx-pch
+
+make bootstrap
+
+make install &amp;&amp;
+ln -s gcc /tools/bin/cc
+
+- Binutils native
+
+cat ../binutils-2.15.90.0.3-uclibc-100-conf.patch \
+ | sed -e 's@/lib/@/tools/lib/@g' | patch -Np1 &amp;&amp;
+patch -Np1 -i ../binutils-2.15.90.0.3-uclibc-210-cflags.patch
+
+mkdir ../binutils-build &amp;&amp;
+cd ../binutils-build
+
+../binutils-2.15.90.0.3/configure --prefix=/tools \
+ --enable-shared --with-lib-path=/tools/lib \
+ --host=i386-pc-linux-uclibc --build=i386-pc-linux-uclibc \
+ --target=i386-pc-linux-uclibc &amp;&amp;
+make &amp;&amp;
+make install &amp;&amp;
+make -C ld clean &amp;&amp;
+make -C ld LIB_PATH=/usr/lib:/lib
+
+- Gawk
+
+./configure --prefix=/tools --host=i386-pc-linux-uclibc \
+ --build=i386-pc-linux-uclibc --target=i386-pc-linux-uclibc &amp;&amp;
+make &amp;&amp;
+make install
+
+- Coreutils
+
+./configure --prefix=/tools --host=i386-pc-linux-uclibc \
+ --build=i386-pc-linux-uclibc --target=i386-pc-linux-uclibc &amp;&amp;
+make &amp;&amp;
+make install
+
+</PRE>
+
+<!--endarticle-->
+ <HR>
+ <P><UL>
+ <!--threads-->
+ <LI>Previous message: <A HREF="001290.html">uclibc vs glibc
+</A></li>
+ <LI>Next message: <A HREF="001292.html">uclibc vs glibc
+</A></li>
+ <LI> <B>Messages sorted by:</B>
+ <a href="date.html#1291">[ date ]</a>
+ <a href="thread.html#1291">[ thread ]</a>
+ <a href="subject.html#1291">[ subject ]</a>
+ <a href="author.html#1291">[ author ]</a>
+ </LI>
+ </UL>
+
+<hr>
+<a href="http://linuxfromscratch.org/mailman/listinfo/hlfs-dev">More information about the hlfs-dev
+mailing list</a><br>
+</body></html>
diff --git a/doc/CROSS-COMPILE-GUTS b/doc/CROSS-COMPILE-GUTS
new file mode 100644
index 0000000..8453a6e
--- /dev/null
+++ b/doc/CROSS-COMPILE-GUTS
@@ -0,0 +1,284 @@
+-----
+Intro
+-----
+
+2006-06-08 Mike Frysinger <vapier@gentoo.org>
+
+brain dumpage of cross-compiling low level details
+
+target audience:
+people who (for some stupid reason or another) really really want to create
+their own cross compiler with binutils/(glibc|uclibc)/gcc all by themselves.
+
+what this isn't:
+this document makes no attempt whatsoever to cover the myriad of build
+failures you are likely to see along the way. if you need such help, see the
+References section at the end of this file for some pointers. don't bug me :P
+
+
+--------
+Overview
+--------
+
+There are generally two ways to build up your cross-compiler. The "accepted"
+way, and the cheater's shortcut.
+
+The current "accepted" way is:
+ (1) binutils
+ (2) kernel headers
+ (3) libc headers
+ (4) gcc stage1 (c-only)
+ (5) libc
+ (6) gcc stage2 (c/c++/etc...)
+
+The cheater's shortcut is:
+ (1) binutils
+ (2) gcc stage1 (c-only)
+ (3) kernel headers
+ (4) libc
+ (5) gcc stage2 (c/c++/etc...)
+
+The reason people are keen on the shortcut is that the libc headers step tends
+to take quite a while, especially on slower machines. It can also be kind of
+a pain to setup kernel/libc headers without a usuable cross compiler. Note
+though that if you seek help with cross-compilers, upstream projects will not
+want to help you if you took the shortcut.
+
+Also note that the shortcut requires the gcc stage1 to be "crippled". Since
+you're building without headers, you cannot enable the sysroot option nor can
+you build up proper gcc libs. This is OK if the only thing you use the stage1
+is building the C library and a kernel, but beyond that you need a nice
+sysroot based compiler.
+
+Below I will describe the "accepted" way as the steps are pretty much the
+same. You just need some extra patches for gcc in order to take the shortcut.
+
+
+-------
+Targets
+-------
+
+<explain target tuples here>
+
+
+-------
+Sysroot
+-------
+
+We will be cross-compiling using the sysroot method. But wtf is sysroot ?
+
+From the gcc docs:
+ Tells GCC to consider dir as the root of a tree that contains a (subset of)
+ the root filesystem of the target operating system. Target system headers,
+ libraries and run-time object files will be searched in there.
+
+The structure of the sysroot dir is the same as the root filesystem of the
+machine you're targeting with the cross-compiler. In Gentoo/portage terms,
+it's like using ROOT. Let's look at the typical setup.
+
+The top level dir is commonly rooted in /usr/$CTARGET
+/usr/$CTARGET/
+|-- bin/
+|-- lib/ critical runtime libs (libc/ldso/etc...)
+`-- usr/
+ |-- include/ development headers
+ | |-- linux/ like the linux kernel
+ | `-- asm/ like the arch-specific
+ `-- lib/ non critical runtime libs / development libs
+
+As you can see, it's just like the directory setup / but in /usr/$CTARGET.
+This setup is on purpose so you can easily migrate applications/libraries
+out of /usr/$CTARGET and into / on your target board.
+
+Non-sysroot note:
+The old style of cross-compilers was to use --prefix=/usr/$CTARGET. If you
+are using versions of binutils/gcc that predate sysroot support, you may have
+to do just this.
+
+
+--------
+Binutils
+--------
+
+Grab the binutils-2.16.1.tar.bz2 tarball and unpack it.
+
+The --disable-werror configure option is to prevent binutils from aborting
+the compile due to warnings. Great feature for developers, pita for users.
+
+To configure/build/install:
+
+$ ./configure \
+ --target=$CTARGET \
+ --prefix=/usr \
+ --with-sysroot=/usr/$CTARGET \
+ --disable-werror
+$ make
+$ make install DESTDIR=$PWD/install-root
+
+The reason we install into the localdir is so we can remove crap that doesn't
+belong. For example, a normal install will give us /usr/lib/libiberty.a which
+doesn't belong in our host /usr/lib. So clean out stuff first:
+
+$ rm -rf install-root/usr/{info,lib,man,share}
+
+And install what's left:
+
+# cp -a install-root/* /
+
+
+--------------
+Kernel headers
+--------------
+
+Grab the linux-2.6.16.tar.bz2 tarball and unpack it.
+
+$ yes "" | make ARCH=$ARCH oldconfig prepare
+
+With 2.6.x, this will probably end in an error because you don't have a gcc
+cross-compiler yet, but you can ignore that. Just copy over the headers:
+
+# mkdir -p /usr/$CTARGET/usr/include
+# cp -a include/linux include/asm-generic /usr/$CTARGET/usr/include/
+# cp -a include/asm-$ARCH /usr/$CTARGET/usr/include/asm
+
+
+------------
+libc headers
+------------
+
+ -- glibc --
+
+Grab the glibc-2.4.tar.bz2 tarball and unpack it. Glibc is picky, so you'll
+have to compile in a dir separate from the source code.
+
+Again, you'll probably see errors because you don't have a gcc cross-compiler
+yet, but just ignore them.
+
+$ mkdir build
+$ cd build
+$ ../configure \
+ --host=$CTARGET \
+ --prefix=/usr \
+ --with-headers=/usr/$CTARGET/usr/include \
+ --disable-sanity-checks
+# make -k install-headers install_root=/usr/$CTARGET
+
+glibc sucks at life so you have to do a few things by hand:
+
+# mkdir -p /usr/$CTARGET/usr/include/gnu
+# touch /usr/$CTARGET/usr/include/gnu/stubs.h
+# cp bits/stdio_lim.h /usr/$CTARGET/usr/include/bits/
+
+
+ -- uClibc --
+
+Grab the uClibc-0.9.28.tar.bz2 tarball and unpack it.
+
+
+----------
+GCC stage1
+----------
+
+We first have to help gcc find the current libc headers.
+
+# ln -s usr/include /usr/$CTARGET/sys-include
+
+Grab the gcc-4.1.1.tar.bz2 tarball and unpack it.
+
+$ mkdir build
+$ cd build
+$ ../configure \
+ --target=$CTARGET \
+ --prefix=/usr \
+ --with-sysroot=/usr/$CTARGET \
+ --enable-languages=c \
+ --disable-shared \
+ --disable-checking \
+ --disable-werror \
+ --disable-libmudflap \
+ --disable-libssp
+$ make
+$ make install DESTDIR=$PWD/install-root
+
+Same as binutils, gcc leaves some stuff behind we don't want.
+
+$ rm -rf install-root/usr/{info,include,lib/libiberty.a,man,share}
+
+Install what's left:
+
+# cp -a install-root/* /
+
+
+----------
+libc
+----------
+
+ -- glibc --
+
+Nuke the old glibc build dir and recreate it.
+
+$ rm -rf build
+$ mkdir build
+$ cd build
+$ ../configure \
+ --host=$CTARGET \
+ --prefix=/usr
+$ make
+# make install install_root=/usr/$CTARGET
+
+ -- uClibc --
+
+
+
+----------
+GCC stage2
+----------
+
+$ ./configure \
+ --target=$CTARGET \
+ --prefix=/usr \
+ --with-sysroot=/usr/$CTARGET \
+ --enable-languages=c,c++ \
+ --enable-shared \
+ --disable-checking \
+ --disable-werror
+$ make
+# make install
+
+
+----
+Help
+----
+
+Where to seek help:
+The crossgcc mailing list: http://sourceware.org/ml/crossgcc/
+Google: http://www.google.com/
+
+
+----------
+References
+----------
+
+Gentoo Homepage: http://embedded.gentoo.org/
+
+crosstool: http://www.kegel.com/crosstool/
+
+Binutils Homepage: http://sourceware.org/binutils/
+Binutils Download: http://ftp.gnu.org/gnu/binutils/
+Binutils Manual: http://sourceware.org/binutils/docs-2.16/
+
+GCC Homepage: http://gcc.gnu.org/
+GCC Download: http://ftp.gnu.org/gnu/gcc/
+GCC Manual: http://gcc.gnu.org/onlinedocs/
+GCC Install Docs: http://gcc.gnu.org/install/
+
+Glibc Homepage: http://www.gnu.org/software/libc/
+Glibc Download: http://ftp.gnu.org/gnu/glibc/
+Glibc Manual: http://www.gnu.org/software/libc/manual/
+Glibc Install Docs: http://www.gnu.org/software/libc/manual/html_node/Installation.html#Installation
+
+uClibc Homepage: http://www.uClibc.org/
+uClibc Download: http://www.uclibc.org/downloads/
+
+Linux Kernel Homepage: http://www.kernel.org/
+Linux Kernel Download: http://www.kernel.org/pub/linux/kernel/
diff --git a/doc/HOWTO_bbox_with_uclibc.txt b/doc/HOWTO_bbox_with_uclibc.txt
new file mode 100644
index 0000000..bcbbbb6
--- /dev/null
+++ b/doc/HOWTO_bbox_with_uclibc.txt
@@ -0,0 +1,302 @@
+How to build busybox statically against uclibc, minimizing its size.
+
+Very sketchy at the moment. Send questions to vda.linux@googlemail.com.
+
+First, build and install cross-compiling toolchain. Start with binutils.
+When binutils are built and installed, you should have these files:
+
+$ ls -l /usr/bin/i486-linux-uclibc-* | grep binutils
+lrwxrwxrwx 1 root root 72 Jul 21 18:17 /usr/bin/i486-linux-uclibc-addr2line -> /usr/app/binutils-2.17-i486-linux-uclibc/bin/i486-linux-uclibc-addr2line
+lrwxrwxrwx 1 root root 65 Jul 21 18:17 /usr/bin/i486-linux-uclibc-ar -> /usr/app/binutils-2.17-i486-linux-uclibc/bin/i486-linux-uclibc-ar
+lrwxrwxrwx 1 root root 65 Jul 21 18:17 /usr/bin/i486-linux-uclibc-as -> /usr/app/binutils-2.17-i486-linux-uclibc/bin/i486-linux-uclibc-as
+lrwxrwxrwx 1 root root 70 Jul 21 18:17 /usr/bin/i486-linux-uclibc-c++filt -> /usr/app/binutils-2.17-i486-linux-uclibc/bin/i486-linux-uclibc-c++filt
+lrwxrwxrwx 1 root root 65 Jul 21 18:17 /usr/bin/i486-linux-uclibc-ld -> /usr/app/binutils-2.17-i486-linux-uclibc/bin/i486-linux-uclibc-ld
+lrwxrwxrwx 1 root root 65 Jul 21 18:17 /usr/bin/i486-linux-uclibc-nm -> /usr/app/binutils-2.17-i486-linux-uclibc/bin/i486-linux-uclibc-nm
+lrwxrwxrwx 1 root root 70 Jul 21 18:17 /usr/bin/i486-linux-uclibc-objcopy -> /usr/app/binutils-2.17-i486-linux-uclibc/bin/i486-linux-uclibc-objcopy
+lrwxrwxrwx 1 root root 70 Jul 21 18:17 /usr/bin/i486-linux-uclibc-objdump -> /usr/app/binutils-2.17-i486-linux-uclibc/bin/i486-linux-uclibc-objdump
+lrwxrwxrwx 1 root root 69 Jul 21 18:17 /usr/bin/i486-linux-uclibc-ranlib -> /usr/app/binutils-2.17-i486-linux-uclibc/bin/i486-linux-uclibc-ranlib
+lrwxrwxrwx 1 root root 70 Jul 21 18:17 /usr/bin/i486-linux-uclibc-readelf -> /usr/app/binutils-2.17-i486-linux-uclibc/bin/i486-linux-uclibc-readelf
+lrwxrwxrwx 1 root root 67 Jul 21 18:17 /usr/bin/i486-linux-uclibc-size -> /usr/app/binutils-2.17-i486-linux-uclibc/bin/i486-linux-uclibc-size
+lrwxrwxrwx 1 root root 70 Jul 21 18:17 /usr/bin/i486-linux-uclibc-strings -> /usr/app/binutils-2.17-i486-linux-uclibc/bin/i486-linux-uclibc-strings
+lrwxrwxrwx 1 root root 68 Jul 21 18:17 /usr/bin/i486-linux-uclibc-strip -> /usr/app/binutils-2.17-i486-linux-uclibc/bin/i486-linux-uclibc-strip
+
+After that, build cross-gcc. You should now have this:
+
+$ ls -l /usr/bin/i486-linux-uclibc-* | grep -v binutils
+lrwxrwxrwx 1 root root 62 Aug 21 13:38 /usr/bin/i486-linux-uclibc-c++ -> /usr/app/gcc-4.2.1-i486-linux-uclibc/bin/i486-linux-uclibc-c++
+lrwxrwxrwx 1 root root 62 Aug 21 13:38 /usr/bin/i486-linux-uclibc-cpp -> /usr/app/gcc-4.2.1-i486-linux-uclibc/bin/i486-linux-uclibc-cpp
+lrwxrwxrwx 1 root root 62 Aug 21 13:38 /usr/bin/i486-linux-uclibc-g++ -> /usr/app/gcc-4.2.1-i486-linux-uclibc/bin/i486-linux-uclibc-g++
+lrwxrwxrwx 1 root root 62 Aug 21 13:38 /usr/bin/i486-linux-uclibc-gcc -> /usr/app/gcc-4.2.1-i486-linux-uclibc/bin/i486-linux-uclibc-gcc
+lrwxrwxrwx 1 root root 68 Aug 21 12:43 /usr/bin/i486-linux-uclibc-gcc-4.1.1 -> /usr/app/gcc-4.1.1-i486-linux-uclibc/bin/i486-linux-uclibc-gcc-4.1.1
+lrwxrwxrwx 1 root root 68 Aug 21 13:38 /usr/bin/i486-linux-uclibc-gcc-4.2.1 -> /usr/app/gcc-4.2.1-i486-linux-uclibc/bin/i486-linux-uclibc-gcc-4.2.1
+lrwxrwxrwx 1 root root 65 Aug 21 13:38 /usr/bin/i486-linux-uclibc-gccbug -> /usr/app/gcc-4.2.1-i486-linux-uclibc/bin/i486-linux-uclibc-gccbug
+lrwxrwxrwx 1 root root 63 Aug 21 13:38 /usr/bin/i486-linux-uclibc-gcov -> /usr/app/gcc-4.2.1-i486-linux-uclibc/bin/i486-linux-uclibc-gcov
+
+Depending on your packaging choice, you may end up with actual files in /usr/bin,
+not symlinks. In fact, having symlinks is not typical, but I find it much
+more convenient.
+
+Now you need to build uclibc.
+Full uclibc .config can be found at the end of this file.
+Key points:
+
+Uncheck shared library support:
+[ ] Generate only Position Independent Code (PIC)
+[ ] Enable support for shared libraries
+
+Since busybox uses --gc-sections, it's advantageous to pass
+"-ffunction-sections -fdata-sections" options to gcc. This will make
+your busybox binary ~6k smaller. I set the following option
+in .config for that:
+
+UCLIBC_EXTRA_CFLAGS="-ffunction-sections -fdata-sections -falign-functions=1 -falign-labels=1 -falign-loops=1 -falign-jumps=1 -fomit-frame-pointer"
+
+Build and install you uclibc.
+
+Now you can build busybox against it by using
+
+export ARCH=i386
+make CROSS_COMPILE=i486-linux-uclibc- ...
+
+After you built it, find busybox_ld.out file in the top build directory,
+rename it to busybox_ldscript, remove everything except linker script,
+and edit it as follows:
+
+--- busybox_ld.out 2007-09-16 20:19:51.000000000 +0100
++++ busybox_ldscript 2007-08-25 18:10:15.000000000 +0100
+@@ -65,7 +65,7 @@
+ PROVIDE (__etext = .);
+ PROVIDE (_etext = .);
+ PROVIDE (etext = .);
+- .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
++ .rodata : { *(.rodata SORT_BY_ALIGNMENT(.rodata.*) .gnu.linkonce.r.*) }
+ .rodata1 : { *(.rodata1) }
+ .eh_frame_hdr : { *(.eh_frame_hdr) }
+ .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) }
+@@ -134,7 +134,7 @@
+ .got.plt : { *(.got.plt) }
+ .data :
+ {
+- *(.data .data.* .gnu.linkonce.d.*)
++ *(.data SORT_BY_ALIGNMENT(.data.*) .gnu.linkonce.d.*)
+ KEEP (*(.gnu.linkonce.d.*personality*))
+ SORT(CONSTRUCTORS)
+ }
+@@ -144,7 +144,7 @@
+ .bss :
+ {
+ *(.dynbss)
+- *(.bss .bss.* .gnu.linkonce.b.*)
++ *(.bss SORT_BY_ALIGNMENT(.bss.*) .gnu.linkonce.b.*)
+ *(COMMON)
+ /* Align here to ensure that the .bss section occupies space up to
+ _end. Align after .bss to ensure correct alignment even if the
+
+Now delete busybox and busybox_unstripped binaries, and rerun make.
+It will do final link again, with smaller result. Example:
+
+$ size busybox busybox.optimized
+ text data bss dec hex filename
+ 772898 1084 10844 784826 bf9ba busybox
+ 772680 1051 10724 784455 bf847 busybox.optimized
+
+Nearly 400 bytes saved on padding.
+
+Sample uclibc .config follows
+=============================
+#
+# Automatically generated make config: don't edit
+# Fri Aug 3 12:16:10 2007
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+TARGET_i386=y
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="i386"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_GENERIC_386 is not set
+# CONFIG_386 is not set
+CONFIG_486=y
+# CONFIG_586 is not set
+# CONFIG_586MMX is not set
+# CONFIG_686 is not set
+# CONFIG_PENTIUMII is not set
+# CONFIG_PENTIUMIII is not set
+# CONFIG_PENTIUM4 is not set
+# CONFIG_K6 is not set
+# CONFIG_K7 is not set
+# CONFIG_ELAN is not set
+# CONFIG_CRUSOE is not set
+# CONFIG_WINCHIPC6 is not set
+# CONFIG_WINCHIP2 is not set
+# CONFIG_CYRIXIII is not set
+# CONFIG_NEHEMIAH is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_LITTLE_ENDIAN=y
+
+#
+# Using Little Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+KERNEL_HEADERS="../linux-2.6.18.1/include"
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+# DOPIC is not set
+# HAVE_NO_SHARED is not set
+# ARCH_HAS_NO_LDSO is not set
+# HAVE_SHARED is not set
+UCLIBC_CTOR_DTOR=y
+# HAS_NO_THREADS is not set
+# UCLIBC_HAS_THREADS is not set
+UCLIBC_HAS_LFS=y
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+# MALLOC_GLIBC_COMPAT is not set
+UCLIBC_DYNAMIC_ATEXIT=y
+# COMPAT_ATEXIT is not set
+# UCLIBC_SUSV3_LEGACY is not set
+# UCLIBC_SUSV3_LEGACY_MACROS is not set
+UCLIBC_HAS_SHADOW=y
+# UCLIBC_HAS_PROGRAM_INVOCATION_NAME is not set
+UCLIBC_HAS___PROGNAME=y
+UNIX98PTY_ONLY=y
+ASSUME_DEVPTS=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+
+#
+# Advanced Library Settings
+#
+UCLIBC_PWD_BUFFER_SIZE=256
+UCLIBC_GRP_BUFFER_SIZE=256
+
+#
+# Networking Support
+#
+UCLIBC_HAS_IPV6=y
+UCLIBC_HAS_RPC=y
+UCLIBC_HAS_FULL_RPC=y
+UCLIBC_HAS_REENTRANT_RPC=y
+# UCLIBC_USE_NETLINK is not set
+# UCLIBC_HAS_BSD_RES_CLOSE is not set
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+UCLIBC_HAS_CTYPE_UNSAFE=y
+# UCLIBC_HAS_CTYPE_CHECKED is not set
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+# UCLIBC_HAS_WCHAR is not set
+# UCLIBC_HAS_LOCALE is not set
+# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set
+# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set
+# USE_OLD_VFPRINTF is not set
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+# UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+UCLIBC_HAS_STDIO_BUFSIZ_1024=y
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set
+# UCLIBC_HAS_GLIBC_CUSTOM_STREAMS is not set
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_REGEX_OLD=y
+UCLIBC_HAS_FNMATCH=y
+UCLIBC_HAS_FNMATCH_OLD=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_GLOB=y
+# UCLIBC_HAS_GNU_GLOB is not set
+
+#
+# Library Installation Options
+#
+RUNTIME_PREFIX="/usr/app/uclibc-NEW/$(TARGET_ARCH)/"
+DEVEL_PREFIX="/usr/app/uclibc-NEW/$(TARGET_ARCH)/usr/"
+
+#
+# Security options
+#
+# UCLIBC_HAS_ARC4RANDOM is not set
+# HAVE_NO_SSP is not set
+# UCLIBC_HAS_SSP is not set
+UCLIBC_BUILD_NOEXECSTACK=y
+
+#
+# uClibc development/debugging options
+#
+CROSS_COMPILER_PREFIX=""
+UCLIBC_EXTRA_CFLAGS="-ffunction-sections -fdata-sections -falign-functions=1 -falign-labels=1 -falign-loops=1 -falign-jumps=1 -fomit-frame-pointer"
+# DODEBUG is not set
+DOSTRIP=y
+# DOASSERTS is not set
+# UCLIBC_MALLOC_DEBUGGING is not set
+WARNINGS="-Wall"
+# EXTRA_WARNINGS is not set
+# DOMULTI is not set
+# UCLIBC_MJN3_ONLY is not set
diff --git a/doc/LINKS b/doc/LINKS
new file mode 100644
index 0000000..1db78c1
--- /dev/null
+++ b/doc/LINKS
@@ -0,0 +1,56 @@
+Why this all?
+------------
+
+Imagine an appliance you can send by email to demonstrate your software.
+Something like Centos 5.1 which gets 720MB in its minimal installation is
+just comletely unusable..
+
+Minix 3 would be my preferred choice though but it has no thread support (yet).
+
+disk image formats of different emulators
+-----------------------------------------
+
+Transform QEMU image to VirtualBox image:
+http://liquidat.wordpress.com/2007/11/23/howto-transform-a-qemu-image-to-a-virtualbox-image/
+
+Transform QEMU image to VMWare image:
+http://cri.ch/linux/docs/sk0020.html
+
+Transform VMWare image into a MS Virtual Disk image (VHD):
+http://vmtoolkit.com/files/folders/converters/entry8.aspx
+
+VMWare on Windows logon problem:
+http://communities.vmware.com/thread/88396;jsessionid=976F209BADCAF3F9AA1DA6C2910664DF?tstart=0&start=15
+(but most likely you need Administrator permission to access the VMWare auth
+service which is a nono for user accounts!)
+
+cross compilation
+-----------------
+
+howto: http://www.landley.net/ols/ols2007/tutorial.txt
+crosstools: http://kegel.com/crosstool/crosstool-0.43/doc/crosstool-howto.html
+
+A little bit old, but quite interesting:
+http://dev.gentoo.org/~vapier/CROSS-COMPILE-GUTS
+
+Minimal Linux from Boot to Bash:
+http://axiom.anu.edu.au/~okeefe/p2b/buildMin/buildMin.html
+
+http://dev.gentoo.org/~vapier/CROSS-COMPILE-GUTS
+
+http://busybox.net/~vda/HOWTO_bbox_with_uclibc.txt
+http://linuxfromscratch.org/pipermail/hlfs-dev/2004-November/001291.html
+http://dev.gentoo.org/~vapier/CROSS-COMPILE-GUTS
+
+How to create a qemu image in combination with losetup and sfdisk
+-----------------------------------------------------------------
+
+http://www.mail-archive.com/qemu-devel@nongnu.org/msg01205.html
+
+other small Linux projects
+--------------------------
+
+http://www.creo.hu/~csaba/lowlife/uclibc-bootfloppy.txt
+http://cross-lfs.org
+ttylinux
+dsl damn small linux
diff --git a/doc/buildMin.html b/doc/buildMin.html
new file mode 100644
index 0000000..8183a3a
--- /dev/null
+++ b/doc/buildMin.html
@@ -0,0 +1,87 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
+ <TITLE>How To Build a Minimal Linux System from Source Code</TITLE>
+ <LINK HREF="buildMin-1.html" REL=next>
+
+
+</HEAD>
+<BODY>
+<A HREF="buildMin-1.html">Next</A>
+Previous
+Contents
+<HR>
+<H1>How To Build a Minimal Linux System from Source Code</H1>
+
+<H2>Greg O'Keefe, <CODE>gcokeefe@postoffice.utas.edu.au</CODE></H2>v0.8, September 2000
+<P><HR>
+<EM>These are instructions for building a minimal linux system from source code.
+It used to be part of
+<A HREF="http://www.linuxdoc.org/HOWTO/From-PowerUp-To-Bash-Prompt-HOWTO.html">From PowerUp to Bash Prompt</A>
+but I've separated it to keep both documents short and focussed.
+The system we build here is <EM>very</EM> minimal, and not ready for
+real work. If you want to build a practical system from scratch, see
+Gerard Beekmans'
+<A HREF="http://www.linuxfromscratch.org">Linux From Scratch HOWTO</A> instead.</EM>
+<HR>
+<P>
+<H2><A NAME="toc1">1.</A> <A HREF="buildMin-1.html">What You Will Need</A></H2>
+
+<P>
+<H2><A NAME="toc2">2.</A> <A HREF="buildMin-2.html">The Filesystem</A></H2>
+
+<P>
+<H2><A NAME="toc3">3.</A> <A HREF="buildMin-3.html">MAKEDEV</A></H2>
+
+<P>
+<H2><A NAME="toc4">4.</A> <A HREF="buildMin-4.html">Kernel</A></H2>
+
+<P>
+<H2><A NAME="toc5">5.</A> <A HREF="buildMin-5.html">Lilo</A></H2>
+
+<P>
+<H2><A NAME="toc6">6.</A> <A HREF="buildMin-6.html">Glibc</A></H2>
+
+<P>
+<H2><A NAME="toc7">7.</A> <A HREF="buildMin-7.html">SysVinit </A></H2>
+
+<P>
+<H2><A NAME="toc8">8.</A> <A HREF="buildMin-8.html">Ncurses</A></H2>
+
+<P>
+<H2><A NAME="toc9">9.</A> <A HREF="buildMin-9.html">Bash</A></H2>
+
+<P>
+<H2><A NAME="toc10">10.</A> <A HREF="buildMin-10.html">Util-linux (getty and login)</A></H2>
+
+<P>
+<H2><A NAME="toc11">11.</A> <A HREF="buildMin-11.html">Sh-utils</A></H2>
+
+<P>
+<H2><A NAME="toc12">12.</A> <A HREF="buildMin-12.html">Towards Useability</A></H2>
+
+<P>
+<H2><A NAME="toc13">13.</A> <A HREF="buildMin-13.html">More Information</A></H2>
+
+<UL>
+<LI><A HREF="buildMin-13.html#ss13.1">13.1 Random Tips</A>
+<LI><A HREF="buildMin-13.html#ss13.2">13.2 Links</A>
+</UL>
+<P>
+<H2><A NAME="toc14">14.</A> <A HREF="buildMin-14.html">Administrivia</A></H2>
+
+<UL>
+<LI><A HREF="buildMin-14.html#ss14.1">14.1 Copyright</A>
+<LI><A HREF="buildMin-14.html#ss14.2">14.2 Homepage</A>
+<LI><A HREF="buildMin-14.html#ss14.3">14.3 Feedback</A>
+<LI><A HREF="buildMin-14.html#ss14.4">14.4 Acknowledgements</A>
+<LI><A HREF="buildMin-14.html#ss14.5">14.5 Change History</A>
+<LI><A HREF="buildMin-14.html#ss14.6">14.6 TODO</A>
+</UL>
+<HR>
+<A HREF="buildMin-1.html">Next</A>
+Previous
+Contents
+</BODY>
+</HTML>
diff --git a/doc/crosstool-howto.html b/doc/crosstool-howto.html
new file mode 100644
index 0000000..db44375
--- /dev/null
+++ b/doc/crosstool-howto.html
@@ -0,0 +1,634 @@
+<html>
+<head>
+<title>crosstool-howto</title>
+</head>
+<body>
+<h1>crosstool-howto</h1>
+Crosstool is a set of scripts to build and test several versions of gcc and glibc for
+most architectures supported by glibc.
+It will even download and patch the original tarballs for you.
+The resulting script and associated patches, and the latest version of this doc,
+are available at <a href="http://kegel.com/crosstool/">kegel.com/crosstool</a>.
+<p>
+Crosstool was originally developed for embedded system developers, but is also useful for mainstream developers who
+simply want their compiles to go fast or who need to build programs that
+run on older versions of Linux (e.g. Red Hat 6.2), but don't want to develop
+on those ancient systems.
+<p>
+It includes minimal patches for gcc and glibc needed to build a few combinations of
+(alpha, arm, i686, ia64, mips, powerpc, powerpc64, sh4, sparc, sparc64, s390, x86_64) x
+(gcc-2.95.3 ... gcc-4.0.0) x
+(glibc-2.1.3 ... glibc-2.3.5).
+<p>
+It also supports building toolchains that target Cygwin; see demo-cygwin.sh.
+<p>
+Crosstool is a portable shell script. You can use it to build linux-targeted compilers that run
+on Linux, Mac OS X, Solaris, and Cygwin. It includes support for creating hetrogenous build
+clusters; it lets you use virtually every computer in the building, regardless of operating
+system or CPU type, to speed up your Linux compiles.
+
+<h2>Contents</h2>
+<ul>
+<li><a href="#quick">Quick Start</a></li>
+<li><a href="#rpm">Building RPMs</a></li>
+<li><a href="#static">Static Builds</a></li>
+<li><a href="#distcc">Faster builds with distcc</a></li>
+<li><a href="#hetrogenous">Hetrogenous distcc clusters</a></li>
+<li><a href="#canadian">Canadian Cross Builds</a></li>
+<li><a href="#scripts">Scripts</a></li>
+<li><a href="#data">Data Files</a></li>
+<li><a href="#notes">Notes</a></li>
+<li><a href="#testing">Testing</a></li>
+<li><a href="#all">all.sh</a></li>
+<li><a href="#buildnotes">Build Platform Notes</a>
+<ul>
+<li><a href="#linux">Linux</a></li>
+<li><a href="#netbsd">NetBSD</a></li>
+<li><a href="#mac">Mac OS X</a></li>
+<li><a href="#cygwin">Cygwin</a></li>
+<li><a href="#solaris">Solaris</a></li>
+</ul></li>
+<li><a href="#targetnotes">Target Platform Notes</a>
+<ul>
+<li><a href="#mips">MIPS</a></li>
+<li><a href="#sh3">SH3</a></li>
+<li><a href="#sh4">SH4</a></li>
+<li><a href="#cris">CRIS</a></li>
+<li><a href="#arm-xscale">ARM-Xscale</a></li>
+<li><a href="#arm-iwmmxt">ARM-iwmmxt</a></li>
+</ul></li>
+<li><a href="#troubleshooting">Troubleshooting</a></li>
+<li><a href="#issues">Current Issues</a></li>
+<li><a href="#buildlogs">Build Status</a></li>
+<li><a href="#uclibc">uClibc</a></li>
+<li><a href="#contrib">Contributed Patches</a></li>
+<li><a href="#links">Links</a></li>
+</ul>
+
+<h2><a name="quick">Quick Start</a></h2>
+Download and unpack. For instance:
+<pre>
+wget http://kegel.com/crosstool/crosstool-0.42.tar.gz
+tar -xzvf crosstool-0.42.tar.gz
+cd crosstool-0.42
+</pre>
+Then look at the demo scripts; there's one for each supported CPU type.
+For instance, demo-i686.sh is an example of how to build a toolchain that targets
+the i686 processor. It sets three important variables:
+<pre>
+TARBALLS_DIR=$HOME/downloads # where it will save source tarballs
+RESULT_TOP=/opt/crosstool # where it will install the tools
+GCC_LANGUAGES="c,c++,java,f77" # which languages it will make compilers for
+</pre>
+It then builds gcc-3.4.0 and glibc-2.3.2 for i686 with the line
+<pre>
+ eval `cat i686.dat gcc-3.4.0-glibc-2.3.2.dat` sh all.sh --notest
+</pre>
+Edit the script if you want to change any of these settings or versions.
+Then (as root) create the directory /opt/crosstool and make it writable by you, and
+finally (as yourself) run the demo script, e.g.
+<pre>
+sudo mkdir /opt/crosstool
+sudo chown $USER /opt/crosstool
+sh demo-i686.sh
+</pre>
+When it finishes, you can run the new compiler as /opt/crosstool/gcc-3.4.0-glibc-2.3.2/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-gcc.
+(You might want to put /opt/crosstool/gcc-3.4.0-glibc-2.3.2/i686-unknown-linux-gnu/bin on your PATH; then you
+can run the compiler as i686-unknown-linux-gnu-gcc.)
+
+<h2><a name="static">Static Builds</a></h2>
+If for some reason you want the resulting toolchain binaries to
+be statically linked, set the following environment variables before
+running crosstool.sh (or all.sh):
+<pre>
+BINUTILS_EXTRA_CONFIG="LDFLAGS=-all-static"
+GCC_EXTRA_CONFIG="LDFLAGS=-static"
+</pre>
+
+<h2><a name=rpm>Building RPMs</a></h2>
+Building RPMs of the compiler used to be done by the same shell script, all.sh, with the --buildrpm option,
+but that was not enough to satisfy real Linux distributions, which require true .src.rpm's.
+So now the procedure to build an RPM is to first build the .src.rpm, then build the .rpm from
+that, using rpmbuild in the traditional way.
+<p>
+A script demonstrating how to build .src.rpm's is buildsrpms.sh.
+A script demonstrating how to build both .src.rpm's and .rpm's is buildrpms.sh.
+Both of these are only examples; I use them myself to build a specific set of toolchains.
+<p>
+Each .src.rpm generated by buildsrpms.sh builds toolchains
+for all supported CPUs, where 'supported' means 'the CPU is listed in the buildlogs directory as
+having successfully built a working toolchain'.
+This greatly cuts down on the number of .src.rpm's needed.
+To build for just e.g. i686, run rpmbuild with options "--without all --with i686".
+
+<h2><a name="distcc">Faster builds with distcc</a></h2>
+You can use <a href="http://distcc.samba.org">distcc</a> to distribute compilation across multiple computers for faster compiles.
+The distcc that comes with your version of Linux will work fine for most cases.
+However, it may be more convenient to instead use the script 'mkdistcc.sh'
+included with crosstool to install a crosstool-specific distcc
+(partly because that's what the mkdistcclinks.sh script assumes,
+and partly because it includes a patch that improves support for large hetrogenous clusters; see <a href="hetrogenous">below</a>).
+<p>
+To install distcc/distccd from source, run
+<pre>
+RESULT_TOP=/opt/crosstool \
+TARBALLS_DIR=$HOME/downloads \
+sh mkdistcc.sh
+cd /opt/crosstool
+sh common/bin/mkdistcclinks.sh
+</pre>
+To set up distccd as a service, run
+<pre>
+sudo sh /opt/crosstool/common/bin/install-distccd.sh
+</pre>
+<p>
+Regardless of how you installed crosstool-distcc, you then need to
+edit /opt/crosstool/common/etc/hosts and append the hostnames of all the computers running your distccd.
+<p>
+You can then run the distributed compiler as /opt/crosstool/gcc-3.3.3-glibc-2.3.2/i686-unknown-linux-gnu/<b>distributed</b>/bin/i686-unknown-linux-gnu-gcc.
+(You might want to put /opt/crosstool/gcc-3.3.3-glibc-2.3.2/i686-unknown-linux-gnu/<b>distributed</b>/bin on your PATH; then you
+can run the distributed compiler as i686-unknown-linux-gnu-gcc.)
+<p>
+To get any speed benefit, you'll need
+to run several compiles in parallel. See e.g. <a
+href="http://www.gnu.org/software/make/manual/html_chapter/make_5.html#SEC55">make's
+-j option</a>. Also note that only simple <b>compiling with the -c option</b>,
+not linking, is sped up, and that only C and C++
+compiles are distributed (fortran and java compiles are not distributed,
+sorry).
+<p>
+Getting the best performance out of distcc is a fine art.
+See e.g. Benjamin Meyer's page
+"<a href="http://www.csh.rit.edu/slashdot/distcc.html">Distcc optimizations and how to compile kdelibs from scratch in six minutes</a>".
+<p>
+You can monitor your distcc jobs by running
+<pre>
+/opt/crosstool/common/bin/distccmon-test 5
+</pre>
+This will display a description of your active remote jobs once every five seconds.
+
+<h2><a name="hetrogenous">Hetrogenous distcc clusters</a></h2>
+Here's a scenario sometimes useful at large universities or companies, where one often has a central file server which all clients access.
+Crosstool is built for multiple versions of gcc and glibc, once for kind of workstation in the cluster,
+and installed in e.g. /shared/crosstool/`config.guess`.
+Compilers are invoked via absolute paths so toolchains with different versions of glibc can be distinguished.
+The absolute path is built using config.guess so, regardless of which
+kind of workstation the developer is on, he or she can invoke a compiler that can run on their workstation.
+<p>
+For example, when building a C program for modern x86 linux, developers set
+<pre>
+CC=/shared/crosstool/`config.guess`/gcc-3.3.3-glibc-2.3.2/i686-unknown-linux-gnu/distributed/bin/i686-unknown-linux-gnu-gcc
+</pre>
+And when building a C program for old Red Hat Linux 6.2 x86, developers might set
+<pre>
+CC=/shared/crosstool/`config.guess`/gcc-3.3.3-glibc-2.1.3/i686-unknown-linux-gnu/distributed/bin/i686-unknown-linux-gnu-gcc
+</pre>
+<p>
+A tricky part of this scenario is that the distcc server needs to be able to handle absolute paths
+for *other* architectures, possibly installed at a different location.
+The patch patches/distcc-2.14/distcc-stringmap.patch, applied by mkdistcc.sh,
+adds a feature to the distccd server to read a $prefix/etc/distcc/apps file containing absolute paths
+to all known compilers, and to ignore all but the last N path components when locating the compiler to satisfy received compile requests.
+The distccd startup scripts created by crosstool's install-distccd.sh turn on that feature.
+<p>
+gcc-3.4.0's precompiled headers and profile-driven optimization features
+require lockstep synchronization, so they probably work only if the client and
+the server are the same CPU type and operating system. (And using pch with distcc may require
+apple's -fpch-preprocess patch; see http://gcc.gnu.org/ml/gcc/2003-03/msg00369.html)
+
+<h2><a name="canadian">Canadian Cross Builds</a></h2>
+Those long, strange names of the form "i686-unknown-linux-gnu" are called
+<a href="http://sources.redhat.com/autobook/autobook/autobook_17.html">GNU
+configuration names</a>. The GNU build and test scripts use these
+extensively. When you run the demo-$CPU.sh script, it sources
+the $CPU.dat file, which sets a variable TARGET containing the GNU configuration
+name for the target CPU. For instance, i686.dat contains the line
+<pre>
+TARGET=i686-unknown-linux-gnu
+</pre>
+In the general case, there can be three machine types: the <i>build</i> machine which builds the compilers,
+the <i>host</i> machine where the compilers will run, and the <i>target</i> machine
+for which the compilers will generate code.
+<p>
+Building compilers that will run on some <b>other</b> linux system
+is called a Canadian Cross. It's useful if, say, you're putting together
+a hetrogenous build cluster consisting of 32 bit and 64 bit workstations,
+and you want to run natively compiled compilers on each.
+<p>
+To do a Canadian Cross build with crosstool, you have to run it <b>three times</b>:
+<ol>
+<li>once to build a toolchain that runs on the build system and generates code for the host system
+<li>once to build a toolchain that runs on the build system and generates code for the target system
+<li>once to build a toolchain that runs on the host system and generates code for the target system
+</ol>
+The last two runs are identical except that on the last run, you have to set a few environment variables:
+<ul>
+<li>GCC_HOST should be the GNU configuration name (e.g. powerpc-750-linux-gnu) of the <i>host</i> machine
+<li>PATH must be set to include the bin directory of the host and target compilers that can run on the build machine
+<li>CC, AR, and RANLIB have to be set to a compiler that generates code that runs on the host,
+and versions of ar and ranlib that
+can handle archives of code for the host.
+</ul>
+demo-canadian.sh (when I finish it) will demonstrate how to get this working.
+<p>
+If you want the use resulting toolchain as a native toolchain, i.e.
+if you want it to search /lib and /usr/lib, you'll probably need to edit
+its specs file to set the cross_compiler parameter to 0;
+see <a href="http://sources.redhat.com/ml/crossgcc/2004-06/msg00161.html">this thread in the crossgcc mailing list</a>.
+
+<h2><a name=scripts>Scripts</a></h2>
+<ul>
+<li><tt>crosstool.sh</tt>: Compiles gcc and glibc. This is the most important file, and it can be used by itself,
+without any other files from the tarball, if you are so inclined.
+<li><tt>getandpatch.sh</tt>: Download, unpack, and patch the binutils, linux, gcc, and glibc source tarballs.
+<li><tt>crosstest.sh</tt>: Run the gcc and glibc regression tests remotely.
+<li><tt>ptx.sh</tt>: Build userland apps (e.g. /bin/sh) using <a href="http://ptxdist.sf.net">ptxdist</a>.
+<li><tt>testhello.sh</tt>: Verifies trivial programs can be built with the new compiler
+<li><tt>all.sh</tt>: Invoke all the above scripts. Supposedly more convenient that running them individually. (<a href="#all">See below.</a>)
+<li><tt>mkdistcc.sh</tt>: A script to download, build, and patch distcc.
+<li><tt>mkdistcclinks.sh</tt>: A script to create masquerade directories for each installed compiler to make using distcc easier.
+<li><tt>demo-CPU.sh</tt>: One demo script for each CPU type that sets environment variables for that CPU, then runs all.sh and mkdistcc.sh.
+<li><tt>demo.sh</tt>: Big demo script that runs all the little demo-CPU.sh scripts.
+<li><tt>clean.sh</tt>: remove junk files; used by maintainer before creating tarballs
+<li><tt>mkjail.sh</tt>: create the files needed for a chroot jail (useful when doing regression testing of glibc)
+<li><tt>testjail.sh</tt>: test a remote chroot jail
+</ul>
+
+<h2><a name=data>Data Files</a></h2>
+<ul>
+<li><tt>CPU.dat</tt>: One file for each CPU type; sets GNU target name
+<li><tt>gcc-VERSION-glibc-VERSION.dat</tt>: One file for each supported combination of gcc and glibc; sets binutils, gcc, and glibc versions and options
+<li><tt>patches/PROGRAM/*.patch</tt>: the patches I needed for each version of each program.
+The patches for each tool are stored in a subdirectory of <a href="../patches/">patches/</a>
+named after the tool (e.g. <a href="../patches/gcc-3.3/">patches/gcc-3.3</a>).
+Each patch starts with comments about what it's for, and has links to any associated discussion.
+This is a small but hopefully high quality and maintainable patch repository; newer versions of ptxdist use a mirror of this repository.
+<li><tt>summaries/*</tt>: example outputs from old crosstest.sh runs
+</ul>
+
+<h2><a name=notes>Notes</a></h2>
+If you want to build gcc-3.3 or later, you'll need a recent gcc (3.2 or later)
+on your workstation to build it with.
+<p>
+The scripts are fairly generic.
+You may need to tweak the parameters of the script to match your exact CPU type,
+or add a few patches needed to the patches/* directories, and run the build script again,
+if your tests indicate that programs built with the new compiler have problems.
+<p>
+In particular, if your CPU lacks an FPU, you might need to tell glibc that by setting
+before running all.sh. For example, see powerpc-405.dat, which sets
+<pre>
+GLIBC_EXTRA_CONFIG="--without-fp"
+</pre>
+<p>
+Once you trust the toolchain can build and run simple statically linked 'hello, world' programs
+(see e.g. testhello.sh), test it with real applications.
+<p>
+If you use these scripts to build a toolchain, please send a note to the
+<a href="http://sources.redhat.com/ml/crossgcc/">crossgcc mailing list</a>
+indicating which platform you used it on, and
+how well it worked for you. Please be sure to mention which release of the crosstool
+scripts you used.
+<p>
+If you add support for a new CPU type, please send your changes to the crossgcc mailing
+list so they can be incorporated in a future release.
+
+<h2><a name=testing>Testing</a></h2>
+If you're targeting i686-linux, and are using a released version of gcc
+and glibc, you probably don't need to worry about testing the toolchain.
+<p>
+But if you're using a new or uncommon CPU type, or an unreleased version
+of gcc or glibc, and want some assurance that you have built a working
+compiler and C library, you should run the gcc and glibc test suites.
+See <a href="crosstest-howto.html">crosstest-howto.html</a>.
+
+<h2><a name=all>all.sh</a></h2>
+all.sh invokes the four scripts that download, build, and test the toolchain.
+It takes four options:
+<ul>
+<li>--nounpack, which means 'don't run getandbuild.sh'. This is useful for quick reruns or when just testing.
+<li>--nobuild, which means 'don't run crosstool.sh'. This is useful for when you just want to run regression tests.
+<li>--builduserland, which means 'run ptx.sh'. This is useful for when you need to build busybox for some reason,
+e.g. if you want to run the regression tests, but the target's normal shell can't run against the new shared C libraries.
+<li>--notest, which means 'don't run crosstest.sh'. This is useful for when you don't have a target to test on,
+or don't want to spend the time to test. See <a href="crosstest-howto.html">crosstest-howto.html</a> for information about running the test suite.
+</ul>
+
+<h2><a name="buildnotes">Build Platform Notes</a></h2>
+
+<h3><a name="linux">Linux</a></h3>
+Crosstool was developed on Linux, so most of the rough edges have been polished off.
+However, if running crosstool.sh on Linux fails with an error like
+<pre>
+"soinit.c:25: internal compiler error: in named_section_flags, at varasm.c:..."
+</pre>
+then you may be running into gcc bug <a href="http://gcc.gnu.org/PR9552">9552</a>.
+One workaround is to delete the file gcc-pr-9552-workaround.patch
+from crosstool/patches/glibc-2.3.2, and rerun. Another is to switch
+to a different version of binutils (2.14 seems to be the dividing line).
+
+<h3><a name=netbsd>NetBSD</a></h3>
+You'll need to install GNU Diffutils or GNU Patch, since BSD's patch utility
+doesn't accept the --fuzz parameter.
+
+<h3><a name=mac>Mac OS X</a></h3>
+To build gcc and glibc on Mac OS X, you'll need to install a few gnu utilities:
+<ul>
+<li>gnu wget
+<li>gnu awk
+<li>gnu sed
+<li>gnu install (part of gnu coreutils)
+</ul>
+such that they are used instead of the native versions. (This may involve
+setting PATH and/or making symbolic links.)
+<p>
+The way I installed them was using <a href="http://fink.sourceforge.net/">fink</a>,
+but <a href="http://darwinports.opendarwin.org/">DarwinPorts</a>
+or installing from tarballs would probably do as well.
+<p>
+One recurring problem is that various Gnu configure scripts assume that
+'as' and 'ld' are the Gnu versions, run them with -v to get the
+version number, and compare it with some gnu version.
+That doesn't work well on the Mac. You can either hack the
+configure scripts to not do that, or write wrapper scripts for
+as and ld. For instance, here's a wrapper script for as that
+blatantly lies about what version it is, just to make crosstool happy:
+<pre>
+ test "$1" = -v && echo GNU assembler 2.13 || /usr/bin/as "$@"
+</pre>
+Nikolaus Schaller tied all the above into a tidy script; see his
+<a href="http://sourceware.org/ml/crossgcc/2006-02/msg00272/build.sh">build.sh</a>
+which both downloads the needed tools and creates the wrappers for as and ld.
+
+<p>
+On some (older?) versions of Mac OS X, you'll need to raise the stack size with the command
+<pre>ulimit -s 8192</pre>
+else make may segfault.
+
+<p>
+When using 2.6 kernel headers on systems (like Mac OS X) where gcc doesn't support the
+-shared flag, you may see the error
+<pre>
+gcc: unrecognized option `-shared'
+ld: Undefined symbols:
+_main
+make[1]: *** [scripts/kconfig/libkconfig.so] Error 1
+make: *** [oldconfig] Error 2
+</pre>
+
+This is a well-known issue (see e.g.
+<a href="http://www.uwsg.iu.edu/hypermail/linux/kernel/0211.0/2145.html">Peter Samuelson's post of 7 Nov 2002</a>
+Bertrand Marquis a patch that might help
+<a href="http://sources.redhat.com/ml/crossgcc/2004-06/msg00282.html">on 29 June 2004</a>.
+It would be nice if someone figured out a patch
+that could go into the mainline kernel sources to deal with this issue.
+<p>
+Another problem building Linux on Mac OS X is described, together with a Mac OS X specific workaround, by
+<a href="http://sources.redhat.com/ml/crossgcc/2004-05/msg00182.html">Martin Schaffner's post of 22 May 2004</a>.
+
+<h3><a name=cygwin>Cygwin</a></h3>
+Crosstool, and probably gcc and glibc's configure scripts, assume that
+directory names <b>do not</b> contain any spaces.
+This is often violated on Windows. Please take care to not use
+directory names with spaces in them when running crosstool.
+It might work, but if it doesn't, you've been warned.
+(Same goes for Mac OS X.)
+<p>
+crosstool creates some really deeply nested directories while building,
+so filenames are quite long. This has two consequences:
+<p>
+First, on some versions of Windows, filenames (including directory) can't
+be longer than 240 chars. To avoid exceeding this limit, don't run crosstool in
+a directory with a long name.
+<p>
+Second, the maximum length of commandlines is extremely short.
+Since crosstool uses commandlines that include multiple filenames,
+they can exceed the limit very quickly.
+You can avoid this problem by using the "mount" command's options.
+e.g. mount /bin and /usr/bin with -X or "-o cygexec" (see <a href="http://www.cygwin.com/faq/faq-nochunks.html#faq.programming.make-execvp">the cygwin faq</a>,
+and/or mount the crosstool directory with "-o managed" (see <a href="http://www.cygwin.com/cygwin-ug-net/using-utils.html#mount">the cygwin doc for "mount"</a>).
+<p>
+Also, this isn't really a crosstool problem, but configuring linux-2.6 on cygwin may fail with the error
+<pre>
+$ make menuconfig
+ HOSTCC scripts/basic/fixdep
+ HOSTCC scripts/basic/split-include
+ HOSTCC scripts/basic/docproc
+ HOSTLD scripts/kconfig/mconf
+collect2: ld terminated with signal 11 [Segmentation fault], core dumped
+</pre>
+A possible fix described e.g.
+<a href="http://sources.redhat.com/ml/crossgcc/2004-06/msg00282.html">by Bertrand Marquis' post of 29 June 2004</a>
+is to patch linux-2.6/scripts/kconfig/Makefile to just use libkconfig.o rather than first making a .so.
+<p>
+<a href="http://www.cygwin.com/ml/cygwin/2004-03/msg01006.html">Cygwin-1.5.9-1 had a bug that prevents it from building glibc</a>.
+You can work around this by updating to Cygwin-1.5.10-2.
+
+<h3><a name=solaris>Solaris Build Considerations</a></h3>
+Crosstool ought to build on Solaris as long as it has been updated with
+the appropriate set of GNU tools, but this has not been tested.
+<p>
+binutils-2.15 may require <a href="http://sources.redhat.com/ml/binutils/2004-06/msg00114.html">this patch</a>
+to work on Solaris, else it is said to segfault when building the Linux kernel.
+<p>
+glibc documents which GNU tools it requires in <a href="http://www.gnu.org/software/libc/manual/html_node/Tools-for-Compilation.html">its INSTALL file</a>.
+The list is roughly: make 3.79, GCC 3.2, binutils 2.13, texinfo 3.12f, awk 3.0, sed 3.02, or newer.
+gcc documents a few other requirements in <a href="http://gcc.gnu.org/install/specific.html#*-*-solaris2*">gcc.gnu.org/install/specific.html</a>, which
+says that gcc won't build at all with the default solaris shell, and
+you're supposed to work around it like this:
+<pre>
+% CONFIG_SHELL=/bin/ksh
+% export CONFIG_SHELL
+</pre>
+before running crosstool.
+<p>
+That page also advises that you may need to install some Solaris patches,
+and install gcc-3.2.3 or newer before trying to build newer versions of gcc.
+
+<h2><a name="targetnotes">Target Platform Notes</a></h2>
+<h3><a name=mips>MIPS</a></h3>
+<p>Little-endian MIPS
+<p>
+To create a toolchain for the Linksys wrt54g, select glibc-2.2.3.
+See <a href="http://seattlewireless.net/index.cgi/LinksysWrt54g">LinksysWrt54g</a>
+ <a href="http://www.batbox.org/wrt54g-linux.html">wrt54g-linux.html</a>
+<p>
+Note: recent wrt54g firmware uses uclibc, which behaves like a subsetted glibc.
+There are patches to build uclibc toolchains in the contrib directory,
+but they're not integrated yet. However, you can still use a glibc
+toolchain; you'll either have to
+<ul>
+ <li> not call the missing functions,</li>
+ <li> use a stub library like
+ <a href="http://www.xse.com/leres/tivo/downloads/libtivohack/">libtivohack</a></li>
+ <li> link your programs statically if you want them to run on the
+ wrt54g.</li>
+</ul>
+
+<h3><a name=sh3>SH3</a></h3>
+<p>
+SH3 support is untested... it is said to build, and "hello, world" works,
+but that's all I've heard.
+<p>FIXME: The SH3 is supposedly the same as an SH4
+but without the floating point unit, so maybe glibc has to be built
+--without-fp. See powerpc-405.dat and
+<a href="http://www.gnu.org/software/libc/manual/html_node/Configuring-and-compiling.html#Configuring%20and%20compiling">Configuring and compiling GNU Libc</a>
+
+<h3><a name=sh4>SH4</a></h3>
+<p>
+Note:
+<ul>
+ <li>binutils < 2.13 doesn't know about SH4, so don't try building
+ gcc-2.95.</li>
+ <li>gcc-3.2.3 has ICE compiling glibc for SH4 (<a href="http://gcc.gnu.org/PR6954">PR6954</a>), so
+don't try building gcc-3.2.3.</li>
+</ul>
+
+<h3><a name=cris>CRIS</a></h3>
+<p>
+CRIS doesn't build with glibc-2.3.2;
+fails with "errno-loc.c:39: error: `pthread_descr' undeclared" in glibc build.
+The cris glibc maintainer is aware of the problem and hopes to fix this later
+in 2004, but we don't know if this has been done.
+
+<p>
+We removed cris support, demo-cris.sh, from crosstool. If you need it, you may find it in the
+previous version of crosstool.
+<h3><a name=arm-xscale>ARM-Xscale</a></h3>
+<p>
+gcc-3.3 doesn't support this, need gcc-3.4 or later.
+
+<h3><a name=arm-iwmmxt>ARM-iwmmxt</a></h3>
+<p>
+gcc-3.3 doesn't support this, need gcc-3.4 or later.
+
+
+
+<h2><a name="troubleshooting">Troubleshooting</a></h2>
+
+<h3>Download Problems</h3>
+all.sh calls getandpatch.sh, which looks in the directory specified by
+TARBALLS_DIR for source tarballs, and downloads them to there if not found.
+<p>
+If the download hangs, and you need to use a proxy,
+try telling wget about your proxy before running all.sh by doing
+<pre>
+$ export http_proxy=&lt;proxy_host&gt;:&lt;port&gt;
+</pre>
+If the download still hangs, download the tarball that's causing the hang manually to
+the directory specified by TARBALLS_DIR.
+
+
+<h2><a name=issues>Current Issues</a></h2>
+<ul>
+<li>all.sh's --builduserland seems to be broken at the moment.
+<li>NPTL is not yet supported.
+<li>These scripts, unlike Bill Gatliff's original crossgcc scripts,
+don't support bare metal newlib targets. They should, but I needed to
+focus on targeting Linux first. See contrib/newlib for a user-contributed fix.
+<li>These scripts don't support uClibc yet, but <a href="#uclibc">see below</a>.
+<li>The hppa target is not yet supported.
+<li>glibc-2.3.2 doesn't build for cris; <a href="http://sources.redhat.com/ml/libc-alpha/2003-01/msg00008.html">looks
+like the maintainer needs to create a sysdep-cancel.h for cris</a>.
+I no longer try cris, since it seems to be unmaintained.
+</ul>
+See the <a href="../ChangeLog">ChangeLog</a> for more issues.
+
+<h2><a name=buildlogs>Build Status</a></h2>
+The script regtest-run.sh tries to build a number of combinations of gcc, glibc, and CPU,
+and saves the last hundred or so lines of the build log in the file <a href="../buildlogs/">buildlogs</a>$cpu-$gcc-$glibc.log.txt,
+along with a summary of the build in the file <a href="../buildlogs/">buildlogs</a>$cpu-$gcc-$glibc.dat.txt.
+The script regtest-report.sh creates the file <a href="../buildlogs/index.html">buildlogs/$version/index.html</a> summarizing the results.
+Note: this reflects whether the toolchains could be <i>built</i>, not whether they <i>work</i>!
+Also note: running regtest-run.sh takes a LOT of cpu power, so
+it uses ssh to spawn build jobs on multiple machines. Read the script carefully before running it.
+
+<h2><a name=contrib>Contributed Patches</a></h2>
+A few users of the crosstool scripts have submitted patches. I'm
+saving these in the 'contrib' directory until I have time to test them.
+<ul>
+<li> testsetup - my scripts which are handy when running test suite remotely
+<li> newlib, newlib2 - scripts to build newlib toolchains
+<li> crosstool-uclibc-0.28-rc5.patch to build uclibc toolchains (see <a href="#uclibc">below</a>)
+<li> contrib/xtool-ro.patch lets you run with sources in a read-only directory.
+</ul>
+
+<h2><a name=uclibc>uClibc</a></h2>
+The script contrib/demo-uclibc.sh demonstrates how to patch an older version
+of crosstool to support uclibc. This script, with editing,
+can be used to build ARM7, PPC405, and maybe MIPS uclibc toolchains.
+A future version of crosstool will merge the patch.
+
+<h2><a name=links>Links</a></h2>
+Patch repositories (handy if you are looking for a fix to a specific problem):
+<ul>
+<li><a href="http://ftp.jg555.com/patches/raq2/">Jim Gifford's MIPS / Raq2 patches</a>
+<li><a href="http://www.andric.com/cross/patches">Dmitry Andric's ARM / vfp patches</a>
+<li><a href="http://cvs.debian.org/glibc-package/debian/patches/?cvsroot=glibc">Debian's glibc patch repository</a>
+<li><a href="http://www.pengutronix.de/software/ptxdist/patches-0.5.2/">PTXdist-0.5.2's patch repository</a>
+<li><a href="http://cvs.mandrakesoft.com/cgi-bin/cvsweb.cgi/SPECS/gcc/">Mandrake's gcc patch archive</a>
+<li><a href="http://www.gentoo.org/cgi-bin/viewcvs.cgi/sys-devel/gcc/">gentoo's gcc build scripts</a>
+<li><a href="http://www.gentoo.org/cgi-bin/viewcvs.cgi/sys-libs/glibc/">gentoo's glibc build scripts</a>
+</ul>
+There are many good general references for people building crosscompilers. Here is a somewhat outdated set:
+<ul>
+<li>Bill Gatliff's <a href="http://crossgcc.billgatliff.com/build-crossgcc.sh">crossgcc build script</a>
+<li>Bill's <a href="http://billgatliff.com/twiki/bin/view/Crossgcc/ToolSetup">Crossgcc Wiki</a>
+<li>Karim Yaghmour's book <a href="http://www.oreilly.com/catalog/belinuxsys/">Building Embedded Linux Systems</a>
+<li>Karim Yaghmour's web site <a href="http://www.embeddedtux.org/">embeddedtux.org</a> and his
+<a href="http://www.embeddedtux.org/gnu-tools.html">matrix of known working toolchain combinations</a>
+<li><a href="http://www.embeddedlinuxinterfacing.com/sourcecode.shtml">Scripts from "Embedded Linux: Hardware, Software and Interfacing"</a>, by Dr. Craig Hollabaugh
+<li>the <a href="http://sources.redhat.com/ml/crossgcc/">crossgcc mailing list</a>
+<li><a href="http://buildroot.uclibc.org/">buildroot</a> - a cool build-from-scratch embedded distro by Erik Andersen.
+<li><a href="http://www.pengutronix.de/software/ptxdist_en.html">PTXdist</a> - Another cool crossbuild-from-scratch embedded distro by Pengutronix/Robert Schwebel; uses a gui config menu
+<li><a href="http://lug-owl.de/~jbglaw/linux-ports/#EasilyBuildableCrossToolchains">Proposal: Merging all Outstanding Linux Ports to Linus</a>, by Jan-Benedict Glaw
+<li><a href="http://sed.inf.u-szeged.hu/gcc-arm/">GCC ARM pages at the University of Szeged</a> - very high quality resource;
+impressive <a href="http://sed.inf.u-szeged.hu/gcc-arm/gnats.php">"ARM related GCC Bugzilla Problem Reports"</a>
+and <a href="http://sed.inf.u-szeged.hu/gcc-arm/prs.php">"Results, Problem Reports and Patches"</a> pages.
+<li><a href="ftp://ftp.linuxppc64.org/pub/people/janis/">Janis Johnson's powerpc64 biarch build script</a> - based on crosstool,
+but supports biarch for powerppc32/64!
+<li><a href="http://www.arm.linux.org.uk/developer/">ARM Linux Developer</a> pages - kernel stuff mostly
+<li><a href="http://www.ltc.com/~brad/mips/mips-cross-toolchain.html">Building a Modern MIPS Cross-Toolchain for Linux</a>, by
+Bradley D. LaRonde
+<li><a href="http://www.develer.com/uclinux/uclinux-elf-tools.html">GCC 3.3 toolchain for uClinux ColdFire platforms</a> by Bernardo Innocenti
+<li><a href="ftp://ftp.fairwayacademy.org/pub/armlinux/toolchain/">Jeff Sutherland's gcc-3.3 toolchain for xscale</a>
+<li><a href="http://sourceforge.net/projects/gnude">gnude - gnu development environment</a>,
+currently an arm/newlib cross toolchain compiled for Windows, but aiming to do more
+<li>
+My <a href="http://kegel.com/xgcc3">older cross compiler stuff</a> is still
+online. This is where I documented the patches needed to run on ppc405;
+these patches are included in my glibc-2.2.5/gcc-3.2.3 patches collection,
+and some of them have made it in to gcc-3.3.
+</ul>
+
+Here are a few posts about which combinations of versions work:
+<ul>
+<li><a href="../buildlogs/index.html">crosstool's build results</a> - yeah, I linked to them above, but they bear repeating
+<li><a href="http://sources.redhat.com/ml/crossgcc/2004-05/msg00036.html">host cygwin, target ARM</a> - scroll down to matrix at bottom
+</ul>
+
+Related Mailing lists (corrections welcome):
+<ul>
+<li>General: <a href="http://sources.redhat.com/ml/crossgcc/">crossgcc</a> (for crosstool), and
+ <a href="http://www.embeddedtux.org/mlist.html">embeddedtux</a> (for do-it-yourselfers who don't use a canned script like crosstool)
+<li>Alpha: <a href="https://www.redhat.com/mailman/listinfo/axp-list">axp-list</a>
+<li>ARM: <a href="http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-toolchain">linux-arm-toolchain</a>
+<li>HPPA: <a href="http://www.parisc-linux.org/mailing-lists/">parisc-linux</a>
+<li>MIPS: <a href="http://www.linux-mips.org/wiki/Net_Resources#Mailing_lists">linux-mips</a>
+<li>PowerPC: <a href="http://lists.linuxppc.org/linuxppc-embedded/">linuxppc-embedded</a>,
+<a href="http://ozlabs.org/pipermail/linuxppc-dev/">linuxppc-dev</a>
+<li>PowerPC64: <a href="http://ozlabs.org/pipermail/linuxppc64-dev/">linuxppc64-dev</a>
+<li>SH: <a href="http://tsukuba.m17n.org/linux-sh/ml/linux-sh/">linux-sh</a>, <a href="http://sourceforge.net/mailarchive/forum.php?forum=linuxsh-dev">linuxsh-dev</a>
+<li>S/390: <a href="http://www2.marist.edu/htbin/wlvindex?linux-390">linux-390</a>
+<li>sparc: <a href="http://vger.kernel.org/vger-lists.html#sparclinux">sparclinux</a>
+<li>x86_64: <a href="http://www.x86-64.org/mailinglists">discuss@x86-64.org</a>
+</ul>
+
+<p>
+<hr>
+Portions copyright 2003, <a href="http://ixiacom.com">Ixia Communications</a><br>
+Portions copyright 2003, 2004, 2005 <a href="http://google.com">Google</a><br>
+Released under the GPL.<br>
+Last revision 2 Mar 2006 by dank@kegel.com
+</body>
+</html>
diff --git a/doc/embedded_lfs.odp b/doc/embedded_lfs.odp
new file mode 100644
index 0000000..f0a26b2
--- /dev/null
+++ b/doc/embedded_lfs.odp
Binary files differ
diff --git a/doc/qemu_to_vmware_image.html b/doc/qemu_to_vmware_image.html
new file mode 100644
index 0000000..cddc642
--- /dev/null
+++ b/doc/qemu_to_vmware_image.html
@@ -0,0 +1,1198 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+ <title>VMware Communities: Authorization Service not running. ...</title>
+ <meta name="verify-v1" content="eoUrVi9OhO63EBpr0vAJ4BEGFTqGYvhRaIXvXtNirF0=" />
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <meta http-equiv="Content-Language" content="en-us" />
+ <meta name="keywords" content=""/>
+
+ <link rel="search"
+ href="/opensearch.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+ title="VMware Communities"
+ type="application/opensearchdescription+xml"/>
+
+ <link rel="shortcut icon" href="http://www.vmware.com/favicon.ico" />
+ <link rel="icon" type="image/png" href="http://www.vmware.com/favicon.ico" />
+
+ <style type="text/css" media="screen">
+ @import "/styles/jive-global.css;jsessionid=CF308B7BAA7CCE19537B9479BCF18143";
+ @import "/styles/jive-userbar.css;jsessionid=CF308B7BAA7CCE19537B9479BCF18143";
+ @import "/styles/jive-sidebar.css;jsessionid=CF308B7BAA7CCE19537B9479BCF18143";
+ </style>
+
+ <!-- VMware-->
+ <link rel="stylesheet" type="text/css" href="http://www.vmware.com/files/templates/inc/template.css" />
+ <link rel="stylesheet" type="text/css" href="http://www.vmware.com/files/templates/inc/fce.css" />
+ <!--<link rel="stylesheet" type="text/css" href="http://www.vmware.com/files/templates/inc/print.css" media="print" />
+ <script type="text/javascript" src="http://www.vmware.com/files/templates/inc/library.js"></script>-->
+ <script type="text/javascript">
+ commNav = function() {
+ var navRoot = document.getElementById("comm-primary-navigation");
+ var lis = navRoot.getElementsByTagName("li");
+ for (var i=0; i<lis.length; i++)
+ {
+ var drops = lis[i].getElementsByTagName("ul");
+ if (drops.length)
+ {
+ lis[i].onmouseover = function()
+ {
+ this.className += " hover";
+ }
+ lis[i].onmouseout = function()
+ {
+ this.className = this.className.replace("hover", "");
+ }
+ }
+ }
+ }
+
+ if (window.addEventListener){
+ window.addEventListener("load", commNav, false);
+ }
+ else if (window.attachEvent){
+ window.attachEvent("onload", commNav);
+ }
+ </script>
+ <script type="text/javascript">
+ <!--
+ function searchcommunities_clear() {
+
+ if (document.formsearchcommunities.q.value == "Search Community") {
+ document.formsearchcommunities.q.value = "";
+ }
+
+ }
+ -->
+ </script>
+ <!-- VMware -->
+
+
+ <style type="text/css" media="screen">
+ @import "/styles/jive-thread.css;jsessionid=CF308B7BAA7CCE19537B9479BCF18143";
+ </style>
+
+ <link rel="alternate" type="application/rss+xml"
+ title=" VMware ACE Discussion Threads Feed"
+ href="/community/feeds/threads;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?communityID=2345">
+
+ <link rel="alternate" type="application/rss+xml"
+ title="Messages in 'Authorization Service not running.' Thread Feed"
+ href="/community/feeds/messages;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?threadID=88396">
+
+ <!-- styles for editions here -->
+ <style type="text/css">
+ @import "/styles/jive-external.css;jsessionid=CF308B7BAA7CCE19537B9479BCF18143";
+ </style>
+
+ <!-- including the file rather than pasting the style sheet -->
+ <style type="text/css">
+ @import "/styles/community.css;jsessionid=CF308B7BAA7CCE19537B9479BCF18143";
+ </style>
+ <style type="text/css" media="print">
+ @import "/styles/vmware-print.css;jsessionid=CF308B7BAA7CCE19537B9479BCF18143";
+ </style>
+ <!--[if lt IE 7]><link rel="stylesheet" type="text/css" href="/styles/ie6.css;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" media="screen"/><![endif]-->
+ <script type="text/javascript">if (!_jive_base_url) { var _jive_base_url = "http://communities.vmware.com";}</script>
+
+
+ <script type="text/javascript" language="JavaScript"
+ src="/resources/merge|global|;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"></script>
+
+
+
+
+</head>
+<body>
+ <!-- BEGIN header -->
+ <div id="cheader">
+ <span id="top_left"></span>
+ <span id="top-of-page">
+ <div id="iglobal-sites"></div>
+<script type="text/javascript">
+function changeLoginLink()
+{
+ var vmwarestoreloginstr = document.getElementById('vmwarestorelogin').href;
+ var matchPos = vmwarestoreloginstr.search('.jspa#');
+ if(matchPos == -1) {
+ var origUrl = document.getElementById('vmwarestorelogin').href;
+ document.getElementById('vmwarestorelogin').href=origUrl+"?followingPage=" + window.location.href;
+ }
+}
+
+function changeLogoutLink()
+{
+ var vmwarestorelogoutstr = document.getElementById('vmwarestorelogout').href;
+ var origUrl = document.getElementById('vmwarestorelogout').href;
+ document.getElementById('vmwarestorelogout').href=origUrl+"?followingPage=" + window.location.href;
+}
+function changeLink(id)
+{
+ var origUrl = document.getElementById(id).href;
+ document.getElementById(id).href=origUrl+"&followingPage=" + window.location.href;
+}
+</script>
+
+<div id="jive-userbar">
+
+
+
+
+ <ul id="comm-primary-navigation">
+ <li>
+
+ <form action="/login.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" method="post" name="loginform">
+ <input type="hidden" name="successURL" value="/thread/88396?tstart=0&start=15"/>
+ <input type="hidden" name="cancelURL" value="/thread/88396?tstart=0&start=15"/>
+
+ <span class="jive-userbar-login-welcome" id="jiveLoginWelcome">
+ <span class="jive-userbar-login-guest" style="display: none;">
+ Welcome,
+ Guest
+ </span>
+
+
+ <span class="jive-userbar-login-loginlink">
+ <a id='vmwarestorelogin' href=http://www.vmware.com/vmwarestore/newstore/community_login.jsp onclick=changeLoginLink() accesskey="L"><u>L</u>ogin</a>
+ </span>
+ <span class="jive-userbar-login-new">
+ <a id='vmwarestoreregister' href=http://www.vmware.com/vmwarestore/newstore/register.jsp?status=new&amp;isFromCommunity=true onclick=changeLink('vmwarestoreregister')
+ accesskey="R"><u>R</u>egister</a>
+ </span>
+ </span>
+
+ <span class="jive-userbar-login-form" id="jiveLoginForm" style="display: none;">
+
+ <span class="jive-userbar-login-username">
+ <label for="login-username">
+
+Email Address:
+ </label>
+ <input type="text" name="username" size="20" maxlength="150" value="" tabindex="1" id="login-username">
+ </span>
+
+ <span class="jive-userbar-login-password">
+ <label for="login-password">
+Password: </label>
+ <a href="emailPasswordToken!input.jspa" title="I forgot my password ">(?)</a>
+ <input type="password" name="password" size="20" maxlength="150" value="" tabindex="2" id="login-password">
+ </span>
+
+ <span class="jive-userbar-login-auto">
+ <input type="checkbox" name="autoLogin" id="login-auto" value="true" tabindex="3">
+ <label for="login-auto">Remember Me</label>
+ </span>
+
+ <span class="jive-userbar-login-submit">
+ <input type="submit" name="login" value="Login" tabindex="4" class="jive-login-button">
+ <input type="reset" name="doCancel" value="Cancel" tabindex="5" class="jive-cancel-button" onclick="jivetoggleLogin();">
+ </span>
+
+ </span>
+
+ </form>
+
+ </li></ul>
+ <ul id="site-tools">
+ <li id="jive-userbar-print"><a href="#" title="Click to print page" accesskey="P" onfocus="jiveprint();return false;"><img src="/images/jive-icon-print-12x12.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?tstart=0&amp;start=15" border="0"> </a></li>
+ </ul>
+ <!-- Print -->
+ <script type="text/javascript">
+ function jiveprint() {
+ var loc = location.href;
+ var end = '';
+ if (loc.indexOf("#") != -1) {
+ end = loc.substring(loc.indexOf("#"));
+ loc = loc.substring(0, loc.indexOf("#"));
+ }
+
+ if (loc.indexOf('?') == -1) {
+ loc += '?decorator=print';
+ }
+ else {
+ loc += '&decorator=print';
+ }
+
+ location.href = loc + end;
+ }
+ </script>
+ <!-- END print -->
+
+
+</div>
+
+
+ <div id="ilanguage"></div>
+ <div id="isearch-form"></div>
+ <!-- BEGIN 'SEARCH' -->
+ <div id="jive-userbar-search">
+ <form action="/search.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" method="get" name="formsearchcommunities">
+ <input type="hidden" name="resultTypes" value="BLOG_POST"/>
+ <input type="hidden" name="resultTypes" value="DOCUMENT"/>
+ <input type="hidden" name="resultTypes" value="MESSAGE"/>
+ <input type="hidden" name="resultTypes" value="BLOG"/>
+ <input type="hidden" name="resultTypes" value="COMMUNITY"/>
+ <input type="hidden" name="peopleEnabled" value="true"/>
+ <input type="hidden" name="communityID" value="2345"/>
+ <input type="text" id="jive-query" name="q" value="Search Community" class="jive-userbar-search-field" onclick="javascript:searchcommunities_clear();"/>
+ <button type="submit" value="Search" class="jive-userbar-search-button">Search</button>
+ <a href="#" onfocus="$('jive-query').focus(); return false;" accesskey="S"></a>
+ </form>
+ </div>
+ <!-- END 'SEARCH' -->
+ </span>
+ <span id="top_right"></span>
+ </div>
+ <!-- END header -->
+ <!-- BEGIN breadcrumb -->
+ <div id="jive-breadcrumb-custom">
+
+
+ <span>
+
+
+
+ <a href="/index.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143">VMware Communities</a> &gt;
+
+ <a href="/community/vmtn;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+ >VMTN</a> &gt;
+
+ <a href="/community/vmtn/desktop;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+ >Desktop</a> &gt;
+
+ <a href="/community/vmtn/desktop/ace;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+ >VMware ACE</a> &gt;
+
+
+
+ <a class='jive-breadcrumb-last' href="/community/vmtn/desktop/ace;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?view=discussions">Discussions</a></span>
+ </div>
+ <!-- END breadcrumb -->
+
+<!-- BEGIN page 'wrapper' -->
+<div id="jive-wrapper">
+
+
+
+
+ <!-- BEGIN body area -->
+ <div id="jive-body">
+
+
+ <!-- BEGIN body wrapper (for additional background elements) -->
+ <div id="jive-body-wrapper">
+
+ <!-- BEGIN header & intro -->
+<div id="jive-body-intro">
+
+ <div id="jive-body-intro-content">
+
+ <span class="jive-pagination" style="margin-top:-5px">
+ <span class="jive-pagination-prevnext">
+ <a class="jive-pagination-prev" href="/thread/119428;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?tstart=-1">Previous</a>
+ <a href="/thread/118274;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?tstart=1" class="jive-pagination-next">Next</a>
+ </span>
+ </span>
+
+ <a href="/community/vmtn/desktop/ace;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?view=discussions" class="jive-link-more">Up to Discussions in&nbsp;VMware ACE</a>
+
+ </div>
+</div>
+<!-- END header & intro -->
+
+
+<!-- BEGIN main body -->
+<div id="jive-body-main">
+
+ <table width="100%" border="0">
+ <tr>
+ <td width="210" valign="top">
+
+ <!-- BEGIN sidebar column container -->
+ <div id="jive-body-sidebarcol-container">
+ <!-- BEGIN sidebar column -->
+ <div id="jive-body-sidebarcol">
+
+ <!-- BEGIN sidebar box 'ACTIONS' -->
+ <div id="toolbox">
+ <div class="inner">
+ <strong class="head">Actions</strong>
+ <script type="text/javascript">
+ function createDocFromThread() {
+ document.location = '/thread-to-doc.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?threadID=88396';
+ }
+ </script>
+ <ul>
+ </ul>
+ </div>
+ </div>
+ <div class="jive-sidebar" style="display:none;">
+ <div class="jive-sidebar-body jive-sidebar-body-actions">
+ <h4>Actions</h4>
+
+ <script type="text/javascript">
+ function createDocFromThread() {
+ document.location = '/thread-to-doc.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?threadID=88396';
+ }
+ </script>
+
+ <ul>
+ </ul>
+ </div>
+ </div>
+ <!-- END sidebar box 'ACTIONS' -->
+
+
+
+
+
+
+
+
+
+
+
+ </div>
+ <!-- END sidebar column -->
+ </div>
+ <!-- END sidebar column container -->
+ </td>
+ <td valign="top">
+ <!-- BEGIN main body column -->
+ <div id="jive-body-maincol-container-threads">
+ <div id="jive-body-maincol-threads">
+
+
+
+
+ <div id="thread.watch.notify" class="jive-info-box" style="display:none"></div>
+
+
+
+
+ <!-- BEGIN answer bar -->
+ <div id="jive-answer-bar">
+ <div>
+ <h4>This Question is
+ <span class="jive-answer-possiblyanswered">Possibly Answered</span>
+ </h4>
+ <span class="jive-answer-correct"><strong>1</strong> "correct" answer available (10 pts)</span>
+ <span class="jive-answer-helpful"><strong>2</strong> "helpful" answers available (6 pts)</span>
+
+
+ </div>
+ </div>
+ <!-- END answer bar -->
+
+
+
+
+ <!-- BEGIN pagination-->
+ <span class="jive-pagination">
+ <span class="jive-pagination-numbers">
+ <a href="/thread/88396;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?tstart=0&amp;start=0"
+ >1</a>
+ <a href="/thread/88396;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?tstart=0&amp;start=15"
+ class="jive-pagination-current" >2</a>
+ </span>
+ <span class="jive-pagination-prevnext">
+ <a href="/thread/88396;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?tstart=0&amp;start=0" class="jive-pagination-prev">Previous</a>
+ <span class="jive-pagination-next-none">Next</span>
+ </span>
+ </span>
+ <!-- END pagination -->
+
+
+
+ <!-- BEGIN thread messages -->
+ <div class="jive-thread-messages">
+
+
+
+
+
+
+
+ <!-- BEGIN reply -->
+ <div class="jive-thread-reply jive-thread-reply-alt ">
+ <table width="100%" cellpadding="0" cellspacing="0"><tr>
+
+ <td>
+ <a name="728528"></a>
+ <div class="thread-reply-bar">
+ <div class="jive-thread-reply-subject-new">
+ <a href="/post!reply.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?messageID=728528" title="Reply to this message" class="jive-thread-reply-link">Reply</a>
+ <!--<a href="/message/728528;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#728528" title="Link to reply #15" class="jive-thread-reply-num">15.</a>-->
+ <strong>Re: Authorization Service not running.</strong> <a href="/message/728528;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#728528" title="Link to reply" class="jive-thread-reply-num">Aug 20, 2007 9:56 AM</a>
+ <br/>
+ <a href="/message/;jsessionid=CF308B7BAA7CCE19537B9479BCF18143727935#727935"
+ title="in response to: don Sjon"
+ ><img src="/images/up-10x10.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" width="10" height="10" border="0" alt=""/></a>
+in response to: <a href="/message/;jsessionid=CF308B7BAA7CCE19537B9479BCF18143727935#727935"
+ title="Go to message"
+ >don Sjon</a>
+
+ </div>
+ </div>
+ <div class="jive-thread-reply-body">
+ <div class="jive-author">
+ <span>
+ <a href="/people/marcusaurelius;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+ title="Click to view marcusaurelius's profile"
+ >
+ <img
+ class="jive-author-avatar"
+
+ src="/people/marcusaurelius/avatar;jsessionid=CF308B7BAA7CCE19537B9479BCF18143/32.png?a=-1"
+ border="0" height="32" width="32"
+ title="Click to view marcusaurelius's profile"
+ alt="Click to view marcusaurelius's profile"
+ /></a>
+ <img src="/images/status/hotshot-16x16.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" alt="Hot Shot" title="Hot Shot" />
+ </span>
+
+<a href="/people/marcusaurelius;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+id="jive-ev9iwBoWRqs8d7b8"
+class="jive-username-link"
+title="Click to view marcusaurelius's profile">marcusaurelius</a> <em>127 posts since <br/>Feb 3, 2005</em>
+ <img src="/images/status/statusicon-vmware.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" border="0" title="VMware" alt="VMware"/>
+
+
+ </div>
+ <div class="jive-thread-reply-subject" style="display:none;">
+ <a href="/post!reply.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?messageID=728528" title="Reply to this message" class="jive-thread-reply-link">Reply</a>
+ <a href="/message/728528;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#728528" title="Link to reply #15" class="jive-thread-reply-num">15.</a>
+ <strong>Re: Authorization Service not running.</strong> Aug 20, 2007 9:56 AM
+ <br/>
+ <a href="/message/;jsessionid=CF308B7BAA7CCE19537B9479BCF18143727935#727935"
+ title="in response to: don Sjon"
+ ><img src="/images/up-10x10.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" width="10" height="10" border="0" alt=""/></a>
+in response to: <a href="/message/;jsessionid=CF308B7BAA7CCE19537B9479BCF18143727935#727935"
+ title="Go to message"
+ >don Sjon</a>
+
+ </div>
+ <div class="jive-thread-reply-message">
+ You mean you ran one of the .msi files, rather than "setup.exe" ?<br />
+<br />
+If so, I would expect you to run into problems.
+
+ <!-- BEGIN attachments -->
+ <!-- END attachments -->
+
+ <!-- BEGIN content details -->
+ <div class="jive-thread-reply-details">
+ </div>
+ <!-- END content details-->
+ </div>
+ </div>
+ </td></tr></table>
+ </div>
+ <!-- END reply -->
+
+
+
+
+
+ <!-- BEGIN reply -->
+ <div class="jive-thread-reply ">
+ <table width="100%" cellpadding="0" cellspacing="0"><tr>
+
+ <td>
+ <a name="729115"></a>
+ <div class="thread-reply-bar">
+ <div class="jive-thread-reply-subject-new">
+ <a href="/post!reply.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?messageID=729115" title="Reply to this message" class="jive-thread-reply-link">Reply</a>
+ <!--<a href="/message/729115;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#729115" title="Link to reply #16" class="jive-thread-reply-num">16.</a>-->
+ <strong>Re: Authorization Service not running.</strong> <a href="/message/729115;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#729115" title="Link to reply" class="jive-thread-reply-num">Aug 20, 2007 10:43 PM</a>
+ <br/>
+ <a href="/message/;jsessionid=CF308B7BAA7CCE19537B9479BCF18143728528#728528"
+ title="in response to: marcusaurelius"
+ ><img src="/images/up-10x10.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" width="10" height="10" border="0" alt=""/></a>
+in response to: <a href="/message/;jsessionid=CF308B7BAA7CCE19537B9479BCF18143728528#728528"
+ title="Go to message"
+ >marcusaurelius</a>
+
+ </div>
+ </div>
+ <div class="jive-thread-reply-body">
+ <div class="jive-author">
+ <span>
+ <a href="/people/don Sjon;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+ title="Click to view don Sjon's profile"
+ >
+ <img
+ class="jive-author-avatar"
+
+ src="/people/don Sjon/avatar;jsessionid=CF308B7BAA7CCE19537B9479BCF18143/32.png?a=-1"
+ border="0" height="32" width="32"
+ title="Click to view don Sjon's profile"
+ alt="Click to view don Sjon's profile"
+ /></a>
+ <img src="/images/status/novice-16x16.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" alt="Novice" title="Novice" />
+ </span>
+
+<a href="/people/don Sjon;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+id="jive-K3345q33q4zt9MrY"
+class="jive-username-link"
+title="Click to view don Sjon's profile">don Sjon</a> <em>12 posts since <br/>Aug 7, 2007</em>
+
+
+ </div>
+ <div class="jive-thread-reply-subject" style="display:none;">
+ <a href="/post!reply.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?messageID=729115" title="Reply to this message" class="jive-thread-reply-link">Reply</a>
+ <a href="/message/729115;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#729115" title="Link to reply #16" class="jive-thread-reply-num">16.</a>
+ <strong>Re: Authorization Service not running.</strong> Aug 20, 2007 10:43 PM
+ <br/>
+ <a href="/message/;jsessionid=CF308B7BAA7CCE19537B9479BCF18143728528#728528"
+ title="in response to: marcusaurelius"
+ ><img src="/images/up-10x10.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" width="10" height="10" border="0" alt=""/></a>
+in response to: <a href="/message/;jsessionid=CF308B7BAA7CCE19537B9479BCF18143728528#728528"
+ title="Go to message"
+ >marcusaurelius</a>
+
+ </div>
+ <div class="jive-thread-reply-message">
+ there is/was only 1 msi file and a bunch of CAB files?
+
+ <!-- BEGIN attachments -->
+ <!-- END attachments -->
+
+ <!-- BEGIN content details -->
+ <div class="jive-thread-reply-details">
+ </div>
+ <!-- END content details-->
+ </div>
+ </div>
+ </td></tr></table>
+ </div>
+ <!-- END reply -->
+
+
+
+
+
+ <!-- BEGIN reply -->
+ <div class="jive-thread-reply jive-thread-reply-alt ">
+ <table width="100%" cellpadding="0" cellspacing="0"><tr>
+
+ <td>
+ <a name="729134"></a>
+ <div class="thread-reply-bar">
+ <div class="jive-thread-reply-subject-new">
+ <a href="/post!reply.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?messageID=729134" title="Reply to this message" class="jive-thread-reply-link">Reply</a>
+ <!--<a href="/message/729134;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#729134" title="Link to reply #17" class="jive-thread-reply-num">17.</a>-->
+ <strong>Re: Authorization Service not running.</strong> <a href="/message/729134;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#729134" title="Link to reply" class="jive-thread-reply-num">Aug 20, 2007 11:55 PM</a>
+ <br/>
+ <a href="/message/;jsessionid=CF308B7BAA7CCE19537B9479BCF18143729115#729115"
+ title="in response to: don Sjon"
+ ><img src="/images/up-10x10.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" width="10" height="10" border="0" alt=""/></a>
+in response to: <a href="/message/;jsessionid=CF308B7BAA7CCE19537B9479BCF18143729115#729115"
+ title="Go to message"
+ >don Sjon</a>
+
+ </div>
+ </div>
+ <div class="jive-thread-reply-body">
+ <div class="jive-author">
+ <span>
+ <a href="/people/marcusaurelius;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+ title="Click to view marcusaurelius's profile"
+ >
+ <img
+ class="jive-author-avatar"
+
+ src="/people/marcusaurelius/avatar;jsessionid=CF308B7BAA7CCE19537B9479BCF18143/32.png?a=-1"
+ border="0" height="32" width="32"
+ title="Click to view marcusaurelius's profile"
+ alt="Click to view marcusaurelius's profile"
+ /></a>
+ <img src="/images/status/hotshot-16x16.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" alt="Hot Shot" title="Hot Shot" />
+ </span>
+
+<a href="/people/marcusaurelius;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+id="jive-C3254859oV4aV6lT"
+class="jive-username-link"
+title="Click to view marcusaurelius's profile">marcusaurelius</a> <em>127 posts since <br/>Feb 3, 2005</em>
+ <img src="/images/status/statusicon-vmware.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" border="0" title="VMware" alt="VMware"/>
+
+
+ </div>
+ <div class="jive-thread-reply-subject" style="display:none;">
+ <a href="/post!reply.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?messageID=729134" title="Reply to this message" class="jive-thread-reply-link">Reply</a>
+ <a href="/message/729134;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#729134" title="Link to reply #17" class="jive-thread-reply-num">17.</a>
+ <strong>Re: Authorization Service not running.</strong> Aug 20, 2007 11:55 PM
+ <br/>
+ <a href="/message/;jsessionid=CF308B7BAA7CCE19537B9479BCF18143729115#729115"
+ title="in response to: don Sjon"
+ ><img src="/images/up-10x10.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" width="10" height="10" border="0" alt=""/></a>
+in response to: <a href="/message/;jsessionid=CF308B7BAA7CCE19537B9479BCF18143729115#729115"
+ title="Go to message"
+ >don Sjon</a>
+
+ </div>
+ <div class="jive-thread-reply-message">
+ Wait, are we talking about a deployed ACE instance? If so, there should be two MSIs and an EXE, assuming your deployment target is set for Windows hosts. For Linux there should be a PERL setup script and some other files. If that isn't what the package you're deploying looks like, I'd say there's a good chance the problem stems from this.<br />
+<br />
+Message was edited by: <br />
+ marcusaurelius
+
+ <!-- BEGIN attachments -->
+ <!-- END attachments -->
+
+ <!-- BEGIN content details -->
+ <div class="jive-thread-reply-details">
+ </div>
+ <!-- END content details-->
+ </div>
+ </div>
+ </td></tr></table>
+ </div>
+ <!-- END reply -->
+
+
+
+
+
+ <!-- BEGIN reply -->
+ <div class="jive-thread-reply ">
+ <table width="100%" cellpadding="0" cellspacing="0"><tr>
+
+ <td>
+ <a name="735431"></a>
+ <div class="thread-reply-bar">
+ <div class="jive-thread-reply-subject-new">
+ <a href="/post!reply.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?messageID=735431" title="Reply to this message" class="jive-thread-reply-link">Reply</a>
+ <!--<a href="/message/735431;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#735431" title="Link to reply #18" class="jive-thread-reply-num">18.</a>-->
+ <strong>Re: Authorization Service not running.</strong> <a href="/message/735431;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#735431" title="Link to reply" class="jive-thread-reply-num">Aug 28, 2007 6:39 AM</a>
+ <br/>
+
+ </div>
+ </div>
+ <div class="jive-thread-reply-body">
+ <div class="jive-author">
+ <span>
+ <a href="/people/Peppermint;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+ title="Click to view Peppermint's profile"
+ >
+ <img
+ class="jive-author-avatar"
+
+ src="/people/Peppermint/avatar;jsessionid=CF308B7BAA7CCE19537B9479BCF18143/32.png?a=-1"
+ border="0" height="32" width="32"
+ title="Click to view Peppermint's profile"
+ alt="Click to view Peppermint's profile"
+ /></a>
+ <img src="/images/status/lurker-16x16.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" alt="Lurker" title="Lurker" />
+ </span>
+
+<a href="/people/Peppermint;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+id="jive-QJ7agoNU9xGnD0Nq"
+class="jive-username-link"
+title="Click to view Peppermint's profile">Peppermint</a> <em>1 posts since <br/>Aug 28, 2007</em>
+
+
+ </div>
+ <div class="jive-thread-reply-subject" style="display:none;">
+ <a href="/post!reply.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?messageID=735431" title="Reply to this message" class="jive-thread-reply-link">Reply</a>
+ <a href="/message/735431;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#735431" title="Link to reply #18" class="jive-thread-reply-num">18.</a>
+ <strong>Re: Authorization Service not running.</strong> Aug 28, 2007 6:39 AM
+ <br/>
+
+ </div>
+ <div class="jive-thread-reply-message">
+ If this problem exist you should disable the Windows Fast Logon Feature to make sure that the VMware Authorization Service is already started by the time you want to use VMware.<br />
+<br />
+You can do this by using the Group Policy Editor:<br />
+<br />
+1: Click Start &gt; Run &gt; and type gpedit.msc.<br />
+<br />
+2: Navigate to Computer Configuration &gt; Administrative Templates &gt; System &gt; Logon &gt; Always wait for the network at computer startup and Logon.<br />
+<br />
+3: Double-click the policy and select Enabled.<br />
+<br />
+4: Reboot<br />
+<br />
+<b>OR...</b><br />
+<br />
+by editing the Registry:<br />
+ <br />
+1: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\CurrentVersion\Winlogon\<br />
+<br />
+2: set the value SyncForegroundPolicy to 1; (REG_DWORD) <br />
+<br />
+3: Reboot
+
+ <!-- BEGIN attachments -->
+ <!-- END attachments -->
+
+ <!-- BEGIN content details -->
+ <div class="jive-thread-reply-details">
+ </div>
+ <!-- END content details-->
+ </div>
+ </div>
+ </td></tr></table>
+ </div>
+ <!-- END reply -->
+
+
+
+
+
+ <!-- BEGIN reply -->
+ <div class="jive-thread-reply jive-thread-reply-alt ">
+ <table width="100%" cellpadding="0" cellspacing="0"><tr>
+
+ <td>
+ <a name="762297"></a>
+ <div class="thread-reply-bar">
+ <div class="jive-thread-reply-subject-new">
+ <a href="/post!reply.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?messageID=762297" title="Reply to this message" class="jive-thread-reply-link">Reply</a>
+ <!--<a href="/message/762297;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#762297" title="Link to reply #19" class="jive-thread-reply-num">19.</a>-->
+ <strong>Re: Authorization Service not running.</strong> <a href="/message/762297;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#762297" title="Link to reply" class="jive-thread-reply-num">Oct 2, 2007 8:32 AM</a>
+ <br/>
+
+ </div>
+ </div>
+ <div class="jive-thread-reply-body">
+ <div class="jive-author">
+ <span>
+ <a href="/people/Earthbound;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+ title="Click to view Earthbound's profile"
+ >
+ <img
+ class="jive-author-avatar"
+
+ src="/people/Earthbound/avatar;jsessionid=CF308B7BAA7CCE19537B9479BCF18143/32.png?a=-1"
+ border="0" height="32" width="32"
+ title="Click to view Earthbound's profile"
+ alt="Click to view Earthbound's profile"
+ /></a>
+ <img src="/images/status/lurker-16x16.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" alt="Lurker" title="Lurker" />
+ </span>
+
+<a href="/people/Earthbound;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+id="jive-h589L5n1aJ8dW4LS"
+class="jive-username-link"
+title="Click to view Earthbound's profile">Earthbound</a> <em>1 posts since <br/>Apr 12, 2007</em>
+
+
+ </div>
+ <div class="jive-thread-reply-subject" style="display:none;">
+ <a href="/post!reply.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?messageID=762297" title="Reply to this message" class="jive-thread-reply-link">Reply</a>
+ <a href="/message/762297;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#762297" title="Link to reply #19" class="jive-thread-reply-num">19.</a>
+ <strong>Re: Authorization Service not running.</strong> Oct 2, 2007 8:32 AM
+ <br/>
+
+ </div>
+ <div class="jive-thread-reply-message">
+ <br />
+My OS: Vista x64 w/ VMWS 6.01 (55017)<br />
+<p />
+I had this issue yesterday when I switched net cards. I found that on the new network card that the firewall was turned on by default so I turned it off (our network is behind 2 very robust firewalls so it is not needed on the local machine). I then proceeded to stop and restart all the VM services. Thanks to the tips here on the forum this was an easy fix.
+
+ <!-- BEGIN attachments -->
+ <!-- END attachments -->
+
+ <!-- BEGIN content details -->
+ <div class="jive-thread-reply-details">
+ </div>
+ <!-- END content details-->
+ </div>
+ </div>
+ </td></tr></table>
+ </div>
+ <!-- END reply -->
+
+
+
+
+
+ <!-- BEGIN reply -->
+ <div class="jive-thread-reply ">
+ <table width="100%" cellpadding="0" cellspacing="0"><tr>
+
+ <td>
+ <a name="762801"></a>
+ <div class="thread-reply-bar">
+ <div class="jive-thread-reply-subject-new">
+ <a href="/post!reply.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?messageID=762801" title="Reply to this message" class="jive-thread-reply-link">Reply</a>
+ <!--<a href="/message/762801;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#762801" title="Link to reply #20" class="jive-thread-reply-num">20.</a>-->
+ <strong>Re: Authorization Service not running.</strong> <a href="/message/762801;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#762801" title="Link to reply" class="jive-thread-reply-num">Oct 2, 2007 9:51 PM</a>
+ <br/>
+ <a href="/message/;jsessionid=CF308B7BAA7CCE19537B9479BCF18143729134#729134"
+ title="in response to: marcusaurelius"
+ ><img src="/images/up-10x10.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" width="10" height="10" border="0" alt=""/></a>
+in response to: <a href="/message/;jsessionid=CF308B7BAA7CCE19537B9479BCF18143729134#729134"
+ title="Go to message"
+ >marcusaurelius</a>
+
+ </div>
+ </div>
+ <div class="jive-thread-reply-body">
+ <div class="jive-author">
+ <span>
+ <a href="/people/don Sjon;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+ title="Click to view don Sjon's profile"
+ >
+ <img
+ class="jive-author-avatar"
+
+ src="/people/don Sjon/avatar;jsessionid=CF308B7BAA7CCE19537B9479BCF18143/32.png?a=-1"
+ border="0" height="32" width="32"
+ title="Click to view don Sjon's profile"
+ alt="Click to view don Sjon's profile"
+ /></a>
+ <img src="/images/status/novice-16x16.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" alt="Novice" title="Novice" />
+ </span>
+
+<a href="/people/don Sjon;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+id="jive-ycPUA3x6CT37gG6b"
+class="jive-username-link"
+title="Click to view don Sjon's profile">don Sjon</a> <em>12 posts since <br/>Aug 7, 2007</em>
+
+
+ </div>
+ <div class="jive-thread-reply-subject" style="display:none;">
+ <a href="/post!reply.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?messageID=762801" title="Reply to this message" class="jive-thread-reply-link">Reply</a>
+ <a href="/message/762801;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#762801" title="Link to reply #20" class="jive-thread-reply-num">20.</a>
+ <strong>Re: Authorization Service not running.</strong> Oct 2, 2007 9:51 PM
+ <br/>
+ <a href="/message/;jsessionid=CF308B7BAA7CCE19537B9479BCF18143729134#729134"
+ title="in response to: marcusaurelius"
+ ><img src="/images/up-10x10.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" width="10" height="10" border="0" alt=""/></a>
+in response to: <a href="/message/;jsessionid=CF308B7BAA7CCE19537B9479BCF18143729134#729134"
+ title="Go to message"
+ >marcusaurelius</a>
+
+ </div>
+ <div class="jive-thread-reply-message">
+ <br />
+to <a class="jive-link-profile" href="http://communities.vmware.com/people/marcusaurelius">marcusaurelius</a>, <br />
+<p />
+sorry i missed your entry. Actually i'm mixing stuff now. I had this problem with my VMware workstation.<br />
+<p />
+
+
+ <!-- BEGIN attachments -->
+ <!-- END attachments -->
+
+ <!-- BEGIN content details -->
+ <div class="jive-thread-reply-details">
+ </div>
+ <!-- END content details-->
+ </div>
+ </div>
+ </td></tr></table>
+ </div>
+ <!-- END reply -->
+
+
+
+
+
+ <!-- BEGIN reply -->
+ <div class="jive-thread-reply jive-thread-reply-alt ">
+ <table width="100%" cellpadding="0" cellspacing="0"><tr>
+
+ <td>
+ <a name="803199"></a>
+ <div class="thread-reply-bar">
+ <div class="jive-thread-reply-subject-new">
+ <a href="/post!reply.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?messageID=803199" title="Reply to this message" class="jive-thread-reply-link">Reply</a>
+ <!--<a href="/message/803199;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#803199" title="Link to reply #21" class="jive-thread-reply-num">21.</a>-->
+ <strong>Re: Authorization Service not running.</strong> <a href="/message/803199;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#803199" title="Link to reply" class="jive-thread-reply-num">Nov 25, 2007 4:06 AM</a>
+ <br/>
+
+ </div>
+ </div>
+ <div class="jive-thread-reply-body">
+ <div class="jive-author">
+ <span>
+ <a href="/people/Xingular;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+ title="Click to view Xingular's profile"
+ >
+ <img
+ class="jive-author-avatar"
+
+ src="/people/Xingular/avatar;jsessionid=CF308B7BAA7CCE19537B9479BCF18143/32.png?a=-1"
+ border="0" height="32" width="32"
+ title="Click to view Xingular's profile"
+ alt="Click to view Xingular's profile"
+ /></a>
+ <img src="/images/status/lurker-16x16.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" alt="Lurker" title="Lurker" />
+ </span>
+
+<a href="/people/Xingular;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+id="jive-P0fGX7RUu89qoc44"
+class="jive-username-link"
+title="Click to view Xingular's profile">Xingular</a> <em>1 posts since <br/>Nov 25, 2007</em>
+
+
+ </div>
+ <div class="jive-thread-reply-subject" style="display:none;">
+ <a href="/post!reply.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?messageID=803199" title="Reply to this message" class="jive-thread-reply-link">Reply</a>
+ <a href="/message/803199;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#803199" title="Link to reply #21" class="jive-thread-reply-num">21.</a>
+ <strong>Re: Authorization Service not running.</strong> Nov 25, 2007 4:06 AM
+ <br/>
+
+ </div>
+ <div class="jive-thread-reply-message">
+ Try running vmware in administrator mode. (Right click&gt; Properties on the vmware workstation icon in the start menu. Set run as administrator under the compatibility tab). It should do the trick.
+
+ <!-- BEGIN attachments -->
+ <!-- END attachments -->
+
+ <!-- BEGIN content details -->
+ <div class="jive-thread-reply-details">
+ </div>
+ <!-- END content details-->
+ </div>
+ </div>
+ </td></tr></table>
+ </div>
+ <!-- END reply -->
+
+
+
+
+
+ <!-- BEGIN reply -->
+ <div class="jive-thread-reply ">
+ <table width="100%" cellpadding="0" cellspacing="0"><tr>
+
+ <td>
+ <a name="825804"></a>
+ <div class="thread-reply-bar">
+ <div class="jive-thread-reply-subject-new">
+ <a href="/post!reply.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?messageID=825804" title="Reply to this message" class="jive-thread-reply-link">Reply</a>
+ <!--<a href="/message/825804;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#825804" title="Link to reply #22" class="jive-thread-reply-num">22.</a>-->
+ <strong>Re: Authorization Service not running.</strong> <a href="/message/825804;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#825804" title="Link to reply" class="jive-thread-reply-num">Dec 22, 2007 11:17 AM</a>
+ <br/>
+
+ </div>
+ </div>
+ <div class="jive-thread-reply-body">
+ <div class="jive-author">
+ <span>
+ <a href="/people/vmuser-1;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+ title="Click to view vmuser-1's profile"
+ >
+ <img
+ class="jive-author-avatar"
+
+ src="/people/vmuser-1/avatar;jsessionid=CF308B7BAA7CCE19537B9479BCF18143/32.png?a=-1"
+ border="0" height="32" width="32"
+ title="Click to view vmuser-1's profile"
+ alt="Click to view vmuser-1's profile"
+ /></a>
+ <img src="/images/status/lurker-16x16.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" alt="Lurker" title="Lurker" />
+ </span>
+
+<a href="/people/vmuser-1;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+id="jive-8M7U3A7xjUPYh79j"
+class="jive-username-link"
+title="Click to view vmuser-1's profile">vmuser-1</a> <em>4 posts since <br/>Dec 22, 2007</em>
+
+
+ </div>
+ <div class="jive-thread-reply-subject" style="display:none;">
+ <a href="/post!reply.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?messageID=825804" title="Reply to this message" class="jive-thread-reply-link">Reply</a>
+ <a href="/message/825804;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#825804" title="Link to reply #22" class="jive-thread-reply-num">22.</a>
+ <strong>Re: Authorization Service not running.</strong> Dec 22, 2007 11:17 AM
+ <br/>
+
+ </div>
+ <div class="jive-thread-reply-message">
+ <br />
+Hi, guys<br />
+<p />
+I as using vmware ver5 on win-xp system till yerterday, but all of sudden i got the same error of vmware authorisation service failed <br />
+I have tried to resolve this by uninstalling-re-installing the software, also tried by adding vm user in local admin group.<br />
+for last try i also re-installed win-xp but that also doesn' work. so pls help me out!!!!!!!!!
+
+ <!-- BEGIN attachments -->
+ <!-- END attachments -->
+
+ <!-- BEGIN content details -->
+ <div class="jive-thread-reply-details">
+ </div>
+ <!-- END content details-->
+ </div>
+ </div>
+ </td></tr></table>
+ </div>
+ <!-- END reply -->
+
+
+
+
+
+ <!-- BEGIN reply -->
+ <div class="jive-thread-reply jive-thread-reply-alt ">
+ <table width="100%" cellpadding="0" cellspacing="0"><tr>
+
+ <td>
+ <a name="825857"></a>
+ <div class="thread-reply-bar">
+ <div class="jive-thread-reply-subject-new">
+ <a href="/post!reply.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?messageID=825857" title="Reply to this message" class="jive-thread-reply-link">Reply</a>
+ <!--<a href="/message/825857;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#825857" title="Link to reply #23" class="jive-thread-reply-num">23.</a>-->
+ <strong>Re: Authorization Service not running.</strong> <a href="/message/825857;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#825857" title="Link to reply" class="jive-thread-reply-num">Dec 22, 2007 2:52 PM</a>
+ <br/>
+ <a href="/message/;jsessionid=CF308B7BAA7CCE19537B9479BCF18143825804#825804"
+ title="in response to: vmuser-1"
+ ><img src="/images/up-10x10.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" width="10" height="10" border="0" alt=""/></a>
+in response to: <a href="/message/;jsessionid=CF308B7BAA7CCE19537B9479BCF18143825804#825804"
+ title="Go to message"
+ >vmuser-1</a>
+
+ </div>
+ </div>
+ <div class="jive-thread-reply-body">
+ <div class="jive-author">
+ <span>
+ <a href="/people/don Sjon;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+ title="Click to view don Sjon's profile"
+ >
+ <img
+ class="jive-author-avatar"
+
+ src="/people/don Sjon/avatar;jsessionid=CF308B7BAA7CCE19537B9479BCF18143/32.png?a=-1"
+ border="0" height="32" width="32"
+ title="Click to view don Sjon's profile"
+ alt="Click to view don Sjon's profile"
+ /></a>
+ <img src="/images/status/novice-16x16.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" alt="Novice" title="Novice" />
+ </span>
+
+<a href="/people/don Sjon;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+id="jive-td4B4TcOmvQ9iO73"
+class="jive-username-link"
+title="Click to view don Sjon's profile">don Sjon</a> <em>12 posts since <br/>Aug 7, 2007</em>
+
+
+ </div>
+ <div class="jive-thread-reply-subject" style="display:none;">
+ <a href="/post!reply.jspa;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?messageID=825857" title="Reply to this message" class="jive-thread-reply-link">Reply</a>
+ <a href="/message/825857;jsessionid=CF308B7BAA7CCE19537B9479BCF18143#825857" title="Link to reply #23" class="jive-thread-reply-num">23.</a>
+ <strong>Re: Authorization Service not running.</strong> Dec 22, 2007 2:52 PM
+ <br/>
+ <a href="/message/;jsessionid=CF308B7BAA7CCE19537B9479BCF18143825804#825804"
+ title="in response to: vmuser-1"
+ ><img src="/images/up-10x10.gif;jsessionid=CF308B7BAA7CCE19537B9479BCF18143" width="10" height="10" border="0" alt=""/></a>
+in response to: <a href="/message/;jsessionid=CF308B7BAA7CCE19537B9479BCF18143825804#825804"
+ title="Go to message"
+ >vmuser-1</a>
+
+ </div>
+ <div class="jive-thread-reply-message">
+ <br />
+have you tried what was suggested before: <br />
+<br />
+<div class="jive-quote"><span class="jive-quote-header">I had this problem with VMware workstation 5 and 6.<br />
+I found this thread usefull:<br />
+<a class="jive-link-external" href="http://www.vmware.com/community/thread.jspa?messageID=183973">http://www.vmware.com/community/thread.jspa?messageID=183973</a><br />
+ <br />
+So, To solve this I had to put the local user __vmware_user__ in the local administrators group.<br />
+</span></div>
+<p />
+<div>
+</div>
+<br />
+
+
+ <!-- BEGIN attachments -->
+ <!-- END attachments -->
+
+ <!-- BEGIN content details -->
+ <div class="jive-thread-reply-details">
+ </div>
+ <!-- END content details-->
+ </div>
+ </div>
+ </td></tr></table>
+ </div>
+ <!-- END reply -->
+
+
+
+ <!-- BEGIN pagination-->
+ <span class="jive-pagination">
+ <span class="jive-pagination-numbers">
+ <a href="/thread/88396;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?tstart=0&amp;start=0"
+ >1</a>
+ <a href="/thread/88396;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?tstart=0&amp;start=15"
+ class="jive-pagination-current" >2</a>
+ </span>
+ <span class="jive-pagination-prevnext">
+ <a href="/thread/88396;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?tstart=0&amp;start=0" class="jive-pagination-prev">Previous</a>
+ <span class="jive-pagination-next-none">Next</span>
+ </span>
+ </span>
+ <!-- END pagination -->
+
+ </div>
+ <!-- END messages -->
+
+ </div>
+ </div>
+ <!-- END main body column -->
+
+</td>
+
+ </tr>
+ </table>
+
+
+
+
+
+</div>
+<!-- END main body -->
+
+<!-- BEGIN header & intro -->
+<div id="jive-body-intro">
+
+ <div id="jive-body-intro-content">
+
+ <span class="jive-pagination" style="margin-top:-5px">
+ <span class="jive-pagination-prevnext">
+ <a class="jive-pagination-prev" href="/thread/119428;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?tstart=-1">Previous</a>
+ <a href="/thread/118274;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?tstart=1" class="jive-pagination-next">Next</a>
+ </span>
+ </span>
+
+ <a href="/community/vmtn/desktop/ace;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?view=discussions" class="jive-link-more">Up to Discussions in&nbsp;VMware ACE</a>
+
+ </div>
+</div>
+<!-- END header & intro -->
+
+ </div>
+ <!-- END body wrapper -->
+
+ </div>
+ <!-- END body area -->
+
+
+<!-- END page 'jive-wrapper' -->
+
+
+<!-- END VMware -->
+
+
+</div>
+<div id="cfooter">
+ <span id="footer_left"></span>
+ <span id="footer"></span>
+ <span id="footer_right"></span>
+</div>
+<script src="http://www.vmware.com/app/template/?set=communities-home" type="text/javascript"></script>
+<script type="text/javascript" src="http://www.vmware.com/files/templates/inc/tracking.js"></script>
+<script type="text/javascript" src="http://www.vmware.com/files/templates/inc/hbx.js"></script>
+
+
+</body>
+</html>
diff --git a/doc/tutorial.txt b/doc/tutorial.txt
new file mode 100644
index 0000000..68a7cad
--- /dev/null
+++ b/doc/tutorial.txt
@@ -0,0 +1,390 @@
+Cross Compiling Linux - 2 hour tutorial
+
+This is a practical introduction to cross compiling, during which we'll build
+a working cross-compiler, use it to cross-compile a native uClibc-based Linux
+development environment, and boot this new environment under QEMU.
+
+Attendees may choose arm, mips, x86, x86_64, sparc, or PPC as the platform
+they wish to build for. The author's Firmware Linux project (which already
+does all this) will be used as an example. Attendees should bring a reasonably
+fast laptop with net access and at least 256 megs of ram.
+
+General outline:
+
+1) Terminology: cross compiling, native compiling, host/target, toolchain, etc.
+2) Why cross compiling is hard, and why we need to do it anyway.
+3) Building a cross compiler toolchain from linux, binutils, gcc, and uClibc.
+4) Making a native build environment (adding make, busybox, and bash).
+5) Packaging disk images, booting, and running under QEMU.
+6) Optimizations and alternatives.
+ (distcc, armulator, boards/bootloaders, nfs, tsrpm)
+7) Where to from here? (LFS, gentoo, etc.)
+
+
+-----------------------------------------------------------------------------
+Links:
+ http://www.landley.net/writing/docs/cross-compiling.html
+ http://www.landley.net/code/firmware/about.html
+ http://www.landley.net/code/firmware/design.html
+ http://cross-lfs.org/files/BOOK/1.0.0/
+ http://www.gentoo.org/proj/en/base/embedded/index.xml
+ http://gentoo-wiki.com/Embedded_Gentoo
+
+http://www.quietearth.us/articles/2006/08/16/Building-deb-package-from-source
+
+http://qemu-forum.ipi.fi/qemu-snapshots/
+git://git.kernel.dk/data/git/qemu.git
+-----------------------------------------------------------------------------
+
+Today's agenda:
+
+ - learn about cross compiling
+ - build a working cross-compiler
+ - use it to cross-compile a native uClibc-based Linux development environment
+ - boot this new environment under QEMU.
+
+Platforms:
+ - What platforms does Linux support?
+ - To get the full list: cd include; echo asm-* | sed 's/asm-//g'
+ - alpha arm arm26 avr32 cris frv generic h8300 i386 ia64 m32r
+ m68k m68knommu mips parisc powerpc ppc s390 sh sh64 sparc sparc64 um
+ v850 x86_64 xtensa
+ - Not quite architectures: generic=shared code, um=User Mode Linux
+ - What dominates the big iron space?
+ - Top 500 supercomputers list: http://top500.org/stats/28/procfam/
+ x86-64 (44%), x86 (24%), and PPC (18%).
+ - Note: s390 important but not general purpose
+ - What dominates the embedded space?
+ - The big four: arm, mips, i386/x86_64, ppc.
+ - important but not general purpose:
+ - sh (super-hitachi) used in japan, especially in auto industry.
+ - coldfire (m68knommu): used in a small number of high volume devices.
+ - blackfin: up-and-coming, not merged yet. Employ interesting people.
+ - in decline (used to be more important) but still in use:
+ alpha, ia64, sparc, parisc.
+
+ - price, power consumption, performance, features
+ - power consumption == heat, high end and low end converge due to this.
+ - features could be software or integrated peripherals.
+
+ - close up on arm
+ - best power/performance ratio, owns over 80% of cell phone market.
+ - entire arm core only 43,000 transistors, 34 instructions.
+ - armv3 vs arm 7, architecture vs processor. We focus on architecture.
+ - armv3 introduced 32-bit, but obsolete. armv4 now low-end.
+ - most systems now being manufactured armv5 or up.
+ - newer runs older instructions. armv4->armv5 25% speedup for recompile.
+ - arm26 obsolete 26 bit addressing mode, like x86's 16-bit mode.
+ - can be LE or BE. Linux supports both, but only one at a time.
+ Chip doesn't care but motherboard might.
+
+ - close up on mips
+ - customizable: sold as library, FPGA version, fab your own, used in SOC.
+ - there is now a 64 bit version. Probably for bragging rights.
+ - reasonable power consumption, reasonable performance.
+ - can be LE or BE.
+
+ - close up on ppc
+ - can be LE or BE, long ago software selectable now almost universally BE.
+ - Apple/IBM/Motorola. Apple switched, Motorola spun off freescale.
+ - power.org attempt to stir up third party interest, some success.
+ - Game consoles give it serious volume, but Apple TV is x86-64.
+ - Models:
+ - Everything can run 7xx code except 4xx (ibm) and 8xx (motorola).
+ - 74xx is "G4", 970 is "G5" and is 64-bit.
+ - High power consumption, high performance
+ - Cell would have been very interesting if it had shipped in 2005, but
+ it's too late to matter outside gaming consoles now. Too much power
+ for embedded space, and big iron assembly programming specialized.
+
+ - close up on x86/x86-64
+ - Intel and AMD have stopped making non-embedded 32-bit processors.
+ - Once existing inventory sold, it's 64-bit only from here on out.
+ - A number of smaller players like via.
+ - Best price/performance, often best general purpose absolute performance
+ - Historically terrible power/performance, hence the fan.
+ - Recently paying attention to that, but a ways to go. On x86 a
+ fanless heat sink is a victory, whereas most arm runs cool to the touch.
+
+Compiling software for different platforms:
+ - Native compiling on different platforms:
+ - endianness, word size, alignment, sign of char, optimizations
+ - nommu is its own can of worms: stack, malloc, vfork, mmap
+ - x86 is the common case, but this changes to x86-64 soon.
+ - Neither intel nor amd making x86 outside of embedded space anymore.
+ Once current inventory sold, it's all 64-bit from here.
+ - cross compiling
+ - host and target are two contexts, most programs used to one.
+ - For most programs there is only one context: the target. Worrying about
+ host is the compiler's job, not yours.
+ - The compiler tells program what target it's building for with #defines
+ (__i386__, __arm__, __mips__) etc.
+ - To see all predefined symbols: gcc -dM -E - < /dev/null
+ - The headers specify endianness, #include <endian.h>
+ - confusing the two contexts:
+ - May have to build and run programs on host, ala menuconfig or unifdef.
+ - Need a host compiler for that, HOSTCC.
+ - Two compilers, keep track of which to use where
+ - ./configure asks questions about the machine it's building on to
+ determine what kind of program to build. Assumes host==target.
+ Fundamentally wrong for cross compiling, at the design level.
+ - two compilers (host and target), they get each other's files mixed up.
+ - #includes paths, library paths, gcc calls wrong ld...
+ - prefix the names, but this isn't complete ("collect2").
+ - gcc falls back to "default" search path when it can't find something.
+ - gcc doesn't know where to find the files it installed.
+
+ - Everybody cares about native compiling, nobody cares about cross compiling.
+ - Most projects don't care about cross compiling, and never will.
+ - gentoo over 4000 packages, gentoo embedded cross compiles maybe 300.
+ - Cross compiling complicates build system while restricting options,
+ this infrastructure is a source of bugs even when it's not used, and
+ only a tiny minority of the userbase will ever want it.
+ - Everybody cares about native compiling.
+ - If they don't, they'll probably take patches.
+ - simple to fix, non-intrusive, generally considered a good thing.
+ - Most developers don't know there's more to it than "build on arm".
+
+ - Building natively on real hardware can be problematic
+ - 200 mhz, 32 megs of ram, only access through serial port
+ - We have one piece of real hardware and five developers.
+
+ - But there are emulators, and desktops are cheap and powerful these days.
+ - Throwing hardware at the problem cheaper than developers.
+ - State of the art is QEMU, which is GPL.
+
+ - A certain amount of cross compiling can't be avoided.
+ - where do you get your development environment from?
+ - bootstrap new platform.
+ - recent ubuntu desktop CD for little-endian mips?
+
+ - So cross compile to bootstrap a native environment, then build natively
+ under emulation.
+
+ - Trick: have the emulator call out to the cross compiler with distcc.
+ - ./configure, make, preprocessing, and linking all run native.
+ - heavy lifting of compilation farmed out, but that's hard to screw up.
+
+Firmware Linux Walkthrough.
+ - Prepare (download source, build some optional tools)
+ - Build cross compiler (cross-compiler.sh)
+ - Cross-compile native build environment (mini-native.sh)
+ - package this so qemu can run it
+ - Run it under qemu
+ - Build hello world natively.
+
+Build binutils.
+ Fairly straightforward, no target dependencies.
+
+Build gcc.
+ Needs a target version of binutils.
+ Pain in the ass because gcc is "special".
+
+Beating GCC into submission
+ - gcc is NOT SPECIAL. But it thinks it is.
+ - special case, special olympics, very special episode, isn't that special.
+ - Compiler turns input into output. So does a docbook to pdf converter.
+ - Explicit and implicit input files.
+ - xmlto has cmdline files, plus fonts and stylesheets.
+ - gcc has headers and libraries and such.
+
+ - A compiler doesn't try to run the programs it's building.
+ - Reads C source, assembly, and ELF files.
+ - Outputs C source, assembly, ELF files.
+ - It reads and generates ELF and a.out as archive formats
+ - readelf, ar, ldd, nm, objdump, libbfd
+ - Not special. Just files.
+
+ - In theory, all you have to tell GCC during ./configure is what target it
+ should produce binaries for.
+ - What host the resulting gcc you're building _runs_ on is determined by
+ the host compiler you're building gcc with, and it's got the same
+ __i386__ #defines as every other platform if it really wants details.
+ - That some compilers produce binaries that can be immediately executed
+ is sheer coincidence, nothing more. So can sed when it outputs a shell
+ script.
+
+ - Targets are descirbed as tuples.
+ - What's a tuple?
+ - It's designed to conflate together several characteristics to reduce
+ orthogonality in the configuration. (No, this is not a good thing.)
+ Luckily, most of it doesn't apply to Linux.
+ - just append "-unknown-linux" to your architecture.
+ - armv4l, armv5l, mipsel, mips, sparc, powerpc, i686, x86_64
+ - So nothing like the kernel's ARCH= values?
+ - Not really.
+
+ - In practice, gcc wants to build itself with itself.
+ - No other compiler could possibly build a usable copy of gcc!
+ - gcc is _special_
+ - so build a temporary version (xgcc) with the tainted other compiler,
+ then rebuild a _clean_ version with xgcc.
+ - That's not enough, it wants to build itself three times.
+ - 1) build xgcc, 2) rebuild, 3) rebuild with #2 and compare 2 & 3.
+ - Serious paranoia. Emotional scars. It was abused as a child.
+ - I'm sure the developers can tell us horror stories of platforms
+ where this was a vitally important safeguard. Those platforms were
+ not Linux.
+ - Dear gcc: you can't always get what you want.
+
+ - This redundant build is not compatible with cross compiling.
+ - When gcc is making cross compiling, it can't do this crazy stuff
+ - Two vastly different build systems within the same project?
+ - But of course. It's from the FSF, where bigger is better.
+ - How do you tell it to produce a cross-compiler?
+ - When host and target differ, it behaves almost rationally.
+ --host=i686-unknown-linux --target=armv4l-unknown-linux
+
+ - But what if I'm building for i686-uclibc target from i686-glibc host?
+ If gcc does the three-step, xgcc won't run because uclibc isn't
+ installed on the host.
+ - Lie to gcc, like so:
+ --host=i686-walrus-linux --target=i686-unknown-linux
+ - Then it thinks it's cross compiling, and will WORK.
+
+ - The wrapper script:
+ - "pathological", adjective, "having to do with the path logic in gcc".
+ - gcc can't find files it installed.
+ - It searches in lots of different places using crazy paths with lots
+ of "subdir/../../../newdir" in them. Run it under strace sometime,
+ it's frightening.
+ - Paths from environment variables, paths from built-in spec files,
+ paths supplied from ./configure, paths added on the command line,
+ paths hardwired into the C code...
+ - Every time the previous layer bit-rots to the point of collapse,
+ they add yet another layer. They never _remove_ anything, they
+ just stick it at the front of the list and fall back to looking
+ in all the other locations when they can't find it.
+ - All this is based on an absolute path from the root, hardwiring
+ into the gcc binary the path to the directory gcc was built in.
+ (What if you want to install a toolchain into your home directory,
+ without needing root access?)
+ - At the end it falls back to default locations like /usr/include
+ which contains host stuff, not target stuff.
+ - If it can't find the headers or libraries it needs, it happily
+ substitutes the ones out of the host compiler. THIS IS WRONG.
+
+ - How to we untangle this?
+
+ - gcc has seven important sources of input (spec files don't count):
+ - Explicit input (C files listed on the command line)
+ - system library headers
+ - #include stdio.h. From libc, zlib, etc.
+ - default is /usr/include
+ - compiler headers
+ - #include stdarg.h, for va_arg and such.
+ - default looks like /usr/lib/gcc/i486-linux-gnu/4.1.2/include
+ - system libraries
+ - libc.so, libz.so, libncurses.so.5.5
+ - search path, includes /lib:/usr/lib and elsewhere.
+ - try ldd /bin/ls
+ - note .a vs .so vs .so.6
+ - compiler libraries
+ - libgcc_s.so (is evil).
+ - stack unwinding, divide by long on 32-bit platforms, soft float...
+ - at compile time, /usr/lib/gcc/i486-linux-gnu/4.1.2
+ - at run time libgcc_s.so is in /lib
+ - Executable search path
+ - In theory so gcc can call ld.
+ - in practice, collect2 and cc1 because gcc is bloated.
+ - You'd think this would use $PATH, but that would be too easy.
+ - Install binaries in $PATH? But I'm _SPECIAL_
+
+ - Bypass gcc's path logic entirely. It's the only way to be sure.
+ - Wrapper, parse gcc command line, call gcc with --nostdinc and
+ --nostdlib (so it won't fall back to leaking in host stuff),
+ explicitly specify header and library search paths (since we know
+ where they are), and edit $PATH so it can call ld and such.
+ - While we're at it, specify the location of the shared library loader.
+ - Not actually used at compile time, just written into the binary to
+ be used at runtime. But it's something else we need to get right
+ to make usable binaries.
+
+ - Hang on, if we've got a wrapper why do we need to recompile for the
+ i686-glibc to i686-uClibc case?
+ - Because libgcc_s.so links against glibc, thus leaking a reference to
+ the wrong C library. (Thanks gcc!) If we rebuild libgcc_s.so against
+ uClibc, it's at least leaking a reference to the right library. (Or
+ better yet, configure gcc with --disable-shared so it has libgcc.a
+ instead and doesn't do this at all.)
+
+ - Ok, that was the hard part. It's all downhill from here.
+
+So back to bootstrapping a toolchain.
+ Binutils builds by itself with no dependencies on other target packages.
+ gcc needs a target version of binutils
+ gcc also needs a wrapper script (or _extensive_ patching) to have sane
+ path logic, but the wrapper script has no dependencies on anything else.
+ uclibc needs:
+ a gcc for the target
+ linux kernel headers for the target (but the kernel headers have no
+ dependencies and can be installed first).
+
+ - start with binutils, wrapper, and/or linux kernel headers.
+ - gcc comes after binutils.
+ - uClibc comes after gcc and kernel headers.
+
+Now build a native build environment for the target.
+ In theory, you could follow Linux From Scratch from this point on.
+ In practice, a minimal development environment only needs seven packages:
+ binutils, gcc, kernel (headers _and_ vmlinux this time), uClibc,
+ busybox, make, bash.
+ (Why bash? Busybox shell isn't good enough yet.)
+ - might have been fixed in newer versins, I don't follow it anymore.
+ From that, you can build an entire Linux From Scratch system.
+ I spent ~3 years fixing up busybox to the point where it works for this.
+
+ In theory, the smallest self-bootstrapping system would be four packages:
+ Linux, uclibc, busybox, tcc.
+ But that doesn't work yet. :)
+
+How do you build a native compiler for another platform?
+ Build twice:
+ Use your host compiler to build a compiler targeting the platform.
+ This runs on the host to produce target binaries, so it's a
+ cross compiler.
+ Use the cross compiler to build a compiler targeting the platform.
+ This runs on the target to produce target binaries, so it's a
+ native compiler for the target.
+ Technically, this is called a "canadian cross".
+ - They had to come up with a special name for it. It's NOT SPECIAL.
+ - Your cross compiler could target one platform and the second compiler
+ could target another, so you could use your x86 machine to build a
+ cross compiler that runs on sparc and outputs arm binaries. So what?
+ - This is what gcc is doing internally anyway if you tell it
+ --host arm and --target arm on your x86 machine. Except in _that_
+ case it wants to know --build. Why? Don't go there.
+
+General outline:
+
+1) Terminology: cross compiling, native compiling, host/target, toolchain, etc.
+
+2) Why cross compiling is hard, and why we need to do it anyway.
+
+3) Building a cross compiler toolchain from linux, binutils, gcc, and uClibc.
+ Bootstrapping issues, what depends on what?
+
+4) Making a native build environment (adding make, busybox, and bash).
+ Building a new system.
+
+5) Packaging disk images, booting, and running under QEMU.
+
+6) Optimizations and alternatives.
+ (distcc, armulator, boards/bootloaders, nfs, tsrpm)
+
+7) Where to from here? (LFS, gentoo, etc.)
+
+
+-----------------------------------------------------------------------------
+Links:
+ http://www.landley.net/writing/docs/cross-compiling.html
+ http://www.landley.net/code/firmware/about.html
+ http://www.landley.net/code/firmware/design.html
+ http://cross-lfs.org/files/BOOK/1.0.0/
+ http://www.gentoo.org/proj/en/base/embedded/index.xml
+ http://gentoo-wiki.com/Embedded_Gentoo
+
+http://www.quietearth.us/articles/2006/08/16/Building-deb-package-from-source
+
+http://qemu-forum.ipi.fi/qemu-snapshots/
+git://git.kernel.dk/data/git/qemu.git
diff --git a/doc/uclibc-bootfloppy.txt b/doc/uclibc-bootfloppy.txt
new file mode 100644
index 0000000..6dd4eff
--- /dev/null
+++ b/doc/uclibc-bootfloppy.txt
@@ -0,0 +1,667 @@
+AUTHOR: Csaba Henk <ekho@math-inst.hu>
+
+DATE: 2003-10-27
+
+LICENSE: The MIT License
+
+SYNOPSIS: Making an uClibc-based bootfloppy
+
+PRIMARY URI: http://www.math-inst.hu/~ekho/lowlife/
+
+DESCRIPTION:
+This hints shows how to create a cutting-edge bootfloppy from scratch,
+based on uClibc, a lightweight C library.
+
+PREREQUISITES:
+This hint should be useable on any not too aged Linux installation with
+a non-broken toolchain. It was tested on a (by and large) LFS-4.0
+system. The sudo utility is advised to have.
+
+ATTACHMENTS:
+http://www.linuxfromscratch.org/hints/downloads/attachments/uclibc-bootfloppy/busybox-0.60.5-Config.h
+http://www.linuxfromscratch.org/hints/downloads/attachments/uclibc-bootfloppy/linux-2.4.22-.config
+http://www.linuxfromscratch.org/hints/downloads/attachments/uclibc-bootfloppy/mkbootdisk
+http://www.linuxfromscratch.org/patches/downloads/devfsd/devfsd-1.3.25-uclibc-1.patch
+
+HINT:
+
+Contents
+--------
+
+Preface
+Introduction
+What do we need?
+The concept
+Setting up the development environment
+Compiling the linux kernel
+Installing uClibc on the development platform
+Creating the root filesystem
+Installing uClibc for the bootdisk
+Installing busybox
+Installing gpm
+Other programs
+Creating the bootdisk
+Bugs and weirdnesses, todo
+
+Preface
+-------
+
+* This hint is co-developed with the svnc-thinclient hint in the
+framework of the lowlife project,
+
+http://www.math-inst.hu/~ekho/lowlife/
+
+This file belongs to lowlife-0.5.1.
+
+* For the most recent version check out
+
+http://www.math-inst.hu/~ekho/lowlife/uclibc-bootfloppy.txt
+
+* Comments, ideas, critics, flames are welcome.
+
+* (If you are an LFS user, you can skip this.) Although this document is
+formally an LFS hint, you can see use of it without knowing what LFS is
+(I tried to write it keeping this possibility in mind). Anyway, I
+recommend you to check out what LFS is. If you are not familiar with
+compiling source code in unix/linux environment, then there is no use of
+going on without checking out what LFS is. Consult the following docs
+first:
+
+http://www.linuxfromscratch.org/lfs/whatislfs.html
+http://www.linuxfromscratch.org/faq/
+http://www.linuxfromscratch.org/hints/downloads/files/essential_prereading.txt
+http://www.linuxfromscratch.org/lfs/view/stable/preface/prerequisites.html
+
+Introduction
+------------
+
+When you are to put together a Linux bootfloppy, you need to decide what
+implementation of the standard C libraries will you use.
+
+One possibility is using the C library implementation which is common on
+Linux based systems: glibc. It's advantage is that you have it at hand:
+to make a glibc-based bootfloppy, the only thing you have to do is to is
+to copy the necessary libs to the filesystem you will put on the floppy.
+This is way chosen by the rescue floppy described in the BLFS-book:
+
+http://linuxfromscratch.org/blfs/view/test/postlfs/bootdisk.html
+
+However, glibc is far from being lightweight, and eats up much of the
+rather limited space you have when working with a floppy. So you might
+like seek for an alternative which suits much better to the capabilities
+of the floppy environment.
+
+Here we will create a bootfloppy based on the uClibc C library, which is
+just made for such purposes.
+
+The bootfloppy will be cutting edge: uses uClibc and Busybox which are
+actively developed projects for the embedded platform. Moreover, I used
+a kernel from the 2.4.* branch (but feel free to use other kernel
+releases). It is a good question to ask whether this is useful: many floppy
+distros use older kernels for reducing resource usage. I can say the
+following: on the one hand, I can afford using a recent kernel as my
+bootfloppy merrily runs on my 486 with 8M RAM; on the other hand, from
+the moment I began to use this up-to-date stuff, the problems with handling
+the terminal buffer and plip timeouts vanished. So unless you are really
+tight in resources, I think using a recent kernel is a good idea.
+
+We will also use some kind of development environment, just to stay on
+the safe side.
+
+This hint has a continuation: there we will describe how to install the
+svga vncviewer on the bootfloppy, which then becomes capable of turning a
+machine to an X terminal. (Check out the svnc-thinclient hint:
+
+http://www.linuxfromscratch.org/hints/downloads/files/svnc-thinclient.txt
+http://www.math-inst.hu/~ekho/lowlife/svnc-thinclient.txt
+
+)
+
+Additional info and downloadable bootdisk image with svnc can be found
+at the lowlife homepage (or at its mirror):
+
+http://www.math-inst.hu/~ekho/lowlife/
+http://www.personal.ceu.hu/students/01/Csaba_Henk/lowlife/
+
+In this hint the assumption of using an x86 PC (both for making and
+booting the floppy) and gcc is set. You may try to port it to another
+architecture / compiler. Doing it on another architecture should not
+be hard. Doing it with another compiler depends on how much does
+uClibc support that compiler.
+
+If you copy command from this hint to your shell, be careful that
+line-terminating backslashes (\) keep their position (no whitespace
+characters should follow them). A possible solution is open this hint in
+the Vim GUI, and copy'n'paste from there.
+
+What do we need?
+----------------
+
+We will need the following programs; in general, most recent stable
+versions are recommended. Those programs where I have a certain
+important comment on the version are marked with (!) and you can find
+the comment at the beginning of the respective install instructons.
+
+* Addons for the development platform:
+
+sudo (optional)
+ ftp://ftp.sudo.ws/pub/sudo/
+
+* Programs for the bootfloppy:
+
+linux-2.4.* (!)
+ http://www.kernel.org
+uClibc
+ http://www.uclibc.org/downloads/
+busybox-0.60.5 (!)
+ http://www.busybox.net/downloads/
+gpm (optional)
+ ftp://arcana.linux.it/pub/gpm
+
+The concept
+-----------
+
+In LFS, bootstrapping a linux system goes in the following fashion: one
+first installs kernel headers, then builds a toolchain against these
+headers, finally builds a kernel using the shiny new toolchain.
+
+We don't need to produce a new toolchain: we will use the one of the
+host distro (to which we'll refer as "development environment") (though
+when making the userspace of our tiny linux system, we will access that
+toolchain via the uClibc wrappers).
+
+This lets us to proceed in a much simpler way: first we compile the
+kernel, then build uClibc using the headers of this kernel, finally
+build the userspace against uClibc.
+
+We will use optimization for size (we'll pass the -Os flag to gcc). In
+general you can delete sources after compilation if there is no specific
+reasons to keep them. In those cases when you should *not* delete the
+source I'll tell about it explicitly.
+
+Setting up the development environment
+--------------------------------------
+
+We definitely need some kind of development environment to protect
+us from mucking up our system; eg., if we are in the file system
+which we will put on the floppy, it is very easy to mistake usr with
+/usr, and without such a protection, you can imagine that this
+mistake can have serious consequences...
+
+We will create a non-privileged user named bootdisk for doing the
+job. First choose a home directory for bootdisk and store this value
+in $BDISKHOME. Then type:
+
+groupadd bootdisk &&
+useradd -g bootdisk -s /bin/bash -d $BDISKHOME bootdisk &&
+mkdir -p $BDISKHOME &&
+cat > $BDISKHOME/.bash_profile << "EOF"
+export CFLAGS=-Os
+export PATH=/usr/i386-linux-uclibc/bin/:$PATH:$HOME/bin
+export CC=i386-uclibc-gcc
+EOF
+
+Of course, you may specify more cflags, like -march=i486. The above
+setting of the $PATH variable assumes that the usual directories to
+be contained in the path are already set in /etc/profile.
+
+So the idea is that we will work as user bootdisk; however, there are
+some tasks during the bootdisk creation which require a privileged user
+-- namely, mounting ext2 files and raw-copying to a floppy.
+
+We can do two things about this problem:
+
+1) Ignore it, and execute these tasks as root.
+
+2) Make a script named mkbootdisk for doing this tasks. This script must
+be executable only by root (mode 744). With the help of the sudo utility
+we let the bootdisk user to use this script as well. That is, we put it
+to $BDISKHOME/bin and then type:
+
+echo "
+bootdisk ALL = NOPASSWD: $BDISKHOME/bin/mkbootdisk" >> /etc/sudoers
+
+A realization of mkbootdisk can be found as an attachment of this hint
+at
+
+http://www.linuxfromscratch.org/hints/downloads/attachments/uclibc-bootfloppy/
+
+or at
+
+http://www.math-inst.hu/~ekho/lowlife/mkbootdisk
+
+or in the current directory if you read this hint as a file of the
+lowlife tarball avaliable at
+
+http://www.math-inst.hu/~ekho/lowlife
+
+Typing "mkbootdisk -h" will print a brief information on usage.
+
+We have the desired environment. We go on compiling the programs. Become
+user bootdisk:
+
+su - bootdisk
+
+In the rest of the hint we will act as user bootdisk, with the following
+exceptions:
+
+* as uClibc will be installed systemwise, you should install it as root;
+
+* if you don't use a mkbootdisk script, then the appropriate actions
+are to be done as root;
+
+* doing a chroot test of your filesystem for the floppy is possible only
+as root.
+
+This means that if you use a mkbootdisk script, then those steps of
+creating the bootfloppy which shouldn't affect your development
+platform, *can't* affect the development platform (provided your
+mkbootdisk script doesn't do anything weird, which I think is
+fulfilled by the one written by me).
+
+Some of the commands below assume that the actual source archive is
+decompressed in $HOME (which is the same as the prior $BDISKHOME).
+Software installation instructions always start at the point when the
+source tarball is already decompressed and you entered the source
+directory (unless we explicitely claim to act differently).
+
+Compiling the linux kernel
+--------------------------
+
+At the moment the latest stable release of the linux kernel belong to
+the 2.4.* branch, but 2.6.0-test* releases are already out. This
+situaton might change any time by the release of linux-2.6.0. The
+following instructions regard to the 2.4.* releases; if you want to try
+linux-2.6.*, not only the kernel compilation instructions but the whole
+bootdisk creation procedure is to be revised (eg., you can't boot a
+2.6.* kernel without a boot loader). After linux-2.6.0 will be out I
+might consider to upgrade this hint to that version.
+
+We will compile a network-aware kernel optimized to size. I don't give
+a complete reference, I just highlight some crucial points.If you need
+not network-awareness, you may omit TCP/IP netowrking and network
+drivers; but even in this case it is strongly recommended to include
+"Unix domain sockets".
+
+In the kernel source tree type:
+
+sed -e 's%-O2%-Os%g' -e '/^CFLAGS_KERNEL/s%\(^.*$\)%\1 -Os%' Makefile > \
+ Makefile.tmp &&
+mv Makefile.tmp Makefile
+
+The above commands set optimization for size in the Makefile. Edit the
+Makefile if you want further optimizations.
+
+Now you should configure the kernel with "make menuconfig". Choose
+carefully the value in the "Processor type and features ---> Processor
+family" menupoint. When choosing options, it is advised to include only
+those features you really need. Some important ones:
+
+Networking options --->
+ <*> Unix domain sockets
+ [*] TCP/IP networking
+
+In the "Network device support --->" menupoint choose those network
+drivers you intend to use. If you want to use plip, choose it as a
+module, and also set:
+
+Parallel port support --->
+ <*> Parallel port support
+ <M> PC-style hardware
+
+This is advised because of the following: as I experienced, if no
+option is given, the kernel initializes the parallel port (PC-style)
+IRQ-less! At boot time we won't have the possibility to pass options
+to the kernel, as we won't use a boot loader or initrd. Thus we can
+set the appropriate IRQ value only if we load the parallel port
+driver as module. Also, to gain more control over the NIC drivers,
+consider building them as modules.
+
+In this hint we use the devfs facility, so choose
+
+File systems --->
+ [*] /dev file system support
+ [*] Automatically mount at boot
+
+(See a more detailed description in the devfs hint:
+
+http://www.linuxfromscratch.org/hints/downloads/files/devfs+kernel_modules.txt
+
+).
+
+And don't forget to include support for the mouse type you will use with
+the bootfloppy (if you will use any).
+
+OK, one more remark. Here I don't digress on how to use initrd, but you may
+have some reason for doing that. In this case with some kernels (eg., with
+linux-2.4.22) you might encounter with booting problems, which can be cured
+by the appropriate kernel patch. For info on initrd and the patch you can
+consult the "Creating a Custom Boot Disk" chapter of the BLFS-book,
+referenced in the Introduction.
+
+Now compile the kernel with the
+
+make dep && make bzImage && make modules
+
+commands. Then type
+
+mkdir $HOME/rfloppy/lib/modules
+
+and copy the NIC driver modules from the drivers/net directory to
+$HOME/rfloppy/lib/modules, and also the other modules you built. Eg., if
+you use plip, you will need the drivers/parport/parport_pc.o
+module.
+
+Do not delete the kernel source.
+
+If you have troubles with configuring the kernel properly, my .config file
+might be of your help:
+
+http://www.linuxfromscratch.org/hints/downloads/attachments/uclibc-bootfloppy/
+http://www.math-inst.hu/~ekho/lowlife/linux-2.4.22/.config
+
+Installing uClibc on the development platform
+---------------------------------------------
+
+Usually we will optimize to size; in case of uClibc it's done
+automatically.
+
+We install uClibc systemwise, thus the commands of this installation are
+to be executed as root.
+
+In the uClibc source tree type
+
+make menuconfig
+
+uClibc now has a configuration interface similar to that of the linux
+kernel. Apply the following settings:
+
+Target Architecture Features and Options --->
+ ($BDISKHOME/<dir of your linux kernel for the floppy>)
+ Linux kernel header location
+Library Installation Options --->
+ (/lib) Shared library loader path
+
+This was enough for uClibc-0.9.19; in case of uClibc-0.9.21 we also need
+the following:
+
+General Library Settings --->
+ [ ] Support gprof profiling
+String and Stdio Support --->
+ [*] Support sys_siglist[] (bsd-compat)
+
+[Explanation: with profiling support set, uClibc wasn't willing to build
+for me. The sys_siglist[] support will be needed by busybox which
+encorporates some BSD code by having ash as its shell.]
+
+(Other uClibc versions may have their own gotchas.)
+
+Apart from this, the default configuration is quite suitable, probably
+you need not change anything (especially you need not use full math
+support). However, taking a look at the options never hurts; eg., you
+may consider fine-tuning the target processor type. After you exit,
+
+make &&
+make install
+
+Further on we assume that you installed uClibc into
+/usr/i386-linux-uclibc/ (the default installation location).
+
+Creating the root filesystem
+----------------------------
+
+We will put the files of the root filesysem of the floppy to a directory
+named rfloppy. Firstly we create the directory and a basic tree of
+subdirectories which vaguley resembles the FHS idea:
+
+cd &&
+mkdir -p rfloppy/{dev,proc,etc/init.d,sbin,bin,lib,mnt,usr,var/log} &&
+cat > rfloppy/etc/init.d/rcS << "EOF" &&
+#!/bin/sh
+mount proc /proc -t proc
+EOF
+
+The etc/init.d/rcS file will be the startup script for the floppy. Put
+there what you want to be done in the beginnig -- eg., syslogd, klogd,
+loading modules, starting gpm, etc.
+
+A very minimal etc directory is used in this setup. Enriching it (with
+files like passwd, group, fstab, modules.conf, and so on) is up to you
+-- this minimalist solution works anyway.
+
+Installing uClibc for the bootdisk
+----------------------------------
+
+We copy the necessary libraries of uClibc to the bootdisk.
+
+cp -a /usr/i386-linux-uclibc/lib/{ld-uClibc*,libc.so.0,libuClibc-*} \
+ ~/rfloppy/lib
+
+Installing busybox
+------------------
+
+At the moment busybox has two branches: the development branch
+(1.00-pre* releases) and the stable branch (0.60.* releases), but this
+situation might change any time by busybox-1.00 being released. The
+following instructions regard to the 0.60.* versions. The 1.00-pre*
+versions differ greatly (encorporate much more utilities, eg.), so if
+you go experimenting with them, these instructions probably need to be
+changed. When the now-devel branch get stable (1.00 comes out), this
+document will probably be upgraded to that version of busybox.
+
+Before making it, adjust the Config.h file according to your needs. To
+make busybox work with devfs, be sure that the
+
+#define BB_FEATURE_DEVFS
+
+line is uncommented (not prefixed with "//"); and it is advised to
+enable standard Unix utilities, moreover if you want to use network with
+the floppy, consider uncommenting:
+
+#define BB_IFCONFIG
+#define BB_TELNET
+#define BB_TFTP
+#define BB_FEATURE_IFCONFIG_STATUS
+
+Then install it with
+
+make CROSS=i386-uclibc- &&
+make PREFIX=$HOME/rfloppy install
+
+If you have troubles with configuring busybox properly, my Config.h file
+might be of your help:
+
+http://www.linuxfromscratch.org/hints/downloads/attachments/uclibc-bootfloppy/
+http://www.math-inst.hu/~ekho/lowlife/busybox-0.60.5/Config.h
+
+Installing gpm
+--------------
+
+Having mouse at the console is not necessary, but very comfortable for a
+bootfloppy as well. If you want it, install gpm by running the following
+commands:
+
+./configure &&
+LDFLAGS="-lm" make &&
+strip src/gpm &&
+mkdir -p $HOME/rfloppy/{usr/sbin,var/run} &&
+cp src/gpm $HOME/rfloppy/usr/sbin &&
+cp -a /usr/i386-linux-uclibc/lib/{libm-*,libm.so.0} ~/rfloppy/lib
+
+[The /var/run directory is needed for gpm at runtime.]
+
+Other programs
+--------------
+
+Now if there is anything more you want to have on the floppy, compile it
+and put it to the appropriate place under $HOME/rfloppy. A list of some
+possible extensions:
+
+* devfsd (
+
+http://ftp.kernel.org/pub/linux/daemons/devfsd/
+
+) is not necessary for the bootfloppy, devfs work fine without it. So
+install it only if you know what you are doing. However, it needs to be
+hacked to get it compiled against uClibc. There is a patch for devfsd at:
+
+http://www.linuxfromscratch.org/patches/downloads/devfsd/devfsd-1.3.25-uclibc.patch
+
+or at
+
+http://www.math-inst.hu/~ekho/lowlife/patches/devfsd-1.3.25-uclibc.patch
+
+(or in the patches directory if you read this hint as a file of the lowlife
+tarball) and you can find some explanation on it at
+
+http://www.math-inst.hu/~ekho/lowlife/
+
+Note that devfsd depends on the libdl.so.0 library of uClibc (which is a
+symlink to libdl-0.9.*.so). You have to put these to the /lib of your
+filesystem.
+
+* The svnc-thinclient hint tells you how to compile and install svgalib
+and the svga vncviewer to the floppy, giving the bootfloppy the
+capabilities of an X terminal.
+
+The (functionality of the) following utilities are already encorporated
+in the development versions of busybox.
+
+* You can put tinylogin (
+
+http://tinylogin.busybox.net/
+
+) to the floppy if you want a correct login system on it (with the
+configuration described in this hint you just get a prompt after
+booting).
+
+* You can put utelnetd (
+
+http://www.pengutronix.de/software/utelnetd_en.html
+
+) to the floppy if you want to access it remotely. However, don't forget
+that communication is not encrypted under telnet!
+
+* One more useful program is hdparm (
+
+http://ftp.ibiblio.org/pub/Linux/system/hardware
+
+): if you boot with this floppy, the harddisk is probably not used, but
+still is a source of noise by its spinning. You can stop it with
+hdparm. (See its -y option.)
+
+Creating the bootdisk
+---------------------
+
+Before creating the floppy, you may wish to test the proposed filesystem
+by chrooting to it; if so, execute as root:
+
+chroot $BDISKHOME/rfloppy /bin/sh
+
+Typing this you get the prompt of the busybox shell, and you should be
+able to run those utilities which do not require much I/O (ls, cat,
+echo,...). Proceed on again as the bootdisk user.
+
+Put a floppy to the floppy drive (if you are not sure about its
+integrity, you might want to run fdformat on it). If you use my
+mkbootdisk script, check whether the device name of the floppy drive is
+set correctly in the script (it is set to /dev/fd0 and no option can
+change it, in order to prevent the bootdisk user in being able to muck
+up the development platform), and whether the $MKE2FSAPP, $RDEVAPP
+variables in the script store the correct path to the mke2fs, rdev
+utilities in your system (they should if you follow standards). If
+everything is fine, simply run
+
+cd &&
+sudo mkbootdisk
+
+If you don't use the mkbootdisk script, become root, store the name of
+your floppy device (typically /dev/fd0) in the variable $DISK. Now its
+time to find out how big the root filesystem of the floppy should be,
+and how much inodes should it have. Concerning the size, I think the
+size of the stuff in the rfloppy directory + 150k is enough; concerning
+the number of inodes, I think the number of files in rfloppy + 100 is
+enough. But you should know. Store the chosen filesystem size in the
+variable $SIZE (the number of kilobytes), and the chosen number of
+inodes in the variable $INODES. Then type the following:
+
+cd $BDISKHOME &&
+# We we create and compress the root filesystem of the floppy:
+dd if=/dev/zero of=rootfs bs=1k count=$SIZE &&
+yes | mke2fs -m 0 -N $INODES rootfs &&
+mkdir -p loop &&
+mount rootfs -o loop loop &&
+rmdir loop/lost+found &&
+cp -a rfloppy/* loop &&
+chown -R 0:0 loop/* &&
+umount loop &&
+dd if=rootfs bs=1k | gzip -v9 > rootfs.gz
+
+Now check whether rootfs.gz and your kernel image (probably
+linux-2.4.*/arch/i386/boot/bzImage) fit on a floppy together (a floppy
+is of 1440k usually but it can be formatted to bigger sizes as well). If
+everything is fine, go on:
+
+# We copy the kernel to the floppy:
+let KERNELSIZE=`dd bs=1k of=$DISK < linux-2.4.*/arch/i386/boot/bzImage 2>&1 |
+ sed -n '1s%\([0-9][0-9]*\).*%\1%p'`+1 &&
+# We perform some adjustments on the kernel copied to the floppy:
+rdev $DISK 0,0 &&
+rdev -R $DISK 0 &&
+rdev -r $DISK `expr 16384 + $KERNELSIZE` &&
+# Finally we copy the compressed filesystem to its appropriate place \
+# on the floppy:
+dd if=rootfs.gz of=$DISK bs=1k seek=$KERNELSIZE
+
+[Explanation -- also for those who wonder how the mkbootdisk script
+works
+
+"yes | mke2fs -m 0 -N $INODES rootfs":
+
+This pipe construct is a common trick for answering stupid questions
+non-interactively.
+
+"# We copy the kernel to the floppy" :
+
+In the command after this comment we not only copy the kernel to floppy,
+but we also store the number of transferred kb's in the variable
+$KERNELSIZE.
+
+"# We perform some adjustments on the kernel copied to the floppy" :
+
+We won't have a bootloader to tell the kernel where to find its root
+filesystem. The commands after this comment set some specified bits
+in the kernel, thus hardwiring the location of the root filesystem to
+it: firstly, we tell the kernel to seek for the filesystem in the
+floppy, secondly, we tell the kernel that a ramdisk is to be made and
+the filesystem is to be decompressed to it, thirdly, we tell the
+kernel the location of the filesystem within the floppy. The number
+16384 = 2^14 is used for shifting within the range of bits in the
+kernel devoted for describing these data. For more information
+consult with the Bootdisk HOWTO available at tldp.org.
+
+"# Finally we copy [...]" :
+
+In the dd command after this comment we use the seek option to copy the
+compressed filesystem nicely after the kernel image.]
+
+Now you have the floppy, boot & enjoy!
+
+Bugs and weirdnesses, todo
+--------------------------
+
+This hint is co-developed with the svnc-thinclient hint in the framework
+of the lowlife project. These informations can be found in the svnc-thinclient
+hint.
+
+ACKNOWLEDGEMENTS:
+
+This hint is co-developed with the svnc-thinclient hint in the framework
+of the lowlife project. These informations can be found in the svnc-thinclient
+hint.
+
+CHANGELOG:
+
+This hint is co-developed with the svnc-thinclient hint in the framework
+of the lowlife project. These informations can be found in the svnc-thinclient
+hint.
diff --git a/group b/group
new file mode 100644
index 0000000..cdd5758
--- /dev/null
+++ b/group
@@ -0,0 +1,3 @@
+root:x:0:root
+bin::1:root,bin,daemon
+daemon::2:root,daemon
diff --git a/grub.install b/grub.install
new file mode 100644
index 0000000..02c1c5d
--- /dev/null
+++ b/grub.install
@@ -0,0 +1,3 @@
+rootnoverify (hd0,0)
+setup (hd0)
+quit
diff --git a/hosts b/hosts
new file mode 100644
index 0000000..ba712fe
--- /dev/null
+++ b/hosts
@@ -0,0 +1 @@
+127.0.0.1 localhost
diff --git a/inittab b/inittab
new file mode 100644
index 0000000..a1e9f50
--- /dev/null
+++ b/inittab
@@ -0,0 +1,93 @@
+# /etc/inittab init(8) configuration for BusyBox
+#
+# Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
+#
+#
+# Note, BusyBox init doesn't support runlevels. The runlevels field is
+# completely ignored by BusyBox init. If you want runlevels, use sysvinit.
+#
+#
+# Format for each entry: <id>:<runlevels>:<action>:<process>
+#
+# <id>: WARNING: This field has a non-traditional meaning for BusyBox init!
+#
+# The id field is used by BusyBox init to specify the controlling tty for
+# the specified process to run on. The contents of this field are
+# appended to "/dev/" and used as-is. There is no need for this field to
+# be unique, although if it isn't you may have strange results. If this
+# field is left blank, it is completely ignored. Also note that if
+# BusyBox detects that a serial console is in use, then all entries
+# containing non-empty id fields will _not_ be run. BusyBox init does
+# nothing with utmp. We don't need no stinkin' utmp.
+#
+# <runlevels>: The runlevels field is completely ignored.
+#
+# <action>: Valid actions include: sysinit, respawn, askfirst, wait, once,
+# restart, ctrlaltdel, and shutdown.
+#
+# Note: askfirst acts just like respawn, but before running the specified
+# process it displays the line "Please press Enter to activate this
+# console." and then waits for the user to press enter before starting
+# the specified process.
+#
+# Note: unrecognised actions (like initdefault) will cause init to emit
+# an error message, and then go along with its business.
+#
+# <process>: Specifies the process to be executed and it's command line.
+#
+# Note: BusyBox init works just fine without an inittab. If no inittab is
+# found, it has the following default behavior:
+# ::sysinit:/etc/init.d/rcS
+# ::askfirst:/bin/sh
+# ::ctrlaltdel:/sbin/reboot
+# ::shutdown:/sbin/swapoff -a
+# ::shutdown:/bin/umount -a -r
+# ::restart:/sbin/init
+#
+# if it detects that /dev/console is _not_ a serial console, it will
+# also run:
+# tty2::askfirst:/bin/sh
+# tty3::askfirst:/bin/sh
+# tty4::askfirst:/bin/sh
+#
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in single-user mode.
+#
+::sysinit:/etc/init.d/rcS
+
+# /bin/sh invocations on selected ttys
+#
+# Note below that we prefix the shell commands with a "-" to indicate to the
+# shell that it is supposed to be a login shell. Normally this is handled by
+# login, but since we are bypassing login in this case, BusyBox lets you do
+# this yourself...
+#
+# Start an "askfirst" shell on the console (whatever that may be)
+#::askfirst:-/bin/sh
+# Start an "askfirst" shell on /dev/tty2-4
+#tty2::askfirst:-/bin/sh
+#tty3::askfirst:-/bin/sh
+#tty4::askfirst:-/bin/sh
+
+# /sbin/getty invocations for selected ttys
+tty1::respawn:/sbin/getty 38400 tty1
+tty2::respawn:/sbin/getty 38400 tty2
+tty3::respawn:/sbin/getty 38400 tty3
+tty4::respawn:/sbin/getty 38400 tty4
+tty5::respawn:/sbin/getty 38400 tty5
+tty6::respawn:/sbin/getty 38400 tty6
+
+# Example of how to put a getty on a serial line (for a terminal)
+::respawn:/sbin/getty -L ttyS0 9600 vt100
+#::respawn:/sbin/getty -L ttyS1 9600 vt100
+#
+# Example how to put a getty on a modem line.
+#::respawn:/sbin/getty 57600 ttyS2
+
+# Stuff to do when restarting the init process
+::restart:/sbin/init
+
+# Stuff to do before rebooting
+::ctrlaltdel:/sbin/reboot
+::shutdown:/bin/umount -a -r
+#::shutdown:/sbin/swapoff -a
diff --git a/issue b/issue
new file mode 100644
index 0000000..25eb343
--- /dev/null
+++ b/issue
@@ -0,0 +1 @@
+Log in as user 'root' with an empty password..
diff --git a/kernel-config b/kernel-config
new file mode 100644
index 0000000..141163e
--- /dev/null
+++ b/kernel-config
@@ -0,0 +1,1000 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.28.7
+# Fri Mar 13 21:21:09 2009
+#
+# CONFIG_64BIT is not set
+CONFIG_X86_32=y
+# CONFIG_X86_64 is not set
+CONFIG_X86=y
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_FAST_CMPXCHG_LOCAL=y
+CONFIG_MMU=y
+CONFIG_ZONE_DMA=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+# CONFIG_GENERIC_TIME_VSYSCALL is not set
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
+# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+# CONFIG_ZONE_DMA32 is not set
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+# CONFIG_AUDIT_ARCH is not set
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_X86_BIOS_REBOOT=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# General setup
+#
+# CONFIG_EXPERIMENTAL is not set
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_CGROUPS is not set
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
+CONFIG_NAMESPACES=y
+# CONFIG_UTS_NS is not set
+# CONFIG_IPC_NS is not set
+# CONFIG_BLK_DEV_INITRD is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+# CONFIG_EMBEDDED is not set
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_COMPAT_BRK=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_ANON_INODES=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+CONFIG_HAVE_OPROFILE=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+# CONFIG_MODULES is not set
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+# CONFIG_IOSCHED_AS is not set
+# CONFIG_IOSCHED_DEADLINE is not set
+# CONFIG_IOSCHED_CFQ is not set
+# CONFIG_DEFAULT_AS is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+CONFIG_DEFAULT_NOOP=y
+CONFIG_DEFAULT_IOSCHED="noop"
+CONFIG_CLASSIC_RCU=y
+# CONFIG_FREEZER is not set
+
+#
+# Processor type and features
+#
+# CONFIG_NO_HZ is not set
+# CONFIG_HIGH_RES_TIMERS is not set
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+# CONFIG_SMP is not set
+CONFIG_X86_PC=y
+# CONFIG_X86_ELAN is not set
+# CONFIG_X86_VOYAGER is not set
+# CONFIG_X86_GENERICARCH is not set
+# CONFIG_X86_VSMP is not set
+# CONFIG_X86_RDC321X is not set
+CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
+# CONFIG_PARAVIRT_GUEST is not set
+# CONFIG_MEMTEST is not set
+# CONFIG_M386 is not set
+CONFIG_M486=y
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+# CONFIG_M686 is not set
+# CONFIG_MPENTIUMII is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUMM is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MEFFICEON is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MGEODEGX1 is not set
+# CONFIG_MGEODE_LX is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_MVIAC7 is not set
+# CONFIG_MPSC is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_GENERIC_CPU is not set
+CONFIG_X86_GENERIC=y
+CONFIG_X86_CPU=y
+CONFIG_X86_CMPXCHG=y
+CONFIG_X86_L1_CACHE_SHIFT=7
+CONFIG_X86_XADD=y
+CONFIG_X86_PPRO_FENCE=y
+CONFIG_X86_F00F_BUG=y
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_INVLPG=y
+CONFIG_X86_BSWAP=y
+CONFIG_X86_POPAD_OK=y
+CONFIG_X86_ALIGNMENT_16=y
+CONFIG_X86_INTEL_USERCOPY=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=4
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_CYRIX_32=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR_32=y
+CONFIG_CPU_SUP_TRANSMETA_32=y
+CONFIG_CPU_SUP_UMC_32=y
+# CONFIG_HPET_TIMER is not set
+CONFIG_DMI=y
+# CONFIG_IOMMU_HELPER is not set
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+# CONFIG_X86_UP_APIC is not set
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_NONFATAL=y
+CONFIG_VM86=y
+# CONFIG_TOSHIBA is not set
+# CONFIG_I8K is not set
+# CONFIG_X86_REBOOTFIXUPS is not set
+# CONFIG_MICROCODE is not set
+# CONFIG_X86_MSR is not set
+# CONFIG_X86_CPUID is not set
+CONFIG_NOHIGHMEM=y
+# CONFIG_HIGHMEM4G is not set
+# CONFIG_HIGHMEM64G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_X86_PAE is not set
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_RESOURCES_64BIT is not set
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_UNEVICTABLE_LRU=y
+# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
+CONFIG_X86_RESERVE_LOW_64K=y
+# CONFIG_MATH_EMULATION is not set
+# CONFIG_MTRR is not set
+# CONFIG_SECCOMP is not set
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=250
+# CONFIG_SCHED_HRTICK is not set
+# CONFIG_KEXEC is not set
+CONFIG_PHYSICAL_START=0x100000
+CONFIG_PHYSICAL_ALIGN=0x100000
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_CMDLINE_BOOL is not set
+
+#
+# Power management and ACPI options
+#
+# CONFIG_PM is not set
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+# CONFIG_CPU_IDLE is not set
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GOMMCONFIG is not set
+# CONFIG_PCI_GODIRECT is not set
+# CONFIG_PCI_GOOLPC is not set
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_DOMAINS=y
+# CONFIG_PCIEPORTBUS is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+CONFIG_PCI_LEGACY=y
+CONFIG_ISA_DMA_API=y
+# CONFIG_ISA is not set
+# CONFIG_MCA is not set
+# CONFIG_SCx200 is not set
+# CONFIG_OLPC is not set
+# CONFIG_PCCARD is not set
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_HAVE_AOUT=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+CONFIG_HAVE_ATOMIC_IOMAP=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+# CONFIG_PACKET is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_IPV6 is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_PHONET is not set
+CONFIG_WIRELESS=y
+# CONFIG_CFG80211 is not set
+CONFIG_WIRELESS_OLD_REGULATORY=y
+# CONFIG_WIRELESS_EXT is not set
+# CONFIG_MAC80211 is not set
+# CONFIG_IEEE80211 is not set
+# CONFIG_RFKILL is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_STANDALONE=y
+# CONFIG_PREVENT_FIRMWARE_BUILD is not set
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+# CONFIG_MTD is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_FD=y
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+# CONFIG_BLK_DEV_LOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_UB is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_BLK_DEV_HD is not set
+# CONFIG_MISC_DEVICES is not set
+CONFIG_HAVE_IDE=y
+CONFIG_IDE=y
+
+#
+# Please see Documentation/ide/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_IDE_GD=y
+CONFIG_IDE_GD_ATA=y
+# CONFIG_IDE_GD_ATAPI is not set
+CONFIG_BLK_DEV_IDECD=y
+CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_IDE_TASK_IOCTL is not set
+CONFIG_IDE_PROC_FS=y
+
+#
+# IDE chipset support/bugfixes
+#
+# CONFIG_IDE_GENERIC is not set
+# CONFIG_BLK_DEV_PLATFORM is not set
+# CONFIG_BLK_DEV_CMD640 is not set
+CONFIG_BLK_DEV_IDEDMA_SFF=y
+
+#
+# PCI IDE chipsets support
+#
+CONFIG_BLK_DEV_IDEPCI=y
+CONFIG_IDEPCI_PCIBUS_ORDER=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+CONFIG_BLK_DEV_GENERIC=y
+# CONFIG_BLK_DEV_RZ1000 is not set
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+# CONFIG_BLK_DEV_ATIIXP is not set
+# CONFIG_BLK_DEV_CMD64X is not set
+# CONFIG_BLK_DEV_TRIFLEX is not set
+# CONFIG_BLK_DEV_CS5530 is not set
+# CONFIG_BLK_DEV_CS5535 is not set
+# CONFIG_BLK_DEV_HPT366 is not set
+# CONFIG_BLK_DEV_JMICRON is not set
+# CONFIG_BLK_DEV_SC1200 is not set
+CONFIG_BLK_DEV_PIIX=y
+# CONFIG_BLK_DEV_IT8213 is not set
+# CONFIG_BLK_DEV_IT821X is not set
+# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+# CONFIG_BLK_DEV_SVWKS is not set
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SIS5513 is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
+# CONFIG_BLK_DEV_TRM290 is not set
+# CONFIG_BLK_DEV_VIA82CXXX is not set
+# CONFIG_BLK_DEV_TC86C001 is not set
+CONFIG_BLK_DEV_IDEDMA=y
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+
+#
+# A new alternative FireWire stack is available with EXPERIMENTAL=y
+#
+# CONFIG_IEEE1394 is not set
+# CONFIG_I2O is not set
+# CONFIG_MACINTOSH_DRIVERS is not set
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+# CONFIG_ARCNET is not set
+# CONFIG_PHYLIB is not set
+CONFIG_NET_ETHERNET=y
+# CONFIG_MII is not set
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_CASSINI is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_NET_TULIP is not set
+# CONFIG_HP100 is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+CONFIG_NET_PCI=y
+# CONFIG_PCNET32 is not set
+# CONFIG_AMD8111_ETH is not set
+# CONFIG_ADAPTEC_STARFIRE is not set
+# CONFIG_B44 is not set
+# CONFIG_FORCEDETH is not set
+# CONFIG_EEPRO100 is not set
+# CONFIG_E100 is not set
+# CONFIG_FEALNX is not set
+# CONFIG_NATSEMI is not set
+CONFIG_NE2K_PCI=y
+# CONFIG_8139TOO is not set
+# CONFIG_R6040 is not set
+# CONFIG_SIS900 is not set
+# CONFIG_EPIC100 is not set
+# CONFIG_SUNDANCE is not set
+# CONFIG_TLAN is not set
+# CONFIG_VIA_RHINE is not set
+# CONFIG_ATL2 is not set
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
+# CONFIG_TR is not set
+
+#
+# Wireless LAN
+#
+# CONFIG_WLAN_PRE80211 is not set
+# CONFIG_WLAN_80211 is not set
+# CONFIG_IWLWIFI_LEDS is not set
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=y
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+# CONFIG_MOUSE_PS2_ELANTECH is not set
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_APPLETOUCH is not set
+# CONFIG_MOUSE_BCM5974 is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=y
+# CONFIG_SERIO_CT82C710 is not set
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
+CONFIG_DEVKMEM=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=1
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_JSM is not set
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+CONFIG_RTC=y
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+# CONFIG_MWAVE is not set
+# CONFIG_PC8736x_GPIO is not set
+# CONFIG_NSC_GPIO is not set
+# CONFIG_CS5535_GPIO is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_HANGCHECK_TIMER is not set
+CONFIG_DEVPORT=y
+# CONFIG_I2C is not set
+# CONFIG_SPI is not set
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+# CONFIG_GPIOLIB is not set
+# CONFIG_W1 is not set
+# CONFIG_POWER_SUPPLY is not set
+# CONFIG_HWMON is not set
+# CONFIG_THERMAL is not set
+# CONFIG_THERMAL_HWMON is not set
+# CONFIG_WATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+# CONFIG_SSB is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_REGULATOR is not set
+
+#
+# Multimedia devices
+#
+
+#
+# Multimedia core support
+#
+# CONFIG_VIDEO_DEV is not set
+# CONFIG_DVB_CORE is not set
+# CONFIG_VIDEO_MEDIA is not set
+
+#
+# Multimedia drivers
+#
+# CONFIG_DAB is not set
+
+#
+# Graphics support
+#
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+# CONFIG_VGASTATE is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+# CONFIG_FB is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+# CONFIG_VGACON_SOFT_SCROLLBACK is not set
+CONFIG_DUMMY_CONSOLE=y
+# CONFIG_SOUND is not set
+# CONFIG_HID_SUPPORT is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+# CONFIG_USB_DEVICEFS is not set
+# CONFIG_USB_DEVICE_CLASS is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_MON is not set
+# CONFIG_USB_WUSB_CBAF is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+# CONFIG_USB_EHCI_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_OHCI_HCD is not set
+CONFIG_USB_UHCI_HCD=y
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+# CONFIG_USB_WDM is not set
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
+#
+
+#
+# see USB_STORAGE Help for more information
+#
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+
+#
+# USB port drivers
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_SEVSEG is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_BERRY_CHARGE is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_PHIDGET is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_VST is not set
+# CONFIG_USB_GADGET is not set
+# CONFIG_MMC is not set
+# CONFIG_MEMSTICK is not set
+# CONFIG_NEW_LEDS is not set
+# CONFIG_ACCESSIBILITY is not set
+# CONFIG_INFINIBAND is not set
+# CONFIG_RTC_CLASS is not set
+# CONFIG_DMADEVICES is not set
+# CONFIG_UIO is not set
+# CONFIG_STAGING is not set
+
+#
+# Firmware Drivers
+#
+# CONFIG_EDD is not set
+CONFIG_FIRMWARE_MEMMAP=y
+# CONFIG_DELL_RBU is not set
+# CONFIG_DCDBAS is not set
+# CONFIG_DMIID is not set
+# CONFIG_ISCSI_IBFT_FIND is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_EXT4_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+CONFIG_FILE_LOCKING=y
+# CONFIG_XFS_FS is not set
+# CONFIG_OCFS2_FS is not set
+CONFIG_DNOTIFY=y
+# CONFIG_INOTIFY is not set
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+# CONFIG_ZISOFS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+# CONFIG_PROC_KCORE is not set
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+# CONFIG_TMPFS is not set
+# CONFIG_HUGETLBFS is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+# CONFIG_NFS_FS is not set
+# CONFIG_NFSD is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+# CONFIG_NLS_CODEPAGE_437 is not set
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+# CONFIG_NLS_ISO8859_1 is not set
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=1024
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_KERNEL is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_LATENCYTOP is not set
+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+
+#
+# Tracers
+#
+# CONFIG_SYSPROF_TRACER is not set
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_STRICT_DEVMEM is not set
+CONFIG_X86_VERBOSE_BOOTUP=y
+CONFIG_EARLY_PRINTK=y
+# CONFIG_EARLY_PRINTK_DBGP is not set
+# CONFIG_4KSTACKS is not set
+CONFIG_DOUBLEFAULT=y
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+CONFIG_IO_DELAY_TYPE_NONE=3
+CONFIG_IO_DELAY_0X80=y
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_DELAY_NONE is not set
+CONFIG_DEFAULT_IO_DELAY_TYPE=0
+# CONFIG_OPTIMIZE_INLINING is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+# CONFIG_CRYPTO is not set
+CONFIG_HAVE_KVM=y
+# CONFIG_VIRTUALIZATION is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+# CONFIG_CRC_CCITT is not set
+# CONFIG_CRC16 is not set
+# CONFIG_CRC_T10DIF is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
diff --git a/keymap.us b/keymap.us
new file mode 100644
index 0000000..24676d8
--- /dev/null
+++ b/keymap.us
Binary files differ
diff --git a/mbr b/mbr
new file mode 100644
index 0000000..6f2016c
--- /dev/null
+++ b/mbr
Binary files differ
diff --git a/menu.lst b/menu.lst
new file mode 100644
index 0000000..3eda0a2
--- /dev/null
+++ b/menu.lst
@@ -0,0 +1,19 @@
+# GRUB boot file
+################
+
+# nicer colours
+color light-gray/blue black/light-gray
+
+# by default, boot first entry
+default 0
+
+# hide menu per default
+hiddenmenu
+
+# boot fast, nobody has to edit boot options here!
+timeout 0
+
+# boot minilinux
+title minilinux
+root (hd0,0)
+kernel /boot/bzImage-2.6.28.8 root=/dev/hda1
diff --git a/motd b/motd
new file mode 100644
index 0000000..4d4570a
--- /dev/null
+++ b/motd
@@ -0,0 +1,10 @@
+
+-----------------------------------------------------------
+Available Software:
+- busybox
+- GPM for easy copy-pasting
+- tinyperl for scripting
+
+'poweroff' terminates the appliance.
+-----------------------------------------------------------
+
diff --git a/nsswitch.conf b/nsswitch.conf
new file mode 100644
index 0000000..ecc16cf
--- /dev/null
+++ b/nsswitch.conf
@@ -0,0 +1,4 @@
+passwd: files
+shadow: files
+group: files
+hosts: files dns
diff --git a/passwd b/passwd
new file mode 100644
index 0000000..366f9ab
--- /dev/null
+++ b/passwd
@@ -0,0 +1,3 @@
+root:$1$q37D9uKG$ARDIcWkaXgrbTg6JBwFIn/:0:0:0:/root:/bin/sh
+bin:x:1:1:bin:/bin:/bin/false
+daemon:x:2:2:daemon:/sbin:/bin/false
diff --git a/rcS b/rcS
new file mode 100755
index 0000000..95ae97c
--- /dev/null
+++ b/rcS
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+echo "Mounting file systems.."
+mount -o remount,rw /dev/hda1 /
+mount -t proc /proc /proc
+mount -t sysfs /sys /sys
+
+echo "Bringing up loopback..."
+ifconfig lo 127.0.0.1
+
+echo "Loading keymap.."
+/sbin/loadkmap < /etc/keymap.us
+
+echo "Starting system logger.."
+syslogd
+
+echo "Starting kernel logger.."
+klogd
+
+echo "Starting mouse on console.."
+/usr/sbin/gpm -m /dev/psaux -t ps2
+
+echo "Switching to login shell.."
+chvt 2
diff --git a/uclibc-config b/uclibc-config
new file mode 100644
index 0000000..2b5324b
--- /dev/null
+++ b/uclibc-config
@@ -0,0 +1,232 @@
+#
+# Automatically generated make config: don't edit
+# Version: 0.9.30.1
+# Sat Mar 21 11:23:24 2009
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+TARGET_i386=y
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+# TARGET_xtensa is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="i386"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_GENERIC_386 is not set
+# CONFIG_386 is not set
+# CONFIG_486 is not set
+CONFIG_586=y
+# CONFIG_586MMX is not set
+# CONFIG_686 is not set
+# CONFIG_PENTIUMII is not set
+# CONFIG_PENTIUMIII is not set
+# CONFIG_PENTIUM4 is not set
+# CONFIG_K6 is not set
+# CONFIG_K7 is not set
+# CONFIG_ELAN is not set
+# CONFIG_CRUSOE is not set
+# CONFIG_WINCHIPC6 is not set
+# CONFIG_WINCHIP2 is not set
+# CONFIG_CYRIXIII is not set
+# CONFIG_NEHEMIAH is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_LITTLE_ENDIAN=y
+
+#
+# Using Little Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+# UCLIBC_HAS_FENV is not set
+UCLIBC_HAS_LONG_DOUBLE_MATH=y
+KERNEL_HEADERS="/usr/i686-pc-linux-uclibc/usr/include"
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+DOPIC=y
+# ARCH_HAS_NO_SHARED is not set
+# ARCH_HAS_NO_LDSO is not set
+HAVE_SHARED=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+LDSO_PRELOAD_FILE_SUPPORT=y
+LDSO_BASE_FILENAME="ld.so"
+UCLIBC_STATIC_LDCONFIG=y
+LDSO_RUNPATH=y
+UCLIBC_CTOR_DTOR=y
+# LDSO_GNU_HASH_SUPPORT is not set
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_THREADS=y
+# PTHREADS_DEBUG_SUPPORT is not set
+LINUXTHREADS_OLD=y
+UCLIBC_HAS_SYSLOG=y
+# UCLIBC_HAS_LFS is not set
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+# MALLOC_GLIBC_COMPAT is not set
+UCLIBC_DYNAMIC_ATEXIT=y
+# COMPAT_ATEXIT is not set
+# UCLIBC_SUSV3_LEGACY is not set
+# UCLIBC_SUSV3_LEGACY_MACROS is not set
+# UCLIBC_HAS_STUBS is not set
+UCLIBC_HAS_SHADOW=y
+# UCLIBC_HAS_PROGRAM_INVOCATION_NAME is not set
+UCLIBC_HAS_PTY=y
+ASSUME_DEVPTS=y
+UNIX98PTY_ONLY=y
+# UCLIBC_HAS_GETPT is not set
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+
+#
+# Advanced Library Settings
+#
+UCLIBC_PWD_BUFFER_SIZE=256
+UCLIBC_GRP_BUFFER_SIZE=256
+
+#
+# Support various families of functions
+#
+UCLIBC_LINUX_MODULE_24=y
+UCLIBC_LINUX_SPECIFIC=y
+UCLIBC_HAS_GNU_ERROR=y
+UCLIBC_BSD_SPECIFIC=y
+UCLIBC_HAS_BSD_ERR=y
+# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set
+# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
+# UCLIBC_NTP_LEGACY is not set
+# UCLIBC_SV4_DEPRECATED is not set
+UCLIBC_HAS_REALTIME=y
+UCLIBC_HAS_ADVANCED_REALTIME=y
+UCLIBC_HAS_EPOLL=y
+UCLIBC_HAS_XATTR=y
+UCLIBC_HAS_PROFILING=y
+UCLIBC_HAS_CRYPT_IMPL=y
+UCLIBC_HAS_CRYPT=y
+UCLIBC_HAS_NETWORK_SUPPORT=y
+UCLIBC_HAS_SOCKET=y
+UCLIBC_HAS_IPV4=y
+# UCLIBC_HAS_IPV6 is not set
+# UCLIBC_HAS_RPC is not set
+# UCLIBC_USE_NETLINK is not set
+# UCLIBC_HAS_BSD_RES_CLOSE is not set
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+UCLIBC_HAS_CTYPE_UNSAFE=y
+# UCLIBC_HAS_CTYPE_CHECKED is not set
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+# UCLIBC_HAS_WCHAR is not set
+# UCLIBC_HAS_LOCALE is not set
+# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set
+# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set
+# USE_OLD_VFPRINTF is not set
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+# UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+UCLIBC_HAS_STDIO_BUFSIZ_4096=y
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set
+# UCLIBC_HAS_GLIBC_CUSTOM_STREAMS is not set
+# UCLIBC_HAS_PRINTF_M_SPEC is not set
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+
+#
+# Big and Tall
+#
+# UCLIBC_HAS_REGEX is not set
+# UCLIBC_HAS_FNMATCH is not set
+# UCLIBC_HAS_FTW is not set
+
+#
+# Library Installation Options
+#
+SHARED_LIB_LOADER_PREFIX="$(RUNTIME_PREFIX)lib"
+RUNTIME_PREFIX="_runtimedir"
+DEVEL_PREFIX="/usr/i686-pc-linux-uclibc/usr"
+
+#
+# Security options
+#
+# UCLIBC_BUILD_PIE is not set
+# UCLIBC_HAS_ARC4RANDOM is not set
+# HAVE_NO_SSP is not set
+# UCLIBC_HAS_SSP is not set
+UCLIBC_BUILD_RELRO=y
+# UCLIBC_BUILD_NOW is not set
+UCLIBC_BUILD_NOEXECSTACK=y
+
+#
+# uClibc development/debugging options
+#
+CROSS_COMPILER_PREFIX="i686-pc-linux-uclibc-"
+UCLIBC_EXTRA_CFLAGS=""
+# DODEBUG is not set
+# DODEBUG_PT is not set
+DOSTRIP=y
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MALLOC_DEBUGGING is not set
+WARNINGS="-Wall"
+# EXTRA_WARNINGS is not set
+# DOMULTI is not set
+# UCLIBC_MJN3_ONLY is not set
diff --git a/vditool b/vditool
new file mode 100755
index 0000000..ce0506f
--- /dev/null
+++ b/vditool
Binary files differ