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

menu "Miscellaneous Utilities"

INSERT

config ADJTIMEX
	bool "adjtimex"
	default y
	select PLATFORM_LINUX
	help
	  Adjtimex reads and optionally sets adjustment parameters for
	  the Linux clock adjustment algorithm.

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

config FEATURE_COMPRESS_BBCONFIG
	bool "Compress bbconfig data"
	default y
	depends on 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 BEEP
	bool "beep"
	default y
	select PLATFORM_LINUX
	help
	  The beep applets beeps in a given freq/Hz.

config FEATURE_BEEP_FREQ
	int "default frequency"
	range 0 2147483647
	default 4000
	depends on BEEP
	help
	  Frequency for default beep.

config FEATURE_BEEP_LENGTH_MS
	int "default length"
	range 0 2147483647
	default 30
	depends on BEEP
	help
	  Length in ms for default beep.

config CHAT
	bool "chat"
	default y
	help
	  Simple chat utility.

config FEATURE_CHAT_NOFAIL
	bool "Enable NOFAIL expect strings"
	depends on CHAT
	default y
	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 FEATURE_CHAT_TTY_HIFI
	bool "Force STDIN to be a TTY"
	depends on 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 FEATURE_CHAT_IMPLICIT_CR
	bool "Enable implicit Carriage Return"
	depends on CHAT
	default y
	help
	  When enabled make chat to terminate all SEND strings with a "\r"
	  unless "\c" is met anywhere in the string.

config FEATURE_CHAT_SWALLOW_OPTS
	bool "Swallow options"
	depends on CHAT
	default y
	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 FEATURE_CHAT_SEND_ESCAPES
	bool "Support weird SEND escapes"
	depends on CHAT
	default y
	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 FEATURE_CHAT_VAR_ABORT_LEN
	bool "Support variable-length ABORT conditions"
	depends on CHAT
	default y
	help
	  Original chat uses fixed 50-bytes length ABORT conditions. Say N here.

config FEATURE_CHAT_CLR_ABORT
	bool "Support revoking of ABORT conditions"
	depends on CHAT
	default y
	help
	  Support CLR_ABORT directive.

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

config CROND
	bool "crond"
	default y
	select 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 FEATURE_CROND_D
	bool "Support option -d to redirect output to stderr"
	depends on CROND
	default y
	help
	  -d sets loglevel to 0 (most verbose) and directs all output to stderr.

config FEATURE_CROND_CALL_SENDMAIL
	bool "Report command output via email (using sendmail)"
	default y
	depends on CROND
	help
	  Command output will be sent to corresponding user via email.

config FEATURE_CROND_DIR
	string "crond spool directory"
	default "/var/spool/cron"
	depends on CROND || CRONTAB
	help
	  Location of crond spool.

config CRONTAB
	bool "crontab"
	default y
	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 DC
	bool "dc"
	default y
	help
	  Dc is a reverse-polish desk calculator which supports unlimited
	  precision arithmetic.

config FEATURE_DC_LIBM
	bool "Enable power and exp functions (requires libm)"
	default y
	depends on DC
	help
	  Enable power and exp functions.
	  NOTE: This will require libm to be present for linking.

config DEVFSD
	bool "devfsd (obsolete)"
	default n
	select PLATFORM_LINUX
	select FEATURE_SYSLOG
	help
	  This is deprecated and should NOT be used anymore.
	  Use linux >= 2.6 (optionally with hotplug) and mdev instead!
	  See docs/mdev.txt for detailed instructions on how to use mdev
	  instead.

	  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 DEVFSD_MODLOAD
	bool "Adds support for MODLOAD keyword in devsfd.conf"
	default y
	depends on DEVFSD
	help
	  This actually doesn't work with busybox modutils but needs
	  the external modutils.

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

config DEVFSD_VERBOSE
	bool "Increases logging (and size)"
	default y
	depends on DEVFSD
	help
	  Increases logging to stderr or syslog.

config FEATURE_DEVFS
	bool "Use devfs names for all devices (obsolete)"
	default n
	select PLATFORM_LINUX
	help
	  This is obsolete and should NOT be used anymore.
	  Use linux >= 2.6 (optionally with hotplug) and mdev instead!

	  For legacy systems -- if there is no way around devfsd -- 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 DEVMEM
	bool "devmem"
	default y
	help
	  devmem is a small program that reads and writes from physical
	  memory using /dev/mem.

config EJECT
	bool "eject"
	default y
	select PLATFORM_LINUX
	help
	  Used to eject cdroms. (defaults to /dev/cdrom)

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

config FBSPLASH
	bool "fbsplash"
	default y
	select PLATFORM_LINUX
	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 FLASHCP
	bool "flashcp"
	default n  # doesn't build on Ubuntu 8.04
	help
	  The flashcp binary, inspired by mtd-utils as of git head 5eceb74f7.
	  This utility is used to copy images into a MTD device.

config FLASH_LOCK
	bool "flash_lock"
	default n  # doesn't build on Ubuntu 8.04
	help
	  The flash_lock binary from mtd-utils as of git head 5ec0c10d0. This
	  utility locks part or all of the flash device.

config FLASH_UNLOCK
	bool "flash_unlock"
	default n  # doesn't build on Ubuntu 8.04
	help
	  The flash_unlock binary from mtd-utils as of git head 5ec0c10d0. This
	  utility unlocks part or all of the flash device.

config FLASH_ERASEALL
	bool "flash_eraseall"
	default n  # doesn't build on Ubuntu 8.04
	help
	  The flash_eraseall binary from mtd-utils as of git head c4c6a59eb.
	  This utility is used to erase the whole MTD device.

config IONICE
	bool "ionice"
	default y
	select PLATFORM_LINUX
	help
	  Set/set program io scheduling class and priority
	  Requires kernel >= 2.6.13

config INOTIFYD
	bool "inotifyd"
	default n  # doesn't build on Knoppix 5
	help
	  Simple inotify daemon. Reports filesystem changes. Requires
	  kernel >= 2.6.13

config LAST
	bool "last"
	default y
	depends on FEATURE_WTMP
	help
	  'last' displays a list of the last users that logged into the system.

choice
	prompt "Choose last implementation"
	depends on LAST
	default FEATURE_LAST_FANCY

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

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 HDPARM
	bool "hdparm"
	default y
	select PLATFORM_LINUX
	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 FEATURE_HDPARM_GET_IDENTITY
	bool "Support obtaining detailed information directly from drives"
	default y
	depends on 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 FEATURE_HDPARM_HDIO_SCAN_HWIF
	bool "Register an IDE interface (DANGEROUS)"
	default y
	depends on HDPARM
	help
	  Enables the 'hdparm -R' option to register an IDE interface.
	  This is dangerous stuff, so you should probably say N.

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

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

config FEATURE_HDPARM_HDIO_TRISTATE_HWIF
	bool "Tristate device for hotswap (DANGEROUS)"
	default y
	depends on 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 FEATURE_HDPARM_HDIO_GETSET_DMA
	bool "Get/set using_dma flag"
	default y
	depends on HDPARM
	help
	  Enables the 'hdparm -d' option to get/set using_dma flag.

config MAKEDEVS
	bool "makedevs"
	default y
	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 MAKEDEVS
	default FEATURE_MAKEDEVS_TABLE

config FEATURE_MAKEDEVS_LEAF
	bool "leaf"

config FEATURE_MAKEDEVS_TABLE
	bool "table"

endchoice

config MAN
	bool "man"
	default y
	help
	  Format and display manual pages.

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

config MOUNTPOINT
	bool "mountpoint"
	default y
	help
	  mountpoint checks if the directory is a mountpoint.

config MT
	bool "mt"
	default y
	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 RAIDAUTORUN
	bool "raidautorun"
	default y
	select PLATFORM_LINUX
	help
	  raidautorun tells the kernel md driver to
	  search and start RAID arrays.

config READAHEAD
	bool "readahead"
	default y
	depends on LFS
	select 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.

	  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 RUNLEVEL
	bool "runlevel"
	default y
	depends on FEATURE_UTMP
	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 RX
	bool "rx"
	default y
	select PLATFORM_LINUX
	help
	  Receive files using the Xmodem protocol.

config SETSID
	bool "setsid"
	default y
	help
	  setsid runs a program in a new session

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

config TASKSET
	bool "taskset"
	default n  # doesn't build on some non-x86 targets (m68k)
	help
	  Retrieve or set a processes's CPU affinity.
	  This requires sched_{g,s}etaffinity support in your libc.

config FEATURE_TASKSET_FANCY
	bool "Fancy output"
	default y
	depends on 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 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 TIMEOUT
	bool "timeout"
	default y
	help
	  Runs a program and watches it. If it does not terminate in
	  specified number of seconds, it is sent a signal.

config TTYSIZE
	bool "ttysize"
	default y
	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 VOLNAME
	bool "volname"
	default y
	help
	  Prints a CD-ROM volume name.

config WATCHDOG
	bool "watchdog"
	default y
	select PLATFORM_LINUX
	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
