#
# Automatically generated by make menuconfig: don't edit
#

#
# BusyBox general settings
#
# CONFIG_FEATURE_BUFFERS_USE_MALLOC is not set
CONFIG_FEATURE_BUFFERS_GO_ON_STACK=y
# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
# CONFIG_FEATURE_VERBOSE_USAGE is not set
# CONFIG_FEATURE_INSTALLER is not set
# CONFIG_LOCALE_SUPPORT is not set
CONFIG_FEATURE_DEVFS=y
CONFIG_FEATURE_DEVPTS=y
# CONFIG_FEATURE_CLEAN_UP is not set
# CONFIG_FEATURE_SUID is not set

#
# Archival Utilities
#
CONFIG_AR=y
# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
# CONFIG_BUNZIP2 is not set
# CONFIG_CPIO is not set
# CONFIG_DPKG is not set
# CONFIG_DPKG_DEB is not set
CONFIG_GUNZIP=y
# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
# CONFIG_GZIP is not set
# CONFIG_RPM2CPIO is not set
CONFIG_TAR=y
# CONFIG_FEATURE_TAR_CREATE is not set
# CONFIG_FEATURE_TAR_BZIP2 is not set
# CONFIG_FEATURE_TAR_EXCLUDE is not set
CONFIG_FEATURE_TAR_GZIP=y
# CONFIG_FEATURE_TAR_OLD_FORMAT is not set
# CONFIG_FEATURE_GNUTAR_LONG_FILENAME is not set
# CONFIG_FEATURE_UNARCHIVE_TAPE is not set
# CONFIG_UNCOMPRESS is not set
# CONFIG_UNZIP is not set

#
# Console Utilities
#
CONFIG_CHVT=y
# CONFIG_CLEAR is not set
# CONFIG_DEALLOCVT is not set
# CONFIG_DUMPKMAP is not set
# CONFIG_LOADACM is not set
# CONFIG_LOADFONT is not set
# CONFIG_LOADKMAP is not set
# CONFIG_OPENVT is not set
# CONFIG_RESET is not set
# CONFIG_SETKEYCODES is not set

#
# Debian Utilities
#
# CONFIG_MKTEMP is not set
# CONFIG_READLINK is not set
# CONFIG_RUN_PARTS is not set
# CONFIG_WHICH is not set

#
# Editors
#
# CONFIG_AWK is not set
CONFIG_SED=y
# CONFIG_VI is not set

#
# File Utilities
#
CONFIG_CHMOD=y
CONFIG_CHOWN=y
# CONFIG_CHGRP is not set
CONFIG_CP=y
# CONFIG_DD is not set
CONFIG_DF=y
# CONFIG_DU is not set
CONFIG_LN=y
CONFIG_LS=y
# CONFIG_FEATURE_LS_FILETYPES is not set
CONFIG_FEATURE_LS_FOLLOWLINKS=y
# CONFIG_FEATURE_LS_RECURSIVE is not set
CONFIG_FEATURE_LS_SORTFILES=y
CONFIG_FEATURE_LS_TIMESTAMPS=y
CONFIG_FEATURE_LS_USERNAME=y
# CONFIG_FEATURE_LS_COLOR is not set
CONFIG_MKDIR=y
# CONFIG_MKFIFO is not set
CONFIG_MKNOD=y
CONFIG_MV=y
CONFIG_RM=y
CONFIG_RMDIR=y
CONFIG_SYNC=y
CONFIG_TOUCH=y
CONFIG_FEATURE_PRESERVE_HARDLINKS=y
CONFIG_FEATURE_AUTOWIDTH=y
CONFIG_FEATURE_HUMAN_READABLE=y

#
# Finding Utilities
#
CONFIG_FIND=y
# CONFIG_FEATURE_FIND_MTIME is not set
# CONFIG_FEATURE_FIND_PERM is not set
# CONFIG_FEATURE_FIND_TYPE is not set
# CONFIG_FEATURE_FIND_XDEV is not set
CONFIG_GREP=y
# CONFIG_FEATURE_GREP_EGREP_ALIAS is not set
# CONFIG_FEATURE_GREP_CONTEXT is not set
# CONFIG_XARGS is not set

#
# Init Utilities
#
CONFIG_INIT=y
CONFIG_FEATURE_USE_INITTAB=y
CONFIG_FEATURE_INITRD=y
# CONFIG_FEATURE_INIT_COREDUMPS is not set
# CONFIG_FEATURE_EXTRA_QUIET is not set
CONFIG_HALT=y
# CONFIG_POWEROFF is not set
CONFIG_REBOOT=y
# CONFIG_START_STOP_DAEMON is not set
# CONFIG_MESG is not set

#
# Login/Password Management Utilities
#
# CONFIG_USE_BB_PWD_GRP is not set
# CONFIG_ADDGROUP is not set
# CONFIG_DELGROUP is not set
# CONFIG_ADDUSER is not set
# CONFIG_DELUSER is not set
# CONFIG_GETTY is not set
# CONFIG_LOGIN is not set
# CONFIG_PASSWD is not set
# CONFIG_SU is not set
# CONFIG_SULOGIN is not set
# CONFIG_VLOCK is not set

#
# Miscellaneous Utilities
#
# CONFIG_ADJTIMEX is not set
# CONFIG_CROND is not set
# CONFIG_CRONTAB is not set
# CONFIG_DC is not set
# CONFIG_DUTMP is not set
# CONFIG_MAKEDEVS is not set
# CONFIG_MT is not set
# CONFIG_STRINGS is not set
# CONFIG_TIME is not set
# CONFIG_UPDATE is not set
# CONFIG_WATCHDOG is not set

#
# Module Utilities
#
# CONFIG_INSMOD is not set
# CONFIG_LSMOD is not set
# CONFIG_MODPROBE is not set
# CONFIG_RMMOD is not set

#
# Networking Utilities
#
# CONFIG_FEATURE_IPV6 is not set
# CONFIG_HOSTNAME is not set
# CONFIG_IFCONFIG is not set
# CONFIG_IFUPDOWN is not set
CONFIG_IP=y
CONFIG_FEATURE_IP_ADDRESS=y
CONFIG_FEATURE_IP_LINK=y
CONFIG_FEATURE_IP_ROUTE=y
# CONFIG_FEATURE_IP_TUNNEL is not set
# CONFIG_IPCALC is not set
# CONFIG_NC is not set
# CONFIG_NETSTAT is not set
# CONFIG_NSLOOKUP is not set
CONFIG_PING=y
CONFIG_FEATURE_FANCY_PING=y
# CONFIG_ROUTE is not set
CONFIG_TELNET=y
CONFIG_FEATURE_TELNET_TTYPE=y
CONFIG_TELNETD=y
# CONFIG_TFTP is not set
# CONFIG_TRACEROUTE is not set
CONFIG_WGET=y
CONFIG_FEATURE_WGET_STATUSBAR=y
# CONFIG_FEATURE_WGET_AUTHENTICATION is not set

#
# udhcp Server/Client
#
# CONFIG_UDHCPD is not set
# CONFIG_UDHCPC is not set
# CONFIG_DUMPLEASES is not set

#
# Process Utilities
#
CONFIG_FREE=y
CONFIG_KILL=y
# CONFIG_KILLALL is not set
CONFIG_PIDOF=y
CONFIG_PS=y
# CONFIG_FEATURE_USE_DEVPS_PATCH is not set
# CONFIG_RENICE is not set
# CONFIG_TOP is not set
# CONFIG_UPTIME is not set

#
# Bourne Shell
#
# CONFIG_FEATURE_SH_IS_ASH is not set
# CONFIG_FEATURE_SH_IS_HUSH is not set
# CONFIG_FEATURE_SH_IS_LASH is not set
# CONFIG_FEATURE_SH_IS_MSH is not set
CONFIG_FEATURE_SH_IS_NONE=y
# CONFIG_ASH is not set
# CONFIG_HUSH is not set
# CONFIG_LASH is not set
# CONFIG_MSH is not set
CONFIG_FEATURE_COMMAND_EDITING=y
CONFIG_FEATURE_COMMAND_TAB_COMPLETION=y
# CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION is not set
# CONFIG_FEATURE_SH_STANDALONE_SHELL is not set
# CONFIG_FEATURE_SH_APPLETS_ALWAYS_WIN is not set
# CONFIG_FEATURE_SH_FANCY_PROMPT is not set
# CONFIG_FEATURE_SH_EXTRA_QUIET is not set

#
# Shell Utilities
#
CONFIG_BASENAME=y
# CONFIG_CAL is not set
CONFIG_CHROOT=y
# CONFIG_DATE is not set
CONFIG_DIRNAME=y
CONFIG_ECHO=y
CONFIG_ENV=y
CONFIG_EXPR=y
CONFIG_FALSE=y
# CONFIG_HOSTID is not set
CONFIG_ID=y
# CONFIG_LOGNAME is not set
# CONFIG_PRINTF is not set
CONFIG_PWD=y
# CONFIG_SLEEP is not set
# CONFIG_STTY is not set
# CONFIG_TEE is not set
CONFIG_TRUE=y
CONFIG_TEST=y
# CONFIG_TTY is not set
CONFIG_UNAME=y
# CONFIG_USLEEP is not set
# CONFIG_WATCH is not set
# CONFIG_WHO is not set
# CONFIG_WHOAMI is not set
# CONFIG_YES is not set

#
# System Logging Utilities
#
CONFIG_KLOGD=y
CONFIG_LOGGER=y
CONFIG_SYSLOGD=y
# CONFIG_FEATURE_REMOTE_LOG is not set
# CONFIG_FEATURE_IPC_SYSLOG is not set

#
# Text Utilities
#
CONFIG_CAT=y
# CONFIG_CMP is not set
# CONFIG_CUT is not set
# CONFIG_DOS2UNIX is not set
CONFIG_HEAD=y
# CONFIG_LENGTH is not set
# CONFIG_MD5SUM is not set
# CONFIG_OD is not set
CONFIG_SORT=y
# CONFIG_FEATURE_SORT_REVERSE is not set
# CONFIG_FEATURE_SORT_UNIQUE is not set
CONFIG_TAIL=y
# CONFIG_FEATURE_FANCY_TAIL is not set
CONFIG_TR=y
# CONFIG_UNIQ is not set
# CONFIG_UUDECODE is not set
# CONFIG_UUENCODE is not set
CONFIG_WC=y

#
# Linux System Utilities
#
CONFIG_DMESG=y
# CONFIG_FBSET is not set
# CONFIG_FDFLUSH is not set
# CONFIG_FDISK is not set
CONFIG_FREERAMDISK=y
# CONFIG_FSCK_MINIX is not set
# CONFIG_MKFS_MINIX is not set
# CONFIG_GETOPT is not set
# CONFIG_HEXDUMP is not set
# CONFIG_HWCLOCK is not set
# CONFIG_LOSETUP is not set
CONFIG_MKSWAP=y
CONFIG_MORE=y
CONFIG_FEATURE_USE_TERMIOS=y
CONFIG_FEATURE_AUTOWIDTH=y
CONFIG_PIVOT_ROOT=y
# CONFIG_RDATE is not set
CONFIG_SWAPONOFF=y
CONFIG_MOUNT=y
CONFIG_NFSMOUNT=y
# CONFIG_FEATURE_USE_DEVPS_PATCH is not set
CONFIG_UMOUNT=y
CONFIG_FEATURE_MOUNT_FORCE=y
CONFIG_FEATURE_MOUNT_LOOP=y
# CONFIG_FEATURE_MTAB_SUPPORT is not set
