diff options
author | root <root@europa5.lan> | 2009-03-21 11:49:00 +0100 |
---|---|---|
committer | root <root@europa5.lan> | 2009-03-21 11:49:00 +0100 |
commit | 3a467eff5e435b5709d48f9d6cb48859925be5b8 (patch) | |
tree | d595bf80ef1f60eba722c8862634051f881dc911 | |
download | minilinux-3a467eff5e435b5709d48f9d6cb48859925be5b8.tar.gz minilinux-3a467eff5e435b5709d48f9d6cb48859925be5b8.tar.bz2 |
checked in initial version
-rw-r--r-- | INSTALL | 10 | ||||
-rw-r--r-- | Makefile | 229 | ||||
-rw-r--r-- | README | 50 | ||||
-rw-r--r-- | TODOS | 4 | ||||
-rw-r--r-- | busybox-config | 869 | ||||
-rw-r--r-- | devices.map | 1 | ||||
-rw-r--r-- | doc/001291.html | 242 | ||||
-rw-r--r-- | doc/CROSS-COMPILE-GUTS | 284 | ||||
-rw-r--r-- | doc/HOWTO_bbox_with_uclibc.txt | 302 | ||||
-rw-r--r-- | doc/LINKS | 56 | ||||
-rw-r--r-- | doc/buildMin.html | 87 | ||||
-rw-r--r-- | doc/crosstool-howto.html | 634 | ||||
-rw-r--r-- | doc/embedded_lfs.odp | bin | 0 -> 164275 bytes | |||
-rw-r--r-- | doc/qemu_to_vmware_image.html | 1198 | ||||
-rw-r--r-- | doc/tutorial.txt | 390 | ||||
-rw-r--r-- | doc/uclibc-bootfloppy.txt | 667 | ||||
-rw-r--r-- | group | 3 | ||||
-rw-r--r-- | grub.install | 3 | ||||
-rw-r--r-- | hosts | 1 | ||||
-rw-r--r-- | inittab | 93 | ||||
-rw-r--r-- | issue | 1 | ||||
-rw-r--r-- | kernel-config | 1000 | ||||
-rw-r--r-- | keymap.us | bin | 0 -> 2823 bytes | |||
-rw-r--r-- | mbr | bin | 0 -> 512 bytes | |||
-rw-r--r-- | menu.lst | 19 | ||||
-rw-r--r-- | motd | 10 | ||||
-rw-r--r-- | nsswitch.conf | 4 | ||||
-rw-r--r-- | passwd | 3 | ||||
-rwxr-xr-x | rcS | 24 | ||||
-rw-r--r-- | uclibc-config | 232 | ||||
-rwxr-xr-x | vditool | bin | 0 -> 20884 bytes |
31 files changed, 6416 insertions, 0 deletions
@@ -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 @@ -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 @@ -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="$PATH:/tools/cross/bin" + +- Uclibc unpack + +Just unpack it. + +- Linux-libc-headers 2.6 + +cp -R include/asm-i386 ../uClibc/include/asm && +cp -R include/{linux,sound} ../uClibc/include + +- Uclibc headers + +make allyesconfig && +sed '<A HREF="http://linuxfromscratch.org/mailman/listinfo/hlfs-dev">s at RUNTIME_PREFIX.</A>*@RUNTIME_PREFIX="/tools"@' -i .config && +echo > 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 && +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 && +patch -Np1 -i ../binutils-2.15.90.0.3-uclibc-210-cflags.patch + +mkdir ../binutils-build && +cd ../binutils-build + +../binutils-2.15.90.0.3/configure --prefix=/tools/cross --disable-nls \ + --target=i386-pc-linux-uclibc && +make configure-host && +make LDFLAGS="-all-static" && +make install && +make -C ld clean && +make -C ld LDFLAGS="-all-static" 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 && +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="-static" + +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(){}' > 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 && +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="i386-pc-linux-uclibc-gcc" \ +../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 && +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 && +patch -Np1 -i ../binutils-2.15.90.0.3-uclibc-210-cflags.patch + +mkdir ../binutils-build && +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 && +make && +make install && +make -C ld clean && +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 && +make && +make install + +- Coreutils + +./configure --prefix=/tools --host=i386-pc-linux-uclibc \ + --build=i386-pc-linux-uclibc --target=i386-pc-linux-uclibc && +make && +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=<proxy_host>:<port> +</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 Binary files differnew file mode 100644 index 0000000..f0a26b2 --- /dev/null +++ b/doc/embedded_lfs.odp 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&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&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> >
+
+ <a href="/community/vmtn;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+ >VMTN</a> >
+
+ <a href="/community/vmtn/desktop;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+ >Desktop</a> >
+
+ <a href="/community/vmtn/desktop/ace;jsessionid=CF308B7BAA7CCE19537B9479BCF18143"
+ >VMware ACE</a> >
+
+
+
+ <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 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&start=0"
+ >1</a>
+ <a href="/thread/88396;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?tstart=0&start=15"
+ class="jive-pagination-current" >2</a>
+ </span>
+ <span class="jive-pagination-prevnext">
+ <a href="/thread/88396;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?tstart=0&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 > Run > and type gpedit.msc.<br /> +<br /> +2: Navigate to Computer Configuration > Administrative Templates > System > Logon > 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> 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&start=0"
+ >1</a>
+ <a href="/thread/88396;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?tstart=0&start=15"
+ class="jive-pagination-current" >2</a>
+ </span>
+ <span class="jive-pagination-prevnext">
+ <a href="/thread/88396;jsessionid=CF308B7BAA7CCE19537B9479BCF18143?tstart=0&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 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. @@ -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 @@ -0,0 +1 @@ +127.0.0.1 localhost @@ -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 @@ -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 Binary files differBinary files differnew file mode 100644 index 0000000..24676d8 --- /dev/null +++ b/keymap.us 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 @@ -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 @@ -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 @@ -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 Binary files differ |