include $(TOPDIR)/rules.mk
PKG_NAME:=busybox
-PKG_VERSION:=1.17.3
-PKG_RELEASE:=2
+PKG_VERSION:=1.18.4
+PKG_RELEASE:=1
PKG_FLAGS:=essential
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://www.busybox.net/downloads \
http://distfiles.gentoo.org/distfiles/
-PKG_MD5SUM:=a2ce1a951571da8c6e0eaf75b1acef60
+PKG_MD5SUM:=b03c5b46ced732679e525a920a1a62f5
PKG_BUILD_DEPENDS:=BUSYBOX_USE_LIBRPC:librpc
PKG_BUILD_PARALLEL:=1
compiler other than gcc.
If you do use gcc, this option may needlessly increase code size.
+config BUSYBOX_CONFIG_PLATFORM_LINUX
+ bool "Enable Linux-specific applets and features"
+ default y
+ help
+ For the most part, busybox requires only POSIX compatibility
+ from the target system, but some applets and features use
+ Linux-specific interfaces.
+
+ Answering 'N' here will disable such applets and hide the
+ corresponding configuration options.
+
choice
prompt "Buffer allocation policy"
default BUSYBOX_CONFIG_FEATURE_BUFFERS_GO_ON_STACK
busybox at runtime to create hard links or symlinks for all the
applets that are compiled into busybox.
+config BUSYBOX_CONFIG_INSTALL_NO_USR
+ bool "Don't use /usr"
+ default n
+ depends on BUSYBOX_CONFIG_FEATURE_INSTALLER
+ help
+ Disable use of /usr. busybox --install and "make install"
+ will install applets only to /bin and /sbin,
+ never to /usr/bin or /usr/sbin.
+
config BUSYBOX_CONFIG_LOCALE_SUPPORT
bool "Enable locale support (system needs locale for this to work)"
default n
help
With this option on, Unicode support is implemented using libc
routines. Otherwise, internal implementation is used.
+ Internal implementation is smaller.
config BUSYBOX_CONFIG_FEATURE_CHECK_UNICODE_IN_ENV
bool "Check $LANG environment variable"
Don't enable this unless you have a really good reason to clean
things up manually.
-config BUSYBOX_CONFIG_FEATURE_UTMP
- bool "Support utmp file"
- default n
- help
- The file /var/run/utmp is used to track who is currently logged in.
- With this option on, certain applets (getty, login, telnetd etc)
- will create and delete entries there.
- "who" applet requires this option.
-
config BUSYBOX_CONFIG_FEATURE_WTMP
bool "Support wtmp file"
default n
will append new entries there.
"last" applet requires this option.
+config BUSYBOX_CONFIG_FEATURE_UTMP
+ bool "Support utmp file"
+ default n
+ help
+ The file /var/run/utmp is used to track who is currently logged in.
+ With this option on, certain applets (getty, login, telnetd etc)
+ will create and delete entries there.
+ "who" applet requires this option.
+
config BUSYBOX_CONFIG_FEATURE_PIDFILE
bool "Support writing pidfiles"
default y
default y
help
With this option you can install the busybox binary belonging
- to root with the suid bit set, and it will automatically drop
- priviledges for applets that don't need root access.
+ to root with the suid bit set, enabling some applets to perform
+ root-level operations even when run by ordinary users
+ (for example, mounting of user mounts in fstab needs this).
+
+ Busybox will automatically drop priviledges for applets
+ that don't need root access.
If you are really paranoid and don't want to do this, build two
busybox binaries with different applets in them (and the appropriate
symlinks pointing to each binary), and only set the suid bit on the
- one that needs it. The applets currently marked to need the suid bit
- are:
+ one that needs it.
+
+ The applets currently marked to need the suid bit are:
crontab, dnsd, findfs, ipcrm, ipcs, login, passwd, ping, su,
traceroute, vlock.
config BUSYBOX_CONFIG_SELINUX
bool "Support NSA Security Enhanced Linux"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Enable support for SELinux in applets ls, ps, and id. Also provide
the option of compiling in SELinux applets.
endmenu
-menu 'Installation Options'
-
-config BUSYBOX_CONFIG_INSTALL_NO_USR
- bool "Don't use /usr"
- default n
- help
- Disable use of /usr. Don't activate this option if you don't know
- that you really want this behaviour.
+menu 'Installation Options ("make install" behavior)'
choice
- prompt "Applets links"
+ prompt "What kind of applet links to install"
default BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS
help
- Choose how you install applets links.
+ Choose what kind of links to applets are created by "make install".
config BUSYBOX_CONFIG_INSTALL_APPLET_SYMLINKS
bool "as soft-links"
bool "not installed"
depends on BUSYBOX_CONFIG_FEATURE_INSTALLER || BUSYBOX_CONFIG_FEATURE_SH_STANDALONE || BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
help
- Do not install applet links. Useful when using the -install feature
- or a standalone shell for rescue purposes.
+ Do not install applet links. Useful when you plan to use
+ busybox --install for installing links, or plan to use
+ a standalone shell and thus don't need applet links.
endchoice
config BUSYBOX_CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER
bool "as script wrapper"
help
- Install /bin/sh applet as script wrapper that call the busybox
- binary.
+ Install /bin/sh applet as script wrapper that calls
+ the busybox binary.
endchoice
bool "rpm2cpio"
default n
help
- Converts an RPM file into a CPIO archive.
+ Converts a RPM file into a CPIO archive.
config BUSYBOX_CONFIG_RPM
bool "rpm"
menu "Console Utilities"
+
+
config BUSYBOX_CONFIG_CHVT
bool "chvt"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program is used to change to another terminal.
Example: chvt 4 (change to terminal /dev/tty4)
config BUSYBOX_CONFIG_FGCONSOLE
bool "fgconsole"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program prints active (foreground) console number.
config BUSYBOX_CONFIG_DEALLOCVT
bool "deallocvt"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program deallocates unused virtual consoles.
config BUSYBOX_CONFIG_DUMPKMAP
bool "dumpkmap"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program dumps the kernel's keyboard translation table to
stdout, in binary format. You can then use loadkmap to load it.
config BUSYBOX_CONFIG_KBD_MODE
bool "kbd_mode"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program reports and sets keyboard mode.
config BUSYBOX_CONFIG_LOADFONT
bool "loadfont"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program loads a console font from standard input.
config BUSYBOX_CONFIG_LOADKMAP
bool "loadkmap"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program loads a keyboard translation table from
standard input.
config BUSYBOX_CONFIG_OPENVT
bool "openvt"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program is used to start a command on an unused
virtual terminal.
config BUSYBOX_CONFIG_SETCONSOLE
bool "setconsole"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program redirects the system console to another device,
like the current tty while logged in via telnet.
config BUSYBOX_CONFIG_SETFONT
bool "setfont"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Allows to load console screen map. Useful for i18n.
config BUSYBOX_CONFIG_SETKEYCODES
bool "setkeycodes"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program loads entries into the kernel's scancode-to-keycode
map, allowing unusual keyboards to generate usable keycodes.
config BUSYBOX_CONFIG_SETLOGCONS
bool "setlogcons"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
This program redirects the output console of kernel messages.
config BUSYBOX_CONFIG_SHOWKEY
bool "showkey"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Shows keys pressed.
config BUSYBOX_CONFIG_FEATURE_DATE_NANO
bool "Support %[num]N nanosecond format specifier"
default n
- depends on BUSYBOX_CONFIG_DATE
+ depends on BUSYBOX_CONFIG_DATE && BUSYBOX_CONFIG_PLATFORM_LINUX
help
Support %[num]N format specifier. Adds ~250 bytes of code.
replace all instances of 'a' with 'xyz'. This option is mainly
useful for cases when no other way of expressing a character
is possible.
+config BUSYBOX_CONFIG_BASE64
+ bool "base64"
+ default n
+ help
+ Base64 encode and decode
config BUSYBOX_CONFIG_CAL
bool "cal"
config BUSYBOX_CONFIG_STAT
bool "stat"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
display file or filesystem status.
config BUSYBOX_CONFIG_LSATTR
bool "lsattr"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
lsattr lists the file attributes on a second extended file system.
menu "Editors"
+config BUSYBOX_CONFIG_PATCH
+ bool "patch"
+ default n
+ help
+ Apply a unified diff formatted patch.
+
config BUSYBOX_CONFIG_AWK
bool "awk"
default y
Small, simple, evil. Part of SUSv3. If you're not already using
this, you don't need it.
-config BUSYBOX_CONFIG_PATCH
- bool "patch"
- default n
- help
- Apply a unified diff formatted patch.
-
config BUSYBOX_CONFIG_SED
bool "sed"
default y
help
Enable reading and parsing of $PWD/bootchartd.conf
and /etc/bootchartd.conf files.
+config BUSYBOX_CONFIG_HALT
+ bool "poweroff, halt, and reboot"
+ default y
+ help
+ Stop all processes and either halt, reboot, or power off the system.
+
+config BUSYBOX_CONFIG_FEATURE_CALL_TELINIT
+ bool "Call telinit on shutdown and reboot"
+ default n
+ depends on BUSYBOX_CONFIG_HALT && !BUSYBOX_CONFIG_INIT
+ help
+ Call an external program (normally telinit) to facilitate
+ a switch to a proper runlevel.
+ This option is only available if you selected halt and friends,
+ but did not select init.
+
+config BUSYBOX_CONFIG_TELINIT_PATH
+ string "Path to telinit executable"
+ default "/sbin/telinit"
+ depends on BUSYBOX_CONFIG_FEATURE_CALL_TELINIT
+ help
+ When busybox halt and friends have to call external telinit
+ to facilitate proper shutdown, this path is to be used when
+ locating telinit executable.
config BUSYBOX_CONFIG_INIT
bool "init"
default y
This does not apply to initramfs, which runs /init as PID 1 and
requires no special support.
-config BUSYBOX_CONFIG_HALT
- bool "poweroff, halt, and reboot"
- default y
- help
- Stop all processes and either halt, reboot, or power off the system.
-
-config BUSYBOX_CONFIG_FEATURE_CALL_TELINIT
- bool "Call telinit on shutdown and reboot"
- default n
- depends on BUSYBOX_CONFIG_HALT && !BUSYBOX_CONFIG_INIT
- help
- Call an external program (normally telinit) to facilitate
- a switch to a proper runlevel.
-
- This option is only available if you selected halt and friends,
- but did not select init.
-
-config BUSYBOX_CONFIG_TELINIT_PATH
- string "Path to telinit executable"
- default "/sbin/telinit"
- depends on BUSYBOX_CONFIG_FEATURE_CALL_TELINIT
+config BUSYBOX_CONFIG_INIT_TERMINAL_TYPE
+ string "Initial terminal type"
+ default "linux"
+ depends on BUSYBOX_CONFIG_INIT
help
- When busybox halt and friends have to call external telinit
- to facilitate proper shutdown, this path is to be used when
- locating telinit executable.
+ This is the initial value set by init for the TERM environment
+ variable. This variable is used by programs which make use of
+ extended terminal capabilities.
+ Note that on Linux, init attempts to detect serial terminal and
+ sets TERM to "vt102" if one is found.
config BUSYBOX_CONFIG_MESG
bool "mesg"
default y
a rarely used feature which allows you to use names
instead of IP/mask pairs in route command.
+config BUSYBOX_CONFIG_FEATURE_USE_TERMIOS
+ bool "Use termios to manipulate the screen"
+ default n
+ depends on BUSYBOX_CONFIG_MORE || BUSYBOX_CONFIG_TOP || BUSYBOX_CONFIG_POWERTOP
+ help
+ This option allows utilities such as 'more' and 'top' to determine
+ the size of the screen. If you leave this disabled, your utilities
+ that display things on the screen will be especially primitive and
+ will be unable to determine the current screen size, and will be
+ unable to move the cursor.
+
config BUSYBOX_CONFIG_FEATURE_EDITING
bool "Command line editing"
default y
config BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
bool "History saving"
default n
- depends on BUSYBOX_CONFIG_ASH && BUSYBOX_CONFIG_FEATURE_EDITING
+ depends on BUSYBOX_CONFIG_FEATURE_EDITING
help
- Enable history saving in ash shell.
+ Enable history saving in shells.
config BUSYBOX_CONFIG_FEATURE_TAB_COMPLETION
bool "Tab completion"
config BUSYBOX_CONFIG_MONOTONIC_SYSCALL
bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
time intervals (time, ping, traceroute etc need this).
menu "Login/Password Management Utilities"
+config BUSYBOX_CONFIG_ADD_SHELL
+ bool "add-shell"
+ default n if BUSYBOX_CONFIG_DESKTOP
+ help
+ Add shells to /etc/shells.
+
+config BUSYBOX_CONFIG_REMOVE_SHELL
+ bool "remove-shell"
+ default n if BUSYBOX_CONFIG_DESKTOP
+ help
+ Remove shells from /etc/shells.
+
config BUSYBOX_CONFIG_FEATURE_SHADOWPASSWDS
bool "Support for shadow passwords"
default n
With this option off, login will fail password check for any
user which has password encrypted with these algorithms.
-config BUSYBOX_CONFIG_ADDGROUP
- bool "addgroup"
+config BUSYBOX_CONFIG_ADDUSER
+ bool "adduser"
default n
help
- Utility for creating a new group account.
+ Utility for creating a new user account.
-config BUSYBOX_CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS
+config BUSYBOX_CONFIG_FEATURE_ADDUSER_LONG_OPTIONS
bool "Enable long options"
default n
- depends on BUSYBOX_CONFIG_ADDGROUP && BUSYBOX_CONFIG_LONG_OPTS
- help
- Support long options for the addgroup applet.
-
-config BUSYBOX_CONFIG_FEATURE_ADDUSER_TO_GROUP
- bool "Support for adding users to groups"
- default n
- depends on BUSYBOX_CONFIG_ADDGROUP
- help
- If called with two non-option arguments,
- addgroup will add an existing user to an
- existing group.
-
-config BUSYBOX_CONFIG_DELGROUP
- bool "delgroup"
- default n
- help
- Utility for deleting a group account.
-
-config BUSYBOX_CONFIG_FEATURE_DEL_USER_FROM_GROUP
- bool "Support for removing users from groups"
- default n
- depends on BUSYBOX_CONFIG_DELGROUP
+ depends on BUSYBOX_CONFIG_ADDUSER && BUSYBOX_CONFIG_LONG_OPTS
help
- If called with two non-option arguments, deluser
- or delgroup will remove an user from a specified group.
+ Support long options for the adduser applet.
config BUSYBOX_CONFIG_FEATURE_CHECK_NAMES
bool "Enable sanity check on user/group names in adduser and addgroup"
For compatibility with Samba machine accounts "$" is also supported
at the end of the user or group name.
-config BUSYBOX_CONFIG_ADDUSER
- bool "adduser"
- default n
- help
- Utility for creating a new user account.
-
-config BUSYBOX_CONFIG_FEATURE_ADDUSER_LONG_OPTIONS
- bool "Enable long options"
- default n
- depends on BUSYBOX_CONFIG_ADDUSER && BUSYBOX_CONFIG_LONG_OPTS
- help
- Support long options for the adduser applet.
-
config BUSYBOX_CONFIG_FIRST_SYSTEM_ID
int "First valid system uid or gid for adduser and addgroup"
depends on BUSYBOX_CONFIG_ADDUSER || BUSYBOX_CONFIG_ADDGROUP
help
Last valid system uid or gid for adduser and addgroup
+config BUSYBOX_CONFIG_ADDGROUP
+ bool "addgroup"
+ default n
+ help
+ Utility for creating a new group account.
+
+config BUSYBOX_CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS
+ bool "Enable long options"
+ default n
+ depends on BUSYBOX_CONFIG_ADDGROUP && BUSYBOX_CONFIG_LONG_OPTS
+ help
+ Support long options for the addgroup applet.
+
+config BUSYBOX_CONFIG_FEATURE_ADDUSER_TO_GROUP
+ bool "Support for adding users to groups"
+ default n
+ depends on BUSYBOX_CONFIG_ADDGROUP
+ help
+ If called with two non-option arguments,
+ addgroup will add an existing user to an
+ existing group.
+
config BUSYBOX_CONFIG_DELUSER
bool "deluser"
default n
help
Utility for deleting a user account.
+config BUSYBOX_CONFIG_DELGROUP
+ bool "delgroup"
+ default n
+ help
+ Utility for deleting a group account.
+
+config BUSYBOX_CONFIG_FEATURE_DEL_USER_FROM_GROUP
+ bool "Support for removing users from groups"
+ default n
+ depends on BUSYBOX_CONFIG_DELGROUP
+ help
+ If called with two non-option arguments, deluser
+ or delgroup will remove an user from a specified group.
+
config BUSYBOX_CONFIG_GETTY
bool "getty"
default n
config BUSYBOX_CONFIG_LOGIN
bool "login"
default n
- select BUSYBOX_CONFIG_FEATURE_SUID
select BUSYBOX_CONFIG_FEATURE_SYSLOG
help
login is used when signing onto a system.
config BUSYBOX_CONFIG_PASSWD
bool "passwd"
default y
- select BUSYBOX_CONFIG_FEATURE_SUID
select BUSYBOX_CONFIG_FEATURE_SYSLOG
help
passwd changes passwords for user and group accounts. A normal user
config BUSYBOX_CONFIG_SU
bool "su"
default n
- select BUSYBOX_CONFIG_FEATURE_SUID
select BUSYBOX_CONFIG_FEATURE_SYSLOG
help
su is used to become another user during a login session.
config BUSYBOX_CONFIG_VLOCK
bool "vlock"
default n
- select BUSYBOX_CONFIG_FEATURE_SUID
help
Build the "vlock" applet which allows you to lock (virtual) terminals.
config BUSYBOX_CONFIG_CONSPY
bool "conspy"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
A text-mode VNC like program for Linux virtual terminals.
example: conspy NUM shared access to console num
or conspy -nd NUM screenshot of console num
or conspy -cs NUM poor man's GNU screen like
+config BUSYBOX_CONFIG_NANDWRITE
+ bool "nandwrite"
+ default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ help
+ Write to the specified MTD device, with bad blocks awareness
+config BUSYBOX_CONFIG_NANDDUMP
+ bool "nanddump"
+ default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
+ help
+ Dump the content of raw NAND chip
config BUSYBOX_CONFIG_UBIATTACH
bool "ubiattach"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Attach MTD device to an UBI device.
config BUSYBOX_CONFIG_UBIDETACH
bool "ubidetach"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Detach MTD device from an UBI device.
config BUSYBOX_CONFIG_ADJTIMEX
bool "adjtimex"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Adjtimex reads and optionally sets adjustment parameters for
the Linux clock adjustment algorithm.
The bbconfig applet will print the config file with which
busybox was built.
+config BUSYBOX_CONFIG_FEATURE_COMPRESS_BBCONFIG
+ bool "Compress bbconfig data"
+ default n
+ depends on BUSYBOX_CONFIG_BBCONFIG
+ help
+ Store bbconfig data in compressed form, uncompress them on-the-fly
+ before output.
+
+ If you have a really tiny busybox with few applets enabled (and
+ bunzip2 isn't one of them), the overhead of the decompressor might
+ be noticeable. Also, if you run executables directly from ROM
+ and have very little memory, this might not be a win. Otherwise,
+ you probably want this.
+
config BUSYBOX_CONFIG_BEEP
bool "beep"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
The beep applets beeps in a given freq/Hz.
config BUSYBOX_CONFIG_CROND
bool "crond"
default y
- select BUSYBOX_CONFIG_FEATURE_SUID
select BUSYBOX_CONFIG_FEATURE_SYSLOG
help
Crond is a background daemon that parses individual crontab
config BUSYBOX_CONFIG_CRONTAB
bool "crontab"
default y
- select BUSYBOX_CONFIG_FEATURE_SUID
help
Crontab manipulates the crontab for a particular user. Only
the superuser may specify a different user and/or crontab directory.
config BUSYBOX_CONFIG_DEVFSD
bool "devfsd (obsolete)"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
select BUSYBOX_CONFIG_FEATURE_SYSLOG
help
This is deprecated and should NOT be used anymore.
config BUSYBOX_CONFIG_FEATURE_DEVFS
bool "Use devfs names for all devices (obsolete)"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
This is obsolete and should NOT be used anymore.
Use linux >= 2.6 (optionally with hotplug) and mdev instead!
config BUSYBOX_CONFIG_EJECT
bool "eject"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Used to eject cdroms. (defaults to /dev/cdrom)
config BUSYBOX_CONFIG_FBSPLASH
bool "fbsplash"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Shows splash image and progress bar on framebuffer device.
Can be used during boot phase of an embedded device. ~2kb.
config BUSYBOX_CONFIG_IONICE
bool "ionice"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Set/set program io scheduling class and priority
Requires kernel >= 2.6.13
default n
depends on BUSYBOX_CONFIG_FEATURE_LESS_DASHCMD
help
- Enable "-N" command.
+ Enables "-N" command.
config BUSYBOX_CONFIG_HDPARM
bool "hdparm"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Get/Set hard drive parameters. Primarily intended for ATA
drives. Adds about 13k (or around 30k if you enable the
help
'makedevs' is a utility used to create a batch of devices with
one command.
- .
+
There are two choices for command line behaviour, the interface
as used by LEAF/Linux Router Project, or a device table file.
- .
+
'leaf' is traditionally what busybox follows, it allows multiple
devices of a particluar type to be created per command.
e.g. /dev/hda[0-9]
Device properties are passed as command line arguments.
- .
+
'table' reads device properties from a file or stdin, allowing
a batch of unrelated devices to be made with one command.
User/group names are allowed as an alternative to uid/gid.
config BUSYBOX_CONFIG_RAIDAUTORUN
bool "raidautorun"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
raidautorun tells the kernel md driver to
search and start RAID arrays.
config BUSYBOX_CONFIG_READAHEAD
bool "readahead"
default n
- depends on BUSYBOX_CONFIG_LFS
+ depends on BUSYBOX_CONFIG_LFS && BUSYBOX_CONFIG_PLATFORM_LINUX
help
Preload the files listed on the command line into RAM cache so that
subsequent reads on these files will not block on disk I/O.
config BUSYBOX_CONFIG_RFKILL
bool "rfkill"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Enable/disable wireless devices.
config BUSYBOX_CONFIG_RX
bool "rx"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Receive files using the Xmodem protocol.
config BUSYBOX_CONFIG_WATCHDOG
bool "watchdog"
default y
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
The watchdog utility is used with hardware or software watchdog
device drivers. It opens the specified watchdog device special file
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
#
menu "Linux Module Utilities"
+depends on BUSYBOX_CONFIG_PLATFORM_LINUX
config BUSYBOX_CONFIG_MODINFO
bool "modinfo"
menu "Networking Utilities"
+config BUSYBOX_CONFIG_NBDCLIENT
+ bool "nbd-client"
+ default n
+ help
+ Network block device client
+
config BUSYBOX_CONFIG_NC
bool "nc"
default y
config BUSYBOX_CONFIG_ARP
bool "arp"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Manipulate the system ARP cache.
config BUSYBOX_CONFIG_ARPING
bool "arping"
default y
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Ping hosts by ARP packets.
config BUSYBOX_CONFIG_BRCTL
bool "brctl"
default y
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Manage ethernet bridges.
Supports addbr/delbr and addif/delif.
config BUSYBOX_CONFIG_ETHER_WAKE
bool "ether-wake"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Send a magic packet to wake up sleeping machines.
Then a request to /url/myfile will be forwarded to
http://hostname[:port]/new/path/myfile.
+config BUSYBOX_CONFIG_FEATURE_HTTPD_GZIP
+ bool "Support for GZIP content encoding"
+ default n
+ depends on BUSYBOX_CONFIG_HTTPD
+ help
+ Makes httpd send files using GZIP content encoding if the
+ client supports it and a pre-compressed <file>.gz exists.
+
config BUSYBOX_CONFIG_IFCONFIG
bool "ifconfig"
default y
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Ifconfig is used to configure the kernel-resident network interfaces.
config BUSYBOX_CONFIG_IFENSLAVE
bool "ifenslave"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Userspace application to bind several interfaces
to a logical interface (use with kernel bonding driver).
config BUSYBOX_CONFIG_IFPLUGD
bool "ifplugd"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Network interface plug detection daemon.
config BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN
bool "Use busybox ip applet"
default n
- depends on BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP
+ depends on BUSYBOX_CONFIG_FEATURE_IFUPDOWN_IP && BUSYBOX_CONFIG_PLATFORM_LINUX
select BUSYBOX_CONFIG_IP
select BUSYBOX_CONFIG_FEATURE_IP_ADDRESS
select BUSYBOX_CONFIG_FEATURE_IP_LINK
config BUSYBOX_CONFIG_IP
bool "ip"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
The "ip" applet is a TCP/IP interface configuration and routing
utility. You generally don't need "ip" to use busybox with
config BUSYBOX_CONFIG_NAMEIF
bool "nameif"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
select BUSYBOX_CONFIG_FEATURE_SYSLOG
help
nameif is used to rename network interface by its MAC address.
config BUSYBOX_CONFIG_NETSTAT
bool "netstat"
default y
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
netstat prints information about the Linux networking subsystem.
config BUSYBOX_CONFIG_NTPD
bool "ntpd"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
The NTP client/server daemon.
config BUSYBOX_CONFIG_PING
bool "ping"
default y
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to
elicit an ICMP ECHO_RESPONSE from a host or gateway.
config BUSYBOX_CONFIG_ROUTE
bool "route"
default y
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Route displays or manipulates the kernel's IP routing tables.
config BUSYBOX_CONFIG_SLATTACH
bool "slattach"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
slattach is a small utility to attach network interfaces to serial
lines.
mount -t devpts devpts /dev/pts
- You need to be sure that Busybox has LOGIN and
+ You need to be sure that busybox has LOGIN and
FEATURE_SUID enabled. And finally, you should make
certain that Busybox has been installed setuid root:
config BUSYBOX_CONFIG_TRACEROUTE
bool "traceroute"
default y
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Utility to trace the route of IP packets.
config BUSYBOX_CONFIG_TUNCTL
bool "tunctl"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
tunctl creates or deletes tun devices.
config BUSYBOX_CONFIG_VCONFIG
bool "vconfig"
default y
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Creates, removes, and configures VLAN interfaces
help
Support long options for the wget applet.
+config BUSYBOX_CONFIG_FEATURE_WGET_TIMEOUT
+ bool "Enable read timeout option -T SEC"
+ default n
+ depends on BUSYBOX_CONFIG_WGET
+ help
+ Supports network read timeout for wget, so that wget will give
+ up and timeout when reading network data, through the -T command
+ line option. Currently only network data read timeout is
+ supported (i.e., timeout is not applied to the DNS nor TCP
+ connection initialization). When FEATURE_WGET_LONG_OPTIONS is
+ also enabled, the --timeout option will work in addition to -T.
+
config BUSYBOX_CONFIG_ZCIP
bool "zcip"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
select BUSYBOX_CONFIG_FEATURE_SYSLOG
help
ZCIP provides ZeroConf IPv4 address selection, according to RFC 3927.
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
#
+
+
config BUSYBOX_CONFIG_UDHCPD
bool "udhcp server (udhcpd)"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
udhcpd is a DHCP server geared primarily toward embedded systems,
while striving to be fully functional and RFC compliant.
config BUSYBOX_CONFIG_UDHCPC
bool "udhcp client (udhcpc)"
default y
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
udhcpc is a DHCP client geared primarily toward embedded systems,
while striving to be fully functional and RFC compliant.
menu "Process Utilities"
+config BUSYBOX_CONFIG_IOSTAT
+ bool "iostat"
+ default n
+ help
+ Report CPU and I/O statistics
+config BUSYBOX_CONFIG_MPSTAT
+ bool "mpstat"
+ default n
+ help
+ Per-processor statistics
+config BUSYBOX_CONFIG_PMAP
+ bool "pmap"
+ default n
+ help
+ Display processes' memory mappings.
+config BUSYBOX_CONFIG_POWERTOP
+ bool "powertop"
+ default n
+ help
+ Analyze power consumption on Intel-based laptops
config BUSYBOX_CONFIG_SMEMCAP
bool "smemcap"
default n
config BUSYBOX_CONFIG_FREE
bool "free"
default y
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
free displays the total amount of free and used physical and swap
memory in the system, as well as the buffers used by the kernel.
config BUSYBOX_CONFIG_FEATURE_PS_TIME
bool "Enable time and elapsed time output"
default n
- depends on BUSYBOX_CONFIG_PS && BUSYBOX_CONFIG_DESKTOP
+ depends on BUSYBOX_CONFIG_PS && BUSYBOX_CONFIG_DESKTOP && BUSYBOX_CONFIG_PLATFORM_LINUX
help
Support -o time and -o etime output specifiers.
config BUSYBOX_CONFIG_UPTIME
bool "uptime"
default y
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
uptime gives a one line display of the current time, how long
the system has been running, how many users are currently logged
menu "Shells"
-
-
config BUSYBOX_CONFIG_ASH
bool "ash"
default y
This option recreates the prompt string from the environment
variable each time it is displayed.
+config BUSYBOX_CONFIG_CTTYHACK
+ bool "cttyhack"
+ default n
+ help
+ One common problem reported on the mailing list is "can't access tty;
+ job control turned off" error message which typically appears when
+ one tries to use shell with stdin/stdout opened to /dev/console.
+ This device is special - it cannot be a controlling tty.
+
+ Proper solution is to use correct device instead of /dev/console.
+
+ cttyhack provides "quick and dirty" solution to this problem.
+ It analyzes stdin with various ioctls, trying to determine whether
+ it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
+ If it detects one, it closes stdin/out/err and reopens that device.
+ Then it executes given program. Opening the device will make
+ that device a controlling tty. This may require cttyhack
+ to be a session leader.
+
+ Example for /etc/inittab (for busybox init):
+
+ ::respawn:/bin/cttyhack /bin/sh
+
+ Starting an interactive shell from boot shell script:
+
+ setsid cttyhack sh
+
+ Giving controlling tty to shell running with PID 1:
+
+ # exec cttyhack sh
+
+ Without cttyhack, you need to know exact tty name,
+ and do something like this:
+
+ # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
+
config BUSYBOX_CONFIG_HUSH
bool "hush"
default n
help
- hush is a small shell (22k). It handles the normal flow control
+ hush is a small shell (25k). It handles the normal flow control
constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
case/esac. Redirections, here documents, $((arithmetic))
and functions are supported.
It will compile and work on no-mmu systems.
- It does not handle select, aliases, brace expansion,
- tilde expansion, &>file and >&file redirection of stdout+stderr.
+ It does not handle select, aliases, tilde expansion,
+ &>file and >&file redirection of stdout+stderr.
config BUSYBOX_CONFIG_HUSH_BASH_COMPAT
bool "bash-compatible extensions"
help
Enable bash-compatible extensions.
+config BUSYBOX_CONFIG_HUSH_BRACE_EXPANSION
+ bool "Brace expansion"
+ default n
+ depends on BUSYBOX_CONFIG_HUSH_BASH_COMPAT
+ help
+ Enable {abc,def} extension.
+
config BUSYBOX_CONFIG_HUSH_HELP
bool "help builtin"
default y
from stdin just like a shell script from a file.
No prompt, no PS1/PS2 magic shell variables.
+config BUSYBOX_CONFIG_HUSH_SAVEHISTORY
+ bool "Save command history to .hush_history"
+ default n
+ depends on BUSYBOX_CONFIG_HUSH_INTERACTIVE && BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
+ help
+ Enable history saving in hush.
+
config BUSYBOX_CONFIG_HUSH_JOB
bool "Job control"
default y
help
Enable support for local variables in functions.
+config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT
+ bool "Pseudorandom generator and $RANDOM variable"
+ default n
+ depends on BUSYBOX_CONFIG_HUSH
+ help
+ Enable pseudorandom generator and dynamic variable "$RANDOM".
+ Each read of "$RANDOM" will generate a new pseudorandom value.
+
config BUSYBOX_CONFIG_HUSH_EXPORT_N
- bool "Support export '-n' option"
+ bool "Support 'export -n' option"
default y
depends on BUSYBOX_CONFIG_HUSH
help
- Enable support for export '-n' option in hush. It is a bash extension.
+ export -n unexports variables. It is a bash extension.
-config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT
- bool "Pseudorandom generator and $RANDOM variable"
+config BUSYBOX_CONFIG_HUSH_MODE_X
+ bool "Support 'hush -x' option and 'set -x' command"
default n
depends on BUSYBOX_CONFIG_HUSH
help
- Enable pseudorandom generator and dynamic variable "$RANDOM".
- Each read of "$RANDOM" will generate a new pseudorandom value.
+ This instructs hush to print commands before execution.
+ Adds ~300 bytes.
+
+config BUSYBOX_CONFIG_MSH
+ bool "msh (deprecated: aliased to hush)"
+ default n
+ select BUSYBOX_CONFIG_HUSH
+ help
+ msh is deprecated and will be removed, please migrate to hush.
choice
endchoice
-config BUSYBOX_CONFIG_LASH
- bool "lash (deprecated: aliased to hush)"
- default n
- select BUSYBOX_CONFIG_HUSH
- help
- lash is deprecated and will be removed, please migrate to hush.
-
-config BUSYBOX_CONFIG_MSH
- bool "msh (deprecated: please use hush)"
- default n
- select BUSYBOX_CONFIG_HUSH
- help
- msh is deprecated and will be removed, please migrate to hush.
- If there is a feature msh has but hush does not, please let us know.
-
-# The minix shell (adds just 30k) is quite complete and handles things
-# like for/do/done, case/esac and all the things you expect a Bourne
-# shell to do. It is not always pedantically correct about Bourne
-# shell grammar (try running the shell testscript "tests/sh.testcases"
-# on it and compare vs bash) but for most things it works quite well.
-# It uses only vfork, so it can be used on uClinux systems.
-
-
config BUSYBOX_CONFIG_SH_MATH_SUPPORT
bool "POSIX math support"
default y
This feature is relatively new. Use with care.
-config BUSYBOX_CONFIG_CTTYHACK
- bool "cttyhack"
- default n
- help
- One common problem reported on the mailing list is "can't access tty;
- job control turned off" error message which typically appears when
- one tries to use shell with stdin/stdout opened to /dev/console.
- This device is special - it cannot be a controlling tty.
-
- Proper solution is to use correct device instead of /dev/console.
-
- cttyhack provides "quick and dirty" solution to this problem.
- It analyzes stdin with various ioctls, trying to determine whether
- it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
- If it detects one, it closes stdin/out/err and reopens that device.
- Then it executes given program. Opening the device will make
- that device a controlling tty. This may require cttyhack
- to be a session leader.
-
- Example for /etc/inittab (for busybox init):
-
- ::respawn:/bin/cttyhack /bin/sh
-
- Giving controlling tty to shell running with PID 1:
-
- $ exec cttyhack sh
-
- Starting an interactive shell from boot shell script:
-
- setsid cttyhack sh
-
endmenu
+# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
menu "System Logging Utilities"
+
+
config BUSYBOX_CONFIG_SYSLOGD
bool "syslogd"
default y
you wish to record the messages produced by the kernel,
you should enable this option.
+config BUSYBOX_CONFIG_FEATURE_KLOGD_KLOGCTL
+ bool "Use the klogctl() interface"
+ default y
+ depends on BUSYBOX_CONFIG_KLOGD && BUSYBOX_CONFIG_PLATFORM_LINUX
+ help
+ The klogd applet supports two interfaces for reading
+ kernel messages. Linux provides the klogctl() interface
+ which allows reading messages from the kernel ring buffer
+ independently from the file system.
+
+ If you answer 'N' here, klogd will use the more portable
+ approach of reading them from /proc or a device node.
+ However, this method requires the file to be available.
+
+ If in doubt, say 'Y'.
+
config BUSYBOX_CONFIG_LOGGER
bool "logger"
default y
menu "Linux System Utilities"
+config BUSYBOX_CONFIG_BLOCKDEV
+ bool "blockdev"
+ default n
+ help
+ Performs some ioctls with block devices.
config BUSYBOX_CONFIG_REV
bool "rev"
default n
config BUSYBOX_CONFIG_ACPID
bool "acpid"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
acpid listens to ACPI events coming either in textual form from
/proc/acpi/event (though it is marked deprecated it is still widely
config BUSYBOX_CONFIG_BLKID
bool "blkid"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
select BUSYBOX_CONFIG_VOLUMEID
help
Lists labels and UUIDs of all filesystems.
config BUSYBOX_CONFIG_DMESG
bool "dmesg"
default y
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
dmesg is used to examine or control the kernel ring buffer. When the
Linux kernel prints messages to the system log, they are stored in
config BUSYBOX_CONFIG_FBSET
bool "fbset"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
fbset is used to show or change the settings of a Linux frame buffer
device. The frame buffer device provides a simple and unique
config BUSYBOX_CONFIG_FDFLUSH
bool "fdflush"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
fdflush is only needed when changing media on slightly-broken
removable media drives. It is used to make Linux believe that a
config BUSYBOX_CONFIG_FDFORMAT
bool "fdformat"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
fdformat is used to low-level format a floppy disk.
config BUSYBOX_CONFIG_FDISK
bool "fdisk"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
The fdisk utility is used to divide hard disks into one or more
logical disks, which are generally called partitions. This utility
Enabling this option allows you to create or change BSD disklabels
and define and edit BSD disk slices.
+config BUSYBOX_CONFIG_FEATURE_GPT_LABEL
+ bool "Support GPT disklabels"
+ default n
+ depends on BUSYBOX_CONFIG_FDISK && BUSYBOX_CONFIG_FEATURE_FDISK_WRITABLE
+ help
+ Enabling this option allows you to view GUID Partition Table
+ disklabels.
+
config BUSYBOX_CONFIG_FEATURE_FDISK_ADVANCED
bool "Support expert mode"
default n
config BUSYBOX_CONFIG_FINDFS
bool "findfs"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
select BUSYBOX_CONFIG_VOLUMEID
help
Prints the name of a filesystem with given label or UUID.
config BUSYBOX_CONFIG_FREERAMDISK
bool "freeramdisk"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Linux allows you to create ramdisks. This utility allows you to
delete them and completely free all memory that was used for the
config BUSYBOX_CONFIG_MKFS_EXT2
bool "mkfs_ext2"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Utility to create EXT2 filesystems.
config BUSYBOX_CONFIG_MKFS_MINIX
bool "mkfs_minix"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
The minix filesystem is a nice, small, compact, read-write filesystem
with little overhead. If you wish to be able to create minix
config BUSYBOX_CONFIG_MKFS_REISER
bool "mkfs_reiser"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Utility to create ReiserFS filesystems.
Note: this applet needs a lot of testing and polishing.
config BUSYBOX_CONFIG_MKFS_VFAT
bool "mkfs_vfat"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Utility to create FAT32 filesystems.
config BUSYBOX_CONFIG_HWCLOCK
bool "hwclock"
default y
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
The hwclock utility is used to read and set the hardware clock
on a system. This is primarily used to set the current time on
config BUSYBOX_CONFIG_IPCRM
bool "ipcrm"
default n
- select BUSYBOX_CONFIG_FEATURE_SUID
help
The ipcrm utility allows the removal of System V interprocess
communication (IPC) objects and the associated data structures
config BUSYBOX_CONFIG_IPCS
bool "ipcs"
default n
- select BUSYBOX_CONFIG_FEATURE_SUID
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
The ipcs utility is used to provide information on the currently
allocated System V interprocess (IPC) objects in the system.
config BUSYBOX_CONFIG_LOSETUP
bool "losetup"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
losetup is used to associate or detach a loop device with a regular
file or block device, and to query the status of a loop device. This
config BUSYBOX_CONFIG_MDEV
bool "mdev"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
mdev is a mini-udev implementation for dynamically creating device
nodes in the /dev directory.
you will probably find this utility very helpful. If you don't have
any need to reading text files, you can leave this disabled.
-config BUSYBOX_CONFIG_FEATURE_USE_TERMIOS
- bool "Use termios to manipulate the screen"
- default n
- depends on BUSYBOX_CONFIG_MORE || BUSYBOX_CONFIG_TOP
- help
- This option allows utilities such as 'more' and 'top' to determine
- the size of the screen. If you leave this disabled, your utilities
- that display things on the screen will be especially primitive and
- will be unable to determine the current screen size, and will be
- unable to move the cursor.
-
config BUSYBOX_CONFIG_MOUNT
bool "mount"
default y
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
All files and filesystems in Unix are arranged into one big directory
tree. The 'mount' utility is used to graft a filesystem onto a
config BUSYBOX_CONFIG_PIVOT_ROOT
bool "pivot_root"
default y
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
The pivot_root utility swaps the mount points for the root filesystem
with some other mounted filesystem. This allows you to do all sorts
config BUSYBOX_CONFIG_RTCWAKE
bool "rtcwake"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
Enter a system sleep state until specified wakeup time.
config BUSYBOX_CONFIG_SETARCH
bool "setarch"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
The linux32 utility is used to create a 32bit environment for the
specified program (usually a shell). It only makes sense to have
config BUSYBOX_CONFIG_SWAPONOFF
bool "swaponoff"
default n
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
This option enables both the 'swapon' and the 'swapoff' utilities.
Once you have created some swap space using 'mkswap', you also need
config BUSYBOX_CONFIG_SWITCH_ROOT
bool "switch_root"
default y
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
The switch_root utility is used from initramfs to select a new
root device. Under initramfs, you have to use this instead of
config BUSYBOX_CONFIG_UMOUNT
bool "umount"
default y
+ depends on BUSYBOX_CONFIG_PLATFORM_LINUX
help
When you want to remove a mounted filesystem from its current mount
point, for example when you are shutting down the system, the
### config FEATURE_VOLUMEID_UFS
### bool "ufs filesystem"
-### default y
+### default n
### depends on VOLUMEID
### help
### TODO
+++ /dev/null
---- a/applets/Kbuild.src
-+++ b/applets/Kbuild.src
-@@ -28,7 +28,7 @@ HOSTCFLAGS_usage_pod.o = -I$(srctree_sla
- applets/applets.o: include/usage_compressed.h include/applet_tables.h
-
- applets/applet_tables: .config include/applets.h
--applets/usage: .config include/applets.h
-+applets/usage: .config include/applets.h include/autoconf.h
- applets/usage_pod: .config include/applet_tables.h include/applets.h
-
- quiet_cmd_gen_usage_compressed = GEN include/usage_compressed.h
+++ /dev/null
-diff -urpN busybox-1.17.3/coreutils/sort.c busybox-1.17.3-sort/coreutils/sort.c
---- busybox-1.17.3/coreutils/sort.c 2010-10-09 21:57:13.000000000 +0200
-+++ busybox-1.17.3-sort/coreutils/sort.c 2010-10-20 15:17:35.320293543 +0200
-@@ -412,7 +412,7 @@ int sort_main(int argc UNUSED_PARAM, cha
- #if ENABLE_FEATURE_SORT_BIG
- /* Open output file _after_ we read all input ones */
- if (option_mask32 & FLAG_o)
-- xmove_fd(xopen3(str_o, O_WRONLY, 0666), STDOUT_FILENO);
-+ xmove_fd(xopen3(str_o, O_WRONLY|O_CREAT|O_TRUNC, 0666), STDOUT_FILENO);
- #endif
- flag = (option_mask32 & FLAG_z) ? '\0' : '\n';
- for (i = 0; i < linecount; i++)
+diff --git a/networking/udhcp/packet.c b/networking/udhcp/packet.c
+index 2b7528c..94e53dc 100644
--- a/networking/udhcp/packet.c
+++ b/networking/udhcp/packet.c
-@@ -165,6 +165,11 @@ uint16_t FAST_FUNC udhcp_checksum(void *
+@@ -165,6 +165,11 @@ uint16_t FAST_FUNC udhcp_checksum(void *addr, int count)
return ~sum;
}
/* Construct a ip/udp header for a packet, send packet */
int FAST_FUNC udhcp_send_raw_packet(struct dhcp_packet *dhcp_pkt,
uint32_t source_nip, int source_port,
-@@ -173,10 +178,10 @@ int FAST_FUNC udhcp_send_raw_packet(stru
+@@ -173,10 +178,10 @@ int FAST_FUNC udhcp_send_raw_packet(struct dhcp_packet *dhcp_pkt,
{
struct sockaddr_ll dest_sll;
struct ip_udp_dhcp_packet packet;
fd = socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP));
if (fd < 0) {
-@@ -185,8 +190,8 @@ int FAST_FUNC udhcp_send_raw_packet(stru
+@@ -185,8 +190,8 @@ int FAST_FUNC udhcp_send_raw_packet(struct dhcp_packet *dhcp_pkt,
}
memset(&dest_sll, 0, sizeof(dest_sll));
dest_sll.sll_family = AF_PACKET;
dest_sll.sll_protocol = htons(ETH_P_IP);
-@@ -199,36 +204,24 @@ int FAST_FUNC udhcp_send_raw_packet(stru
+@@ -199,36 +204,24 @@ int FAST_FUNC udhcp_send_raw_packet(struct dhcp_packet *dhcp_pkt,
goto ret_close;
}
packet.udp.source = htons(source_port);
packet.udp.dest = htons(dest_port);
- /* size, excluding IP header: */
-- packet.udp.len = htons(UPD_DHCP_SIZE - padding);
+- packet.udp.len = htons(UDP_DHCP_SIZE - padding);
- /* for UDP checksumming, ip.len is set to UDP packet len */
+ p_len += sizeof(packet.udp);
+ packet.udp.len = htons(p_len);
packet.ip.tot_len = packet.udp.len;
-- packet.udp.check = udhcp_checksum(&packet, IP_UPD_DHCP_SIZE - padding);
+- packet.udp.check = udhcp_checksum(&packet, IP_UDP_DHCP_SIZE - padding);
- /* but for sending, it is set to IP packet len */
-- packet.ip.tot_len = htons(IP_UPD_DHCP_SIZE - padding);
+- packet.ip.tot_len = htons(IP_UDP_DHCP_SIZE - padding);
+ p_len += sizeof(packet.ip);
+ packet.udp.check = udhcp_checksum(&packet, p_len);
+ packet.ip.tot_len = htons(p_len);
packet.ip.check = udhcp_checksum(&packet.ip, sizeof(packet.ip));
udhcp_dump_packet(dhcp_pkt);
-- result = sendto(fd, &packet, IP_UPD_DHCP_SIZE - padding, /*flags:*/ 0,
+- result = sendto(fd, &packet, IP_UDP_DHCP_SIZE - padding, /*flags:*/ 0,
+ result = sendto(fd, &packet, p_len, /*flags:*/ 0,
(struct sockaddr *) &dest_sll, sizeof(dest_sll));
msg = "sendto";
ret_close:
-@@ -246,7 +239,6 @@ int FAST_FUNC udhcp_send_kernel_packet(s
+@@ -246,7 +239,6 @@ int FAST_FUNC udhcp_send_kernel_packet(struct dhcp_packet *dhcp_pkt,
uint32_t dest_nip, int dest_port)
{
struct sockaddr_in client;
int fd;
int result = -1;
const char *msg;
-@@ -277,9 +269,7 @@ int FAST_FUNC udhcp_send_kernel_packet(s
+@@ -277,9 +269,7 @@ int FAST_FUNC udhcp_send_kernel_packet(struct dhcp_packet *dhcp_pkt,
}
udhcp_dump_packet(dhcp_pkt);
+diff --git a/networking/udhcp/common.c b/networking/udhcp/common.c
+index 0a60261..eaf2b4b 100644
--- a/networking/udhcp/common.c
+++ b/networking/udhcp/common.c
-@@ -54,6 +54,8 @@ const struct dhcp_optflag dhcp_optflags[
- { OPTION_SIP_SERVERS , 0x78 }, /* DHCP_SIP_SERVERS */
+@@ -56,6 +56,8 @@ const struct dhcp_optflag dhcp_optflags[] = {
#endif
{ OPTION_STATIC_ROUTES , 0x79 }, /* DHCP_STATIC_ROUTES */
+ { OPTION_STATIC_ROUTES , 0xf9 }, /* DHCP_MS_STATIC_ROUTES */
+ { OPTION_6RD , 0xd4 }, /* DHCP_6RD (RFC) */
+ { OPTION_6RD , 0x96 }, /* DHCP_6RD (Comcast) */
{ OPTION_STRING , 0xfc }, /* DHCP_WPAD */
/* Options below have no match in dhcp_option_strings[],
-@@ -114,6 +116,8 @@ const char dhcp_option_strings[] ALIGN1
+@@ -118,6 +120,8 @@ const char dhcp_option_strings[] ALIGN1 =
// doesn't work in udhcpd.conf since OPTION_STATIC_ROUTES
// is not handled yet by "string->option" conversion code:
"staticroutes" "\0"/* DHCP_STATIC_ROUTES */
+ "ip6rd" "\0" /* DHCP_6RD (RFC) */
+ "ip6rd" "\0" /* DHCP_6RD (Comcast) */
+ "msstaticroutes""\0"/* DHCP_MS_STATIC_ROUTES */
"wpad" "\0" /* DHCP_WPAD */
;
-
-@@ -141,6 +145,7 @@ const uint8_t dhcp_option_lengths[] ALIG
+@@ -146,6 +150,7 @@ const uint8_t dhcp_option_lengths[] ALIGN1 = {
[OPTION_S32] = 4,
/* Just like OPTION_STRING, we use minimum length here */
[OPTION_STATIC_ROUTES] = 5,
};
+diff --git a/networking/udhcp/common.h b/networking/udhcp/common.h
+index f8f18ff..56cd8b0 100644
+--- a/networking/udhcp/common.h
++++ b/networking/udhcp/common.h
+@@ -88,6 +88,7 @@ enum {
+ OPTION_S32,
+ OPTION_BIN,
+ OPTION_STATIC_ROUTES,
++ OPTION_6RD,
+ #if ENABLE_FEATURE_UDHCP_RFC3397
+ OPTION_DNS_STRING, /* RFC1035 compressed domain name list */
+ OPTION_SIP_SERVERS,
+diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c
+index 78aabed..993326f 100644
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
-@@ -45,6 +45,7 @@ static const uint8_t len_of_option_as_st
+@@ -45,6 +45,7 @@ static const uint8_t len_of_option_as_string[] = {
[OPTION_IP ] = sizeof("255.255.255.255 "),
[OPTION_IP_PAIR ] = sizeof("255.255.255.255 ") * 2,
[OPTION_STATIC_ROUTES ] = sizeof("255.255.255.255/32 255.255.255.255 "),
[OPTION_STRING ] = 1,
#if ENABLE_FEATURE_UDHCP_RFC3397
[OPTION_DNS_STRING ] = 1, /* unused */
-@@ -68,6 +69,23 @@ static int sprint_nip(char *dest, const
+@@ -68,6 +69,23 @@ static int sprint_nip(char *dest, const char *pre, const uint8_t *ip)
return sprintf(dest, "%s%u.%u.%u.%u", pre, ip[0], ip[1], ip[2], ip[3]);
}
/* really simple implementation, just count the bits */
static int mton(uint32_t mask)
{
-@@ -177,6 +195,70 @@ static NOINLINE char *xmalloc_optname_op
+@@ -177,6 +195,70 @@ static NOINLINE char *xmalloc_optname_optval(uint8_t *option, const struct dhcp_
return ret;
}
#if ENABLE_FEATURE_UDHCP_RFC3397
case OPTION_DNS_STRING:
/* unpack option into dest; use ret for prefix (i.e., "optname=") */
---- a/networking/udhcp/common.h
-+++ b/networking/udhcp/common.h
-@@ -88,6 +88,7 @@ enum {
- OPTION_S32,
- OPTION_BIN,
- OPTION_STATIC_ROUTES,
-+ OPTION_6RD,
- #if ENABLE_FEATURE_UDHCP_RFC3397
- OPTION_DNS_STRING, /* RFC1035 compressed domain name list */
- OPTION_SIP_SERVERS,
+++ /dev/null
---- a/networking/udhcp/common.c
-+++ b/networking/udhcp/common.c
-@@ -53,7 +53,8 @@ const struct dhcp_optflag dhcp_optflags[
- { OPTION_DNS_STRING | OPTION_LIST , 0x77 }, /* DHCP_DOMAIN_SEARCH */
- { OPTION_SIP_SERVERS , 0x78 }, /* DHCP_SIP_SERVERS */
- #endif
-- { OPTION_STATIC_ROUTES , 0x79 }, /* DHCP_STATIC_ROUTES */
-+ { OPTION_STATIC_ROUTES , 0x79 }, /* DHCP_STATIC_ROUTES (RFC) */
-+ { OPTION_STATIC_ROUTES , 0xf9 }, /* DHCP_STATIC_ROUTES (Microsoft) */
- { OPTION_6RD , 0xd4 }, /* DHCP_6RD (RFC) */
- { OPTION_6RD , 0x96 }, /* DHCP_6RD (Comcast) */
- { OPTION_STRING , 0xfc }, /* DHCP_WPAD */
-@@ -115,7 +116,8 @@ const char dhcp_option_strings[] ALIGN1
- #endif
- // doesn't work in udhcpd.conf since OPTION_STATIC_ROUTES
- // is not handled yet by "string->option" conversion code:
-- "staticroutes" "\0"/* DHCP_STATIC_ROUTES */
-+ "staticroutes" "\0" /* DHCP_STATIC_ROUTES (RFC) */
-+ "msstaticroutes" "\0"/* DHCP_STATIC_ROUTES (Microsoft) */
- "ip6rd" "\0" /* DHCP_6RD (RFC) */
- "ip6rd" "\0" /* DHCP_6RD (Comcast) */
- "wpad" "\0" /* DHCP_WPAD */
+diff --git a/include/applets.src.h b/include/applets.src.h
+index f4fab53..f97f2d8 100644
--- a/include/applets.src.h
+++ b/include/applets.src.h
-@@ -278,6 +278,7 @@ IF_MT(APPLET(mt, _BB_DIR_BIN, _BB_SUID_D
+@@ -256,6 +256,7 @@ IF_MT(APPLET(mt, _BB_DIR_BIN, _BB_SUID_DROP))
IF_MV(APPLET(mv, _BB_DIR_BIN, _BB_SUID_DROP))
IF_NAMEIF(APPLET(nameif, _BB_DIR_SBIN, _BB_SUID_DROP))
IF_NC(APPLET(nc, _BB_DIR_USR_BIN, _BB_SUID_DROP))
IF_NETSTAT(APPLET(netstat, _BB_DIR_BIN, _BB_SUID_DROP))
IF_NICE(APPLET(nice, _BB_DIR_BIN, _BB_SUID_DROP))
IF_NMETER(APPLET(nmeter, _BB_DIR_USR_BIN, _BB_SUID_DROP))
+diff --git a/include/usage.src.h b/include/usage.src.h
+index 30fef24..ac78992 100644
+--- a/include/usage.src.h
++++ b/include/usage.src.h
+@@ -1,3 +1,4 @@
++
+ /* vi: set sw=8 ts=8: */
+ /*
+ * This file suffers from chronically incorrect tabification
+@@ -2706,6 +2707,9 @@ INSERT
+ " or\n" \
+ "$ nameif -c /etc/my_mactab_file\n" \
+
++#define netmsg_trivial_usage NOUSAGE_STR
++#define netmsg_full_usage ""
++
+ #define nmeter_trivial_usage \
+ "format_string"
+ #define nmeter_full_usage "\n\n" \
+diff --git a/networking/Config.src b/networking/Config.src
+index 6dd7df7..4682dd3 100644
--- a/networking/Config.src
+++ b/networking/Config.src
-@@ -623,6 +623,12 @@ config FEATURE_NAMEIF_EXTENDED
+@@ -640,6 +640,12 @@ config FEATURE_NAMEIF_EXTENDED
new_interface_name mac=00:80:C8:38:91:B5
new_interface_name 00:80:C8:38:91:B5
config NETSTAT
bool "netstat"
default y
+diff --git a/networking/Kbuild.src b/networking/Kbuild.src
+index f41a2df..6070a40 100644
--- a/networking/Kbuild.src
+++ b/networking/Kbuild.src
@@ -27,6 +27,7 @@ lib-$(CONFIG_IP) += ip.o
lib-$(CONFIG_NETSTAT) += netstat.o
lib-$(CONFIG_NSLOOKUP) += nslookup.o
lib-$(CONFIG_NTPD) += ntpd.o
+diff --git a/networking/netmsg.c b/networking/netmsg.c
+new file mode 100644
+index 0000000..43aba0d
--- /dev/null
+++ b/networking/netmsg.c
@@ -0,0 +1,63 @@
+ close(s);
+ exit(1);
+}
---- a/include/usage.src.h
-+++ b/include/usage.src.h
-@@ -1,3 +1,4 @@
-+
- /* vi: set sw=8 ts=8: */
- /*
- * This file suffers from chronically incorrect tabification
-@@ -2961,6 +2962,9 @@ INSERT
- " or\n" \
- "$ nameif -c /etc/my_mactab_file\n" \
-
-+#define netmsg_trivial_usage NOUSAGE_STR
-+#define netmsg_full_usage ""
-+
- #define netstat_trivial_usage \
- "[-laentuwxr"IF_FEATURE_NETSTAT_WIDE("W")IF_FEATURE_NETSTAT_PRG("p")"]"
- #define netstat_full_usage "\n\n" \
+++ /dev/null
---- a/sysklogd/syslogd.c
-+++ b/sysklogd/syslogd.c
-@@ -555,6 +555,7 @@ static void do_syslogd(void)
- {
- int sock_fd;
- #if ENABLE_FEATURE_REMOTE_LOG
-+ int send_err = 0;
- llist_t *item;
- #endif
- #if ENABLE_FEATURE_SYSLOGD_DUP
-@@ -636,11 +637,23 @@ static void do_syslogd(void)
- if (rh->remoteFD == -1)
- continue;
- }
-- /* Send message to remote logger, ignore possible error */
-- /* TODO: on some errors, close and set G.remoteFD to -1
-- * so that DNS resolution and connect is retried? */
-- sendto(rh->remoteFD, recvbuf, sz+1, MSG_DONTWAIT,
-- &(rh->remoteAddr->u.sa), rh->remoteAddr->len);
-+ /* Send message to remote logger */
-+ if (sendto(rh->remoteFD, recvbuf, sz+1, MSG_DONTWAIT,
-+ &(rh->remoteAddr->u.sa), rh->remoteAddr->len) == -1)
-+ send_err = errno;
-+
-+ /* On some errors, close and set G.remoteFD to -1
-+ * so that DNS resolution and connect is retried */
-+ switch (send_err) {
-+ case ECONNRESET:
-+ case EDESTADDRREQ:
-+ case EISCONN:
-+ case ENOTCONN:
-+ case EPIPE:
-+ close(rh->remoteFD);
-+ rh->remoteFD = -1;
-+ break;
-+ }
- }
- #endif
- if (!ENABLE_FEATURE_REMOTE_LOG || (option_mask32 & OPT_locallog)) {
+++ /dev/null
---- a/include/platform.h
-+++ b/include/platform.h
-@@ -154,14 +154,14 @@
- # include <sex.h>
- # define __BIG_ENDIAN__ (BYTE_ORDER == BIG_ENDIAN)
- # define __BYTE_ORDER BYTE_ORDER
--#elif defined __FreeBSD__
-+#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined (__NetBSD__) || defined(__APPLE__)
- # include <sys/resource.h> /* rlimit */
- # include <machine/endian.h>
- # define bswap_64 __bswap64
- # define bswap_32 __bswap32
- # define bswap_16 __bswap16
- # define __BIG_ENDIAN__ (_BYTE_ORDER == _BIG_ENDIAN)
--#elif !defined __APPLE__
-+#else
- # include <byteswap.h>
- # include <endian.h>
- #endif
-@@ -172,9 +172,15 @@
- #elif defined(__BYTE_ORDER) && __BYTE_ORDER == __BIG_ENDIAN
- # define BB_BIG_ENDIAN 1
- # define BB_LITTLE_ENDIAN 0
-+#elif defined(_BYTE_ORDER) && _BYTE_ORDER == _BIG_ENDIAN
-+# define BB_BIG_ENDIAN 1
-+# define BB_LITTLE_ENDIAN 0
- #elif (defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN) || defined(__386__)
- # define BB_BIG_ENDIAN 0
- # define BB_LITTLE_ENDIAN 1
-+#elif defined(_BYTE_ORDER) && _BYTE_ORDER == _LITTLE_ENDIAN
-+# define BB_BIG_ENDIAN 0
-+# define BB_LITTLE_ENDIAN 1
- #else
- # error "Can't determine endianness"
- #endif