Busybox Clipping Reference


1. Production tools

1.1 Downloading and Extracting BusyBox

This chapter takes BusyBox version 1.20.2 as an example for explanation.

Execute the following command to download and extract busybox-1.20.2.tar.bz2:

wget https://busybox.net/downloads/busybox-1.20.2.tar.bz2

tar -xvf busybox-1.20.2.tar.bz2

cd busybox-1.20.2

You need to use this version and merge it into the attachment busybox_SS.patch

Download the busybox_SS.patch file, place it into the busybox-1.20.2 folder, and execute the following commands:

patch -p1 < busybox_SS.patch

The Busybox source code download address is https://busybox.net/downloads/


1.2 Configure the environment

For configuring the compilation environment, please refer to: Section 2.1 Environment Variable Configuration in the Compilation Environment Setup Chapter to select the appropriate compilation environment.


1.3 Compile busybox

Next, we will demonstrate how to compile and modify BusyBox using the 64-bit configuration as an example. If you choose to use the 32-bit version, you will need to modify the sstar_alkaid_arm-aarch64-linux-gnu-glibc_defconfig file, specifically the CONFIG_CROSS_COMPILER_PREFIX setting, according to the actual configuration in section 1.2.

make sstar_alkaid_arm-aarch64-linux-gnu-glibc_defconfig

make install

Generate the following files in _install/

cd _install/

tar -czf busybox-1.20.2-aarch64-linux-gnu-glibc-10.2.1-dynamic.tar.gz *

The file name to be generated here should be determined according to the platform environment in which busybox will run.

Through the corresponding deconfig under project/configs/demo/defconfigs, we can see:

Copy busybox-1.20.2-aarch64-linux-gnu-glibc-10.2.1-dynamic.tar.gz to project/image/busybox/

make image-fast regenerate image and burn it


2. Busybox clipping reference

2.1 Classification by busybox main options

Configuration Options Space Occupancy Functional Description
CONFIG_DESKTOP 8K Enable some non-essential configurations for desktop compatibility
CONFIG_FEATURE_NON_POSIX_CP \ Non-POSIX standard cp command
CONFIG_FEATURE_PIDFILE \ pid file generation path
CONFIG_FEATURE_SUID \ Enable root permission management
CONFIG_FEATURE_UTMP \ Used to record the currently logged in user, which will be used by the who function
CONFIG_FLOAT_DURATION \ Enable applets to support floating points, e.g. sleep N.NNN
CONFIG_INCLUDE_SUSv2 \ Enable UNIX 98 support
CONFIG_SHOW_USAGE 7K applets help information
CONFIG_STACK_OPTIMIZATION_386 \ i386 architecture stack-boundary=2

2.2 Sort by Applets display order

The following are the supported configurations for the busybox tool. You can choose whether to enable it as needed.

Option Name Module Description
Archival Utilities Various compression formats and compression tool configurations
Coreutils Configuration of common system tools
Console Utilities Console Utilities Configuration
Debian Utilities Debian System Tools
klibc-utils klibc utilities, including minips(ps), nuke(rm -rf), resume, run-init
Editors Editing tools, including sed, awk, vi, etc.
Finding Utilities Configuration of find, grep, xargs and other tool functions
Init Utilities System initialization tools, including reboot, poweroff, halt, etc.
Login/Password Management Utilities Login and Password Management Utilities
nux Ext2 FS Progs Ext2 file system management related tools
Linux Module Utilities Linux module management, insmod/rmmod/modprobe, etc.
Linux System Utilities Linux system administration tools
Miscellaneous Utilities Miscellaneous tools
Networking Utilities Network management tools, configurable Ipv4/ipv6 support, as well as support for tftp, telnetd and other tools
Print Utilities Printer utilities, including lpd/lpr/lpq utilities
Mail Utilities Mail related tools
Process Utilities Process management tools, including free, kill, top, watch, etc.
Runit Utilities Support for runit suite
Shells Includes support for ash and hush shells
System Logging Utilities System log tool support