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.
The following patch fixes some issues that are related to the headers we are using:
patch -Np1 -i ../busybox-1.2.2.1-fixes-1.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 and put into it's proper locations:
cp .config .config.orig
sed -e "s:# USING_CROSS_COMPILER.*:USING_CROSS_COMPILER=y:" \
-e "/^CROSS_COMPILER_PREFIX/s:=.*:=\"${CLFS_TARGET}-\":" \
.config.orig > .config
Compile the package:
make CROSS="${CLFS_TARGET}-" PREFIX="${CLFS}" EXTRA_CFLAGS="${BUILD}" busybox
Install the package:
make 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