Commits

Anonymous committed fb0d142

new addition
Signed-off-by: veclinux <veclinux@mail.com>

Comments (0)

Files changed (14)

var/vabs/mkinitrd/src/README.initrd

+
+Slackware initrd mini HOWTO
+by Patrick Volkerding, volkerdi@slackware.com
+@DATE@
+
+This document describes how to create and install an initrd, which may be 
+required to use some features of the kernel.  Also see "man mkinitrd".
+
+1.  What is an initrd?
+2.  Why to I need an initrd?
+3.  How do I build the initrd?
+4.  Now that I've built an initrd, how do I use it?
+
+
+1.  What is an initrd?
+
+Initrd stands for "initial ramdisk".  An initial ramdisk is a very small 
+Linux filesystem that is loaded into RAM and mounted as the kernel boots, 
+and before the main root filesystem is mounted.
+
+2.  Why do I need an initrd?
+
+The usual reason to use an initrd is because you need to load kernel 
+modules before mounting the root partition.  Usually these modules are 
+required to support the filesystem used by the root partition (ext3, 
+reiserfs, xfs), or perhaps the controller that the hard drive is attached 
+to (SCSI, RAID, etc).  Essentially, there are so many different options 
+available in modern Linux kernels that it isn't practical to try to ship 
+many different kernels to try to cover everyone's needs.  It's a lot more 
+flexible to ship a generic kernel and a set of kernel modules for it.
+
+3.  How do I build the initrd?
+
+The easiest way to make the initrd is to use the mkinitrd script included 
+in Slackware's mkinitrd package.  We'll walk through the process of 
+upgrading to the generic @KERNEL_VERSION@ Linux kernel using the packages
+found in Slackware's slackware/a/ directory.
+
+First, make sure the kernel, kernel modules, and mkinitrd package are 
+installed (the current version numbers might be a little different, so 
+this is just an example):
+
+  installpkg kernel-generic-@KERNEL_VERSION@-@ARCH@-@BUILD@.tgz
+  installpkg kernel-modules-@KERNEL_VERSION@-@ARCH@-@BUILD@.tgz
+  installpkg mkinitrd-@MKINITRD_VERSION@-@ARCH@-@BUILD@.tgz
+
+Change into the /boot directory:
+
+  cd /boot
+
+Now you'll want to run "mkinitrd".  I'm using ext4 for my root
+filesystem, and since mkinitrd should figure out any other modules
+it requires, I shouldn't need to specify any others:
+
+  mkinitrd -c -k @KERNEL_VERSION@ -m ext4
+
+This should do two things.  First, it will create a directory
+/boot/initrd-tree containing the initrd's filesystem.  Then it will
+create an initrd (/boot/initrd.gz) from this tree.  If you wanted to,
+you could make some additional changes in /boot/initrd-tree/ and
+then run mkinitrd again without options to rebuild the image.  That's
+optional, though, and only advanced users will need to think about that.
+
+Here's another example:  Build an initrd image using Linux @KERNEL_VERSION@
+kernel modules for a system with an ext3 root partition on /dev/sdb3:
+
+  mkinitrd -c -k @KERNEL_VERSION@ -m ext3 -f ext3 -r /dev/sdb3
+
+
+4.  Now that I've built an initrd, how do I use it?
+
+Now that you've got an initrd (/boot/initrd.gz), you'll want to load
+it along with the kernel at boot time.  If you use LILO for your boot
+loader you'll need to edit /etc/lilo.conf and add a line to load the
+initrd.  Here's an example section of lilo.conf showing how this is
+done:
+
+# Linux bootable partition config begins
+image = /boot/vmlinuz-generic-@KERNEL_VERSION@
+  initrd = /boot/initrd.gz
+  root = /dev/sda6
+  label = @LILO_KERNEL_NAME@
+  read-only
+# Linux bootable partition config ends
+
+The initrd is loaded by the "initrd = /boot/initrd.gz" line.
+Just add the line right below the line for the kernel image you use.
+Save the file, and then run LILO again ('lilo' at the command line).
+You'll need to run lilo every time you edit lilo.conf or rebuild the
+initrd.
+
+Other bootloaders such as syslinux also support the use of an initrd.
+See the documentation for those programs for details on using an
+initrd with them.
+
+
+---------
+
+Have fun!

var/vabs/mkinitrd/src/busybox-dot-config

+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.20.1
+# Tue Jun 12 09:42:03 2012
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Busybox Settings
+#
+
+#
+# General Configuration
+#
+CONFIG_DESKTOP=y
+# CONFIG_EXTRA_COMPAT is not set
+CONFIG_INCLUDE_SUSv2=y
+# CONFIG_USE_PORTABLE_CODE is not set
+CONFIG_PLATFORM_LINUX=y
+CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
+CONFIG_SHOW_USAGE=y
+CONFIG_FEATURE_VERBOSE_USAGE=y
+CONFIG_FEATURE_COMPRESS_USAGE=y
+CONFIG_FEATURE_INSTALLER=y
+CONFIG_INSTALL_NO_USR=y
+CONFIG_LOCALE_SUPPORT=y
+CONFIG_UNICODE_SUPPORT=y
+# CONFIG_UNICODE_USING_LOCALE is not set
+# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
+CONFIG_SUBST_WCHAR=63
+CONFIG_LAST_SUPPORTED_WCHAR=767
+# CONFIG_UNICODE_COMBINING_WCHARS is not set
+# CONFIG_UNICODE_WIDE_WCHARS is not set
+# CONFIG_UNICODE_BIDI_SUPPORT is not set
+# CONFIG_UNICODE_NEUTRAL_TABLE is not set
+# CONFIG_UNICODE_PRESERVE_BROKEN is not set
+CONFIG_LONG_OPTS=y
+CONFIG_FEATURE_DEVPTS=y
+# CONFIG_FEATURE_CLEAN_UP is not set
+CONFIG_FEATURE_UTMP=y
+CONFIG_FEATURE_WTMP=y
+CONFIG_FEATURE_PIDFILE=y
+CONFIG_FEATURE_SUID=y
+CONFIG_FEATURE_SUID_CONFIG=y
+CONFIG_FEATURE_SUID_CONFIG_QUIET=y
+# CONFIG_SELINUX is not set
+# CONFIG_FEATURE_PREFER_APPLETS is not set
+CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
+CONFIG_FEATURE_SYSLOG=y
+CONFIG_FEATURE_HAVE_RPC=y
+
+#
+# Build Options
+#
+# CONFIG_STATIC is not set
+# CONFIG_PIE is not set
+# CONFIG_NOMMU is not set
+# CONFIG_BUILD_LIBBUSYBOX is not set
+# CONFIG_FEATURE_INDIVIDUAL is not set
+# CONFIG_FEATURE_SHARED_BUSYBOX is not set
+CONFIG_LFS=y
+CONFIG_CROSS_COMPILER_PREFIX=""
+CONFIG_SYSROOT=""
+CONFIG_EXTRA_CFLAGS=""
+CONFIG_EXTRA_LDFLAGS=""
+CONFIG_EXTRA_LDLIBS=""
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_DEBUG_PESSIMIZE is not set
+# CONFIG_WERROR is not set
+CONFIG_NO_DEBUG_LIB=y
+# CONFIG_DMALLOC is not set
+# CONFIG_EFENCE is not set
+
+#
+# Installation Options ("make install" behavior)
+#
+CONFIG_INSTALL_APPLET_SYMLINKS=y
+# CONFIG_INSTALL_APPLET_HARDLINKS is not set
+# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
+# CONFIG_INSTALL_APPLET_DONT is not set
+# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
+# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
+# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
+CONFIG_PREFIX="/tmp/package-mkinitrd/usr/share/mkinitrd/initrd-tree"
+
+#
+# Busybox Library Tuning
+#
+# CONFIG_FEATURE_SYSTEMD is not set
+CONFIG_FEATURE_RTMINMAX=y
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SMALL=1
+# CONFIG_FEATURE_FAST_TOP is not set
+# CONFIG_FEATURE_ETC_NETWORKS is not set
+CONFIG_FEATURE_USE_TERMIOS=y
+CONFIG_FEATURE_EDITING=y
+CONFIG_FEATURE_EDITING_MAX_LEN=1024
+CONFIG_FEATURE_EDITING_VI=y
+CONFIG_FEATURE_EDITING_HISTORY=64
+# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set
+# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set
+# CONFIG_FEATURE_REVERSE_SEARCH is not set
+CONFIG_FEATURE_TAB_COMPLETION=y
+# CONFIG_FEATURE_USERNAME_COMPLETION is not set
+CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
+CONFIG_FEATURE_EDITING_ASK_TERMINAL=y
+# CONFIG_FEATURE_NON_POSIX_CP is not set
+CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y
+CONFIG_FEATURE_COPYBUF_KB=4
+# CONFIG_FEATURE_SKIP_ROOTFS is not set
+CONFIG_MONOTONIC_SYSCALL=y
+CONFIG_IOCTL_HEX2STR_ERROR=y
+# CONFIG_FEATURE_HWIB is not set
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+CONFIG_FEATURE_SEAMLESS_XZ=y
+# CONFIG_FEATURE_SEAMLESS_LZMA is not set
+CONFIG_FEATURE_SEAMLESS_BZ2=y
+CONFIG_FEATURE_SEAMLESS_GZ=y
+CONFIG_FEATURE_SEAMLESS_Z=y
+CONFIG_AR=y
+CONFIG_FEATURE_AR_LONG_FILENAMES=y
+# CONFIG_FEATURE_AR_CREATE is not set
+CONFIG_BUNZIP2=y
+CONFIG_BZIP2=y
+CONFIG_CPIO=y
+CONFIG_FEATURE_CPIO_O=y
+CONFIG_FEATURE_CPIO_P=y
+# CONFIG_DPKG is not set
+# CONFIG_DPKG_DEB is not set
+# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
+CONFIG_GUNZIP=y
+CONFIG_GZIP=y
+CONFIG_FEATURE_GZIP_LONG_OPTIONS=y
+CONFIG_GZIP_FAST=0
+CONFIG_LZOP=y
+CONFIG_LZOP_COMPR_HIGH=y
+CONFIG_RPM2CPIO=y
+# CONFIG_RPM is not set
+CONFIG_TAR=y
+CONFIG_FEATURE_TAR_CREATE=y
+CONFIG_FEATURE_TAR_AUTODETECT=y
+CONFIG_FEATURE_TAR_FROM=y
+CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y
+# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
+CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
+CONFIG_FEATURE_TAR_LONG_OPTIONS=y
+# CONFIG_FEATURE_TAR_TO_COMMAND is not set
+CONFIG_FEATURE_TAR_UNAME_GNAME=y
+CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
+# CONFIG_FEATURE_TAR_SELINUX is not set
+CONFIG_UNCOMPRESS=y
+CONFIG_UNLZMA=y
+CONFIG_FEATURE_LZMA_FAST=y
+CONFIG_LZMA=y
+CONFIG_UNXZ=y
+CONFIG_XZ=y
+CONFIG_UNZIP=y
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+CONFIG_CAT=y
+CONFIG_DATE=y
+CONFIG_FEATURE_DATE_ISOFMT=y
+# CONFIG_FEATURE_DATE_NANO is not set
+# CONFIG_FEATURE_DATE_COMPAT is not set
+CONFIG_HOSTID=y
+CONFIG_ID=y
+# CONFIG_GROUPS is not set
+CONFIG_TEST=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TOUCH=y
+CONFIG_FEATURE_TOUCH_SUSV3=y
+CONFIG_TR=y
+CONFIG_FEATURE_TR_CLASSES=y
+CONFIG_FEATURE_TR_EQUIV=y
+CONFIG_BASE64=y
+CONFIG_WHO=y
+CONFIG_USERS=y
+CONFIG_CAL=y
+CONFIG_CATV=y
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+# CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set
+CONFIG_CHROOT=y
+CONFIG_CKSUM=y
+CONFIG_COMM=y
+CONFIG_CP=y
+CONFIG_FEATURE_CP_LONG_OPTIONS=y
+CONFIG_CUT=y
+CONFIG_DD=y
+CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
+# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
+CONFIG_FEATURE_DD_IBS_OBS=y
+CONFIG_DF=y
+CONFIG_FEATURE_DF_FANCY=y
+CONFIG_DIRNAME=y
+CONFIG_DOS2UNIX=y
+CONFIG_UNIX2DOS=y
+CONFIG_DU=y
+CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
+CONFIG_ECHO=y
+CONFIG_FEATURE_FANCY_ECHO=y
+CONFIG_ENV=y
+CONFIG_FEATURE_ENV_LONG_OPTIONS=y
+CONFIG_EXPAND=y
+CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y
+CONFIG_EXPR=y
+CONFIG_EXPR_MATH_SUPPORT_64=y
+CONFIG_FALSE=y
+CONFIG_FOLD=y
+CONFIG_FSYNC=y
+CONFIG_HEAD=y
+CONFIG_FEATURE_FANCY_HEAD=y
+CONFIG_INSTALL=y
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
+CONFIG_LN=y
+CONFIG_LOGNAME=y
+CONFIG_LS=y
+CONFIG_FEATURE_LS_FILETYPES=y
+CONFIG_FEATURE_LS_FOLLOWLINKS=y
+CONFIG_FEATURE_LS_RECURSIVE=y
+CONFIG_FEATURE_LS_SORTFILES=y
+CONFIG_FEATURE_LS_TIMESTAMPS=y
+CONFIG_FEATURE_LS_USERNAME=y
+CONFIG_FEATURE_LS_COLOR=y
+CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
+CONFIG_MD5SUM=y
+CONFIG_MKDIR=y
+CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
+CONFIG_MKFIFO=y
+CONFIG_MKNOD=y
+CONFIG_MV=y
+CONFIG_FEATURE_MV_LONG_OPTIONS=y
+CONFIG_NICE=y
+CONFIG_NOHUP=y
+CONFIG_OD=y
+CONFIG_PRINTENV=y
+CONFIG_PRINTF=y
+CONFIG_PWD=y
+CONFIG_READLINK=y
+CONFIG_FEATURE_READLINK_FOLLOW=y
+CONFIG_REALPATH=y
+CONFIG_RM=y
+CONFIG_RMDIR=y
+# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
+CONFIG_SEQ=y
+CONFIG_SHA1SUM=y
+CONFIG_SHA256SUM=y
+CONFIG_SHA512SUM=y
+CONFIG_SLEEP=y
+CONFIG_FEATURE_FANCY_SLEEP=y
+# CONFIG_FEATURE_FLOAT_SLEEP is not set
+CONFIG_SORT=y
+CONFIG_FEATURE_SORT_BIG=y
+CONFIG_SPLIT=y
+CONFIG_FEATURE_SPLIT_FANCY=y
+CONFIG_STAT=y
+CONFIG_FEATURE_STAT_FORMAT=y
+CONFIG_STTY=y
+CONFIG_SUM=y
+CONFIG_SYNC=y
+CONFIG_TAC=y
+CONFIG_TAIL=y
+CONFIG_FEATURE_FANCY_TAIL=y
+CONFIG_TEE=y
+CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
+CONFIG_TRUE=y
+CONFIG_TTY=y
+CONFIG_UNAME=y
+CONFIG_UNEXPAND=y
+CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y
+CONFIG_UNIQ=y
+CONFIG_USLEEP=y
+CONFIG_UUDECODE=y
+CONFIG_UUENCODE=y
+CONFIG_WC=y
+CONFIG_FEATURE_WC_LARGE=y
+CONFIG_WHOAMI=y
+CONFIG_YES=y
+
+#
+# Common options for cp and mv
+#
+CONFIG_FEATURE_PRESERVE_HARDLINKS=y
+
+#
+# Common options for ls, more and telnet
+#
+CONFIG_FEATURE_AUTOWIDTH=y
+
+#
+# Common options for df, du, ls
+#
+CONFIG_FEATURE_HUMAN_READABLE=y
+
+#
+# Common options for md5sum, sha1sum, sha256sum, sha512sum
+#
+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
+
+#
+# Console Utilities
+#
+CONFIG_CHVT=y
+CONFIG_FGCONSOLE=y
+CONFIG_CLEAR=y
+CONFIG_DEALLOCVT=y
+CONFIG_DUMPKMAP=y
+CONFIG_KBD_MODE=y
+CONFIG_LOADFONT=y
+CONFIG_LOADKMAP=y
+CONFIG_OPENVT=y
+CONFIG_RESET=y
+CONFIG_RESIZE=y
+CONFIG_FEATURE_RESIZE_PRINT=y
+CONFIG_SETCONSOLE=y
+CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y
+CONFIG_SETFONT=y
+CONFIG_FEATURE_SETFONT_TEXTUAL_MAP=y
+CONFIG_DEFAULT_SETFONT_DIR="/usr/share/kbd/consolefonts"
+CONFIG_SETKEYCODES=y
+CONFIG_SETLOGCONS=y
+CONFIG_SHOWKEY=y
+
+#
+# Common options for loadfont and setfont
+#
+# CONFIG_FEATURE_LOADFONT_PSF2 is not set
+CONFIG_FEATURE_LOADFONT_RAW=y
+
+#
+# Debian Utilities
+#
+CONFIG_MKTEMP=y
+CONFIG_PIPE_PROGRESS=y
+CONFIG_RUN_PARTS=y
+CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
+CONFIG_FEATURE_RUN_PARTS_FANCY=y
+CONFIG_START_STOP_DAEMON=y
+CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
+CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
+CONFIG_WHICH=y
+
+#
+# Editors
+#
+CONFIG_PATCH=y
+CONFIG_VI=y
+CONFIG_FEATURE_VI_MAX_LEN=1024
+CONFIG_FEATURE_VI_8BIT=y
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
+CONFIG_FEATURE_VI_SEARCH=y
+# CONFIG_FEATURE_VI_REGEX_SEARCH is not set
+CONFIG_FEATURE_VI_USE_SIGNALS=y
+CONFIG_FEATURE_VI_DOT_CMD=y
+CONFIG_FEATURE_VI_READONLY=y
+CONFIG_FEATURE_VI_SETOPTS=y
+CONFIG_FEATURE_VI_SET=y
+CONFIG_FEATURE_VI_WIN_RESIZE=y
+CONFIG_FEATURE_VI_ASK_TERMINAL=y
+CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
+CONFIG_AWK=y
+CONFIG_FEATURE_AWK_LIBM=y
+CONFIG_CMP=y
+CONFIG_DIFF=y
+# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
+CONFIG_FEATURE_DIFF_DIR=y
+CONFIG_ED=y
+CONFIG_SED=y
+CONFIG_FEATURE_ALLOW_EXEC=y
+
+#
+# Finding Utilities
+#
+CONFIG_FIND=y
+CONFIG_FEATURE_FIND_PRINT0=y
+CONFIG_FEATURE_FIND_MTIME=y
+CONFIG_FEATURE_FIND_MMIN=y
+CONFIG_FEATURE_FIND_PERM=y
+CONFIG_FEATURE_FIND_TYPE=y
+CONFIG_FEATURE_FIND_XDEV=y
+CONFIG_FEATURE_FIND_MAXDEPTH=y
+CONFIG_FEATURE_FIND_NEWER=y
+CONFIG_FEATURE_FIND_INUM=y
+CONFIG_FEATURE_FIND_EXEC=y
+CONFIG_FEATURE_FIND_USER=y
+CONFIG_FEATURE_FIND_GROUP=y
+CONFIG_FEATURE_FIND_NOT=y
+CONFIG_FEATURE_FIND_DEPTH=y
+CONFIG_FEATURE_FIND_PAREN=y
+CONFIG_FEATURE_FIND_SIZE=y
+CONFIG_FEATURE_FIND_PRUNE=y
+# CONFIG_FEATURE_FIND_DELETE is not set
+CONFIG_FEATURE_FIND_PATH=y
+CONFIG_FEATURE_FIND_REGEX=y
+# CONFIG_FEATURE_FIND_CONTEXT is not set
+CONFIG_FEATURE_FIND_LINKS=y
+CONFIG_GREP=y
+CONFIG_FEATURE_GREP_EGREP_ALIAS=y
+CONFIG_FEATURE_GREP_FGREP_ALIAS=y
+CONFIG_FEATURE_GREP_CONTEXT=y
+CONFIG_XARGS=y
+CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y
+CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
+CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
+CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
+
+#
+# Init Utilities
+#
+# CONFIG_BOOTCHARTD is not set
+# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set
+# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set
+CONFIG_HALT=y
+# CONFIG_FEATURE_CALL_TELINIT is not set
+CONFIG_TELINIT_PATH=""
+CONFIG_INIT=y
+CONFIG_FEATURE_USE_INITTAB=y
+CONFIG_FEATURE_KILL_REMOVED=y
+CONFIG_FEATURE_KILL_DELAY=10
+CONFIG_FEATURE_INIT_SCTTY=y
+CONFIG_FEATURE_INIT_SYSLOG=y
+CONFIG_FEATURE_EXTRA_QUIET=y
+# CONFIG_FEATURE_INIT_COREDUMPS is not set
+# CONFIG_FEATURE_INITRD is not set
+CONFIG_INIT_TERMINAL_TYPE="linux"
+CONFIG_MESG=y
+CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y
+
+#
+# Login/Password Management Utilities
+#
+CONFIG_ADD_SHELL=y
+CONFIG_REMOVE_SHELL=y
+CONFIG_FEATURE_SHADOWPASSWDS=y
+# CONFIG_USE_BB_PWD_GRP is not set
+# CONFIG_USE_BB_SHADOW is not set
+CONFIG_USE_BB_CRYPT=y
+CONFIG_USE_BB_CRYPT_SHA=y
+CONFIG_ADDUSER=y
+# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
+CONFIG_FEATURE_CHECK_NAMES=y
+CONFIG_FIRST_SYSTEM_ID=1000
+CONFIG_LAST_SYSTEM_ID=12000
+CONFIG_ADDGROUP=y
+CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS=y
+CONFIG_FEATURE_ADDUSER_TO_GROUP=y
+CONFIG_DELUSER=y
+CONFIG_DELGROUP=y
+CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
+CONFIG_GETTY=y
+CONFIG_LOGIN=y
+# CONFIG_LOGIN_SESSION_AS_CHILD is not set
+# CONFIG_PAM is not set
+CONFIG_LOGIN_SCRIPTS=y
+CONFIG_FEATURE_NOLOGIN=y
+# CONFIG_FEATURE_SECURETTY is not set
+CONFIG_PASSWD=y
+CONFIG_FEATURE_PASSWD_WEAK_CHECK=y
+CONFIG_CRYPTPW=y
+CONFIG_CHPASSWD=y
+CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="s"
+CONFIG_SU=y
+CONFIG_FEATURE_SU_SYSLOG=y
+CONFIG_FEATURE_SU_CHECKS_SHELLS=y
+CONFIG_SULOGIN=y
+CONFIG_VLOCK=y
+
+#
+# Linux Ext2 FS Progs
+#
+CONFIG_CHATTR=y
+CONFIG_FSCK=y
+CONFIG_LSATTR=y
+CONFIG_TUNE2FS=y
+
+#
+# Linux Module Utilities
+#
+CONFIG_MODINFO=y
+# CONFIG_MODPROBE_SMALL is not set
+# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set
+# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set
+CONFIG_INSMOD=y
+CONFIG_RMMOD=y
+CONFIG_LSMOD=y
+CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
+CONFIG_MODPROBE=y
+CONFIG_FEATURE_MODPROBE_BLACKLIST=y
+CONFIG_DEPMOD=y
+
+#
+# Options common to multiple modutils
+#
+CONFIG_FEATURE_2_4_MODULES=y
+# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS=y
+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
+CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
+CONFIG_FEATURE_MODUTILS_ALIAS=y
+CONFIG_FEATURE_MODUTILS_SYMBOLS=y
+CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
+CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
+
+#
+# Linux System Utilities
+#
+CONFIG_BLOCKDEV=y
+CONFIG_MDEV=y
+CONFIG_FEATURE_MDEV_CONF=y
+CONFIG_FEATURE_MDEV_RENAME=y
+CONFIG_FEATURE_MDEV_RENAME_REGEXP=y
+CONFIG_FEATURE_MDEV_EXEC=y
+CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
+CONFIG_REV=y
+CONFIG_ACPID=y
+CONFIG_FEATURE_ACPID_COMPAT=y
+CONFIG_BLKID=y
+CONFIG_FEATURE_BLKID_TYPE=y
+CONFIG_DMESG=y
+CONFIG_FEATURE_DMESG_PRETTY=y
+CONFIG_FBSET=y
+CONFIG_FEATURE_FBSET_FANCY=y
+CONFIG_FEATURE_FBSET_READMODE=y
+CONFIG_FDFLUSH=y
+CONFIG_FDFORMAT=y
+CONFIG_FDISK=y
+# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
+CONFIG_FEATURE_FDISK_WRITABLE=y
+# CONFIG_FEATURE_AIX_LABEL is not set
+# CONFIG_FEATURE_SGI_LABEL is not set
+# CONFIG_FEATURE_SUN_LABEL is not set
+CONFIG_FEATURE_OSF_LABEL=y
+CONFIG_FEATURE_GPT_LABEL=y
+CONFIG_FEATURE_FDISK_ADVANCED=y
+CONFIG_FINDFS=y
+# CONFIG_FLOCK is not set
+CONFIG_FREERAMDISK=y
+CONFIG_FSCK_MINIX=y
+# CONFIG_MKFS_EXT2 is not set
+CONFIG_MKFS_MINIX=y
+CONFIG_FEATURE_MINIX2=y
+# CONFIG_MKFS_REISER is not set
+CONFIG_MKFS_VFAT=y
+CONFIG_GETOPT=y
+CONFIG_FEATURE_GETOPT_LONG=y
+CONFIG_HEXDUMP=y
+CONFIG_FEATURE_HEXDUMP_REVERSE=y
+CONFIG_HD=y
+CONFIG_HWCLOCK=y
+CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y
+CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
+CONFIG_IPCRM=y
+CONFIG_IPCS=y
+CONFIG_LOSETUP=y
+CONFIG_LSPCI=y
+CONFIG_LSUSB=y
+CONFIG_MKSWAP=y
+CONFIG_FEATURE_MKSWAP_UUID=y
+CONFIG_MORE=y
+CONFIG_MOUNT=y
+CONFIG_FEATURE_MOUNT_FAKE=y
+# CONFIG_FEATURE_MOUNT_VERBOSE is not set
+CONFIG_FEATURE_MOUNT_HELPERS=y
+CONFIG_FEATURE_MOUNT_LABEL=y
+CONFIG_FEATURE_MOUNT_NFS=y
+CONFIG_FEATURE_MOUNT_CIFS=y
+CONFIG_FEATURE_MOUNT_FLAGS=y
+CONFIG_FEATURE_MOUNT_FSTAB=y
+CONFIG_PIVOT_ROOT=y
+CONFIG_RDATE=y
+CONFIG_RDEV=y
+CONFIG_READPROFILE=y
+CONFIG_RTCWAKE=y
+CONFIG_SCRIPT=y
+CONFIG_SCRIPTREPLAY=y
+CONFIG_SETARCH=y
+CONFIG_SWAPONOFF=y
+CONFIG_FEATURE_SWAPON_PRI=y
+CONFIG_SWITCH_ROOT=y
+CONFIG_UMOUNT=y
+CONFIG_FEATURE_UMOUNT_ALL=y
+
+#
+# Common options for mount/umount
+#
+CONFIG_FEATURE_MOUNT_LOOP=y
+CONFIG_FEATURE_MOUNT_LOOP_CREATE=y
+CONFIG_FEATURE_MTAB_SUPPORT=y
+CONFIG_VOLUMEID=y
+
+#
+# Filesystem/Volume identification
+#
+CONFIG_FEATURE_VOLUMEID_EXT=y
+# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
+CONFIG_FEATURE_VOLUMEID_REISERFS=y
+CONFIG_FEATURE_VOLUMEID_FAT=y
+CONFIG_FEATURE_VOLUMEID_HFS=y
+CONFIG_FEATURE_VOLUMEID_JFS=y
+CONFIG_FEATURE_VOLUMEID_XFS=y
+CONFIG_FEATURE_VOLUMEID_NTFS=y
+CONFIG_FEATURE_VOLUMEID_ISO9660=y
+CONFIG_FEATURE_VOLUMEID_UDF=y
+CONFIG_FEATURE_VOLUMEID_LUKS=y
+CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
+CONFIG_FEATURE_VOLUMEID_CRAMFS=y
+CONFIG_FEATURE_VOLUMEID_ROMFS=y
+CONFIG_FEATURE_VOLUMEID_SYSV=y
+# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
+CONFIG_FEATURE_VOLUMEID_LINUXRAID=y
+
+#
+# Miscellaneous Utilities
+#
+# CONFIG_CONSPY is not set
+CONFIG_LESS=y
+CONFIG_FEATURE_LESS_MAXLINES=9999999
+CONFIG_FEATURE_LESS_BRACKETS=y
+CONFIG_FEATURE_LESS_FLAGS=y
+CONFIG_FEATURE_LESS_MARKS=y
+CONFIG_FEATURE_LESS_REGEXP=y
+CONFIG_FEATURE_LESS_WINCH=y
+CONFIG_FEATURE_LESS_ASK_TERMINAL=y
+CONFIG_FEATURE_LESS_DASHCMD=y
+CONFIG_FEATURE_LESS_LINENUMS=y
+# CONFIG_NANDWRITE is not set
+# CONFIG_NANDDUMP is not set
+CONFIG_SETSERIAL=y
+# CONFIG_UBIATTACH is not set
+# CONFIG_UBIDETACH is not set
+# CONFIG_UBIMKVOL is not set
+# CONFIG_UBIRMVOL is not set
+# CONFIG_UBIRSVOL is not set
+# CONFIG_UBIUPDATEVOL is not set
+CONFIG_ADJTIMEX=y
+CONFIG_BBCONFIG=y
+CONFIG_FEATURE_COMPRESS_BBCONFIG=y
+CONFIG_BEEP=y
+CONFIG_FEATURE_BEEP_FREQ=4000
+CONFIG_FEATURE_BEEP_LENGTH_MS=30
+CONFIG_CHAT=y
+CONFIG_FEATURE_CHAT_NOFAIL=y
+# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
+CONFIG_FEATURE_CHAT_IMPLICIT_CR=y
+# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set
+# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set
+# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
+# CONFIG_FEATURE_CHAT_CLR_ABORT is not set
+CONFIG_CHRT=y
+CONFIG_CROND=y
+CONFIG_FEATURE_CROND_D=y
+# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
+CONFIG_FEATURE_CROND_DIR="/var/spool/cron"
+CONFIG_CRONTAB=y
+CONFIG_DC=y
+CONFIG_FEATURE_DC_LIBM=y
+# CONFIG_DEVFSD is not set
+# CONFIG_DEVFSD_MODLOAD is not set
+# CONFIG_DEVFSD_FG_NP is not set
+# CONFIG_DEVFSD_VERBOSE is not set
+# CONFIG_FEATURE_DEVFS is not set
+CONFIG_DEVMEM=y
+CONFIG_EJECT=y
+CONFIG_FEATURE_EJECT_SCSI=y
+CONFIG_FBSPLASH=y
+# CONFIG_FLASHCP is not set
+CONFIG_FLASH_LOCK=y
+CONFIG_FLASH_UNLOCK=y
+CONFIG_FLASH_ERASEALL=y
+CONFIG_IONICE=y
+CONFIG_INOTIFYD=y
+CONFIG_LAST=y
+CONFIG_FEATURE_LAST_SMALL=y
+# CONFIG_FEATURE_LAST_FANCY is not set
+CONFIG_HDPARM=y
+CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
+CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y
+CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y
+CONFIG_MAKEDEVS=y
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
+CONFIG_FEATURE_MAKEDEVS_TABLE=y
+# CONFIG_MAN is not set
+# CONFIG_MICROCOM is not set
+CONFIG_MOUNTPOINT=y
+CONFIG_MT=y
+CONFIG_RAIDAUTORUN=y
+CONFIG_READAHEAD=y
+# CONFIG_RFKILL is not set
+CONFIG_RUNLEVEL=y
+CONFIG_RX=y
+CONFIG_SETSID=y
+CONFIG_STRINGS=y
+CONFIG_TASKSET=y
+CONFIG_FEATURE_TASKSET_FANCY=y
+CONFIG_TIME=y
+CONFIG_TIMEOUT=y
+CONFIG_TTYSIZE=y
+CONFIG_VOLNAME=y
+# CONFIG_WALL is not set
+CONFIG_WATCHDOG=y
+
+#
+# Networking Utilities
+#
+CONFIG_NAMEIF=y
+# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
+CONFIG_NBDCLIENT=y
+CONFIG_NC=y
+CONFIG_NC_SERVER=y
+CONFIG_NC_EXTRA=y
+# CONFIG_NC_110_COMPAT is not set
+CONFIG_PING=y
+CONFIG_PING6=y
+CONFIG_FEATURE_FANCY_PING=y
+# CONFIG_WHOIS is not set
+CONFIG_FEATURE_IPV6=y
+CONFIG_FEATURE_UNIX_LOCAL=y
+CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
+# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
+CONFIG_ARP=y
+CONFIG_ARPING=y
+CONFIG_BRCTL=y
+# CONFIG_FEATURE_BRCTL_FANCY is not set
+# CONFIG_FEATURE_BRCTL_SHOW is not set
+CONFIG_DNSD=y
+CONFIG_ETHER_WAKE=y
+CONFIG_FAKEIDENTD=y
+CONFIG_FTPD=y
+CONFIG_FEATURE_FTP_WRITE=y
+CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y
+CONFIG_FTPGET=y
+CONFIG_FTPPUT=y
+CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y
+CONFIG_HOSTNAME=y
+# CONFIG_HTTPD is not set
+# CONFIG_FEATURE_HTTPD_RANGES is not set
+# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
+# CONFIG_FEATURE_HTTPD_SETUID is not set
+# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
+# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
+# CONFIG_FEATURE_HTTPD_CGI is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
+# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
+# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
+# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
+# CONFIG_FEATURE_HTTPD_PROXY is not set
+# CONFIG_FEATURE_HTTPD_GZIP is not set
+CONFIG_IFCONFIG=y
+CONFIG_FEATURE_IFCONFIG_STATUS=y
+CONFIG_FEATURE_IFCONFIG_SLIP=y
+CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y
+CONFIG_FEATURE_IFCONFIG_HW=y
+CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
+CONFIG_IFENSLAVE=y
+CONFIG_IFPLUGD=y
+CONFIG_IFUPDOWN=y
+CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
+CONFIG_FEATURE_IFUPDOWN_IP=y
+CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y
+# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
+CONFIG_FEATURE_IFUPDOWN_IPV4=y
+CONFIG_FEATURE_IFUPDOWN_IPV6=y
+CONFIG_FEATURE_IFUPDOWN_MAPPING=y
+CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y
+# CONFIG_INETD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
+# CONFIG_FEATURE_INETD_RPC 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=y
+CONFIG_FEATURE_IP_RULE=y
+CONFIG_FEATURE_IP_SHORT_FORMS=y
+# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
+CONFIG_IPADDR=y
+CONFIG_IPLINK=y
+CONFIG_IPROUTE=y
+CONFIG_IPTUNNEL=y
+CONFIG_IPRULE=y
+CONFIG_IPCALC=y
+CONFIG_FEATURE_IPCALC_FANCY=y
+CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y
+CONFIG_NETSTAT=y
+# CONFIG_FEATURE_NETSTAT_WIDE is not set
+CONFIG_FEATURE_NETSTAT_PRG=y
+CONFIG_NSLOOKUP=y
+# CONFIG_NTPD is not set
+# CONFIG_FEATURE_NTPD_SERVER is not set
+CONFIG_PSCAN=y
+CONFIG_ROUTE=y
+CONFIG_SLATTACH=y
+CONFIG_TCPSVD=y
+CONFIG_TELNET=y
+CONFIG_FEATURE_TELNET_TTYPE=y
+CONFIG_FEATURE_TELNET_AUTOLOGIN=y
+CONFIG_TELNETD=y
+CONFIG_FEATURE_TELNETD_STANDALONE=y
+# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
+CONFIG_TFTP=y
+# CONFIG_TFTPD is not set
+
+#
+# Common options for tftp/tftpd
+#
+CONFIG_FEATURE_TFTP_GET=y
+CONFIG_FEATURE_TFTP_PUT=y
+CONFIG_FEATURE_TFTP_BLOCKSIZE=y
+CONFIG_FEATURE_TFTP_PROGRESS_BAR=y
+CONFIG_TFTP_DEBUG=y
+CONFIG_TRACEROUTE=y
+CONFIG_TRACEROUTE6=y
+# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
+# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
+# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
+CONFIG_TUNCTL=y
+CONFIG_FEATURE_TUNCTL_UG=y
+CONFIG_UDHCPC6=y
+# CONFIG_UDHCPD is not set
+# CONFIG_DHCPRELAY is not set
+# CONFIG_DUMPLEASES is not set
+# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
+# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set
+CONFIG_DHCPD_LEASES_FILE=""
+# CONFIG_UDHCPC is not set
+# CONFIG_FEATURE_UDHCPC_ARPING is not set
+# CONFIG_FEATURE_UDHCP_PORT is not set
+CONFIG_UDHCP_DEBUG=0
+# CONFIG_FEATURE_UDHCP_RFC3397 is not set
+# CONFIG_FEATURE_UDHCP_8021Q is not set
+CONFIG_UDHCPC_DEFAULT_SCRIPT=""
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0
+CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""
+CONFIG_UDPSVD=y
+CONFIG_VCONFIG=y
+CONFIG_WGET=y
+CONFIG_FEATURE_WGET_STATUSBAR=y
+CONFIG_FEATURE_WGET_AUTHENTICATION=y
+CONFIG_FEATURE_WGET_LONG_OPTIONS=y
+CONFIG_FEATURE_WGET_TIMEOUT=y
+CONFIG_ZCIP=y
+
+#
+# Print Utilities
+#
+# CONFIG_LPD is not set
+CONFIG_LPR=y
+# CONFIG_LPQ is not set
+
+#
+# Mail Utilities
+#
+CONFIG_MAKEMIME=y
+CONFIG_FEATURE_MIME_CHARSET="us-ascii"
+CONFIG_POPMAILDIR=y
+CONFIG_FEATURE_POPMAILDIR_DELIVERY=y
+CONFIG_REFORMIME=y
+CONFIG_FEATURE_REFORMIME_COMPAT=y
+# CONFIG_SENDMAIL is not set
+
+#
+# Process Utilities
+#
+CONFIG_IOSTAT=y
+CONFIG_LSOF=y
+CONFIG_MPSTAT=y
+CONFIG_NMETER=y
+CONFIG_PMAP=y
+CONFIG_POWERTOP=y
+# CONFIG_PSTREE is not set
+# CONFIG_PWDX is not set
+# CONFIG_SMEMCAP is not set
+CONFIG_UPTIME=y
+# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set
+CONFIG_FREE=y
+CONFIG_FUSER=y
+CONFIG_KILL=y
+CONFIG_KILLALL=y
+CONFIG_KILLALL5=y
+CONFIG_PGREP=y
+CONFIG_PIDOF=y
+CONFIG_FEATURE_PIDOF_SINGLE=y
+CONFIG_FEATURE_PIDOF_OMIT=y
+CONFIG_PKILL=y
+CONFIG_PS=y
+# CONFIG_FEATURE_PS_WIDE is not set
+# CONFIG_FEATURE_PS_LONG is not set
+CONFIG_FEATURE_PS_TIME=y
+CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y
+# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
+CONFIG_RENICE=y
+CONFIG_BB_SYSCTL=y
+CONFIG_TOP=y
+CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
+CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
+CONFIG_FEATURE_TOP_SMP_CPU=y
+CONFIG_FEATURE_TOP_DECIMALS=y
+CONFIG_FEATURE_TOP_SMP_PROCESS=y
+CONFIG_FEATURE_TOPMEM=y
+CONFIG_FEATURE_SHOW_THREADS=y
+CONFIG_WATCH=y
+
+#
+# Runit Utilities
+#
+CONFIG_RUNSV=y
+CONFIG_RUNSVDIR=y
+CONFIG_FEATURE_RUNSVDIR_LOG=y
+CONFIG_SV=y
+CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service"
+CONFIG_SVLOGD=y
+CONFIG_CHPST=y
+CONFIG_SETUIDGID=y
+CONFIG_ENVUIDGID=y
+CONFIG_ENVDIR=y
+CONFIG_SOFTLIMIT=y
+# CONFIG_CHCON is not set
+# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
+# CONFIG_GETENFORCE is not set
+# CONFIG_GETSEBOOL is not set
+# CONFIG_LOAD_POLICY is not set
+# CONFIG_MATCHPATHCON is not set
+# CONFIG_RESTORECON is not set
+# CONFIG_RUNCON is not set
+# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
+# CONFIG_SELINUXENABLED is not set
+# CONFIG_SETENFORCE is not set
+# CONFIG_SETFILES is not set
+# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
+# CONFIG_SETSEBOOL is not set
+# CONFIG_SESTATUS is not set
+
+#
+# Shells
+#
+CONFIG_ASH=y
+CONFIG_ASH_BASH_COMPAT=y
+# CONFIG_ASH_IDLE_TIMEOUT is not set
+CONFIG_ASH_JOB_CONTROL=y
+CONFIG_ASH_ALIAS=y
+CONFIG_ASH_GETOPTS=y
+CONFIG_ASH_BUILTIN_ECHO=y
+CONFIG_ASH_BUILTIN_PRINTF=y
+CONFIG_ASH_BUILTIN_TEST=y
+CONFIG_ASH_CMDCMD=y
+CONFIG_ASH_MAIL=y
+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
+CONFIG_ASH_RANDOM_SUPPORT=y
+CONFIG_ASH_EXPAND_PRMT=y
+CONFIG_CTTYHACK=y
+# CONFIG_HUSH is not set
+# CONFIG_HUSH_BASH_COMPAT is not set
+# CONFIG_HUSH_BRACE_EXPANSION is not set
+# CONFIG_HUSH_HELP is not set
+# CONFIG_HUSH_INTERACTIVE is not set
+# CONFIG_HUSH_SAVEHISTORY is not set
+# CONFIG_HUSH_JOB is not set
+# CONFIG_HUSH_TICK is not set
+# CONFIG_HUSH_IF is not set
+# CONFIG_HUSH_LOOPS is not set
+# CONFIG_HUSH_CASE is not set
+# CONFIG_HUSH_FUNCTIONS is not set
+# CONFIG_HUSH_LOCAL is not set
+# CONFIG_HUSH_RANDOM_SUPPORT is not set
+# CONFIG_HUSH_EXPORT_N is not set
+# CONFIG_HUSH_MODE_X is not set
+# CONFIG_MSH is not set
+CONFIG_FEATURE_SH_IS_ASH=y
+# CONFIG_FEATURE_SH_IS_HUSH is not set
+# CONFIG_FEATURE_SH_IS_NONE is not set
+# CONFIG_FEATURE_BASH_IS_ASH is not set
+# CONFIG_FEATURE_BASH_IS_HUSH is not set
+CONFIG_FEATURE_BASH_IS_NONE=y
+CONFIG_SH_MATH_SUPPORT=y
+CONFIG_SH_MATH_SUPPORT_64=y
+CONFIG_FEATURE_SH_EXTRA_QUIET=y
+# CONFIG_FEATURE_SH_STANDALONE is not set
+# CONFIG_FEATURE_SH_NOFORK is not set
+CONFIG_FEATURE_SH_HISTFILESIZE=y
+
+#
+# System Logging Utilities
+#
+CONFIG_SYSLOGD=y
+CONFIG_FEATURE_ROTATE_LOGFILE=y
+CONFIG_FEATURE_REMOTE_LOG=y
+# CONFIG_FEATURE_SYSLOGD_DUP is not set
+# CONFIG_FEATURE_SYSLOGD_CFG is not set
+CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256
+CONFIG_FEATURE_IPC_SYSLOG=y
+CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16
+CONFIG_LOGREAD=y
+CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y
+CONFIG_KLOGD=y
+CONFIG_FEATURE_KLOGD_KLOGCTL=y
+CONFIG_LOGGER=y

var/vabs/mkinitrd/src/fixes-1.20.1/busybox-1.20.1-ash.patch

+--- busybox-1.20.1/shell/ash.c
++++ busybox-1.20.1-ash/shell/ash.c
+@@ -6846,8 +6846,7 @@ evalvar(char *p, int flags, struct strli
+ 		patloc = expdest - (char *)stackblock();
+ 		if (NULL == subevalvar(p, /* varname: */ NULL, patloc, subtype,
+ 				startloc, varflags,
+-//TODO: | EXP_REDIR too? All other such places do it too
+-				/* quotes: */ flags & (EXP_FULL | EXP_CASE),
++				/* quotes: */ flags & (EXP_FULL | EXP_CASE | EXP_REDIR),
+ 				var_str_list)
+ 		) {
+ 			int amount = expdest - (

var/vabs/mkinitrd/src/fixes-1.20.1/busybox-1.20.1-ifupdown.patch

+--- busybox-1.20.1/networking/ifupdown.c
++++ busybox-1.20.1-ifupdown/networking/ifupdown.c
+@@ -140,8 +140,6 @@ static const char keywords_up_down[] ALI
+ 	"up\0"
+ 	"down\0"
+ 	"pre-up\0"
+-	"pre-down\0"
+-	"post-up\0"
+ 	"post-down\0"
+ ;
+ 
+@@ -895,6 +893,11 @@ static struct interfaces_file_t *read_in
+ 				if (rest_of_line[0] == '\0')
+ 					bb_error_msg_and_die("option with empty value \"%s\"", buf);
+ 
++				if (strcmp(first_word, "post-up") == 0)
++					first_word += 5; /* "up" */
++				else if (strcmp(first_word, "pre-down") == 0)
++					first_word += 4; /* "down" */
++
+ 				/* If not one of "up", "down",... words... */
+ 				if (index_in_strings(keywords_up_down, first_word) < 0) {
+ 					int i;
+@@ -963,7 +966,7 @@ static char *setlocalenv(const char *for
+ 	return result;
+ }
+ 
+-static void set_environ(struct interface_defn_t *iface, const char *mode)
++static void set_environ(struct interface_defn_t *iface, const char *mode, const char *opt)
+ {
+ 	int i;
+ 	char **pp;
+@@ -976,7 +979,7 @@ static void set_environ(struct interface
+ 	}
+ 
+ 	/* note: last element will stay NULL: */
+-	G.my_environ = xzalloc(sizeof(char *) * (iface->n_options + 6));
++	G.my_environ = xzalloc(sizeof(char *) * (iface->n_options + 7));
+ 	pp = G.my_environ;
+ 
+ 	for (i = 0; i < iface->n_options; i++) {
+@@ -990,6 +993,7 @@ static void set_environ(struct interface
+ 	*pp++ = setlocalenv("%s=%s", "ADDRFAM", iface->address_family->name);
+ 	*pp++ = setlocalenv("%s=%s", "METHOD", iface->method->name);
+ 	*pp++ = setlocalenv("%s=%s", "MODE", mode);
++	*pp++ = setlocalenv("%s=%s", "PHASE", opt);
+ 	if (G.startup_PATH)
+ 		*pp++ = setlocalenv("%s=%s", "PATH", G.startup_PATH);
+ }
+@@ -1044,21 +1048,21 @@ static int check(char *str)
+ static int iface_up(struct interface_defn_t *iface)
+ {
+ 	if (!iface->method->up(iface, check)) return -1;
+-	set_environ(iface, "start");
++	set_environ(iface, "start", "pre-up");
+ 	if (!execute_all(iface, "pre-up")) return 0;
+ 	if (!iface->method->up(iface, doit)) return 0;
++	set_environ(iface, "start", "post-up");
+ 	if (!execute_all(iface, "up")) return 0;
+-	if (!execute_all(iface, "post-up")) return 0;
+ 	return 1;
+ }
+ 
+ static int iface_down(struct interface_defn_t *iface)
+ {
+ 	if (!iface->method->down(iface,check)) return -1;
+-	set_environ(iface, "stop");
+-	if (!execute_all(iface, "pre-down")) return 0;
++	set_environ(iface, "stop", "pre-down");
+ 	if (!execute_all(iface, "down")) return 0;
+ 	if (!iface->method->down(iface, doit)) return 0;
++	set_environ(iface, "stop", "post-down");
+ 	if (!execute_all(iface, "post-down")) return 0;
+ 	return 1;
+ }

var/vabs/mkinitrd/src/fixes-1.20.1/busybox-1.20.1-man.patch

+--- busybox-1.20.1/miscutils/man.c
++++ busybox-1.20.1-man/miscutils/man.c
+@@ -129,27 +129,21 @@ static int show_manpage(const char *page
+ #endif
+ #if ENABLE_FEATURE_SEAMLESS_XZ
+ 	strcpy(ext, "xz");
+-	if (run_pipe(pager, man_filename, man, level))
++	if (run_pipe(pager, filename_with_zext, man, level))
+ 		return 1;
+ #endif
+ #if ENABLE_FEATURE_SEAMLESS_BZ2
+ 	strcpy(ext, "bz2");
+-	if (run_pipe(pager, man_filename, man, level))
++	if (run_pipe(pager, filename_with_zext, man, level))
+ 		return 1;
+ #endif
+ #if ENABLE_FEATURE_SEAMLESS_GZ
+ 	strcpy(ext, "gz");
+-	if (run_pipe(pager, man_filename, man, level))
++	if (run_pipe(pager, filename_with_zext, man, level))
+ 		return 1;
+ #endif
+ 
+-#if SEAMLESS_COMPRESSION
+-	ext[-1] = '\0';
+-#endif
+-	if (run_pipe(pager, man_filename, man, level))
+-		return 1;
+-
+-	return 0;
++	return run_pipe(pager, man_filename, man, level);
+ }
+ 
+ int man_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;

var/vabs/mkinitrd/src/fixes-1.20.1/busybox-1.20.1-tar.patch

+--- busybox-1.20.1/archival/libarchive/get_header_tar.c
++++ busybox-1.20.1-tar/archival/libarchive/get_header_tar.c
+@@ -84,7 +84,7 @@ static unsigned long long getOctal(char 
+ 		first >>= 1; /* now 7th bit = 6th bit */
+ 		v = first;   /* sign-extend 8 bits to 64 */
+ 		while (--len != 0)
+-			v = (v << 8) + (unsigned char) *str++;
++			v = (v << 8) + (uint8_t) *++str;
+ 	}
+ 	return v;
+ }

var/vabs/mkinitrd/src/init

+#!/bin/ash
+#
+# /init:  init script to load kernel modules from an initramfs
+#         This requires that your kernel supports initramfs!!!
+#
+# Copyright 2004  Slackware Linux, Inc., Concord, CA, USA
+# Copyright 2007, 2008, 2009, 2010, 2012  Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+#
+#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+#  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
+#  EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+#  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+#  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+#  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+##################################################################################
+# With a generic kernel, you need to load the modules needed to mount the
+# root partition.  This might mean a SCSI, RAID, or other drive controller
+# module, as well as the module to support the root filesystem.  Once the
+# root partition is mounted all the other modules will be available so you
+# don't need to load them here.
+#
+# Config files used by this script:
+#
+# /rootdev        Contains the name of the root device, such as: /dev/hda1 
+#
+# /rootfs         Contains the root filesystem type, such as: xfs
+#
+# /initrd-name    Contains the name of the initrd file.
+#
+# /resumedev      Contains the name of the device to resume from hibernation.
+#
+# /luksdev        Contains colon separated list of luks encrypted devices to
+#                 be unlocked.
+#
+# /lukskey        Contains the path to a LUKS key-file for automatic unlock
+#                 Format: LABEL=<partition_label>:/path/to/file
+#                         UUID=<partition_uuid>:/path/to/file
+#
+# /wait-for-root  Contains a number - the init script will wait this amount
+#                 of seconds before creating device nodes.
+#
+# /keymap         Contains the name for a custom keyboard map 
+#
+# Optional:
+#
+# /load_kernel_modules
+#                 A script that uses modprobe to load the desired modules.
+#
+#                 There's an example in here.  To actually use it, you'll
+#                 need to make it executable:  
+#
+#                     chmod 755 load_kernel_modules
+##################################################################################
+# Changelog
+# 10-Dec-2012 <mozes@slackware.com>
+#  * Added support for the official Kernel parameters to select root filesystem
+#    type ('rootfstype') and pause before attempting to mount the root filesystem
+#    ('rootdelay').  The original parameters may continue to be used.
+##################################################################################
+
+INITRD=$(cat /initrd-name)
+ROOTDEV=$(cat /rootdev)
+ROOTFS=$(cat /rootfs)
+LUKSDEV=$(cat /luksdev)
+LUKSKEY=$(cat /lukskey)
+RESUMEDEV=$(cat /resumedev)
+WAIT=$(cat /wait-for-root)
+KEYMAP=$(cat /keymap)
+INIT=/sbin/init
+
+PATH="/sbin:/bin:/usr/sbin:/usr/bin"
+
+# Mount /proc and /sys:
+mount -n proc /proc -t proc
+mount -n sysfs /sys -t sysfs
+mount -n tmpfs /run -t tmpfs -o mode=0755
+
+if grep devtmpfs /proc/filesystems 1>/dev/null 2>/dev/null ; then
+  DEVTMPFS=1
+  mount -n devtmpfs /dev -t devtmpfs
+fi	
+
+# Parse command line
+for ARG in $(cat /proc/cmdline); do
+  case $ARG in
+    0|1|2|3|4|5|6|S|s|single)
+      RUNLEVEL=$ARG
+    ;;
+    init=*)
+      INIT=$(echo $ARG | cut -f2 -d=)
+    ;;
+    luksdev=/dev/*)
+      LUKSDEV=$(echo $ARG | cut -f2 -d=)
+    ;;
+    lukskey=*)
+      LUKSKEY=$(echo $ARG | cut -f2- -d=)
+    ;;
+    rescue)
+      RESCUE=1
+    ;;
+    resume=*)
+      RESUMEDEV=$(echo $ARG | cut -f2 -d=)
+    ;;
+    root=/dev/*)
+      ROOTDEV=$(echo $ARG | cut -f2 -d=)
+    ;;
+    root=LABEL=*)
+      ROOTDEV=$(echo $ARG | cut -f2- -d=)
+    ;;
+    root=UUID=*)
+      ROOTDEV=$(echo $ARG | cut -f2- -d=)
+    ;;
+    rootfs=*|rootfstype=*)
+      ROOTFS=$(echo $ARG | cut -f2 -d=)
+    ;;
+    waitforroot=*|rootdelay=*)
+      WAIT=$(echo $ARG | cut -f2 -d=)
+    ;;
+  esac
+done
+
+# If udevd is available, use it to generate block devices
+# else use mdev to read sysfs and generate the needed devices 
+if [ -x /sbin/udevd -a -x /sbin/udevadm ]; then
+  /sbin/udevd --daemon --resolve-names=never
+  /sbin/udevadm trigger --subsystem-match=block --action=add
+  /sbin/udevadm settle --timeout=10
+else
+  [ "$DEVTMPFS" != "1" ] && mdev -s
+fi
+
+# Load kernel modules (ideally this was already done by udev):
+if [ ! -d /lib/modules/$(uname -r) ]; then
+  echo "No kernel modules found for Linux $(uname -r)."
+elif [ -x ./load_kernel_modules ]; then # use load_kernel_modules script:
+  echo "${INITRD}:  Loading kernel modules from initrd image:"
+  . ./load_kernel_modules
+else # load modules (if any) in order:
+  if ls /lib/modules/$(uname -r)/*.*o 1> /dev/null 2> /dev/null ; then
+    echo "${INITRD}:  Loading kernel modules from initrd image:"
+    for module in /lib/modules/$(uname -r)/*.*o ; do
+      /sbin/modprobe $module
+    done
+    unset module
+  fi
+fi
+
+# Sometimes the devices need extra time to be available.
+# A root filesystem on USB is a good example of that.
+sleep $WAIT
+
+# Load a custom keyboard mapping:
+if [ -n "$KEYMAP" ]; then
+  echo "${INITRD}:  Loading '$KEYMAP' keyboard mapping:"
+  tar xzOf /etc/keymaps.tar.gz ${KEYMAP}.bmap | loadkmap
+fi
+
+if [ "$RESCUE" = "" ]; then 
+  # Initialize RAID:
+  if [ -x /sbin/mdadm ]; then
+    /sbin/mdadm -E -s >/etc/mdadm.conf
+    /sbin/mdadm -S -s
+    /sbin/mdadm -A -s
+    # This seems to make the kernel see partitions more reliably:
+    fdisk -l /dev/md* 1> /dev/null 2> /dev/null
+  fi
+
+  # Unlock any encrypted partitions necessary to access the
+  # root filesystem, such as encrypted LVM Physical volumes, disk
+  # partitions or mdadm arrays.
+  # Unavailable devices such as LVM Logical Volumes will need to be
+  # deferred until they become available after the vgscan.
+
+  if [ -x /sbin/cryptsetup ]; then
+
+    # Determine if we have to use a LUKS keyfile:
+    if [ ! -z "$LUKSKEY" ]; then
+      mkdir  /mountkey
+      KEYPART=$(echo $LUKSKEY |cut -f1 -d:)
+      LUKSPATH="/mountkey$(echo $LUKSKEY |cut -f2 -d:)"
+      # Catch possible mount failure:
+      if blkid -t TYPE=vfat $KEYPART 1>/dev/null 2>&1 ; then
+        MOUNTOPTS="-t vfat -o shortname=mixed"
+      else
+        MOUNTOPTS="-t auto"
+      fi
+      mount $MOUNTOPTS $(findfs $KEYPART) /mountkey 2>/dev/null
+      # Check if we can actually use this file:
+      if [ ! -f $LUKSPATH ]; then
+        LUKSKEY=""
+      else
+        echo ">>> Using LUKS key file: '$LUKSKEY'"
+        LUKSKEY="-d $LUKSPATH"
+      fi
+    fi
+
+    LUKSLIST_DEFERRED=""
+    LUKSLIST=$(echo $LUKSDEV | tr -s ':' ' ')
+    for LUKSDEV in $LUKSLIST ; do
+      if /sbin/cryptsetup isLuks ${LUKSDEV} 1>/dev/null 2>/dev/null ; then
+        if echo $ROOTDEV | grep -q "LABEL=" || echo $ROOTDEV | grep -q "UUID=" ; then
+          CRYPTDEV="luks$(basename $LUKSDEV)"
+        elif [ "x$ROOTDEV" = "x$(basename $ROOTDEV)" ]; then
+          CRYPTDEV="$ROOTDEV"
+        else
+          CRYPTDEV="luks$(basename $LUKSDEV)"
+        fi
+        echo "Unlocking LUKS encrypted device '${LUKSDEV}' as luks mapped device '$CRYPTDEV':"
+        /sbin/cryptsetup ${LUKSKEY} luksOpen ${LUKSDEV} ${CRYPTDEV} </dev/tty0 >/dev/tty0 2>&1
+        if [ "$ROOTDEV" = "$LUKSDEV" -o "$ROOTDEV" = "$CRYPTDEV" ] ; then
+          ROOTDEV="/dev/mapper/$CRYPTDEV"
+        fi
+      else
+        LUKSLIST_DEFERRED="${LUKSLIST_DEFERRED} ${LUKSDEV}"
+      fi
+    done
+  fi
+
+  # Initialize LVM:
+  if [ -x /sbin/vgchange ]; then
+    mkdir -p /var/lock/lvm	# this avoids useless warnings
+    /sbin/vgchange -ay --ignorelockingfailure 2>/dev/null
+    /sbin/udevadm settle --timeout=10
+  fi
+  
+  # Unlock any LUKS encrypted devices that were deferred above but have now
+  # become available due to the vgscan (i.e. filesystems on LVM Logical Volumes)
+
+  if [ -x /sbin/cryptsetup -a -n "${LUKSLIST_DEFERRED}" ]; then
+    for LUKSDEV in ${LUKSLIST_DEFERRED} ; do
+      if /sbin/cryptsetup isLuks ${LUKSDEV} 1>/dev/null 2>/dev/null ; then
+        if echo $ROOTDEV | grep -q "LABEL=" || echo $ROOTDEV | grep -q "UUID=" ; then
+          CRYPTDEV="luks$(basename $LUKSDEV)"
+        elif [ "x$ROOTDEV" = "x$(basename $ROOTDEV)" ]; then
+          CRYPTDEV="$ROOTDEV"
+        else
+          CRYPTDEV="luks$(basename $LUKSDEV)"
+        fi
+        echo "Unlocking LUKS encrypted device '${LUKSDEV}' as luks mapped device '$CRYPTDEV':"
+        /sbin/cryptsetup ${LUKSKEY} luksOpen ${LUKSDEV} ${CRYPTDEV} </dev/tty0 >/dev/tty0 2>&1
+        if [ "$ROOTDEV" = "$LUKSDEV" -o "$ROOTDEV" = "$CRYPTDEV" ] ; then
+          ROOTDEV="/dev/mapper/$CRYPTDEV"
+        fi
+      else
+        echo "LUKS device '${LUKSDEV}' unavailable for unlocking!"
+      fi
+    done
+    /sbin/udevadm settle --timeout=10
+  fi
+
+  # Scan for btrfs multi-device filesystems:
+  if [ -x /sbin/btrfs ]; then
+    /sbin/btrfs device scan
+  fi
+  
+  # Find root device if a label or UUID was given:
+  if echo $ROOTDEV | grep -q "LABEL=" || \
+     echo $ROOTDEV | grep -q "UUID=" ; then
+    ROOTDEV=$(findfs $ROOTDEV)
+  fi
+
+  # Clean up after LUKS unlock using a keyfile:
+  if grep -q mountkey /proc/mounts 2>/dev/null ; then
+    umount -l /mountkey
+    rmdir /mountkey 2>/dev/null
+  fi
+  
+  # Resume state from swap
+  if [ "$RESUMEDEV" != "" ]; then
+    if ls -l $RESUMEDEV | grep -q "^l" ; then
+      #RESUMEDEV=$(ls -l $RESUMEDEV | awk '{ print $NF }')
+      RESUMEDEV=$(readlink -f $RESUMEDEV)
+    fi
+    echo "Trying to resume from $RESUMEDEV"
+    RESMAJMIN=$(ls -l $RESUMEDEV | tr , : | awk '{ print $5$6 }')
+    echo $RESMAJMIN > /sys/power/resume
+  fi
+
+  # Switch to real root partition:
+  /sbin/udevadm settle --timeout=10
+  echo 0x0100 > /proc/sys/kernel/real-root-dev
+  mount -o ro -t $ROOTFS $ROOTDEV /mnt
+  
+  if [ ! -r /mnt/sbin/init ]; then
+    echo "ERROR:  No /sbin/init found on rootdev (or not mounted).  Trouble ahead."
+    echo "        You can try to fix it. Type 'exit' when things are done." 
+    echo
+    /bin/sh
+  fi
+else
+  echo
+  echo "RESCUE mode"
+  echo
+  echo "        You can try to fix or rescue your system now. If you want"
+  echo "        to boot into your fixed system, mount your root filesystem"
+  echo "        read-only under /mnt:"
+  echo
+  echo "            # mount -o ro -t filesystem root_device /mnt"
+  echo
+  echo "        Type 'exit' when things are done."
+  echo
+  /bin/sh
+fi
+
+# Need to make sure OPTIONS+="db_persist" exists for all dm devices
+# That should be handled in /sbin/mkinitrd now
+/sbin/udevadm info --cleanup-db
+/sbin/udevadm control --exit
+
+unset ERR
+mount -o move /proc /mnt/proc
+mount -o move /sys /mnt/sys
+mount -o move /run /mnt/run
+
+[ "$DEVTMPFS" = "1" ] && mount -o move /dev /mnt/dev
+echo "${INITRD}:  exiting"
+exec switch_root /mnt $INIT $RUNLEVEL

var/vabs/mkinitrd/src/mkinitrd

+#!/bin/sh
+# Copyright 2004  Slackware Linux, Inc., Concord, CA, USA
+# Copyright 2004  Patrick J. Volkerding, Concord, CA, USA
+# Copyright 2007, 2008, 2009, 2010, 2011  Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+#
+#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+#  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
+#  EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+#  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+#  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+#  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Modified by Robby Workman <rworkman@slackware.com> 26 November 2007
+#   to add support for mkinitrd.conf - No additional license terms added
+# Modified by Alan Hicks <alan@slackware.com> 27 November 2007 to enable
+#   passing arguments to kernel modules - No additional license terms added
+#   volkerdi - feel free to remove these :)
+# Modified by Eric Hameleers <alien@slackware.com> 3 April 2008
+#   to add support custom keymaps - No additional license terms added
+# Modified by Patrick Volkerding <volkerdi@slackware.com> 17 Dec 2008
+#   Added support to bail out if kernel modules are requested for a kernel
+#   version that is not installed (thanks to Eric Hameleers), be more
+#   verbose about showing modules added to the initrd (thanks to
+#   Ellington Santos), and if "mount" returns /dev/root as the root device,
+#   use readlink to resolve the device pointed to by the /dev/root
+#   symlink, changed modprobe to use --ignore-install to avoid catching
+#   custom "install" lines and causing /sbin/modprobe to be copied to the
+#   initrd (thanks to Ken Milmore).
+#   Of course, license terms remain unchanged.
+# Modified by Eric Hameleers <alien@slackware.com> 3 March 2010
+#   Add lukskey option (-K). Automatically add kernel modules listed in
+#   load-kernel-modules if that file is executable.
+#   Yada yada yada.
+# Modified by Patrick Volkerding <volkerdi@slackware.com> 21 August 2012
+#   Add Btrfs multi-device filesystem support option (-B).
+
+MKINITRD_VERSION=1.4.7
+
+# Don't include these things from /lib/udev/ in the initrd image
+LIBUDEV_BLACKLIST="\
+  ipod-set-info \
+  check-mtp-device \
+  check-ptp-camera \
+  udev-configure-printer"
+
+print_usage() {
+  cat << EOF
+Usage: mkinitrd [OPTION]
+
+mkinitrd creates an initial ramdisk (actually an initramfs cpio+gzip
+archive) used to load kernel modules that are needed to mount the
+root filesystem, or other modules that might be needed before the
+root filesystem is available.  Other binaries may be added to the
+initrd, and the script is easy to modify.  Be creative.  :-)
+
+  -F      Use the contents of /etc/mkinitrd.conf (optional)
+          If this is used in conjunction with any other options passed
+          on the command line, the command-line options will override
+          the config file options.  See mkinitrd.conf(5) for details.
+  -c      Clear the existing initrd tree first
+  -f      Filesystem to use for root partition (must be used with -r)
+  --help  Display this message
+  -h      Device to resume from hibernation. Needs to be the name of
+          the swap partition holding the hibernation image.
+  -k      Kernel version to use
+  -l      Custom keymap to load. Like, 'nl' or 'de-latin1-nodeadkeys'
+  -m      A colon (:) delimited list of kernel modules to load.
+          Additional options may be added to use when loading the
+          kernel modules (but in this case the entire list must be
+          wrapped with double quotes).  Any dependencies of requested
+          modules will also be added to the initrd.
+  -o      Output image (default /boot/initrd.gz)
+  -r      Root partition device (must be used with -f)
+  -s      Initrd source tree (default /boot/initrd-tree/)
+  -u      Include udev in the initrd
+  -w      Time to wait until all disks are detected
+  -C      A colon (:) delimited list of luks encrypted block devices to be
+          unlocked by the initrd using cryptsetup. All devices that must
+          be unlocked in order to access the root filesystem must be
+          specified. (Use with '-r' parameter).
+  -L      Add support for LVM partitions
+  -K      Use a USB key (fat-formatted) to unlock the root LUKS volume
+          The parameter value is filename of a keyfile, as well as the label
+          (or uuid) of the partition this file is on.  This way, you can unlock
+          your computer automatically if you have a USB stick with your LUKS
+          key inserted at boot. A passphrase will still be asked if the LUKS
+          key can not be found.
+          For example, if your USB thumb drive has a FAT partition with label
+          "TRAVELSTICK" and the actual keyfile is called "/keys/alien.luks",
+          then you need to pass: -K LABEL=TRAVELSTICK:/keys/alien.luks
+  -B      Add /sbin/btrfs to enable scanning for a root filesystem that is
+          part of a Btrfs multi-device filesystem.
+  -M      Add the files in /etc/modprobe.d/ to the initrd
+  -R      Add support for RAID partitions
+  -V      Display version number
+
+A simple example:  Build an initrd for a reiserfs root partition:
+
+  mkinitrd -c -m reiserfs
+
+Another example:  Build an initrd image using Linux 2.6.35.4-smp kernel
+modules for a system with an ext4 root partition on /dev/sdb3:
+
+  mkinitrd -c -k 2.6.35.4-smp -m mbcache:jbd:ext4 -f ext4 -r /dev/sdb3
+
+Note that if you are already logged in with /dev/sdb3 as your /
+partition, and it is running ext4, this command works just the same:
+
+  mkinitrd -c -m ext4
+
+If run without options, mkinitrd will rebuild an initrd image using
+the contents of the $SOURCE_TREE directory, or, if that directory
+does not exist it will be created and populated, and then mkinitrd
+will exit.
+
+EOF
+}
+
+create_new_source_tree() {
+  mkdir -p $SOURCE_TREE
+  # Make sure a kernel module directory exists:
+  mkdir -p $SOURCE_TREE/lib/modules/${KERNEL_VERSION}
+  # Add the initrd-tree skeleton:
+  ( cd $SOURCE_TREE ; tar xzf /usr/share/mkinitrd/initrd-tree.tar.gz )
+  # Make sure we have any block devices that might be needed:
+
+  SLOPPY_DEV_LIST=$(cat /proc/partitions)
+  for device in $SLOPPY_DEV_LIST ; do
+    if [ ! -r $SOURCE_TREE/dev/$device ]; then
+      if [ -b /dev/$device ]; then
+        if [ -L /dev/$device ]; then
+          cp -a --parents $(readlink -e /dev/$device) $SOURCE_TREE
+        fi
+        cp -a --parents /dev/$device $SOURCE_TREE
+      fi
+    fi
+  done
+}
+
+clear_source_tree() {
+  if [ -d "$SOURCE_TREE" ]; then
+    rm -rf $SOURCE_TREE
+  fi
+}
+
+build_initrd_image() {
+  # Make sure we have any block devices that might be needed:
+  SLOPPY_DEV_LIST=$(cat /proc/partitions)
+  for device in $SLOPPY_DEV_LIST ; do
+    if [ ! -r $SOURCE_TREE/dev/$device ]; then
+      if [ -b /dev/$device ]; then
+        if [ -L /dev/$device ]; then
+          cp -a --parents $(readlink -e /dev/$device) $SOURCE_TREE
+        fi
+        cp -a --parents /dev/$device $SOURCE_TREE
+      fi
+    fi
+  done
+  # Use the output image name written in the initrd-tree if present:
+  if [ ! -z "$(cat $SOURCE_TREE/initrd-name)" ]; then
+    OUTPUT_IMAGE=$(cat $SOURCE_TREE/initrd-name)
+    if [ "$OUTPUT_IMAGE" = "$(basename $OUTPUT_IMAGE)" ]; then
+      OUTPUT_IMAGE=/boot/$OUTPUT_IMAGE
+    fi
+    mkdir -p $(dirname $OUTPUT_IMAGE)
+  fi
+  # Wrap the initrd as an initramfs image and move it into place:
+  ( cd $SOURCE_TREE
+    rm -f $OUTPUT_IMAGE
+    find . | cpio -o -H newc | gzip -9c > $OUTPUT_IMAGE
+  )
+  echo "$OUTPUT_IMAGE created."
+  echo "Be sure to run lilo again if you use it."
+}
+
+badconf_file() {
+  # This won't really help with what's *wrong* with the file,
+  # but it will at least give them a clue that there's a problem
+  echo "/etc/mkinitrd.conf is bad or does not exist."
+  echo "If the file does not exist, do not pass -F to mkinitrd."
+  exit 1
+}
+
+
+unify_libs() {
+  awk '/=. \// { print $3 }' | sort -u
+}
+
+copy_libs() {
+  # First copy the essential glibc files:
+  find /lib /lib64 -name "ld-*so*" -o -name "libnss_files*so*" -o -name "libnss_compat*so*" 2> /dev/null | xargs -I'{}' cp -P --parents '{}' $SOURCE_TREE/
+
+  # Then copy all remaining libs our initrd files link against:
+  COUNT=1
+  PRFX=$(tempfile --prefix ldd-)
+  TMPFILE=${PRFX}${COUNT}
+
+  find $SOURCE_TREE -type f -exec ldd {} 2>/dev/null \; | unify_libs > $TMPFILE
+  while [ "$COUNT" != "0" ]; do
+    COUNT=$((COUNT+1))
+    for i in $(cat ${TMPFILE}) ; do
+      ldd $i 2>/dev/null
+    done | unify_libs > ${PRFX}${COUNT}
+    if [ $(cat $TMPFILE ${PRFX}${COUNT} | sort |uniq -u | wc -l) -eq 0 ]; then
+      COUNT=0
+    else
+      TMPFILE=${PRFX}${COUNT}
+    fi
+    # emergency eject lever:
+    if [ "$COUNT" = "42" ]; then
+      COUNT=0
+    fi
+  done
+
+  for i in $(cat ${PRFX}* | sort -u) ; do 
+    cp -P --parents ${i}* $SOURCE_TREE
+  done
+
+  ( 
+    cd $SOURCE_TREE
+    for i in $(find -L . -type l -exec readlink -m /{} \; 2>/dev/null ) ; do
+      cp -P --parents ${i} $SOURCE_TREE
+    done 
+  )
+
+  rm ${PRFX}*
+}
+
+copy_modconf() {
+  mkdir -p $SOURCE_TREE/etc $SOURCE_TREE/lib
+  cp -a /etc/modprobe.d $SOURCE_TREE/etc
+  cp -a /lib/modprobe.d $SOURCE_TREE/lib/
+}
+     
+# If --help is given, print_usage and exit:
+if echo $* | grep -wq '\--help' ; then
+  print_usage
+  exit 0
+fi
+
+# If -V given, print version and exit:
+if echo $* | grep -wq '\-V' ; then
+  echo "mkinitrd version $MKINITRD_VERSION"
+  exit 0
+fi
+
+# Default values if these aren't previously set.
+# Might be set from config file or by -s and -o options too.
+SOURCE_TREE=${SOURCE_TREE:-/boot/initrd-tree}
+OUTPUT_IMAGE=${OUTPUT_IMAGE:-""}
+KERNEL_VERSION=${KERNEL_VERSION:-"$(uname -r)"}
+# The initrd requires udev to function correctly:
+UDEV=1
+
+# Default actions without options:
+if [ -z "$1" ]; then
+  # We need a sensible default for this special case:
+  OUTPUT_IMAGE=${OUTPUT_IMAGE:-/boot/initrd.gz}
+  # If the output tree doesn't exist, create it and then exit:
+  if [ ! -d $SOURCE_TREE ]; then
+    echo "Nothing found at location $SOURCE_TREE, so we will create an"
+    echo -n "initrd directory structure there... "
+    create_new_source_tree
+    echo "done."
+    echo
+    echo "Now cd to $SOURCE_TREE and install some modules in your"
+    echo "module directory (lib/modules/${KERNEL_VERSION}).  Then see init"
+    echo "for more information (there are a few other files to edit)."
+    echo "Finally, run mkinitrd again once the initrd-tree is ready,"
+    echo "and $OUTPUT_IMAGE will be created from it."
+    echo
+    exit 0
+  else
+    # If the source tree does exist, the default is to build the initrd
+    # image from it and then exit:
+    build_initrd_image
+    exit 0
+  fi
+fi # default no-option actions
+
+# Parse for the use config file option first or else the other command
+# line options can not override /etc/mkinitrd.conf. 
+for opt in "$@"; do
+  if [ $opt = "-F" ]; then
+      if [ -e /etc/mkinitrd.conf ]; then
+        . /etc/mkinitrd.conf || badconf_file
+      else
+        badconf_file
+      fi
+  fi
+done
+
+# Parse options:
+while [ ! -z "$1" ]; do
+  case $1 in
+    -c)
+      CLEAR_TREE=1
+      shift
+      ;;
+    -f)
+      ROOTFS="$2"
+      shift 2
+      ;;
+    -h)
+      RESUMEDEV="$2" 
+      shift 2
+      ;;
+    -k)
+      KERNEL_VERSION="$2"
+      shift 2
+      ;;
+    -l)
+      KEYMAP="$2"
+      shift 2
+      ;;
+    -m)
+      MODULE_LIST="$2"
+      shift 2
+      ;;
+    -o)
+      # canonicalize filename:
+      OUTPUT_IMAGE="$(readlink -m $2)"
+      shift 2
+      ;;
+    -r)
+      ROOTDEV="$2"
+      shift 2
+      ;;
+    -s)
+      # canonicalize filename:
+      SOURCE_TREE="$(readlink -m $2)"
+      shift 2
+      ;;
+    -u)
+      UDEV=1
+      shift
+      ;;
+    -w)
+      WAIT="$2"
+      shift 2
+      ;;
+    -C)
+      CRYPT=1
+      LUKSDEV="$2"
+      shift 2
+      ;;
+    -K)
+      LUKSKEY="$2"
+      shift 2
+      ;;
+    -L)
+      LVM=1
+      shift
+      ;;
+    -B)
+      BTRFS=1
+      shift
+      ;;
+    -M)
+      MODCONF=1
+      shift
+      ;;
+    -R)
+      RAID=1
+      shift
+      ;;
+    *) # unknown, prevent infinite loop
+      shift
+      ;;
+  esac
+done
+
+# If kernel modules are needed but the kernel version is absent, exit now:
+if [ ! -d /lib/modules/$KERNEL_VERSION ]; then
+  echo "ERROR: No /lib/modules/$KERNEL_VERSION kernel modules tree found for kernel \"$KERNEL_VERSION\""
+  exit 1
+fi
+
+# If clearing source tree was requested, do that first
+if [ "$CLEAR_TREE" = "1" ]; then
+  clear_source_tree
+fi
+
+# If there's no $SOURCE_TREE, make one now:
+if [ ! -d "$SOURCE_TREE" ]; then
+  create_new_source_tree
+fi
+
+# If $ROOTDEV and $ROOTFS are not set, assume we want the
+# values for the currently mounted /
+# (unless we find that values are already set in the initrd-tree):
+if [ -z "$ROOTDEV" -a -z "$(cat $SOURCE_TREE/rootdev 2>/dev/null)" ]; then
+  ROOTDEV=$(mount | grep ' on / ' | cut -f 1 -d ' ')
+  if [ "$ROOTDEV" = "/dev/root" ]; then # find real root device
+    ROOTDEV="/dev/$(readlink /dev/root)"
+  fi
+fi
+if [ -z "$ROOTFS" -a -z "$(cat $SOURCE_TREE/rootfs 2>/dev/null)" ]; then
+  ROOTFS=$(mount | grep ' on / ' | cut -f 5 -d ' ')
+fi
+# If needed, write them in the initrd-tree:
+if [ ! -z "$ROOTDEV" ]; then
+  echo $ROOTDEV > $SOURCE_TREE/rootdev
+fi
+if [ ! -z "$ROOTFS" ]; then
+  echo $ROOTFS > $SOURCE_TREE/rootfs
+fi
+
+# If $WAIT is not set, assume we need only one second
+# to have all devices done
+# (unless we find that value is already set in the initrd-tree):
+if [ -z "$WAIT" -a -z "$(cat $SOURCE_TREE/wait-for-root)" ]; then
+  WAIT=1
+  # ARM devices need even more time:
+  case "$( uname -m )" in
+    arm*) WAIT=4;;
+  esac
+fi
+if [ ! -z "$WAIT" ]; then
+  echo $WAIT > $SOURCE_TREE/wait-for-root
+fi
+
+# If no OUTPUT_IMAGE was specified, read it from the SOURCE_TREE if possible:
+OUTPUT_IMAGE=${OUTPUT_IMAGE:-"$(cat $SOURCE_TREE/initrd-name)"}
+# If we still have no value, apply the default:
+OUTPUT_IMAGE=${OUTPUT_IMAGE:-"/boot/initrd.gz"}
+# Finally, write the image name into the SOURCE_TREE:
+echo "$OUTPUT_IMAGE" > $SOURCE_TREE/initrd-name
+
+# Fill /resumedev with the swap partition holding the hibernation image
+if [ ! -z "$RESUMEDEV" ]; then
+  echo $RESUMEDEV > $SOURCE_TREE/resumedev
+fi
+
+# Add custom keymap support if one was given
+if [ ! -z "$KEYMAP" ]; then
+  echo $KEYMAP > $SOURCE_TREE/keymap
+  cp /usr/share/mkinitrd/keymaps.tar.gz $SOURCE_TREE/etc/
+fi
+
+# If LUKSDEV was set in the config file, then we need to set CRYPT=1
+if [ ! -z "$LUKSDEV" ]; then
+  CRYPT=1
+fi
+
+# If LUKSKEY was set in the config file, then give it a warm welcome:
+if [ ! -z "$LUKSKEY" ]; then
+  # $SOURCE_TREE/wait-for-root may have been configured earlier in the script,
+  # but we require at least 5 seconds for the USB stick to settle
+  # after insertion :
+  if [ ! -s $SOURCE_TREE/wait-for-root ] || [ $(cat $SOURCE_TREE/wait-for-root) -lt 5 ]; then
+    echo 5 > $SOURCE_TREE/wait-for-root
+  fi
+
+  # Several extra modules are needed to support a vfat formatted USB stick...
+  # assuming here we are using a western codepage.
+  # This possibly adds doublures, but we clean up the MODULE_LIST further down!
+  MODULE_LIST="${MODULE_LIST}:ehci-hcd:uhci-hcd:usb-storage:hid:usbhid:fat:nls_cp437:nls_iso8859-1:msdos:vfat"
+
+  # Finally, write the lukskey to the initrd-tree:
+  echo $LUKSKEY > $SOURCE_TREE/lukskey
+fi
+
+# Include RAID support in initrd
+if [ ! -z "$RAID" ]; then
+  if [ -r /sbin/mdadm -a -r /sbin/mdmon ]; then
+    mkdir -p $SOURCE_TREE/sbin
+    cp /sbin/mdadm $SOURCE_TREE/sbin/mdadm
+    cp /sbin/mdmon $SOURCE_TREE/sbin/mdmon
+    chmod 0755 $SOURCE_TREE/sbin/mdadm
+    chmod 0755 $SOURCE_TREE/sbin/mdmon
+    mkdir -p $SOURCE_TREE/lib/udev/rules.d
+    echo 'KERNEL=="dm-[0-9]*", OPTIONS+="db_persist"' > \
+      $SOURCE_TREE/lib/udev/rules.d/95-dm-initrd.rules
+  else
+    echo "ERROR:  mdadm and/or mdmon binary is missing, RAID support not installed"
+  fi
+fi
+
+# Include Btrfs support in initrd
+if [ ! -z "$BTRFS" ]; then
+  if [ -r /sbin/btrfs ]; then
+    mkdir -p $SOURCE_TREE/sbin
+    cp /sbin/btrfs $SOURCE_TREE/sbin/btrfs
+    chmod 0755 $SOURCE_TREE/sbin/btrfs
+  else
+    echo "ERROR:  btrfs binary is missing, Btrfs support not installed"
+  fi
+fi
+
+# Include udev in initrd
+if [ ! -z "$UDEV" ]; then
+  cp /sbin/udev* $SOURCE_TREE/sbin/
+  cp -a /lib/udev $SOURCE_TREE/lib/
+  # But we don't want all of /lib/udev
+  for file in $(echo $LIBUDEV_BLACKLIST) ; do
+    # Replace with a null script (avoids error spew):
+    cat << EOF > $SOURCE_TREE/lib/udev/$file