%general-entities; ]> Busybox-&busybox-version; Busybox <para>BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. The utilities in BusyBox generally have fewer options than their full-featured GNU cousins; however, the options that are included provide the expected functionality and behave very much like their GNU counterparts. BusyBox provides a fairly complete environment for any small or embedded system.</para> </sect2> <sect2 role="installation"> <title>Installation of Busybox Before you build BusyBox, you may want to check the following URL for patches that the upstream maintainer of BusyBox has released to fix issues. Here's an example of how to apply the patches from Busybox's website replace {patch_name} with the name of the patch: patch -Np1 -i ../busybox-&busybox-version;{patch_name} The following patch fixes some issues that are related to the headers we are using: patch -Np1 -i ../&busybox-fixes-patch; Create the default configuration: make defconfig Below we are just telling Busybox to use the default configuration of uClibc. For those for more adventureous, you can use make menuconfig, and do a more custom build of your Busybox. We will need to edit the configuration file, to make sure everything gets compiled: BUSYBOX_OPTIONS="CONFIG_DMALLOC CONFIG_BUILD_AT_ONCE CONFIG_BUILD_LIBBUSYBOX CONFIG_FEATURE_SH_IS_NONE CONFIG_LOCALE_SUPPORT CONFIG_TFTP CONFIG_FTPGET CONFIG_FTPPUT CONFIG_IPCALC CONFIG_TFTP CONFIG_HUSH CONFIG_LASH CONFIG_MSH CONFIG_INETD CONFIG_DPKG CONFIG_RPM2CPIO CONFIG_RPM CONFIG_FOLD CONFIG_LOGNAME CONFIG_OD CONFIG_CRONTAB CONFIG_UUDECODE CONFIG_UUENCODE CONFIG_SULOGIN CONFIG_DC CONFIG_DEBUG_YANK_SUSv2 CONFIG_DEBUG_INIT CONFIG_DEBUG_CROND_OPTION CONFIG_FEATURE_UDHCP_DEBUG CONFIG_TASKSET CONFIG_CHATTR CONFIG_FSCK CONFIG_LSATTR CONFIG_CHPST CONFIG_SETUIDGID CONFIG_ENVUIDGID CONFIG_ENVDIR CONFIG_SOFTLIMIT CONFIG_FEATURE_2_4_MODULES" for config in $BUSYBOX_OPTIONS; do cp .config{,.orig} sed -e "s:${config}=y:${config}=n:" .config.orig > .config done BUSYBOX_OPTIONS="CONFIG_FEATURE_SH_IS_ASH CONFIG_FEATURE_TRACEROUTE_VERBOSE CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE" for config in $BUSYBOX_OPTIONS; do cp .config{,.orig} sed -e "s:# ${config} is not set:${config}=y:" .config.orig > .config done Compile the package: make ARCH=i386 CROSS_COMPILE="${CLFS_TARGET}-" CFLAGS="${BUILD}" Install the package: make ARCH=i386 CROSS_COMPILE="${CLFS_TARGET}-" CFLAGS="${BUILD}" CONFIG_PREFIX="${CLFS}" install If your going to build your kernel with modules, you will need to make sure depmod.pl is available: cp examples/depmod.pl ${CLFS}/cross-tools/bin chmod 755 ${CLFS}/cross-tools/bin/depmod.pl Contents of Busybox Installed programs To be Written