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

menu "Linux System Utilities"

config BLKID
	bool "blkid"
	default n
	select VOLUMEID
	help
	  Lists labels and UUIDs of all filesystems.
	  WARNING:
	  With all submodules selected, it will add ~8k to busybox.

config DMESG
	bool "dmesg"
	default n
	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
	  the kernel ring buffer. You can use dmesg to print the kernel's ring
	  buffer, clear the kernel ring buffer, change the size of the kernel
	  ring buffer, and change the priority level at which kernel messages
	  are also logged to the system console. Enable this option if you
	  wish to enable the 'dmesg' utility.

config FEATURE_DMESG_PRETTY
	bool "Pretty dmesg output"
	default y
	depends on DMESG
	help
	  If you wish to scrub the syslog level from the output, say 'Y' here.
	  The syslog level is a string prefixed to every line with the form
	  "<#>".

	  With this option you will see:
	    # dmesg
	    Linux version 2.6.17.4 .....
	    BIOS-provided physical RAM map:
	     BIOS-e820: 0000000000000000 - 000000000009f000 (usable)

	  Without this option you will see:
	    # dmesg
	    <5>Linux version 2.6.17.4 .....
	    <6>BIOS-provided physical RAM map:
	    <6> BIOS-e820: 0000000000000000 - 000000000009f000 (usable)

config FBSET
	bool "fbset"
	default n
	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
	  interface to access a graphics display. Enable this option
	  if you wish to enable the 'fbset' utility.

config FEATURE_FBSET_FANCY
	bool "Turn on extra fbset options"
	default n
	depends on FBSET
	help
	  This option enables extended fbset options, allowing one to set the
	  framebuffer size, color depth, etc. interface to access a graphics
	  display. Enable this option if you wish to enable extended fbset
	  options.

config FEATURE_FBSET_READMODE
	bool "Turn on fbset readmode support"
	default n
	depends on FBSET
	help
	  This option allows fbset to read the video mode database stored by
	  default as /etc/fb.modes, which can be used to set frame buffer
	  device to pre-defined video modes.

config FDFLUSH
	bool "fdflush"
	default n
	help
	  fdflush is only needed when changing media on slightly-broken
	  removable media drives. It is used to make Linux believe that a
	  hardware disk-change switch has been actuated, which causes Linux to
	  forget anything it has cached from the previous media. If you have
	  such a slightly-broken drive, you will need to run fdflush every time
	  you change a disk. Most people have working hardware and can safely
	  leave this disabled.

config FDFORMAT
	bool "fdformat"
	default n
	help
	  fdformat is used to low-level format a floppy disk.

config FDISK
	bool "fdisk"
	default n
	help
	  The fdisk utility is used to divide hard disks into one or more
	  logical disks, which are generally called partitions. This utility
	  can be used to list and edit the set of partitions or BSD style
	  'disk slices' that are defined on a hard drive.

config FDISK_SUPPORT_LARGE_DISKS
	bool "Support over 4GB disks"
	default y
	depends on FDISK
	help
	  Enable this option to support large disks > 4GB.

config FEATURE_FDISK_WRITABLE
	bool "Write support"
	default y
	depends on FDISK
	help
	  Enabling this option allows you to create or change a partition table
	  and write those changes out to disk. If you leave this option
	  disabled, you will only be able to view the partition table.

config FEATURE_AIX_LABEL
	bool "Support AIX disklabels"
	default n
	depends on FDISK && FEATURE_FDISK_WRITABLE
	help
	  Enabling this option allows you to create or change AIX disklabels.
	  Most people can safely leave this option disabled.

config FEATURE_SGI_LABEL
	bool "Support SGI disklabels"
	default n
	depends on FDISK && FEATURE_FDISK_WRITABLE
	help
	  Enabling this option allows you to create or change SGI disklabels.
	  Most people can safely leave this option disabled.

config FEATURE_SUN_LABEL
	bool "Support SUN disklabels"
	default n
	depends on FDISK && FEATURE_FDISK_WRITABLE
	help
	  Enabling this option allows you to create or change SUN disklabels.
	  Most people can safely leave this option disabled.

config FEATURE_OSF_LABEL
	bool "Support BSD disklabels"
	default n
	depends on FDISK && FEATURE_FDISK_WRITABLE
	help
	  Enabling this option allows you to create or change BSD disklabels
	  and define and edit BSD disk slices.

config FEATURE_FDISK_ADVANCED
	bool "Support expert mode"
	default n
	depends on FDISK && FEATURE_FDISK_WRITABLE
	help
	  Enabling this option allows you to do terribly unsafe things like
	  define arbitrary drive geometry, move the beginning of data in a
	  partition, and similarly evil things. Unless you have a very good
	  reason you would be wise to leave this disabled.

config FINDFS
	bool "findfs"
	default n
	select VOLUMEID
	help
	  Prints the name of a filesystem with given label or UUID.
	  WARNING:
	  With all submodules selected, it will add ~8k to busybox.

config FREERAMDISK
	bool "freeramdisk"
	default n
	help
	  Linux allows you to create ramdisks. This utility allows you to
	  delete them and completely free all memory that was used for the
	  ramdisk. For example, if you boot Linux into a ramdisk and later
	  pivot_root, you may want to free the memory that is allocated to the
	  ramdisk. If you have no use for freeing memory from a ramdisk, leave
	  this disabled.

config FSCK_MINIX
	bool "fsck_minix"
	default n
	help
	  The minix filesystem is a nice, small, compact, read-write filesystem
	  with little overhead. It is not a journaling filesystem however and
	  can experience corruption if it is not properly unmounted or if the
	  power goes off in the middle of a write. This utility allows you to
	  check for and attempt to repair any corruption that occurs to a minix
	  filesystem.

config MKFS_MINIX
	bool "mkfs_minix"
	default n
	help
	  The minix filesystem is a nice, small, compact, read-write filesystem
	  with little overhead. If you wish to be able to create minix
	  filesystems this utility will do the job for you.

comment "Minix filesystem support"
	depends on FSCK_MINIX || MKFS_MINIX

config FEATURE_MINIX2
	bool "Support Minix fs v2 (fsck_minix/mkfs_minix)"
	default y
	depends on FSCK_MINIX || MKFS_MINIX
	help
	  If you wish to be able to create version 2 minix filesystems, enable
	  this. If you enabled 'mkfs_minix' then you almost certainly want to
	  be using the version 2 filesystem support.

config GETOPT
	bool "getopt"
	default n
	help
	  The getopt utility is used to break up (parse) options in command
	  lines to make it easy to write complex shell scripts that also check
	  for legal (and illegal) options. If you want to write horribly
	  complex shell scripts, or use some horribly complex shell script
	  written by others, this utility may be for you. Most people will
	  wisely leave this disabled.

config HEXDUMP
	bool "hexdump"
	default n
	help
	  The hexdump utility is used to display binary data in a readable
	  way that is comparable to the output from most hex editors.

config FEATURE_HEXDUMP_REVERSE
	bool "Support -R, reverse of 'hexdump -Cv'"
	default n
	depends on HEXDUMP
	help
	  The hexdump utility is used to display binary data in an ascii
	  readable way. This option creates binary data from an ascii input.
	  NB: this option is non-standard. It's unwise to use it in scripts
	  aimed to be portable.

config HD
	bool "hd"
	default n
	select HEXDUMP
	help
	  hd is an alias to hexdump -C.

config HWCLOCK
	bool "hwclock"
	default n
	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
	  shutdown in the hardware clock, so the hardware will keep the
	  correct time when Linux is _not_ running.

config FEATURE_HWCLOCK_LONG_OPTIONS
	bool "Support long options (--hctosys,...)"
	default n
	depends on HWCLOCK && GETOPT_LONG
	help
	  By default, the hwclock utility only uses short options. If you
	  are overly fond of its long options, such as --hctosys, --utc, etc)
	  then enable this option.

config FEATURE_HWCLOCK_ADJTIME_FHS
	bool "Use FHS /var/lib/hwclock/adjtime"
	default y
	depends on HWCLOCK
	help
	  Starting with FHS 2.3, the adjtime state file is supposed to exist
	  at /var/lib/hwclock/adjtime instead of /etc/adjtime. If you wish
	  to use the FHS behavior, answer Y here, otherwise answer N for the
	  classic /etc/adjtime path.

	  pathname.com/fhs/pub/fhs-2.3.html#VARLIBHWCLOCKSTATEDIRECTORYFORHWCLO

config IPCRM
	bool "ipcrm"
	default n
	select FEATURE_SUID
	help
	  The ipcrm utility allows the removal of System V interprocess
	  communication (IPC) objects and the associated data structures
	  from the system.

config IPCS
	bool "ipcs"
	default n
	select FEATURE_SUID
	help
	  The ipcs utility is used to provide information on the currently
	  allocated System V interprocess (IPC) objects in the system.

config LOSETUP
	bool "losetup"
	default n
	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
	  version does not currently support enabling data encryption.

config MDEV
	bool "mdev"
	default n
	help
	  mdev is a mini-udev implementation for dynamically creating device
	  nodes in the /dev directory.

	  For more information, please see docs/mdev.txt

config FEATURE_MDEV_CONF
	bool "Support /etc/mdev.conf"
	default n
	depends on MDEV
	help
	  Add support for the mdev config file to control ownership and
	  permissions of the device nodes.

	  For more information, please see docs/mdev.txt

config FEATURE_MDEV_RENAME
	bool "Support subdirs/symlinks"
	default n
	depends on FEATURE_MDEV_CONF
	help
	  Add support for renaming devices and creating symlinks.

	  For more information, please see docs/mdev.txt

config FEATURE_MDEV_RENAME_REGEXP
	bool "Support regular expressions substitutions when renaming device"
	default n
	depends on FEATURE_MDEV_RENAME
	help
	  Add support for regular expressions substitutions when renaming
	  device.

config FEATURE_MDEV_EXEC
	bool "Support command execution at device addition/removal"
	default n
	depends on FEATURE_MDEV_CONF
	help
	  This adds support for an optional field to /etc/mdev.conf for
	  executing commands when devices are created/removed.

	  For more information, please see docs/mdev.txt

config FEATURE_MDEV_LOAD_FIRMWARE
	bool "Support loading of firmwares"
	default n
	depends on MDEV
	help
	  Some devices need to load firmware before they can be usable.

	  These devices will request userspace look up the files in
	  /lib/firmware/ and if it exists, send it to the kernel for
	  loading into the hardware.

config MKSWAP
	bool "mkswap"
	default n
	help
	  The mkswap utility is used to configure a file or disk partition as
	  Linux swap space. This allows Linux to use the entire file or
	  partition as if it were additional RAM, which can greatly increase
	  the capability of low-memory machines. This additional memory is
	  much slower than real RAM, but can be very helpful at preventing your
	  applications being killed by the Linux out of memory (OOM) killer.
	  Once you have created swap space using 'mkswap' you need to enable
	  the swap space using the 'swapon' utility.

config FEATURE_MKSWAP_V0
	bool "Version 0 support"
	default n
	depends on MKSWAP
#	depends on MKSWAP && DEPRECATED
	help
	  Enable support for the old v0 style.
	  If your kernel is older than 2.1.117, then v0 support is the
	  only option.

config MORE
	bool "more"
	default n
	help
	  more is a simple utility which allows you to read text one screen
	  sized page at a time. If you want to read text that is larger than
	  the screen, and you are using anything faster than a 300 baud modem,
	  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 FEATURE_USE_TERMIOS
	bool "Use termios to manipulate the screen"
	default y
	depends on MORE || 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 VOLUMEID
	bool #No description makes it a hidden option
	default n

config FEATURE_VOLUMEID_EXT
	bool "Ext filesystem"
	default n
	depends on VOLUMEID
	help
	  TODO

config FEATURE_VOLUMEID_REISERFS
	bool "Reiser filesystem"
	default n
	depends on VOLUMEID
	help
	  TODO

config FEATURE_VOLUMEID_FAT
	bool "fat filesystem"
	default n
	depends on VOLUMEID
	help
	  TODO

config FEATURE_VOLUMEID_HFS
	bool "hfs filesystem"
	default n
	depends on VOLUMEID
	help
	  TODO

config FEATURE_VOLUMEID_JFS
	bool "jfs filesystem"
	default n
	depends on VOLUMEID
	help
	  TODO

### config FEATURE_VOLUMEID_UFS
###	bool "ufs filesystem"
###	default n
###	depends on VOLUMEID
###	help
###	  TODO

config FEATURE_VOLUMEID_XFS
	bool "xfs filesystem"
	default n
	depends on VOLUMEID
	help
	  TODO

config FEATURE_VOLUMEID_NTFS
	bool "ntfs filesystem"
	default n
	depends on VOLUMEID
	help
	  TODO

config FEATURE_VOLUMEID_ISO9660
	bool "iso9660 filesystem"
	default n
	depends on VOLUMEID
	help
	  TODO

config FEATURE_VOLUMEID_UDF
	bool "udf filesystem"
	default n
	depends on VOLUMEID
	help
	  TODO

config FEATURE_VOLUMEID_LUKS
	bool "luks filesystem"
	default n
	depends on VOLUMEID
	help
	  TODO

config FEATURE_VOLUMEID_LINUXSWAP
	bool "linux swap filesystem"
	default n
	depends on VOLUMEID
	help
	  TODO

### config FEATURE_VOLUMEID_LVM
###	bool "lvm"
###	default n
###	depends on VOLUMEID
###	help
###	  TODO

config FEATURE_VOLUMEID_CRAMFS
	bool "cramfs filesystem"
	default n
	depends on VOLUMEID
	help
	  TODO

### config FEATURE_VOLUMEID_HPFS
###	bool "hpfs filesystem"
###	default n
###	depends on VOLUMEID
###	help
###	  TODO

config FEATURE_VOLUMEID_ROMFS
	bool "romfs filesystem"
	default n
	depends on VOLUMEID
	help
	  TODO

config FEATURE_VOLUMEID_SYSV
	bool "sysv filesystem"
	default n
	depends on VOLUMEID
	help
	  TODO

### config FEATURE_VOLUMEID_MINIX
###	bool "minix filesystem"
###	default n
###	depends on VOLUMEID
###	help
###	  TODO

### These only detect partition tables - not used (yet?)
### config FEATURE_VOLUMEID_MAC
###	bool "mac filesystem"
###	default n
###	depends on VOLUMEID
###	help
###	  TODO
###
### config FEATURE_VOLUMEID_MSDOS
###	bool "msdos filesystem"
###	default n
###	depends on VOLUMEID
###	help
###	  TODO

config FEATURE_VOLUMEID_OCFS2
	bool "ocfs2 filesystem"
	default n
	depends on VOLUMEID
	help
	  TODO

### config FEATURE_VOLUMEID_HIGHPOINTRAID
###	bool "highpoint raid"
###	default n
###	depends on VOLUMEID
###	help
###	  TODO

### config FEATURE_VOLUMEID_ISWRAID
###	bool "intel raid"
###	default n
###	depends on VOLUMEID
###	help
###	  TODO

### config FEATURE_VOLUMEID_LSIRAID
###	bool "lsi raid"
###	default n
###	depends on VOLUMEID
###	help
###	  TODO

### config FEATURE_VOLUMEID_VIARAID
###	bool "via raid"
###	default n
###	depends on VOLUMEID
###	help
###	  TODO

### config FEATURE_VOLUMEID_SILICONRAID
###	bool "silicon raid"
###	default n
###	depends on VOLUMEID
###	help
###	  TODO

### config FEATURE_VOLUMEID_NVIDIARAID
###	bool "nvidia raid"
###	default n
###	depends on VOLUMEID
###	help
###	  TODO

### config FEATURE_VOLUMEID_PROMISERAID
###	bool "promise raid"
###	default n
###	depends on VOLUMEID
###	help
###	  TODO

config FEATURE_VOLUMEID_LINUXRAID
	bool "linuxraid"
	default n
	depends on VOLUMEID
	help
	  TODO

config MOUNT
	bool "mount"
	default n
	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
	  particular part of the tree. A filesystem can either live on a block
	  device, or it can be accessible over the network, as is the case with
	  NFS filesystems. Most people using BusyBox will also want to enable
	  the 'mount' utility.

config FEATURE_MOUNT_FAKE
	bool "Support option -f"
	default n
	depends on MOUNT
	help
	  Enable support for faking a file system mount.

config FEATURE_MOUNT_VERBOSE
	bool "Support option -v"
	default n
	depends on MOUNT
	help
	  Enable multi-level -v[vv...] verbose messages. Useful if you
	  debug mount problems and want to see what is exactly passed
	  to the kernel.

config FEATURE_MOUNT_HELPERS
	bool "Support mount helpers"
	default n
	depends on MOUNT
	help
	  Enable mounting of virtual file systems via external helpers.
	  E.g. "mount obexfs#-b00.11.22.33.44.55 /mnt" will in effect call
	  "obexfs -b00.11.22.33.44.55 /mnt"
	  Also "mount -t sometype [-o opts] fs /mnt" will try
	  "sometype [-o opts] fs /mnt" if simple mount syscall fails.
	  The idea is to use such virtual filesystems in /etc/fstab.

config FEATURE_MOUNT_LABEL
	bool "Support specifiying devices by label or UUID"
	default n
	depends on MOUNT
	select VOLUMEID
	help
	  This allows for specifying a device by label or uuid, rather than by
	  name. This feature utilizes the same functionality as blkid/findfs.

config FEATURE_MOUNT_NFS
	bool "Support mounting NFS file systems"
	default n
	depends on MOUNT
	select FEATURE_HAVE_RPC
	select FEATURE_SYSLOG
	help
	  Enable mounting of NFS file systems.

config FEATURE_MOUNT_CIFS
	bool "Support mounting CIFS/SMB file systems"
	default n
	depends on MOUNT
	help
	  Enable support for samba mounts.

config FEATURE_MOUNT_FLAGS
	depends on MOUNT
	bool "Support lots of -o flags in mount"
	default y
	help
	  Without this, mount only supports ro/rw/remount. With this, it
	  supports nosuid, suid, dev, nodev, exec, noexec, sync, async, atime,
	  noatime, diratime, nodiratime, loud, bind, move, shared, slave,
	  private, unbindable, rshared, rslave, rprivate, and runbindable.

config FEATURE_MOUNT_FSTAB
	depends on MOUNT
	bool "Support /etc/fstab and -a"
	default y
	help
	  Support mount all and looking for files in /etc/fstab.

config PIVOT_ROOT
	bool "pivot_root"
	default n
	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
	  of wild and crazy things with your Linux system and is far more
	  powerful than 'chroot'.

	  Note: This is for initrd in linux 2.4. Under initramfs (introduced
	  in linux 2.6) use switch_root instead.

config RDATE
	bool "rdate"
	default n
	help
	  The rdate utility allows you to synchronize the date and time of your
	  system clock with the date and time of a remote networked system using
	  the RFC868 protocol, which is built into the inetd daemon on most
	  systems.

config RDEV
       bool "rdev"
       default n
       help
	  Print the device node associated with the filesystem mounted at '/'.

config READPROFILE
	bool "readprofile"
	default n
	help
	  This allows you to parse /proc/profile for basic profiling.

config RTCWAKE
	bool "rtcwake"
	default n
	help
	  Enter a system sleep state until specified wakeup time.

config SCRIPT
	bool "script"
	default n
	help
	  The script makes typescript of terminal session.

config SETARCH
	bool "setarch"
	default n
	help
	  The linux32 utility is used to create a 32bit environment for the
	  specified program (usually a shell). It only makes sense to have
	  this util on a system that supports both 64bit and 32bit userland
	  (like amd64/x86, ppc64/ppc, sparc64/sparc, etc...).

config SWAPONOFF
	bool "swaponoff"
	default n
	help
	  This option enables both the 'swapon' and the 'swapoff' utilities.
	  Once you have created some swap space using 'mkswap', you also need
	  to enable your swap space with the 'swapon' utility. The 'swapoff'
	  utility is used, typically at system shutdown, to disable any swap
	  space. If you are not using any swap space, you can leave this
	  option disabled.

config FEATURE_SWAPON_PRI
	bool "Support priority option -p"
	default n
	depends on SWAPONOFF
	help
	  Enable support for setting swap device priority in swapon.

config SWITCH_ROOT
	bool "switch_root"
	default n
	help
	  The switch_root utility is used from initramfs to select a new
	  root device. Under initramfs, you have to use this instead of
	  pivot_root. (Stop reading here if you don't care why.)

	  Booting with initramfs extracts a gzipped cpio archive into rootfs
	  (which is a variant of ramfs/tmpfs). Because rootfs can't be moved
	  or unmounted*, pivot_root will not work from initramfs. Instead,
	  switch_root deletes everything out of rootfs (including itself),
	  does a mount --move that overmounts rootfs with the new root, and
	  then execs the specified init program.

	  * Because the Linux kernel uses rootfs internally as the starting
	  and ending point for searching through the kernel's doubly linked
	  list of active mount points. That's why.

config UMOUNT
	bool "umount"
	default n
	help
	  When you want to remove a mounted filesystem from its current mount
	  point, for example when you are shutting down the system, the
	  'umount' utility is the tool to use. If you enabled the 'mount'
	  utility, you almost certainly also want to enable 'umount'.

config FEATURE_UMOUNT_ALL
	bool "Support option -a"
	default n
	depends on UMOUNT
	help
	  Support -a option to unmount all currently mounted filesystems.

comment "Common options for mount/umount"
	depends on MOUNT || UMOUNT

config FEATURE_MOUNT_LOOP
	bool "Support loopback mounts"
	default n
	depends on MOUNT || UMOUNT
	help
	  Enabling this feature allows automatic mounting of files (containing
	  filesystem images) via the linux kernel's loopback devices.
	  The mount command will detect you are trying to mount a file instead
	  of a block device, and transparently associate the file with a
	  loopback device. The umount command will also free that loopback
	  device.

	  You can still use the 'losetup' utility (to manually associate files
	  with loop devices) if you need to do something advanced, such as
	  specify an offset or cryptographic options to the loopback device.
	  (If you don't want umount to free the loop device, use "umount -D".)

config FEATURE_MTAB_SUPPORT
	bool "Support for the old /etc/mtab file"
	default n
	depends on MOUNT || UMOUNT
	select FEATURE_MOUNT_FAKE
	help
	  Historically, Unix systems kept track of the currently mounted
	  partitions in the file "/etc/mtab". These days, the kernel exports
	  the list of currently mounted partitions in "/proc/mounts", rendering
	  the old mtab file obsolete. (In modern systems, /etc/mtab should be
	  a symlink to /proc/mounts.)

	  The only reason to have mount maintain an /etc/mtab file itself is if
	  your stripped-down embedded system does not have a /proc directory.
	  If you must use this, keep in mind it's inherently brittle (for
	  example a mount under chroot won't update it), can't handle modern
	  features like separate per-process filesystem namespaces, requires
	  that your /etc directory be writeable, tends to get easily confused
	  by --bind or --move mounts, won't update if you rename a directory
	  that contains a mount point, and so on. (In brief: avoid.)

	  About the only reason to use this is if you've removed /proc from
	  your kernel.

endmenu
