#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
#

menu "Miscellaneous Utilities"

config BUSYBOX_CONFIG_ADJTIMEX
	bool "adjtimex"
	default n
	help
	  Adjtimex reads and optionally sets adjustment parameters for
	  the Linux clock adjustment algorithm.

config BUSYBOX_CONFIG_BBCONFIG
	bool "bbconfig"
	default n
	help
	  The bbconfig applet will print the config file with which
	  busybox was built.

config BUSYBOX_CONFIG_CHAT
	bool "chat"
	default n
	help
	  Simple chat utility.

config BUSYBOX_CONFIG_FEATURE_CHAT_NOFAIL
	bool "Enable NOFAIL expect strings"
	depends on BUSYBOX_CONFIG_CHAT
	default n
	help
	  When enabled expect strings which are started with a dash trigger
	  no-fail mode. That is when expectation is not met within timeout
	  the script is not terminated but sends next SEND string and waits
	  for next EXPECT string. This allows to compose far more flexible
	  scripts.

config BUSYBOX_CONFIG_FEATURE_CHAT_TTY_HIFI
	bool "Force STDIN to be a TTY"
	depends on BUSYBOX_CONFIG_CHAT
	default n
	help
	  Original chat always treats STDIN as a TTY device and sets for it
	  so-called raw mode. This option turns on such behaviour.

config BUSYBOX_CONFIG_FEATURE_CHAT_IMPLICIT_CR
	bool "Enable implicit Carriage Return"
	depends on BUSYBOX_CONFIG_CHAT
	default n
	help
	  When enabled make chat to terminate all SEND strings with a "\r"
	  unless "\c" is met anywhere in the string.

config BUSYBOX_CONFIG_FEATURE_CHAT_SWALLOW_OPTS
	bool "Swallow options"
	depends on BUSYBOX_CONFIG_CHAT
	default n
	help
	  Busybox chat require no options. To make it not fail when used
	  in place of original chat (which has a bunch of options) turn
	  this on.

config BUSYBOX_CONFIG_FEATURE_CHAT_SEND_ESCAPES
	bool "Support weird SEND escapes"
	depends on BUSYBOX_CONFIG_CHAT
	default n
	help
	  Original chat uses some escape sequences in SEND arguments which
	  are not sent to device but rather performs special actions.
	  E.g. "\K" means to send a break sequence to device.
	  "\d" delays execution for a second, "\p" -- for a 1/100 of second.
	  Before turning this option on think twice: do you really need them?

config BUSYBOX_CONFIG_FEATURE_CHAT_VAR_ABORT_LEN
	bool "Support variable-length ABORT conditions"
	depends on BUSYBOX_CONFIG_CHAT
	default n
	help
	  Original chat uses fixed 50-bytes length ABORT conditions. Say N here.

config BUSYBOX_CONFIG_FEATURE_CHAT_CLR_ABORT
	bool "Support revoking of ABORT conditions"
	depends on BUSYBOX_CONFIG_CHAT
	default n
	help
	  Support CLR_ABORT directive.

config BUSYBOX_CONFIG_CHRT
	bool "chrt"
	default n
	help
	  manipulate real-time attributes of a process.
	  This requires sched_{g,s}etparam support in your libc.

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
	  files and executes commands on behalf of the users in question.
	  This is a port of dcron from slackware.  It uses files of the
	  format /var/spool/cron/crontabs/<username> files, for example:
	      $ cat /var/spool/cron/crontabs/root
	      # Run daily cron jobs at 4:40 every day:
	      40 4 * * * /etc/cron/daily > /dev/null 2>&1

config BUSYBOX_CONFIG_DEBUG_CROND_OPTION
	bool "Support option -d to redirect output to stderr"
	depends on BUSYBOX_CONFIG_CROND
	default n
	help
	  -d sets loglevel to 0 (most verbose) and directs all output to stderr.

config BUSYBOX_CONFIG_FEATURE_CROND_CALL_SENDMAIL
	bool "Using /usr/sbin/sendmail?"
	default n
	depends on BUSYBOX_CONFIG_CROND
	help
	  Support calling /usr/sbin/sendmail for send cmd outputs.

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.
	  Note that Busybox binary must be setuid root for this applet to
	  work properly.

config BUSYBOX_CONFIG_DC
	bool "dc"
	default n
	help
	  Dc is a reverse-polish desk calculator which supports unlimited
	  precision arithmetic.

config BUSYBOX_CONFIG_DEVFSD
	bool "devfsd (obsolete)"
	default n
	select BUSYBOX_CONFIG_FEATURE_SYSLOG
	help
	  This is deprecated, and will be removed at the end of 2008.

	  Provides compatibility with old device names on a devfs systems.
	  You should set it to true if you have devfs enabled.
	  The following keywords in devsfd.conf are supported:
	  "CLEAR_CONFIG", "INCLUDE", "OPTIONAL_INCLUDE", "RESTORE",
	  "PERMISSIONS", "EXECUTE", "COPY", "IGNORE",
	  "MKOLDCOMPAT", "MKNEWCOMPAT","RMOLDCOMPAT", "RMNEWCOMPAT".

	   But only if they are written UPPERCASE!!!!!!!!

config BUSYBOX_CONFIG_DEVFSD_MODLOAD
	bool "Adds support for MODLOAD keyword in devsfd.conf"
	default n
	depends on BUSYBOX_CONFIG_DEVFSD
	help
	  This actually doesn't work with busybox modutils but needs
	  the external modutils.

config BUSYBOX_CONFIG_DEVFSD_FG_NP
	bool "Enables the -fg and -np options"
	default n
	depends on BUSYBOX_CONFIG_DEVFSD
	help
		-fg	Run the daemon in the foreground.
		-np	Exit  after  parsing  the configuration file. Do not poll for events.

config BUSYBOX_CONFIG_DEVFSD_VERBOSE
	bool "Increases logging (and size)"
	default n
	depends on BUSYBOX_CONFIG_DEVFSD
	help
	  Increases logging to stderr or syslog.

config BUSYBOX_CONFIG_FEATURE_DEVFS
	bool "Use devfs names for all devices (obsolete)"
	default n
	help
	  This is obsolete and will be going away at the end of 2008..

	  This tells busybox to look for names like /dev/loop/0 instead of
	  /dev/loop0.  If your /dev directory has normal names instead of
	  devfs names, you don't want this.

config BUSYBOX_CONFIG_EJECT
	bool "eject"
	default n
	help
	  Used to eject cdroms.  (defaults to /dev/cdrom)

config BUSYBOX_CONFIG_FEATURE_EJECT_SCSI
	bool "SCSI support"
	default n
	depends on BUSYBOX_CONFIG_EJECT
	help
	  Add the -s option to eject, this allows to eject SCSI-Devices and
	  usb-storage devices.

config BUSYBOX_CONFIG_FBSPLASH
	bool "fbsplash"
	default n
	help
	  Shows splash image and progress bar on framebuffer device.
	  Can be used during boot phase of an embedded device. ~2kb.
	  Usage:
	  - use kernel option 'vga=xxx' or otherwise enable fb device.
	  - put somewhere fbsplash.cfg file and an image in .ppm format.
	  - $ setsid fbsplash [params] &
	    -c: hide cursor
	    -d /dev/fbN: framebuffer device (if not /dev/fb0)
	    -s path_to_image_file (can be "-" for stdin)
	    -i path_to_cfg_file (can be "-" for stdin)
	    -f path_to_fifo (can be "-" for stdin)
	  - if you want to run it only in presence of kernel parameter:
	    grep -q "fbsplash=on" </proc/cmdline && setsid fbsplash [params] &
	  - commands for fifo:
	    "NN" (ASCII decimal number) - percentage to show on progress bar
	    "exit" - well you guessed it

config BUSYBOX_CONFIG_INOTIFYD
	bool "inotifyd"
	default n
	help
	  Simple inotify daemon. Reports filesystem changes. Requires kernel >= 2.6.13

config BUSYBOX_CONFIG_LAST
	bool "last"
	default n
	select BUSYBOX_CONFIG_FEATURE_WTMP
	help
	  'last' displays a list of the last users that logged into the system.

choice
	prompt "Choose last implementation"
	depends on BUSYBOX_CONFIG_LAST
	default BUSYBOX_CONFIG_FEATURE_LAST_SMALL

config BUSYBOX_CONFIG_FEATURE_LAST_SMALL
	bool "small"
	help
	  This is a small version of last with just the basic set of
	  features.

config BUSYBOX_CONFIG_FEATURE_LAST_FANCY
	bool "huge"
	help
	  'last' displays detailed information about the last users that
	  logged into the system (mimics sysvinit last). +900 bytes.
endchoice

config BUSYBOX_CONFIG_LESS
	bool "less"
	default y
	help
	  'less' is a pager, meaning that it displays text files. It possesses
	  a wide array of features, and is an improvement over 'more'.

config BUSYBOX_CONFIG_FEATURE_LESS_MAXLINES
	int "Max number of input lines less will try to eat"
	default 9999999
	depends on BUSYBOX_CONFIG_LESS

config BUSYBOX_CONFIG_FEATURE_LESS_BRACKETS
	bool "Enable bracket searching"
	default n
	depends on BUSYBOX_CONFIG_LESS
	help
	  This option adds the capability to search for matching left and right
	  brackets, facilitating programming.

config BUSYBOX_CONFIG_FEATURE_LESS_FLAGS
	bool "Enable extra flags"
	default n
	depends on BUSYBOX_CONFIG_LESS
	help
	  The extra flags provided do the following:

	  The -M flag enables a more sophisticated status line.
	  The -m flag enables a simpler status line with a percentage.

config BUSYBOX_CONFIG_FEATURE_LESS_FLAGCS
	bool "Enable flag changes"
	default n
	depends on BUSYBOX_CONFIG_LESS
	help
	  This enables the ability to change command-line flags within
	  less itself.

config BUSYBOX_CONFIG_FEATURE_LESS_MARKS
	bool "Enable marks"
	default n
	depends on BUSYBOX_CONFIG_LESS
	help
	  Marks enable positions in a file to be stored for easy reference.

config BUSYBOX_CONFIG_FEATURE_LESS_REGEXP
	bool "Enable regular expressions"
	default n
	depends on BUSYBOX_CONFIG_LESS
	help
	  Enable regular expressions, allowing complex file searches.

config BUSYBOX_CONFIG_HDPARM
	bool "hdparm"
	default n
	help
	  Get/Set hard drive parameters.  Primarily intended for ATA
	  drives.  Adds about 13k (or around 30k if you enable the
	  FEATURE_HDPARM_GET_IDENTITY option)....

config BUSYBOX_CONFIG_FEATURE_HDPARM_GET_IDENTITY
	bool "Support obtaining detailed information directly from drives"
	default n
	depends on BUSYBOX_CONFIG_HDPARM
	help
	  Enables the -I and -i options to obtain detailed information
	  directly from drives about their capabilities and supported ATA
	  feature set. If no device name is specified, hdparm will read
	  identify data from stdin. Enabling this option will add about 16k...

config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF
	bool "Register an IDE interface (DANGEROUS)"
	default n
	depends on BUSYBOX_CONFIG_HDPARM
	help
	  Enables the 'hdparm -R' option to register an IDE interface.
	  This is dangerous stuff, so you should probably say N.

config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF
	bool "Un-register an IDE interface (DANGEROUS)"
	default n
	depends on BUSYBOX_CONFIG_HDPARM
	help
	  Enables the 'hdparm -U' option to un-register an IDE interface.
	  This is dangerous stuff, so you should probably say N.

config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET
	bool "perform device reset (DANGEROUS)"
	default n
	depends on BUSYBOX_CONFIG_HDPARM
	help
	  Enables the 'hdparm -w' option to perform a device reset.
	  This is dangerous stuff, so you should probably say N.

config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF
	bool "tristate device for hotswap (DANGEROUS)"
	default n
	depends on BUSYBOX_CONFIG_HDPARM
	help
	  Enables the 'hdparm -x' option to tristate device for hotswap,
	  and the '-b' option to get/set bus state.  This is dangerous
	  stuff, so you should probably say N.

config BUSYBOX_CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA
	bool "get/set using_dma flag (DANGEROUS)"
	default n
	depends on BUSYBOX_CONFIG_HDPARM
	help
	  Enables the 'hdparm -d' option to get/set using_dma flag.
	  This is dangerous stuff, so you should probably say N.

config BUSYBOX_CONFIG_LOCK
	bool "lock"
	default y
	help
	  Small utility for using locks in scripts

config BUSYBOX_CONFIG_MAKEDEVS
	bool "makedevs"
	default n
	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.

choice
	prompt "Choose makedevs behaviour"
	depends on BUSYBOX_CONFIG_MAKEDEVS
	default BUSYBOX_CONFIG_FEATURE_MAKEDEVS_TABLE

config BUSYBOX_CONFIG_FEATURE_MAKEDEVS_LEAF
	bool "leaf"

config BUSYBOX_CONFIG_FEATURE_MAKEDEVS_TABLE
	bool "table"

endchoice

config BUSYBOX_CONFIG_MAN
	bool "man"
	default n
	help
	  Format and display manual pages.

config BUSYBOX_CONFIG_MICROCOM
	bool "microcom"
	default n
	help
	  The poor man's minicom utility for chatting with serial port devices.

config BUSYBOX_CONFIG_MOUNTPOINT
	bool "mountpoint"
	default n
	help
	  mountpoint checks if the directory is a mountpoint.

config BUSYBOX_CONFIG_MT
	bool "mt"
	default n
	help
	  mt is used to control tape devices.  You can use the mt utility
	  to advance or rewind a tape past a specified number of archive
	  files on the tape.

config BUSYBOX_CONFIG_RAIDAUTORUN
	bool "raidautorun"
	default n
	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
	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.

	  This applet just calls the readahead(2) system call on each file.
	  It is mainly useful in system startup scripts to preload files
	  or executables before they are used.  When used at the right time
	  (in particular when a CPU bound process is running) it can
	  significantly speed up system startup.

	  As readahead(2) blocks until each file has been read, it is best to
	  run this applet as a background job.

config BUSYBOX_CONFIG_RUNLEVEL
	bool "runlevel"
	default n
	help
	  find the current and previous system runlevel.

	  This applet uses utmp but does not rely on busybox supporing
	  utmp on purpose. It is used by e.g. emdebian via /etc/init.d/rc.

config BUSYBOX_CONFIG_RX
	bool "rx"
	default n
	help
	  Receive files using the Xmodem protocol.

config BUSYBOX_CONFIG_SETSID
	bool "setsid"
	default n
	help
	  setsid runs a program in a new session

config BUSYBOX_CONFIG_STRINGS
	bool "strings"
	default y
	help
	  strings prints the printable character sequences for each file
	  specified.

config BUSYBOX_CONFIG_TASKSET
	bool "taskset"
	default n
	help
	  Retrieve or set a processes's CPU affinity.
	  This requires sched_{g,s}etaffinity support in your libc.

config BUSYBOX_CONFIG_FEATURE_TASKSET_FANCY
	bool "Fancy output"
	default n
	depends on BUSYBOX_CONFIG_TASKSET
	help
	  Add code for fancy output. This merely silences a compiler-warning
	  and adds about 135 Bytes. May be needed for machines with alot
	  of CPUs.

config BUSYBOX_CONFIG_TIME
	bool "time"
	default y
	help
	  The time command runs the specified program with the given arguments.
	  When the command finishes, time writes a message to standard output
	  giving timing statistics about this program run.

config BUSYBOX_CONFIG_TTYSIZE
	bool "ttysize"
	default n
	help
	  A replacement for "stty size". Unlike stty, can report only width,
	  only height, or both, in any order. It also does not complain on error,
	  but returns default 80x24. Usage in shell scripts: width=`ttysize w`.

config BUSYBOX_CONFIG_WATCHDOG
	bool "watchdog"
	default y
	help
	  The watchdog utility is used with hardware or software watchdog
	  device drivers.  It opens the specified watchdog device special file
	  and periodically writes a magic character to the device.  If the
	  watchdog applet ever fails to write the magic character within a
	  certain amount of time, the watchdog device assumes the system has
	  hung, and will cause the hardware to reboot.

endmenu
