Skip to Content.
Sympa Menu

sm-commit - [SM-Commit] GIT changes to master cauldron by Justin Boffemmyer (bc859935247ff50842ec413e1e36ddc34796ef14)

sm-commit AT lists.ibiblio.org

Subject: Source Mage code commit list

List archive

Chronological Thread  
  • From: Justin Boffemmyer <scm AT sourcemage.org>
  • To: sm-commit AT lists.ibiblio.org
  • Subject: [SM-Commit] GIT changes to master cauldron by Justin Boffemmyer (bc859935247ff50842ec413e1e36ddc34796ef14)
  • Date: Tue, 20 Feb 2018 12:00:38 +0000

GIT changes to master cauldron by Justin Boffemmyer <flux AT sourcemage.org>:

DESIGN
| 12
HACKING
| 2
README
| 10
cauldron/TODO
| 75
cauldron/bin/cauldron
| 1241 +-
cauldron/config/arch/host_arch.conf
| 15
cauldron/config/arch/ppc.conf
| 9
cauldron/config/arch/x86.conf
| 9
cauldron/config/arch/x86_64.conf
| 9
cauldron/config/build.conf
| 137
cauldron/config/commands.conf
| 394
cauldron/config/default.conf
| 28
cauldron/config/display.conf
| 13
cauldron/config/frontend.conf
| 18
cauldron/config/iso.conf
| 68
cauldron/config/paths.conf
| 29
cauldron/config/security.conf
| 6
cauldron/config/sorcery.conf
| 52
cauldron/config/sys.conf
| 20
cauldron/data/cleaners/autoconf-clean
| 72
cauldron/data/cleaners/automake-clean
| 134
cauldron/data/cleaners/bin86-clean
| 10
cauldron/data/cleaners/binutils-clean
| 140
cauldron/data/cleaners/bison-clean
| 66
cauldron/data/cleaners/flex-clean
| 32
cauldron/data/cleaners/g++-clean
| 524
cauldron/data/cleaners/gcc-clean
| 154
cauldron/data/cleaners/grub-clean
| 44
cauldron/data/cleaners/installwatch-clean
| 5
cauldron/data/cleaners/libidn-clean
| 1
cauldron/data/cleaners/lilo-clean
| 52
cauldron/data/cleaners/m4-clean
| 31
cauldron/data/config/arch/host_arch.conf
| 15
cauldron/data/config/arch/ppc.conf
| 5
cauldron/data/config/arch/x86.conf
| 5
cauldron/data/config/arch/x86_64.conf
| 5
cauldron/data/config/build.conf
| 27
cauldron/data/config/commands.conf
| 307
cauldron/data/config/default.conf
| 25
cauldron/data/config/display.conf
| 5
cauldron/data/config/iso.conf
| 34
cauldron/data/config/paths.conf
| 20
cauldron/data/config/security.conf
| 6
cauldron/data/config/sorcery.conf
| 37
cauldron/data/config/sys.conf
| 16
cauldron/doc/cauldron.8
| 316
cauldron/etc/base_etc/fstab
| 36
cauldron/etc/base_etc/fstab.examples
| 22
cauldron/etc/base_etc/group
| 20
cauldron/etc/base_etc/hosts
| 12
cauldron/etc/base_etc/inittab
| 16
cauldron/etc/base_etc/issue
| 2
cauldron/etc/base_etc/ld.so.conf
| 2
cauldron/etc/base_etc/man.conf
| 13
cauldron/etc/base_etc/network/interfaces
| 3
cauldron/etc/base_etc/nsswitch.conf
| 53
cauldron/etc/base_etc/passwd
| 4
cauldron/etc/base_etc/resolv.conf
| 2
cauldron/etc/base_etc/shadow
| 4
cauldron/etc/base_etc/shells
| 2
cauldron/etc/base_etc/sorcery/local/config
| 3
cauldron/etc/base_etc/sysconfig/devices
| 2
cauldron/etc/base_etc/sysconfig/facilities
| 24
cauldron/etc/base_etc/sysconfig/hwclock
| 2
cauldron/etc/base_etc/sysconfig/init
| 30
cauldron/etc/base_etc/sysconfig/keymap
| 24
cauldron/etc/base_etc/sysconfig/locale
| 43
cauldron/etc/base_etc/sysconfig/modutils
| 8
cauldron/etc/base_etc/sysconfig/mountall
| 3
cauldron/etc/base_etc/sysconfig/mountnetwork
| 4
cauldron/etc/base_etc/sysconfig/shutdown
| 2
cauldron/etc/toolchain/grimoire_hacks/libs/glibc.patch
| 413
cauldron/etc/toolchain/sorcery/config
| 4
cauldron/etc/toolchain/sorcery/depends/glibc
| 1
cauldron/etc/toolchain/sorcery/depends/net-tools
| 2
cauldron/etc/toolchain/sorcery/depends/squashfs-tools
| 1
cauldron/etc/x86_64/busybox-1.23.2.config
| 1058 +
cauldron/etc/x86_64/busybox-1.24.1.config
| 1058 +
cauldron/etc/x86_64/initfs/dirs
| 13
cauldron/etc/x86_64/initfs/init
| 862 +
cauldron/etc/x86_64/initfs/ld.so.conf
| 1
cauldron/etc/x86_64/initfs/modules
| 64
cauldron/etc/x86_64/linux-4.0.2.config
| 6092 +++++++++
cauldron/etc/x86_64/linux-4.1.13.config
| 6139 ++++++++++
cauldron/etc/x86_64/linux-4.1.14.config
| 6139 ++++++++++
cauldron/etc/x86_64/sorcery/depends/elvis.p
| 1
cauldron/etc/x86_64/sorcery/depends/ncurses.p
| 1
cauldron/etc/x86_64/sorcery/sorcery.depends
| 2
cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/README
| 9
cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/compile_config
| 1
cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/config
| 24
cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/details.defaults
| 19
cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/kernel.config
| 3054 ++++
cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/makefile.patches
| 6
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/README
| 2
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/distcc.p
| 8
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/elvis.p
| 1

cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/findutils.p
| 1
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/g++.p
| 1
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/gcc.p
| 2
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/gettext.p
| 1
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/glibc.p
| 5
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/gnupg.p
| 1
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/grub.p
| 50
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/hotplug.p
| 4

cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/iana-etc.p
| 2
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/init.d
| 1
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/init.d.p
| 5
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/irssi.p
| 1
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/lilo.p
| 1
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/linux.p
| 8
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/lshw.p
| 1
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/man.p
| 1
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/metalog.p
| 5

cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/module-init-tools.p
| 6
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/mutt.p
| 4
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/ncurses.p
| 1

cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/net-tools.p
| 41

cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/nfs-utils.p
| 5
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/openssh.p
| 8

cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/pciutils.p
| 1

cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/pcmcia-cs.p
| 4
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/pcre.p
| 1
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/perl.p
| 2
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/portmap.p
| 5
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/ppp.p
| 2
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/procps.p
| 4

cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/rp-pppoe.p
| 1
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/screen
| 1

cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/sysklogd.p
| 6
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/syslog-ng
| 1

cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/syslog-ng.p
| 5
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/udev.p
| 7
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/uptimed.p
| 4

cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/util-linux.p
| 5
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/vim.p
| 5
cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/xinetd.p
| 4
cauldron/etc/x86_64/sorcery/x86_64/state/var/state/sorcery/depends
| 200
cauldron/etc/x86_64/sys/sys.runtime
| 50
cauldron/lib/errorcodes
| 82
cauldron/lib/lib.chroot
| 238
cauldron/lib/lib.init
| 276
cauldron/lib/lib.sorcerous
| 437
cauldron/lib/lib.toolchain
| 692 -
cauldron/lib/libcauldron
| 1312 ++
enchantment/TODO
| 8
enchantment/config/commands.conf
| 330
enchantment/config/default.conf
| 25
enchantment/config/display.conf
| 13
enchantment/config/i18n.conf
| 8
enchantment/config/kernel.conf
| 19
enchantment/config/modules.conf
| 11
enchantment/config/paths.conf
| 33
enchantment/config/potion.conf
| 60
enchantment/config/sorcery.conf
| 11
enchantment/config/spells.conf
| 25
enchantment/config/target.conf
| 17
enchantment/config/version.conf
| 8
enchantment/data/config/commands.conf
| 294
enchantment/data/config/default.conf
| 15
enchantment/data/config/display.conf
| 5
enchantment/data/config/i18n.conf
| 5
enchantment/data/config/kernel.conf
| 11
enchantment/data/config/modules.conf
| 5
enchantment/data/config/paths.conf
| 24
enchantment/data/config/potion.conf
| 25
enchantment/data/config/sorcery.conf
| 11
enchantment/data/config/spells.conf
| 24
enchantment/data/config/target.conf
| 17
enchantment/doc/enchantment.8
| 28
enchantment/enchanters/menu/libmenu
| 109
enchantment/enchanters/menu/menu.sh
| 37
enchantment/enchanters/menu/modules/disk-format
| 156
enchantment/enchanters/shell/aliases
| 16
enchantment/enchanters/shell/bashrc
| 61
enchantment/enchanters/shell/bin/enchantment-shell
| 448
enchantment/enchanters/shell/description
| 1
enchantment/enchanters/shell/functions
| 398
enchantment/enchanters/shell/modules
| 23
enchantment/enchantments
| 2
enchantment/etc/enchantment.conf
| 9
enchantment/lib/errorcodes
| 30
enchantment/lib/lib.chroot
| 231
enchantment/lib/lib.i18n
| 22
enchantment/lib/lib.install
| 180
enchantment/lib/lib.modules
| 67
enchantment/lib/lib.potion
| 415
enchantment/lib/libenchantment
| 256
enchantment/menu/libmenu
| 109
enchantment/menu/menu.sh
| 37
enchantment/menu/modules/disk-format
| 156
enchantment/modules/basesystem/description
| 1
enchantment/modules/basesystem/instructions
| 12
enchantment/modules/boot-loader/boot-loader
| 18
enchantment/modules/boot-loader/boot-loader.info
| 1
enchantment/modules/boot-loader/description
| 1
enchantment/modules/boot-loader/instructions
| 18
enchantment/modules/compile-kernel/compile-kernel
| 23
enchantment/modules/compile-kernel/compile-kernel.info
| 1
enchantment/modules/compile-kernel/description
| 1
enchantment/modules/compile-kernel/instructions
| 23
enchantment/modules/disk-format/description
| 1
enchantment/modules/disk-format/disk-format
| 21
enchantment/modules/disk-format/disk-format.info
| 1
enchantment/modules/disk-format/instructions
| 15
enchantment/modules/disk-mount/description
| 1
enchantment/modules/disk-mount/disk-mount
| 23
enchantment/modules/disk-mount/disk-mount.info
| 1
enchantment/modules/disk-mount/instructions
| 20
enchantment/modules/disk-partition/description
| 1
enchantment/modules/disk-partition/disk-partition
| 23
enchantment/modules/disk-partition/disk-partition.info
| 1
enchantment/modules/disk-partition/instructions
| 19
enchantment/modules/edit-confs/description
| 1
enchantment/modules/edit-confs/edit-confs
| 23
enchantment/modules/edit-confs/edit-confs.info
| 1
enchantment/modules/edit-confs/instructions
| 23
enchantment/modules/error/description
| 1
enchantment/modules/error/error
| 1
enchantment/modules/error/error.info
| 1
enchantment/modules/error/instructions
| 7
enchantment/modules/grub/description
| 1
enchantment/modules/grub/grub
| 23
enchantment/modules/grub/grub.info
| 1
enchantment/modules/grub/instructions
| 23
enchantment/modules/init/description
| 1
enchantment/modules/init/init
| 2
enchantment/modules/init/init.info
| 1
enchantment/modules/init/instructions
| 3
enchantment/modules/install/description
| 1
enchantment/modules/install/install
| 23
enchantment/modules/install/install.info
| 1
enchantment/modules/install/instructions
| 21
enchantment/modules/iso-kernel/description
| 1
enchantment/modules/iso-kernel/instructions
| 22
enchantment/modules/iso-kernel/iso-kernel
| 22
enchantment/modules/iso-kernel/iso-kernel.info
| 1
enchantment/modules/kernel/description
| 1
enchantment/modules/kernel/instructions
| 12
enchantment/modules/kernel/kernel
| 12
enchantment/modules/kernel/kernel.info
| 1
enchantment/modules/lilo/description
| 1
enchantment/modules/lilo/instructions
| 19
enchantment/modules/lilo/lilo
| 20
enchantment/modules/lilo/lilo.info
| 1
enchantment/modules/reboot/description
| 1
enchantment/modules/reboot/instructions
| 12
enchantment/modules/reboot/reboot
| 12
enchantment/modules/reboot/reboot.info
| 1
enchantment/modules/select-spells/description
| 1
enchantment/modules/select-spells/instructions
| 23
enchantment/modules/select-spells/select-spells
| 23
enchantment/modules/select-spells/select-spells.info
| 1
enchantment/modules/spell-caches/description
| 1
enchantment/modules/spell-caches/instructions
| 21
enchantment/modules/spell-sources/description
| 1
enchantment/modules/spell-sources/instructions
| 25
enchantment/modules/user-setup/description
| 1
enchantment/modules/user-setup/instructions
| 20
enchantment/modules/user-setup/user-setup
| 17
enchantment/modules/user-setup/user-setup.info
| 1
enchantment/modules/welcome/description
| 1
enchantment/modules/welcome/editors
| 6
enchantment/modules/welcome/instructions
| 16
enchantment/modules/welcome/welcome
| 22
enchantment/shell/bashrc
| 59
enchantment/shell/bin/enchantment
| 260
enchantment/shell/functions
| 342
enchantment/shell/modules
| 17
lib/libcolor
| 175
lib/liberror
| 27
local-exec/cauldron.conf
| 46
local-exec/cauldron.sh
| 9
local-exec/enchantment.conf
| 21
local-exec/enchantment.sh
| 9
ward/TODO
| 15
ward/enchantment_sources
| 2
ward/libsource
| 119
ward/ward-all
| 2
ward/ward-configvars
| 19
ward/ward-errorcodes
| 4
ward/ward-functions
| 34
282 files changed, 34015 insertions(+), 4690 deletions(-)

New commits:
commit bc859935247ff50842ec413e1e36ddc34796ef14
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

add TODO files for cauldron and enchantment

Add TODO files that list what needs to be or is planned to be implemented
in
the near future, for both cauldron and enchantment.

commit 3a7d6c03f93e86cb514530938648df81ac587b0f
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

ward: allow specifying function prefixes

Add new functionality for limiting the functions that are tested by ward
to
those matching a given prefix.

Currently, ward-functions with no arguments picks up some false positives
that
are hard to eliminate in the general case. Re-running it with a specified
prefix can help test for specific problems without running into false
positives.

commit 069d0384e9c3e4e7c3eff87d70917ca4b7367d74
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

ward: enable checking new config var assignments

Adjust the regexp used to check against global variables so that ward can
properly treat config variables assigned using the : ${FOO:=bar} pattern.

commit 2fd102cd98ab2b8c03a7227803f9f0b8642ec83e
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

ward: update TODO

Update the TODO with the need to have a manpage that documents ward
itself, as
well as dynamically finding and loading config files to scan for variables
rather than relying on provided lists. The latter may not be (feasibly)
possible.

commit e0c63ff4485bc359761c86877da314e99170c030
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

update HACKING for enchantment-shell rename

Update the HACKING file to indicate enchantment-shell, rather than
enchantment,
in preparation for the time when there are multiple installer interfaces
to
choose from and enchantment refers to the library and collective of
installers
rather than a single one.

commit 510dfe1e57350ed34218edf15c5e754f662b39ef
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

update README to match current state

Update the README file to match the current state of the different
components
of Cauldron.

commit deecc4dcab86474c3a8bd97a2e5ddb2b1fb78333
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

encantment: update manpage

Update the manpage for some of the newer changes.

The contents of the manpage are likely to need more editing and updating.

commit 62b36c7d3953b9c50ffa49390469a139fbc1db0d
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: shell: select stub function

Include a stub function for selection functionality, which will later be
needed
for selecting which files, spells, etc. to install.

commit b1c8fb8714b35aef1e7111bc32b5c717df839576
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: add shell enchanter description file

Add a file that describes what the shell enchanter is/does (i.e., what
kind of
interface it is).

commit bd38c12d2f0717a2abf065e1bc25aa754f1bbaac
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: update and add modules

Renew the instructions for various modules, as well as add some new ones.

Due to the newer, more dynamic nature of iso creation, many of the module
instructions need to be revisited, as they provide only static text with
preconceived notions of what will be available in the iso runtime.

commit b4a76657652e8cc5270baf11e28bc6dfc8c365fc
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: lib.install: correct typos

Fix some copy-paste typos, as well as a misnamed variable, found thanks to
ward.

commit 9e3b088ceebd52eacdf9ee2d1df46e5f5d003288
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: add lib.install error codes

Add additional error codes for covering cases where kernel headers and
the sys
image fail to install.

commit 02f4157490dedb5fc6de70d1dbbf093bd7d6db2f
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: fix another variable name typo

Correct the name of CAULDRON_KCONF to CAULDRON_KERNEL_CONF, found via
ward.

commit 4a39d27df7142ca0cbca97b85db0b10f61756351
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: correct LIB to LIBC in config vars

Correct a typo in the libc-related configuration variables in build.conf
from
*_LIB_* to *_LIBC_*, found via ward.

commit e4800b4916593f7a9a0cb2d8428aa16c02761161
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: libenchantment: fix variable printing

Unfortunately, declare -p isn't error-checking friendly, so the error
check has
to be removed. Also, switch from only using the first argument to the
function
to using all the arguments given, and use printf instead of echo.

commit b9b77327216365d039bec5910d6604c3cd392125
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

local-exec: update path to enchanters

Update the path to the enchanters, now that they are all in a separate
subdirectory.

commit 667d385534e5a47c0fb3afc53839a30755428353
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: shell: help message

Add functionality for printing a help message when the -h option flag is
passed
on the command-line.

commit 7912b91d23539759d96d6653ab15abeecedbdabe
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: add version variable and command

Add a configuration variable to set the versions of the scripts to be
included
in the final iso, as well as the version of the final iso itself.

If the iso process is put into full production such that a new iso is
automatically produced every time there is a version bump in the
grimoire, it
will be possible to configure the iso version to automatically match the
version of the grimoire included in the iso.

commit 999382c5afc17d814e59cc64fb4bd3176e0861ef
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

define config vars using := param substitution

Switch from the FOO=${FOO:-bar} style in sorcery to using the more
compact and
less error-prone (at least for typos) : ${FOO:=bar} form. The leading ':'
is a
necessary no-op that prevents the shell from trying to interpret the
variable
as a command to run rather than a mere value assignment.

commit f1e454457d9f234b37752a0541d614a8ce60af7d
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: improve some error handling

Refactor a few places to improve the error detection and handling.

commit b21d08a7d89ecf46fc6df998c8f575f09154304a
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: add config var for exec shell

Add a configuration variable to determine the shell that enchantment
subscripts, in particular module enter and exit scripts, are to execute
under.

commit 003402f8d6f74ac0d3a990ab10b89de4c3b5689e
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: add config var for enchanter modules

Add a configuration variable to point to the enchanter-specific (file)
list of
modules, as well as their ordering.

commit 81430d5c4108cb9254d92977d31e680c9ee7ebb9
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: handle installing kernel + kmods

Implement funcitonality for installing a given kernel (and any
accompanying
kernel modules) to the target system.

Additionally, make the kernel infrastructure system agnostic so that in
the
future non-linux kernels (or at least non-standard ones) could also be
handled.

commit 1be71b7e57fcaec23f5a1109e54c944269c1c8f2
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: overhaul and refactor of potion

This is a major overhaul of all lib.potion functionality. A good deal of
the
functionality has yet to be implemented, and what has been implemented is
yet
to be properly tested. This is only a start of the real implementation.

commit 7e83124a60a52a2e2a06b8e9a4fd705ff31a537d
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: add function for installing sys image

Add a function to lib.install for handling the installation of the sys
image
file (i.e., system.tar.xz) to the target system.

commit 5344c6ecc87faf26dc9b194de76c646a30f11473
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: add general enchanter error code

Add a general enchanter error code for hard-to-classify errors that
happen in
the enchanter itself, such as initialization errors.

commit 31ec7b9337ded538a9a819f6240a0c65b798cc3e
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: shell: process after loading config

Make sure that the config file is loaded first before attempting to load
any
files. The config file may define or otherwise alter lookup paths, which
can
affect the success of loading subsequent files.

commit d420b973febb072149109e6ea7e7a8c696502aa1
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: add many generic error codes

Add error codes for various general, basic purposes, such as the
inability to
create a new file.

commit fc110c1d6f26ea7fd28b881c50ad1f03f20add3e
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

local-exec: add ability to run scripts locally

Added a new main component for executing the cauldron and enchantment
scripts
directly from the source tree, without installing any files to the host
system.
This not only aids debugging and development, the cauldron.sh script will
work
well enough to produce full isos direct from a git clone, as long as
there are
no bugs and the user has sufficient system permissions for mounting,
chrooting,
and creating device nodes.

commit 76830b87d83c2ec3d5aa7081b3b9621a3cd140fd
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: update configured paths

Add more path configuration granularity, and move some bits to more
logical
paths.

Enchanters (installer interfaces) now reside in a separate subdirectory,
rather
than just being dumped into the same directory with everything else. This
makes
it readily apparent what enchanters there are to choose from, rather than
needing a separate text file to list them, and also makes it easy to
operate on
them (to copy all of them over, one could now do a simple cp -r
enchanters/*).

commit 59f2d37993271ab804a328e5819b3b2a53cd241e
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: lib.chroot: sync with cauldron chroot

Sync the enchantment lib.chroot code with the code for the cauldron
lib.chroot library.

Common code should be refactored out of both into a common libchroot
library
that can be shared, with component-specific overrides or added
functionality
provided in the component lib.chroot libraries.

commit 5754ba9b7b4c1ca88d914d17a7565dda82a38af2
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: add potion file var to potion.conf

Add a new variable to potion.conf for configuring the final output file
to save
potions into (where to "bottle" the potion).

commit 23c6fb9af0dc80f1a2199861ef172e815e53535d
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: add functions for verbose output

Add new functions to standardize outputting messages when ENCHANT_VERBOSE
is
enabled.

commit b1ff968bd9a9aca5b04690c0fed9c9616bcf20d2
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: enchance config/display.conf

Add additional variables to display.conf for controlling both the level of
output displayed (ENCHANT_VERBOSE) and where the output will be written to
(NULL, STDOUT, OR STDERR). The output location variables are actually
conditionally defined in various enchantment libraries, but this gives
the user
a central controlling point without having to read the various library
sources
separately.

commit 1e21716c6c857091dddba5019cf1845d9d8bb67e
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: lib.chroot: expand option descriptions

Expand on the descriptions of the -q and -s options for the
cauldron_chroot
command to make it clear what they do and what they should be used/useful
for.

commit 3a04dd79efd21b15ebff394a3175353cfcc25260
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: lib.chroot: bind dev tree explicitly

While there is a recursive option to umount (at least for some
implementations
of it), the availability of a recursive option for mount cannot be
guaranteed
at all, so explicitly bind mount each mount point that is needed in the
chroot.

commit b641cb8d37cd7f234572b2b6b8b2e142930aa3d6
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: lib.chroot: fix typos

Correct some typos (including logical ones) in the lib.chroot code.

commit b31f657f726027222bf2e267464484b22be3b74c
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: add support for the wc command

Add a wc command config variable. The variable is actually already used in
libcauldron, but was as yet undefined in the commands.conf file.

commit c7bfd122d4075cf2b9315623d678978b75c905c6
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: correct typo in commands.conf

Correct a typo in the recursive umount command (the "recursive" portion
of the
name was missing in the definition line, though it was present in the test
line).

commit e184e0a6a29afba4d92469f1b9056653a37b167f
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: add output error code

Add an error code for when output cannot be written to the display
device/file.
When the display is a terminal, it is very unlikely that an error can
occur.
However, if the user (re)configures cauldron's output to direct to a
file, it
can be possible that the file cannot be written to due to insufficient
permissions or an overfull filesystem, for example.

commit 1deb9f50e3a07f6b2a35a697ece65dd9188ecbc9
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

improve variable inspection functions

Improve functions for inspecting and displaying the values of
configuration
variables by implementing an additional libcolor function for
informational
message content as well as setting less as the default pager (with
corresponding options).

commit be1989ba5a6ca83e54f62ee86207ec4e636c4a3c
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: shell: improve globbing test

Use simpler and more standard parameter substitution for testing for glob
patterns in the user input by comparing the input variable against itself
minus
the glob character. Not only is the resulting code easier to read, it
should be
marginally faster.

commit 58ba9c5d2ad9cf67bf74dc7c93a244b1cfe5010c
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

libcolor: correct use of eval

Accidentally forgot to escape a variable in libcolor_msg. Escaping the
"$@"
argument fixes problems with printing when the string(s) to print contain
characters that would otherwise be interpreted by the shell.

commit fbeda11a19822a9be8c91c692309e7e5935a06fc
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: shell: config file option

Allow the user to manually select a config file to load at run-time by
adding a
command-line option switch (-f). This will enable users to store
customized
enchantment setups on external media to use in combination with a
pre-built
iso, rather than having to build a custom one just to preset/change
enchantment
configuration options.

commit 493878a01a654182fa0c20cc90c1dacaa4dba2f8
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: shell: get variable state

Add new functionality to the shell enchanter for querying the state of
configuration variables. The user can query either specific variables or
all
variables. This can be used by end-users both for learning what variables
are
in play, as well as for debugging variable settings.

commit 506526fe647efda2812a8eab3408f3e1de0fec51
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: shell: add user aliases

Enable convenience aliases for the end-user, rather than requiring them
to type
the full "enchantment-shell subcommand ..." for every command that needs
to be
issued.

commit ca2d9f4928449e65213ac2edc3dcbdf5af3b9fb6
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: shell: enable color ls in chroot

If color is enabled in enchantment, set the chroot's ls to use color as
well,
using the configurable ENCHANT_CMD_DIRCOLORS command.

commit c76b1a4a8fe24de8b0e79ed8bccf21eb695f21d6
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: shell: colorize prompt

Enable the shell prompt to be colorized if color is enabled.

Currently the color choices are hardcoded. This should be
user-configurable,
but doing so may result in cluttering the variable namespace needlessly.
Further consideration is required.

commit 516f6219fbbcda651e89090f1fe82a611749a41e
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: shell: bug fixes + output cmd

Correct some bugs (function name typos, etc) caught using ward. Also use
the
configured ENCHANT_CMD_OUTPUT instead of hardcoding the use of echo.

commit 83b12f9d43de7049e822304fdbcef8d6594ffe24
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: rename shell enchanter binary

Change the name of the enchanter binary from enchantment to
enchantment-shell.

All enchanters should be named for themselves, rather than taking the
generic
"enchantment" name. The generic name will appear as a symlink to the main
enchanter in the final iso. This is to allow for multiple different
enchantment
interfaces in a single iso.

commit 477f457d7c14e3b231ec48cbc4ba6db86f269225
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: shell: update + improve module order

Update and improve the modules ordering specification in the modules
file. Some
modules are now obsolete and removed, while many newer modules are now
required
for better granularity and choice during the installation procedure.

The module selection/ordering still requires greater refinement. In
particular,
several modules need to be made dynamic rather than statically hardcoded
(such
as the possible bootloaders, etc.). It may be necessary to develop a
different
mechanism for specifying module ordering, perhaps by including
pointer/reference files in the modules themselves with some form of
per-enchanter override capability.

commit cb25be2e5a184a350138e9f571dd6bcd67ea04a0
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: shell/functions: update definitions

Update the usage of command and variable definitions to match changes in
the
enchantment libraries, as well as to eliminate hardcoded commands and
instead
rely on command variables provided by commands.conf.

commit a55eafc0e344a25dc6e39ac60bfc8a12cf653762
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: shell bashrc mode -> 0644

The bashrc that is used to load and initialize the shell enchanter does
not
need to be executable, so make it non-executable.

commit 654cd026e08da921d1684cf5d63b29fc52d38a47
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: better shell bashrc PATH definition

Define the shell enchanter startup PATH based on a single runtime
variable,
rather than (partially) hardcoding it to a specific location offset.

commit 0411055d91c940ba1b710e11d723cf71b7242a95
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: initial commit of cauldron man page

This is the initial commit of the cauldron man page. Only some of the
existing
features/functions are currently documented.

This will get fleshed out and updated later as time permits, but it's
better to
commit the documentation that exists than to have no documentation at all
for
all the new functionality.

commit 2861564390017f55643429153173e1fd91e88687
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: (re-)implement the end-user program

(Re)-implement the end-user cauldron program/command. The previous
implementation was really just a stub with almost no functionality, with a
skeleton that mirrored that of sorcery's. As cauldron has evolved away
from
sorcery, most of the skeleton framework that no longer applies was
stripped
out, and functions were filled in to interact with all the parts of
libcauldron
and the other component libraries to produce a final iso.

A lot of functionality is yet to be implemented, with stub functions
especially
for update_* features. These funstions will need to be implemented in the
future, and the program could use a good refactoring on the whole.

commit f404ac36f19c8508de46b37626b597d5933a362a
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: add misc etc config/data files

In order to produce a working iso, the iso needs various files to
populate its
etc/ tree. Cauldron also needs to configure the toolchain with specific
settings, particularly for sorcery, and the initrd/initramfs that will
boot the
iso also needs various files (including its init script). This commit adds
these necessary files.

Many of the files are in locations that may change in a future update. In
other
words, the locations of these files (or even the fact that the content is
provided in a file instead of a global config shell variable) should not
be
considered stable. Additionally, some content may be found unnecessary or
incorrect/incomplete and hence later removed or altered.

commit 3055bc7e3f2e36093e611314efa8bf8c1191db8b
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: lib.init: ensure dmesg availability

Create an empty file for var/lib/dmesg in the initfs to ensure that
kernel
messages can be accessed from within the initfs even if the user
overrides the
init program (i.e., init=/bin/sh or similar) to facilitate debugging any
driver
or module problems.

commit 3519f80c2581e4e13c757712927569cb25f77ecd
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: complete libcauldron implementation

The component libraries for more specific functionality are implemented,
but
the core that puts it all together, both through convenience functions to
the
component libraries as well as miscellaneous functionality of its own, was
largely incomplete. This is a large commit, but testing individual
functions
was difficult without a produced final iso, so the implemented functions
are
being committed together.

commit 63b2d0d743e263f66f46c4405c92dd56dfbcf26a
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: lib.init: path in local variable

Push the iso target path to operate on into a local variable at the top
of the
function so it can be found more easily later if it needs to be modified.

commit c57789d43633e8c35cb5022e79dbaad1c6b441b8
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: lib.init: modify script with iso values

Modify the init script with the real iso values so that it can properly
find
and test its targets at boot time.

commit 368fec019bc306d231f1d8b1df29e40d5b73154c
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: lib.init: script from file or parameter

Add the ability for the initfs's init script to be specified either via
function parameter or from a (fallback) config file.

Also ensure that both the initfs dir and the given init script to copy
into the
initfs exist before trying to operate on them.

commit c7fe689d51c766ab33e54db07ba911f261cbd93d
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: lib.init: remove deprecated function

The cauldron_init_setup function is deprecated because a native "init" is
not
used within the initfs, but a single shell script instead. The shell
script
approach is more portable, as any init system should be capable of running
arbitrary shell scripts (at least by spawning a shell process to do so),
whereas setting up for a given init system will very likely be tied to
that
specific init system and thus require porting each time the init system
were
changed.

commit ef59f1051e10520ecef356b119d8b6a6a7ca78dd
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: lib.init: ensure sh symlink at boot

When a system boots from the final iso product, the kernel will load the
initfs
and try to start the init process therein. The init, which in cauldron is
a
shell script, cannot run if there is no shell that can be started. The
bootloader could be changed (or the shell script's shabang) to indicate
the
sysutil program in order to spawn the shell, but it's better to ensure a
symlink is present and use a more standard /bin/sh instead.

This could additionally foster run-time testing, as a simple shell script
could
be executed by the initfs shell (the symlink to the sysutil) to ensure it
works
before packaging it into the final iso.

commit 09afad805e0898f7d83d0605df2add6c20925839
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: lib.init: path in local variable

Push the sorcery path to operate on into a local variable at the top of
the
function so it can be found more easily later if it needs to be modified.

This might be a candidate for an additional global config variable, but
currently since sorcery has its paths hardcoded this isn't possible, so
it's
left as a local variable for now.

Also add an additional check to make sure the target initfs directory
exists
before operating on/within it.

commit 1b7051b0abf30c055f3c64e1dde266fce3a23253
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: lib.init: file -> array or file

Enable filesystem layout/creation functions in lib.init to take their
arguments
either from a list of function parameters or from a (fallback) config
file.

Additionally update some config variables (remove some that are now better
provided by build.conf as well as add some new ones) in iso.conf.
Specifically
relevant here are the new config variables for the option of a compressed
final
iso filesystem, which lib.init would need to be aware of for where it
pulls
kernel modules from.

commit b766b36fc5e620f6d7d2a45836845bf6b2e7bb74
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: lib.init: update naming

Update function and variable names both to match recent changes in other
parts
of cauldron as well as to have greater internal coherence.

commit f7f312f1eb3c8f6ed49ca7a05feb0f4d4b20b266
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: lib.toolchain: refactor + reimplement

The toolchain code was both incomplete and a mess as it was. This
implements
missing functionality required to actually build a toolchain from scratch,
including acquiring the requisite sources for the kernel (required for
header
files at least, needed to build the C standard library) and compilers.
Unneeded
functionality was also stripped out.

commit 783efa8b44f46af785ec2b3c2c973725d295b489
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: config: refactor path specs

Modify the base paths so that there is greater granularity and control
for the
end-user, as well as more logical and coherent placement for different
components.

commit ef2c3270c63729f5dbb35359af21fe729007a2ac
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

ward: add usage comments for -e option

Add explanation of the new -e option to ward_functions for checking
against
enchanter-specific function definitions.

commit d4ebaac771332af7ae2061709141393c9e871a34
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

ward: use readlink to get paths

Ensure that all defined paths are properly reachable and cannonical by
using
readlink on them.

commit 430116c970130a40498585660b10ba9a41e7f92d
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

ward: check enchanter functions

When checking function definitions, add an option for checking against
enchanter-specific functions via the function file path given as argument
to
the newly added -e option.

commit 58ea737f623e24e99fd0e23d2211678285ea5c71
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

ward: cleaner options and sorting

For checking options to functions, rather than including the leading
hyphen in
each case statement, strip the leading hyphen and only test for the option
value itself.

For sorting and removing duplicates of variables, echo can be
problematic, but
printf is not (and it is also more portable). Alter the functions to use
printf, removing the need for awk.

commit 2d812afe7470cb3b294bb1791bd7e7175643421a
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: errorcodes: add download error

Add an error definition for failure to download from a given url.

commit afb6a85499f72255e7ecd49147a4e381db094eed
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: lib.chroot: refactor

Refactored the code in lib.chroot, as well as corrected some logic bugs.

The chroot implementation now no longer loads sorcery or sorcery-related
functionality, as loading from the host system would result in loading the
wrong values/functions, and whether the load should happen inside the
chroot
should be determined by the caller, not done unilaterally in the library.

Various functions were simplified. A new function,
cauldron_chroot_cleanup, was
added automatically perform cauldron_chroot_done over all known chroot
paths as
an emergency bail-out measure.

commit 0ce25b0c73e8cd79a9fb5cae7980194a8f3f7169
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: lib.sorcerous: major overhaul

Refactored and reimplemented almost all of the sorcery interface
functionality.
The interface is now cleaner, and allows for various sorcery operations
to be
performed on different target chroot directories. Additionally, specific
functionality was implemented for configuring sorcery with different
settings
depending on the purpose of the given chroot (for example, a sys chroot
should
have mostly unmodified sorcery defaults, except for having ARCHITECTURE
set
appropriately).

commit b907f75dfb3d3099765c327e0b2d88c0845afae3
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: add function to initialize fs dirs

System filesystem initialization requires more than just adding binaries
to
requisite paths. Various directories need to be present with their
associated
permissions, and various files (especially device files) are also needed.
This
commit adds a function to libcauldron that ensures a given chroot path is
populated with the minimum required directories, sets the permissions on
those
directories, as well as creates absolutely necessary device nodes in the
dev/
tree. It also runs ldconfig within the chroot to ensure that library
searching
has the correct path and that libraries (especially the system libc) will
be
usable.

Currently this function does not rely on any spells, such as smgl-fhs, for
bootstrapping the target chroot path. Such a dependency may be desired in
the
future, after testing to determine if the spell can provide the same
requirements as cauldron without too many additions.

commit a95004e5f5f041dfd615e5e46f783398e6a7375c
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: libcauldron: add debug funcs

Add functions to enable debugging and diagnostics functionality to the
base
cauldron library. This will facilitate better diagnostics for end-users,
with
control over the output determined by the setting of a single config
varibale,
as well as more accurate debugging for developers.

commit bb0f754939428bc55a1bafdc886cc02793884fd0
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: ilbenchantment: refactor history

Refactor the history (forward and back) functionality.

commit 83a2c92b7458beddb418ab9b90bb2aeb3dc7e4ae
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: libenchantment: don't hardcode cmds

Don't hardcode commands in libenchantment. Instead, use the command
variables
defined in config/commands.conf.

commit d800dfcaf53c99dfa671eed5b8010b8a9125a5b9
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

libcolor: refactor

Refactored all of libcolor, maintaining the same API. This improves
readability
of the code and reduces code duplication, at the expense of message
convenience
functions (libcolor_MSG where MSG is a defined message type in lowercase)
having to call one additional function but doing almost no processing of
their
own. This should also make it easier to add define new message types and
convenience functions in the future.

commit f020a537e2e14f7076412779a991dee55dbb926e
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

libcolor: convert echo to printf

printf not only allows more fine-grained control over the output, it's
also
more portable across different shells and environments. There shouldn't
be any
computation penalty either, since printf is usually provided as a builtin
on
modern shells (including bash).

commit 955e1f4580fd2b649b9c0f0f199f183334377fed
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: indent user commands to mark them

In the module (step) instructions, make commands that the end-user needs
to
enter more noticeable by giving them some indentation in addition to the
highlighting. Also change the old smgl-chroot (and similar) command
references
to the newer enchantment-based ones.

commit 558b7ae0de5ba9166467fb0587dfc63c5e488319
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: rename module text files

Instead of redundantly naming module files after the name of the module
itself,
give them more meaningful names that are not based on the module name. If
the
module is ranamed, it will not necessitate changes to the filenames of
files
belonging to that module, and it should be more readily apparent what the
purpose of each file is, making modifications and direct manipulations by
end
users easier.

commit 2d612f35bd25457a0ddf176a11a0277c50573e55
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: config/arch: add sorcery arch settings

Different parts of the system use different names for different
architectures.
For example, the linux kernel does not refer to specific x86
implementations
(and does not understand them, rejecting them), but the compilers (gcc,
llvm)
do, so they need to be given i486 (or similar) instead of x86. Since
these are
all arch-specific settings, add new variables in the arch configs to hold
the
different values for different major architectures.

commit e4218242e1900ee9a3367186318c4e1311d2d71b
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: improve cauldron_prepare, use liberror

Modify the cauldron_prepare function in libcauldron to accept a target
directory instead of hardcoding it, and also make use of liberror_check
after
calling functions rather than simply returning errors without doing any
checking of its own. Also ensure existence of various directories inside
of the
chroot target, configurable by a new cauldron config variable,
CAULDRON_FHS_DIRS, which should be an array.

commit 89f3b01419d45f00b2e961bf3c4f9ababad5f90c
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: clarify param usage in toolchain lib

Rename the parameter baseroot to baseroot_dir to make it clear that the
parameter should point to a directory, whose contents constitute a
baseroot,
and not a baseroot image file.

commit 5ce4133c10c67cb3ef4242a988e86c374cd9feb3
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: spells listed directly or in files

The sources and caches install functions are now able to pull lists of
spell
sources or caches, respectively, from the function arguments directly,
from
files as function arguments listing one source/cache per line, or from
configurable environment variables if no function arguments are present.

commit 1d092347ea4b2ec5da6abd7f6e48cb44be9f7f7c
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: refactor modules lib count functions

The previous definitions of the count functions (number and total) both
forked
to subprocesses to obtain the module number in question. They have been
redefined to use shell-only alternative means of processing the module
list to
determine the corresponding number. Use of liberror functions for better
error
diagnostics and reporting was also added to both functions.

The functions were also renamed to avoid ambiguity, since "number" could
be
interpreted as total number, current number, etc.

commit 97afd1d4cdc65b57dbd971a3c30019c7cb1ed907
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: improve efficiency in modules lib

Rework some of the code for better efficiency and also a little less
hardcoding.

commit 5dff77f8e5be52f983c082ee2fd648e38ecf708d
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: improve user output code in shell

Clean up the functions that generate user-level output, making them both
more
correct and more efficient.

commit f0b079aa15fea4653121b54066bca9ab5f859ae6
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: make shell use liberror functions

The lower-level commands already define error codes that get returned
back to
the next level up in the call chain. User-level enchanter commands (step
todo
printing, for example) should therefore use the liberror functions to
report
errors that occur, together with where the error occurred in the original
source, rather than simply pushing an error code another level up the call
chain without reporting on why or where the error occurred.

commit ba7f38cf7b53b575f315274908add8ee9114bf93
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: move potion global vars to config

Move the global variables used for potion to the potion.conf config file.
Most
of these variables shouldn't be modified by end-users, but they should
still be
able to if there is a need to.

commit 3d2e65d719a570b5e6a1f1ae99174817696dbc3d
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: use configurable commands for install

Rather than hardcoding the methods for installing files and directories,
use
configurable commands defined in the commands.conf config file.

commit 644f78b1698e15bc138e9e1eae09df610bbeafd8
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: rename potion vars with namespace

Rename potion variables to use the potion-specific namespace (namely,
ENCHANT_POTION_ as a prefix).

commit 146699a3c803be3829070a339eba2cb0d4586232
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: add more command defs in config

Define many additional commands for use by the various components of the
installer interface. Not all commands are currently in use, but may be
useful
in the near future.

commit 355881939181ed465af94e1c24fd41d32c32880b
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: config: allow overriding config paths

Rather than hardcoding the startup config file path(s), set the base path
via
an overridable environment variable, use that to load the basic paths,
and then
load the default (main) config file. This affords greater flexibility for
end-users, enabling one-off test runs as well as separated config trees
for
different setups.

commit bd958e4a9a8e6f783097bfa45c07bec2f571edb4
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment:i18n: don't hardcode

Update enchantment lib.i18n to use config variables instead of hardcoding
paths
for selecting and loading keymaps.

commit b34b79397934afdbe6be715b962c4685bba32e43
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

errorcodes: change file/dir NOT_FOUND -> ACCESS

Change error code naming and usage semantics to file/dir access. Some of
the
errors are hard to specifically detect for whether files are actually
non-existent or whether they can't be accessed due to permissions
problems. Now
that both original error codes from called programs as well as more
complete
error messages (including source file and line numbers) are percolated up
in
the error reporting system, we can afford to not be specific about the
cause of
the error (non-existence vs. insufficient access rights) and allow the
end-user
to discern that cause.

commit fbbd0d8dcacefcf1fe6d62f60190edd7495b8574
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: more sensible target path in config

Change the default target path from /mnt/root to /mnt/smgl. This should
be more
descriptive and less confusing.

commit 190e37620d6aa94a598d9be33e733da4007f2ec7
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

enchantment: add comments to default config

Added comments to the default config to explain what the separate
sourced config files are for. Without the comments, end-users may have
difficulty understanding what the different pieces do, which may make
modification by the end-user a more difficult process.

commit 454f704479747272f85917bafa3108ab93e3d0a3
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: config: rename iso material files/paths

Rename the paths/files that define the material resulting isos will be
populated with. For one, SPELLS doesn't indicate how they will be used,
since sources and caches will also be gotten from spells. Naming this as
RUNTIME is a far better indication of how materials from those spells
will be used. Also, all of them are now located in config/ instead of
data/config/.

commit 756cb3079b2edd3493dd736c69a331c7e5bdd6bc
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: config: correct initramfs creation cmd

The initramfs creation command failed to function correctly due to the
way it was parsed. Instead, pass it through an eval to ensure that each
command is properly run, as well as piped to the subsequent commands.

Additionally, add the --quiet flag to cpio to prevent spamming output.
End-users can modify this variable to remove the --quiet flag if they
want to debug the initramfs creation.

commit 37beab3d22f030128f517b4bcd8a59ac7a86b77a
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: update basesystem chroot image to latest

The latest basesystem chroot image available for download is 0.61. This
includes many fixes over the older 0.47, in addition to newer
software/spells.

commit 968165a2a3e3780dc05ceb6bdb83cc0bc5e15aa7
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

ward: update config file paths

Update the paths to point to the cauldron and enchantment config files
after having renamed them from data/config/ to config/.

commit baece5e19130d1a2724704fb15de1465a0d5a8f8
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

use liberror_check for better error checking

Rather than simply returning errors up to the calling functions, make
use of liberror_check. The appearance is not only cleaner, it also
outputs error messages that demonstrate what went wrong and where,
rather than just bailing out and leaving it up to the user to track the
error down.

There are still more points in the codebase to evaluate for better
testing and error handling. There will be further use of the liberror
functions in later commits.

commit aaf9fc347828025dcd90ce5b109e7d0694b96f5d
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

mv config paths

Moved the config paths out of the data subdir in both cauldron and
enchantment. There's no need to have it under data, and placing it there
in the source hierarchy is just burying it and making it harder to find.

commit 6c7f4d11c0e638b29e494793f08730a5855440c1
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

libcolor: user-level wrapper functions

Added two functions for handling the color functionality at a higher
level, so that users of libcolor should never need to directly
manipulate color variables, but instead call functions only. This is
safer/cleaner for handling color state changes, since the libcolor
functions can ensure proper preservation of "normal" color via call
chains, whereas direct manipulation of the variables would require the
libcolor user to keep track of and restore such state manually.

commit 2d8a30f8c92eea5afcd73091f761bf855bf5e898
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

libcolor: color for dir paths

Previously all paths were treated as file paths, so there was only one
color for expressing them. This commit adds a dir color for expressing
directory components and changes the default color for files.

commit 3443838a48934f4408b13b3f14aff1cdb8d3bdff
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

ward: improve function detection

Improve the detection of function definitions in the cauldron and
enchantment source codes. The search algorithm isn't perfect and still
yields false positives, so it still needs work, but it's certainly an
improvement over the previous iteration.

commit ae1b9ce2f1727fd3312b0c99167f1362d26b6c06
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

ward: ensure a valid PAGER value for ward-all

Previously, if ward-all tried to paginate output when PAGER wasn't set
by the user's environment it would produce an error. Ensure that PAGER
gets a default setting in the event that it hasn't been set in the
parent environment.

commit a1b456bf757ab81695168db993ca288c95003c5e
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

liberror: chmod a-x

Somehow liberror was set executable and I didn't catch it. Set it
non-executable, since it's just a library that defines functions and
variables rather than running any code of its own.

commit 486006985b74aa4420cd4754edf4dc37e197166a
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

liberror: return more info on the calling function

When outputting error information, include more details such as the
source line number and name of the calling function to be more helpful
in debugging errors.

commit 770eb7ed4a3a5ec527a14450195b8667babf8deb
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

liberror: use declare to determine function

Use declare -lF to determine if a function is defined or not, rather
than the less effective (and less elegant) tricks with type. This is
likely a bashism though.

commit cd040361de452f8495ae5e4a5856696063584bf6
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

liberror: return the original error code

Ensure that the original error code at the time the liberror function is
called is returned to the callee, rather than any return codes that
result from liberror processing.

commit a173a0a3004f9fb7fca55a85adcc6f70eef4e6fa
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

libcolor: enable multiple embedding of colors

Rather than directly setting an output color, first save the current
output color to a temporary variable and then set the output color. This
way, multiple chained calls to libcolor functions will correctly embed
the correct color, and when exiting/finishing return to the correct
previous color instead of always returning to a single, defined "normal"
color.

commit ca2a66d3569dab4cfe20f1bc4450122c65fa2ced
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

cauldron: data/cleaners: no longer used so rm all

Rather than doing a blind full install of all spells and then
removing unwanted files/content, cauldron is switching to more
fine-grained target spell semantics, so content is logically
separated.

Since only specified content for a given purpose is copied to the
target, rather than all aspects of all spells possible, there is no
longer a need for cleaners, so remove them.

commit b621666165eba4143242810e78c69b21e4ba546a
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

ward: libsource function checks for common libs

Added a case block to check function defitions against the common libs
(libcolor, liberror).

commit a0f37187947810f483b216c36a44c0c2e2479ee2
Author: Justin Boffemmyer <flux AT sourcemage.org>
Commit: Justin Boffemmyer <flux AT sourcemage.org>

fix typos and simple logic bugs

Fixed various typos and simple logic bugs across the codebase.

diff --git a/DESIGN b/DESIGN
index af84dd9..106ac57 100644
--- a/DESIGN
+++ b/DESIGN
@@ -23,7 +23,7 @@ an automated way, or haven't had the foresight to account
for ahead of time.
The basic toolchain can/should be gotten from the running host system if
possible. This can be accomplished by using binary caches from
/var/cache/sorcery. If the cache file for a given toolchain spell does not
-exist, it should NOT be taken from a repository somewhere, or from a
basesystem
+exist, it should not be taken from a repository somewhere, or from a
basesystem
tarball, unless absolutely necessary (see next paragraph). Nor should the iso
builder have to re-cast one of the tool-chain components in order to generate
the cache file for use. Rather, it should be taken from the already existing
@@ -33,11 +33,11 @@ had by grabbing files from the installwatch logs
(/var/state/sorcery?) and
rolling those into a tarball. (I believe devel sorcery handles this
situation.)

In the event that the host system does not have a build toolchain itself (an
-embedded system, for example, a system geared for security), then a
basesystem
-tarball will be needed. This will also be the case if cauldron is being run
-from a non-SMGL host system. However, for the intents and purposes of
Cauldron,
-that basesystem will then be considered the host system, so the same
discussion
-as above still applies.
+embedded system, for example, or a system geared for security), then a
+basesystem tarball will be needed. This may also be the case if cauldron is
+being run from a non-SMGL host system. However, for the intents and purposes
of
+Cauldron, that basesystem will then be considered the host system, so the
same
+discussion as above still applies.

Once the basic tool-chain tarball is generated/found/copied, it can be
unpacked
inside of the build directory. This, along with a copy of sorcery, should
diff --git a/HACKING b/HACKING
index cd5df4e..a0688a1 100644
--- a/HACKING
+++ b/HACKING
@@ -316,7 +316,7 @@ installers are just eye-candy on top of this one.)
*******************
These directories host any end-user executable front-ends which call
the functions in the various enchantment libraries. The primary front-end is
-enchantment, the shell installer.
+enchantment-shell, the shell installer.

**********************
* $installer/modules *
diff --git a/README b/README
index 2a0e841..daaae49 100644
--- a/README
+++ b/README
@@ -1,5 +1,9 @@
-This directory contains the *development* version of the ISO, installer, and
-general cauldron tools.
+This directory contains the *development* version of the following code
+projects:
+
+ cauldron (iso generation)
+ enchantment (installer library and interfaces)
+ ward (test framework)

If you would like to contribute to Cauldron development, please read HACKING
and API first. DESIGN will explain the general principles motivating how
@@ -7,4 +11,4 @@ Cauldron is set up and the general processes involved in
building an ISO and
installing from one.

If you are looking for an area that you can contribute to, feel free to read
-TODO, or ask around in #sourcemage-cauldron on irc.freenode.net.
+the ROADMAP, or ask around in #sourcemage-cauldron on irc.freenode.net.
diff --git a/cauldron/TODO b/cauldron/TODO
new file mode 100644
index 0000000..0b987fa
--- /dev/null
+++ b/cauldron/TODO
@@ -0,0 +1,75 @@
+CURRENT PROBLEMS/BUGS:
+ sys build fails
+ 1) libmpc
+ bug in INSTALL (symlink -s instead of symlink -sf)
+ fixed in test; fixed in stable v. ??? (forthcoming)
+ 2) util-linux
+ bug in PREPARE (erroneous and outdated query
concerning /dev/ttyN)
+ fixed in test; fixed in stable v. ??? (forthcoming)
+ 3) glibc
+ bugs all over the place, most notably in overwriting
+ the headers from the kernel
+ removing any/all code that forcibly installs kernel
+ headers fixes the problem
+ glibc ALSO seems to need --disable-werror in it's
BUILD
+ or it will fail in regex.c for an
uninitialized
+ variable
+ not fixed anywhere at present
+ Patching/correcting the spell files (either via loadable
+ patches or in-situ) fixes the problems and sys build then
+ succeeds
+ iso build fails
+ 1) net-tools
+ fails in PREPARE because of the warning that defaults
to bailing out
+ this is for (*really*) old setups that no one
+ should have anymore, especially not
+ newly-installed systems, so the warning
doesn't
+ apply and could be removed, or at least
default
+ to not bailing out
+ not fixed anywhere at present
+ not needed in the iso runtime due to using busybox
+ STILL NEEDED as an installable cache for other spells
+ 2) pciutils
+ completely unknown cause for failure in BUILD on first
+ run (perhaps a missing dependency?)
+ success on second cast with no change otherwise
+ NOT NEEDED ANYMORE THANKS TO USING lshw INSTEAD
+ 3) cryptsetup-luks source is missing (1.6.6)
+ no idea about cryptmount, but removed both from the
iso
+ spell lists (iso.caches and iso.spells) for the time
+ being
+
+convert spell list files to array vars
+ make a base/default CAULDRON_ISO_SOURCES=( ... ) in config/iso.conf
+ have an arch-specific arch/x86/iso.conf that defines
+ CAULDRON_ISO_SOURCES=( "${CAULDRON_ISO_SOURCES[@]}" ... ) to
+ add any arch-specific sources to the list
+ no more need for etc/<arch>/iso.sources and friends
+ the list can be modified either by editing the config file or by
+ setting env vars
+ do the same for both <iso> and <sys>
+
+clean up the directory structure usage
+ figure out what directories to use for what, when, and where to put
all
+ the "junk" temporary stuff needed for interim building/setting up of
+ toolchains and whatnot
+
+ currently, everything is kind of haphazardly dumped into
+ CAULDRON_BUILD, which is probably not where everything belongs.
Perhaps
+ use a CAULDRON_TMP/tmp? That seems a little redundant/silly, but might
+ work. Or CAULDRON_BUILD/tmp perhaps. I suppose ideally
CAULDRON_TMP/tmp
+ would be better, since a download of sorcery and/or grimoire should be
+ usable for build, sys, and iso, so it would be more logical to put it
+ in a common dir.
+
+need a metadata/tracking file (or dir of files)
+ when cauldron performs operations, we need to track what was
performed,
+ using what method, and when (at what time).
+
+ this will facilitate smart updates later, so we only need to check
when
+ the operation was done if it's the same op being requested, and update
+ if it's too old or if it's different from the op requested (switch to
+ the new op).
+
+ it is also needed for dependency resolution, so we can know if a given
+ dependency has been met or not
diff --git a/cauldron/bin/cauldron b/cauldron/bin/cauldron
index aeed2ae..ffa0f37 100755
--- a/cauldron/bin/cauldron
+++ b/cauldron/bin/cauldron
@@ -16,7 +16,7 @@
##
##=head1 COPYRIGHT
##
-## Copyright 2009 by the Cauldron Team
+## Copyright 2012 by the Cauldron Team
##
##=head1 FUNCTIONS
##
@@ -24,170 +24,1179 @@
##
#---------------------------------------------------------------------

-function help() {
+config="${CONFIG_FILE:-/etc/cauldron/cauldron.conf}"

- cat << EOF
+function check_fatal() {
+ local rc="${1:-$?}"

-Cauldron is the menu system used for setting options for iso building,
-and for managing installers.
+ if [[ "$rc" -ne "$ERR_OK" ]]
+ then
+ cauldron_chroot_cleanup
+ liberror_die $ERR_FATAL ""
+ fi
+}

-EOF
+#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+#$$$
+#$$ CORE FUNCTIONALITY
+#$$$
+#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

- exit 1
+#-------------------------------------------------------------------------------
+##
+## Help message displayed when the user inputs an incorrect/unknown command
or
+## requests help directly
+##
+#-------------------------------------------------------------------------------
+function help_iso() {
+ cat << EndUsage
+${0##*/} iso
+ runtime
+ (re-)builds and installs only the packages needed for the iso
runtime
+ caches
+ (re-)generates only the cache files for recommended install
+ build
+ builds needed packages (runtime+caches) and generates the initial
iso
+ filesystem directory using the built runtime+caches
+ sources
+ (re-)downloads sources needed for optional install
+ populate [type]
+ populate the iso directory with the packages from the build stage.
By
+ default, populates all types possible. Types are:
+
+ runtime
+ unpacks spell caches (built packages) into the isofs and
performs
+ post-processing
+ caches
+ copies spell caches (built packages) into the isofs
+ sources
+ copies spell sources (package sources) into the isofs
+ kernel
+ builds the iso kernel image (and modules, if any) and installs the
+ kernel into the iso for loading by the iso bootloader
+ purify
+ removes unnecessary files from the iso and does some basic sanity
+ checking
+ enchant
+ (re-)installs selected installer interfaces into the iso structure
+ ramfs
+ (re-)generates an initramfs for the iso
+ package
+ (re-)installs and sets up the iso bootloader, and generates the
+ finalized form of the installation media
+ update
+ updates the packages in an already existing iso build directory
+EndUsage
+}
+
+function help_sys() {
+ cat << EndUsage
+${0##*/} sys
+ build
+ builds the minimal set of packages needed for the target install
+ system (these are all _required_ packages)
+ populate
+ populate the sys directory with the packages from the build stage
+ purify
+ removes unnecessary files from the sys structure and does some
basic
+ sanity checking
+ package
+ archives and compresses the sys structure to be included in the
root
+ of the iso structure
+ update
+ updates the packages in an already existing sys build directory
+EndUsage
+}
+
+function help_toolchain() {
+ cat << EndUsage
+${0##*/} toolchain
+ chroot [CHROOT]
+ uses an already prepared chroot toolchain. If CHROOT is a regular
+ file, then it is assumed to be a (possibly compressed) archive
file,
+ and is first unpacked. If CHROOT is a directory, it is assumed to
be
+ an already functional chroot. Otherwise it is assumed to be a url
from
+ which to download a chroot archive file, which will then be
unpacked.
+ If CHROOT isn't given, it will use the definition of environment
+ variable CAULDRON_BASEROOT (i.e. from the config files).
+ build
+ creates an initial toolchain by casting spells inside a prepared
+ chroot
+ cross
+ create an initial cross-building toolchain inside a prepared chroot
+ prepare
+ prepares an existing toolchain chroot with necessary cauldron and
+ sorcery settings, as well as setting up the kernel and kernel
sources
+EndUsage
+}
+
+function help_what() {
+ cat << EndUsage
+${0##*/} is a front-end to libcauldron, a collection of script functions for
+generating initial system objects (ISOs). At their simplest, ISOs are just
built
+system chroots which can be packaged into different image formats for
+initializing a system, but they are typically installable media such as cdrom
+iso9660 filesystem images or usb key images. They can also be live images,
such
+as a live cd or live usb, a virtual machine image, or even a plain tar
archive.
+EndUsage
+}
+
+function help_main() {
+ local subhelp
+
+ if [[ "$#" -ge 1 ]]
+ then
+ eval help_"$1"
+ return $?
+ fi
+
+ cat << EndUsage
+Usage: ${0##*/} [-h | --help] [-v | --version] [-f FILE | --config FILE]
+ [COMMAND [SUBCOMMAND ...]]
+OPTIONS
+ -f FILE
+ --config FILE
+ use config file FILE, overriding any value of the CONFIG_FILE
+ env var
+ -h
+ --help
+ displays the present help/usage information
+ -v
+ --version
+ displays the current version of ${0##*/}
+
+MAIN COMMANDS
+ brew
+ performs all needed steps to generate installation media from
+ start to finish using values from the cauldron config file
+ config VARIABLE [ VARIABLE2 [ VARIABLE 3 ... ] ]
+ show the value of enchantment environment variable VARIABLE for
each
+ variable name passed as arguments (defaults to all cauldron
variables)
+ chroot [COMMAND]
+ runs COMMAND in a chroot in the CAULDRON_BUILD for manual
+ testing/processing (runs a shell by default)
+ if no COMMAND is given, it will drop to a chroot shell
+ cleanse
+ cleans up any temp/build directories from the host system
+ help [COMMAND]
+ displays help/usage information
+ iso [SUBCOMMAND]
+ commands to generate iso material (see ${0##*/} help iso for
+ more information)
+ if no SUBCOMMAND is given, a default run will be attempted
+ shell
+ invoke a cauldron command subshell
+ sys [SUBCOMMAND]
+ commands to generate sys material (see ${0##*/} help sys for
+ more information)
+ if no SUBCOMMAND is given, a default run will be attempted
+ toolchain [SUBCOMMAND]
+ commands to generate a build toolchain (see ${0##*/} help toolchain
+ for more information).
+ if no SUBCOMMAND is given, a default run will be attempted
+ version
+ displays current version information
+ what
+ displays a description on what ${0##*/} is and what it is used
+ for
+EndUsage
}


#-------------------------------------------------------------------------------
##
-## The brew command calls the necessary functions to generate a complete ISO
-## using the settings configured for cauldron.
+## Builds the host toolchain, which can either be used directly (when
building
+## for a target which is the same architecture as the host), or can be used
to
+## generate an intermediary cross-compiler.
+##
+#-------------------------------------------------------------------------------
+# set up a tool-chain that matches the arch of the host system
+function build_toolchain_host() {
+ cauldron_toolchain_cache_make
+ liberror_check || return $?
+ cauldron_toolchain_build_host
+ liberror_check
+}
+
+#-------------------------------------------------------------------------------
+##
+## Uses a host compiler to generate an intermediary cross-compiler, for
building
+## targets which are a different architecture than the host.
+##
+#-------------------------------------------------------------------------------
+# set up cross-compile tool-chain
+function build_toolchain_cross() {
+ cauldron_toolchain_cross
+ liberror_check
+}
+
+#-------------------------------------------------------------------------------
+##
+## Generates a build toolchain used to create the necessary spell caches
used in
+## both the sys and iso directory structures. This will build or unpack host
+## and/or cross-compiler toolchains as directed/necessary.
##

#-------------------------------------------------------------------------------
-function cauldron_brew () {
- # set up basic tool-chain needed for building everything else.
- cauldron_base_toolchain
- liberror_check_fatal_error
+# set up a basic toolchain needed for building everything else (iso, system)
+function toolchain() {
+ cauldron_chroot_init "$CAULDRON_BUILD"
+ liberror_check || return $?

- # set up chroot for building inside $CAULDRON_BUILD
- cauldron_chroot_init
- liberror_check_fatal_error
+ # build the initial toolchain
+ build_toolchain_host
+ liberror_check || return $?

- # build the cross-compile tool-chain targeted for the target sys
- if [ "$CAULDRON_ARCH" != "$CAULDRON_HOST_ARCH" ]
+ # if the iso arch doesn't match the host arch,
+ # build a cross toolchain
+ if [[ "$CAULDRON_ARCH" != "$CAULDRON_HOST_ARCH" ]]
then
- cauldron_chroot cauldron_cross_toolchain
- liberror_check_fatal_error
+ build_toolchain_cross
+ liberror_check || return $?
fi

- # use the cross-compile tool-chain to cast all spells needed for
- # the iso system
- cauldron_chroot cauldron_build_iso_system "$CAULDRON_SPELLS"
- liberror_check_fatal_error
+ cauldron_chroot_done "$CAULDRON_BUILD"
+ liberror_check
+}
+
+#-------------------------------------------------------------------------------
+##
+## Builds cache files for all spells passed as parameters
+##
+## The caches should not have runtime build dependencies (where a dependency
is
+## pulled into the build if present in the filesystem, even if we request the
+## package not to use it), so it should be safe to do a mass build followed
by a
+## mass dispel. If this functionality proves unsafe in the future, then
+## cauldron_chroot_cast && cauldron_chroot_dispel should be replaced by
+## cauldron_chroot_cast_clean.
+##
+#-------------------------------------------------------------------------------
+function build_spells() {
+ local spells=( "$@" )
+
+ [[ -f "$spells" ]] && spells=( $(< "$spells") )
+
+ # remove spells from the list if their caches already exist
+ local count="${#spells[@]}"
+ for ((i=0; i < count ; i++))
+ do
+ local spell="${spells[i]}"
+ if cauldron_sorcerous_spell_cache "$spell" &> "$CAULDRON_NULL"
+ then
+ unset spells[i]
+ fi
+ done

- # configure the iso init system, initrd/initramfs, etc.
- cauldron_chroot cauldron_iso_init
- liberror_check_fatal_error
+ # leave if nothing to process
+ [[ "${#spells[@]}" -lt 1 ]] && return $ERR_OK

- # build/create/copy/whatever installer system/data into the iso
- for installer in $(cat "$CAULDRON_SPELLS")
+ cauldron_chroot_init "$CAULDRON_BUILD"
+ liberror_check || return $?
+
+ # cast spells needed for iso, then dispel them, leaving the caches
+ cauldron_chroot_cast "${spells[@]}"
+ liberror_check || return $?
+
+ cauldron_chroot_dispel "${spells[@]}"
+ liberror_check || return $?
+
+ cauldron_chroot_done "$CAULDRON_BUILD"
+ liberror_check
+}
+
+#-------------------------------------------------------------------------------
+##
+## Builds cache files for all required sys spells (compiler toolchain, bash,
+## etc. -- essentially the basesystem profile)
+##
+#-------------------------------------------------------------------------------
+function build_sys() {
+ # cast spells needed for sys, then dispel them, leaving the caches
+ build_spells "${CAULDRON_SYS_SPELLS[@]}"
+ liberror_check || return $?
+}
+
+#-------------------------------------------------------------------------------
+##
+## Populates the sys directory using the spell caches and sources from the
build
+## stage.
+##
+#-------------------------------------------------------------------------------
+function populate_sys() {
+ cauldron_populate_sys
+ liberror_check
+}
+
+#-------------------------------------------------------------------------------
+##
+## Cleans out any leftover files/dirs that aren't really needed to slim down
the
+## final packaged iso as much as possible. Also runs sanity/security/QA
checks on
+## the relevant files.
+##
+#-------------------------------------------------------------------------------
+function purify_sys() {
+ local target="$CAULDRON_SYS"
+
+ # we'll be cleaning the sys filesystem, so chroots are relative to the sys
+ # filespace
+ cauldron_chroot_init "$target"
+ liberror_check || return $?
+
+ # remove unnecessary files from sys and free up space
+ # this needs to have error-checking added in later
+ # only process cleaner files specifically for the sys filesystem
+ for cleaner in "$CAULDRON_DATA/cleaners/sys/"*
do
- cauldron_chroot cauldron_add_installer "${installer##*/}"
+ cauldron_clean_fs "$cleaner" "$target"
+ liberror_check || return $?
done
- liberror_check_fatal_error
+
+ # ensure a clean, fresh sorcery install in sys
+ cauldron_sorcerous_download "$target/var/spool/sorcery"
+ liberror_check || return $?
+
+ # clean any existing sorcery instances from sys
+ cauldron_sorcerous_clean "$target"
+ liberror_check || return $?
+
+ # add a working sorcery local config, which includes CAULDRON_SORCERY_ARCH
+ cauldron_sorcerous_sys_defaults
+ liberror_check || return $?
+
+ # install sorcery into the sys dir
+ cauldron_sorcerous_install "$target" "/var/spool/sorcery"
+ liberror_check || return $?
+
+ # set and install grimoires into the sys dir
+ cauldron_sorcerous_set_grimoires "$target"
+ liberror_check || return $?
+ cauldron_sorcerous_update_grimoires "$target"
+ liberror_check || return $?
+
+ # finished chrooting to the sys filespace
+ cauldron_chroot_done "$target"
+ liberror_check
+}
+
+#-------------------------------------------------------------------------------
+##
+## Creates the finalized form of the installation system, which is typically
a
+## compressed archive file containing the content of the sys directory
+## structure.
+##
+#-------------------------------------------------------------------------------
+function package_sys() {
+ # create the compressed sys archive from the build dir
+ cauldron_package_sys
+ liberror_check
+}
+
+#-------------------------------------------------------------------------------
+##
+## Builds cache files for all installable iso spells (the spell caches to
+## install to the target system when using the iso).
+##
+#-------------------------------------------------------------------------------
+function build_iso_caches() {
+ # cast spells needed for iso, then dispel them, leaving the caches
+ build_spells "${CAULDRON_ISO_CACHES[@]}"
+ liberror_check || return $?
+}
+
+#-------------------------------------------------------------------------------
+##
+## Builds cache files for all iso runtime spells (the spell caches that will
+## create the actual iso runtime environment, which is what boots when one
boots
+## the iso).
+##
+#-------------------------------------------------------------------------------
+function build_iso_runtime() {
+ # cast spells needed for iso, then dispel them, leaving the caches
+ build_spells "${CAULDRON_ISO_RUNTIME[@]}"
+ liberror_check || return $?
+}
+
+#-------------------------------------------------------------------------------
+##
+## Builds cache files for any spells/packages necessary for packaging the
iso,
+## such as bootloaders, iso filesystem tools, etc.
+##
+#-------------------------------------------------------------------------------
+function build_iso_packagers() {
+ build_spells "${CAULDRON_ISO_PACKAGE[@]}"
+ liberror_check || return $?
+}
+
+#-------------------------------------------------------------------------------
+##
+## Builds cache files for all required iso spells (the iso runtime, as well
as
+## recommended install caches), then builds all spells needed for packaging
the
+## iso fs (bootloaders, filesystem utilities, etc.).
+##
+#-------------------------------------------------------------------------------
+function build_iso() {
+ case "$1" in
+ runtime )
+ build_iso_runtime
+ liberror_check
+ return $?
+ ;;
+ caches )
+ build_iso_caches
+ liberror_check
+ return $?
+ ;;
+ packagers )
+ build_iso_packagers
+ liberror_check
+ return $?
+ ;;
+ esac
+
+ build_iso_runtime
+ liberror_check || return $?
+
+ build_iso_caches
+ liberror_check || return $?
+
+ build_iso_packagers
+ liberror_check || return $?
+}
+
+#-------------------------------------------------------------------------------
+##
+## Populates the iso directory using the spell caches and sources from the
build
+## stage.
+##
+#-------------------------------------------------------------------------------
+function populate_iso() {
+ case "$1" in
+ runtime)
+ cauldron_iso_install_runtime
+ liberror_check
+ return $?
+ ;;
+ caches)
+ cauldron_iso_install_caches
+ liberror_check
+ return $?
+ ;;
+ sources)
+ cauldron_iso_install_sources
+ liberror_check
+ return $?
+ ;;
+ esac
+
+ cauldron_iso_install_runtime
+ liberror_check || return $?
+
+ cauldron_iso_install_caches
+ liberror_check || return $?
+
+ cauldron_iso_install_sources
+ liberror_check || return $?
+}
+
+#-------------------------------------------------------------------------------
+##
+## Builds the kernel image (and modules, if any) to be used in the iso
runtime
+## and sets it up in the iso for loading by the iso bootloader.
+##
+#-------------------------------------------------------------------------------
+function iso_kernel() {
+ cauldron_iso_kernel
+ liberror_check
+}
+
+#-------------------------------------------------------------------------------
+##
+## Generates the initramfs to be used to boot the installation media.
Depending
+## on the purpose of the final installation media, this may not actually be
+## required (for example, if one were to generate installation media to be
run
+## directly from the hard disk, such as if the install content were on a
+## separate partitition from the target of the install).
+##
+#-------------------------------------------------------------------------------
+function iso_ramfs() {
+ cauldron_init_ramfs_make
+ liberror_check || return $?
+
+ cauldron_init_ramfs_install
+ liberror_check
+}
+
+#-------------------------------------------------------------------------------
+##
+## Installs the selected installers into their appropriate locations in the
iso
+## directory structure.
+##
+#-------------------------------------------------------------------------------
+# enchant the iso with the selected installers
+function enchant_iso() {
+ # build/create/copy/whatever installer system/data into the iso
+ cauldron_enchant
+ liberror_check
+}
+
+#-------------------------------------------------------------------------------
+##
+## Cleans out any leftover files/dirs that aren't really needed to slim down
the
+## final packaged iso as much as possible. Also runs sanity/security/QA
checks on
+## the relevant files.
+##
+#-------------------------------------------------------------------------------
+function purify_iso() {
+ local target="$CAULDRON_ISO"
+
+ # alter the target if a compressed fs is desired
+ [[ "$CAULDRON_ISO_SQUASH" == "yes" ]] &&
+ target="$CAULDRON_ISO_SQUASHFS"
+
+ # we'll be cleaning the iso filesystem, so chroots are relative to the iso
+ # filespace
+ cauldron_chroot_init "$target"
+ liberror_check || return $?

# remove unnecessary files from iso and free up space
# this needs to have error-checking added in later
- for cleaner in "$CAULDRON_BASE/cleaners"/* ;
+ # only process cleaner files specifically for the iso filesystem
+ for cleaner in "$CAULDRON_DATA/cleaners/iso/"*
do
- cp "$cleaner" "$CAULDRON_BUILD/"
- cauldron_chroot cauldron_clean_iso_system "/${cleaner##*/}"
- cauldron_chroot rm "/${cleaner##*/}"
+ # TODO: add cleaner file(s) for wiping out usr/include/* and other such
+ # "nonsense", *unless* building a live iso in which case /usr/include
may be
+ # needed (unless unpacking system.tar.xz over the iso during runtime)
+ cauldron_clean_fs "$cleaner" "$target"
+ liberror_check || return $?
done
- liberror_check_fatal_error

- # finished with iso building, clean up from chroot setup
- cauldron_chroot_done
- liberror_check_fatal_error
+ if [[ "$CAULDRON_ISO_WIPE_SORCERY" == "yes" ]]
+ then
+ cauldron_sorcerous_clean "$target"
+ liberror_check || return $?
+ fi
+
+ # finished chrooting to the iso filespace
+ cauldron_chroot_done "$target"
+ liberror_check
+}
+
+#-------------------------------------------------------------------------------
+##
+## Installs sorcery to the iso runtime. This is useful if you want to make a
+## live iso instead of one purely for installing.
+##
+#-------------------------------------------------------------------------------
+function iso_sorcery() {
+ local target="$CAULDRON_ISO"
+
+ # alter the target if a compressed fs is desired
+ [[ "$CAULDRON_ISO_SQUASH" == "yes" ]] &&
+ target="$CAULDRON_ISO_SQUASHFS"
+
+ cauldron_chroot_init "$target"
+ liberror_check || return $?
+ cauldron_sorcerous_download "$target" "/var/spool/sorcery"
+ liberror_check || return $?
+ cauldron_sorcerous_clean "$target"
+ liberror_check || return $?
+ cauldron_sorcerous_install "$target" "/var/spool/sorcery"
+ liberror_check || return $?
+ cauldron_sorcerous_set_grimoires "$target"
+ liberror_check || return $?
+ cauldron_sorcerous_update_grimoires "$target"
+ liberror_check || return $?
+ cauldron_chroot_done "$target"
+ liberror_check
+}
+
+#-------------------------------------------------------------------------------
+##
+## Creates the finalized form of the installation media, which is typically a
+## compressed iso9660 file containing the content of the iso directory
+## structure.
+##
+#-------------------------------------------------------------------------------
+function package_iso() {
+ cauldron_chroot_init "$CAULDRON_BUILD"
+ liberror_check || return $?
+
+ # cast spells needed for iso, then dispel them, leaving the caches
+ cauldron_chroot_cast "${CAULDRON_ISO_PACKAGE[@]}"
+ liberror_check || return $?
+
+ cauldron_chroot_done "$CAULDRON_BUILD"
+ liberror_check || return $?
+
+ # create a compressed filesystem of the iso runtime if desired
+ if [[ "$CAULDRON_ISO_SQUASH" == "yes" ]]
+ then
+ cauldron_iso_compressedfs
+ liberror_check || return $?
+ fi

# create the iso fs from the build dir
- cauldron_mkisofs
- liberror_check_fatal_error
-}
-
-function cauldron_modify_local_config() {
-}
-
-function cauldron_menu_main() {
- local CAULDRON_B_HELP="Build directory location"
- local CAULDRON_OK="Select"
- local CAULDRON_CANCEL="Exit"
-
- while
- CAULDRON_COMMAND=$(eval ${DIALOG} ' --title "Main Menu" \
- --item-help \
- --ok-label \
- "${CAULDRON_OK}" \
- --cancel-label \
- "${CAULDRON_CANCEL}" \
- --menu \
- "Cauldron Version \
- ${CAULDRON_VERSION}" \
- 0 0 0 \
- "B" "Build Menu" \
- "${CAULDRON_B_HELP}"' )
+ cauldron_package_iso
+ liberror_check || return $?
+
+ cauldron_chroot_init "$CAULDRON_BUILD"
+ liberror_check || return $?
+
+ # dispel the cast spells, but leave the caches
+ cauldron_chroot_dispel "${CAULDRON_ISO_PACKAGE[@]}"
+ liberror_check || return $?
+
+ cauldron_chroot_done "$CAULDRON_BUILD"
+ liberror_check || return $?
+}
+
+#-------------------------------------------------------------------------------
+##
+## Cleans up all temporary files/etc. after finishing the production of an
iso.
+##
+#-------------------------------------------------------------------------------
+function cleanse() {
+ cauldron_cleanup
+ liberror_check
+}
+
+#-------------------------------------------------------------------------------
+##
+## The brew command calls the necessary functions to generate a complete iso
+## using the settings configured for cauldron.
+##
+#-------------------------------------------------------------------------------
+function brew() {
+ process_toolchain
+ liberror_check || return $?
+ process_sys
+ liberror_check || return $?
+ process_iso
+ liberror_check || return $?
+ cleanse
+ liberror_check
+}
+
+function update_sys_caches() {
+:
+}
+
+function update_sys() {
+:
+}
+
+function update_iso_caches() {
+:
+}
+
+function update_ramfs() {
+:
+}
+
+function update_iso() {
+:
+}
+
+#-------------------------------------------------------------------------------
+##
+## The shell command provides a dedicated command subshell where each input
+## "command" is run as a subcommand to the cauldron command. I.e., inputting
+## "help" results in "cauldron help" being called. The only commands that are
+## not run as a cauldron subcommands are "exit" and "quit", which are used to
+## exit the command shell.
+##
+#-------------------------------------------------------------------------------
+function command_shell() {
+ local path="${0%/*}"
+ local cmd="${0##*/}"
+ local prefix="$USER@cauldron"
+ local suffix="> "
+ local input=""
+
+ [[ -n "$path" ]] && PATH="$path:$PATH"
+
+ function reload() {
+ # load main config file - required
+ source "$config" || exit 1
+
+ # load the main cauldron library, which loads needed sub-libraries
+ source "$CAULDRON_LIBS/libcauldron" || exit 1
+ }
+
+ #while [[ "$input" != "exit" && "$input" != "quit" ]]
+ while read -e -p "$prefix $PWD $suffix" -r input
do
- case ${CAULDRON_COMMAND} in
- B) cauldron_menu_build;;
- esac
+ [[ "$input" == "exit" || "$input" == "quit" ]] && break
+
+ if [[ -n "$input" ]]
+ then
+ local escaped="${input#$CAULDRON_SHELL_ESCAPE}"
+ if [[ "$input" != "$escaped" ]]
+ then
+ # attempt running the command through the regular shell
+ $escaped
+ input=""
+ continue
+ fi
+
+ if ! get_command -t "$input"
+ then
+ # attempt to run the command through the regular shell as a backup
+ $input
+ input=""
+ continue
+ fi
+
+ # run the command in a subshell in order to catch fatal errors
+ (run_command $input)
+ fi
+ #read -e -p "$prefix $PWD $suffix" -r input
done
}

-function cauldron_menu_build() {
- local CAULDRON_OK="Commit"
- local CAULDRON_CANCEL="Cancel"
+#-------------------------------------------------------------------------------
+## @param -t flag (optional)
+## @param command_name to test
+##
+## Tests whether the given command name matches an existing
sub-command/function
+## that can be run. Returns true if the command exists, false otherwise. If
the
+## flag -t is not present, then it also returns (via echo) the name of the
real
+## command, mapped from the passed in simple command name.
+##
+#-------------------------------------------------------------------------------
+function get_command() {
+ local output="yes"
+
+ if [[ "$1" == "-t" ]]
+ then
+ output=""
+ shift
+ fi
+
+ local name="${1%% *}"
+ local cmd="process_$name"
+
+ if [[ -z "$name" ]]
+ then
+ return 1
+ fi
+
+ if ! declare -lF "$cmd"
+ then
+ return 1
+ fi
+
+ if [[ "$output" == "yes" ]]
+ then
+ echo "$cmd"
+ fi
+
+ return 0
+}
+
+#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+#$$$
+#$$ TEST FUNCTIONS
+#$$$
+#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+function test_init() {
+ [[ -d "$CAULDRON_BUILD" ]] || return 1
+
+ return 0
+}
+
+function test_toolchain() {
+ return 0
+}
+
+function test_build_sys_caches() {
+ return 0
+}
+
+function test_build_iso_caches() {
+ return 0
+}
+
+function test_build_sys() {
+ return 0
+}
+
+function test_build_iso() {
+ return 0
+}
+
+function test_ramfs() {
+ [[ -f "$CAULDRON_ISO/boot/initrd.gz" ]] || return 1
+
+ return 0
+}
+
+function test_enchant() {
+ return 0
+}
+
+function test_purify_sys() {
+ return 0
+}
+
+function test_purify_iso() {
+ return 0
+}

- if CAULDRON_BUILD=$(eval ${DIALOG} ' --ok-label \
- ${CAULDRON_OK} \
- --cancel-label ${CAULDRON_CANCEL} \
- --input-menu \
- "Enter the path to the dir where \
- Cauldron should build your ISOs." \
- 0 0 \
- ${CAULDRON_BUILD}' )
+function test_package_iso() {
+ ls "$CAULDRON_TMP/$CAULDRON_ISO_NAME".* &> "$CAULDRON_NULL" || return 1
+
+ return 0
+}
+
+function test_cleanse() {
+ [[ -d "$CAULDRON_TMP" ]] && return 1
+
+ return 0
+}
+
+
+#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+#$$$
+#$$ INPUT PROCESSING
+#$$$
+#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+
+function process_toolchain() {
+ local methods=( "${CAULDRON_TOOLCHAIN_METHODS[@]}" )
+ local call="$1"
+ local rc=
+
+ # drop the first arg, it's saved in the call variable
+ shift
+
+ # a specific command was passed, so only process what is being requested
+ if [[ "$methods" == *"$call"* ]]
then
- cauldron_modify_local_config "CAULDRON_BUILD" "${CAULDRON_BUILD}"
+ methods=( "${methods[@]#$call}" )
fi
+
+ # always push explicit method requests to the front of the list
+ methods=( "$call" "${methods[@]}" )
+
+ for method in ${methods[@]}
+ do
+ case "$method" in
+ chroot )
+ cauldron_verbose "Attempting toolchain method: $method ..."
+ cauldron_toolchain_baseroot "$@"
+ rc=$?
+ ;;
+ build )
+ cauldron_verbose "Attempting toolchain method: $method ..."
+ build_toolchain_host
+ rc=$?
+ ;;
+ cross )
+ cauldron_verbose "Attempting toolchain method: $method ..."
+ build_toolchain_cross
+ rc=$?
+ ;;
+ prepare )
+ # prepare is always run after all toolchain steps, so this command
can
+ # be done as a no-op and just fall through to the prepare call at the
+ # end
+ true
+ rc=$?
+ break
+ ;;
+ * )
+ help_toolchain
+ cauldron_chroot_cleanup
+ exit 1
+ ;;
+ esac
+ if [[ "$CAULDRON_VERBOSE" == "yes" ]]
+ then
+ liberror_check "$rc" "" || break
+ else
+ [[ "$rc" -eq $ERR_OK ]] || break
+ fi
+ done
+ check_fatal "$rc"
+
+ # ensure that our new toolchain is properly configured for cauldron work
+ cauldron_prepare
+ check_fatal
}

-function cauldron_main() {
- if [[ -z "$1" ]]
+function process_sys() {
+ # a specific command was passed, so only process what is being requested
+ if [[ $# -ge 1 ]]
then
- cauldron_menu_main
- else
case $1 in
- -b|--brew|brew) cauldron_brew ;;
- -h|--help|help) help ;;
- *) help ;;
+ build )
+ build_sys
+ ;;
+ populate )
+ populate_sys
+ ;;
+ purify )
+ purify_sys
+ ;;
+ package )
+ package_sys
+ ;;
+ update )
+ update_sys
+ ;;
+ * )
+ help_sys
+ exit 1
+ ;;
esac
+ check_fatal
+
+ return
fi
+
+ # no argument passed, so run the whole (default) gambit
+ build_sys
+ check_fatal
+ populate_sys
+ check_fatal
+ purify_sys
+ check_fatal
+ package_sys
+ check_fatal
}

-# load main config file - required
-. /etc/cauldron/config || exit 1
+function process_iso() {
+ # a specific command was passed, so only process what is being requested
+ if [[ $# -ge 1 ]]
+ then
+ case "$1" in
+ build )
+ shift
+ build_iso "$@"
+ ;;
+ populate )
+ shift
+ populate_iso "$@"
+ ;;
+ purify )
+ purify_iso
+ ;;
+ kernel )
+ iso_kernel
+ ;;
+ ramfs )
+ iso_ramfs
+ ;;
+ enchant )
+ enchant_iso
+ ;;
+ package )
+ package_iso
+ ;;
+ update )
+ update_iso
+ ;;
+ sorcery )
+ iso_sorcery
+ ;;
+ * )
+ help_iso
+ exit 1
+ ;;
+ esac
+ check_fatal

-# load secondary (custom config file) - required if present
-if [[ -e /etc/cauldron/local/config ]]
-then
- . /etc/cauldron/local/config || exit 1
-fi
+ return
+ fi

-# load the main cauldron library
-. "$CAULDRON_LIBS"/libcauldron || exit 1
+ # no argument passed, so run the whole gambit
+ build_iso
+ check_fatal
+ populate_iso
+ check_fatal
+ iso_kernel
+ check_fatal
+ purify_iso
+ check_fatal
+ iso_ramfs
+ check_fatal
+ enchant_iso
+ check_fatal
+ package_iso
+ check_fatal
+}

-if [[ $UID == 0 ]]
-then
- DIALOG='$DIALOG_PROG \
- --backtitle \
- "Cauldron ISO builder and installer management utility" \
- --stdout'
-
- CAULDRON_VERSION=$(cat /etc/cauldron/version)
- cauldron_main "$@"
- CAULDRON_STATUS="$?"
- exit ${CAULDRON_STATUS}
-else
- if [[ $1 == -h ]] || [[ $1 == --help ]] || [[ $1 == help ]]
- then
- cauldron_help
- elif [[ $1 == -v ]] || [[ $1 == --version ]] || [[ $1 == version ]]
- then
- echo $(cat /etc/cauldron/version)
+function process_enchant() {
+ enchant
+ check_fatal
+}
+
+function process_brew() {
+ brew
+ check_fatal
+}
+
+function process_cleanse() {
+ cleanse
+ check_fatal
+}
+
+function process_help() {
+ help_main "$@"
+ return "$?"
+}
+
+function process_what() {
+ help_what
+ return "$?"
+}
+
+function process_config() {
+ local list="$@"
+ local var=
+ local value=
+ local llist=
+
+ [[ "$#" -eq 0 ]] && list=( ${!CAULDRON_*} )
+
+ for var in "${list[@]}"
+ do
+ # check for user-desired globbing
+ if [[ "${var%\*}" != "$var" ]]
+ then
+ eval llist=( \${!${var}} )
+ for i in "${llist[@]}"
+ do
+ value=$(cauldron_get_variable "$var")
+ liberror_check || return $?
+
+ libcolor_msg notice "$var: $(libcolor_info $value)"
+ done
+ else
+ value=$(cauldron_get_variable "$var")
+ liberror_check || return $?
+
+ libcolor_msg notice "$var: $(libcolor_info $value)"
+ fi
+ done | "${CAULDRON_CMD_PAGER[@]}" || return $ERR_OUTPUT
+
+ return $ERR_OK
+}
+
+function process_version() {
+ local version="${VERSION_FILE:-/etc/cauldron/version}"
+ if [[ -r "$version" ]]
+ then
+ cat "$version"
+ return "$?"
+ else
+ echo "$version not accessible (cauldron not installed to the system?)"
+ return 1
+ fi
+}
+
+function process_chroot() {
+ local target="$CAULDRON_BUILD"
+
+ if [[ "$1" == "-d" ]]
+ then
+ target="$2"
+ shift 2
+ fi
+
+ cauldron_chroot_init "$target"
+ check_fatal
+ cauldron_chroot "$@"
+ check_fatal
+ cauldron_chroot_done "$target"
+ check_fatal
+}
+
+function process_shell() {
+ if [[ "$CAULDRON_SHELL" -eq 1 ]]
+ then
+ echo "cauldron shell already running"
+ return
+ fi
+
+ local CAULDRON_SHELL=1
+ command_shell "$@"
+}
+
+function run_command() {
+ local cmdname="${1:-help}"
+ local cmd=$(get_command "$cmdname")
+ shift
+ if [[ -n "$cmd" ]]
+ then
+ "$cmd" "$@"
else
- echo "Please enter the root password."
- CAULDRON_PARAMS=$@
- su -c "$0 ${CAULDRON_PARAMS}" root
+ echo "command not recognized: $cmd"
+ return 1
fi
+}
+
+#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+#$$$
+#$$ MAIN EXECUTION
+#$$$
+#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+
+# process options first
+while [[ "$1" == -* ]]
+do
+ case "$1" in
+ -f | --config )
+ CONFIG_FILE="$2"
+ config="$2"
+ shift 2
+ ;;
+ -h | --help )
+ shift
+ process_help "$@"
+ ;;
+ -v | --version )
+ shift
+ process_version
+ ;;
+ -- )
+ break
+ ;;
+ * )
+ shift
+ ;;
+ esac
+done
+
+[[ "$1" == "help" ]] && shift && process_help "$@"
+[[ "$1" == "version" ]] && shift && process_version "$@"
+
+if [[ ! -r "$config" ]]
+then
+ echo "could not access config file: $config" >&2
+ echo "please create a config file for cauldron" >&2
+ echo "the default config file can be overridden by setting and exporting
the"\
+ "environment variable CONFIG_FILE" >&2
+ exit 1
fi

+# load main config file - required
+source "$config" || exit 1
+
+# load the main cauldron library, which loads needed sub-libraries
+source "$CAULDRON_LIBS/libcauldron" || exit 1
+
+#if [[ "$UID" != "$(id -u $CAULDRON_USER)" && "$1" != "help" ]]
+#then
+# echo "Please enter the password for $CAULDRON_USER."
+# CAULDRON_PARAMS="$@"
+# su -c "$0 $CAULDRON_PARAMS" "$CAULDRON_USER"
+#fi
+
+trap 'check_fatal' "${CAULDRON_TRAP_SIGNALS[@]}"
+
+run_command "$@"
+exit "$?"
+
#---------------------------------------------------------------------
##=back
##
diff --git a/cauldron/config/arch/host_arch.conf
b/cauldron/config/arch/host_arch.conf
new file mode 100644
index 0000000..e92e843
--- /dev/null
+++ b/cauldron/config/arch/host_arch.conf
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# contains the arch info for the HOST
+CAULDRON_HOST_TRIPLE="${CAULDRON_HOST_TRIPLE:-}"
+
+CAULDRON_HOST_ARCH_PATH=$(grep 'ARCH_SPECS=' "$CAULDRON_HSORCERY_CONFIG" |
cut -d= -f2-)
+
+CAULDRON_HOST_CACHE_PATH="${CAULDRON_HOST_CACHE_PATH:-/var/cache/sorcery}"
+
+eval CAULDRON_HOST_ARCH=$(grep 'ARCHITECTURE=' "$CAULDRON_HSORCERY_CONFIG" |
cut -d= -f2-)
+
+eval CAULDRON_CACHE_EXTENSION=$(grep 'EXTENSION='
"$CAULDRON_HSORCERY_CONFIG" | cut -d= -f2-)
+
+
+# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
diff --git a/cauldron/config/arch/ppc.conf b/cauldron/config/arch/ppc.conf
new file mode 100644
index 0000000..17325cd
--- /dev/null
+++ b/cauldron/config/arch/ppc.conf
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# the arch to generate the .iso for
+CAULDRON_ARCH="${CAULDRON_ARCH:-ppc}"
+
+# the arch/cpu name to pass to sorcery
+# must conform to values from the smgl-archspecs spell
+CAULDRON_SORCERY_ARCH="${CAULDRON_SORCERY_ARCH:-g4}"
+
diff --git a/cauldron/config/arch/x86.conf b/cauldron/config/arch/x86.conf
new file mode 100644
index 0000000..893c5e7
--- /dev/null
+++ b/cauldron/config/arch/x86.conf
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# the arch to generate the .iso for
+CAULDRON_ARCH="${CAULDRON_ARCH:-x86}"
+
+# the arch/cpu name to pass to sorcery
+# must conform to values from the smgl-archspecs spell
+CAULDRON_SORCERY_ARCH="${CAULDRON_SORCERY_ARCH:-i486}"
+
diff --git a/cauldron/config/arch/x86_64.conf
b/cauldron/config/arch/x86_64.conf
new file mode 100644
index 0000000..694a5cd
--- /dev/null
+++ b/cauldron/config/arch/x86_64.conf
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# the arch to generate the .iso for
+CAULDRON_ARCH="${CAULDRON_ARCH:-x86_64}"
+
+# the arch/cpu name to pass to sorcery
+# must conform to values from the smgl-archspecs spell
+CAULDRON_SORCERY_ARCH="${CAULDRON_SORCERY_ARCH:-x86_64}"
+
diff --git a/cauldron/config/build.conf b/cauldron/config/build.conf
new file mode 100644
index 0000000..f45bcb8
--- /dev/null
+++ b/cauldron/config/build.conf
@@ -0,0 +1,137 @@
+#!/bin/bash
+
+# path to the build chroots
+: "${CAULDRON_BUILD:=$CAULDRON_TMP/build}"
+
+# list of standard directories to require in chroots
+[[ -n "$CAULDRON_FHS_DIRS" ]] ||
+ CAULDRON_FHS_DIRS=(
+ dev/pts proc sys bin sbin mnt opt root tmp boot \
+ etc/network etc/sysconfig \
+ lib/modules \
+ usr/bin usr/include usr/lib usr/sbin usr/src \
+ usr/local/bin usr/local/include usr/local/lib \
+ usr/local/man usr/local/sbin usr/local/share \
+ usr/local/src \
+ usr/share/dict usr/share/doc usr/share/info \
+ usr/share/locale usr/share/misc usr/share/nls \
+ usr/share/terminfo usr/share/tmac usr/share/zoneinfo \
+ usr/share/man/1 usr/share/man/2 usr/share/man/3 \
+ usr/share/man/4 usr/share/man/5 usr/share/man/6 \
+ usr/share/man/7 usr/share/man/8 \
+ var/account var/crash var/lib var/lock var/log \
+ var/opt var/run var/spool/ \
+ var/cache/fonts var/cache/man \
+ var/tmp
+ )
+
+# list of standard base etc configs to require in chroots
+[[ -n "$CAULDRON_ETC_CONFIGS" ]] ||
+ CAULDRON_ETC_CONFIGS=(
+ fstab group hosts issue passwd shadow shells
+ ld.so.conf man.conf nsswitch.conf
+ network/interfaces
+ sysconfig/devices
+ sysconfig/facilities
+ sysconfig/hwclock
+ sysconfig/init
+ sysconfig/keymap
+ sysconfig/locale
+ sysconfig/modutils
+ sysconfig/mountall
+ sysconfig/mountnetwork
+ sysconfig/shutdown
+ )
+
+# path to working resolv.conf that can be used to resolv hostnames and
download
+# necessary source files
+: "${CAULDRON_RESOLV:=$CAULDRON_HOST/etc/resolv.conf}"
+
+[[ -n "$CAULDRON_TOOLCHAIN_METHODS" ]] ||
+ CAULDRON_TOOLCHAIN_METHODS=(
+ #build
+ chroot
+ #cross
+ )
+
+# file listing all the spells needed for the build toolchain
+: "${CAULDRON_TOOLCHAIN:=$CAULDRON_CONFIG/$CAULDRON_ARCH/toolchain}"
+
+# name of the local on-disk basesystem chroot image to use for the
+# baseroot method (i.e. cauldron_toolchain_baseroot)
+: "${CAULDRON_BASEROOT:=smgl-stable-0.61-basesystem-$CAULDRON_ARCH.tar.xz}"
+# URL to a basesystem chroot for use with cauldron_toolchain_baseroot
+# only used when generating CAULDRON_BUILD from the baseroot method
+:
"${CAULDRON_BASEROOT_URL:=http://download.sourcemage.org/image/official/$CAULDRON_BASEROOT}";
+:
"${CAULDRON_BASEROOT_SIGN_URL:=http://download.sourcemage.org/image/official/$CAULDRON_BASEROOT.sig}";
+
+# which parts of cauldron should be rm'ed after cauldron has finished
producing
+# an iso
+[[ -n "$CAULDRON_CLEAN" ]] ||
+ CAULDRON_CLEAN=(
+ #build
+ #iso
+ #sys
+ )
+
+# whether cauldron should display build (compiler) output as it's happening,
or
+# be as quiet as possible
+: "${CAULDRON_BUILD_VOYEUR:=yes}"
+
+# number of jobs to run make with under the cauldron build chroot when
building
+# software
+: "${CAULDRON_BUILD_JOBS:=2}"
+
+# which kernel to use, and where to get it
+: "${CAULDRON_KERNEL:=linux}"
+: "${CAULDRON_KERNEL_VERS:=4.1.14}"
+:
"${CAULDRON_KERNEL_CONF:=$CAULDRON_CONFIG/$CAULDRON_ARCH/linux-${CAULDRON_KERNEL_VERS}.config}"
+:
"${CAULDRON_KERNEL_URL:=https://www.kernel.org/pub/linux/kernel/v${CAULDRON_KERNEL_VERS%%.*}.x/linux-${CAULDRON_KERNEL_VERS}.tar.xz}";
+:
"${CAULDRON_KERNEL_SIGN_URL:=https://www.kernel.org/pub/linux/kernel/v${CAULDRON_KERNEL_VERS%%.*}.x/linux-${CAULDRON_KERNEL_VERS}.tar.sign}";
+
+# which sysutils package to use, and where to get it
+: "${CAULDRON_SYSUTILS:=busybox}"
+: "${CAULDRON_SYSUTILS_VERS:=1.24.1}"
+:
"${CAULDRON_SYSUTILS_CONF:=$CAULDRON_CONFIG/$CAULDRON_ARCH/${CAULDRON_SYSUTILS}-${CAULDRON_SYSUTILS_VERS}.config}"
+:
"${CAULDRON_SYSUTILS_URL:=http://busybox.net/downloads/busybox-${CAULDRON_SYSUTILS_VERS}.tar.bz2}";
+:
"${CAULDRON_SYSUTILS_SIGN_URL:=http://busybox.net/downloads/busybox-${CAULDRON_SYSUTILS_VERS}.tar.bz2.sign}";
+
+# which compiler to use (toolchain only), and where to get it
+: "${CAULDRON_COMPILER:=gcc}"
+: "${CAULDRON_COMPILER_VERS:=4.8.4}"
+:
"${CAULDRON_COMPILER_URL:=http://ftp.gnu.org/gnu/gcc/gcc-4.8.4/gcc-${CAULDRON_COMPILER_VERS}.tar.bz2}";
+:
"${CAULDRON_COMPILER_URL:=http://ftp.gnu.org/gnu/gcc/gcc-4.8.4/gcc-${CAULDRON_COMPILER_VERS}.tar.bz2}";
+:
"${CAULDRON_COMPILER_SIGN_URL:=http://ftp.gnu.org/gnu/gcc/gcc-4.8.4/gcc-${CAULDRON_COMPILER_VERS}.tar.bz2.sig}";
+
+# which lib to use (toolchain only), and where to get it
+: "${CAULDRON_LIBC:=musl}"
+: "${CAULDRON_LIBC_VERS:=1.1.12}"
+:
"${CAULDRON_LIBC_URL:=http://www.musl-libc.org/releases/musl-${CAULDRON_LIBC_VERS}.tar.gz}";
+:
"${CAULDRON_LIBC_SIGN_URL:=http://www.musl-libc.org/releases/musl-${CAULDRON_LIBC_VERS}.tar.gz.asc}";
+
+# which binutils to use (toolchain only), and where to get it
+: "${CAULDRON_BINUTILS_VERS:=2.25.1}"
+:
"${CAULDRON_BINUTILS_URL:=http://ftp.gnu.org/gnu/binutils/binutils-${CAULDRON_BINUTILS_VERS}.tar.bz2}";
+:
"${CAULDRON_BINUTILS_SIGN_URL:=http://ftp.gnu.org/gnu/binutils/binutils-${CAULDRON_BINUTILS_VERS}.tar.bz2.sig}";
+
+# which make to use (toolchain only), and where to get it
+: "${CAULDRON_MAKE_VERS:=4.1}"
+:
"${CAULDRON_MAKE_URL:=http://ftp.gnu.org/gnu/make/make-${CAULDRON_MAKE_VERS}.tar.bz2}";
+:
"${CAULDRON_MAKE_SIGN_URL:=http://ftp.gnu.org/gnu/make/make-${CAULDRON_MAKE_VERS}.tar.bz2.sig}";
+
+# which automake to use (toolchain only), and where to get it
+: "${CAULDRON_AUTOMAKE_VERS:=1.15}"
+:
"${CAULDRON_AUTOMAKE_URL:=http://ftp.gnu.org/gnu/automake/automake-${CAULDRON_AUTOMAKE_VERS}.tar.xz}";
+:
"${CAULDRON_AUTOMAKE_SIGN_URL:=http://ftp.gnu.org/gnu/automake/automake-${CAULDRON_AUTOMAKE_VERS}.tar.xz.sig}";
+
+# which autoconf to use (toolchain only), and where to get it
+: "${CAULDRON_AUTOCONF_VERS:=2.69}"
+:
"${CAULDRON_AUTOCONF_URL:=http://ftp.gnu.org/gnu/autoconf/autoconf-${CAULDRON_AUTOCONF_VERS}.tar.xz}";
+:
"${CAULDRON_AUTOCONF_SIGN_URL:=http://ftp.gnu.org/gnu/autoconf/autoconf-${CAULDRON_AUTOCONF_VERS}.tar.xz.sig}";
+
+# which perl to use (toolchain only), and where to get it
+: "${CAULDRON_PERL_VERS:=5.22.0}"
+:
"${CAULDRON_PERL_URL:=http://www.cpan.org/src/${CAULDRON_PERL_VERS%%.*}.0/perl-${CAULDRON_PERL_VERS}.tar.xz}";
+:
"${CAULDRON_PERL_SIGN_URL:=http://www.cpan.org/src/${CAULDRON_PERL_VERS%%.*}.0/perl-${CAULDRON_PERL_VERS}.tar.xz.sha256}";
+
+# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
diff --git a/cauldron/config/commands.conf b/cauldron/config/commands.conf
new file mode 100644
index 0000000..92a7417
--- /dev/null
+++ b/cauldron/config/commands.conf
@@ -0,0 +1,394 @@
+#!/bin/bash
+
+# command to output text strings (typically echo, output to STDOUT
+[[ -n "${CAULDRON_CMD_OUTPUT[@]}" ]] ||
+ CAULDRON_CMD_OUTPUT=(
+ echo
+ )
+
+# command to output text strings (typically echo, output to STDOUT
+[[ -n "${CAULDRON_CMD_PAGER[@]}" ]] ||
+ CAULDRON_CMD_PAGER=(
+ less
+ -XFR
+ )
+
+# command to enter a chroot
+[[ -n "${CAULDRON_CMD_CHROOT[@]}" ]] ||
+ CAULDRON_CMD_CHROOT=(
+ chroot
+ )
+
+# command to download a url from the internet
+[[ -n "${CAULDRON_CMD_URL_DL[@]}" ]] ||
+ CAULDRON_CMD_URL_DL=(
+ wget
+ )
+
+# command to generate a compressed filesystem for the iso
+[[ -n "${CAULDRON_CMD_MKSQUASHFS[@]}" ]] ||
+ CAULDRON_CMD_MKSQUASHFS=(
+ mksquashfs
+ "$CAULDRON_ISO_SQUASHFS"
+ "$CAULDRON_ISO_SQUASHIMG"
+ -comp xz
+ -noappend
+ )
+
+# command used to generate the final iso media image (iso9660)
+[[ -n "${CAULDRON_CMD_MKISOFS[@]}" ]] ||
+ CAULDRON_CMD_MKISOFS=(
+ mkisofs
+ -publisher "$CAULDRON_ISO_PUBLISHER"
+ -p "Cauldron"
+ -V "SMGL-$CAULDRON_ISO_VERSION"
+ -l
+ -R
+ -b isolinux/isolinux.bin
+ -c isolinux/boot.cat
+ -no-emul-boot
+ -boot-load-size 4
+ -boot-info-table
+ -o "$CAULDRON_ISO_NAME"
+ -udf
+ )
+
+# command used to generate the final iso media image (udf)
+[[ -n "${CAULDRON_CMD_MKUDF[@]}" ]] ||
+ CAULDRON_CMD_MKUDF=(
+ mkudffs
+ #-publisher "$CAULDRON_ISO_PUBLISHER"
+ --vid="SMGL-$CAULDRON_ISO_VERSION"
+ --utf8
+ #-R
+ #-b isolinux/isolinux.bin
+ #-c isolinux/boot.cat
+ #-no-emul-boot
+ #-boot-load-size 4
+ #-boot-info-table
+ #-o "$CAULDRON_ISO_NAME"
+ )
+
+# command to archive the sys package (e.g., tar, cpio, etc.)
+[[ -n "${CAULDRON_CMD_ARCHIVE_SYS[@]}" ]] ||
+ CAULDRON_CMD_ARCHIVE_SYS=(
+ tar
+ --transform='s,^./,,'
+ -cf "$CAULDRON_TMP"/"${CAULDRON_SYS_NAME}.tar"
+ -C "$CAULDRON_SYS"
+ .
+ )
+
+# command used for compressing files
+[[ -n "${CAULDRON_CMD_COMPRESS[@]}" ]] ||
+ CAULDRON_CMD_COMPRESS=(
+ xz
+ -9
+ )
+
+# command for (un)archiving files/directory trees
+[[ -n "${CAULDRON_CMD_TAR[@]}" ]] ||
+ CAULDRON_CMD_TAR=(
+ tar
+ )
+
+# command to unpack an arbitrary archive
+[[ -n "${CAULDRON_CMD_TAR_UNPACK[@]}" ]] ||
+ CAULDRON_CMD_TAR_UNPACK=(
+ tar
+ -xf
+ )
+
+# command to unpack a sorcery archive into the cauldron build usr/src dir
+[[ -n "${CAULDRON_CMD_UNPACK_SORCERY[@]}" ]] ||
+ CAULDRON_CMD_UNPACK_SORCERY=(
+ "${CAULDRON_CMD_TAR[@]}"
+ -C "TARGETDIR/usr/src"
+ -xf
+ )
+
+# command to unpack a tar archive into the cauldron build dir
+[[ -n "${CAULDRON_CMD_UNPACK_BUILD[@]}" ]] ||
+ CAULDRON_CMD_UNPACK_BUILD=(
+ "${CAULDRON_CMD_TAR[@]}"
+ -C "$CAULDRON_BUILD/"
+ -xf
+ )
+
+# command to unpack a tar archive into the cauldron build dir
+[[ -n "${CAULDRON_CMD_UNPACK_BUILD_SRC[@]}" ]] ||
+ CAULDRON_CMD_UNPACK_BUILD_SRC=(
+ "${CAULDRON_CMD_TAR[@]}"
+ -C "$CAULDRON_BUILD/usr/src"
+ -xf
+ )
+
+# command to unpack a tar archive into a given directory
+[[ -n "${CAULDRON_CMD_UNPACK_TARGETDIR[@]}" ]] ||
+ CAULDRON_CMD_UNPACK_TARGETDIR=(
+ "${CAULDRON_CMD_TAR[@]}"
+ -C "TARGETDIR/"
+ -xf
+ )
+
+# command to chmod files
+[[ -n "${CAULDRON_CMD_CHMOD[@]}" ]] ||
+ CAULDRON_CMD_CHMOD=(
+ chmod
+ )
+
+# command to make directories
+[[ -n "${CAULDRON_CMD_MKDIR[@]}" ]] ||
+ CAULDRON_CMD_MKDIR=(
+ mkdir
+ -p
+ )
+
+# command to remove directories
+[[ -n "${CAULDRON_CMD_RMDIR[@]}" ]] ||
+ CAULDRON_CMD_RMDIR=(
+ rmdir
+ )
+
+# command to find absolute paths
+[[ -n "${CAULDRON_CMD_READLINK[@]}" ]] ||
+ CAULDRON_CMD_READLINK=(
+ readlink
+ -e
+ )
+
+# command to copy
+[[ -n "${CAULDRON_CMD_CP[@]}" ]] ||
+ CAULDRON_CMD_CP=(
+ cp
+ )
+
+# command to copy forcefully
+[[ -n "${CAULDRON_CMD_CP_FORCE[@]}" ]] ||
+ CAULDRON_CMD_CP_FORCE=(
+ "${CAULDRON_CMD_CP[@]}"
+ -f
+ )
+
+# command to copy recursively
+[[ -n "${CAULDRON_CMD_CP_RECURSE[@]}" ]] ||
+ CAULDRON_CMD_CP_RECURSE=(
+ "${CAULDRON_CMD_CP[@]}"
+ -r
+ )
+
+# command to copy recursively forcefully
+[[ -n "${CAULDRON_CMD_CP_RECURSE_FORCE[@]}" ]] ||
+ CAULDRON_CMD_CP_RECURSE_FORCE=(
+ "${CAULDRON_CMD_CP_RECURSE[@]}"
+ -f
+ )
+
+# command to copy while preserving mode, ownership, and timestamps
+[[ -n "${CAULDRON_CMD_CP_PRESERVE[@]}" ]] ||
+ CAULDRON_CMD_CP_PRESERVE=(
+ "${CAULDRON_CMD_CP[@]}"
+ -a
+ )
+
+# command to copy recursively, preserving mode, ownership, and timestamps
+[[ -n "${CAULDRON_CMD_CP_EXACT[@]}" ]] ||
+ CAULDRON_CMD_CP_EXACT=(
+ "${CAULDRON_CMD_CP[@]}"
+ -a --parents
+ )
+
+# command to remove files
+[[ -n "${CAULDRON_CMD_RM[@]}" ]] ||
+ CAULDRON_CMD_RM=(
+ rm
+ )
+
+# command to remove files forcefully
+[[ -n "${CAULDRON_CMD_RM_FORCE[@]}" ]] ||
+ eval CAULDRON_CMD_RM_FORCE=(
+ "${CAULDRON_CMD_RM[@]}"
+ -f
+ )
+
+# command to remove files recursively
+[[ -n "${CAULDRON_CMD_RM_RECURSE[@]}" ]] ||
+ CAULDRON_CMD_RM_RECURSE=(
+ "${CAULDRON_CMD_RM[@]}"
+ -r
+ )
+
+# command to remove files recursively forcefully
+[[ -n "${CAULDRON_CMD_RM_RECURSE_FORCE[@]}" ]] ||
+ CAULDRON_CMD_RM_RECURSE_FORCE=(
+ "${CAULDRON_CMD_RM_RECURSE[@]}"
+ -f
+ )
+
+[[ -n "${CAULDRON_CMD_SYMLINK[@]}" ]] ||
+ CAULDRON_CMD_SYMLINK=(
+ ln
+ -s
+ )
+
+[[ -n "${CAULDRON_CMD_SYMLINK_FORCE[@]}" ]] ||
+ CAULDRON_CMD_SYMLINK_FORCE=(
+ "${CAULDRON_CMD_SYMLINK[@]}"
+ -f
+ )
+
+[[ -n "${CAULDRON_CMD_HARDLINK[@]}" ]] ||
+ CAULDRON_CMD_HARDLINK=(
+ ln
+ )
+
+[[ -n "${CAULDRON_CMD_HARDLINK_FORCE[@]}" ]] ||
+ CAULDRON_CMD_HARDLINK_FORCE=(
+ "${CAULDRON_CMD_HARDLINK[@]}"
+ -f
+ )
+
+# command to mount a filesystem
+[[ -n "${CAULDRON_CMD_MOUNT[@]}" ]] ||
+ CAULDRON_CMD_MOUNT=(
+ mount
+ )
+
+# command to bind-mount a filesystem
+[[ -n "${CAULDRON_CMD_MOUNT_BIND[@]}" ]] ||
+ CAULDRON_CMD_MOUNT_BIND=(
+ "${CAULDRON_CMD_MOUNT[@]}"
+ -o rbind
+ )
+
+# command to loop-mount a filesystem
+[[ -n "${CAULDRON_CMD_MOUNT_LOOP[@]}" ]] ||
+ CAULDRON_CMD_MOUNT_LOOP=(
+ "${CAULDRON_CMD_MOUNT[@]}"
+ -o loop
+ )
+
+# command to unmount a filesystem
+[[ -n "${CAULDRON_CMD_UNMOUNT[@]}" ]] ||
+ CAULDRON_CMD_UNMOUNT=(
+ umount
+ )
+
+# command to unmount a filesystem
+[[ -n "${CAULDRON_CMD_UNMOUNT_RECURSIVE[@]}" ]] ||
+ CAULDRON_CMD_UNMOUNT_RECURSIVE=(
+ umount
+ -R
+ )
+
+# command to create the ramdisk filesystem (typically ext2)
+[[ -n "${CAULDRON_CMD_MKRDFS[@]}" ]] ||
+ CAULDRON_CMD_MKRDFS=(
+ mke2fs
+ )
+
+# command to compress the iso ramdisk
+[[ -n "${CAULDRON_CMD_COMPRESS_RAMDISK[@]}" ]] ||
+ CAULDRON_CMD_COMPRESS_RAMDISK=(
+ xz
+ -9
+ )
+
+# command to dump data
+[[ -n "${CAULDRON_CMD_DD[@]}" ]] ||
+ CAULDRON_CMD_DD=(
+ dd
+ )
+
+# command to concatenate a file
+[[ -n "${CAULDRON_CMD_CAT[@]}" ]] ||
+ CAULDRON_CMD_CAT=(
+ cat
+ )
+
+# command to package the iso initramfs
+[[ -n "${CAULDRON_CMD_MKRAMFS[@]}" ]] ||
+ CAULDRON_CMD_MKRAMFS=(
+ eval "find * -print | cpio -H newc --quiet -o | gzip -9c"
+ )
+
+# command to find files
+[[ -n "${CAULDRON_CMD_FIND[@]}" ]] ||
+ CAULDRON_CMD_FIND=(
+ find
+ )
+
+# command to grep a file/stream
+[[ -n "${CAULDRON_CMD_GREP[@]}" ]] ||
+ CAULDRON_CMD_GREP=(
+ grep
+ )
+
+# command to grep a file/stream
+[[ -n "${CAULDRON_CMD_GREP_QUIET[@]}" ]] ||
+ CAULDRON_CMD_GREP_QUIET=(
+ grep
+ -q
+ )
+
+# command to split a text stream by delimiters
+[[ -n "${CAULDRON_CMD_CUT[@]}" ]] ||
+ CAULDRON_CMD_CUT=(
+ cut
+ )
+
+# command to awk a file/stream
+[[ -n "${CAULDRON_CMD_AWK[@]}" ]] ||
+ CAULDRON_CMD_AWK=(
+ gawk
+ )
+
+# command to sed a file/stream
+[[ -n "${CAULDRON_CMD_SED[@]}" ]] ||
+ CAULDRON_CMD_SED=(
+ sed
+ )
+
+# command to sed a file/stream in-place
+[[ -n "${CAULDRON_CMD_SEDFILE[@]}" ]] ||
+ CAULDRON_CMD_SEDFILE=(
+ sed
+ -i
+ )
+
+# command to "head" a file/stream
+[[ -n "${CAULDRON_CMD_HEAD[@]}" ]] ||
+ CAULDRON_CMD_HEAD=(
+ head
+ )
+
+# command to "tail" a file/stream
+[[ -n "${CAULDRON_CMD_TAIL[@]}" ]] ||
+ CAULDRON_CMD_TAIL=(
+ tail
+ )
+
+# command to patch a file
+[[ -n "${CAULDRON_CMD_PATCH[@]}" ]] ||
+ CAULDRON_CMD_PATCH=(
+ patch
+ )
+
+# sorcery cast/dispel/rebuild commands
+[[ -n "${CAULDRON_CMD_CAST[@]}" ]] ||
+ CAULDRON_CMD_CAST=(
+ cast
+ )
+[[ -n "${CAULDRON_CMD_DISPEL[@]}" ]] ||
+ CAULDRON_CMD_DISPEL=(
+ dispel
+ )
+[[ -n "${CAULDRON_CMD_REBUILD[@]}" ]] ||
+ CAULDRON_CMD_REBUILD=(
+ sorcery rebuild
+ )
+[[ -n "${CAULDRON_CMD_GAZE_INSTALLED[@]}" ]] ||
+ CAULDRON_CMD_GAZE_INSTALLED=(
+ gaze -q installed
+ )
+# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
diff --git a/cauldron/config/default.conf b/cauldron/config/default.conf
new file mode 100644
index 0000000..eb4f9f2
--- /dev/null
+++ b/cauldron/config/default.conf
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+# base configuration values
+source "$CAULDRON_CONF/paths.conf"
+source "$CAULDRON_CONF/security.conf"
+source "$CAULDRON_CONF/display.conf"
+
+# output product configuration values
+source "$CAULDRON_CONF/iso.conf"
+source "$CAULDRON_CONF/sys.conf"
+
+# interaction with sorcery
+source "$CAULDRON_CONF/sorcery.conf"
+
+# build configurations (toolchain, product builds)
+source "$CAULDRON_CONF/build.conf"
+
+# host architecture (i.e., the arch of the system running cauldron, not the
+# arch of the media to be generated)
+source "$CAULDRON_CONF/arch/host_arch.conf"
+
+# configuration of the cauldron command itself (the front-end)
+source "$CAULDRON_CONF/frontend.conf"
+
+# should be sourced last, since some of the command definitions depend on
other
+# config variable definitions
+source "$CAULDRON_CONF/commands.conf"
+
diff --git a/cauldron/config/display.conf b/cauldron/config/display.conf
new file mode 100644
index 0000000..d734510
--- /dev/null
+++ b/cauldron/config/display.conf
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+# whether to use color for displaying messages
+: "${CAULDRON_COLOR:=yes}"
+
+# whether cauldron should suppress output messages
+: "${CAULDRON_VERBOSE:=yes}"
+
+# handle input/output redirections
+: "${CAULDRON_NULL:=/dev/null}"
+: "${CAULDRON_STDOUT:=/dev/stdout}"
+: "${CAULDRON_STDERR:=/dev/stderr}"
+
diff --git a/cauldron/config/frontend.conf b/cauldron/config/frontend.conf
new file mode 100644
index 0000000..4ba2645
--- /dev/null
+++ b/cauldron/config/frontend.conf
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+# prefix used to escape commands to run them through the regular shell
+# only has effect within cauldron shell (see the cauldron command help)
+# can be a single character, a whole word, a regex pattern, ...
+: "${CAULDRON_SHELL_ESCAPE:=.}"
+
+# signals that are "trapped" when terminating the front-end
+# used to perform final error-checks before exiting to the parent shell
+[[ -n "$CAULDRON_TRAP_SIGNALS" ]] ||
+ CAULDRON_TRAP_SIGNALS=(
+ 2 # SIGINT
+ 3 # SIGQUIT
+ 9 # SIGKILL
+ 15 # SIGTERM
+ )
+
+# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
diff --git a/cauldron/config/iso.conf b/cauldron/config/iso.conf
new file mode 100644
index 0000000..6eaaded
--- /dev/null
+++ b/cauldron/config/iso.conf
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+# path where the final ISO product is generated
+: "${CAULDRON_ISO:=$CAULDRON_TMP/iso}"
+
+# whether to use a squashed (compressed) fs within the iso
+: "${CAULDRON_ISO_SQUASH:=yes}"
+# path to contain the iso fs (e.g., squashfs) content
+: "${CAULDRON_ISO_SQUASHFS:=$CAULDRON_TMP/isofs}"
+# path to the final output squashed image
+: "${CAULDRON_ISO_SQUASHIMG:=$CAULDRON_TMP/isofs.img}"
+
+# file listing all the spells to compose the ISO runtime
+: "${CAULDRON_ISO_RUNTIME:=$CAULDRON_CONFIG/$CAULDRON_ARCH/iso/iso.runtime}"
+# file listing all the sources to supply in the ISO runtime
+: "${CAULDRON_ISO_SOURCES:=$CAULDRON_CONFIG/$CAULDRON_ARCH/iso/iso.sources}"
+# file listing all the spell caches to supply in the ISO runtime for install
to the target system
+: "${CAULDRON_ISO_CACHES:=$CAULDRON_CONFIG/$CAULDRON_ARCH/iso/iso.install}"
+# file listing all the spells needed to package the iso as bootable
filesystem image
+: "${CAULDRON_ISO_PACKAGE:=$CAULDRON_CONFIG/$CAULDRON_ARCH/iso/iso.package}"
+
+# lsit of enchantment components (subdirs) to install to the ISO
+[[ -n "${CAULDRON_ENCHANT_COMPONENTS[@]}" ]] ||
+ CAULDRON_ENCHANT_COMPONENTS=(
+ config
+ modules
+ lib
+ doc
+ )
+
+# list of installers to include in the ISO
+[[ -n "${CAULDRON_ENCHANTERS[@]}" ]] ||
+ CAULDRON_ENCHANTERS=(
+ "shell"
+ # "menu"
+ )
+
+[[ -n "${CAULDRON_ISO_EDITORS[@]}" ]] ||
+ CAULDRON_ISO_EDITORS=(
+ vi:a small vi clone, part of busybox
+ nano:an easy-to-use, small editor
+ ed:line-oriented text editor
+ )
+
+# determines whether sorcery will be removed from the iso filesystem when
+# cauldron iso purify is invoked
+: "${CAULDRON_ISO_WIPE_SORCERY:=yes}"
+
+# which bootloader to use
+: "${CAULDRON_ISO_BOOTLOADER:=syslinux}"
+# boot env: currently only affexts x86/x86_64, where the value can be either
bios or efi
+: "${CAULDRON_ISO_BOOTENV:=bios}"
+
+# publisher of the produced iso (for image metadata)
+: "${CAULDRON_ISO_PUBLISHER:=Source Mage GNU/Linux}"
+
+# version/volume name of the produced iso (for image metadata)
+: "${CAULDRON_ISO_VERSION:=smgl-devel-$(date +%Y%m%d).$CAULDRON_ARCH}"
+
+# filename of the produced iso, including path (should follow Cauldron
naming conventions)
+: "${CAULDRON_ISO_NAME:=$CAULDRON_TMP/${CAULDRON_ISO_VERSION}.iso}"
+
+# whether to compress the final .iso image or not
+: "${CAULDRON_ISO_COMPRESS:=no}"
+
+# do we keep the uncompressed .iso file in addition to the compressed one?
+: "${CAULDRON_KEEPISO:=yes}"
+
diff --git a/cauldron/config/paths.conf b/cauldron/config/paths.conf
new file mode 100644
index 0000000..b8d75b6
--- /dev/null
+++ b/cauldron/config/paths.conf
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+# path to the host system (null for normal use)
+: "${CAULDRON_HOST:=}"
+
+# path to the host base library modules
+: "${CAULDRON_BASE:=$CAULDRON_HOST/usr/share/smgl}"
+
+# path to the host cauldron library modules
+: "${CAULDRON_LIBS:=$CAULDRON_BASE/cauldron/lib}"
+
+# path to Source Mage common library modules
+: "${CAULDRON_COMMON:=$CAULDRON_BASE/common}"
+
+# path to the host cauldron data directory (cleaner scripts, etc.)
+: "${CAULDRON_DATA:=$CAULDRON_BASE/cauldron/data}"
+
+# path to the host cauldron configs
+: "${CAULDRON_CONFIG:=$CAULDRON_HOST/etc/cauldron}"
+
+# temporary files generated while cauldron does its work
+: "${CAULDRON_TMP:=$CAULDRON_HOST/tmp/cauldron}"
+
+# location of the base enchantment directory to install into the ISO
+: "${CAULDRON_ENCHANT_DIR:=$CAULDRON_BASE/enchantment}"
+
+# location of the config file for enchantment
+: "${CAULDRON_ENCHANT_CONFIG:=$CAULDRON_CONFIG/enchantment.conf}"
+
diff --git a/cauldron/config/security.conf b/cauldron/config/security.conf
new file mode 100644
index 0000000..0a69ae7
--- /dev/null
+++ b/cauldron/config/security.conf
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+# the user cauldron should run as make sure the user you choose has proper
+# permissions (especially for chrooting)
+: "${CAULDRON_USER:=root}"
+
diff --git a/cauldron/config/sorcery.conf b/cauldron/config/sorcery.conf
new file mode 100644
index 0000000..33a2543
--- /dev/null
+++ b/cauldron/config/sorcery.conf
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+# branch of sorcery to use in the ISO
+: "${CAULDRON_SORCERY_BRANCH:=stable}"
+
+# settings to use for sorcery's config in the build chroots
+: "${CAULDRON_SORCERY_SETTINGS:=$CAULDRON_CONFIG/toolchain/sorcery/config}"
+
+# which grimoires do we want to use (and in which order)?
+# this should be a list/array
+[[ -n "${CAULDRON_SORCERY_GRIMOIRES[@]}" ]] ||
+ CAULDRON_SORCERY_GRIMOIRES=(
+ "stable"
+ )
+
+# whether to always download sorcery anew or use an already downloaded file
+# if found
+: "${CAULDRON_FORCE_DOWNLOAD:=yes}"
+
+# branch of sorcery to use in the ISO
+: "${CAULDRON_SORCERY_PKG:=sorcery-${CAULDRON_SORCERY_BRANCH}.tar.bz2}"
+
+# URL to download sorcery from
+:
"${CAULDRON_SORCERY_URL:=http://download.sourcemage.org/sorcery/$CAULDRON_SORCERY_PKG}";
+
+# base URL to download grimoires from
+: "${CAULDRON_SORCERY_GRIMOIRE_URL:=http://codex.sourcemage.org}";
+# filetype of grimoire downloads
+: "${CAULDRON_SORCERY_GRIMOIRE_TYPE:=tar.bz2}"
+
+# sorcery modules location in the ISO
+: "${CAULDRON_ISORCERY_LIBS:=$CAULDRON_BUILD/var/lib/sorcery/modules}"
+# sorcery config location in the ISO
+: "${CAULDRON_ISORCERY_CONFIG:=$CAULDRON_BUILD/etc/sorcery/config}"
+# sorcery local config location in the ISO
+: "${CAULDRON_ISORCERY_LCONFIG:=$CAULDRON_BUILD/etc/sorcery/local/config}"
+
+# host system sorcery libraries/modules
+: "${CAULDRON_HSORCERY_LIBS:=$CAULDRON_HOST/var/lib/sorcery/modules}"
+# host system sorcery config
+: "${CAULDRON_HSORCERY_CONFIG:=$CAULDRON_HOST/etc/sorcery/config}"
+# host system sorcery local config
+: "${CAULDRON_HSORCERY_LCONFIG:=$CAULDRON_HOST/etc/sorcery/local/config}"
+# host system sorcery packages file (lists installed packages)
+: "${CAULDRON_HSORCERY_PACKAGES:=$CAULDRON_HOST/var/state/sorcery/packages}"
+# host system sorcery spool location (where spell sources are kept)
+: "${CAULDRON_HSORCERY_SPOOL:=$CAULDRON_HOST/var/spool/sorcery}"
+
+# path where sorcery binaries are located
+: "${CAULDRON_SORCERY_PATH:=$CAULDRON_HOST/usr/sbin}"
+
+# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
diff --git a/cauldron/config/sys.conf b/cauldron/config/sys.conf
new file mode 100644
index 0000000..323a193
--- /dev/null
+++ b/cauldron/config/sys.conf
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# path where the installable system chroot is generated
+: "${CAULDRON_SYS:=$CAULDRON_TMP/sys}"
+
+# file listing all the spells to compose the SYS runtime
+: "${CAULDRON_SYS_SPELLS:=$CAULDRON_CONFIG/$CAULDRON_ARCH/sys/sys.runtime}"
+# file listing all the sources to supply in the SYS runtime
+: "${CAULDRON_SYS_SOURCES:=$CAULDRON_CONFIG/$CAULDRON_ARCH/sys/sys.sources}"
+# file listing all the spell caches to supply in the SYS runtime
+: "${CAULDRON_SYS_CACHES:=$CAULDRON_CONFIG/$CAULDRON_ARCH/sys/sys.install}"
+
+# base filename (i.e., without any suffixes) of the compressed system archive
+# that goes into the base of the iso filesystem for base installation
+: "${CAULDRON_SYS_NAME:=system}"
+
+# full filename (including all suffixes) of the compressed system archive
+# that goes into the base of the iso filesystem for base installation
+: "${CAULDRON_SYS_NAME_FULL:=${CAULDRON_SYS_NAME}.tar.xz}"
+
diff --git a/cauldron/data/cleaners/autoconf-clean
b/cauldron/data/cleaners/autoconf-clean
deleted file mode 100644
index 9292dfc..0000000
--- a/cauldron/data/cleaners/autoconf-clean
+++ /dev/null
@@ -1,72 +0,0 @@
-/usr
-/usr/bin
-/usr/bin/autoconf
-/usr/bin/autoheader
-/usr/bin/autom4te
-/usr/bin/autoreconf
-/usr/bin/autoscan
-/usr/bin/autoupdate
-/usr/bin/ifnames
-/usr/share
-/usr/share/autoconf
-/usr/share/autoconf/Autom4te
-/usr/share/autoconf/Autom4te/C4che.pm
-/usr/share/autoconf/Autom4te/ChannelDefs.pm
-/usr/share/autoconf/Autom4te/Channels.pm
-/usr/share/autoconf/Autom4te/Configure_ac.pm
-/usr/share/autoconf/Autom4te/FileUtils.pm
-/usr/share/autoconf/Autom4te/General.pm
-/usr/share/autoconf/Autom4te/Request.pm
-/usr/share/autoconf/Autom4te/Struct.pm
-/usr/share/autoconf/Autom4te/XFile.pm
-/usr/share/autoconf/INSTALL
-/usr/share/autoconf/autoconf
-/usr/share/autoconf/autoconf/autoconf.m4
-/usr/share/autoconf/autoconf/autoconf.m4f
-/usr/share/autoconf/autoconf/autoheader.m4
-/usr/share/autoconf/autoconf/autoscan.m4
-/usr/share/autoconf/autoconf/autotest.m4
-/usr/share/autoconf/autoconf/autoupdate.m4
-/usr/share/autoconf/autoconf/c.m4
-/usr/share/autoconf/autoconf/erlang.m4
-/usr/share/autoconf/autoconf/fortran.m4
-/usr/share/autoconf/autoconf/functions.m4
-/usr/share/autoconf/autoconf/general.m4
-/usr/share/autoconf/autoconf/headers.m4
-/usr/share/autoconf/autoconf/lang.m4
-/usr/share/autoconf/autoconf/libs.m4
-/usr/share/autoconf/autoconf/oldnames.m4
-/usr/share/autoconf/autoconf/programs.m4
-/usr/share/autoconf/autoconf/specific.m4
-/usr/share/autoconf/autoconf/status.m4
-/usr/share/autoconf/autoconf/types.m4
-/usr/share/autoconf/autom4te.cfg
-/usr/share/autoconf/autoscan
-/usr/share/autoconf/autoscan/autoscan.list
-/usr/share/autoconf/autotest
-/usr/share/autoconf/autotest/autotest.m4
-/usr/share/autoconf/autotest/autotest.m4f
-/usr/share/autoconf/autotest/general.m4
-/usr/share/autoconf/m4sugar
-/usr/share/autoconf/m4sugar/m4sh.m4
-/usr/share/autoconf/m4sugar/m4sh.m4f
-/usr/share/autoconf/m4sugar/m4sugar.m4
-/usr/share/autoconf/m4sugar/m4sugar.m4f
-/usr/share/autoconf/m4sugar/version.m4
-/usr/share/info
-/usr/share/info/autoconf.info
-/usr/share/info/standards.info
-/usr/share/man
-/usr/share/man/man1
-/usr/share/man/man1/autoconf.1
-/usr/share/man/man1/autoheader.1
-/usr/share/man/man1/autom4te.1
-/usr/share/man/man1/autoreconf.1
-/usr/share/man/man1/autoscan.1
-/usr/share/man/man1/autoupdate.1
-/usr/share/man/man1/config.guess.1
-/usr/share/man/man1/config.sub.1
-/usr/share/man/man1/ifnames.1
-/var/log/sorcery/compile/autoconf-2.61.bz2
-/var/log/sorcery/install/autoconf-2.61
-/var/log/sorcery/md5sum/autoconf-2.61
diff --git a/cauldron/data/cleaners/automake-clean
b/cauldron/data/cleaners/automake-clean
deleted file mode 100644
index 9ad16dc..0000000
--- a/cauldron/data/cleaners/automake-clean
+++ /dev/null
@@ -1,134 +0,0 @@
-/usr
-/usr/bin
-/usr/bin/aclocal
-/usr/bin/aclocal-1.10
-/usr/bin/automake
-/usr/bin/automake-1.10
-/usr/share
-/usr/share/aclocal-1.10
-/usr/share/aclocal-1.10/amversion.m4
-/usr/share/aclocal-1.10/as.m4
-/usr/share/aclocal-1.10/auxdir.m4
-/usr/share/aclocal-1.10/ccstdc.m4
-/usr/share/aclocal-1.10/cond.m4
-/usr/share/aclocal-1.10/depend.m4
-/usr/share/aclocal-1.10/depout.m4
-/usr/share/aclocal-1.10/dmalloc.m4
-/usr/share/aclocal-1.10/gcj.m4
-/usr/share/aclocal-1.10/header.m4
-/usr/share/aclocal-1.10/init.m4
-/usr/share/aclocal-1.10/install-sh.m4
-/usr/share/aclocal-1.10/lead-dot.m4
-/usr/share/aclocal-1.10/lex.m4
-/usr/share/aclocal-1.10/lispdir.m4
-/usr/share/aclocal-1.10/maintainer.m4
-/usr/share/aclocal-1.10/make.m4
-/usr/share/aclocal-1.10/minuso.m4
-/usr/share/aclocal-1.10/missing.m4
-/usr/share/aclocal-1.10/mkdirp.m4
-/usr/share/aclocal-1.10/multi.m4
-/usr/share/aclocal-1.10/obsol-gt.m4
-/usr/share/aclocal-1.10/obsol-lt.m4
-/usr/share/aclocal-1.10/obsolete.m4
-/usr/share/aclocal-1.10/options.m4
-/usr/share/aclocal-1.10/protos.m4
-/usr/share/aclocal-1.10/python.m4
-/usr/share/aclocal-1.10/regex.m4
-/usr/share/aclocal-1.10/runlog.m4
-/usr/share/aclocal-1.10/sanity.m4
-/usr/share/aclocal-1.10/strip.m4
-/usr/share/aclocal-1.10/substnot.m4
-/usr/share/aclocal-1.10/tar.m4
-/usr/share/aclocal-1.10/upc.m4
-/usr/share/automake
-/usr/share/automake-1.10
-/usr/share/automake-1.10/Automake
-/usr/share/automake-1.10/Automake/ChannelDefs.pm
-/usr/share/automake-1.10/Automake/Channels.pm
-/usr/share/automake-1.10/Automake/Condition.pm
-/usr/share/automake-1.10/Automake/Config.pm
-/usr/share/automake-1.10/Automake/Configure_ac.pm
-/usr/share/automake-1.10/Automake/DisjConditions.pm
-/usr/share/automake-1.10/Automake/FileUtils.pm
-/usr/share/automake-1.10/Automake/General.pm
-/usr/share/automake-1.10/Automake/Item.pm
-/usr/share/automake-1.10/Automake/ItemDef.pm
-/usr/share/automake-1.10/Automake/Location.pm
-/usr/share/automake-1.10/Automake/Options.pm
-/usr/share/automake-1.10/Automake/Rule.pm
-/usr/share/automake-1.10/Automake/RuleDef.pm
-/usr/share/automake-1.10/Automake/Struct.pm
-/usr/share/automake-1.10/Automake/VarDef.pm
-/usr/share/automake-1.10/Automake/Variable.pm
-/usr/share/automake-1.10/Automake/Version.pm
-/usr/share/automake-1.10/Automake/Wrap.pm
-/usr/share/automake-1.10/Automake/XFile.pm
-/usr/share/automake-1.10/COPYING
-/usr/share/automake-1.10/INSTALL
-/usr/share/automake-1.10/acinstall
-/usr/share/automake-1.10/am
-/usr/share/automake-1.10/am/ansi2knr.am
-/usr/share/automake-1.10/am/check.am
-/usr/share/automake-1.10/am/clean-hdr.am
-/usr/share/automake-1.10/am/clean.am
-/usr/share/automake-1.10/am/compile.am
-/usr/share/automake-1.10/am/configure.am
-/usr/share/automake-1.10/am/data.am
-/usr/share/automake-1.10/am/dejagnu.am
-/usr/share/automake-1.10/am/depend.am
-/usr/share/automake-1.10/am/depend2.am
-/usr/share/automake-1.10/am/distdir.am
-/usr/share/automake-1.10/am/footer.am
-/usr/share/automake-1.10/am/header-vars.am
-/usr/share/automake-1.10/am/header.am
-/usr/share/automake-1.10/am/inst-vars.am
-/usr/share/automake-1.10/am/install.am
-/usr/share/automake-1.10/am/java.am
-/usr/share/automake-1.10/am/lang-compile.am
-/usr/share/automake-1.10/am/lex.am
-/usr/share/automake-1.10/am/library.am
-/usr/share/automake-1.10/am/libs.am
-/usr/share/automake-1.10/am/libtool.am
-/usr/share/automake-1.10/am/lisp.am
-/usr/share/automake-1.10/am/ltlib.am
-/usr/share/automake-1.10/am/ltlibrary.am
-/usr/share/automake-1.10/am/mans-vars.am
-/usr/share/automake-1.10/am/mans.am
-/usr/share/automake-1.10/am/multilib.am
-/usr/share/automake-1.10/am/program.am
-/usr/share/automake-1.10/am/progs.am
-/usr/share/automake-1.10/am/python.am
-/usr/share/automake-1.10/am/remake-hdr.am
-/usr/share/automake-1.10/am/scripts.am
-/usr/share/automake-1.10/am/subdirs.am
-/usr/share/automake-1.10/am/tags.am
-/usr/share/automake-1.10/am/texi-vers.am
-/usr/share/automake-1.10/am/texibuild.am
-/usr/share/automake-1.10/am/texinfos.am
-/usr/share/automake-1.10/am/yacc.am
-/usr/share/automake-1.10/ansi2knr.1
-/usr/share/automake-1.10/ansi2knr.c
-/usr/share/automake-1.10/compile
-/usr/share/automake-1.10/config-ml.in
-/usr/share/automake-1.10/config.guess
-/usr/share/automake-1.10/config.sub
-/usr/share/automake-1.10/depcomp
-/usr/share/automake-1.10/elisp-comp
-/usr/share/automake-1.10/install-sh
-/usr/share/automake-1.10/mdate-sh
-/usr/share/automake-1.10/missing
-/usr/share/automake-1.10/mkinstalldirs
-/usr/share/automake-1.10/py-compile
-/usr/share/automake-1.10/symlink-tree
-/usr/share/automake-1.10/texinfo.tex
-/usr/share/automake-1.10/ylwrap
-/usr/share/doc
-/usr/share/doc/automake
-/usr/share/doc/automake/amhello-1.0.tar.gz
-/usr/share/info
-/usr/share/info/automake.info
-/usr/share/info/automake.info-1
-/usr/share/info/automake.info-2
-/var/log/sorcery/compile/automake-1.10.bz2
-/var/log/sorcery/install/automake-1.10
-/var/log/sorcery/md5sum/automake-1.10
diff --git a/cauldron/data/cleaners/bin86-clean
b/cauldron/data/cleaners/bin86-clean
deleted file mode 100644
index e80701a..0000000
--- a/cauldron/data/cleaners/bin86-clean
+++ /dev/null
@@ -1,10 +0,0 @@
-/usr/bin/as86
-/usr/bin/ld86
-/usr/bin/nm86
-/usr/bin/objdump86
-/usr/bin/size86
-/usr/share/man/man1/as86.1
-/usr/share/man/man1/ld86.1
-/var/log/sorcery/compile/bin86-0.16.17.bz2
-/var/log/sorcery/install/bin86-0.16.17
-/var/log/sorcery/md5sum/bin86-0.16.17
diff --git a/cauldron/data/cleaners/binutils-clean
b/cauldron/data/cleaners/binutils-clean
deleted file mode 100644
index 38d9508..0000000
--- a/cauldron/data/cleaners/binutils-clean
+++ /dev/null
@@ -1,140 +0,0 @@
-/usr
-/usr/bin/addr2line
-/usr/bin/ar
-/usr/bin/as
-/usr/bin/c++filt
-/usr/bin/gprof
-/usr/bin/ld
-/usr/bin/nm
-/usr/bin/objcopy
-/usr/bin/objdump
-/usr/bin/ranlib
-/usr/bin/readelf
-/usr/bin/size
-/usr/bin/strings
-/usr/bin/strip
-/usr/i486-pc-linux-gnu
-/usr/i486-pc-linux-gnu/bin
-/usr/i486-pc-linux-gnu/bin/ar
-/usr/i486-pc-linux-gnu/bin/as
-/usr/i486-pc-linux-gnu/bin/ld
-/usr/i486-pc-linux-gnu/bin/nm
-/usr/i486-pc-linux-gnu/bin/objdump
-/usr/i486-pc-linux-gnu/bin/ranlib
-/usr/i486-pc-linux-gnu/bin/strip
-/usr/i486-pc-linux-gnu/lib
-/usr/i486-pc-linux-gnu/lib/ldscripts
-/usr/i486-pc-linux-gnu/lib/ldscripts/elf_i386.x
-/usr/i486-pc-linux-gnu/lib/ldscripts/elf_i386.xbn
-/usr/i486-pc-linux-gnu/lib/ldscripts/elf_i386.xc
-/usr/i486-pc-linux-gnu/lib/ldscripts/elf_i386.xd
-/usr/i486-pc-linux-gnu/lib/ldscripts/elf_i386.xdc
-/usr/i486-pc-linux-gnu/lib/ldscripts/elf_i386.xdw
-/usr/i486-pc-linux-gnu/lib/ldscripts/elf_i386.xn
-/usr/i486-pc-linux-gnu/lib/ldscripts/elf_i386.xr
-/usr/i486-pc-linux-gnu/lib/ldscripts/elf_i386.xs
-/usr/i486-pc-linux-gnu/lib/ldscripts/elf_i386.xsc
-/usr/i486-pc-linux-gnu/lib/ldscripts/elf_i386.xsw
-/usr/i486-pc-linux-gnu/lib/ldscripts/elf_i386.xu
-/usr/i486-pc-linux-gnu/lib/ldscripts/elf_i386.xw
-/usr/i486-pc-linux-gnu/lib/ldscripts/i386linux.x
-/usr/i486-pc-linux-gnu/lib/ldscripts/i386linux.xbn
-/usr/i486-pc-linux-gnu/lib/ldscripts/i386linux.xn
-/usr/i486-pc-linux-gnu/lib/ldscripts/i386linux.xr
-/usr/i486-pc-linux-gnu/lib/ldscripts/i386linux.xu
-/usr/include/ansidecl.h
-/usr/include/bfd.h
-/usr/include/bfdlink.h
-/usr/include/dis-asm.h
-/usr/include/symcat.h
-/usr/lib/libbfd-2.17.so
-/usr/lib/libbfd.la
-/usr/lib/libbfd.so
-/usr/lib/libopcodes-2.17.so
-/usr/lib/libopcodes.la
-/usr/lib/libopcodes.so
-/usr/share/info/as.info
-/usr/share/info/bfd.info
-/usr/share/info/binutils.info
-/usr/share/info/configure.info
-/usr/share/info/gprof.info
-/usr/share/info/ld.info
-/usr/share/locale/da/LC_MESSAGES/bfd.mo
-/usr/share/locale/da/LC_MESSAGES/binutils.mo
-/usr/share/locale/da/LC_MESSAGES/gprof.mo
-/usr/share/locale/da/LC_MESSAGES/ld.mo
-/usr/share/locale/da/LC_MESSAGES/opcodes.mo
-/usr/share/locale/de/LC_MESSAGES/gprof.mo
-/usr/share/locale/de/LC_MESSAGES/opcodes.mo
-/usr/share/locale/es/LC_MESSAGES/bfd.mo
-/usr/share/locale/es/LC_MESSAGES/binutils.mo
-/usr/share/locale/es/LC_MESSAGES/gas.mo
-/usr/share/locale/es/LC_MESSAGES/gprof.mo
-/usr/share/locale/es/LC_MESSAGES/ld.mo
-/usr/share/locale/es/LC_MESSAGES/opcodes.mo
-/usr/share/locale/fi/LC_MESSAGES/binutils.mo
-/usr/share/locale/fi/LC_MESSAGES/opcodes.mo
-/usr/share/locale/fr/LC_MESSAGES/bfd.mo
-/usr/share/locale/fr/LC_MESSAGES/binutils.mo
-/usr/share/locale/fr/LC_MESSAGES/gas.mo
-/usr/share/locale/fr/LC_MESSAGES/gprof.mo
-/usr/share/locale/fr/LC_MESSAGES/ld.mo
-/usr/share/locale/fr/LC_MESSAGES/opcodes.mo
-/usr/share/locale/ga/LC_MESSAGES/gprof.mo
-/usr/share/locale/ga/LC_MESSAGES/opcodes.mo
-/usr/share/locale/id/LC_MESSAGES/gprof.mo
-/usr/share/locale/id/LC_MESSAGES/opcodes.mo
-/usr/share/locale/ja/LC_MESSAGES/bfd.mo
-/usr/share/locale/ja/LC_MESSAGES/binutils.mo
-/usr/share/locale/nl/LC_MESSAGES/opcodes.mo
-/usr/share/locale/pt_BR/LC_MESSAGES/gprof.mo
-/usr/share/locale/pt_BR/LC_MESSAGES/opcodes.mo
-/usr/share/locale/ro/LC_MESSAGES/bfd.mo
-/usr/share/locale/ro/LC_MESSAGES/binutils.mo
-/usr/share/locale/ro/LC_MESSAGES/opcodes.mo
-/usr/share/locale/ru/LC_MESSAGES/binutils.mo
-/usr/share/locale/rw/LC_MESSAGES/bfd.mo
-/usr/share/locale/rw/LC_MESSAGES/binutils.mo
-/usr/share/locale/rw/LC_MESSAGES/gas.mo
-/usr/share/locale/rw/LC_MESSAGES/gprof.mo
-/usr/share/locale/sv/LC_MESSAGES/bfd.mo
-/usr/share/locale/sv/LC_MESSAGES/binutils.mo
-/usr/share/locale/sv/LC_MESSAGES/gprof.mo
-/usr/share/locale/sv/LC_MESSAGES/ld.mo
-/usr/share/locale/sv/LC_MESSAGES/opcodes.mo
-/usr/share/locale/tr/LC_MESSAGES/bfd.mo
-/usr/share/locale/tr/LC_MESSAGES/binutils.mo
-/usr/share/locale/tr/LC_MESSAGES/gas.mo
-/usr/share/locale/tr/LC_MESSAGES/gprof.mo
-/usr/share/locale/tr/LC_MESSAGES/ld.mo
-/usr/share/locale/tr/LC_MESSAGES/opcodes.mo
-/usr/share/locale/vi/LC_MESSAGES/bfd.mo
-/usr/share/locale/vi/LC_MESSAGES/binutils.mo
-/usr/share/locale/vi/LC_MESSAGES/gprof.mo
-/usr/share/locale/vi/LC_MESSAGES/ld.mo
-/usr/share/locale/vi/LC_MESSAGES/opcodes.mo
-/usr/share/locale/zh_CN/LC_MESSAGES/bfd.mo
-/usr/share/locale/zh_CN/LC_MESSAGES/binutils.mo
-/usr/share/locale/zh_CN/LC_MESSAGES/ld.mo
-/usr/share/locale/zh_CN/LC_MESSAGES/opcodes.mo
-/usr/share/locale/zh_TW/LC_MESSAGES/binutils.mo
-/usr/share/man/man1/addr2line.1
-/usr/share/man/man1/ar.1
-/usr/share/man/man1/as.1
-/usr/share/man/man1/c++filt.1
-/usr/share/man/man1/dlltool.1
-/usr/share/man/man1/gprof.1
-/usr/share/man/man1/ld.1
-/usr/share/man/man1/nlmconv.1
-/usr/share/man/man1/nm.1
-/usr/share/man/man1/objcopy.1
-/usr/share/man/man1/objdump.1
-/usr/share/man/man1/ranlib.1
-/usr/share/man/man1/readelf.1
-/usr/share/man/man1/size.1
-/usr/share/man/man1/strings.1
-/usr/share/man/man1/strip.1
-/usr/share/man/man1/windres.1
-/var/log/sorcery/compile/binutils-2.17.bz2
-/var/log/sorcery/install/binutils-2.17
-/var/log/sorcery/md5sum/binutils-2.17
diff --git a/cauldron/data/cleaners/bison-clean
b/cauldron/data/cleaners/bison-clean
deleted file mode 100644
index e8cc4ba..0000000
--- a/cauldron/data/cleaners/bison-clean
+++ /dev/null
@@ -1,66 +0,0 @@
-/usr
-/usr/bin/bison
-/usr/bin/yacc
-/usr/lib/liby.a
-/usr/share
-/usr/share/aclocal/bison-i18n.m4
-/usr/share/bison
-/usr/share/bison/README
-/usr/share/bison/c++.m4
-/usr/share/bison/c.m4
-/usr/share/bison/glr.c
-/usr/share/bison/glr.cc
-/usr/share/bison/lalr1.cc
-/usr/share/bison/location.cc
-/usr/share/bison/m4sugar
-/usr/share/bison/m4sugar/m4sugar.m4
-/usr/share/bison/yacc.c
-/usr/share/info/bison.info
-/usr/share/locale/da/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/da/LC_MESSAGES/bison.mo
-/usr/share/locale/de/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/de/LC_MESSAGES/bison.mo
-/usr/share/locale/es/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/es/LC_MESSAGES/bison.mo
-/usr/share/locale/et/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/et/LC_MESSAGES/bison.mo
-/usr/share/locale/fr/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/fr/LC_MESSAGES/bison.mo
-/usr/share/locale/ga/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/ga/LC_MESSAGES/bison.mo
-/usr/share/locale/hr/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/hr/LC_MESSAGES/bison.mo
-/usr/share/locale/id/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/id/LC_MESSAGES/bison.mo
-/usr/share/locale/it/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/it/LC_MESSAGES/bison.mo
-/usr/share/locale/ja/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/ja/LC_MESSAGES/bison.mo
-/usr/share/locale/ms/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/ms/LC_MESSAGES/bison.mo
-/usr/share/locale/nb/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/nb/LC_MESSAGES/bison.mo
-/usr/share/locale/nl/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/nl/LC_MESSAGES/bison.mo
-/usr/share/locale/pl/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/pl/LC_MESSAGES/bison.mo
-/usr/share/locale/pt_BR/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/pt_BR/LC_MESSAGES/bison.mo
-/usr/share/locale/ro/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/ro/LC_MESSAGES/bison.mo
-/usr/share/locale/ru/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/ru/LC_MESSAGES/bison.mo
-/usr/share/locale/rw/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/rw/LC_MESSAGES/bison.mo
-/usr/share/locale/sl/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/sv/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/sv/LC_MESSAGES/bison.mo
-/usr/share/locale/tr/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/tr/LC_MESSAGES/bison.mo
-/usr/share/locale/vi/LC_MESSAGES/bison-runtime.mo
-/usr/share/locale/vi/LC_MESSAGES/bison.mo
-/usr/share/locale/zh_TW/LC_MESSAGES/bison-runtime.mo
-/usr/share/man/man1/bison.1
-/var/log/sorcery/compile/bison-2.3.bz2
-/var/log/sorcery/install/bison-2.3
-/var/log/sorcery/md5sum/bison-2.3
diff --git a/cauldron/data/cleaners/flex-clean
b/cauldron/data/cleaners/flex-clean
deleted file mode 100644
index 8448ceb..0000000
--- a/cauldron/data/cleaners/flex-clean
+++ /dev/null
@@ -1,32 +0,0 @@
-/usr/bin/flex
-/usr/bin/lex
-/usr/include/FlexLexer.h
-/usr/lib/libfl.a
-/usr/share/info/flex.info
-/usr/share/info/flex.info-1
-/usr/share/info/flex.info-2
-/usr/share/info/flex.info-3
-/usr/share/info/flex.info-4
-/usr/share/info/flex.info-5
-/usr/share/info/flex.info-6
-/usr/share/info/flex.info-7
-/usr/share/locale/ca/LC_MESSAGES/flex.mo
-/usr/share/locale/da/LC_MESSAGES/flex.mo
-/usr/share/locale/de/LC_MESSAGES/flex.mo
-/usr/share/locale/es/LC_MESSAGES/flex.mo
-/usr/share/locale/fr/LC_MESSAGES/flex.mo
-/usr/share/locale/ga/LC_MESSAGES/flex.mo
-/usr/share/locale/ko/LC_MESSAGES/flex.mo
-/usr/share/locale/nl/LC_MESSAGES/flex.mo
-/usr/share/locale/pl/LC_MESSAGES/flex.mo
-/usr/share/locale/pt_BR/LC_MESSAGES/flex.mo
-/usr/share/locale/ro/LC_MESSAGES/flex.mo
-/usr/share/locale/ru/LC_MESSAGES/flex.mo
-/usr/share/locale/sv/LC_MESSAGES/flex.mo
-/usr/share/locale/tr/LC_MESSAGES/flex.mo
-/usr/share/locale/vi/LC_MESSAGES/flex.mo
-/usr/share/locale/zh_CN/LC_MESSAGES/flex.mo
-/usr/share/man/man1/flex.1
-/var/log/sorcery/compile/flex-2.5.33.bz2
-/var/log/sorcery/install/flex-2.5.33
-/var/log/sorcery/md5sum/flex-2.5.33
diff --git a/cauldron/data/cleaners/g++-clean
b/cauldron/data/cleaners/g++-clean
deleted file mode 100644
index 51a1de2..0000000
--- a/cauldron/data/cleaners/g++-clean
+++ /dev/null
@@ -1,524 +0,0 @@
-/usr
-/usr/bin/c++
-/usr/bin/g++
-/usr/bin/i486-pc-linux-gnu-c++
-/usr/bin/i486-pc-linux-gnu-g++
-/usr/include
-/usr/include/c++
-/usr/include/c++/4.1.2
-/usr/include/c++/4.1.2/algorithm
-/usr/include/c++/4.1.2/backward
-/usr/include/c++/4.1.2/backward/algo.h
-/usr/include/c++/4.1.2/backward/algobase.h
-/usr/include/c++/4.1.2/backward/alloc.h
-/usr/include/c++/4.1.2/backward/backward_warning.h
-/usr/include/c++/4.1.2/backward/bvector.h
-/usr/include/c++/4.1.2/backward/complex.h
-/usr/include/c++/4.1.2/backward/defalloc.h
-/usr/include/c++/4.1.2/backward/deque.h
-/usr/include/c++/4.1.2/backward/fstream.h
-/usr/include/c++/4.1.2/backward/function.h
-/usr/include/c++/4.1.2/backward/hash_map.h
-/usr/include/c++/4.1.2/backward/hash_set.h
-/usr/include/c++/4.1.2/backward/hashtable.h
-/usr/include/c++/4.1.2/backward/heap.h
-/usr/include/c++/4.1.2/backward/iomanip.h
-/usr/include/c++/4.1.2/backward/iostream.h
-/usr/include/c++/4.1.2/backward/istream.h
-/usr/include/c++/4.1.2/backward/iterator.h
-/usr/include/c++/4.1.2/backward/list.h
-/usr/include/c++/4.1.2/backward/map.h
-/usr/include/c++/4.1.2/backward/multimap.h
-/usr/include/c++/4.1.2/backward/multiset.h
-/usr/include/c++/4.1.2/backward/new.h
-/usr/include/c++/4.1.2/backward/ostream.h
-/usr/include/c++/4.1.2/backward/pair.h
-/usr/include/c++/4.1.2/backward/queue.h
-/usr/include/c++/4.1.2/backward/rope.h
-/usr/include/c++/4.1.2/backward/set.h
-/usr/include/c++/4.1.2/backward/slist.h
-/usr/include/c++/4.1.2/backward/stack.h
-/usr/include/c++/4.1.2/backward/stream.h
-/usr/include/c++/4.1.2/backward/streambuf.h
-/usr/include/c++/4.1.2/backward/strstream
-/usr/include/c++/4.1.2/backward/tempbuf.h
-/usr/include/c++/4.1.2/backward/tree.h
-/usr/include/c++/4.1.2/backward/vector.h
-/usr/include/c++/4.1.2/bits
-/usr/include/c++/4.1.2/bits/allocator.h
-/usr/include/c++/4.1.2/bits/atomicity.h
-/usr/include/c++/4.1.2/bits/basic_ios.h
-/usr/include/c++/4.1.2/bits/basic_ios.tcc
-/usr/include/c++/4.1.2/bits/basic_string.h
-/usr/include/c++/4.1.2/bits/basic_string.tcc
-/usr/include/c++/4.1.2/bits/boost_concept_check.h
-/usr/include/c++/4.1.2/bits/char_traits.h
-/usr/include/c++/4.1.2/bits/cmath.tcc
-/usr/include/c++/4.1.2/bits/codecvt.h
-/usr/include/c++/4.1.2/bits/concept_check.h
-/usr/include/c++/4.1.2/bits/concurrence.h
-/usr/include/c++/4.1.2/bits/cpp_type_traits.h
-/usr/include/c++/4.1.2/bits/deque.tcc
-/usr/include/c++/4.1.2/bits/fstream.tcc
-/usr/include/c++/4.1.2/bits/functexcept.h
-/usr/include/c++/4.1.2/bits/gslice.h
-/usr/include/c++/4.1.2/bits/gslice_array.h
-/usr/include/c++/4.1.2/bits/indirect_array.h
-/usr/include/c++/4.1.2/bits/ios_base.h
-/usr/include/c++/4.1.2/bits/istream.tcc
-/usr/include/c++/4.1.2/bits/list.tcc
-/usr/include/c++/4.1.2/bits/locale_classes.h
-/usr/include/c++/4.1.2/bits/locale_facets.h
-/usr/include/c++/4.1.2/bits/locale_facets.tcc
-/usr/include/c++/4.1.2/bits/localefwd.h
-/usr/include/c++/4.1.2/bits/mask_array.h
-/usr/include/c++/4.1.2/bits/ostream.tcc
-/usr/include/c++/4.1.2/bits/postypes.h
-/usr/include/c++/4.1.2/bits/slice_array.h
-/usr/include/c++/4.1.2/bits/sstream.tcc
-/usr/include/c++/4.1.2/bits/stl_algo.h
-/usr/include/c++/4.1.2/bits/stl_algobase.h
-/usr/include/c++/4.1.2/bits/stl_bvector.h
-/usr/include/c++/4.1.2/bits/stl_construct.h
-/usr/include/c++/4.1.2/bits/stl_deque.h
-/usr/include/c++/4.1.2/bits/stl_function.h
-/usr/include/c++/4.1.2/bits/stl_heap.h
-/usr/include/c++/4.1.2/bits/stl_iterator.h
-/usr/include/c++/4.1.2/bits/stl_iterator_base_funcs.h
-/usr/include/c++/4.1.2/bits/stl_iterator_base_types.h
-/usr/include/c++/4.1.2/bits/stl_list.h
-/usr/include/c++/4.1.2/bits/stl_map.h
-/usr/include/c++/4.1.2/bits/stl_multimap.h
-/usr/include/c++/4.1.2/bits/stl_multiset.h
-/usr/include/c++/4.1.2/bits/stl_numeric.h
-/usr/include/c++/4.1.2/bits/stl_pair.h
-/usr/include/c++/4.1.2/bits/stl_queue.h
-/usr/include/c++/4.1.2/bits/stl_raw_storage_iter.h
-/usr/include/c++/4.1.2/bits/stl_relops.h
-/usr/include/c++/4.1.2/bits/stl_set.h
-/usr/include/c++/4.1.2/bits/stl_stack.h
-/usr/include/c++/4.1.2/bits/stl_tempbuf.h
-/usr/include/c++/4.1.2/bits/stl_tree.h
-/usr/include/c++/4.1.2/bits/stl_uninitialized.h
-/usr/include/c++/4.1.2/bits/stl_vector.h
-/usr/include/c++/4.1.2/bits/stream_iterator.h
-/usr/include/c++/4.1.2/bits/streambuf.tcc
-/usr/include/c++/4.1.2/bits/streambuf_iterator.h
-/usr/include/c++/4.1.2/bits/stringfwd.h
-/usr/include/c++/4.1.2/bits/valarray_after.h
-/usr/include/c++/4.1.2/bits/valarray_array.h
-/usr/include/c++/4.1.2/bits/valarray_array.tcc
-/usr/include/c++/4.1.2/bits/valarray_before.h
-/usr/include/c++/4.1.2/bits/vector.tcc
-/usr/include/c++/4.1.2/bitset
-/usr/include/c++/4.1.2/cassert
-/usr/include/c++/4.1.2/cctype
-/usr/include/c++/4.1.2/cerrno
-/usr/include/c++/4.1.2/cfloat
-/usr/include/c++/4.1.2/ciso646
-/usr/include/c++/4.1.2/climits
-/usr/include/c++/4.1.2/clocale
-/usr/include/c++/4.1.2/cmath
-/usr/include/c++/4.1.2/complex
-/usr/include/c++/4.1.2/csetjmp
-/usr/include/c++/4.1.2/csignal
-/usr/include/c++/4.1.2/cstdarg
-/usr/include/c++/4.1.2/cstddef
-/usr/include/c++/4.1.2/cstdio
-/usr/include/c++/4.1.2/cstdlib
-/usr/include/c++/4.1.2/cstring
-/usr/include/c++/4.1.2/ctime
-/usr/include/c++/4.1.2/cwchar
-/usr/include/c++/4.1.2/cwctype
-/usr/include/c++/4.1.2/cxxabi.h
-/usr/include/c++/4.1.2/debug
-/usr/include/c++/4.1.2/debug/bitset
-/usr/include/c++/4.1.2/debug/debug.h
-/usr/include/c++/4.1.2/debug/deque
-/usr/include/c++/4.1.2/debug/formatter.h
-/usr/include/c++/4.1.2/debug/functions.h
-/usr/include/c++/4.1.2/debug/hash_map
-/usr/include/c++/4.1.2/debug/hash_map.h
-/usr/include/c++/4.1.2/debug/hash_multimap.h
-/usr/include/c++/4.1.2/debug/hash_multiset.h
-/usr/include/c++/4.1.2/debug/hash_set
-/usr/include/c++/4.1.2/debug/hash_set.h
-/usr/include/c++/4.1.2/debug/list
-/usr/include/c++/4.1.2/debug/macros.h
-/usr/include/c++/4.1.2/debug/map
-/usr/include/c++/4.1.2/debug/map.h
-/usr/include/c++/4.1.2/debug/multimap.h
-/usr/include/c++/4.1.2/debug/multiset.h
-/usr/include/c++/4.1.2/debug/safe_base.h
-/usr/include/c++/4.1.2/debug/safe_iterator.h
-/usr/include/c++/4.1.2/debug/safe_iterator.tcc
-/usr/include/c++/4.1.2/debug/safe_sequence.h
-/usr/include/c++/4.1.2/debug/set
-/usr/include/c++/4.1.2/debug/set.h
-/usr/include/c++/4.1.2/debug/string
-/usr/include/c++/4.1.2/debug/vector
-/usr/include/c++/4.1.2/deque
-/usr/include/c++/4.1.2/exception
-/usr/include/c++/4.1.2/exception_defines.h
-/usr/include/c++/4.1.2/ext
-/usr/include/c++/4.1.2/ext/algorithm
-/usr/include/c++/4.1.2/ext/array_allocator.h
-/usr/include/c++/4.1.2/ext/bitmap_allocator.h
-/usr/include/c++/4.1.2/ext/codecvt_specializations.h
-/usr/include/c++/4.1.2/ext/debug_allocator.h
-/usr/include/c++/4.1.2/ext/functional
-/usr/include/c++/4.1.2/ext/hash_fun.h
-/usr/include/c++/4.1.2/ext/hash_map
-/usr/include/c++/4.1.2/ext/hash_set
-/usr/include/c++/4.1.2/ext/hashtable.h
-/usr/include/c++/4.1.2/ext/iterator
-/usr/include/c++/4.1.2/ext/malloc_allocator.h
-/usr/include/c++/4.1.2/ext/memory
-/usr/include/c++/4.1.2/ext/mt_allocator.h
-/usr/include/c++/4.1.2/ext/new_allocator.h
-/usr/include/c++/4.1.2/ext/numeric
-/usr/include/c++/4.1.2/ext/pb_assoc
-/usr/include/c++/4.1.2/ext/pb_assoc/assoc_cntnr.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/data_type.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/assoc_cntnr_base.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/constructor_destructor_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/constructors_destructor_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_extract_key.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_find_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_insert_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/erase_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/extract_key.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/info_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/insert_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/iterators_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructors_destructor_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/resize_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructor_destructor_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructors_destructor_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/erase_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/node_iteration_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/policy_access_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_erase_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_range_iteration_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/range_iteration_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/split_join_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/bin_search_tree_.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/debug_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/erase_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/find_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/find_iterators.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/info_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/insert_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/iterators_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/node_iterators.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/r_erase_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/rotate_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/split_join_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_hash_assoc_cntnr
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cc_ht_map_.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cmp_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cond_key_dtor_entry_dealtor.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_no_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/entry_list_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_no_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_no_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/info_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_no_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/iterators_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/policy_access_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_no_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/size_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/standard_policies.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/cond_dealtor.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/ds_trait_imp.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn/eq_by_less.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn/hash_eq_fn.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_hash_assoc_cntnr
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_no_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_no_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_no_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/gp_ht_map_.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/info_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_no_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/iterator_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/policy_access_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_no_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_store_hash_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/direct_mask_range_hashing_imp.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/direct_mod_range_hashing_imp.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/linear_probe_fn_imp.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/mask_based_range_hashing.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/mod_based_range_hashing.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/probe_fn_base.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/quadratic_probe_fn_imp.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/ranged_hash_fn.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/ranged_probe_fn.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_types_traits.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr/constructor_destructor_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr/policy_access_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/constructor_destructor_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/debug_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/erase_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/find_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/info_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/insert_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/iterators_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/lu_map_.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/policy_access_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/counter_lu_metadata_imp.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/counter_lu_policy_imp.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/mtf_lu_policy_imp.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/map_debug_base.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/mapping_level_imp.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/ms_category_imp.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/ms_trait_imp.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/order_statistics_imp.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/cond_dtor.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/debug_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/erase_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/find_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/info_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/insert_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/iterators_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/node_iterators.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/ov_tree_map_.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/split_join_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/debug_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/erase_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/find_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/info_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/insert_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/node.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/rb_tree_.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/split_join_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/cc_hash_max_collision_resize_trigger_imp.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_exponential_size_policy_imp.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_prime_size_policy_imp.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_standard_resize_policy_imp.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/ht_prime_size_policy_imp.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/size_base.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/constructors_destructor_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/debug_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/erase_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/find_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/info_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/insert_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/node.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/splay_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/splay_tree_.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/split_join_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/standard_policies.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/standard_sizes.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_assoc_cntnr
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_assoc_cntnr/constructor_destructor_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy/null_node_updator_imp.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy/order_statistics_imp.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/type_utils.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_append.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_apply.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_at_index.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_contains.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_filter.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_transform.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_typelist_append.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/types_traits.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/const_find_iterator.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/const_iterator.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/find_iterator.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/iterator.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/constructor_destructor_and_related.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/erase_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/erase_if_pred.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/find_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/info_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/insert_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/invalidation_guarantee_selector.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/it_value_type_traits.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/iterator.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/iterator_fn_imps.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/ref_pair.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/value_type_adapter.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/value_type_traits.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/ds_trait.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/exception.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/hash_policy.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/lu_policy.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/ms_trait.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/tree_policy.hpp
-/usr/include/c++/4.1.2/ext/pb_assoc/trivial_iterator_def.hpp
-/usr/include/c++/4.1.2/ext/pod_char_traits.h
-/usr/include/c++/4.1.2/ext/pool_allocator.h
-/usr/include/c++/4.1.2/ext/rb_tree
-/usr/include/c++/4.1.2/ext/rc_string_base.h
-/usr/include/c++/4.1.2/ext/rope
-/usr/include/c++/4.1.2/ext/ropeimpl.h
-/usr/include/c++/4.1.2/ext/slist
-/usr/include/c++/4.1.2/ext/sso_string_base.h
-/usr/include/c++/4.1.2/ext/stdio_filebuf.h
-/usr/include/c++/4.1.2/ext/stdio_sync_filebuf.h
-/usr/include/c++/4.1.2/ext/typelist.h
-/usr/include/c++/4.1.2/ext/vstring.h
-/usr/include/c++/4.1.2/ext/vstring.tcc
-/usr/include/c++/4.1.2/ext/vstring_fwd.h
-/usr/include/c++/4.1.2/ext/vstring_util.h
-/usr/include/c++/4.1.2/fstream
-/usr/include/c++/4.1.2/functional
-/usr/include/c++/4.1.2/i486-pc-linux-gnu
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/atomic_word.h
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/basic_file.h
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/c++allocator.h
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/c++config.h
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/c++io.h
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/c++locale.h
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/cpu_defines.h
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/ctype_base.h
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/ctype_inline.h
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/ctype_noninline.h
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/cxxabi_tweaks.h
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/gthr-default.h
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/gthr-posix.h
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/gthr-single.h
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/gthr-tpf.h
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/gthr.h
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/messages_members.h
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/os_defines.h
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/stdc++.h.gch
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/stdc++.h.gch/O0g.gch
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/stdc++.h.gch/O2g.gch
-/usr/include/c++/4.1.2/i486-pc-linux-gnu/bits/time_members.h
-/usr/include/c++/4.1.2/iomanip
-/usr/include/c++/4.1.2/ios
-/usr/include/c++/4.1.2/iosfwd
-/usr/include/c++/4.1.2/iostream
-/usr/include/c++/4.1.2/istream
-/usr/include/c++/4.1.2/iterator
-/usr/include/c++/4.1.2/limits
-/usr/include/c++/4.1.2/list
-/usr/include/c++/4.1.2/locale
-/usr/include/c++/4.1.2/map
-/usr/include/c++/4.1.2/memory
-/usr/include/c++/4.1.2/new
-/usr/include/c++/4.1.2/numeric
-/usr/include/c++/4.1.2/ostream
-/usr/include/c++/4.1.2/queue
-/usr/include/c++/4.1.2/set
-/usr/include/c++/4.1.2/sstream
-/usr/include/c++/4.1.2/stack
-/usr/include/c++/4.1.2/stdexcept
-/usr/include/c++/4.1.2/streambuf
-/usr/include/c++/4.1.2/string
-/usr/include/c++/4.1.2/tr1
-/usr/include/c++/4.1.2/tr1/array
-/usr/include/c++/4.1.2/tr1/bind_iterate.h
-/usr/include/c++/4.1.2/tr1/bind_repeat.h
-/usr/include/c++/4.1.2/tr1/boost_shared_ptr.h
-/usr/include/c++/4.1.2/tr1/functional
-/usr/include/c++/4.1.2/tr1/functional_iterate.h
-/usr/include/c++/4.1.2/tr1/hashtable
-/usr/include/c++/4.1.2/tr1/memory
-/usr/include/c++/4.1.2/tr1/mu_iterate.h
-/usr/include/c++/4.1.2/tr1/ref_fwd.h
-/usr/include/c++/4.1.2/tr1/ref_wrap_iterate.h
-/usr/include/c++/4.1.2/tr1/repeat.h
-/usr/include/c++/4.1.2/tr1/tuple
-/usr/include/c++/4.1.2/tr1/tuple_iterate.h
-/usr/include/c++/4.1.2/tr1/type_traits
-/usr/include/c++/4.1.2/tr1/type_traits_fwd.h
-/usr/include/c++/4.1.2/tr1/unordered_map
-/usr/include/c++/4.1.2/tr1/unordered_set
-/usr/include/c++/4.1.2/tr1/utility
-/usr/include/c++/4.1.2/typeinfo
-/usr/include/c++/4.1.2/utility
-/usr/include/c++/4.1.2/valarray
-/usr/include/c++/4.1.2/vector
-/usr/lib
-/usr/lib/gcc
-/usr/lib/gcc/i486-pc-linux-gnu
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/specs-local
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/specs-local/specs_g++
-/usr/lib/libsupc++.a
-/usr/lib/libsupc++.la
-/usr/libexec/gcc/i486-pc-linux-gnu/4.1.2/cc1plus
-/usr/share
-/usr/share/doc
-/usr/share/doc/g++
-/usr/share/doc/g++/COPYING
-/usr/share/doc/g++/FAQ
-/usr/share/doc/g++/INSTALL
-/usr/share/doc/g++/INSTALL/README
-/usr/share/doc/g++/INSTALL/binaries.html
-/usr/share/doc/g++/INSTALL/build.html
-/usr/share/doc/g++/INSTALL/configure.html
-/usr/share/doc/g++/INSTALL/download.html
-/usr/share/doc/g++/INSTALL/finalinstall.html
-/usr/share/doc/g++/INSTALL/gfdl.html
-/usr/share/doc/g++/INSTALL/index.html
-/usr/share/doc/g++/INSTALL/old.html
-/usr/share/doc/g++/INSTALL/prerequisites.html
-/usr/share/doc/g++/INSTALL/specific.html
-/usr/share/doc/g++/INSTALL/test.html
-/usr/share/doc/g++/NEWS
-/usr/share/doc/g++/README
-/usr/share/doc/g++/README.SCO
-/usr/share/man/man1/g++.1
-/var/log/sorcery/compile/g++-4.1.2.bz2
-/var/log/sorcery/install/g++-4.1.2
-/var/log/sorcery/md5sum/g++-4.1.2
diff --git a/cauldron/data/cleaners/gcc-clean
b/cauldron/data/cleaners/gcc-clean
deleted file mode 100644
index 8a9b788..0000000
--- a/cauldron/data/cleaners/gcc-clean
+++ /dev/null
@@ -1,154 +0,0 @@
-/lib/cpp
-/usr
-/usr/bin/cc
-/usr/bin/cpp
-/usr/bin/gcc
-/usr/bin/gccbug
-/usr/bin/gcov
-/usr/bin/i486-pc-linux-gnu-gcc
-/usr/bin/i486-pc-linux-gnu-gcc-4.1.2
-/usr/include
-/usr/include/mf-runtime.h
-/usr/lib
-/usr/lib/gcc
-/usr/lib/gcc/i486-pc-linux-gnu
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/crtbegin.o
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/crtbeginS.o
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/crtbeginT.o
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/crtend.o
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/crtendS.o
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/crtfastmath.o
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/./README
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/./emmintrin.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/./fixed
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/./float.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/./iso646.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/./limits.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/./mm3dnow.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/./mm_malloc.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/./mmintrin.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/./pmmintrin.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/./stdarg.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/./stdbool.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/./stddef.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/./syslimits.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/./unwind.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/./varargs.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/./xmmintrin.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/README
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/emmintrin.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/fixed
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/float.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/iso646.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/limits.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/mm3dnow.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/mm_malloc.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/mmintrin.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/pmmintrin.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stdarg.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stdbool.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/syslimits.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/unwind.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/varargs.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/xmmintrin.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/install-tools
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/install-tools/gsyslimits.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/install-tools/include
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/install-tools/include/README
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/install-tools/include/emmintrin.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/install-tools/include/float.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/install-tools/include/iso646.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/install-tools/include/limits.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/install-tools/include/mm3dnow.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/install-tools/include/mm_malloc.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/install-tools/include/mmintrin.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/install-tools/include/pmmintrin.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/install-tools/include/stdarg.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/install-tools/include/stdbool.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/install-tools/include/stddef.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/install-tools/include/unwind.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/install-tools/include/varargs.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/install-tools/include/xmmintrin.h
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/install-tools/macro_list
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/install-tools/mkheaders.conf
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/libgcc.a
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/libgcc_eh.a
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/libgcov.a
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/specs
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/specs-local
-/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/specs-local/specs-gcc
-/usr/lib/libiberty.a
-/usr/lib/libmudflap.a
-/usr/lib/libmudflap.la
-/usr/lib/libmudflap.so
-/usr/lib/libmudflap.so.0
-/usr/lib/libmudflap.so.0.0.0
-/usr/lib/libmudflapth.a
-/usr/lib/libmudflapth.la
-/usr/lib/libmudflapth.so
-/usr/lib/libmudflapth.so.0
-/usr/lib/libmudflapth.so.0.0.0
-/usr/lib/libssp.a
-/usr/lib/libssp.la
-/usr/lib/libssp.so
-/usr/lib/libssp.so.0
-/usr/lib/libssp.so.0.0.0
-/usr/lib/libssp_nonshared.a
-/usr/lib/libssp_nonshared.la
-/usr/libexec
-/usr/libexec/gcc
-/usr/libexec/gcc/i486-pc-linux-gnu
-/usr/libexec/gcc/i486-pc-linux-gnu/4.1.2
-/usr/libexec/gcc/i486-pc-linux-gnu/4.1.2/cc1
-/usr/libexec/gcc/i486-pc-linux-gnu/4.1.2/collect2
-/usr/libexec/gcc/i486-pc-linux-gnu/4.1.2/install-tools
-/usr/libexec/gcc/i486-pc-linux-gnu/4.1.2/install-tools/fixinc.sh
-/usr/libexec/gcc/i486-pc-linux-gnu/4.1.2/install-tools/fixincl
-/usr/libexec/gcc/i486-pc-linux-gnu/4.1.2/install-tools/mkheaders
-/usr/share/info/cpp.info
-/usr/share/info/cppinternals.info
-/usr/share/info/gcc.info
-/usr/share/info/gccinstall.info
-/usr/share/info/gccint.info
-/usr/share/locale/be/LC_MESSAGES/cpplib.mo
-/usr/share/locale/be/LC_MESSAGES/gcc.mo
-/usr/share/locale/ca/LC_MESSAGES/cpplib.mo
-/usr/share/locale/ca/LC_MESSAGES/gcc.mo
-/usr/share/locale/da/LC_MESSAGES/cpplib.mo
-/usr/share/locale/da/LC_MESSAGES/gcc.mo
-/usr/share/locale/de/LC_MESSAGES/cpplib.mo
-/usr/share/locale/de/LC_MESSAGES/gcc.mo
-/usr/share/locale/el/LC_MESSAGES/cpplib.mo
-/usr/share/locale/el/LC_MESSAGES/gcc.mo
-/usr/share/locale/es/LC_MESSAGES/cpplib.mo
-/usr/share/locale/es/LC_MESSAGES/gcc.mo
-/usr/share/locale/fr/LC_MESSAGES/cpplib.mo
-/usr/share/locale/fr/LC_MESSAGES/gcc.mo
-/usr/share/locale/ja/LC_MESSAGES/cpplib.mo
-/usr/share/locale/ja/LC_MESSAGES/gcc.mo
-/usr/share/locale/nl/LC_MESSAGES/cpplib.mo
-/usr/share/locale/nl/LC_MESSAGES/gcc.mo
-/usr/share/locale/ru/LC_MESSAGES/gcc.mo
-/usr/share/locale/rw/LC_MESSAGES/cpplib.mo
-/usr/share/locale/rw/LC_MESSAGES/gcc.mo
-/usr/share/locale/sv/LC_MESSAGES/cpplib.mo
-/usr/share/locale/sv/LC_MESSAGES/gcc.mo
-/usr/share/locale/tr/LC_MESSAGES/cpplib.mo
-/usr/share/locale/tr/LC_MESSAGES/gcc.mo
-/usr/share/locale/vi/LC_MESSAGES/cpplib.mo
-/usr/share/locale/zh_CN/LC_MESSAGES/cpplib.mo
-/usr/share/locale/zh_CN/LC_MESSAGES/gcc.mo
-/usr/share/locale/zh_TW/LC_MESSAGES/cpplib.mo
-/usr/share/locale/zh_TW/LC_MESSAGES/gcc.mo
-/usr/share/man/man1/cpp.1
-/usr/share/man/man1/gcc.1
-/usr/share/man/man1/gcov.1
-/usr/share/man/man7/fsf-funding.7
-/usr/share/man/man7/gfdl.7
-/usr/share/man/man7/gpl.7
-/var/log/sorcery/compile/gcc-4.1.2.bz2
-/var/log/sorcery/install/gcc-4.1.2
-/var/log/sorcery/md5sum/gcc-4.1.2
diff --git a/cauldron/data/cleaners/grub-clean
b/cauldron/data/cleaners/grub-clean
deleted file mode 100644
index 11c7c95..0000000
--- a/cauldron/data/cleaners/grub-clean
+++ /dev/null
@@ -1,44 +0,0 @@
-/boot
-/boot/grub
-/boot/grub/images
-/boot/grub/images/smgl-splash.xpm.gz
-/sbin
-/sbin/grub
-/sbin/grub-install
-/sbin/grub-md5-crypt
-/sbin/grub-set-default
-/sbin/grub-terminfo
-/usr
-/usr/bin
-/usr/bin/mbchk
-/usr/lib
-/usr/lib/grub
-/usr/lib/grub/i386-pc
-/usr/lib/grub/i386-pc/e2fs_stage1_5
-/usr/lib/grub/i386-pc/fat_stage1_5
-/usr/lib/grub/i386-pc/ffs_stage1_5
-/usr/lib/grub/i386-pc/iso9660_stage1_5
-/usr/lib/grub/i386-pc/jfs_stage1_5
-/usr/lib/grub/i386-pc/minix_stage1_5
-/usr/lib/grub/i386-pc/reiserfs_stage1_5
-/usr/lib/grub/i386-pc/stage1
-/usr/lib/grub/i386-pc/stage2
-/usr/lib/grub/i386-pc/stage2_eltorito
-/usr/lib/grub/i386-pc/ufs2_stage1_5
-/usr/lib/grub/i386-pc/vstafs_stage1_5
-/usr/lib/grub/i386-pc/xfs_stage1_5
-/usr/share
-/usr/share/info
-/usr/share/info/grub.info
-/usr/share/info/multiboot.info
-/usr/share/man
-/usr/share/man/man1
-/usr/share/man/man1/mbchk.1
-/usr/share/man/man8
-/usr/share/man/man8/grub-install.8
-/usr/share/man/man8/grub-md5-crypt.8
-/usr/share/man/man8/grub-terminfo.8
-/usr/share/man/man8/grub.8
-/var/log/sorcery/compile/grub-0.97.bz2
-/var/log/sorcery/install/grub-0.97
-/var/log/sorcery/md5sum/grub-0.97
diff --git a/cauldron/data/cleaners/installwatch-clean
b/cauldron/data/cleaners/installwatch-clean
deleted file mode 100644
index fb8c8aa..0000000
--- a/cauldron/data/cleaners/installwatch-clean
+++ /dev/null
@@ -1,5 +0,0 @@
-/usr/bin/installwatch
-/usr/lib/installwatch.so
-/var/log/sorcery/compile/installwatch-0.6.3.bz2
-/var/log/sorcery/install/installwatch-0.6.3
-/var/log/sorcery/md5sum/installwatch-0.6.3
diff --git a/cauldron/data/cleaners/libidn-clean
b/cauldron/data/cleaners/libidn-clean
deleted file mode 100644
index 1208b12..0000000
--- a/cauldron/data/cleaners/libidn-clean
+++ /dev/null
@@ -1 +0,0 @@
-Install log for libidn does not exist
diff --git a/cauldron/data/cleaners/lilo-clean
b/cauldron/data/cleaners/lilo-clean
deleted file mode 100644
index 309f7dd..0000000
--- a/cauldron/data/cleaners/lilo-clean
+++ /dev/null
@@ -1,52 +0,0 @@
-/boot
-/boot/boot.bmp
-/boot/diag1.img
-/etc
-/etc/lilo.raid.conf
-/etc/lilo.sample.conf
-/sbin
-/sbin/lilo
-/sbin/mkrescue
-/usr
-/usr/sbin
-/usr/sbin/keytab-lilo.pl
-/usr/share
-/usr/share/doc
-/usr/share/doc/lilo
-/usr/share/doc/lilo/CHANGES
-/usr/share/doc/lilo/COPYING
-/usr/share/doc/lilo/README
-/usr/share/doc/lilo/README.bitmaps
-/usr/share/doc/lilo/README.common.problems
-/usr/share/doc/lilo/README.disk
-/usr/share/doc/lilo/README.nokeyboard
-/usr/share/doc/lilo/README.pseudo
-/usr/share/doc/lilo/README.raid1
-/usr/share/doc/lilo/README.volumeID
-/usr/share/doc/lilo/doc
-/usr/share/doc/lilo/doc/Makefile
-/usr/share/doc/lilo/doc/README
-/usr/share/doc/lilo/doc/bootloader.fig
-/usr/share/doc/lilo/doc/bootloader.tex
-/usr/share/doc/lilo/doc/fullpage.sty
-/usr/share/doc/lilo/doc/image.fig
-/usr/share/doc/lilo/doc/image.tex
-/usr/share/doc/lilo/doc/map.fig
-/usr/share/doc/lilo/doc/map.tex
-/usr/share/doc/lilo/doc/other.fig
-/usr/share/doc/lilo/doc/other.tex
-/usr/share/doc/lilo/doc/parameter.fig
-/usr/share/doc/lilo/doc/parameter.tex
-/usr/share/doc/lilo/doc/rlatex
-/usr/share/doc/lilo/doc/t2a.pl
-/usr/share/doc/lilo/doc/tech.tex
-/usr/share/doc/lilo/doc/user.tex
-/usr/share/man
-/usr/share/man/man5
-/usr/share/man/man5/lilo.conf.5
-/usr/share/man/man8
-/usr/share/man/man8/lilo.8
-/usr/share/man/man8/mkrescue.8
-/var/log/sorcery/compile/lilo-22.8.bz2
-/var/log/sorcery/install/lilo-22.8
-/var/log/sorcery/md5sum/lilo-22.8
diff --git a/cauldron/data/cleaners/m4-clean b/cauldron/data/cleaners/m4-clean
deleted file mode 100644
index 00b4c81..0000000
--- a/cauldron/data/cleaners/m4-clean
+++ /dev/null
@@ -1,31 +0,0 @@
-/usr
-/usr/bin
-/usr/bin/m4
-/usr/share
-/usr/share/doc
-/usr/share/doc/m4
-/usr/share/doc/m4/COPYING
-/usr/share/doc/m4/NEWS
-/usr/share/doc/m4/README
-/usr/share/doc/m4/doc
-/usr/share/doc/m4/doc/Makefile
-/usr/share/doc/m4/doc/Makefile.am
-/usr/share/doc/m4/doc/Makefile.in
-/usr/share/doc/m4/doc/fdl.texi
-/usr/share/doc/m4/doc/gendocs_template
-/usr/share/doc/m4/doc/gpl-3.0.texi
-/usr/share/doc/m4/doc/m4.1
-/usr/share/doc/m4/doc/m4.info
-/usr/share/doc/m4/doc/m4.texinfo
-/usr/share/doc/m4/doc/mdate-sh
-/usr/share/doc/m4/doc/stamp-vti
-/usr/share/doc/m4/doc/texinfo.tex
-/usr/share/doc/m4/doc/version.texi
-/usr/share/info
-/usr/share/info/m4.info
-/usr/share/man
-/usr/share/man/man1
-/usr/share/man/man1/m4.1
-/var/log/sorcery/compile/m4-1.4.10.bz2
-/var/log/sorcery/install/m4-1.4.10
-/var/log/sorcery/md5sum/m4-1.4.10
diff --git a/cauldron/data/config/arch/host_arch.conf
b/cauldron/data/config/arch/host_arch.conf
deleted file mode 100644
index e92e843..0000000
--- a/cauldron/data/config/arch/host_arch.conf
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-# contains the arch info for the HOST
-CAULDRON_HOST_TRIPLE="${CAULDRON_HOST_TRIPLE:-}"
-
-CAULDRON_HOST_ARCH_PATH=$(grep 'ARCH_SPECS=' "$CAULDRON_HSORCERY_CONFIG" |
cut -d= -f2-)
-
-CAULDRON_HOST_CACHE_PATH="${CAULDRON_HOST_CACHE_PATH:-/var/cache/sorcery}"
-
-eval CAULDRON_HOST_ARCH=$(grep 'ARCHITECTURE=' "$CAULDRON_HSORCERY_CONFIG" |
cut -d= -f2-)
-
-eval CAULDRON_CACHE_EXTENSION=$(grep 'EXTENSION='
"$CAULDRON_HSORCERY_CONFIG" | cut -d= -f2-)
-
-
-# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
diff --git a/cauldron/data/config/arch/ppc.conf
b/cauldron/data/config/arch/ppc.conf
deleted file mode 100644
index a30f03e..0000000
--- a/cauldron/data/config/arch/ppc.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-# the arch to generate the .iso for
-CAULDRON_ARCH="${CAULDRON_ARCH:-ppc}"
-
diff --git a/cauldron/data/config/arch/x86.conf
b/cauldron/data/config/arch/x86.conf
deleted file mode 100644
index 0b4d32d..0000000
--- a/cauldron/data/config/arch/x86.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-# the arch to generate the .iso for
-CAULDRON_ARCH="${CAULDRON_ARCH:-x86}"
-
diff --git a/cauldron/data/config/arch/x86_64.conf
b/cauldron/data/config/arch/x86_64.conf
deleted file mode 100644
index 5134a8f..0000000
--- a/cauldron/data/config/arch/x86_64.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-# the arch to generate the .iso for
-CAULDRON_ARCH="${CAULDRON_ARCH:-x86_64}"
-
diff --git a/cauldron/data/config/build.conf b/cauldron/data/config/build.conf
deleted file mode 100644
index 2eb904f..0000000
--- a/cauldron/data/config/build.conf
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash
-
-# path to the build chroots
-CAULDRON_BUILD="${CAULDRON_BUILD:-$CAULDRON_TMP/build}"
-
-# path to working resolv.conf that can be used to resolv hostnames and
download
-# necessary source files
-CAULDRON_RESOLV="${CAULDRON_RESOLV:-$CAULDRON_HOST/etc/resolv.conf}"
-
-# file listing all the spells needed for the build toolchain
-CAULDRON_TOOLCHAIN="${CAULDRON_TOOLCHAIN:-$CAULDRON_DATA/$CAULDRON_ARCH/toolchain}"
-
-# name of the local on-disk basesystem chroot image to use for the
-# baseroot method (i.e. cauldron_toolchain_baseroot)
-CAULDRON_BASEROOT="${CAULDRON_BASEROOT:-smgl-stable-0.47-basesystem-$CAULDRON_ARCH.tar.bz2}"
-# URL to a basesystem chroot for use with cauldron_toolchain_baseroot
-# only used when generating CAULDRON_BUILD from the baseroot method
-CAULDRON_BASEROOT_URL="${CAULDRON_BASEROOT_URL:-http://download.sourcemage.org/image/official/$CAULDRON_BASEROOT}";
-
-# whether CAULDRON_BUILD should be rm'ed after cauldron has finished
-CAULDRON_CLEAN="${CAULDRON_CLEAN:-no}"
-
-# whether cauldron should try it's hardest to generate needed spell
-# caches, even if that means casting and dispelling extra spells in a
-# chroot (only used when generating the base toolchain)
-CAULDRON_AGGRESSIVE="${CAULDRON_AGGRESSIVE:-yes}"
-
diff --git a/cauldron/data/config/commands.conf
b/cauldron/data/config/commands.conf
deleted file mode 100644
index 866b3db..0000000
--- a/cauldron/data/config/commands.conf
+++ /dev/null
@@ -1,307 +0,0 @@
-#!/bin/bash
-
-# command to output text strings (typically echo, output to STDOUT
-[[ -n "${CAULDRON_CMD_OUTPUT[@]}" ]] ||
- CAULDRON_CMD_OUTPUT=(
- echo
- )
-
-# command to enter a chroot
-[[ -n "${CAULDRON_CMD_CHROOT[@]}" ]] ||
- CAULDRON_CMD_CHROOT=(
- chroot
- )
-
-# command to download a url from the internet
-[[ -n "${CAULDRON_CMD_URL_DL[@]}" ]] ||
- CAULDRON_CMD_URL_DL=(
- wget
- )
-
-# command used to generate the final iso media
-[[ -n "${CAULDRON_CMD_MKISOFS[@]}" ]] ||
- CAULDRON_CMD_MKISOFS=(
- mkisofs
- -R
- -b isolinux/isolinux.bin
- -c isolinux/boot.cat
- -no-emul-boot
- -boot-load-size 4
- -boot-info-table
- -o "$CAULDRON_ISO_NAME"
- "$CAULDRON_BUILD"
- )
-
-# command to archive the sys package (e.g., tar, cpio, etc.)
-[[ -n "${CAULDRON_CMD_ARCHIVE_SYS[@]}" ]] ||
- CAULDRON_CMD_ARCHIVE_SYS=(
- tar
- -cf "$CAULDRON_BUILD"/"${CAULDRON_SYS_NAME}.tar"
- -C "$CAULDRON_SYS"
- )
-
-# command used for compressing files
-[[ -n "${CAULDRON_CMD_COMPRESS[@]}" ]] ||
- CAULDRON_CMD_COMPRESS=(
- bzip2
- )
-
-# command for (un)archiving files/directory trees
-[[ -n "${CAULDRON_CMD_TAR[@]}" ]] ||
- CAULDRON_CMD_TAR=(
- tar
- )
-
-# command to unpack an arbitrary archive
-[[ -n "${CAULDRON_CMD_TAR_UNPACK[@]}" ]] ||
- CAULDRON_CMD_TAR_UNPACK=(
- tar
- -xf
- )
-# command to unpack a sorcery archive into the cauldron build usr/src dir
-[[ -n "${CAULDRON_CMD_UNPACK_SORCERY[@]}" ]] ||
- CAULDRON_CMD_UNPACK_SORCERY=(
- "${CAULDRON_CMD_TAR[@]}"
- -C "$CAULDRON_BUILD/usr/src"
- -xf
- )
-
-# command to unpack a baseroot archive into the cauldron build baseroot dir
-[[ -n "${CAULDRON_CMD_UNPACK_BASEROOT[@]}" ]] ||
- CAULDRON_CMD_UNPACK_BASEROOT=(
- "${CAULDRON_CMD_TAR[@]}"
- -C "$CAULDRON_BUILD/baseroot"
- -xf
- )
-
-# command to unpack a baseroot archive into the cauldron build dir
-[[ -n "${CAULDRON_CMD_UNPACK_BUILD[@]}" ]] ||
- CAULDRON_CMD_UNPACK_BUILD=(
- "${CAULDRON_CMD_TAR[@]}"
- -C "$CAULDRON_BUILD/"
- -xf
- )
-
-# command to chmod files
-[[ -n "${CAULDRON_CMD_CHMOD[@]}" ]] ||
- CAULDRON_CMD_CHMOD=(
- chmod
- )
-
-# command to make directories
-[[ -n "${CAULDRON_CMD_MKDIR[@]}" ]] ||
- CAULDRON_CMD_MKDIR=(
- mkdir
- -p
- )
-
-# command to remove directories
-[[ -n "${CAULDRON_CMD_RMDIR[@]}" ]] ||
- CAULDRON_CMD_RMDIR=(
- rmdir
- )
-
-# command to copy
-[[ -n "${CAULDRON_CMD_CP[@]}" ]] ||
- CAULDRON_CMD_CP=(
- cp
- )
-
-# command to copy forcefully
-[[ -n "${CAULDRON_CMD_CP_FORCE[@]}" ]] ||
- CAULDRON_CMD_CP_FORCE=(
- "${CAULDRON_CMD_CP[@]}"
- -f
- )
-
-# command to copy recursively
-[[ -n "${CAULDRON_CMD_CP_RECURSE[@]}" ]] ||
- CAULDRON_CMD_CP_RECURSE=(
- "${CAULDRON_CMD_CP[@]}"
- -r
- )
-
-# command to copy recursively forcefully
-[[ -n "${CAULDRON_CMD_CP_RECURSE_FORCE[@]}" ]] ||
- CAULDRON_CMD_CP_RECURSE_FORCE=(
- "${CAULDRON_CMD_CP_RECURSE[@]}"
- -f
- )
-
-# command to copy while preserving mode, ownership, and timestamps
-[[ -n "${CAULDRON_CMD_CP_PRESERVE[@]}" ]] ||
- CAULDRON_CMD_CP_PRESERVE=(
- "${CAULDRON_CMD_CP[@]}"
- -a
- )
-
-# command to copy recursively, preserving mode, ownership, and timestamps
-[[ -n "${CAULDRON_CMD_CP_EXACT[@]}" ]] ||
- CAULDRON_CMD_CP_EXACT=(
- "${CAULDRON_CMD_CP[@]}"
- -a --parents
- )
-
-# command to remove files
-[[ -n "${CAULDRON_CMD_RM[@]}" ]] ||
- CAULDRON_CMD_RM=(
- rm
- )
-
-# command to remove files forcefully
-[[ -n "${CAULDRON_CMD_RM_FORCE[@]}" ]] ||
- eval CAULDRON_CMD_RM_FORCE=(
- "${CAULDRON_CMD_RM[@]}"
- -f
- )
-
-# command to remove files recursively
-[[ -n "${CAULDRON_CMD_RM_RECURSE[@]}" ]] ||
- CAULDRON_CMD_RM_RECURSE=(
- "${CAULDRON_CMD_RM[@]}"
- -r
- )
-
-# command to remove files recursively forcefully
-[[ -n "${CAULDRON_CMD_RM_RECURSE_FORCE[@]}" ]] ||
- CAULDRON_CMD_RM_RECURSE_FORCE=(
- "${CAULDRON_CMD_RM_RECURSE[@]}"
- -f
- )
-
-[[ -n "${CAULDRON_CMD_SYMLINK[@]}" ]] ||
- CAULDRON_CMD_SYMLINK=(
- ln
- -s
- )
-
-[[ -n "${CAULDRON_CMD_SYMLINK_FORCE[@]}" ]] ||
- CAULDRON_CMD_SYMLINK_FORCE=(
- "${CAULDRON_CMD_SYMLINK[@]}"
- -f
- )
-
-[[ -n "${CAULDRON_CMD_HARDLINK[@]}" ]] ||
- CAULDRON_CMD_HARDLINK=(
- ln
- )
-
-[[ -n "${CAULDRON_CMD_HARDLINK_FORCE[@]}" ]] ||
- CAULDRON_CMD_HARDLINK_FORCE=(
- "${CAULDRON_CMD_HARDLINK[@]}"
- -f
- )
-
-# command to mount a filesystem
-[[ -n "${CAULDRON_CMD_MOUNT[@]}" ]] ||
- CAULDRON_CMD_MOUNT=(
- mount
- )
-
-# command to bind-mount a filesystem
-[[ -n "${CAULDRON_CMD_MOUNT_BIND[@]}" ]] ||
- CAULDRON_CMD_MOUNT_BIND=(
- "${CAULDRON_CMD_MOUNT[@]}"
- --bind
- )
-
-# command to loop-mount a filesystem
-[[ -n "${CAULDRON_CMD_MOUNT_LOOP[@]}" ]] ||
- CAULDRON_CMD_MOUNT_LOOP=(
- "${CAULDRON_CMD_MOUNT[@]}"
- -o loop
- )
-
-# command to unmount a filesystem
-[[ -n "${CAULDRON_CMD_UNMOUNT[@]}" ]] ||
- CAULDRON_CMD_UNMOUNT=(
- umount
- )
-
-# command to create the ramdisk filesystem (typically ext2)
-[[ -n "${CAULDRON_CMD_MKRDFS[@]}" ]] ||
- CAULDRON_CMD_MKRDFS=(
- mke2fs
- )
-
-# command to compress the iso ramdisk
-[[ -n "${CAULDRON_CMD_COMPRESS_RAMDISK[@]}" ]] ||
- CAULDRON_CMD_COMPRESS_RAMDISK=(
- gzip
- -9
- )
-
-# command to dump data
-[[ -n "${CAULDRON_CMD_DD[@]}" ]] ||
- CAULDRON_CMD_DD=(
- dd
- )
-
-# command to concatenate a file
-[[ -n "${CAULDRON_CMD_CAT[@]}" ]] ||
- CAULDRON_CMD_CAT=(
- cat
- )
-
-# command to package the iso initramfs
-[[ -n "${CAULDRON_CMD_MKRAMFS[@]}" ]] ||
- CAULDRON_CMD_MKRAMFS=(
- find * -depth -print \| cpio -H newc -o \| gzip -9c
- )
-
-# command to find files
-[[ -n "${CAULDRON_CMD_FIND[@]}" ]] ||
- CAULDRON_CMD_FIND=(
- find
- )
-
-# command to grep a file/stream
-[[ -n "${CAULDRON_CMD_GREP[@]}" ]] ||
- CAULDRON_CMD_GREP=(
- grep
- )
-
-# command to grep a file/stream
-[[ -n "${CAULDRON_CMD_GREP_QUIET[@]}" ]] ||
- CAULDRON_CMD_GREP_QUIET=(
- grep
- -q
- )
-
-# command to split a text stream by delimiters
-[[ -n "${CAULDRON_CMD_CUT[@]}" ]] ||
- CAULDRON_CMD_CUT=(
- cut
- )
-
-# command to awk a file/stream
-[[ -n "${CAULDRON_CMD_AWK[@]}" ]] ||
- CAULDRON_CMD_AWK=(
- gawk
- )
-
-# command to sed a file/stream
-[[ -n "${CAULDRON_CMD_SED[@]}" ]] ||
- CAULDRON_CMD_SED=(
- sed
- )
-
-# sorcery cast/dispel/rebuild commands
-[[ -n "${CAULDRON_CMD_CAST[@]}" ]] ||
- CAULDRON_CMD_CAST=(
- "$CAULDRON_HSORCERY_PATH/cast"
- )
-[[ -n "${CAULDRON_CMD_DISPEL[@]}" ]] ||
- CAULDRON_CMD_DISPEL=(
- "$CAULDRON_HSORCERY_PATH/dispel"
- )
-[[ -n "${CAULDRON_CMD_REBUILD[@]}" ]] ||
- CAULDRON_CMD_REBUILD=(
- "$CAULDRON_HSORCERY_PATH/sorcery"
- rebuild
- )
-[[ -n "${CAULDRON_CMD_GAZE_INSTALLED[@]}" ]] ||
- CAULDRON_CMD_GAZE_INSTALLED=(
- gaze -q installed
- )
-# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
diff --git a/cauldron/data/config/default.conf
b/cauldron/data/config/default.conf
deleted file mode 100644
index 9225ffe..0000000
--- a/cauldron/data/config/default.conf
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-
-# base configuration values
-source "$CAULDRON_CONF/paths.conf"
-source "$CAULDRON_CONF/security.conf"
-source "$CAULDRON_CONF/display.conf"
-
-# output product configuration values
-source "$CAULDRON_CONF/iso.conf"
-source "$CAULDRON_CONF/sys.conf"
-
-# interaction with sorcery
-source "$CAULDRON_CONF/sorcery.conf"
-
-# build configurations (toolchain, product builds)
-source "$CAULDRON_CONF/build.conf"
-
-# host architecture (i.e., the arch of the system running cauldron, not the
-# arch of the media to be generated)
-source "$CAULDRON_CONF/arch/host_arch.conf"
-
-# should be sourced last, since some of the command definitions depend on
other
-# config variable definitions
-source "$CAULDRON_CONF/commands.conf"
-
diff --git a/cauldron/data/config/display.conf
b/cauldron/data/config/display.conf
deleted file mode 100644
index f850ac1..0000000
--- a/cauldron/data/config/display.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-# whether to use color for displaying messages
-CAULDRON_COLOR="${CAULDRON_COLOR:-yes}"
-
diff --git a/cauldron/data/config/iso.conf b/cauldron/data/config/iso.conf
deleted file mode 100644
index 18bf91c..0000000
--- a/cauldron/data/config/iso.conf
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash
-
-# path where the final ISO product is generated
-CAULDRON_ISO="${CAULDRON_ISO:-$CAULDRON_TMP/iso}"
-
-# kernel config used to build the kernel for the ISO
-CAULDRON_KERN_CONF="${CAULDRON_KERN_CONF:-$CAULDRON_DATA/$CAULDRON_ARCH/kernel}"
-
-# the version of the kernel to be used in the .iso
-# if empty, then it will default to the version in cauldron
-CAULDRON_KVERS="${CAULDRON_KVERS:-}"
-
-# busybox config used to build busybox for the initrd/initramfs in the ISO
-CAULDRON_BBOX_CONF="${CAULDRON_BBOX_CONF:-$CAULDRON_DATA/$CAULDRON_ARCH/initfs/busybox}"
-
-# file listing all the spells to compose the ISO runtime
-CAULDRON_ISO_SPELLS="${CAULDRON_ISO_SPELLS:-$CAULDRON_DATA/$CAULDRON_ARCH/iso.spells}"
-# file listing all the sources to supply in the ISO runtime
-CAULDRON_ISO_SOURCES="${CAULDRON_ISO_SOURCES:-$CAULDRON_DATA/$CAULDRON_ARCH/iso.sources}"
-# file listing all the spell caches to supply in the ISO runtime
-CAULDRON_ISO_CACHES="${CAULDRON_ISO_CACHES:-$CAULDRON_DATA/$CAULDRON_ARCH/iso.caches}"
-
-# list of installers to include in the ISO
-CAULDRON_INSTALLERS=(
- "shell"
- # "menu"
- )
-
-# filename of the produced .iso (should follow Cauldron naming conventions)
-CAULDRON_ISO_NAME="${CAULDRON_ISO_NAME:-smgl-devel-$(date
+%Y%m%d).$CAULDRON_ARCH}"
-
-# do we keep the uncompressed .iso file in addition to the compressed one?
-CAULDRON_KEEPISO="${CAULDRON_KEEPISO:-yes}"
-
diff --git a/cauldron/data/config/paths.conf b/cauldron/data/config/paths.conf
deleted file mode 100644
index 0fea1b6..0000000
--- a/cauldron/data/config/paths.conf
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-
-# path to the host system (null for normal use)
-CAULDRON_HOST="${CAULDRON_HOST:-}"
-
-# path to the host base library modules
-CAULDRON_BASE="${CAULDRON_BASE:-$CAULDRON_HOST/usr/share/smgl}"
-
-# path to the host cauldron library modules
-CAULDRON_LIBS="${CAULDRON_LIBS:-$CAULDRON_BASE/cauldron}"
-
-# path to Source Mage common library modules
-CAULDRON_COMMON="${CAULDRON_COMMON:-$CAULDRON_BASE/common}"
-
-# path to the host cauldron configs
-CAULDRON_DATA="${CAULDRON_DATA:-$CAULDRON_HOST/etc/cauldron}"
-
-# temporary files generated while cauldron does its work
-CAULDRON_TMP="${CAULDRON_TMP:-$CAULDRON_HOST/tmp/cauldron}"
-
diff --git a/cauldron/data/config/security.conf
b/cauldron/data/config/security.conf
deleted file mode 100644
index fa9254c..0000000
--- a/cauldron/data/config/security.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-# the user cauldron should run as make sure the user you choose has proper
-# permissions (especially for chrooting)
-CAULDRON_USER="${CAULDRON_USER:-root}"
-
diff --git a/cauldron/data/config/sorcery.conf
b/cauldron/data/config/sorcery.conf
deleted file mode 100644
index e7db348..0000000
--- a/cauldron/data/config/sorcery.conf
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/bash
-
-# branch of sorcery to use in the ISO
-CAULDRON_SORCERY_BRANCH="${CAULDRON_SORCERY_BRANCH:-stable}"
-
-# whether to always download sorcery anew or use an already downloaded file
-# if found
-CAULDRON_FORCE_DOWNLOAD="${CAULDRON_FORCE_DOWNLOAD:-yes}"
-
-# branch of sorcery to use in the ISO
-CAULDRON_SORCERY_PKG="${CAULDRON_SORCERY_PKG:-sorcery-${CAULDRON_SORCERY_BRANCH}.tar.bz2}"
-
-# URL to download sorcery from
-CAULDRON_SORCERY_URL="${CAULDRON_SORCERY_URL:-http://download.sourcemage.org/sorcery/$CAULDRON_SORCERY_PKG}";
-
-# sorcery modules location in the ISO
-CAULDRON_ISORCERY_LIBS="${CAULDRON_ISORCERY_LIBS:-$CAULDRON_BUILD/var/lib/sorcery/modules}"
-# sorcery config location in the ISO
-CAULDRON_ISORCERY_CONFIG="${CAULDRON_ISORCERY_CONFIG:-$CAULDRON_BUILD/etc/sorcery/config}"
-# sorcery local config location in the ISO
-CAULDRON_ISORCERY_LCONFIG="${CAULDRON_ISORCERY_LCONFIG:-$CAULDRON_BUILD/etc/sorcery/local/config}"
-
-# host system sorcery libraries/modules
-CAULDRON_HSORCERY_LIBS="${CAULDRON_HSORCERY_LIBS:-$CAULDRON_HOST/var/lib/sorcery/modules}"
-# host system sorcery config
-CAULDRON_HSORCERY_CONFIG="${CAULDRON_HSORCERY_CONFIG:-$CAULDRON_HOST/etc/sorcery/config}"
-# host system sorcery local config
-CAULDRON_HSORCERY_LCONFIG="${CAULDRON_HSORCERY_LCONFIG:-$CAULDRON_HOST/etc/sorcery/local/config}"
-# host system sorcery packages file (lists installed packages)
-CAULDRON_HSORCERY_PACKAGES="${CAULDRON_HSORCERY_PACKAGES:-$CAULDRON_HOST/var/state/sorcery/packages}"
-# host system sorcery spool location (where spell sources are kept)
-CAULDRON_HSORCERY_SPOOL="${CAULDRON_HSORCERY_SPOOL:-$CAULDRON_HOST/var/spool/sorcery}"
-
-# path where sorcery binaries are located
-CAULDRON_HSORCERY_PATH="${CAULDRON_SORCERY_PATH:-$CAULDRON_HOST/usr/sbin}"
-
-# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
diff --git a/cauldron/data/config/sys.conf b/cauldron/data/config/sys.conf
deleted file mode 100644
index 29b583f..0000000
--- a/cauldron/data/config/sys.conf
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-
-# path where the installable system chroot is generated
-CAULDRON_SYS="${CAULDRON_SYS:-$CAULDRON_TMP/sys}"
-
-# file listing all the spells to compose the SYS runtime
-CAULDRON_SYS_SPELLS="${CAULDRON_SYS_SPELLS:-$CAULDRON_DATA/$CAULDRON_ARCH/sys.spells}"
-# file listing all the sources to supply in the SYS runtime
-CAULDRON_SYS_SOURCES="${CAULDRON_SYS_SOURCES:-$CAULDRON_DATA/$CAULDRON_ARCH/sys.sources}"
-# file listing all the spell caches to supply in the SYS runtime
-CAULDRON_SYS_CACHES="${CAULDRON_SYS_CACHES:-$CAULDRON_DATA/$CAULDRON_ARCH/sys.caches}"
-
-# base filename (i.e., without any suffixes) of the compressed system archive
-# that goes into the base of the iso filesystem for base installation
-CAULDRON_SYS_NAME="${CAULDRON_SYS_NAME:-system}"
-
diff --git a/cauldron/doc/cauldron.8 b/cauldron/doc/cauldron.8
new file mode 100644
index 0000000..e695231
--- /dev/null
+++ b/cauldron/doc/cauldron.8
@@ -0,0 +1,316 @@
+'\" t
+.\" Title: enchantment
+.\" Author: [see the "Authors" section]
+.\" Date: 07/06/2010
+.\" Manual: Enchantment Manual
+.\" Language: English
+.\"
+.\" Copyright 2010 by the Cauldron Team, Source Mage GNU/Linux
+.\" This software is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This software is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this software; if not, write to the Free Software
+.\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+.\"
+.TH CAULDRON 8 "12 February 2018" "Source Mage GNU/Linux" "System
Administration"
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+\fBcauldron\fR \- automated installation media creation utility
+.SH "SYNOPSIS"
+
+.nf
+\fBcauldron\fR [COMMAND [ARGS]]
+.fi
+
+.SH "DESCRIPTION"
+
+Cauldron can either be invoked without any arguments, in which case it will
run as a menu-driven program, or with the name of an action to execute, in
which case it operates as a command-line program. It uses sorcery (also from
the Source Mage GNU/Linux project) to generate the content which will
populate the installation media.
+
+Cauldron will support building for the same architecture as the host
machine, as well as cross-compilation builds (so you can use one machine to
generate installation media for multiple architectures. The cross-compilation
support is currently alpha at best, but will be improved upon in future
releases.
+
+All configuration variables are defined in
\fI/etc/cauldron/cauldron.conf\fR. Configuration variables are standard bash
variables, so they can take any definition that bash variables can take.
Although you can redefine any of the variables you choose, the more
user-level variables/definitions are at the top of the config file, with more
low-level variables defined towards the bottom.
+
+Cauldron generates installation media under the following general procedure.
+.nr step 1
+.IP \n[step]. 4
+Generate a base toolchain used to build all the packages for the
installation (both the content to install to the new system and the installer
runtime environment).
+.nr step +1
+.IP \n[step].
+Build the content to install to the new system (henceforth \fIsystem\fP) and
package it into a compressed tarball.
+.nr step +1
+.IP \n[step].
+Build the installation runtime environment (henceforth \fIiso\fP) and copy
the \fIsystem\fP tarball into it.
+.nr step +1
+.IP \n[step].
+Package the \fIiso\fP (which includes the packaged \fIsystem\fP) into the
final installation media format (typically an ISO filesystem to be burned
onto a CD) and compress it.
+
+.SH "CAULDRON USER-LEVEL COMMANDS"
+A list of user-level commands is given below. User-level commands have
dependency ordering, and ensure that dependencies are met before performing
their own functions. For each command, if it can accept any arguements, they
are described in that commands section. The commands are organized by logical
function.
+.SS "General"
+.PP
+\fBhelp\fR [TOPIC]
+.RS 4
+Displays help for a given topic. If no topic is provided, it will display a
list of topics available.
+.RE
+.SS "Components"
+.PP
+\fBiso\fR COMMAND
+.RS 4
+Performs the given COMMAND respective to the iso component. The following
commands are accepted.
+.RE
+
+.RS 4
+\fBbuild\fR
+.RE
+.RS 8
+Builds the entire iso component. This depends on the system component being
built, as well as the spell caches for the iso component being generated. If
the system hasn't been built, or if the caches aren't present for the iso
spells, it will first generate them before building the iso. In other words,
it will automatically run \fBcauldron system build\fR and \fBcauldron iso
caches\fR first, if needed.
+.RE
+
+.RS 4
+\fBupdate\fR
+.RE
+.RS 8
+Updates the entire iso component, but only the iso component. Thus, although
it has the same dependencies as \fBcauldron iso build\fR, it will re-run any
iso-specific dependencies (like \fBcauldron iso caches\fR), but it will not
re-run any other dependencies.
+.RE
+.PP
+\fBsystem\fR COMMAND
+.RS 4
+Performs the given COMMAND respective to the system component. The following
commands are accepted.
+.RE
+
+.RS 4
+\fBbuild\fR
+.RE
+.RS 8
+Builds the entire system component. This depends on the the spell caches for
the system component being generated. If the caches aren't present for the
system spells, it will first generate them before building the system. In
other words, it will automatically run \fBcauldron system caches\fR first, if
needed.
+.RE
+
+.RS 4
+\fBupdate\fR
+.RE
+.RS 8
+Updates the entire system component, but only the system component. Thus,
although it has the same dependencies as \fBcauldron system build\fR, it will
re-run any system-specific dependencies (like \fBcauldron system caches\fR),
but it will not re-run any other dependencies.
+.RE
+.SS "Generation"
+.PP
+\fBbrew\fR
+.RS 4
+Builds an iso product (typically a compressed iso9660 filesystem to be
burned on a cdrom and used as an install disk). This is dependent on all
other components being completed. If they are not present and complete, it
will call the necessary functions to generate them first.
+.RE
+.SH "CAULDRON LOW-LEVEL COMMANDS"
+A list of low-level commands is given below. Low-level commands do not have
dependency ordering, so it is up to the user to ensure that the dependencies
are met first. The commands do perform error-checking, though, so they will
report that a dependency is missing if that is the case. For each command, if
it can accept any arguements, they are described in that commands section.
The commands are organized by logical function.
+.SS "Setup"
+.PP
+\fBinit\fR
+.RS 4
+
+.RE
+.PP
+\fBpurge\fR
+.RS 4
+
+.RE
+.SS "Building"
+.PP
+\fBtoolchain\fR
+.RS 4
+Sets up the base toolchain used for building all the spells that will be
used in producing the final iso.
+.RE
+.PP
+\fBsystem caches\fR
+.RS 4
+
+.RE
+.PP
+\fBiso caches\fR
+.RS 4
+
+.RE
+.SS "Generation"
+.PP
+\fBupdate\fR
+.RS 4
+Brings a given build set up to date. This can be used both on partially
completed iso builds as well as on older builds (for which all of the
information is intact) to do a quick update of the spells and Source Mage
components (sorcery and the grimoires) without having to build a fresh iso
from scratch. Note that official releases are always built from scratch to
ensure quality.
+.RE
+.SS "Installers"
+.PP
+\fBenchant\fR
+.RS 4
+Adds the installers listed in $\fICAULDRON_INSTALLERS\fR to the iso
filesystem and performs any necessary setup, such as linking executables to
alternative names or paths.
+.RE
+.SH "TERMINOLOGY"
+.PP
+target
+.RS 4
+The system which the iso is being generated for.
+.RE
+.PP
+iso
+.RS 4
+Refers to the installation runtime. The runtime is typically available via a
burned cd, consisting of the contents of an iso9660 filesystem prepared by
cauldron, hence the labelling of the runtime as iso. This is in contrast to
system, defined below. The spells and binaries available for use in the iso
may differ from those available in the system.
+.RE
+.PP
+system
+.RS 4
+Refers to the target runtime. Note that the target runtime is not
necessarily available in the target until after a certain stage of the
installation is completed. This also refers to the pre-built compressed
archive of the minimal target runtime, typically stored as system.tar.bz2 in
the root directory of an officially released iso. The spells and binaries
available for use in the system may differ from those available in the iso.
+.RE
+.PP
+installer
+.RS 4
+A user interface to libenchantment (and the associated sub-libraries). This
includes, for example, the command-line installer (described by the present
man-page you are reading) and the TUI menu installer (which uses dialog to
display the text menus).
+.RE
+.PP
+spell
+.RS 4
+A software package.
+.RE
+.PP
+source
+.RS 4
+The source code collection needed to build a spell.
+.RE
+.PP
+cache
+.RS 4
+A compressed archive of a pre-built spell.
+.RE
+.SH "ENVIRONMENT VARIABLES"
+
+Various enchantment commands use the following user-level environment
variables. The default value is given in square brackets ('[' and ']') after
the name of the environment variable. The default values may be
overridden/changed either on the command line in the shell, or by setting the
variable's value in the enchantment config file
\fI/etc/enchantment/enchantment.conf\fR.
+.SS "Source Paths"
+.PP
+\fIENCHANT_ISO_PATH\fR [/]
+.RS 4
+This represents where the iso is running from. Unless you know what you are
doing and you want to do some really tricky hacking with the installation, it
is highly recommended that you leave this at the default setting.
+.RE
+.PP
+\fIENCHANT_SPELL_SOURCES\fR [$\fIENCHANT_ISO_PATH\fR/var/spool/sorcery]
+.RS 4
+Path where spell sources should be taken from to install into the target.
+.RE
+.PP
+\fIENCHANT_SPELL_CACHES\fR [$\fIENCHANT_ISO_PATH\fR/var/cache/sorcery]
+.RS 4
+Path where spell caches should be taken from to install into the target.
+.RE
+.SS "Target Paths"
+.PP
+\fIENCHANT_TARGET\fR [$\fIENCHANT_ISO_PATH\fR/mnt/root]
+.RS 4
+Base path where content will be installed to. Typically this is where the
root filesystem of the target system is mounted (e.g., /dev/sda1).
+.RE
+.PP
+\fIENCHANT_TARGET_SOURCES\fR [$\fIENCHANT_TARGET\fR/var/spool/sorcery]
+.RS 4
+Path where spell sources should be installed to within the target. Normally
you should not change this.
+.RE
+.PP
+\fIENCHANT_TARGET_CACHES\fR [$\fIENCHANT_TARGET\fR/var/cache/sorcery]
+.RS 4
+Path where spell caches should be installed to within the target. Normally
you should not change this.
+.RE
+.SS "Target Kernel"
+.PP
+\fIENCHANT_TARGET_KERNEL\fR [$\fIENCHANT_TARGET\fR/boot/vmlinuz]
+.RS 4
+Absolute path (including file name) of where the kernel image will be
installed to in the target.
+.RE
+.PP
+\fIENCHANT_TARGET_KMODS\fR [$\fIENCHANT_TARGET\fR/lib/modules]
+.RS 4
+Absolute path to the base directory of where the kernel modules will be
installed to in the target. You normally shouldn't change this setting unless
you have a good reason to and you know what you are doing.
+.RE
+.SS "Source Kernel"
+.PP
+\fIENCHANT_ISO_KVERS\fR [$(uname -r)]
+.RS 4
+The version of the kernel which the installation (not the target) is running.
+.RE
+.PP
+\fIENCHANT_ISO_KERNEL\fR [$\fIENCHANT_ISO_PATH\fR/boot/vmlinux]
+.RS 4
+The kernel image which the installation (not the target) is running.
+.RE
+.PP
+\fIENCHANT_ISO_KMODS\fR [$\fIENCHANT_ISO_PATH\fR/lib/modules]
+.RS 4
+The kernel modules which the installation (not the target) is running,
corresponding to the kernel image and version given in
\fIENCHANT_ISO_KVERS\fR and \fIENCHANT_ISO_KERNEL\fR.
+.RE
+.SS "Chroot Command"
+.PP
+\fIENCHANT_CHROOT\fR [$\fIENCHANT_ISO_PATH\fR/bin/chroot]
+.RS 4
+The command to run when chrooting into the target.
+.RE
+.SS "Spell Selection"
+.PP
+\fIENCHANT_SOURCES_LIST\fR [$\fIENCHANT_TMP\fR/spell-sources]
+.RS 4
+The list of spell sources you want to install.
+.RE
+.PP
+\fIENCHANT_CACHES_LIST\fR [$\fIENCHANT_TMP\fR/spell-caches]
+.RS 4
+The list of spell caches you want to install.
+.RE
+.SS "Potion (history) Functionality"
+.PP
+\fIENCHANT_POTION\fR [$\fIENCHANT_TMP\fR/potion]
+.RS 4
+Specifies the base path of where installation state information is recorded.
This information is used for the back and forward commands (see the
\fBCOMMANDS\fR section above) as well as for installation restoration and
automated installation.
+.RE
+.PP
+\fIENCHANT_POTION_BUFFER\fR [20]
+.RS 4
+The size of each buffer in the potion system. This is the number of
forward/back steps you can take. If this value is set to 0, potion is
disabled.
+.RE
+.SS "Appearance"
+.PP
+\fIENCHANT_COLOR\fR [yes]
+.RS 4
+Whether to use colored output.
+.RE
+.SH "FILES"
+.PP
+$\fIENCHANT_TMP\fR/current_module
+.RS 4
+Tracks the current installation module (step) within the installation scheme.
+.RE
+.PP
+$\fIENCHANT_TMP\fR/i18n-keymap
+.RS 4
+Defines the keymap in use for the installation session.
+.RE
+.PP
+$\fIENCHANT_POTION\fR/back
+.RS 4
+A list of modules of length $\fIENCHANT_HISTORY_SIZE\fR used to go to
previously visited modules, in the order they were visited.
+.RE
+.PP
+$\fIENCHANT_POTION\fR/forward
+.RS 4
+A list of modules of length $\fIENCHANT_HISTORY_SIZE\fR used to return to
modules one went "back" from (see above and the \fBCOMMANDS\fR section), in
the order they were visited.
+.RE
+.SH "AUTHORS"
+.PP
+The Cauldron Team, Source Mage GNU/Linux
+.SH "SEE ALSO"
+
+\fBcauldron\fR(8), \fBsorcery\fR(8)
diff --git a/cauldron/etc/base_etc/fstab b/cauldron/etc/base_etc/fstab
new file mode 100644
index 0000000..6cba746
--- /dev/null
+++ b/cauldron/etc/base_etc/fstab
@@ -0,0 +1,36 @@
+# /etc/fstab: static file system information.
+# <file system> <mount point> <type> <options> <dump> <pass>
+
+# Virtual, memory only, or non physical file systems
+proc /proc proc defaults 0 0
+devpts /dev/pts devpts defaults 0 0
+# only for 2.6 kernel
+sysfs /sys sysfs defaults 0 0
+
+# enable this to get POSIX shared memory support (recommended)
+tmpfs /dev/shm tmpfs defaults 0 0
+
+# Add your file systems here.
+
+# Examples:
+#/dev/sda1 / reiserfs defaults,noatime 0 1
+#/dev/sda3 /boot ext2 defaults 0 2
+#LABEL=home /home ext3 defaults 0 2
+#/dev/sda2 swap swap defaults 0 0
+#
+# The schema is
+# <device> <mountpoint> <type> <options> <dump> <pass>
+# and is roughly executed as
+# mount -t <type> -o <options> <device> <mountpoint>
+
+# <device> may be specified either as an explicit device file (e.g.
+# /dev/sda1) or using a UUID label (e.g. LABEL=boot). Note that if you
+# use a UUID label, that label present for the filesystem this can be
+# done using the filesystem tools, depending on what filesystem you
+# format a partition with
+
+# Note that, except for /, these need to be in "logical order" -
+# if you have both /usr and /usr/local, put /usr before /usr/local
+
+# For more information, see "man 5 fstab" from the man-pages spell.
+# also see fstab.examples for more examples from the smgl community.
diff --git a/cauldron/etc/base_etc/fstab.examples
b/cauldron/etc/base_etc/fstab.examples
new file mode 100644
index 0000000..743d780
--- /dev/null
+++ b/cauldron/etc/base_etc/fstab.examples
@@ -0,0 +1,22 @@
+# ========== tmpfs ==========
+# If you want /tmp and pals stored in ram, use these lines.
+# Pro: always empty after reboot, should be fast
+# Con: always empty after reboot, uses memory/swap instead of disk space,
+# kernel should be smart enough to coche stuff anyway
+#
+#tmpfs /var/lock tmpfs defaults 0 0
+#tmpfs /var/run tmpfs defaults 0 0
+#tmpfs /tmp tmpfs defaults,size=256m,nr_inodes=64m 0 0
+
+# ========== shared memory ==========
+# enable this to get POSIX shared memory support (needed for a few apps)
+#tmpfs /dev/shm tmpfs defaults 0 0
+
+# ========== swap file ==========
+# Virtual memory swap file
+# Create with the following commands
+# dd if=/dev/zero of=/swapfile bs=1M count=1024
+# mkswap /swapfile
+# chmod 000 /swapfile
+# Then put the following in your /etc/fstab
+#/swapfile none swap defaults 0 0
diff --git a/cauldron/etc/base_etc/group b/cauldron/etc/base_etc/group
new file mode 100644
index 0000000..a3dbdf0
--- /dev/null
+++ b/cauldron/etc/base_etc/group
@@ -0,0 +1,20 @@
+root:x:0:
+daemon:x:1:
+bin:x:2:
+tty:x:5:
+disk:x:6:
+lp:x:7:
+mail:x:8:
+sys:x:11:
+kmem:x:15:
+ppp:x:20:
+scsi:x:23:
+cdrom:x:24:
+floppy:x:25:
+audio:x:29:
+video:x:44:
+wheel:x:55:
+users:x:1000:
+nogroup:x:65534:
+utmp:x:43:
+games:x:60:
diff --git a/cauldron/etc/base_etc/hosts b/cauldron/etc/base_etc/hosts
new file mode 100644
index 0000000..0349fed
--- /dev/null
+++ b/cauldron/etc/base_etc/hosts
@@ -0,0 +1,12 @@
+#
+# hosts This file describes a number of hostname-to-address
+# mappings for the TCP/IP subsystem. It is mostly
+# used at boot time, when no name servers are running.
+# On small systems, this file can be used instead of a
+# "named" name server. Just add the names, addresses
+# and any aliases to this file...
+#
+
+127.0.0.1 localhost
+
+# End of hosts.
diff --git a/cauldron/etc/base_etc/inittab b/cauldron/etc/base_etc/inittab
new file mode 100644
index 0000000..6bd539f
--- /dev/null
+++ b/cauldron/etc/base_etc/inittab
@@ -0,0 +1,16 @@
+bootprog = rc
+fileprefix = /etc/init.d/
+PATH = /sbin:/bin:/usr/sbin:/usr/bin
+INIT_PATH =
runlevels:runlevels/%DEV:runlevels/%S:runlevels/%1:runlevels/%2:runlevels/%3:runlevels/%4:runlevels/%5
+
+tty1:linux:/sbin/agetty -n -l /bin/main-shell.sh /dev/tty1 9600
+tty2:linux:/sbin/agetty -n -l /bin/login-shell.sh tty2 9600
+tty3:linux:/sbin/agetty -n -l /bin/login-shell.sh tty3 9600
+tty4:linux:/sbin/agetty -n -l /bin/login-shell.sh tty4 9600
+tty5:linux:/sbin/agetty -n -l /bin/login-shell.sh tty5 9600
+tty6:linux:/sbin/agetty -n -l /bin/login-shell.sh tty6 9600
+
+finalprog =
+quietrollback = yes
+#ctrlaltdel = /bin/sh -c "PATH=$INIT_ROOT:$PATH; echo $'\\a\\nAuf
Wiedersehen!\\n' ; initctl -u -r -f"
+#ctrlaltdel =/sbin/shutdown -r -q now
diff --git a/cauldron/etc/base_etc/issue b/cauldron/etc/base_etc/issue
new file mode 100644
index 0000000..08fe105
--- /dev/null
+++ b/cauldron/etc/base_etc/issue
@@ -0,0 +1,2 @@
+Welcome to \l of \n on \d
+Running Source Mage GNU/\s, kernel \r on \m
diff --git a/cauldron/etc/base_etc/ld.so.conf
b/cauldron/etc/base_etc/ld.so.conf
new file mode 100644
index 0000000..61b171c
--- /dev/null
+++ b/cauldron/etc/base_etc/ld.so.conf
@@ -0,0 +1,2 @@
+/lib
+/usr/lib
diff --git a/cauldron/etc/base_etc/man.conf b/cauldron/etc/base_etc/man.conf
new file mode 100644
index 0000000..623eb54
--- /dev/null
+++ b/cauldron/etc/base_etc/man.conf
@@ -0,0 +1,13 @@
+MANPATH /usr/share/man
+MANPATH /usr/local/share/man
+MANPATH /usr/local/man
+
+MANPATH_MAP /bin /usr/share/man
+MANPATH_MAP /sbin /usr/share/man
+MANPATH_MAP /usr/bin /usr/share/man
+MANPATH_MAP /usr/sbin /usr/share/man
+MANPATH_MAP /usr/local/bin /usr/share/man
+MANPATH_MAP /usr/local/sbin /usr/share/man
+MANPATH_MAP /usr/X11R6/bin /usr/share/man
+
+NOAUTOPATH
diff --git a/cauldron/etc/base_etc/network/interfaces
b/cauldron/etc/base_etc/network/interfaces
new file mode 100644
index 0000000..a37ab5f
--- /dev/null
+++ b/cauldron/etc/base_etc/network/interfaces
@@ -0,0 +1,3 @@
+# SMGL default loading of loopback interface
+auto lo
+iface lo inet loopback
diff --git a/cauldron/etc/base_etc/nsswitch.conf
b/cauldron/etc/base_etc/nsswitch.conf
new file mode 100644
index 0000000..aeab81a
--- /dev/null
+++ b/cauldron/etc/base_etc/nsswitch.conf
@@ -0,0 +1,53 @@
+#
+# /etc/nsswitch.conf
+#
+# An example Name Service Switch config file. This file should be
+# sorted with the most-used services at the beginning.
+#
+# The entry '[NOTFOUND=return]' means that the search for an
+# entry should stop if the search in the previous entry turned
+# up nothing. Note that if the search failed due to some other reason
+# (like no NIS server responding) then the search continues with the
+# next entry.
+#
+# Legal entries are:
+#
+# nisplus or nis+ Use NIS+ (NIS version 3)
+# nis or yp Use NIS (NIS version 2), also called YP
+# dns Use DNS (Domain Name Service)
+# files Use the local files
+# db Use the local database (.db) files
+# compat Use NIS on compat mode
+# [NOTFOUND=return] Stop searching if not found so far
+#
+
+# To use db, put the "db" in front of "files" for entries you want to be
+# looked up first in the databases
+#
+# Example:
+#passwd: db files nisplus nis
+#shadow: db files nisplus nis
+#group: db files nisplus nis
+
+passwd: files nisplus nis
+shadow: files nisplus nis
+group: files nisplus nis
+
+#hosts: db files nisplus nis dns
+hosts: files nisplus nis dns
+
+services: nisplus [NOTFOUND=return] files
+networks: nisplus [NOTFOUND=return] files
+protocols: nisplus [NOTFOUND=return] files
+rpc: nisplus [NOTFOUND=return] files
+ethers: nisplus [NOTFOUND=return] files
+netmasks: nisplus [NOTFOUND=return] files
+bootparams: nisplus [NOTFOUND=return] files
+
+netgroup: nisplus
+
+publickey: nisplus
+
+automount: files nisplus
+aliases: files nisplus
+
diff --git a/cauldron/etc/base_etc/passwd b/cauldron/etc/base_etc/passwd
new file mode 100644
index 0000000..d9ddd3e
--- /dev/null
+++ b/cauldron/etc/base_etc/passwd
@@ -0,0 +1,4 @@
+root:x:0:0:root:/root:/bin/bash
+daemon:x:1:1::/dev/null:/bin/false
+bin:x:2:2::/dev/null:/bin/false
+nobody:x:65534:65534::/dev/null:/bin/false
diff --git a/cauldron/etc/base_etc/resolv.conf
b/cauldron/etc/base_etc/resolv.conf
new file mode 100644
index 0000000..9963a49
--- /dev/null
+++ b/cauldron/etc/base_etc/resolv.conf
@@ -0,0 +1,2 @@
+# replace the IP address below with the IP address of your real nameserver
+nameserver 127.0.0.1
diff --git a/cauldron/etc/base_etc/shadow b/cauldron/etc/base_etc/shadow
new file mode 100644
index 0000000..59a7a73
--- /dev/null
+++ b/cauldron/etc/base_etc/shadow
@@ -0,0 +1,4 @@
+root::12215:0:99999:7:::
+daemon:!:12793:0:99999:7:::
+bin:!:12793:0:99999:7:::
+nobody:!:12793:0:99999:7:::
diff --git a/cauldron/etc/base_etc/shells b/cauldron/etc/base_etc/shells
new file mode 100644
index 0000000..de0249b
--- /dev/null
+++ b/cauldron/etc/base_etc/shells
@@ -0,0 +1,2 @@
+/bin/sh
+/bin/bash
diff --git a/cauldron/etc/base_etc/sorcery/local/config
b/cauldron/etc/base_etc/sorcery/local/config
new file mode 100644
index 0000000..6abc964
--- /dev/null
+++ b/cauldron/etc/base_etc/sorcery/local/config
@@ -0,0 +1,3 @@
+ GPG_VERIFY_SORCERY="on"
+ GPG_VERIFY_GRIMOIRE="on"
+ ARCHITECTURE="i486"
diff --git a/cauldron/etc/base_etc/sysconfig/devices
b/cauldron/etc/base_etc/sysconfig/devices
new file mode 100644
index 0000000..c996601
--- /dev/null
+++ b/cauldron/etc/base_etc/sysconfig/devices
@@ -0,0 +1,2 @@
+# type of device management, "static", "devfs" or "udev"
+DEVICES=udev
diff --git a/cauldron/etc/base_etc/sysconfig/facilities
b/cauldron/etc/base_etc/sysconfig/facilities
new file mode 100644
index 0000000..af23cfc
--- /dev/null
+++ b/cauldron/etc/base_etc/sysconfig/facilities
@@ -0,0 +1,24 @@
+
+root_fs=mountroot.sh
+
+modules=modutils
+
+network=network
+
+syslog=
+
+local_fs=mountall.sh
+
+crypt_fs=
+
+remote_fs=
+
+identd=
+
+portmap=
+
+# sendmail, postfix
+mta=
+
+# xdm, gdm, ...
+display_manager=
diff --git a/cauldron/etc/base_etc/sysconfig/hwclock
b/cauldron/etc/base_etc/sysconfig/hwclock
new file mode 100644
index 0000000..21adae1
--- /dev/null
+++ b/cauldron/etc/base_etc/sysconfig/hwclock
@@ -0,0 +1,2 @@
+# does the hardware clock store the time in UTC
+UTC=yes
diff --git a/cauldron/etc/base_etc/sysconfig/init
b/cauldron/etc/base_etc/sysconfig/init
new file mode 100644
index 0000000..2b1e9e2
--- /dev/null
+++ b/cauldron/etc/base_etc/sysconfig/init
@@ -0,0 +1,30 @@
+# This is the runlevel which will be entered when booting the computer.
+DEFAULT_RUNLEVEL=3
+
+# How should an essential script failure be handled?
+# Possible values:
+# ignore - Attempt to continue as far as possible.
+# abort - Stop boot process and start a rescue shell.
+# ask - Allow any of the above options to be chosen.
+ESSENTIAL_FAIL_ACTION=ask
+
+# This is the directory holding the different runlevels. Do not change unless
+# you have a very good reason.
+RUNLEVELS_DIR=/etc/init.d/runlevels
+
+# Set this to PARALLEL_INIT="yes" if you want to try out PARALLEL_INIT.
+# Empty string or unset disables.
+PARALLEL_INIT=
+
+# Set this to SYSLOG_INIT="yes" if you want to log init.d messages to syslog.
+# Empty string or unset disables.
+SYSLOG_INIT=
+
+# Set this to FSCKFIX="yes" for fsck -y (always fix).
+FSCKFIX=
+
+# Set this to NOSOFTFIX="yes" for no fsck -a (non-interactive fix).
+NOSOFTFIX=
+
+# Set this to FORCE="yes" for fsck -f (force fsck).
+FORCE=
diff --git a/cauldron/etc/base_etc/sysconfig/keymap
b/cauldron/etc/base_etc/sysconfig/keymap
new file mode 100644
index 0000000..160d0c6
--- /dev/null
+++ b/cauldron/etc/base_etc/sysconfig/keymap
@@ -0,0 +1,24 @@
+# Keymap to use for the system keyboard.
+KEYMAP=defkeymap
+
+# Includemaps to load.
+INCLUDEMAPS=
+
+# Arguments passed to the setfont program. Use this to set the console
+# font and character map.
+# For example, to use unicode font with Western European charmap:
+# SETFONT_ARGS="lat9u-16 -m 8859-15"
+# Notice: TTY_NUMS must be defined for this to have effect.
+SETFONT_ARGS=
+
+# Consoles for which to apply font, charmap and unicode settings. If
+# value "*" is given, settings will be enabled for all available
+# console nodes.
+# Example: TTY_NUMS="1 2 3"
+# Notice: This must be defined for SETFONT_ARGS and UNICODE_START to
+# have effect.
+TTY_NUMS="*"
+
+# Toggle unicode. Unicode is enabled if variable is set (any value will do).
+# Notice: TTY_NUMS must be defined for this to have effect.
+UNICODE_START="yes"
diff --git a/cauldron/etc/base_etc/sysconfig/locale
b/cauldron/etc/base_etc/sysconfig/locale
new file mode 100644
index 0000000..28f5095
--- /dev/null
+++ b/cauldron/etc/base_etc/sysconfig/locale
@@ -0,0 +1,43 @@
+#This file is used to define various locale information
+#All variables here take on the definition of a locale
+#name i.e.(en_US, fi_FI@EURO, sl_SI.UTF-8), defaults to C
+#As per ISO-14652
+
+#Default value for unset variables
+LANG="C"
+
+#This overrides all others no matter to what they are set
+LC_ALL=
+
+#Character classification, case conversion and code transformation.
+LC_CTYPE="en_US.UTF-8"
+
+#Formats of informative and diagnostic messages and interactive responses.
+LC_MESSAGES=
+
+#Collation order.
+LC_COLLATE=
+
+#Numeric, non-monetary formatting.
+LC_NUMERIC=
+
+#Monetary formatting.
+LC_MONETARY=
+
+#Date and time formats.
+LC_TIME=
+
+#Paper format
+LC_PAPER=
+
+#Format of writing personal names
+LC_NAME=
+
+#Format of postal addresses
+LC_ADDRESS=
+
+#Format for telephone numbers, and other telephone information
+LC_TELEPHONE=
+
+#Information on measurement system
+LC_MEASUREMENT=
diff --git a/cauldron/etc/base_etc/sysconfig/modutils
b/cauldron/etc/base_etc/sysconfig/modutils
new file mode 100644
index 0000000..e903eb0
--- /dev/null
+++ b/cauldron/etc/base_etc/sysconfig/modutils
@@ -0,0 +1,8 @@
+# Perform depmod -a on boot or not.
+# Probably don't want to do this if you are on a laptop and running on
battery.
+PERFORM_DEPMOD=y
+
+# Sometimes low memory machines and with kernels with lots of modules depmod
+# will cause an Out Of Memory (oom) kernel panic. Say yes here if you want to
+# enable swap so the oom error won't happen.
+#ENABLE_SWAP_BEFORE_DEPMOD=y
diff --git a/cauldron/etc/base_etc/sysconfig/mountall
b/cauldron/etc/base_etc/sysconfig/mountall
new file mode 100644
index 0000000..9424519
--- /dev/null
+++ b/cauldron/etc/base_etc/sysconfig/mountall
@@ -0,0 +1,3 @@
+# This variable controls if you want removal of /tmp contents
+# on bootup(default unset to set put yes in)
+CLEAN_TMP=
diff --git a/cauldron/etc/base_etc/sysconfig/mountnetwork
b/cauldron/etc/base_etc/sysconfig/mountnetwork
new file mode 100644
index 0000000..3211ca4
--- /dev/null
+++ b/cauldron/etc/base_etc/sysconfig/mountnetwork
@@ -0,0 +1,4 @@
+# A space separated list of network file systems that are to be mounted at
+# boot. Supported values are "cifs", "nfs", "ncpfs", "smbfs" and "9p"
(without
+# the quotes). The /usr hierachy may be loaded through this script.
+FILESYSTEMS="cifs nfs ncpfs smbfs 9p"
diff --git a/cauldron/etc/base_etc/sysconfig/shutdown
b/cauldron/etc/base_etc/sysconfig/shutdown
new file mode 100644
index 0000000..ed0528a
--- /dev/null
+++ b/cauldron/etc/base_etc/sysconfig/shutdown
@@ -0,0 +1,2 @@
+# Default to turn off the power supply (power_off) instead of just halting
(halt).
+HALT_ACTION=power_off
diff --git a/cauldron/etc/toolchain/grimoire_hacks/libs/glibc.patch
b/cauldron/etc/toolchain/grimoire_hacks/libs/glibc.patch
new file mode 100644
index 0000000..f03ed2a
--- /dev/null
+++ b/cauldron/etc/toolchain/grimoire_hacks/libs/glibc.patch
@@ -0,0 +1,413 @@
+diff -u var/lib/sorcery/codex/stable/libs/glibc/BUILD glibc/BUILD
+--- var/lib/sorcery/codex/stable/libs/glibc/BUILD 2015-03-01
18:40:41.000000000 +0900
++++ glibc/BUILD 2015-12-09 12:22:02.000000000 +0900
+@@ -19,35 +19,19 @@
+ #
+
+ local ADDONS
+-if [ "$GLIBC_NPTL" = "y" ]; then
+- #
+- # Enable IDN?
+- #
+- if [ "$GLIBC_USEIDN" = "y" ]; then
+- ADDONS="$ADDONS libidn"
+- fi &&
+-
+- OPTS="$OPTS --with-tls \
+- --enable-kernel=2.6"
+-else
+- ADDONS="linuxthreads" &&
+- OPTS="$OPTS --without-__thread \
+- --enable-kernel=2.4"
++#
++# Enable IDN?
++#
++if [ "$GLIBC_USEIDN" = "y" ]; then
++ ADDONS="$ADDONS libidn"
+ fi &&
+
++OPTS="$OPTS --with-tls" &&
+ OPTS="$OPTS --enable-add-ons=${ADDONS/ /,}" &&
+
+-if [ "$GLIBC_NPTL" = "y" ]
+-then
+ # minimise optimisation level
+- CFLAGS=$(echo ${CFLAGS} | sed -r "s;-O([0-9]|fast);;g") &&
+- CFLAGS="-O2 ${CFLAGS//-Os/}"
+-else
+- #
+- # Fixes Bug #8595
+- #
+- CFLAGS="-Os $CFLAGS"
+-fi &&
++CFLAGS=$(echo ${CFLAGS} | sed -r "s;-O([0-9]|fast);;g") &&
++CFLAGS="-O2 ${CFLAGS//-Os/}"
+
+ export CFLAGS="${CFLAGS/-ffast-math/}" &&
+ export CC=gcc &&
+@@ -57,25 +41,6 @@
+ #
+ unset LD_LIBRARY_PATH &&
+
+-#
+-# Setup sanitised glibc-kernel-headers for the glibc compile
+-# ...as well as other arch-dependend specialties
+-#
+-if [[ ${GLIBC_NPTL} == y ]]; then
+- cd ${GLIBC_HEADERS_DIR} &&
+- GL_ARCH=${SMGL_COMPAT_ARCHS[1]} &&
+- if [[ ${SMGL_COMPAT_ARCHS[0]} == 64 ]];then
+- if [[ ${SMGL_COMPAT_ARCHS[1]} == sparc ]]; then
+- GL_ARCH=sparc64
+- fi
+- else
+- if [[ ${SMGL_COMPAT_ARCHS[1]} == ia32 ]]; then
+- GL_ARCH=i386
+- fi
+- fi &&
+- make ARCH=$GL_ARCH INSTALL_HDR_PATH=usr headers_install
+-fi
+-
+ if [[ ${SMGL_COMPAT_ARCHS[0]} == 64 && ${SMGL_COMPAT_ARCHS[1]} == sparc ]];
then
+ #
+ # If we're not compiling for 64-bit SPARC then we need to use the sparc
+@@ -119,10 +84,7 @@
+
+ # CPPFLAGS setting is needed so the check for cpp works on boxes that don't
+ # have any kernel headers in /usr/include yet
+-export CPPFLAGS="$CPPFLAGS -I$GLIBC_HEADERS_DIR/usr/include" &&
+-#
+-# End sanitised glibc-kernel-headers setup
+-#
++export CPPFLAGS="$CPPFLAGS -IGLIBC_KHDRS" &&
+
+ # this is weird but nscd needs this header from libcap but not the rest of
+ # the standard includes so doing this will make nscd pick it up
+@@ -155,7 +117,8 @@
+ --with-elf \
+ --enable-shared \
+ --disable-profile \
+- --with-headers=$GLIBC_HEADERS_DIR/usr/include \
++ --with-headers="$GLIBC_KHDRS" \
++ --enable-kernel="$GLIBC_KVERS" \
+ --disable-multi-arch \
+ --enable-obsolete-rpc \
+ $OPTS &&
+diff -u var/lib/sorcery/codex/stable/libs/glibc/CONFIGURE glibc/CONFIGURE
+--- var/lib/sorcery/codex/stable/libs/glibc/CONFIGURE 2015-02-12
00:14:50.000000000 +0900
++++ glibc/CONFIGURE 2015-12-09 12:22:02.000000000 +0900
+@@ -1,4 +1,10 @@
+ if list_find "$LDFLAGS" "-s"; then
+ message "${PROBLEM_COLOR}WARNING: \$LDFLAGS containing strip (-s) option
detected.${DEFAULT_COLOR}" &&
+- config_query GLIBC_DEBUG "Enable debug build of $SPELL (required for
debugging programs with Valgrind)?" y
+-fi
++ config_query GLIBC_DEBUG "Enable debug build of $SPELL (required for
debugging programs with Valgrind)?" n
++fi &&
++
++config_query_string GLIBC_KVERS "minimal linux kernel version to support?"
2.6 &&
++
++config_query_string GLIBC_KHDRS "location of kernel headers to build
against?" "/usr/include" &&
++
++config_query GLIBC_USEIDN "Would you like to compile glibc with libidn
support?" y
+diff -u var/lib/sorcery/codex/stable/libs/glibc/DETAILS glibc/DETAILS
+--- var/lib/sorcery/codex/stable/libs/glibc/DETAILS 2015-03-01
18:40:41.000000000 +0900
++++ glibc/DETAILS 2015-12-09 12:22:02.000000000 +0900
+diff -u var/lib/sorcery/codex/stable/libs/glibc/INSTALL glibc/INSTALL
+@@ -1,111 +1,25 @@
+ . "$GRIMOIRE/FUNCTIONS"
+ SPELL=glibc
+ TMPFS=off
+-if [ "$GLIBC_NPTL" = "n" ]; then
+- VERSION=2.3.6
+- HEADERS_VERSION=2.4.24
+- SOURCE=$SPELL-$VERSION.tar.bz2
+-SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
+- SOURCE2=$SOURCE.sig
+- SOURCE3=glibc-linuxthreads-$VERSION.tar.bz2
+- SOURCE4=$SOURCE3.sig
+- SOURCE5=$HEADERS_VERSION-kernel-headers.tar.bz2
+- SOURCE_URL[0]=$GNU_URL/$SPELL/$SOURCE
+- SOURCE2_URL[0]=${SOURCE_URL[0]}.sig
+- SOURCE3_URL[0]=$GNU_URL/$SPELL/$SOURCE3
+- SOURCE4_URL[0]=${SOURCE3_URL[0]}.sig
+- SOURCE5_URL[0]=http://download.sourcemage.org/mirror/$SOURCE5
+- SOURCE_GPG=gnu.gpg:$SOURCE.sig:UPSTREAM_KEY
+- SOURCE2_IGNORE=signature
+- SOURCE3_GPG=gnu.gpg:$SOURCE3.sig:UPSTREAM_KEY
+- SOURCE4_IGNORE=signature
+-
SOURCE5_HASH=sha512:c1931495915c8461de97e4156c9d0edd7b44e4b48cbce2d4c3a52b83d331a9ce48f3c7abb7dd787ed897f1e7d0e81c5cdb4eb3986bc24a5e2788708427e2dcb1
+-else
+- if [[ "${GLIBC_BRANCH}" == "scm" ]]; then
++if [[ "${GLIBC_BRANCH}" == "scm" ]]; then
+ VERSION=$(get_scm_version)
+ FORCE_DOWNLOAD=on
+- SOURCE=$SPELL-git.tar.bz2
+-SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-git
++ SOURCE="$SPELL-git.tar.bz2"
++SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-git"
+ SOURCE_URL="git://sourceware.org/git/glibc.git:$SPELL-git"
+ SOURCE_IGNORE=volatile
+- else
++else
+ VERSION=2.22
+- SOURCE=$SPELL-$VERSION.tar.xz
+-SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
+- SOURCE2=$SOURCE.sig
+- SOURCE_URL[0]=$GNU_URL/$SPELL/$SOURCE
+- SOURCE2_URL[0]=${SOURCE_URL[0]}.sig
+- SOURCE_GPG=glibc.gpg:$SOURCE.sig:UPSTREAM_KEY
++ SOURCE="$SPELL-$VERSION.tar.xz"
++SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
++ SOURCE2="$SOURCE.sig"
++ SOURCE_URL[0]="$GNU_URL/$SPELL/$SOURCE"
++ SOURCE2_URL[0]="${SOURCE_URL[0]}.sig"
++ SOURCE_GPG=glibc.gpg:"$SOURCE.sig":UPSTREAM_KEY
+ SOURCE2_IGNORE=signature
+ SECURITY_PATCH=5
+- fi
+- if [[ $GLIBC_SANITIZE_HEADERS == n ]]; then
+- HEADERS_VERSION=3.17.4
+- SOURCE3=linux-${HEADERS_VERSION}.tar.xz
+- SOURCE6=linux-${HEADERS_VERSION}.tar.sign
+- SOURCE6_IGNORE=signature
+- SOURCE3_GPG="kernel.gpg:${SOURCE6}:ESTABLISHED_UPSTREAM_KEY"
+- SOURCE3_URL[0]="$KERNEL_URL/pub/linux/kernel/v3.x/$SOURCE3"
+- SOURCE6_URL[0]="$KERNEL_URL/pub/linux/kernel/v3.x/$SOURCE6"
+- else
+- local LINUX_DIRECTORY
+- LINUX_DIRECTORY=$(gaze where -path linux | sed "s/linux -> //")
+- . $LINUX_DIRECTORY/latest.defaults
+-
+- case $(uname -r) in
+- 2.*)
+- HEADERS_VERSION=$(echo $LATEST_maintenance_patches | sed "s/patch-//")
+- HEADERS_VERSION=${HEADERS_VERSION:-$LATEST_2_6}
+- SOURCE3=linux-${LATEST_2_6}.tar.bz2
+- SOURCE6="${SOURCE3}.sign"
+- HEADERS_VDIR=v2.6
+- ;;
+- 3.*)
+- HEADERS_VERSION=$(echo $LATEST_maintenance_patches_3 | sed "s/patch-//")
+- HEADERS_VERSION=${HEADERS_VERSION:-$LATEST_3}
+- SOURCE3=linux-${LATEST_3}.tar.xz
+- if [[ $HEADERS_VERSION = 3.0* ]]; then
+- SOURCE6="${SOURCE3}.sign"
+- else
+- SOURCE6="linux-${LATEST_3}.tar.sign"
+- fi
+- HEADERS_VDIR=v3.x
+- if [[ ${HEADERS_VERSION} != $LATEST_3 ]]; then
+- SOURCE7=patch-${HEADERS_VERSION}.xz
+- if [[ ${HEADERS_VERSION} > 3.0.4 ]]; then
+- SOURCE8="patch-${HEADERS_VERSION}.sign"
+- else
+- SOURCE8="${SOURCE7}.sign"
+- fi
+- fi
+- ;;
+- 4.*)
+- HEADERS_VERSION=$(echo $LATEST_maintenance_patches_4 | sed "s/patch-//")
+- HEADERS_VERSION=${HEADERS_VERSION:-$LATEST_4}
+- SOURCE3=linux-${LATEST_4}.tar.xz
+- SOURCE6="linux-${LATEST_4}.tar.sign"
+- HEADERS_VDIR=v4.x
+- if [[ ${HEADERS_VERSION} != $LATEST_4 ]]; then
+- SOURCE7=patch-${HEADERS_VERSION}.xz
+- SOURCE8="patch-${HEADERS_VERSION}.sign"
+- fi
+- ;;
+- esac
+-
+- SOURCE3_GPG="kernel.gpg:${SOURCE6}:ESTABLISHED_UPSTREAM_KEY"
+- SOURCE3_URL="${KERNEL_URL}/pub/linux/kernel/$HEADERS_VDIR/${SOURCE3}"
+- SOURCE6_IGNORE=signature
+- SOURCE6_URL="${KERNEL_URL}/pub/linux/kernel/$HEADERS_VDIR/${SOURCE6}"
+-
+- if [[ -n $SOURCE7 ]]; then
+- SOURCE7_GPG="kernel.gpg:${SOURCE8}:ESTABLISHED_UPSTREAM_KEY"
+- SOURCE7_URL="${KERNEL_URL}/pub/linux/kernel/$HEADERS_VDIR/${SOURCE7}"
+- SOURCE8_IGNORE=signature
+- SOURCE8_URL="${KERNEL_URL}/pub/linux/kernel/$HEADERS_VDIR/${SOURCE8}"
+- fi
+- fi
+ fi
+- WEB_SITE=http://www.gnu.org/software/libc
++ WEB_SITE="http://www.gnu.org/software/libc";
+ LICENSE[0]=LGPL
+ LICENSE[1]=LGPL
+ LICENSE[2]=GPL
+--- var/lib/sorcery/codex/stable/libs/glibc/INSTALL 2011-07-14
17:11:43.000000000 +0900
++++ glibc/INSTALL 2015-12-09 12:22:02.000000000 +0900
+@@ -1,23 +1,3 @@
+-#
+-# install kernel headers first so that gcc doesn't fail to find them if
+-# glibc decides to compile stuff during 'make install', which it does in 2.4
+-#
+-install -d ${INSTALL_ROOT}/usr/include &&
+-cd $GLIBC_HEADERS_DIR/usr/include &&
+-
+-if [ ! "$GLIBC_NPTL" = "y" ]; then
+- echo "installing asm-generic headers" &&
+- install -d ${INSTALL_ROOT}/usr/include/asm-generic &&
+- cp -fa asm-generic/* ${INSTALL_ROOT}/usr/include/asm-generic
+-fi &&
+-
+-echo "installing glibc linux headers" &&
+-for dir in *
+-do
+- install -d ${INSTALL_ROOT}/usr/include/$dir &&
+- cp -fa $dir/* ${INSTALL_ROOT}/usr/include/$dir
+-done
+-
+ cd $SOURCE_DIRECTORY.bld &&
+
+ #
+diff -u var/lib/sorcery/codex/stable/libs/glibc/PREPARE glibc/PREPARE
+--- var/lib/sorcery/codex/stable/libs/glibc/PREPARE 2015-03-01
18:40:41.000000000 +0900
++++ glibc/PREPARE 2015-12-09 12:22:02.000000000 +0900
+@@ -1,16 +1,2 @@
+ . ${GRIMOIRE}/FUNCTIONS &&
+-if [[ $(uname -r) = 2.6.* ]] \
+- || [[ $(uname -r) = 3.* ]] \
+- || [[ $(uname -r) = 4.* ]]; then
+- if test "$HOST" == "i386-pc-linux-gnu"; then
+- message "[[ ${QUERY_COLOR}Not building with NPTL as that's unsupported
on i386; use i486 or higher.${DEFAULT} ]]" &&
+- config_set_option GLIBC_NPTL n
+- else
+- config_query GLIBC_NPTL "As you are running a $(uname -r | cut -f1,2
-d.) kernel, would you like to use the new nptl (Native Posix Thread
Libary)?" y &&
+- if [[ "$GLIBC_NPTL" == "y" ]]; then
+- prepare_select_branch stable scm
+- fi &&
+- config_query GLIBC_USEIDN "Would you like to compile glibc with
libidn support?" y &&
+- config_query GLIBC_SANITIZE_HEADERS "Do you want to use sanitized linux
kernel headers from the latest stable release" n
+- fi
+-fi
++prepare_select_branch stable scm
+diff -u var/lib/sorcery/codex/stable/libs/glibc/PRE_BUILD glibc/PRE_BUILD
+--- var/lib/sorcery/codex/stable/libs/glibc/PRE_BUILD 2015-03-01
18:40:41.000000000 +0900
++++ glibc/PRE_BUILD 2015-12-09 12:22:02.000000000 +0900
+@@ -1,99 +1,20 @@
+ default_pre_build &&
+
+ # seems perl script scripts/test-installation.pl is broken now
+-sed -i 's:CC="$(CC)" $(PERL) scripts/test-installation.pl
$(common-objpfx)::' $SOURCE_DIRECTORY/Makefile &&
+-
+-if [ "$GLIBC_NPTL" = "y" ]; then
+- cd $SOURCE_DIRECTORY &&
+- #
+- # Unpack glibc-kernel-headers
+- #
+- #
+- # Set GLIBC_HEADERS_DIR for use later
+- #
+- persistent_add GLIBC_HEADERS_DIR &&
+-
+- case ${HEADERS_VERSION} in
+- 2.*|3.0*)
+- GLIBC_HEADERS_DIR=$SOURCE_DIRECTORY/${SOURCE3/.tar.bz2}
+- unpack_file 3 || return 1
+- ;;
+- *)
+- GLIBC_HEADERS_DIR=$SOURCE_DIRECTORY/${SOURCE3/.tar.xz}
+- message "${MESSAGE_COLOR}xz -d
$SOURCE_CACHE/$SOURCE3${DEFAULT_COLOR}"
+- xz -d -k $SOURCE_CACHE/$SOURCE3
+- SOURCE3_ORI=$SOURCE3
+- SOURCE3=${SOURCE3/.xz}
+- unpack_file 3 || return 1
+- message "${MESSAGE_COLOR}rm
$SOURCE_CACHE/$SOURCE3${DEFAULT_COLOR}"
+- rm $SOURCE_CACHE/$SOURCE3
+- SOURCE3=$SOURCE3_ORI
+- ;;
+- esac
+- cd $GLIBC_HEADERS_DIR &&
+- if [[ -n $SOURCE7 ]]; then
+- if [[ ${HEADERS_VERSION} > 3.0.4 ]]; then
+- message "${MESSAGE_COLOR}xz -d
$SOURCE_CACHE/$SOURCE7${DEFAULT_COLOR}"
+- xz -d -k ${SOURCE_CACHE}/$SOURCE7 &&
+- SOURCE7_ORI=${SOURCE7}
+- SOURCE7=${SOURCE7/.xz}
+- echo $SOURCE7_GPG
+- verify_file 7 || return 1
+- message "${MESSAGE_COLOR}rm $SOURCE_CACHE/$SOURCE7${DEFAULT_COLOR}"
+- rm $SOURCE_CACHE/$SOURCE7
+- SOURCE7=${SOURCE7_ORI}
+- else
+- verify_file 7 || return 1
+- fi
+- xzcat ${SOURCE_CACHE}/$SOURCE7 > ${SOURCE7/.xz}
+- message "${MESSAGE_COLOR}Patching ${!patch}${DEFAULT_COLOR}" &&
+- patch -p1 < ${SOURCE7/.xz} &&
+- if [[ $? != 0 ]]; then
+- message "${PROBLEM_COLOR}Patch ${!patch} failed${DEFAULT_COLOR}" &&
+- return 1
+- fi
+- fi &&
+- make mrproper
+-else
+- cd $SOURCE_DIRECTORY &&
+- #
+- # Now unpack the rest of glibc fixes in the normal location
+- #
+- unpack_file 3 &&
+- #
+- # Unpack glibc-kernel-headers
+- #
+- #
+- # Set GLIBC_HEADERS_DIR for use later
+- #
+- persistent_add GLIBC_HEADERS_DIR &&
+- GLIBC_HEADERS_DIR=$SOURCE_DIRECTORY/kernel-headers &&
+- mkdir -p $GLIBC_HEADERS_DIR/usr/include &&
+- cd $GLIBC_HEADERS_DIR/usr/include &&
+- unpack_file 5
+-fi &&
+-
+-#
+-# Remove kernel DRM headers
+-# Fixes Bug #15547
+-#
+-sed -i '/^header-y += drm\//d' $GLIBC_HEADERS_DIR/include/Kbuild &&
+-rm -rf $GLIBC_HEADERS_DIR/include/drm &&
+-
+-
++sed -i 's:CC="$(CC)" $(PERL) scripts/test-installation.pl
$(common-objpfx)::' "$SOURCE_DIRECTORY/Makefile" &&
+
+ #
+ # Now fixup the normal glibc
+ #
+-cd $SOURCE_DIRECTORY &&
+-patch -p0 < $SPELL_DIRECTORY/Makefile.patch &&
++cd "$SOURCE_DIRECTORY" &&
++patch -p0 < "$SPELL_DIRECTORY/Makefile.patch" &&
+ # no idea why or how this is missing from configure
+-patch -p0 < $SPELL_DIRECTORY/as_fn_executable_p.patch &&
++patch -p0 < "$SPELL_DIRECTORY/as_fn_executable_p.patch" &&
+
+-patch -p1 <
$SPELL_DIRECTORY/00_all_0005-reload-etc-resolv.conf-when-it-has-changed.patch
&&
+-patch -p1 <
$SPELL_DIRECTORY/00_all_0007-rtld-do-not-ignore-arch-specific-CFLAGS.patch
&&
+-patch -p1 < $SPELL_DIRECTORY/10_all_glibc-CVE-2015-7547.patch
&&
+-patch -p1 < $SPELL_DIRECTORY/glibc-2.20-fhs-1.patch
&&
++patch -p1 <
"$SPELL_DIRECTORY/00_all_0005-reload-etc-resolv.conf-when-it-has-changed.patch"
&&
++patch -p1 <
"$SPELL_DIRECTORY/00_all_0007-rtld-do-not-ignore-arch-specific-CFLAGS.patch"
&&
++patch -p1 < "$SPELL_DIRECTORY/10_all_glibc-CVE-2015-7547.patch" &&
++patch -p1 < "$SPELL_DIRECTORY/glibc-2.20-fhs-1.patch" &&
+
+ # disabled libgd detection/building memusagestat for now until a better
+ # fix has been found, bug #8277
+@@ -102,10 +23,10 @@
+ #
+ # Create the build directory
+ #
+-mk_source_dir $SOURCE_DIRECTORY.bld &&
++mk_source_dir "$SOURCE_DIRECTORY.bld" &&
+
+ # fix #11832 - linking in /tmp doesn't work with grsecurity so do it
elsewhere
+-local test_path=$SOURCE_DIRECTORY.bld/test-installation &&
+-mkdir $test_path &&
++local test_path="$SOURCE_DIRECTORY.bld/test-installation" &&
++mkdir "$test_path" &&
+ sed -i "s,/tmp,$test_path,g" scripts/test-installation.pl &&
+ sed -i 's/ot \$/ot:\n\ttouch $@\n$/' manual/Makefile
+
+
+Common subdirectories: var/lib/sorcery/codex/stable/libs/glibc/init.d and
var/lib/sorcery/codex/stable/libs/glibc/init.d
diff --git a/cauldron/etc/toolchain/grimoire_hacks/libs/glibc.patch~
b/cauldron/etc/toolchain/grimoire_hacks/libs/glibc.patch~
new file mode 100644
index 0000000..e69de29
diff --git a/cauldron/etc/toolchain/sorcery/config
b/cauldron/etc/toolchain/sorcery/config
new file mode 100644
index 0000000..664ab67
--- /dev/null
+++ b/cauldron/etc/toolchain/sorcery/config
@@ -0,0 +1,4 @@
+ARCHIVE="on"
+CLEAN_SOURCE="on"
+PROMPT_DELAY="0"
+TMPFS="off"
diff --git a/cauldron/etc/toolchain/sorcery/depends/glibc
b/cauldron/etc/toolchain/sorcery/depends/glibc
new file mode 100644
index 0000000..5fcbdde
--- /dev/null
+++ b/cauldron/etc/toolchain/sorcery/depends/glibc
@@ -0,0 +1 @@
+GLIBC_KVERS=4.0
diff --git a/cauldron/etc/toolchain/sorcery/depends/net-tools
b/cauldron/etc/toolchain/sorcery/depends/net-tools
new file mode 100644
index 0000000..8e7c46a
--- /dev/null
+++ b/cauldron/etc/toolchain/sorcery/depends/net-tools
@@ -0,0 +1,2 @@
+NETTOOLSHASTIME="y"
+NETTOOLSNEW="y"
diff --git a/cauldron/etc/toolchain/sorcery/depends/squashfs-tools
b/cauldron/etc/toolchain/sorcery/depends/squashfs-tools
new file mode 100644
index 0000000..bf077eb
--- /dev/null
+++ b/cauldron/etc/toolchain/sorcery/depends/squashfs-tools
@@ -0,0 +1 @@
+SQUASHFS_LZMA="y"
diff --git a/cauldron/etc/x86_64/busybox-1.23.2.config
b/cauldron/etc/x86_64/busybox-1.23.2.config
new file mode 100644
index 0000000..186788b
--- /dev/null
+++ b/cauldron/etc/x86_64/busybox-1.23.2.config
@@ -0,0 +1,1058 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.23.2
+# Thu May 21 18:41:47 2015
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Busybox Settings
+#
+
+#
+# General Configuration
+#
+CONFIG_DESKTOP=y
+CONFIG_EXTRA_COMPAT=y
+# CONFIG_INCLUDE_SUSv2 is not set
+CONFIG_USE_PORTABLE_CODE=y
+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 is not set
+CONFIG_FEATURE_INSTALLER=y
+# CONFIG_INSTALL_NO_USR is not set
+# CONFIG_LOCALE_SUPPORT is not set
+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_PAM is not set
+CONFIG_FEATURE_USE_SENDFILE=y
+CONFIG_LONG_OPTS=y
+CONFIG_FEATURE_DEVPTS=y
+# CONFIG_FEATURE_CLEAN_UP is not set
+# CONFIG_FEATURE_UTMP is not set
+# CONFIG_FEATURE_WTMP is not set
+# CONFIG_FEATURE_PIDFILE is not set
+CONFIG_PID_FILE_PATH=""
+# CONFIG_FEATURE_SUID is not set
+# CONFIG_FEATURE_SUID_CONFIG is not set
+# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
+# 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 is not set
+
+#
+# Build Options
+#
+CONFIG_STATIC=y
+# 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_UNIT_TEST 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="./_install"
+
+#
+# Busybox Library Tuning
+#
+# CONFIG_FEATURE_SYSTEMD is not set
+CONFIG_FEATURE_RTMINMAX=y
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SMALL=1
+CONFIG_SHA3_SMALL=1
+CONFIG_FEATURE_FAST_TOP=y
+# 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 is not set
+CONFIG_FEATURE_EDITING_HISTORY=255
+CONFIG_FEATURE_EDITING_SAVEHISTORY=y
+# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set
+CONFIG_FEATURE_REVERSE_SEARCH=y
+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=y
+CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y
+CONFIG_FEATURE_COPYBUF_KB=4
+CONFIG_FEATURE_SKIP_ROOTFS=y
+CONFIG_MONOTONIC_SYSCALL=y
+CONFIG_IOCTL_HEX2STR_ERROR=y
+CONFIG_FEATURE_HWIB=y
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+CONFIG_FEATURE_SEAMLESS_XZ=y
+CONFIG_FEATURE_SEAMLESS_LZMA=y
+CONFIG_FEATURE_SEAMLESS_BZ2=y
+CONFIG_FEATURE_SEAMLESS_GZ=y
+# CONFIG_FEATURE_SEAMLESS_Z is not set
+# CONFIG_AR is not set
+# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
+# CONFIG_FEATURE_AR_CREATE is not set
+# CONFIG_UNCOMPRESS is not set
+CONFIG_GUNZIP=y
+CONFIG_BUNZIP2=y
+CONFIG_UNLZMA=y
+CONFIG_FEATURE_LZMA_FAST=y
+CONFIG_LZMA=y
+CONFIG_UNXZ=y
+CONFIG_XZ=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_GZIP=y
+CONFIG_FEATURE_GZIP_LONG_OPTIONS=y
+CONFIG_GZIP_FAST=0
+CONFIG_LZOP=y
+# CONFIG_LZOP_COMPR_HIGH is not set
+# CONFIG_RPM is not set
+# CONFIG_RPM2CPIO 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 is not set
+# 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=y
+CONFIG_FEATURE_TAR_UNAME_GNAME=y
+CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
+# CONFIG_FEATURE_TAR_SELINUX is not set
+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 is not set
+# CONFIG_ID is not set
+# CONFIG_GROUPS is not set
+# CONFIG_SHUF is not set
+CONFIG_TEST=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TOUCH=y
+# CONFIG_FEATURE_TOUCH_NODEREF is not set
+# CONFIG_FEATURE_TOUCH_SUSV3 is not set
+CONFIG_TR=y
+CONFIG_FEATURE_TR_CLASSES=y
+CONFIG_FEATURE_TR_EQUIV=y
+# CONFIG_UNLINK is not set
+CONFIG_BASE64=y
+# CONFIG_WHO is not set
+# CONFIG_USERS is not set
+# CONFIG_CAL is not set
+CONFIG_CATV=y
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y
+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=y
+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 is not set
+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=y
+CONFIG_SEQ=y
+CONFIG_SHA1SUM=y
+CONFIG_SHA256SUM=y
+CONFIG_SHA512SUM=y
+CONFIG_SHA3SUM=y
+CONFIG_SLEEP=y
+CONFIG_FEATURE_FANCY_SLEEP=y
+CONFIG_FEATURE_FLOAT_SLEEP=y
+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 is not set
+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 is not set
+CONFIG_YES=y
+
+#
+# Common options
+#
+CONFIG_FEATURE_VERBOSE=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, sha3sum
+#
+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=""
+CONFIG_SETKEYCODES=y
+CONFIG_SETLOGCONS=y
+CONFIG_SHOWKEY=y
+
+#
+# Common options for loadfont and setfont
+#
+CONFIG_FEATURE_LOADFONT_PSF2=y
+# CONFIG_FEATURE_LOADFONT_RAW is not set
+
+#
+# Debian Utilities
+#
+# CONFIG_MKTEMP is not set
+CONFIG_PIPE_PROGRESS=y
+# CONFIG_RUN_PARTS is not set
+# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
+# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
+# CONFIG_START_STOP_DAEMON is not set
+# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set
+# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set
+# CONFIG_WHICH is not set
+
+#
+# Editors
+#
+CONFIG_AWK=y
+CONFIG_FEATURE_AWK_LIBM=y
+CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y
+# CONFIG_CMP is not set
+CONFIG_DIFF=y
+CONFIG_FEATURE_DIFF_LONG_OPTIONS=y
+CONFIG_FEATURE_DIFF_DIR=y
+CONFIG_ED=y
+CONFIG_PATCH=y
+CONFIG_SED=y
+CONFIG_VI=y
+CONFIG_FEATURE_VI_MAX_LEN=4096
+# CONFIG_FEATURE_VI_8BIT is not set
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
+CONFIG_FEATURE_VI_SEARCH=y
+CONFIG_FEATURE_VI_REGEX_SEARCH=y
+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_UNDO=y
+CONFIG_FEATURE_VI_UNDO_QUEUE=y
+CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256
+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_EXEC_PLUS=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=y
+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
+CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=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 is not set
+# CONFIG_FEATURE_USE_INITTAB is not set
+# CONFIG_FEATURE_KILL_REMOVED is not set
+CONFIG_FEATURE_KILL_DELAY=0
+# CONFIG_FEATURE_INIT_SCTTY is not set
+# CONFIG_FEATURE_INIT_SYSLOG is not set
+# CONFIG_FEATURE_EXTRA_QUIET is not set
+# CONFIG_FEATURE_INIT_COREDUMPS is not set
+# CONFIG_FEATURE_INITRD is not set
+CONFIG_INIT_TERMINAL_TYPE=""
+# CONFIG_MESG is not set
+# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set
+
+#
+# Login/Password Management Utilities
+#
+# CONFIG_ADD_SHELL is not set
+# CONFIG_REMOVE_SHELL is not set
+# CONFIG_FEATURE_SHADOWPASSWDS is not set
+CONFIG_USE_BB_PWD_GRP=y
+# CONFIG_USE_BB_SHADOW is not set
+CONFIG_USE_BB_CRYPT=y
+CONFIG_USE_BB_CRYPT_SHA=y
+# CONFIG_ADDUSER is not set
+# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
+# CONFIG_FEATURE_CHECK_NAMES is not set
+CONFIG_LAST_ID=0
+CONFIG_FIRST_SYSTEM_ID=0
+CONFIG_LAST_SYSTEM_ID=0
+# CONFIG_ADDGROUP is not set
+# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set
+# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
+# CONFIG_DELUSER is not set
+# CONFIG_DELGROUP is not set
+# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
+# CONFIG_GETTY is not set
+# CONFIG_LOGIN is not set
+# CONFIG_LOGIN_SESSION_AS_CHILD is not set
+# CONFIG_LOGIN_SCRIPTS is not set
+# CONFIG_FEATURE_NOLOGIN is not set
+# CONFIG_FEATURE_SECURETTY is not set
+# CONFIG_PASSWD is not set
+# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
+CONFIG_CRYPTPW=y
+# CONFIG_CHPASSWD is not set
+CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="des"
+# CONFIG_SU is not set
+# CONFIG_FEATURE_SU_SYSLOG is not set
+# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set
+# CONFIG_SULOGIN is not set
+# CONFIG_VLOCK is not set
+
+#
+# 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=y
+CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE=y
+CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y
+# CONFIG_INSMOD is not set
+# CONFIG_RMMOD is not set
+# CONFIG_LSMOD is not set
+# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set
+# CONFIG_MODPROBE is not set
+# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
+# CONFIG_DEPMOD is not set
+
+#
+# Options common to multiple modutils
+#
+# CONFIG_FEATURE_2_4_MODULES is not set
+CONFIG_FEATURE_INSMOD_TRY_MMAP=y
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
+# 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 is not set
+# CONFIG_FEATURE_MODUTILS_ALIAS is not set
+# CONFIG_FEATURE_MODUTILS_SYMBOLS is not set
+CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
+CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
+
+#
+# Linux System Utilities
+#
+CONFIG_BLOCKDEV=y
+CONFIG_FATATTR=y
+CONFIG_FSTRIM=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 is not set
+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=y
+CONFIG_FEATURE_SGI_LABEL=y
+CONFIG_FEATURE_SUN_LABEL=y
+CONFIG_FEATURE_OSF_LABEL=y
+CONFIG_FEATURE_GPT_LABEL=y
+CONFIG_FEATURE_FDISK_ADVANCED=y
+CONFIG_FINDFS=y
+CONFIG_FLOCK=y
+CONFIG_FREERAMDISK=y
+CONFIG_FSCK_MINIX=y
+CONFIG_MKFS_EXT2=y
+CONFIG_MKFS_MINIX=y
+CONFIG_FEATURE_MINIX2=y
+CONFIG_MKFS_REISER=y
+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 is not set
+# CONFIG_IPCS is not set
+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=y
+CONFIG_FEATURE_MOUNT_HELPERS=y
+CONFIG_FEATURE_MOUNT_LABEL=y
+# CONFIG_FEATURE_MOUNT_NFS is not set
+CONFIG_FEATURE_MOUNT_CIFS=y
+CONFIG_FEATURE_MOUNT_FLAGS=y
+CONFIG_FEATURE_MOUNT_FSTAB=y
+# CONFIG_PIVOT_ROOT is not set
+CONFIG_RDATE=y
+# CONFIG_RDEV is not set
+# CONFIG_READPROFILE is not set
+CONFIG_RTCWAKE=y
+CONFIG_SCRIPT=y
+CONFIG_SCRIPTREPLAY=y
+# CONFIG_SETARCH is not set
+CONFIG_SWAPONOFF=y
+CONFIG_FEATURE_SWAPON_DISCARD=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 is not set
+CONFIG_VOLUMEID=y
+
+#
+# Filesystem/Volume identification
+#
+CONFIG_FEATURE_VOLUMEID_BTRFS=y
+CONFIG_FEATURE_VOLUMEID_CRAMFS=y
+CONFIG_FEATURE_VOLUMEID_EXFAT=y
+CONFIG_FEATURE_VOLUMEID_EXT=y
+CONFIG_FEATURE_VOLUMEID_F2FS=y
+CONFIG_FEATURE_VOLUMEID_FAT=y
+CONFIG_FEATURE_VOLUMEID_HFS=y
+CONFIG_FEATURE_VOLUMEID_ISO9660=y
+CONFIG_FEATURE_VOLUMEID_JFS=y
+CONFIG_FEATURE_VOLUMEID_LINUXRAID=y
+CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
+CONFIG_FEATURE_VOLUMEID_LUKS=y
+CONFIG_FEATURE_VOLUMEID_NILFS=y
+CONFIG_FEATURE_VOLUMEID_NTFS=y
+CONFIG_FEATURE_VOLUMEID_OCFS2=y
+CONFIG_FEATURE_VOLUMEID_REISERFS=y
+CONFIG_FEATURE_VOLUMEID_ROMFS=y
+CONFIG_FEATURE_VOLUMEID_SQUASHFS=y
+CONFIG_FEATURE_VOLUMEID_SYSV=y
+CONFIG_FEATURE_VOLUMEID_UDF=y
+CONFIG_FEATURE_VOLUMEID_XFS=y
+
+#
+# Miscellaneous Utilities
+#
+# CONFIG_CONSPY is not set
+# CONFIG_CROND is not set
+# CONFIG_FEATURE_CROND_D is not set
+# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
+CONFIG_FEATURE_CROND_DIR=""
+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=y
+CONFIG_NANDDUMP=y
+CONFIG_RFKILL=y
+CONFIG_SETSERIAL=y
+# CONFIG_TASKSET is not set
+# CONFIG_FEATURE_TASKSET_FANCY is not set
+CONFIG_UBIATTACH=y
+CONFIG_UBIDETACH=y
+CONFIG_UBIMKVOL=y
+CONFIG_UBIRMVOL=y
+CONFIG_UBIRSVOL=y
+CONFIG_UBIUPDATEVOL=y
+# CONFIG_WALL is not set
+CONFIG_ADJTIMEX=y
+# CONFIG_BBCONFIG is not set
+# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set
+# CONFIG_BEEP is not set
+CONFIG_FEATURE_BEEP_FREQ=0
+CONFIG_FEATURE_BEEP_LENGTH_MS=0
+# CONFIG_CHAT is not set
+# CONFIG_FEATURE_CHAT_NOFAIL is not set
+# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
+# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set
+# 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 is not set
+# CONFIG_CRONTAB is not set
+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 is not set
+CONFIG_FLASHCP=y
+CONFIG_FLASH_LOCK=y
+CONFIG_FLASH_UNLOCK=y
+CONFIG_FLASH_ERASEALL=y
+CONFIG_IONICE=y
+CONFIG_INOTIFYD=y
+# CONFIG_LAST is not set
+# CONFIG_FEATURE_LAST_SMALL is not set
+# CONFIG_FEATURE_LAST_FANCY is not set
+CONFIG_HDPARM=y
+CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
+# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
+# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
+CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y
+# CONFIG_MAKEDEVS is not set
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
+# CONFIG_FEATURE_MAKEDEVS_TABLE is not set
+CONFIG_MAN=y
+CONFIG_MICROCOM=y
+# CONFIG_MOUNTPOINT is not set
+CONFIG_MT=y
+CONFIG_RAIDAUTORUN=y
+CONFIG_READAHEAD=y
+# CONFIG_RUNLEVEL is not set
+CONFIG_RX=y
+CONFIG_SETSID=y
+CONFIG_STRINGS=y
+CONFIG_TIME=y
+CONFIG_TIMEOUT=y
+CONFIG_TTYSIZE=y
+CONFIG_VOLNAME=y
+# CONFIG_WATCHDOG is not set
+
+#
+# Networking Utilities
+#
+# CONFIG_NAMEIF is not set
+# 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=y
+CONFIG_FEATURE_IPV6=y
+# CONFIG_FEATURE_UNIX_LOCAL is not set
+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=y
+CONFIG_FEATURE_BRCTL_SHOW=y
+# CONFIG_DNSD is not set
+CONFIG_ETHER_WAKE=y
+CONFIG_FAKEIDENTD=y
+# CONFIG_FTPD is not set
+# CONFIG_FEATURE_FTP_WRITE is not set
+# CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set
+# CONFIG_FEATURE_FTP_AUTHENTICATION is not set
+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_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 is not set
+# CONFIG_FEATURE_IPCALC_FANCY is not set
+# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
+CONFIG_NETSTAT=y
+CONFIG_FEATURE_NETSTAT_WIDE=y
+CONFIG_FEATURE_NETSTAT_PRG=y
+CONFIG_NSLOOKUP=y
+CONFIG_NTPD=y
+# CONFIG_FEATURE_NTPD_SERVER is not set
+CONFIG_FEATURE_NTPD_CONF=y
+CONFIG_PSCAN=y
+CONFIG_ROUTE=y
+CONFIG_SLATTACH=y
+# CONFIG_TCPSVD is not set
+CONFIG_TELNET=y
+CONFIG_FEATURE_TELNET_TTYPE=y
+CONFIG_FEATURE_TELNET_AUTOLOGIN=y
+# CONFIG_TELNETD is not set
+# CONFIG_FEATURE_TELNETD_STANDALONE is not set
+# 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 is not set
+CONFIG_TRACEROUTE=y
+CONFIG_TRACEROUTE6=y
+CONFIG_FEATURE_TRACEROUTE_VERBOSE=y
+# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
+CONFIG_FEATURE_TRACEROUTE_USE_ICMP=y
+CONFIG_TUNCTL=y
+# CONFIG_FEATURE_TUNCTL_UG is not set
+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=y
+CONFIG_FEATURE_UDHCPC_ARPING=y
+CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y
+CONFIG_FEATURE_UDHCP_PORT=y
+CONFIG_UDHCP_DEBUG=9
+CONFIG_FEATURE_UDHCP_RFC3397=y
+CONFIG_FEATURE_UDHCP_8021Q=y
+CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
+CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n"
+# CONFIG_UDPSVD is not set
+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 is not set
+
+#
+# Print Utilities
+#
+# CONFIG_LPD is not set
+# CONFIG_LPR is not set
+# CONFIG_LPQ is not set
+
+#
+# Mail Utilities
+#
+# CONFIG_MAKEMIME is not set
+CONFIG_FEATURE_MIME_CHARSET=""
+# CONFIG_POPMAILDIR is not set
+# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set
+# CONFIG_REFORMIME is not set
+# CONFIG_FEATURE_REFORMIME_COMPAT is not set
+# 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=y
+CONFIG_PWDX=y
+CONFIG_SMEMCAP=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_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_FEATURE_SHOW_THREADS=y
+CONFIG_WATCH=y
+
+#
+# Runit Utilities
+#
+# CONFIG_RUNSV is not set
+# CONFIG_RUNSVDIR is not set
+# CONFIG_FEATURE_RUNSVDIR_LOG is not set
+# CONFIG_SV is not set
+CONFIG_SV_DEFAULT_SERVICE_DIR=""
+# CONFIG_SVLOGD is not set
+CONFIG_CHPST=y
+# CONFIG_SETUIDGID is not set
+# CONFIG_ENVUIDGID is not set
+# CONFIG_ENVDIR is not set
+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_HELP=y
+CONFIG_ASH_CMDCMD=y
+# CONFIG_ASH_MAIL is not set
+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
+CONFIG_ASH_RANDOM_SUPPORT=y
+CONFIG_ASH_EXPAND_PRMT=y
+# CONFIG_CTTYHACK is not set
+# 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=y
+CONFIG_FEATURE_SYSLOGD_CFG=y
+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_FEATURE_KMSG_SYSLOG=y
+CONFIG_KLOGD=y
+
+#
+# klogd should not be used together with syslog to kernel printk buffer
+#
+CONFIG_FEATURE_KLOGD_KLOGCTL=y
+CONFIG_LOGGER=y
diff --git a/cauldron/etc/x86_64/busybox-1.24.1.config
b/cauldron/etc/x86_64/busybox-1.24.1.config
new file mode 100644
index 0000000..186788b
--- /dev/null
+++ b/cauldron/etc/x86_64/busybox-1.24.1.config
@@ -0,0 +1,1058 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.23.2
+# Thu May 21 18:41:47 2015
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Busybox Settings
+#
+
+#
+# General Configuration
+#
+CONFIG_DESKTOP=y
+CONFIG_EXTRA_COMPAT=y
+# CONFIG_INCLUDE_SUSv2 is not set
+CONFIG_USE_PORTABLE_CODE=y
+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 is not set
+CONFIG_FEATURE_INSTALLER=y
+# CONFIG_INSTALL_NO_USR is not set
+# CONFIG_LOCALE_SUPPORT is not set
+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_PAM is not set
+CONFIG_FEATURE_USE_SENDFILE=y
+CONFIG_LONG_OPTS=y
+CONFIG_FEATURE_DEVPTS=y
+# CONFIG_FEATURE_CLEAN_UP is not set
+# CONFIG_FEATURE_UTMP is not set
+# CONFIG_FEATURE_WTMP is not set
+# CONFIG_FEATURE_PIDFILE is not set
+CONFIG_PID_FILE_PATH=""
+# CONFIG_FEATURE_SUID is not set
+# CONFIG_FEATURE_SUID_CONFIG is not set
+# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
+# 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 is not set
+
+#
+# Build Options
+#
+CONFIG_STATIC=y
+# 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_UNIT_TEST 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="./_install"
+
+#
+# Busybox Library Tuning
+#
+# CONFIG_FEATURE_SYSTEMD is not set
+CONFIG_FEATURE_RTMINMAX=y
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SMALL=1
+CONFIG_SHA3_SMALL=1
+CONFIG_FEATURE_FAST_TOP=y
+# 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 is not set
+CONFIG_FEATURE_EDITING_HISTORY=255
+CONFIG_FEATURE_EDITING_SAVEHISTORY=y
+# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set
+CONFIG_FEATURE_REVERSE_SEARCH=y
+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=y
+CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y
+CONFIG_FEATURE_COPYBUF_KB=4
+CONFIG_FEATURE_SKIP_ROOTFS=y
+CONFIG_MONOTONIC_SYSCALL=y
+CONFIG_IOCTL_HEX2STR_ERROR=y
+CONFIG_FEATURE_HWIB=y
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+CONFIG_FEATURE_SEAMLESS_XZ=y
+CONFIG_FEATURE_SEAMLESS_LZMA=y
+CONFIG_FEATURE_SEAMLESS_BZ2=y
+CONFIG_FEATURE_SEAMLESS_GZ=y
+# CONFIG_FEATURE_SEAMLESS_Z is not set
+# CONFIG_AR is not set
+# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
+# CONFIG_FEATURE_AR_CREATE is not set
+# CONFIG_UNCOMPRESS is not set
+CONFIG_GUNZIP=y
+CONFIG_BUNZIP2=y
+CONFIG_UNLZMA=y
+CONFIG_FEATURE_LZMA_FAST=y
+CONFIG_LZMA=y
+CONFIG_UNXZ=y
+CONFIG_XZ=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_GZIP=y
+CONFIG_FEATURE_GZIP_LONG_OPTIONS=y
+CONFIG_GZIP_FAST=0
+CONFIG_LZOP=y
+# CONFIG_LZOP_COMPR_HIGH is not set
+# CONFIG_RPM is not set
+# CONFIG_RPM2CPIO 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 is not set
+# 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=y
+CONFIG_FEATURE_TAR_UNAME_GNAME=y
+CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
+# CONFIG_FEATURE_TAR_SELINUX is not set
+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 is not set
+# CONFIG_ID is not set
+# CONFIG_GROUPS is not set
+# CONFIG_SHUF is not set
+CONFIG_TEST=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TOUCH=y
+# CONFIG_FEATURE_TOUCH_NODEREF is not set
+# CONFIG_FEATURE_TOUCH_SUSV3 is not set
+CONFIG_TR=y
+CONFIG_FEATURE_TR_CLASSES=y
+CONFIG_FEATURE_TR_EQUIV=y
+# CONFIG_UNLINK is not set
+CONFIG_BASE64=y
+# CONFIG_WHO is not set
+# CONFIG_USERS is not set
+# CONFIG_CAL is not set
+CONFIG_CATV=y
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y
+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=y
+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 is not set
+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=y
+CONFIG_SEQ=y
+CONFIG_SHA1SUM=y
+CONFIG_SHA256SUM=y
+CONFIG_SHA512SUM=y
+CONFIG_SHA3SUM=y
+CONFIG_SLEEP=y
+CONFIG_FEATURE_FANCY_SLEEP=y
+CONFIG_FEATURE_FLOAT_SLEEP=y
+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 is not set
+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 is not set
+CONFIG_YES=y
+
+#
+# Common options
+#
+CONFIG_FEATURE_VERBOSE=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, sha3sum
+#
+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=""
+CONFIG_SETKEYCODES=y
+CONFIG_SETLOGCONS=y
+CONFIG_SHOWKEY=y
+
+#
+# Common options for loadfont and setfont
+#
+CONFIG_FEATURE_LOADFONT_PSF2=y
+# CONFIG_FEATURE_LOADFONT_RAW is not set
+
+#
+# Debian Utilities
+#
+# CONFIG_MKTEMP is not set
+CONFIG_PIPE_PROGRESS=y
+# CONFIG_RUN_PARTS is not set
+# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
+# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
+# CONFIG_START_STOP_DAEMON is not set
+# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set
+# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set
+# CONFIG_WHICH is not set
+
+#
+# Editors
+#
+CONFIG_AWK=y
+CONFIG_FEATURE_AWK_LIBM=y
+CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y
+# CONFIG_CMP is not set
+CONFIG_DIFF=y
+CONFIG_FEATURE_DIFF_LONG_OPTIONS=y
+CONFIG_FEATURE_DIFF_DIR=y
+CONFIG_ED=y
+CONFIG_PATCH=y
+CONFIG_SED=y
+CONFIG_VI=y
+CONFIG_FEATURE_VI_MAX_LEN=4096
+# CONFIG_FEATURE_VI_8BIT is not set
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
+CONFIG_FEATURE_VI_SEARCH=y
+CONFIG_FEATURE_VI_REGEX_SEARCH=y
+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_UNDO=y
+CONFIG_FEATURE_VI_UNDO_QUEUE=y
+CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256
+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_EXEC_PLUS=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=y
+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
+CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=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 is not set
+# CONFIG_FEATURE_USE_INITTAB is not set
+# CONFIG_FEATURE_KILL_REMOVED is not set
+CONFIG_FEATURE_KILL_DELAY=0
+# CONFIG_FEATURE_INIT_SCTTY is not set
+# CONFIG_FEATURE_INIT_SYSLOG is not set
+# CONFIG_FEATURE_EXTRA_QUIET is not set
+# CONFIG_FEATURE_INIT_COREDUMPS is not set
+# CONFIG_FEATURE_INITRD is not set
+CONFIG_INIT_TERMINAL_TYPE=""
+# CONFIG_MESG is not set
+# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set
+
+#
+# Login/Password Management Utilities
+#
+# CONFIG_ADD_SHELL is not set
+# CONFIG_REMOVE_SHELL is not set
+# CONFIG_FEATURE_SHADOWPASSWDS is not set
+CONFIG_USE_BB_PWD_GRP=y
+# CONFIG_USE_BB_SHADOW is not set
+CONFIG_USE_BB_CRYPT=y
+CONFIG_USE_BB_CRYPT_SHA=y
+# CONFIG_ADDUSER is not set
+# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
+# CONFIG_FEATURE_CHECK_NAMES is not set
+CONFIG_LAST_ID=0
+CONFIG_FIRST_SYSTEM_ID=0
+CONFIG_LAST_SYSTEM_ID=0
+# CONFIG_ADDGROUP is not set
+# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set
+# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
+# CONFIG_DELUSER is not set
+# CONFIG_DELGROUP is not set
+# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
+# CONFIG_GETTY is not set
+# CONFIG_LOGIN is not set
+# CONFIG_LOGIN_SESSION_AS_CHILD is not set
+# CONFIG_LOGIN_SCRIPTS is not set
+# CONFIG_FEATURE_NOLOGIN is not set
+# CONFIG_FEATURE_SECURETTY is not set
+# CONFIG_PASSWD is not set
+# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
+CONFIG_CRYPTPW=y
+# CONFIG_CHPASSWD is not set
+CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="des"
+# CONFIG_SU is not set
+# CONFIG_FEATURE_SU_SYSLOG is not set
+# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set
+# CONFIG_SULOGIN is not set
+# CONFIG_VLOCK is not set
+
+#
+# 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=y
+CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE=y
+CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y
+# CONFIG_INSMOD is not set
+# CONFIG_RMMOD is not set
+# CONFIG_LSMOD is not set
+# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set
+# CONFIG_MODPROBE is not set
+# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
+# CONFIG_DEPMOD is not set
+
+#
+# Options common to multiple modutils
+#
+# CONFIG_FEATURE_2_4_MODULES is not set
+CONFIG_FEATURE_INSMOD_TRY_MMAP=y
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
+# 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 is not set
+# CONFIG_FEATURE_MODUTILS_ALIAS is not set
+# CONFIG_FEATURE_MODUTILS_SYMBOLS is not set
+CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
+CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
+
+#
+# Linux System Utilities
+#
+CONFIG_BLOCKDEV=y
+CONFIG_FATATTR=y
+CONFIG_FSTRIM=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 is not set
+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=y
+CONFIG_FEATURE_SGI_LABEL=y
+CONFIG_FEATURE_SUN_LABEL=y
+CONFIG_FEATURE_OSF_LABEL=y
+CONFIG_FEATURE_GPT_LABEL=y
+CONFIG_FEATURE_FDISK_ADVANCED=y
+CONFIG_FINDFS=y
+CONFIG_FLOCK=y
+CONFIG_FREERAMDISK=y
+CONFIG_FSCK_MINIX=y
+CONFIG_MKFS_EXT2=y
+CONFIG_MKFS_MINIX=y
+CONFIG_FEATURE_MINIX2=y
+CONFIG_MKFS_REISER=y
+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 is not set
+# CONFIG_IPCS is not set
+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=y
+CONFIG_FEATURE_MOUNT_HELPERS=y
+CONFIG_FEATURE_MOUNT_LABEL=y
+# CONFIG_FEATURE_MOUNT_NFS is not set
+CONFIG_FEATURE_MOUNT_CIFS=y
+CONFIG_FEATURE_MOUNT_FLAGS=y
+CONFIG_FEATURE_MOUNT_FSTAB=y
+# CONFIG_PIVOT_ROOT is not set
+CONFIG_RDATE=y
+# CONFIG_RDEV is not set
+# CONFIG_READPROFILE is not set
+CONFIG_RTCWAKE=y
+CONFIG_SCRIPT=y
+CONFIG_SCRIPTREPLAY=y
+# CONFIG_SETARCH is not set
+CONFIG_SWAPONOFF=y
+CONFIG_FEATURE_SWAPON_DISCARD=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 is not set
+CONFIG_VOLUMEID=y
+
+#
+# Filesystem/Volume identification
+#
+CONFIG_FEATURE_VOLUMEID_BTRFS=y
+CONFIG_FEATURE_VOLUMEID_CRAMFS=y
+CONFIG_FEATURE_VOLUMEID_EXFAT=y
+CONFIG_FEATURE_VOLUMEID_EXT=y
+CONFIG_FEATURE_VOLUMEID_F2FS=y
+CONFIG_FEATURE_VOLUMEID_FAT=y
+CONFIG_FEATURE_VOLUMEID_HFS=y
+CONFIG_FEATURE_VOLUMEID_ISO9660=y
+CONFIG_FEATURE_VOLUMEID_JFS=y
+CONFIG_FEATURE_VOLUMEID_LINUXRAID=y
+CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
+CONFIG_FEATURE_VOLUMEID_LUKS=y
+CONFIG_FEATURE_VOLUMEID_NILFS=y
+CONFIG_FEATURE_VOLUMEID_NTFS=y
+CONFIG_FEATURE_VOLUMEID_OCFS2=y
+CONFIG_FEATURE_VOLUMEID_REISERFS=y
+CONFIG_FEATURE_VOLUMEID_ROMFS=y
+CONFIG_FEATURE_VOLUMEID_SQUASHFS=y
+CONFIG_FEATURE_VOLUMEID_SYSV=y
+CONFIG_FEATURE_VOLUMEID_UDF=y
+CONFIG_FEATURE_VOLUMEID_XFS=y
+
+#
+# Miscellaneous Utilities
+#
+# CONFIG_CONSPY is not set
+# CONFIG_CROND is not set
+# CONFIG_FEATURE_CROND_D is not set
+# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
+CONFIG_FEATURE_CROND_DIR=""
+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=y
+CONFIG_NANDDUMP=y
+CONFIG_RFKILL=y
+CONFIG_SETSERIAL=y
+# CONFIG_TASKSET is not set
+# CONFIG_FEATURE_TASKSET_FANCY is not set
+CONFIG_UBIATTACH=y
+CONFIG_UBIDETACH=y
+CONFIG_UBIMKVOL=y
+CONFIG_UBIRMVOL=y
+CONFIG_UBIRSVOL=y
+CONFIG_UBIUPDATEVOL=y
+# CONFIG_WALL is not set
+CONFIG_ADJTIMEX=y
+# CONFIG_BBCONFIG is not set
+# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set
+# CONFIG_BEEP is not set
+CONFIG_FEATURE_BEEP_FREQ=0
+CONFIG_FEATURE_BEEP_LENGTH_MS=0
+# CONFIG_CHAT is not set
+# CONFIG_FEATURE_CHAT_NOFAIL is not set
+# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
+# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set
+# 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 is not set
+# CONFIG_CRONTAB is not set
+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 is not set
+CONFIG_FLASHCP=y
+CONFIG_FLASH_LOCK=y
+CONFIG_FLASH_UNLOCK=y
+CONFIG_FLASH_ERASEALL=y
+CONFIG_IONICE=y
+CONFIG_INOTIFYD=y
+# CONFIG_LAST is not set
+# CONFIG_FEATURE_LAST_SMALL is not set
+# CONFIG_FEATURE_LAST_FANCY is not set
+CONFIG_HDPARM=y
+CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
+# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
+# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
+CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y
+# CONFIG_MAKEDEVS is not set
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
+# CONFIG_FEATURE_MAKEDEVS_TABLE is not set
+CONFIG_MAN=y
+CONFIG_MICROCOM=y
+# CONFIG_MOUNTPOINT is not set
+CONFIG_MT=y
+CONFIG_RAIDAUTORUN=y
+CONFIG_READAHEAD=y
+# CONFIG_RUNLEVEL is not set
+CONFIG_RX=y
+CONFIG_SETSID=y
+CONFIG_STRINGS=y
+CONFIG_TIME=y
+CONFIG_TIMEOUT=y
+CONFIG_TTYSIZE=y
+CONFIG_VOLNAME=y
+# CONFIG_WATCHDOG is not set
+
+#
+# Networking Utilities
+#
+# CONFIG_NAMEIF is not set
+# 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=y
+CONFIG_FEATURE_IPV6=y
+# CONFIG_FEATURE_UNIX_LOCAL is not set
+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=y
+CONFIG_FEATURE_BRCTL_SHOW=y
+# CONFIG_DNSD is not set
+CONFIG_ETHER_WAKE=y
+CONFIG_FAKEIDENTD=y
+# CONFIG_FTPD is not set
+# CONFIG_FEATURE_FTP_WRITE is not set
+# CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set
+# CONFIG_FEATURE_FTP_AUTHENTICATION is not set
+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_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 is not set
+# CONFIG_FEATURE_IPCALC_FANCY is not set
+# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
+CONFIG_NETSTAT=y
+CONFIG_FEATURE_NETSTAT_WIDE=y
+CONFIG_FEATURE_NETSTAT_PRG=y
+CONFIG_NSLOOKUP=y
+CONFIG_NTPD=y
+# CONFIG_FEATURE_NTPD_SERVER is not set
+CONFIG_FEATURE_NTPD_CONF=y
+CONFIG_PSCAN=y
+CONFIG_ROUTE=y
+CONFIG_SLATTACH=y
+# CONFIG_TCPSVD is not set
+CONFIG_TELNET=y
+CONFIG_FEATURE_TELNET_TTYPE=y
+CONFIG_FEATURE_TELNET_AUTOLOGIN=y
+# CONFIG_TELNETD is not set
+# CONFIG_FEATURE_TELNETD_STANDALONE is not set
+# 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 is not set
+CONFIG_TRACEROUTE=y
+CONFIG_TRACEROUTE6=y
+CONFIG_FEATURE_TRACEROUTE_VERBOSE=y
+# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
+CONFIG_FEATURE_TRACEROUTE_USE_ICMP=y
+CONFIG_TUNCTL=y
+# CONFIG_FEATURE_TUNCTL_UG is not set
+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=y
+CONFIG_FEATURE_UDHCPC_ARPING=y
+CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y
+CONFIG_FEATURE_UDHCP_PORT=y
+CONFIG_UDHCP_DEBUG=9
+CONFIG_FEATURE_UDHCP_RFC3397=y
+CONFIG_FEATURE_UDHCP_8021Q=y
+CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
+CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n"
+# CONFIG_UDPSVD is not set
+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 is not set
+
+#
+# Print Utilities
+#
+# CONFIG_LPD is not set
+# CONFIG_LPR is not set
+# CONFIG_LPQ is not set
+
+#
+# Mail Utilities
+#
+# CONFIG_MAKEMIME is not set
+CONFIG_FEATURE_MIME_CHARSET=""
+# CONFIG_POPMAILDIR is not set
+# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set
+# CONFIG_REFORMIME is not set
+# CONFIG_FEATURE_REFORMIME_COMPAT is not set
+# 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=y
+CONFIG_PWDX=y
+CONFIG_SMEMCAP=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_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_FEATURE_SHOW_THREADS=y
+CONFIG_WATCH=y
+
+#
+# Runit Utilities
+#
+# CONFIG_RUNSV is not set
+# CONFIG_RUNSVDIR is not set
+# CONFIG_FEATURE_RUNSVDIR_LOG is not set
+# CONFIG_SV is not set
+CONFIG_SV_DEFAULT_SERVICE_DIR=""
+# CONFIG_SVLOGD is not set
+CONFIG_CHPST=y
+# CONFIG_SETUIDGID is not set
+# CONFIG_ENVUIDGID is not set
+# CONFIG_ENVDIR is not set
+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_HELP=y
+CONFIG_ASH_CMDCMD=y
+# CONFIG_ASH_MAIL is not set
+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
+CONFIG_ASH_RANDOM_SUPPORT=y
+CONFIG_ASH_EXPAND_PRMT=y
+# CONFIG_CTTYHACK is not set
+# 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=y
+CONFIG_FEATURE_SYSLOGD_CFG=y
+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_FEATURE_KMSG_SYSLOG=y
+CONFIG_KLOGD=y
+
+#
+# klogd should not be used together with syslog to kernel printk buffer
+#
+CONFIG_FEATURE_KLOGD_KLOGCTL=y
+CONFIG_LOGGER=y
diff --git a/cauldron/etc/x86_64/initfs/dirs b/cauldron/etc/x86_64/initfs/dirs
new file mode 100644
index 0000000..e071ba9
--- /dev/null
+++ b/cauldron/etc/x86_64/initfs/dirs
@@ -0,0 +1,13 @@
+bin
+dev/pts
+etc
+lib/modules
+mnt
+proc
+sbin
+sys
+tmp
+usr/bin
+usr/sbin
+var/log
+var/tmp
diff --git a/cauldron/etc/x86_64/initfs/init b/cauldron/etc/x86_64/initfs/init
new file mode 100644
index 0000000..9d60d5b
--- /dev/null
+++ b/cauldron/etc/x86_64/initfs/init
@@ -0,0 +1,862 @@
+#!/bin/sh
+# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
+
+# set script options here
+
+SMGL_DEVMGR="mdev"
+SMGL_OVERLAY="/overlay"
+SMGL_MOUNT="/mnt"
+SMGL_PREFIX=""
+SMGL_ISOFS="isofs.img"
+SMGL_ISOMNT="/iso"
+SMGL_ID="/etc/enchantment/enchantment.conf"
+
+
+# Setup a color prompt to use for the shell-out
+PSNORMAL="\[\e[0m\]"
+PSRED="\[\e[1;31m\]"
+PSGREEN="\[\e[1;32m\]"
+PSYELLOW="\[\e[1;33m\]"
+PSBLUE="\[\e[1;34m\]"
+PSPURPLE="\[\e[1;35m\]"
+PSWHITE="\[\e[1;36m\]"
+
+NORMAL=""
+BOLD=""
+BLACK=""
+RED=""
+GREEN=""
+YELLOW=""
+BLUE=""
+VIOLET=""
+CYAN=""
+WHITE=""
+
+COLOR_PROMPT="blue"
+COLOR_INFO="yellow"
+COLOR_SUCCESS="green"
+COLOR_WARN="purple"
+COLOR_ERROR="red"
+COLOR_DEBUG="cyan"
+
+export PS1="${PSRED}SMGL${PSNORMAL}
${PSWHITE}[${PSBLUE}\w${PSWHITE}]${PSNORMAL}# "
+
+
+# ensure a sane PATH
+export PATH="/sbin:/bin:/usr/sbin:/usr/bin"
+
+# clear/declare variables we will use in the script
+TRYBOOT="choice_auto"
+INITOPTS=
+SMGL_INIT=
+SMGL_ISOPATH=
+
+
+shell() {
+ msg "Press CTRL-D or type exit to return"
+ ( setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1' )
+}
+
+msg() {
+ local color="$WHITE"
+ local n=
+
+ [ -z "$1" ] && shift
+
+ if [ "$1" = "-n" ] ;then
+ n="-n"
+ shift
+ fi
+
+ if [ "$1" = "-c" ] ;then
+ shift
+ case "$1" in
+ red )
+ color="$BOLD$RED"
+ ;;
+ yellow )
+ color="$BOLD$YELLOW"
+ ;;
+ green )
+ color="$BOLD$GREEN"
+ ;;
+ cyan )
+ color="$BOLD$CYAN"
+ ;;
+ blue )
+ color="$BOLD$BLUE"
+ ;;
+ purple )
+ color="$BOLD$VIOLET"
+ ;;
+ white )
+ color="$BOLD$WHITE"
+ ;;
+ normal )
+ color="$NORMAL"
+ ;;
+ esac
+ shift
+ fi
+ echo -e "$n" "$color$@$NORMAL"
+}
+
+msgerr() {
+ local n=
+
+ if [ "$1" = "-n" ] ;then
+ n="$1"
+ shift
+ fi
+
+ msg "$n" -c "$COLOR_ERROR" "ERROR: $@"
+}
+
+msgwarn() {
+ local n=
+
+ if [ "$1" = "-n" ] ;then
+ n="$1"
+ shift
+ fi
+
+ msg "$n" -c "$COLOR_WARN" "WARNING: $@"
+}
+
+msggood() {
+ local n=
+
+ if [ "$1" = "-n" ] ;then
+ n="$1"
+ shift
+ fi
+
+ msg "$n" -c "$COLOR_SUCCESS" "SUCCESS: $@"
+}
+
+msginfo() {
+ local n=
+
+ if [ "$1" = "-n" ] ;then
+ n="$1"
+ shift
+ fi
+
+ msg "$n" -c "$COLOR_INFO" "INFO: $@"
+}
+
+msgprompt() {
+ local n=
+
+ if [ "$1" = "-n" ] ;then
+ n="$1"
+ shift
+ fi
+
+ msg "$n" -c "$COLOR_PROMPT" "$@"
+}
+
+msgdebug() {
+ local n=
+
+ if [ "$1" = "-n" ] ;then
+ n="$1"
+ shift
+ fi
+
+ msg "$n" -c "$COLOR_DEBUG" "DEBUG: $@"
+}
+
+device_manager_start() {
+ case "$SMGL_DEVMGR" in
+ udevd )
+ udevd --daemon
+ udevadm trigger &>/dev/null
+ udevadm settle --timeout=60 &>/dev/null
+ ;;
+ mdev )
+ echo /sbin/mdev > /proc/sys/kernel/hotplug &&
+ /sbin/mdev -s
+ ;;
+ * )
+ msgerr "unknown device manager"
+ ;;
+ esac
+}
+
+device_manager_stop() {
+ local devpid=
+
+ case "$SMGL_DEVMGR" in
+ udevd )
+ devpid="$(pidof $SMGL_DEVMGR)"
+ ;;
+ mdev )
+ devpid="$(pidof $SMGL_DEVMGR)"
+ ;;
+ esac
+ if [ -n "$DEVPID" ] ;then
+ msginfo "Killing initramfs $SMGL_DEVMGR ..."
+ echo "" > /proc/sys/kernel/hotplug
+ if ! kill "$DEVPID" ;then
+ msgerr "Error killing $SMGL_DEVMGR!"
+ msgprompt -n " [a]bort to shell or [c]ontinue? (a or c): "
+ read choice
+ if [ "$choice" = a ] ;then
+ shell
+ fi
+ fi
+ fi
+}
+
+load_modules() {
+ local sys="/sys/devices"
+ local modalias=
+
+ modalias=$(find "$sys" -iname modalias -exec cat '{}' +)
+ for mod in $modalias ;do
+ modprobe "$mod" &>/dev/null
+ done
+}
+
+load_all_fs_modules() {
+ # attempt to load all fs modules we can find
+ # doing so enables mounting without specifying fs-type
+ for mod in /lib/modules/*/kernel/fs/*/*.ko ;do
+ insmod "$mod" 2>&1 /dev/null
+ done
+}
+
+mount_squashfs() {
+ local srcdir="${1:-$SMGL_ISOPATH}"
+ local srcimg="${2:-$SMGL_ISOFS}"
+ local target="${3:-$SMGL_ISOMNT}"
+
+ # ensure we have a functional srcdir
+ if ! [ -d "$mnt" ] ;then
+ msgerr "$mnt not a directory"
+ return 1
+ fi
+
+ # ensure we have a an isofs file
+ if ! [ -f "$srcdir/$srcimg" ] ;then
+ msgerr "$srcimg not found at $srcdir/$srcimg"
+ return 1
+ fi
+
+ # ensure we can read/access the isofs file
+ if ! [ -r "$srcdir/$srcimg" ] ;then
+ msgerr "$srcimg found at $srcdir/$srcimg but cannot be accessed"
+ return 1
+ fi
+
+ # ensure we have a functional target
+ if ! mkdir -p "$target" ;then
+ msgerr "could not mkdir $target"
+ return 1
+ fi
+
+ if ! mount -t squashfs -o loop "$srcdir/$srcimg" "$target" ;then
+ msgerr "could not mount $srcdir/$srcimg squashfs image"
+ return 1
+ fi
+
+ SMGL_ISOPATH="$target"
+
+ msggood "mounted $srcdir/$srcimg on $target"
+}
+
+mount_iso() {
+ local fs="$1"
+ local src="$2"
+ local dst="$3"
+ local opts="$4"
+
+ [ -n "$fs" ] && fs="-t $fs"
+
+ if [ -n "$opts" ] ;then
+ if [ "${opts:0:2}" != "-o" ] ;then
+ opts="-o $opts"
+ fi
+ fi
+
+ if ! mount $fs $opts "$src" "$dst" ;then
+ return 1
+ fi
+
+ SMGL_ISOPATH="$dst/$SMGL_PREFIX"
+ SMGL_ISOPATH="${SMGL_ISOPATH%/}"
+
+ msggood "mounted $src to $dst (ISOPATH: $SMGL_ISOPATH, ISOIMG:
$SMGL_ISOFS)"
+
+ if [ -f "$SMGL_ISOPATH/$SMGL_ISOFS" ] ;then
+ msginfo "Attempting to loopmount $SMGL_ISOFS"
+ mount_squashfs
+ return $?
+ fi
+
+ return 0
+}
+
+try_mount() {
+ local fsdev="$1"
+ local fsmnt="$2"
+ local fstype="$3"
+ local fsopts="$4"
+ local alttype="$5"
+
+ if [ -z "$fstype" ] ;then
+ msgerror "please supply a filesystem type to mount with"
+ return 1
+ fi
+
+ if [ -n "$fsopts" ] ;then
+ fsopts="-o $fsopts"
+ fi
+
+ case "$fstype" in
+ udf )
+ typelist="$fstype $alttype vfat iso9660"
+ ;;
+ vfat )
+ typelist="$fstype $alttype udf iso9660"
+ ;;
+ iso9660 )
+ typelist="$fstype $alttype udf vfat"
+ ;;
+ * )
+ typelist="$fstype $alttype udf"
+ ;;
+ esac
+
+ for try_type in $typelist ;do
+ msginfo "Attempting to mount $fsdev to $fsmnt as type $try_type ..."
+
+ mount_iso "$try_type" "$fsdev" "$fsmnt" "$fsopts" &&
+ return 0
+ done
+
+ msgerr "unable to mount $fsdev to $fsmnt"
+
+ return 1
+}
+
+test_mount() {
+ local dev="$1"
+ local fstype="$2"
+ local mnt="${3:-$SMGL_MOUNT}"
+ local found=1
+
+ msginfo "Trying: $dev"
+
+ if try_mount "$dev" "$mnt" "$fstype" ;then
+ if [ -f "$SMGL_ISOPATH/$SMGL_ID" ] ;then
+ msggood "SMGL iso accessible at $SMGL_ISOPATH"
+ found=0
+ else
+ msgerr "SMGL iso file not found: $SMGL_ISOPATH/$SMGL_ID"
+ fi
+ else
+ msgerr "couldn't mount $device at $mnt"
+ fi
+
+ return $found
+}
+
+scan_cdrom() {
+ local fstype="iso9660"
+ local device=""
+
+ # load modules to attempt the mount
+ modprobe udf &> /dev/null
+ modprobe isofs &> /dev/null
+
+ msginfo "Trying to find the SMGL cdrom via /sys ..."
+ for handler in /sys/block/*/removable ;do
+ if [ $(cat "$handler") -eq 1 ]
+ then
+ handler="${handler%/removable}"
+ device="/dev/${handler##*/}"
+
+ # skip loop devices
+ [ "${device##*/}" = "loop" ] && continue
+
+ if test_mount "$device" "$fstype" ;then
+ msggood "SMGL cdrom found!"
+ return 0
+ fi
+ fi
+ done
+
+ msginfo "Trying to find the SMGL cdrom via /proc/partitions ..."
+ # Next try: look at all /proc/partitions stuff, make devices if neccessary
+ local major minor blocks name
+ while read major minor blocks name ;do
+ (( major )) 2>/dev/null || continue # Don't process non-numeric lines
+
+ device="/dev/$name"
+
+ if [ ! -b "$device" ] ;then
+ mknod "$device" b "$major" "$minor"
+ fi
+
+ if test_mount "$device" ;then
+ msggood "SMGL cdrom found!"
+ return 0
+ fi
+ done < /proc/partitions
+
+ return 1
+}
+
+scan_usb() {
+ local fstype="vfat"
+ local device=""
+
+ # load modules to attempt the mount
+ modprobe udf &> /dev/null
+ modprobe vfat &> /dev/null
+ modprobe usb-storage &> /dev/null
+
+ msg "Trying to find the SMGL usb via /sys ..."
+ for handler in /sys/block/*/removable ;do
+ if [ $(cat $handler) -eq 1 ]
+ then
+ handler=${handler%/removable}
+ device=/dev/${handler##*/}
+
+ # a usb device may have various partitions, so try each partition in
turn
+ for part in "$device"* ;do
+ if test_mount "$part" "$fstype" ;then
+ msggood "SMGL usb found!"
+ return 0
+ fi
+ done
+ fi
+ done
+
+ return 1
+}
+
+try_media() {
+ local media="$1"
+ local error=0
+ local device=""
+ local fstype=""
+
+ case "$media" in
+ cdrom )
+ scan_cdrom || error=1
+ ;;
+ usb )
+ scan_usb || error=1
+ ;;
+ * )
+ msg "Invalid media type"
+ return 1
+ ;;
+ esac
+
+ if [ "$error" -eq 0 ] ;then
+ device="$(mount | grep "$SMGL_MOUNT" | cut -d' ' -f1)"
+ fstype="$(mount | grep "$SMGL_MOUNT" | cut -d' ' -f5)"
+
+ msggood "SMGL $media found: $device ($fstype)"
+ return 0
+ fi
+
+ msgwarn " Unable to find the SMGL $media in anything remotely looking
like a"
+ msgwarn " $media device that I can see right now. Please load appropriate"
+ msgwarn " driver modules, or explicitly specify a device to boot from."
+ return 1
+}
+
+test_init() {
+ local path="${1:-$SMGL_ISOPATH}"
+ local init="${2:-$SMGL_INIT}"
+
+ msginfo "Testing for init..."
+
+ # make the init path relative to the iso path
+ init="$path/${init#/}"
+
+ if [ -x "$init" ]; then
+ msggood "$init found"
+ return 0
+ fi
+
+ if [ -f "$path/${init#/}" ]; then
+ msgerr "$init not executable"
+ return 1
+ fi
+
+ msgerr "$init not found"
+ return 1
+}
+
+base_mount() {
+ for dir in proc sys dev dev/pts ;do
+ mkdir -p "$dir"
+ done
+
+ mount -t proc procfs /proc &> /dev/null
+ mount -t sysfs sysfs /sys &> /dev/null
+ mount -t devtmpfs devtmpfs /dev &> /dev/null
+ mount -t devpts devpts /dev/pts &> /dev/null
+}
+
+base_umount() {
+ umount /sys
+ umount /dev/pts
+ umount /dev
+ umount /proc
+}
+
+prepare() {
+ base_mount
+ device_manager_start
+}
+
+cleanup() {
+ device_manager_stop
+ base_umount
+}
+
+try_overlay() {
+ local mnt="${1:-$SMGL_ISOPATH}"
+ local overlay="$SMGL_OVERLAY"
+ local ovltmp="/.ovltmp"
+ local upper="$ovltmp/upper"
+ local work="$ovltmp/work"
+ local ovlhidden="$overlay/.overlay"
+
+ msginfo "Mounting overlayfs on $overlay using $mnt ..."
+ mkdir -p "$ovltmp" || return 1
+ if ! mount -t tmpfs tmpfs "$ovltmp" ;then
+ msgerr "couldn't mount tmpfs on $ovltmp"
+ return 1
+ fi
+ mkdir -p "$upper" || return 1
+ mkdir -p "$work" || return 1
+
+ mkdir -p "$overlay" || return 1
+ if ! mount -t overlay overlay "$overlay" \
+ -o rw,lowerdir="$mnt",upperdir="$upper",workdir="$work" ;then
+ msgerr "failed to mount $overlay, aborting"
+ return 1
+ fi
+
+ mkdir -p "$ovlhidden/lower" || return 1
+ mkdir -p "$ovlhidden/upper" || return 1
+ mount --move "$ovltmp" "$ovlhidden/upper" || return 1
+ mount --move "$mnt" "$ovlhidden/lower" || return 1
+
+ # make sure necessary directories exists in the overlay
+ if ! mkdir -p "$overlay/dev" "$overlay/proc" "$overlay/sys" ;then
+ msgerr "failed to mkdir dev in $overlay, aborting"
+ return 1
+ fi
+
+ ## attempt to mount a dev tree in the overlay
+ if ! mount -t devtmpfs devtmpfs "$overlay/dev" ;then
+ msgerr "failed to mount a dev tree in $overlay, aborting"
+ return 1
+ fi
+
+ msggood "mounted overlayfs on $overlay"
+}
+
+try_switch_root() {
+ local mnt="${1:-$SMGL_ISOPATH}"
+ local ovl="${2:-$SMGL_OVERLAY}"
+ local init="${3:-$SMGL_INIT}"
+
+ # try running ldconfig via a chroot in the overlay to ensure things are
working properly
+ msginfo "Attempting chroot ldconfig in $ovl..."
+ if ! chroot "$ovl" ldconfig ;then
+ msgerr "failed to execute chroot ldconfig in $ovl, aborting"
+ return 1
+ fi
+
+ msginfo "Attempting switch_root to $ovl..."
+
+ cleanup
+
+ msgdebug "\tswitch_root -c /dev/console $ovl $init $INITOPTS"
+ exec switch_root -c /dev/console "$ovl" "$init" "$INITOPTS"
+}
+
+user_modules() {
+ local modules=
+
+ msgprompt "Please enter any modules to load before proceeding"
+ echo -n "modules: "
+ read modules
+
+ if [ -n "$modules" ] ;then
+ msginfo "Loading requested modules..."
+ for mod in $modules ;do
+ if [ -f "$mod" ] ;then
+ insmod "$mod" ||
+ msgerr "failed to load module $mod"
+ else
+ modprobe "$mod" ||
+ msgerr "failed to load module $mod"
+ fi
+ done
+ fi
+
+ echo ""
+}
+
+choice_cdrom() {
+ local mnt="$SMGL_MOUNT/$SMGL_PREFIX"
+ local iso="${SMGL_ISOPATH%/}"
+
+ mnt="${mnt%/}"
+ try_media cdrom || return 1
+ if ! test_init ;then
+ if [ "$iso" != "$mnt" ] ;then
+ msginfo "Unmounting $iso ..."
+ umount "$iso"
+ fi
+ msginfo "Unmounting $SMGL_MOUNT ..."
+ umount "$SMGL_MOUNT"
+ return 1
+ fi
+ try_overlay || return 1
+ try_switch_root
+}
+
+choice_usb() {
+ try_media usb || return 1
+ if ! test_init ;then
+ msginfo "Unmounting $SMGL_MOUNT..."
+ umount "$SMGL_MOUNT"
+ return 1
+ fi
+ try_overlay || return 1
+ try_switch_root
+}
+
+choice_manual() {
+ local path="$SMGL_ISOPATH"
+ local fsdev=
+ local fstype=
+
+ msgprompt -n "Please enter your boot device: "
+ read fsdev
+ msgprompt -n "Please enter your boot device's filesystem type: "
+ read fstype
+
+ [ "${fsdev:0:4}" != "/dev" ] && fsdev="/dev/$fsdev"
+
+ test_mount "$fsdev" "$fstype" || return 1
+
+ msgprompt -n "Please enter the path to try to init from (default $path): "
+ read path
+ [ -n "$path" ] && SMGL_ISOPATH="$path"
+
+ test_init "$path" || return 1
+ try_overlay || return 1
+ try_switch_root "$path"
+}
+
+choice_prefix() {
+ local path="$SMGL_PREFIX"
+
+ msgprompt "Please enter the path relative to the mount point to load
Source Mage from."
+ msgprompt -n "(current: '$path'): "
+ read path
+ [ -n "$path" ] && SMGL_PREFIX="$path"
+}
+
+choice_init() {
+ local path="$SMGL_ISOPATH"
+
+ msgprompt "Please enter the path to attempt to init from."
+ msgprompt -n "(current: '$path'): "
+ read path
+ [ -n "$path" ] && SMGL_ISOPATH="$path"
+
+ test_init "$upath" || return 1
+ try_switch_root "$upath"
+}
+
+choice_overlay() {
+ local path="$SMGL_ISOPATH"
+
+ msgprompt "Please enter the path for the lower mount of the overlayfs."
+ msgprompt -n "(current: '$path'): "
+ read path
+ [ -n "$path" ] && SMGL_ISOPATH="$path"
+
+ try_overlay "$path"
+}
+
+choice_execshell() {
+ msgerr "\tWARNING: if you exit this new shell, you will kill init (PID 1)"
+ msgerr "\tthe kernel will panic, and you will have to reboot manually"
+ exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
+}
+
+choice_shell() {
+ shell
+}
+
+choice_modules() {
+ # ask the user if they want to load any modules before proceeding
+ user_modules
+}
+
+choice_auto() {
+ msginfo "Looking for boot device via cdrom/dvdrom..."
+ choice_cdrom
+ msginfo "Looking for boot device via usb..."
+ choice_usb
+}
+
+menu() {
+ local menu_cdrom=1
+ local menu_usb=2
+ local menu_prefix=3
+ local menu_manual=4
+ local menu_modules=5
+ local menu_overlay=6
+ local menu_init=7
+ local menu_shell=8
+ local menu_exec=9
+ local lead="\t"
+ local ic="$BOLD$CYAN"
+ local mc="$BOLD$WHITE"
+ local nc="$NORMAL"
+
+ msginfo "----------------------------------------"
+ msginfo "- Please choose among the following: -"
+ msginfo "----------------------------------------"
+ msg "$lead" "$ic$menu_cdrom" "$nc)" "$lead${mc}scan
cdroms/dvdroms/blurays for boot device"
+ msg "$lead" "$ic$menu_usb" "$nc)" "$lead${mc}scan usb sticks/hard
drives for boot device"
+ msg "$lead" "$ic$menu_prefix" "$nc)" "$lead${mc}specify path relative to
mount point to load Source Mage from"
+ msg "$lead" "$ic$menu_manual" "$nc)" "$lead${mc}specify boot device and
init path manually"
+ msg "$lead" "$ic$menu_modules" "$nc)" "$lead${mc}specify kernel modules
to load"
+ msg "$lead" "$ic$menu_overlay" "$nc)" "$lead${mc}mount an overlayfs using
a given path as the lower directory"
+ msg "$lead" "$ic$menu_init" "$nc)" "$lead${mc}attempt to init from a
given path"
+ msg "$lead" "$ic$menu_shell" "$nc)" "$lead${mc}spawn a shell"
+ msg "$lead" "$ic$menu_exec" "$nc)" "$lead${mc}exec a shell (PID 1)"
+ msgprompt -n " choice: "
+ read choice
+ case "$choice" in
+ $menu_cdrom ) choice="cdrom" ;;
+ $menu_usb ) choice="usb" ;;
+ $menu_prefix ) choice="prefix" ;;
+ $menu_manual ) choice="manual" ;;
+ $menu_modules ) choice="modules" ;;
+ $menu_overlay ) choice="overlay" ;;
+ $menu_init ) choice="init" ;;
+ $menu_shell ) choice="shell" ;;
+ $menu_exec ) choice="execshell" ;;
+ * ) choice="" ;;
+ esac
+}
+
+user_choice() {
+ while true ;do
+ local choice=""
+
+ menu
+ case "$choice" in
+ cdrom )
+ "choice_$choice"
+ ;;
+ usb )
+ "choice_$choice"
+ ;;
+ prefix )
+ "choice_$choice"
+ ;;
+ manual )
+ "choice_$choice"
+ ;;
+ modules )
+ "choice_$choice"
+ ;;
+ overlay )
+ "choice_$choice"
+ ;;
+ init )
+ "choice_$choice"
+ ;;
+ shell )
+ "choice_$choice"
+ ;;
+ execshell)
+ "choice_$choice"
+ ;;
+ esac
+ done
+}
+
+# here is the real start of this shell script
+/sbin/busybox --install -s
+
+# prepare essential pseudo-fs mountpoints and other necessities
+prepare
+
+# ensure sane kernel console log output by setting it to log error or worse
+# only change the log level of the "current" setting, and only change it once
+echo "3" > "/proc/sys/kernel/printk"
+
+# attempt to autoload modules
+load_modules
+
+echo ""
+echo ""
+
+# Process init options directed at us
+while [ "$#" -gt 0 ] ;do
+ case "$1" in
+ bootcdrom )
+ TRYBOOT="choice_${1#boot}"
+ ;;
+ bootusb )
+ TRYBOOT="choice_${1#boot}"
+ ;;
+ bootmenu )
+ TRYBOOT="menu"
+ ;;
+ bootauto )
+ TRYBOOT="choice_${1#boot}"
+ ;;
+ bootshell )
+ TRYBOOT="choice_${1#boot}"
+ ;;
+ shell )
+ TRYBOOT="choice_$1"
+ ;;
+ * )
+ # INITOPTS should take only the last arg, so always replace
+ INITOPTS="$1"
+ ;;
+ esac
+ shift
+done
+
+SMGL_INIT="$(awk '/.*init=/ {sub(/.*init=/,""); sub(/[ ].*/,""); print}'
/proc/cmdline)"
+SMGL_INIT="${SMGL_INIT:-/sbin/init}"
+
+# try any requested boot modes first
+[ "${TRYBOOT:0:7}" = "choice_" ] && "$TRYBOOT"
+
+# we haven't booted yet, so present a menu and let the user figure out how
to boot
+while true ;do
+ user_choice
+done
+
+# we shouldn't be here
+msgerr "\tERROR!!"
+msgerr "\tSomething went horribly wrong and the initramfs init script ended"
+msgerr "\twithout booting the real system!"
+msgerr "\tBailing out and execing a new interactive shell as PID 1"
+msgerr "\t\tWARNING: if you exit this new shell, you will kill init (PID 1),"
+msgerr "\t\tthe kernel will panic, and you will have to reboot manually"
+exec /bin/sh
diff --git a/cauldron/etc/x86_64/initfs/ld.so.conf
b/cauldron/etc/x86_64/initfs/ld.so.conf
new file mode 100644
index 0000000..502167f
--- /dev/null
+++ b/cauldron/etc/x86_64/initfs/ld.so.conf
@@ -0,0 +1 @@
+/lib
diff --git a/cauldron/etc/x86_64/initfs/modules
b/cauldron/etc/x86_64/initfs/modules
new file mode 100644
index 0000000..b70d2c8
--- /dev/null
+++ b/cauldron/etc/x86_64/initfs/modules
@@ -0,0 +1,64 @@
+fs/9p/9p.ko
+fs/btrfs/btrfs.ko
+fs/ceph/ceph.ko
+fs/efivarfs/efivarfs.ko
+fs/ext2/ext2.ko
+fs/ext3/ext3.ko
+fs/ext4/ext4.ko
+fs/reiserfs/reiserfs.ko
+fs/xfs/xfs.ko
+fs/f2fs/f2fs.ko
+fs/fat/fat.ko
+fs/fat/vfat.ko
+fs/hfsplus/hfsplus.ko
+fs/isofs/isofs.ko
+fs/udf/udf.ko
+fs/ufs/ufs.ko
+fs/cramfs/cramfs.ko
+fs/squashfs/squashfs.ko
+drivers/acpi
+drivers/ata
+drivers/block/brd.ko
+drivers/block/drbd/drbd.ko
+drivers/block/nbd.ko
+drivers/block/paride
+drivers/block/pktcdvd.ko
+drivers/block/rbd.ko
+drivers/firmware
+drivers/hid/uhid.ko
+drivers/md
+drivers/mmc
+drivers/pcmcia
+drivers/scsi
+drivers/target
+drivers/usb/common/usb-otg-fsm.ko
+drivers/usb/host/bcma-hcd.ko
+drivers/usb/host/ehci-hcd.ko
+drivers/usb/host/ehci-pci.ko
+drivers/usb/host/ehci-platform.ko
+drivers/usb/host/ohci-hcd.ko
+drivers/usb/host/ohci-pci.ko
+drivers/usb/host/ohci-platform.ko
+drivers/usb/host/ssb-hcd.ko
+drivers/usb/host/uhci-hcd.ko
+drivers/usb/host/xhci-hcd.ko
+drivers/usb/host/xhci-pci.ko
+drivers/usb/host/xhci-plat-hcd.ko
+drivers/usb/phy
+drivers/usb/storage
+drivers/vfio
+drivers/virtio
+lib/bch.ko
+lib/cordic.ko
+lib/crc-ccitt.ko
+lib/crc-itu-t.ko
+lib/crc7.ko
+lib/libcrc32c.ko
+lib/lru_cache.ko
+lib/lz4
+lib/raid6
+lib/reed_solomon
+lib/ts_bm.ko
+lib/ts_fsm.ko
+lib/ts_kmp.ko
+kernel/configs.ko
diff --git a/cauldron/etc/x86_64/linux-4.0.2.config
b/cauldron/etc/x86_64/linux-4.0.2.config
new file mode 100644
index 0000000..95f83be
--- /dev/null
+++ b/cauldron/etc/x86_64/linux-4.0.2.config
@@ -0,0 +1,6092 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/x86 4.0.2 Kernel Configuration
+#
+CONFIG_64BIT=y
+CONFIG_X86_64=y
+CONFIG_X86=y
+CONFIG_INSTRUCTION_DECODER=y
+CONFIG_PERF_EVENTS_INTEL_UNCORE=y
+CONFIG_OUTPUT_FORMAT="elf64-x86-64"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_MMU=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
+CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
+CONFIG_ZONE_DMA32=y
+CONFIG_AUDIT_ARCH=y
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_HAVE_INTEL_TXT=y
+CONFIG_X86_64_SMP=y
+CONFIG_X86_HT=y
+CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi
-fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9
-fcall-saved-r10 -fcall-saved-r11"
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_IRQ_WORK=y
+CONFIG_BUILDTIME_EXTABLE_SORT=y
+
+#
+# General setup
+#
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+# CONFIG_COMPILE_TEST is not set
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_HAVE_KERNEL_LZ4=y
+# CONFIG_KERNEL_GZIP is not set
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+CONFIG_KERNEL_XZ=y
+# CONFIG_KERNEL_LZO is not set
+# CONFIG_KERNEL_LZ4 is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+# CONFIG_CROSS_MEMORY_ATTACH is not set
+CONFIG_FHANDLE=y
+# CONFIG_USELIB is not set
+CONFIG_AUDIT=y
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_WATCH=y
+CONFIG_AUDIT_TREE=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_LEGACY_ALLOC_HWIRQ=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_GENERIC_MSI_IRQ=y
+# CONFIG_IRQ_DOMAIN_DEBUG is not set
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_ARCH_CLOCKSOURCE_DATA=y
+CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+
+#
+# Timers subsystem
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ_COMMON=y
+# CONFIG_HZ_PERIODIC is not set
+CONFIG_NO_HZ_IDLE=y
+# CONFIG_NO_HZ_FULL is not set
+# CONFIG_NO_HZ is not set
+CONFIG_HIGH_RES_TIMERS=y
+
+#
+# CPU/Task time and stats accounting
+#
+CONFIG_TICK_CPU_ACCOUNTING=y
+# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+CONFIG_SRCU=y
+# CONFIG_TASKS_RCU is not set
+CONFIG_RCU_STALL_COMMON=y
+# CONFIG_RCU_USER_QS is not set
+CONFIG_RCU_FANOUT=64
+CONFIG_RCU_FANOUT_LEAF=16
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_RCU_FAST_NO_HZ is not set
+# CONFIG_TREE_RCU_TRACE is not set
+CONFIG_RCU_KTHREAD_PRIO=0
+# CONFIG_RCU_NOCB_CPU is not set
+CONFIG_BUILD_BIN2C=y
+CONFIG_IKCONFIG=m
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
+CONFIG_ARCH_SUPPORTS_INT128=y
+CONFIG_NUMA_BALANCING=y
+CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
+CONFIG_CGROUPS=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CPUSETS=y
+# CONFIG_PROC_PID_CPUSET is not set
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_PAGE_COUNTER=y
+CONFIG_MEMCG=y
+# CONFIG_MEMCG_SWAP is not set
+# CONFIG_MEMCG_KMEM is not set
+# CONFIG_CGROUP_HUGETLB is not set
+# CONFIG_CGROUP_PERF is not set
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_BLK_CGROUP=y
+# CONFIG_DEBUG_BLK_CGROUP is not set
+CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+CONFIG_SCHED_AUTOGROUP=y
+# CONFIG_SYSFS_DEPRECATED is not set
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+CONFIG_RD_LZ4=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_HAVE_UID16=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
+CONFIG_BPF=y
+CONFIG_EXPERT=y
+CONFIG_UID16=y
+CONFIG_SGETMASK_SYSCALL=y
+CONFIG_SYSFS_SYSCALL=y
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+# CONFIG_BPF_SYSCALL is not set
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_ADVISE_SYSCALLS=y
+CONFIG_PCI_QUIRKS=y
+# CONFIG_EMBEDDED is not set
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+CONFIG_SLUB_CPU_PARTIAL=y
+# CONFIG_SYSTEM_TRUSTED_KEYRING is not set
+# CONFIG_PROFILING is not set
+CONFIG_HAVE_OPROFILE=y
+CONFIG_OPROFILE_NMI_TIMER=y
+# CONFIG_KPROBES is not set
+CONFIG_JUMP_LABEL=y
+# CONFIG_UPROBES is not set
+# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_ARCH_USE_BUILTIN_BSWAP=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_KPROBES_ON_FTRACE=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_PERF_EVENTS_NMI=y
+CONFIG_HAVE_PERF_REGS=y
+CONFIG_HAVE_PERF_USER_STACK_DUMP=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
+CONFIG_HAVE_CMPXCHG_LOCAL=y
+CONFIG_HAVE_CMPXCHG_DOUBLE=y
+CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
+CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_SECCOMP_FILTER=y
+CONFIG_HAVE_CC_STACKPROTECTOR=y
+CONFIG_CC_STACKPROTECTOR=y
+# CONFIG_CC_STACKPROTECTOR_NONE is not set
+CONFIG_CC_STACKPROTECTOR_REGULAR=y
+# CONFIG_CC_STACKPROTECTOR_STRONG is not set
+CONFIG_HAVE_CONTEXT_TRACKING=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_HAVE_ARCH_SOFT_DIRTY=y
+CONFIG_MODULES_USE_ELF_RELA=y
+CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_COMPAT_OLD_SIGACTION=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+# CONFIG_MODULE_SIG is not set
+# CONFIG_MODULE_COMPRESS is not set
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
+CONFIG_BLK_DEV_INTEGRITY=y
+CONFIG_BLK_DEV_THROTTLING=y
+# CONFIG_BLK_CMDLINE_PARSER is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_AIX_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+# CONFIG_CMDLINE_PARTITION is not set
+CONFIG_BLOCK_COMPAT=y
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_CFQ_GROUP_IOSCHED=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_PADATA=y
+CONFIG_ASN1=y
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+CONFIG_INLINE_READ_UNLOCK=y
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+CONFIG_INLINE_WRITE_UNLOCK=y
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_LOCK_SPIN_ON_OWNER=y
+CONFIG_ARCH_USE_QUEUE_RWLOCK=y
+CONFIG_QUEUE_RWLOCK=y
+CONFIG_FREEZER=y
+
+#
+# Processor type and features
+#
+CONFIG_ZONE_DMA=y
+CONFIG_SMP=y
+CONFIG_X86_FEATURE_NAMES=y
+# CONFIG_X86_X2APIC is not set
+CONFIG_X86_MPPARSE=y
+CONFIG_X86_EXTENDED_PLATFORM=y
+CONFIG_X86_VSMP=y
+# CONFIG_X86_GOLDFISH is not set
+CONFIG_X86_INTEL_LPSS=y
+CONFIG_X86_AMD_PLATFORM_DEVICE=y
+CONFIG_IOSF_MBI=y
+# CONFIG_IOSF_MBI_DEBUG is not set
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_HYPERVISOR_GUEST=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_DEBUG is not set
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+# CONFIG_XEN is not set
+CONFIG_KVM_GUEST=y
+# CONFIG_KVM_DEBUG_FS is not set
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
+CONFIG_PARAVIRT_CLOCK=y
+CONFIG_NO_BOOTMEM=y
+CONFIG_MEMTEST=y
+# CONFIG_MK8 is not set
+# CONFIG_MPSC is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_MATOM is not set
+CONFIG_GENERIC_CPU=y
+CONFIG_X86_INTERNODE_CACHE_SHIFT=12
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_TSC=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=64
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_PROCESSOR_SELECT=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_HPET_TIMER=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_DMI=y
+CONFIG_GART_IOMMU=y
+CONFIG_CALGARY_IOMMU=y
+CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
+CONFIG_SWIOTLB=y
+CONFIG_IOMMU_HELPER=y
+# CONFIG_MAXSMP is not set
+CONFIG_NR_CPUS=64
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_MC=y
+# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_VOLUNTARY=y
+# CONFIG_PREEMPT is not set
+CONFIG_X86_UP_APIC_MSI=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_AMD=y
+CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_X86_MCE_INJECT is not set
+CONFIG_X86_THERMAL_VECTOR=y
+# CONFIG_X86_16BIT is not set
+CONFIG_X86_VSYSCALL_EMULATION=y
+CONFIG_I8K=m
+CONFIG_MICROCODE=m
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+# CONFIG_MICROCODE_INTEL_EARLY is not set
+# CONFIG_MICROCODE_AMD_EARLY is not set
+CONFIG_X86_MSR=y
+CONFIG_X86_CPUID=y
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_DIRECT_GBPAGES=y
+CONFIG_NUMA=y
+CONFIG_AMD_NUMA=y
+CONFIG_X86_64_ACPI_NUMA=y
+CONFIG_NODES_SPAN_OTHER_NODES=y
+# CONFIG_NUMA_EMU is not set
+CONFIG_NODES_SHIFT=6
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+# CONFIG_ARCH_MEMORY_PROBE is not set
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_NEED_MULTIPLE_NODES=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
+CONFIG_ARCH_DISCARD_MEMBLOCK=y
+CONFIG_MEMORY_ISOLATION=y
+# CONFIG_MOVABLE_NODE is not set
+CONFIG_HAVE_BOOTMEM_INFO_NODE=y
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTPLUG_SPARSE=y
+CONFIG_MEMORY_HOTREMOVE=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
+CONFIG_MEMORY_BALLOON=y
+CONFIG_BALLOON_COMPACTION=y
+CONFIG_COMPACTION=y
+CONFIG_MIGRATION=y
+CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_NEED_BOUNCE_POOL=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+# CONFIG_MEMORY_FAILURE is not set
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+CONFIG_CLEANCACHE=y
+CONFIG_FRONTSWAP=y
+# CONFIG_CMA is not set
+CONFIG_MEM_SOFT_DIRTY=y
+# CONFIG_ZSWAP is not set
+CONFIG_ZPOOL=m
+CONFIG_ZBUD=m
+CONFIG_ZSMALLOC=m
+# CONFIG_PGTABLE_MAPPING is not set
+# CONFIG_ZSMALLOC_STAT is not set
+CONFIG_GENERIC_EARLY_IOREMAP=y
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_RESERVE_LOW=64
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_ARCH_RANDOM=y
+CONFIG_X86_SMAP=y
+# CONFIG_X86_INTEL_MPX is not set
+CONFIG_EFI=y
+CONFIG_EFI_STUB=y
+# CONFIG_EFI_MIXED is not set
+CONFIG_SECCOMP=y
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+CONFIG_HZ_1000=y
+CONFIG_HZ=1000
+CONFIG_SCHED_HRTICK=y
+# CONFIG_KEXEC is not set
+# CONFIG_CRASH_DUMP is not set
+CONFIG_PHYSICAL_START=0x1000000
+CONFIG_RELOCATABLE=y
+# CONFIG_RANDOMIZE_BASE is not set
+CONFIG_PHYSICAL_ALIGN=0x200000
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
+# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_HAVE_LIVEPATCH=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y
+
+#
+# Power management and ACPI options
+#
+CONFIG_ARCH_HIBERNATION_HEADER=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATE_CALLBACKS=y
+CONFIG_HIBERNATION=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_AUTOSLEEP=y
+# CONFIG_PM_WAKELOCKS is not set
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_CLK=y
+CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
+CONFIG_ACPI=y
+CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
+CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
+CONFIG_ACPI_SLEEP=y
+# CONFIG_ACPI_PROCFS_POWER is not set
+# CONFIG_ACPI_EC_DEBUGFS is not set
+CONFIG_ACPI_AC=y
+CONFIG_ACPI_BATTERY=y
+CONFIG_ACPI_BUTTON=y
+CONFIG_ACPI_VIDEO=y
+CONFIG_ACPI_FAN=y
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_PROCESSOR=y
+# CONFIG_ACPI_IPMI is not set
+CONFIG_ACPI_HOTPLUG_CPU=y
+# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set
+CONFIG_ACPI_THERMAL=y
+CONFIG_ACPI_NUMA=y
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+# CONFIG_ACPI_INITRD_TABLE_OVERRIDE is not set
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_PCI_SLOT=y
+CONFIG_X86_PM_TIMER=y
+CONFIG_ACPI_CONTAINER=y
+CONFIG_ACPI_HOTPLUG_MEMORY=y
+CONFIG_ACPI_HOTPLUG_IOAPIC=y
+CONFIG_ACPI_SBS=m
+CONFIG_ACPI_HED=y
+# CONFIG_ACPI_CUSTOM_METHOD is not set
+CONFIG_ACPI_BGRT=y
+# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
+CONFIG_HAVE_ACPI_APEI=y
+CONFIG_HAVE_ACPI_APEI_NMI=y
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_GHES=y
+CONFIG_ACPI_APEI_PCIEAER=y
+# CONFIG_ACPI_APEI_EINJ is not set
+# CONFIG_ACPI_APEI_ERST_DEBUG is not set
+CONFIG_ACPI_EXTLOG=m
+# CONFIG_PMIC_OPREGION is not set
+CONFIG_SFI=y
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+# CONFIG_CPU_FREQ_STAT is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+
+#
+# CPU frequency scaling drivers
+#
+CONFIG_X86_INTEL_PSTATE=y
+CONFIG_X86_PCC_CPUFREQ=m
+CONFIG_X86_ACPI_CPUFREQ=m
+CONFIG_X86_ACPI_CPUFREQ_CPB=y
+CONFIG_X86_POWERNOW_K8=m
+CONFIG_X86_AMD_FREQ_SENSITIVITY=m
+CONFIG_X86_SPEEDSTEP_CENTRINO=m
+CONFIG_X86_P4_CLOCKMOD=m
+
+#
+# shared options
+#
+CONFIG_X86_SPEEDSTEP_LIB=m
+
+#
+# CPU Idle
+#
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
+CONFIG_INTEL_IDLE=y
+
+#
+# Memory power savings
+#
+CONFIG_I7300_IDLE_IOAT_CHANNEL=y
+CONFIG_I7300_IDLE=m
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_DOMAINS=y
+# CONFIG_PCI_CNB20LE_QUIRK is not set
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=y
+CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_PERFORMANCE is not set
+CONFIG_PCIE_PME=y
+CONFIG_PCI_MSI=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_REALLOC_ENABLE_AUTO=y
+CONFIG_PCI_STUB=m
+CONFIG_HT_IRQ=y
+CONFIG_PCI_ATS=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_PRI=y
+CONFIG_PCI_PASID=y
+CONFIG_PCI_LABEL=y
+
+#
+# PCI host controller drivers
+#
+CONFIG_ISA_DMA_API=y
+CONFIG_AMD_NB=y
+CONFIG_PCCARD=m
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_PCCARD_NONSTATIC=y
+CONFIG_HOTPLUG_PCI=y
+# CONFIG_HOTPLUG_PCI_ACPI is not set
+# CONFIG_HOTPLUG_PCI_CPCI is not set
+# CONFIG_HOTPLUG_PCI_SHPC is not set
+CONFIG_RAPIDIO=m
+CONFIG_RAPIDIO_TSI721=m
+CONFIG_RAPIDIO_DISC_TIMEOUT=30
+CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS=y
+CONFIG_RAPIDIO_DMA_ENGINE=y
+# CONFIG_RAPIDIO_DEBUG is not set
+CONFIG_RAPIDIO_ENUM_BASIC=m
+
+#
+# RapidIO Switch drivers
+#
+CONFIG_RAPIDIO_TSI57X=m
+CONFIG_RAPIDIO_CPS_XX=m
+CONFIG_RAPIDIO_TSI568=m
+CONFIG_RAPIDIO_CPS_GEN2=m
+CONFIG_X86_SYSFB=y
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_COMPAT_BINFMT_ELF=y
+CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_BINFMT_SCRIPT=y
+# CONFIG_HAVE_AOUT is not set
+CONFIG_BINFMT_MISC=m
+CONFIG_COREDUMP=y
+CONFIG_IA32_EMULATION=y
+# CONFIG_IA32_AOUT is not set
+CONFIG_X86_X32=y
+CONFIG_COMPAT=y
+CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_KEYS_COMPAT=y
+CONFIG_X86_DEV_DMA_OPS=y
+CONFIG_PMC_ATOM=y
+CONFIG_NET=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_DIAG=y
+CONFIG_UNIX=y
+CONFIG_UNIX_DIAG=y
+CONFIG_XFRM=y
+CONFIG_XFRM_ALGO=y
+CONFIG_XFRM_USER=y
+CONFIG_XFRM_SUB_POLICY=y
+CONFIG_XFRM_MIGRATE=y
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=m
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+# CONFIG_IP_FIB_TRIE_STATS is not set
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_CLASSID=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IP_TUNNEL=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+CONFIG_IP_MROUTE=y
+CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_SYN_COOKIES=y
+CONFIG_NET_IPVTI=m
+CONFIG_NET_UDP_TUNNEL=m
+CONFIG_NET_FOU=m
+CONFIG_NET_FOU_IP_TUNNELS=y
+CONFIG_GENEVE=m
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_LRO=m
+CONFIG_INET_DIAG=m
+CONFIG_INET_TCP_DIAG=m
+CONFIG_INET_UDP_DIAG=m
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_TCP_CONG_DCTCP=m
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+CONFIG_TCP_MD5SIG=y
+CONFIG_IPV6=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_VTI=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_GRE=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+CONFIG_IPV6_MROUTE=y
+CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IPV6_PIMSM_V2=y
+CONFIG_NETLABEL=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NET_PTP_CLASSIFY=y
+# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=m
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_ACCT=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_LOG_COMMON=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+# CONFIG_NF_CONNTRACK_PROCFS is not set
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMEOUT=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CONNTRACK_LABELS=y
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_CT_NETLINK_TIMEOUT=m
+CONFIG_NF_CT_NETLINK_HELPER=m
+CONFIG_NETFILTER_NETLINK_QUEUE_CT=y
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_REDIRECT=m
+CONFIG_NETFILTER_SYNPROXY=m
+CONFIG_NF_TABLES=m
+CONFIG_NF_TABLES_INET=m
+CONFIG_NFT_EXTHDR=m
+CONFIG_NFT_META=m
+CONFIG_NFT_CT=m
+CONFIG_NFT_RBTREE=m
+CONFIG_NFT_HASH=m
+CONFIG_NFT_COUNTER=m
+CONFIG_NFT_LOG=m
+CONFIG_NFT_LIMIT=m
+CONFIG_NFT_MASQ=m
+CONFIG_NFT_REDIR=m
+CONFIG_NFT_NAT=m
+CONFIG_NFT_QUEUE=m
+CONFIG_NFT_REJECT=m
+CONFIG_NFT_REJECT_INET=m
+CONFIG_NFT_COMPAT=m
+CONFIG_NETFILTER_XTABLES=y
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+# CONFIG_NETFILTER_XT_SET is not set
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+# CONFIG_NETFILTER_XT_TARGET_CT is not set
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_HMARK=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_NAT=m
+CONFIG_NETFILTER_XT_TARGET_NETMAP=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_BPF=m
+CONFIG_NETFILTER_XT_MATCH_CGROUP=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ECN=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+# CONFIG_NETFILTER_XT_MATCH_IPVS is not set
+CONFIG_NETFILTER_XT_MATCH_L2TP=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_NFACCT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_MAX=256
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPMARK=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_MAC=m
+CONFIG_IP_SET_HASH_NETPORTNET=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETNET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETIFACE=m
+CONFIG_IP_SET_LIST_SET=m
+CONFIG_IP_VS=m
+CONFIG_IP_VS_IPV6=y
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+
+#
+# IPVS transport protocol load balancing support
+#
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+
+#
+# IPVS scheduler
+#
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_FO=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+
+#
+# IPVS SH scheduler
+#
+CONFIG_IP_VS_SH_TAB_BITS=8
+
+#
+# IPVS application helper
+#
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_NFCT=y
+CONFIG_IP_VS_PE_SIP=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_LOG_ARP=m
+CONFIG_NF_LOG_IPV4=m
+CONFIG_NF_TABLES_IPV4=m
+CONFIG_NFT_CHAIN_ROUTE_IPV4=m
+CONFIG_NF_REJECT_IPV4=m
+CONFIG_NFT_REJECT_IPV4=m
+CONFIG_NF_TABLES_ARP=m
+CONFIG_NF_NAT_IPV4=m
+CONFIG_NFT_CHAIN_NAT_IPV4=m
+CONFIG_NF_NAT_MASQUERADE_IPV4=m
+CONFIG_NFT_MASQ_IPV4=m
+CONFIG_NFT_REDIR_IPV4=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_RPFILTER=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_SYNPROXY=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_NF_TABLES_IPV6=m
+CONFIG_NFT_CHAIN_ROUTE_IPV6=m
+CONFIG_NF_REJECT_IPV6=m
+CONFIG_NFT_REJECT_IPV6=m
+CONFIG_NF_LOG_IPV6=m
+CONFIG_NF_NAT_IPV6=m
+CONFIG_NFT_CHAIN_NAT_IPV6=m
+CONFIG_NF_NAT_MASQUERADE_IPV6=m
+CONFIG_NFT_MASQ_IPV6=m
+CONFIG_NFT_REDIR_IPV6=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RPFILTER=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_TARGET_SYNPROXY=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+CONFIG_IP6_NF_TARGET_NPT=m
+
+#
+# DECnet: Netfilter Configuration
+#
+CONFIG_DECNET_NF_GRABULATOR=m
+CONFIG_NF_TABLES_BRIDGE=m
+CONFIG_NFT_BRIDGE_META=m
+CONFIG_NFT_BRIDGE_REJECT=m
+CONFIG_NF_LOG_BRIDGE=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_TFRC_LIB=y
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
+# CONFIG_SCTP_COOKIE_HMAC_MD5 is not set
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+CONFIG_RDS=m
+# CONFIG_RDS_RDMA is not set
+CONFIG_RDS_TCP=m
+# CONFIG_RDS_DEBUG is not set
+CONFIG_TIPC=m
+# CONFIG_TIPC_MEDIA_IB is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_L2TP=m
+# CONFIG_L2TP_DEBUGFS is not set
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
+CONFIG_STP=m
+CONFIG_GARP=m
+CONFIG_MRP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_HAVE_NET_DSA=y
+CONFIG_NET_DSA=m
+CONFIG_NET_DSA_HWMON=y
+CONFIG_NET_DSA_TAG_BRCM=y
+CONFIG_NET_DSA_TAG_DSA=y
+CONFIG_NET_DSA_TAG_EDSA=y
+CONFIG_NET_DSA_TAG_TRAILER=y
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+CONFIG_DECNET=m
+CONFIG_DECNET_ROUTER=y
+CONFIG_LLC=m
+CONFIG_LLC2=m
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_X25=m
+CONFIG_LAPB=m
+CONFIG_PHONET=m
+CONFIG_6LOWPAN=m
+CONFIG_IEEE802154=m
+CONFIG_IEEE802154_SOCKET=m
+# CONFIG_IEEE802154_6LOWPAN is not set
+# CONFIG_MAC802154 is not set
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_CODEL=m
+CONFIG_NET_SCH_FQ_CODEL=m
+CONFIG_NET_SCH_FQ=m
+CONFIG_NET_SCH_HHF=m
+CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_SCH_PLUG=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_PERF=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=m
+CONFIG_NET_CLS_BPF=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_TEXT=m
+# CONFIG_NET_EMATCH_IPSET is not set
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+# CONFIG_NET_ACT_SIMP is not set
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_NET_ACT_VLAN=m
+CONFIG_NET_ACT_BPF=m
+# CONFIG_NET_ACT_CONNMARK is not set
+# CONFIG_NET_CLS_IND is not set
+CONFIG_NET_SCH_FIFO=y
+CONFIG_DCB=y
+CONFIG_DNS_RESOLVER=y
+CONFIG_BATMAN_ADV=m
+CONFIG_BATMAN_ADV_BLA=y
+CONFIG_BATMAN_ADV_DAT=y
+CONFIG_BATMAN_ADV_NC=y
+CONFIG_BATMAN_ADV_MCAST=y
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_OPENVSWITCH=m
+CONFIG_OPENVSWITCH_GRE=m
+CONFIG_OPENVSWITCH_VXLAN=m
+CONFIG_OPENVSWITCH_GENEVE=m
+CONFIG_VSOCKETS=m
+# CONFIG_VMWARE_VMCI_VSOCKETS is not set
+CONFIG_NETLINK_MMAP=y
+CONFIG_NETLINK_DIAG=m
+CONFIG_NET_MPLS_GSO=m
+CONFIG_HSR=m
+# CONFIG_NET_SWITCHDEV is not set
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_CGROUP_NET_CLASSID=y
+CONFIG_NET_RX_BUSY_POLL=y
+CONFIG_BQL=y
+CONFIG_BPF_JIT=y
+CONFIG_NET_FLOW_LIMIT=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=m
+CONFIG_BT_BREDR=y
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+# CONFIG_BT_CMTP is not set
+CONFIG_BT_HIDP=m
+CONFIG_BT_LE=y
+CONFIG_BT_6LOWPAN=m
+# CONFIG_BT_SELFTEST is not set
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIBTUSB=m
+# CONFIG_BT_HCIBTSDIO is not set
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIUART_3WIRE=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBTUART=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+# CONFIG_BT_MRVL_SDIO is not set
+CONFIG_BT_ATH3K=m
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+# CONFIG_RXKAD is not set
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=y
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=y
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL_HT=y
+CONFIG_MAC80211_RC_MINSTREL_VHT=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_MESSAGE_TRACING is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_RFKILL=y
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+# CONFIG_RFKILL_GPIO is not set
+CONFIG_NET_9P=m
+# CONFIG_NET_9P_VIRTIO is not set
+# CONFIG_NET_9P_RDMA is not set
+# CONFIG_NET_9P_DEBUG is not set
+CONFIG_CAIF=m
+# CONFIG_CAIF_DEBUG is not set
+CONFIG_CAIF_NETDEV=m
+CONFIG_CAIF_USB=m
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+CONFIG_NFC=m
+CONFIG_NFC_DIGITAL=m
+CONFIG_NFC_NCI=m
+# CONFIG_NFC_NCI_SPI is not set
+CONFIG_NFC_HCI=m
+CONFIG_NFC_SHDLC=y
+
+#
+# Near Field Communication (NFC) devices
+#
+CONFIG_NFC_PN533=m
+# CONFIG_NFC_TRF7970A is not set
+# CONFIG_NFC_SIM is not set
+CONFIG_NFC_PORT100=m
+CONFIG_NFC_PN544=m
+CONFIG_NFC_PN544_I2C=m
+CONFIG_NFC_MICROREAD=m
+CONFIG_NFC_MICROREAD_I2C=m
+CONFIG_NFC_MRVL=m
+CONFIG_NFC_MRVL_USB=m
+CONFIG_NFC_ST21NFCA=m
+CONFIG_NFC_ST21NFCA_I2C=m
+CONFIG_NFC_ST21NFCB=m
+CONFIG_NFC_ST21NFCB_I2C=m
+CONFIG_HAVE_BPF_JIT=y
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER=y
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
+CONFIG_WANT_DEV_COREDUMP=y
+# CONFIG_ALLOW_DEV_COREDUMP is not set
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_GENERIC_CPU_DEVICES is not set
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_SPI=y
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGMAP_IRQ=y
+CONFIG_DMA_SHARED_BUFFER=y
+# CONFIG_FENCE_TRACE is not set
+
+#
+# Bus devices
+#
+CONFIG_CONNECTOR=y
+# CONFIG_PROC_EVENTS is not set
+CONFIG_MTD=m
+# CONFIG_MTD_TESTS is not set
+CONFIG_MTD_REDBOOT_PARTS=m
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+CONFIG_MTD_CMDLINE_PARTS=m
+CONFIG_MTD_AR7_PARTS=m
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_FTL=m
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_INFTL=m
+CONFIG_RFD_FTL=m
+CONFIG_SSFDC=m
+CONFIG_SM_FTL=m
+# CONFIG_MTD_OOPS is not set
+CONFIG_MTD_SWAP=m
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_GEN_PROBE=m
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_NOSWAP=y
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+CONFIG_MTD_CFI_GEOMETRY=y
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+CONFIG_MTD_MAP_BANK_WIDTH_8=y
+CONFIG_MTD_MAP_BANK_WIDTH_16=y
+CONFIG_MTD_MAP_BANK_WIDTH_32=y
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+CONFIG_MTD_CFI_I4=y
+CONFIG_MTD_CFI_I8=y
+# CONFIG_MTD_OTP is not set
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_ROM=m
+CONFIG_MTD_ABSENT=m
+
+#
+# Mapping drivers for chip access
+#
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+CONFIG_MTD_PHYSMAP=m
+# CONFIG_MTD_PHYSMAP_COMPAT is not set
+CONFIG_MTD_SBC_GXX=m
+CONFIG_MTD_AMD76XROM=m
+CONFIG_MTD_ICHXROM=m
+CONFIG_MTD_ESB2ROM=m
+CONFIG_MTD_CK804XROM=m
+CONFIG_MTD_SCB2_FLASH=m
+CONFIG_MTD_NETtel=m
+CONFIG_MTD_L440GX=m
+CONFIG_MTD_PCI=m
+CONFIG_MTD_PCMCIA=m
+# CONFIG_MTD_PCMCIA_ANONYMOUS is not set
+# CONFIG_MTD_GPIO_ADDR is not set
+CONFIG_MTD_INTEL_VR_NOR=m
+CONFIG_MTD_PLATRAM=m
+CONFIG_MTD_LATCH_ADDR=m
+
+#
+# Self-contained MTD device drivers
+#
+CONFIG_MTD_PMC551=m
+# CONFIG_MTD_PMC551_BUGFIX is not set
+# CONFIG_MTD_PMC551_DEBUG is not set
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SST25L is not set
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_PHRAM=m
+# CONFIG_MTD_MTDRAM is not set
+CONFIG_MTD_BLOCK2MTD=m
+
+#
+# Disk-On-Chip Device Drivers
+#
+CONFIG_MTD_DOCG3=m
+CONFIG_BCH_CONST_M=14
+CONFIG_BCH_CONST_T=4
+CONFIG_MTD_NAND_ECC=m
+CONFIG_MTD_NAND_ECC_SMC=y
+CONFIG_MTD_NAND=m
+CONFIG_MTD_NAND_BCH=m
+CONFIG_MTD_NAND_ECC_BCH=y
+CONFIG_MTD_SM_COMMON=m
+CONFIG_MTD_NAND_DENALI=m
+CONFIG_MTD_NAND_DENALI_PCI=m
+CONFIG_MTD_NAND_DENALI_DT=m
+CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018
+# CONFIG_MTD_NAND_GPIO is not set
+# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_RICOH=m
+CONFIG_MTD_NAND_DISKONCHIP=m
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+CONFIG_MTD_NAND_DOCG4=m
+CONFIG_MTD_NAND_CAFE=m
+CONFIG_MTD_NAND_NANDSIM=m
+CONFIG_MTD_NAND_PLATFORM=m
+CONFIG_MTD_NAND_HISI504=m
+CONFIG_MTD_ONENAND=m
+CONFIG_MTD_ONENAND_VERIFY_WRITE=y
+CONFIG_MTD_ONENAND_GENERIC=m
+CONFIG_MTD_ONENAND_OTP=y
+CONFIG_MTD_ONENAND_2X_PROGRAM=y
+
+#
+# LPDDR & LPDDR2 PCM memory drivers
+#
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_QINFO_PROBE=m
+CONFIG_MTD_SPI_NOR=m
+# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_LIMIT=20
+# CONFIG_MTD_UBI_FASTMAP is not set
+# CONFIG_MTD_UBI_GLUEBI is not set
+CONFIG_MTD_UBI_BLOCK=y
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_GSC is not set
+CONFIG_PARPORT_AX88796=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_PNP=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+
+#
+# Protocols
+#
+CONFIG_PNPACPI=y
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_NULL_BLK is not set
+CONFIG_BLK_DEV_FD=m
+CONFIG_PARIDE=m
+
+#
+# Parallel IDE high-level drivers
+#
+CONFIG_PARIDE_PD=m
+CONFIG_PARIDE_PCD=m
+CONFIG_PARIDE_PF=m
+CONFIG_PARIDE_PT=m
+CONFIG_PARIDE_PG=m
+
+#
+# Parallel IDE protocol modules
+#
+CONFIG_PARIDE_ATEN=m
+CONFIG_PARIDE_BPCK=m
+CONFIG_PARIDE_COMM=m
+CONFIG_PARIDE_DSTR=m
+CONFIG_PARIDE_FIT2=m
+CONFIG_PARIDE_FIT3=m
+CONFIG_PARIDE_EPAT=m
+CONFIG_PARIDE_EPATC8=y
+CONFIG_PARIDE_EPIA=m
+CONFIG_PARIDE_FRIQ=m
+CONFIG_PARIDE_FRPW=m
+CONFIG_PARIDE_KBIC=m
+CONFIG_PARIDE_KTTI=m
+CONFIG_PARIDE_ON20=m
+CONFIG_PARIDE_ON26=m
+CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
+CONFIG_ZRAM=m
+CONFIG_ZRAM_LZ4_COMPRESS=y
+# CONFIG_ZRAM_DEBUG is not set
+CONFIG_BLK_CPQ_CISS_DA=m
+CONFIG_CISS_SCSI_TAPE=y
+CONFIG_BLK_DEV_DAC960=m
+CONFIG_BLK_DEV_UMEM=m
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DRBD=m
+# CONFIG_DRBD_FAULT_INJECTION is not set
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_NVME=m
+CONFIG_BLK_DEV_SKD=m
+# CONFIG_BLK_DEV_OSD is not set
+CONFIG_BLK_DEV_SX8=m
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_BLK_DEV_RAM_DAX=y
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+CONFIG_CDROM_PKTCDVD_WCACHE=y
+CONFIG_ATA_OVER_ETH=m
+# CONFIG_VIRTIO_BLK is not set
+CONFIG_BLK_DEV_HD=y
+CONFIG_BLK_DEV_RBD=m
+CONFIG_BLK_DEV_RSXX=m
+
+#
+# Misc devices
+#
+CONFIG_SENSORS_LIS3LV02D=m
+# CONFIG_AD525X_DPOT is not set
+# CONFIG_DUMMY_IRQ is not set
+CONFIG_IBM_ASM=m
+CONFIG_PHANTOM=m
+CONFIG_SGI_IOC4=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
+CONFIG_ICS932S401=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_HP_ILO=m
+CONFIG_APDS9802ALS=m
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_BH1780=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_APDS990X=m
+# CONFIG_HMC6352 is not set
+# CONFIG_DS1682 is not set
+# CONFIG_TI_DAC7512 is not set
+CONFIG_VMWARE_BALLOON=m
+# CONFIG_BMP085_I2C is not set
+# CONFIG_BMP085_SPI is not set
+CONFIG_USB_SWITCH_FSA9480=m
+# CONFIG_LATTICE_ECP3_CONFIG is not set
+CONFIG_SRAM=y
+CONFIG_C2PORT=m
+CONFIG_C2PORT_DURAMAR_2150=m
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_EEPROM_93XX46=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+
+#
+# Texas Instruments shared transport line discipline
+#
+# CONFIG_TI_ST is not set
+# CONFIG_SENSORS_LIS3_I2C is not set
+
+#
+# Altera FPGA firmware download module
+#
+CONFIG_ALTERA_STAPL=m
+CONFIG_VMWARE_VMCI=m
+
+#
+# Intel MIC Bus Driver
+#
+CONFIG_INTEL_MIC_BUS=m
+
+#
+# Intel MIC Host Driver
+#
+CONFIG_INTEL_MIC_HOST=m
+
+#
+# Intel MIC Card Driver
+#
+CONFIG_INTEL_MIC_CARD=m
+CONFIG_GENWQE=m
+CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0
+CONFIG_ECHO=m
+# CONFIG_CXL_BASE is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+CONFIG_RAID_ATTRS=y
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_NETLINK=y
+# CONFIG_SCSI_MQ_DEFAULT is not set
+# CONFIG_SCSI_PROC_FS is not set
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+CONFIG_CHR_DEV_ST=y
+CONFIG_CHR_DEV_OSST=y
+CONFIG_BLK_DEV_SR=y
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=y
+CONFIG_CHR_DEV_SCH=y
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_CONSTANTS=y
+# CONFIG_SCSI_LOGGING is not set
+CONFIG_SCSI_SCAN_ASYNC=y
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=y
+CONFIG_SCSI_FC_ATTRS=y
+CONFIG_SCSI_ISCSI_ATTRS=y
+CONFIG_SCSI_SAS_ATTRS=y
+CONFIG_SCSI_SAS_LIBSAS=y
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+CONFIG_SCSI_SRP_ATTRS=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
+CONFIG_SCSI_BNX2_ISCSI=m
+# CONFIG_SCSI_BNX2X_FCOE is not set
+CONFIG_BE2ISCSI=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=5000
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=5000
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC94XX=m
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_MVSAS_TASKLET=y
+CONFIG_SCSI_MVUMI=m
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_ESAS2R=m
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_SAS=m
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+# CONFIG_SCSI_MPT2SAS_LOGGING is not set
+CONFIG_SCSI_MPT3SAS=m
+CONFIG_SCSI_MPT3SAS_MAX_SGE=128
+# CONFIG_SCSI_MPT3SAS_LOGGING is not set
+CONFIG_SCSI_UFSHCD=m
+CONFIG_SCSI_UFSHCD_PCI=m
+CONFIG_SCSI_UFSHCD_PLATFORM=m
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_BUSLOGIC=m
+CONFIG_SCSI_FLASHPOINT=y
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_EATA=m
+CONFIG_SCSI_EATA_TAGGED_QUEUE=y
+CONFIG_SCSI_EATA_LINKED_COMMANDS=y
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_ISCI=m
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+CONFIG_SCSI_IZIP_EPP16=y
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_IPR=m
+CONFIG_SCSI_IPR_TRACE=y
+CONFIG_SCSI_IPR_DUMP=y
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLA_FC=m
+# CONFIG_TCM_QLA2XXX is not set
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_WD719X=m
+# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_VIRTIO=m
+CONFIG_SCSI_CHELSIO_FCOE=m
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_SCSI_DH=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=1
+# CONFIG_SCSI_OSD_DEBUG is not set
+CONFIG_ATA=y
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA_ACPI=y
+CONFIG_SATA_ZPODD=y
+CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+# CONFIG_SATA_INIC162X is not set
+CONFIG_SATA_ACARD_AHCI=m
+CONFIG_SATA_SIL24=m
+CONFIG_ATA_SFF=y
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+# CONFIG_SATA_SX4 is not set
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
+CONFIG_ATA_PIIX=m
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+
+#
+# PATA SFF controllers with BMDMA
+#
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_HPT3X2N=m
+CONFIG_PATA_HPT3X3=m
+CONFIG_PATA_HPT3X3_DMA=y
+# CONFIG_PATA_IT8213 is not set
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OLDPIIX=m
+# CONFIG_PATA_OPTIDMA is not set
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_RADISYS=m
+CONFIG_PATA_RDC=m
+CONFIG_PATA_SCH=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_SIS=m
+# CONFIG_PATA_TOSHIBA is not set
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+
+#
+# PIO-only SFF controllers
+#
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PLATFORM=m
+CONFIG_PATA_RZ1000=m
+
+#
+# Generic fallback / legacy drivers
+#
+CONFIG_PATA_ACPI=m
+CONFIG_ATA_GENERIC=m
+# CONFIG_PATA_LEGACY is not set
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=y
+CONFIG_MD_AUTODETECT=y
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+CONFIG_MD_MULTIPATH=m
+# CONFIG_MD_FAULTY is not set
+CONFIG_BCACHE=m
+# CONFIG_BCACHE_DEBUG is not set
+# CONFIG_BCACHE_CLOSURES_DEBUG is not set
+CONFIG_BLK_DEV_DM_BUILTIN=y
+CONFIG_BLK_DEV_DM=y
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
+CONFIG_DM_BIO_PRISON=m
+CONFIG_DM_PERSISTENT_DATA=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+# CONFIG_DM_CACHE is not set
+# CONFIG_DM_ERA is not set
+CONFIG_DM_MIRROR=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_RAID=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_DELAY=m
+CONFIG_DM_UEVENT=y
+CONFIG_DM_FLAKEY=m
+CONFIG_DM_VERITY=m
+# CONFIG_DM_SWITCH is not set
+CONFIG_TARGET_CORE=m
+CONFIG_TCM_IBLOCK=m
+CONFIG_TCM_FILEIO=m
+CONFIG_TCM_PSCSI=m
+CONFIG_TCM_USER=m
+CONFIG_LOOPBACK_TARGET=m
+CONFIG_TCM_FC=m
+CONFIG_ISCSI_TARGET=m
+# CONFIG_SBP_TARGET is not set
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_CTL=m
+# CONFIG_FUSION_LAN is not set
+# CONFIG_FUSION_LOGGING is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_NET=m
+# CONFIG_FIREWIRE_NOSY is not set
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MAC_EMUMOUSEBTN=m
+CONFIG_NETDEVICES=y
+CONFIG_MII=m
+CONFIG_NET_CORE=y
+CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_EQUALIZER=m
+CONFIG_NET_FC=y
+CONFIG_IFB=m
+CONFIG_NET_TEAM=m
+CONFIG_NET_TEAM_MODE_BROADCAST=m
+CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
+CONFIG_NET_TEAM_MODE_RANDOM=m
+CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
+CONFIG_NET_TEAM_MODE_LOADBALANCE=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_IPVLAN=m
+CONFIG_VXLAN=m
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+CONFIG_NET_POLL_CONTROLLER=y
+# CONFIG_NTB_NETDEV is not set
+CONFIG_RIONET=m
+CONFIG_RIONET_TX_SIZE=128
+CONFIG_RIONET_RX_SIZE=128
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_VIRTIO_NET=m
+CONFIG_NLMON=m
+CONFIG_SUNGEM_PHY=m
+CONFIG_ARCNET=m
+CONFIG_ARCNET_1201=m
+CONFIG_ARCNET_1051=m
+CONFIG_ARCNET_RAW=m
+CONFIG_ARCNET_CAP=m
+CONFIG_ARCNET_COM90xx=m
+CONFIG_ARCNET_COM90xxIO=m
+CONFIG_ARCNET_RIM_I=m
+CONFIG_ARCNET_COM20020=m
+CONFIG_ARCNET_COM20020_PCI=m
+CONFIG_ARCNET_COM20020_CS=m
+CONFIG_ATM_DRIVERS=y
+CONFIG_ATM_DUMMY=m
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+CONFIG_ATM_ENI_TUNE_BURST=y
+# CONFIG_ATM_ENI_BURST_TX_16W is not set
+CONFIG_ATM_ENI_BURST_TX_8W=y
+CONFIG_ATM_ENI_BURST_TX_4W=y
+CONFIG_ATM_ENI_BURST_TX_2W=y
+# CONFIG_ATM_ENI_BURST_RX_16W is not set
+# CONFIG_ATM_ENI_BURST_RX_8W is not set
+CONFIG_ATM_ENI_BURST_RX_4W=y
+CONFIG_ATM_ENI_BURST_RX_2W=y
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+CONFIG_ATM_NICSTAR_USE_IDT77105=y
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+CONFIG_ATM_FORE200E_USE_TASKLET=y
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+CONFIG_ATM_HE_USE_SUNI=y
+CONFIG_ATM_SOLOS=m
+
+#
+# CAIF transport drivers
+#
+CONFIG_CAIF_TTY=m
+CONFIG_CAIF_SPI_SLAVE=m
+CONFIG_CAIF_SPI_SYNC=y
+CONFIG_CAIF_HSI=m
+# CONFIG_CAIF_VIRTIO is not set
+# CONFIG_VHOST_NET is not set
+# CONFIG_VHOST_SCSI is not set
+CONFIG_VHOST_RING=m
+
+#
+# Distributed Switch Architecture drivers
+#
+CONFIG_NET_DSA_MV88E6XXX=m
+CONFIG_NET_DSA_MV88E6060=m
+CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y
+CONFIG_NET_DSA_MV88E6131=m
+CONFIG_NET_DSA_MV88E6123_61_65=m
+CONFIG_NET_DSA_MV88E6171=m
+CONFIG_NET_DSA_MV88E6352=m
+CONFIG_NET_DSA_BCM_SF2=m
+CONFIG_ETHERNET=y
+CONFIG_MDIO=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NET_VENDOR_AGERE=y
+CONFIG_ET131X=m
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_ALTERA_TSE=m
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_AMD8111_ETH=m
+CONFIG_PCNET32=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_AMD_XGBE=m
+CONFIG_AMD_XGBE_DCB=y
+CONFIG_NET_XGENE=m
+CONFIG_NET_VENDOR_ARC=y
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_ATL2=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_ALX=m
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_BCMGENET=m
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_TIGON3=m
+CONFIG_BNX2X=m
+CONFIG_BNX2X_SRIOV=y
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_BNA=m
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4_DCB=y
+CONFIG_CHELSIO_T4VF=m
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_ENIC=m
+CONFIG_CX_ECAT=m
+CONFIG_DNET=m
+CONFIG_NET_VENDOR_DEC=y
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_DE2104X_DSL=0
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_NAPI is not set
+CONFIG_DE4X5=m
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_ULI526X=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_DL2K=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_BE2NET=m
+CONFIG_BE2NET_VXLAN=y
+CONFIG_NET_VENDOR_EXAR=y
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_NET_VENDOR_FUJITSU=y
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_NET_VENDOR_HP=y
+CONFIG_HP100=m
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_E100=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IGB=m
+CONFIG_IGB_HWMON=y
+CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_VXLAN=y
+CONFIG_IXGBE_HWMON=y
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBE_DCB=y
+CONFIG_IXGBEVF=m
+CONFIG_I40E=m
+CONFIG_I40E_VXLAN=y
+CONFIG_I40E_DCB=y
+CONFIG_I40E_FCOE=y
+CONFIG_I40EVF=m
+CONFIG_FM10K=m
+CONFIG_FM10K_VXLAN=y
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_IP1000=m
+CONFIG_JME=m
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_MVMDIO=m
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKGE_GENESIS=y
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+CONFIG_NET_VENDOR_MELLANOX=y
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_EN_DCB=y
+CONFIG_MLX4_EN_VXLAN=y
+CONFIG_MLX4_CORE=m
+# CONFIG_MLX4_DEBUG is not set
+CONFIG_MLX5_CORE=m
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_KS8842=m
+# CONFIG_KS8851 is not set
+CONFIG_KS8851_MLL=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_NET_VENDOR_MICROCHIP=y
+# CONFIG_ENC28J60 is not set
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_FEALNX=m
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NATSEMI=m
+CONFIG_NS83820=m
+CONFIG_NET_VENDOR_8390=y
+CONFIG_PCMCIA_AXNET=m
+CONFIG_NE2K_PCI=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_FORCEDETH=m
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_ETHOC=m
+CONFIG_NET_PACKET_ENGINE=y
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_QLA3XXX=m
+CONFIG_QLCNIC=m
+CONFIG_QLCNIC_SRIOV=y
+CONFIG_QLCNIC_DCB=y
+CONFIG_QLCNIC_VXLAN=y
+CONFIG_QLCNIC_HWMON=y
+CONFIG_QLGE=m
+CONFIG_NETXEN_NIC=m
+CONFIG_NET_VENDOR_QUALCOMM=y
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_ATP=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+CONFIG_8139TOO_PIO=y
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R8169=m
+CONFIG_NET_VENDOR_RDC=y
+CONFIG_R6040=m
+CONFIG_NET_VENDOR_ROCKER=y
+CONFIG_NET_VENDOR_SAMSUNG=y
+CONFIG_SXGBE_ETH=m
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_SC92031=m
+CONFIG_NET_VENDOR_SIS=y
+CONFIG_SIS900=m
+CONFIG_SIS190=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_SFC_MCDI_MON=y
+CONFIG_SFC_SRIOV=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_EPIC100=m
+CONFIG_SMSC911X=m
+# CONFIG_SMSC911X_ARCH_HOOKS is not set
+CONFIG_SMSC9420=m
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_ETH=m
+CONFIG_STMMAC_PLATFORM=m
+CONFIG_STMMAC_PCI=m
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NIU=m
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_TEHUTI=m
+CONFIG_NET_VENDOR_TI=y
+CONFIG_TI_CPSW_ALE=m
+CONFIG_TLAN=m
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_VIA_RHINE=m
+CONFIG_VIA_RHINE_MMIO=y
+CONFIG_VIA_VELOCITY=m
+CONFIG_NET_VENDOR_WIZNET=y
+CONFIG_WIZNET_W5100=m
+CONFIG_WIZNET_W5300=m
+# CONFIG_WIZNET_BUS_DIRECT is not set
+# CONFIG_WIZNET_BUS_INDIRECT is not set
+CONFIG_WIZNET_BUS_ANY=y
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_FDDI=m
+CONFIG_DEFXX=m
+# CONFIG_DEFXX_MMIO is not set
+CONFIG_SKFP=m
+CONFIG_HIPPI=y
+CONFIG_ROADRUNNER=m
+# CONFIG_ROADRUNNER_LARGE_RINGS is not set
+CONFIG_NET_SB1000=m
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+CONFIG_AT803X_PHY=m
+CONFIG_AMD_PHY=m
+CONFIG_AMD_XGBE_PHY=m
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_BCM7XXX_PHY=m
+CONFIG_BCM87XX_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+CONFIG_FIXED_PHY=m
+CONFIG_MDIO_BITBANG=m
+# CONFIG_MDIO_GPIO is not set
+CONFIG_MDIO_BCM_UNIMAC=m
+# CONFIG_MICREL_KS8995MA is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+CONFIG_USB_NET_DRIVERS=y
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_AX88179_178A=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_HUAWEI_CDC_NCM=m
+CONFIG_USB_NET_CDC_MBIM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SR9700=m
+CONFIG_USB_NET_SR9800=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_NET_QMI_WWAN=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_WLAN=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_AIRO=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+CONFIG_PRISM54=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_ADM8211=m
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_MWL8K=m
+CONFIG_ATH_COMMON=m
+CONFIG_ATH_CARDS=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+CONFIG_ATH5K_PCI=y
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K_BTCOEX_SUPPORT=y
+CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI=y
+CONFIG_ATH9K_AHB=y
+# CONFIG_ATH9K_DEBUGFS is not set
+# CONFIG_ATH9K_DYNACK is not set
+# CONFIG_ATH9K_WOW is not set
+CONFIG_ATH9K_RFKILL=y
+CONFIG_ATH9K_CHANNEL_CONTEXT=y
+CONFIG_ATH9K_PCOEM=y
+CONFIG_ATH9K_HTC=m
+# CONFIG_ATH9K_HTC_DEBUGFS is not set
+CONFIG_CARL9170=m
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170_WPC=y
+# CONFIG_CARL9170_HWRNG is not set
+CONFIG_ATH6KL=m
+# CONFIG_ATH6KL_SDIO is not set
+CONFIG_ATH6KL_USB=m
+# CONFIG_ATH6KL_DEBUG is not set
+CONFIG_AR5523=m
+CONFIG_WIL6210=m
+CONFIG_WIL6210_ISR_COR=y
+CONFIG_ATH10K=m
+CONFIG_ATH10K_PCI=m
+# CONFIG_ATH10K_DEBUG is not set
+# CONFIG_ATH10K_DEBUGFS is not set
+CONFIG_WCN36XX=m
+# CONFIG_WCN36XX_DEBUGFS is not set
+CONFIG_B43=m
+CONFIG_B43_BCMA=y
+CONFIG_B43_SSB=y
+CONFIG_B43_BUSES_BCMA_AND_SSB=y
+# CONFIG_B43_BUSES_BCMA is not set
+# CONFIG_B43_BUSES_SSB is not set
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCMCIA=y
+# CONFIG_B43_SDIO is not set
+CONFIG_B43_BCMA_PIO=y
+CONFIG_B43_PIO=y
+CONFIG_B43_PHY_G=y
+CONFIG_B43_PHY_N=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_PHY_HT=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_HWRNG=y
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_HWRNG=y
+# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_PIO=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_BRCMUTIL=m
+CONFIG_BRCMSMAC=m
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_PROTO_BCDC=y
+CONFIG_BRCMFMAC_PROTO_MSGBUF=y
+CONFIG_BRCMFMAC_SDIO=y
+CONFIG_BRCMFMAC_USB=y
+CONFIG_BRCMFMAC_PCIE=y
+# CONFIG_BRCM_TRACING is not set
+# CONFIG_BRCMDBG is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+CONFIG_HOSTAP_FIRMWARE_NVRAM=y
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_IWLWIFI=m
+CONFIG_IWLWIFI_LEDS=y
+CONFIG_IWLDVM=m
+CONFIG_IWLMVM=m
+CONFIG_IWLWIFI_OPMODE_MODULAR=y
+# CONFIG_IWLWIFI_BCAST_FILTERING is not set
+# CONFIG_IWLWIFI_UAPSD is not set
+
+#
+# Debugging Options
+#
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLEGACY=m
+CONFIG_IWL4965=m
+CONFIG_IWL3945=m
+
+#
+# iwl3945 / iwl4965 Debugging Options
+#
+# CONFIG_IWLEGACY_DEBUG is not set
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+# CONFIG_LIBERTAS_SDIO is not set
+# CONFIG_LIBERTAS_SPI is not set
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_HERMES=m
+# CONFIG_HERMES_PRISM is not set
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_ORINOCO_USB=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_P54_PCI=m
+# CONFIG_P54_SPI is not set
+CONFIG_P54_LEDS=y
+CONFIG_RT2X00=m
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT61PCI=m
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT33XX=y
+CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2800PCI_RT53XX=y
+CONFIG_RT2800PCI_RT3290=y
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_RT3573=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2800_LIB_MMIO=m
+CONFIG_RT2X00_LIB_MMIO=m
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_RTL_CARDS=m
+CONFIG_RTL8192CE=m
+CONFIG_RTL8192SE=m
+CONFIG_RTL8192DE=m
+CONFIG_RTL8723AE=m
+CONFIG_RTL8723BE=m
+CONFIG_RTL8188EE=m
+CONFIG_RTL8192EE=m
+CONFIG_RTL8821AE=m
+CONFIG_RTL8192CU=m
+CONFIG_RTLWIFI=m
+CONFIG_RTLWIFI_PCI=m
+CONFIG_RTLWIFI_USB=m
+# CONFIG_RTLWIFI_DEBUG is not set
+CONFIG_RTL8192C_COMMON=m
+CONFIG_RTL8723_COMMON=m
+CONFIG_RTLBTCOEXIST=m
+CONFIG_WL_TI=y
+CONFIG_WL1251=m
+# CONFIG_WL1251_SPI is not set
+# CONFIG_WL1251_SDIO is not set
+CONFIG_WL12XX=m
+CONFIG_WL18XX=m
+CONFIG_WLCORE=m
+# CONFIG_WLCORE_SPI is not set
+# CONFIG_WLCORE_SDIO is not set
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_MWIFIEX=m
+# CONFIG_MWIFIEX_SDIO is not set
+CONFIG_MWIFIEX_PCIE=m
+CONFIG_MWIFIEX_USB=m
+CONFIG_CW1200=m
+# CONFIG_CW1200_WLAN_SDIO is not set
+# CONFIG_CW1200_WLAN_SPI is not set
+CONFIG_RSI_91X=m
+# CONFIG_RSI_DEBUGFS is not set
+CONFIG_RSI_SDIO=m
+CONFIG_RSI_USB=m
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+CONFIG_WAN=y
+CONFIG_LANMEDIA=m
+CONFIG_HDLC=m
+CONFIG_HDLC_RAW=m
+CONFIG_HDLC_RAW_ETH=m
+CONFIG_HDLC_CISCO=m
+CONFIG_HDLC_FR=m
+CONFIG_HDLC_PPP=m
+CONFIG_HDLC_X25=m
+CONFIG_PCI200SYN=m
+CONFIG_WANXL=m
+CONFIG_PC300TOO=m
+CONFIG_FARSYNC=m
+CONFIG_DSCC4=m
+CONFIG_DSCC4_PCISYNC=y
+CONFIG_DSCC4_PCI_RST=y
+CONFIG_DLCI=m
+CONFIG_DLCI_MAX=8
+CONFIG_LAPBETHER=m
+CONFIG_X25_ASY=m
+CONFIG_SBNI=m
+CONFIG_SBNI_MULTILINE=y
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_VMXNET3=m
+# CONFIG_HYPERV_NET is not set
+CONFIG_ISDN=y
+CONFIG_ISDN_I4L=m
+# CONFIG_ISDN_PPP is not set
+# CONFIG_ISDN_AUDIO is not set
+# CONFIG_ISDN_X25 is not set
+
+#
+# ISDN feature submodules
+#
+# CONFIG_ISDN_DIVERSION is not set
+
+#
+# ISDN4Linux hardware drivers
+#
+
+#
+# Passive cards
+#
+# CONFIG_ISDN_DRV_HISAX is not set
+
+#
+# Active cards
+#
+CONFIG_ISDN_CAPI=m
+# CONFIG_CAPI_TRACE is not set
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+# CONFIG_ISDN_CAPI_CAPIDRV is not set
+
+#
+# CAPI hardware drivers
+#
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=y
+CONFIG_INPUT_POLLDEV=y
+CONFIG_INPUT_SPARSEKMAP=y
+CONFIG_INPUT_MATRIXKMAP=m
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5520 is not set
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_QT1070=m
+CONFIG_KEYBOARD_QT2160=m
+CONFIG_KEYBOARD_LKKBD=m
+# CONFIG_KEYBOARD_GPIO is not set
+# CONFIG_KEYBOARD_GPIO_POLLED is not set
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_TCA8418=m
+# CONFIG_KEYBOARD_MATRIX is not set
+CONFIG_KEYBOARD_LM8323=m
+CONFIG_KEYBOARD_LM8333=m
+CONFIG_KEYBOARD_MAX7359=m
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
+CONFIG_KEYBOARD_NEWTON=m
+CONFIG_KEYBOARD_OPENCORES=m
+CONFIG_KEYBOARD_SAMSUNG=m
+CONFIG_KEYBOARD_STOWAWAY=m
+CONFIG_KEYBOARD_SUNKBD=m
+# CONFIG_KEYBOARD_TC3589X is not set
+CONFIG_KEYBOARD_XTKBD=m
+# CONFIG_KEYBOARD_CROS_EC is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=y
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_CYPRESS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+CONFIG_MOUSE_PS2_TOUCHKIT=y
+CONFIG_MOUSE_PS2_FOCALTECH=y
+CONFIG_MOUSE_SERIAL=m
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_CYAPA=m
+CONFIG_MOUSE_ELAN_I2C=m
+CONFIG_MOUSE_ELAN_I2C_I2C=y
+CONFIG_MOUSE_ELAN_I2C_SMBUS=y
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MOUSE_GPIO=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_MOUSE_SYNAPTICS_USB=m
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+# CONFIG_TOUCHSCREEN_AD7877 is not set
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
+CONFIG_TOUCHSCREEN_BU21013=m
+# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
+CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
+CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
+# CONFIG_TOUCHSCREEN_CYTTSP_SPI is not set
+CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
+CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
+# CONFIG_TOUCHSCREEN_CYTTSP4_SPI is not set
+CONFIG_TOUCHSCREEN_DA9034=y
+# CONFIG_TOUCHSCREEN_DA9052 is not set
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_HAMPSHIRE=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GOODIX=m
+CONFIG_TOUCHSCREEN_ILI210X=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_ELAN=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_WACOM_I2C=m
+CONFIG_TOUCHSCREEN_MAX11801=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MMS114=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_EDT_FT5X06=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_PIXCIR=m
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+CONFIG_TOUCHSCREEN_USB_ELO=y
+CONFIG_TOUCHSCREEN_USB_E2I=y
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC_SERIO=m
+# CONFIG_TOUCHSCREEN_TSC2005 is not set
+CONFIG_TOUCHSCREEN_TSC2007=m
+CONFIG_TOUCHSCREEN_ST1232=m
+CONFIG_TOUCHSCREEN_SUR40=m
+CONFIG_TOUCHSCREEN_TPS6507X=m
+# CONFIG_TOUCHSCREEN_ZFORCE is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=y
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_PS2MULT=m
+CONFIG_SERIO_ARC_PS2=m
+CONFIG_HYPERV_KEYBOARD=m
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_TTY=y
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+CONFIG_MOXA_INTELLIO=m
+CONFIG_MOXA_SMARTIO=m
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+CONFIG_SYNCLINK_GT=m
+CONFIG_NOZOMI=m
+CONFIG_ISI=m
+CONFIG_N_HDLC=m
+# CONFIG_N_GSM is not set
+CONFIG_TRACE_ROUTER=m
+CONFIG_TRACE_SINK=m
+CONFIG_DEVMEM=y
+CONFIG_DEVKMEM=y
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=m
+CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_DMA=y
+CONFIG_SERIAL_8250_PCI=m
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_DETECT_IRQ=y
+CONFIG_SERIAL_8250_RSA=y
+CONFIG_SERIAL_8250_DW=m
+CONFIG_SERIAL_8250_FINTEK=m
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_MAX3100 is not set
+# CONFIG_SERIAL_MAX310X is not set
+CONFIG_SERIAL_MFD_HSU=m
+CONFIG_SERIAL_CORE=m
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_SCCNXP=m
+CONFIG_SERIAL_SC16IS7XX=m
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+# CONFIG_SERIAL_IFX6X60 is not set
+CONFIG_SERIAL_ARC=m
+CONFIG_SERIAL_ARC_NR_PORTS=1
+CONFIG_SERIAL_RP2=m
+CONFIG_SERIAL_RP2_NR_UARTS=32
+CONFIG_SERIAL_FSL_LPUART=m
+# CONFIG_TTY_PRINTK is not set
+CONFIG_PRINTER=m
+CONFIG_LP_CONSOLE=y
+CONFIG_PPDEV=m
+# CONFIG_VIRTIO_CONSOLE is not set
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+# CONFIG_IPMI_SI_PROBE_DEFAULTS is not set
+CONFIG_IPMI_SSIF=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+CONFIG_HW_RANDOM=m
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_VIA=m
+# CONFIG_HW_RANDOM_VIRTIO is not set
+CONFIG_HW_RANDOM_TPM=m
+CONFIG_NVRAM=y
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+CONFIG_IPWIRELESS=m
+CONFIG_MWAVE=m
+CONFIG_RAW_DRIVER=m
+CONFIG_MAX_RAW_DEVS=256
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
+CONFIG_HPET_MMAP_DEFAULT=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_TCG_TPM=y
+CONFIG_TCG_TIS=y
+CONFIG_TCG_TIS_I2C_ATMEL=m
+CONFIG_TCG_TIS_I2C_INFINEON=m
+CONFIG_TCG_TIS_I2C_NUVOTON=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_INFINEON=m
+# CONFIG_TCG_TIS_I2C_ST33 is not set
+CONFIG_TCG_CRB=m
+CONFIG_TELCLOCK=m
+CONFIG_DEVPORT=y
+CONFIG_XILLYBUS=m
+CONFIG_XILLYBUS_PCIE=m
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_ACPI_I2C_OPREGION=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=m
+
+#
+# Multiplexer I2C Chip support
+#
+# CONFIG_I2C_MUX_GPIO is not set
+CONFIG_I2C_MUX_PCA9541=m
+# CONFIG_I2C_MUX_PCA954x is not set
+CONFIG_I2C_MUX_PINCTRL=m
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_ISMT=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+
+#
+# ACPI drivers
+#
+CONFIG_I2C_SCMI=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_CBUS_GPIO is not set
+CONFIG_I2C_DESIGNWARE_CORE=m
+CONFIG_I2C_DESIGNWARE_PLATFORM=m
+CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
+# CONFIG_I2C_GPIO is not set
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_PXA_PCI is not set
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_DIOLAN_U2C=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_ROBOTFUZZ_OSIF=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_CROS_EC_TUNNEL is not set
+# CONFIG_I2C_STUB is not set
+CONFIG_I2C_SLAVE=y
+CONFIG_I2C_SLAVE_EEPROM=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_ALTERA is not set
+# CONFIG_SPI_BITBANG is not set
+# CONFIG_SPI_BUTTERFLY is not set
+# CONFIG_SPI_GPIO is not set
+# CONFIG_SPI_LM70_LLP is not set
+# CONFIG_SPI_OC_TINY is not set
+# CONFIG_SPI_PXA2XX is not set
+# CONFIG_SPI_PXA2XX_PCI is not set
+# CONFIG_SPI_SC18IS602 is not set
+# CONFIG_SPI_XCOMM is not set
+# CONFIG_SPI_XILINX is not set
+# CONFIG_SPI_DESIGNWARE is not set
+
+#
+# SPI Protocol Masters
+#
+# CONFIG_SPI_SPIDEV is not set
+# CONFIG_SPI_TLE62X0 is not set
+CONFIG_SPMI=m
+CONFIG_HSI=m
+CONFIG_HSI_BOARDINFO=y
+
+#
+# HSI controllers
+#
+
+#
+# HSI clients
+#
+CONFIG_HSI_CHAR=m
+
+#
+# PPS support
+#
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+# CONFIG_NTP_PPS is not set
+
+#
+# PPS clients support
+#
+# CONFIG_PPS_CLIENT_KTIMER is not set
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_PARPORT=m
+CONFIG_PPS_CLIENT_GPIO=m
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=m
+
+#
+# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
+#
+CONFIG_PINCTRL=y
+
+#
+# Pin controllers
+#
+# CONFIG_DEBUG_PINCTRL is not set
+# CONFIG_PINCTRL_BAYTRAIL is not set
+# CONFIG_PINCTRL_CHERRYVIEW is not set
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_DEVRES=y
+CONFIG_GPIO_ACPI=y
+# CONFIG_DEBUG_GPIO is not set
+# CONFIG_GPIO_SYSFS is not set
+# CONFIG_GPIO_DA9052 is not set
+# CONFIG_GPIO_DA9055 is not set
+
+#
+# Memory mapped GPIO drivers:
+#
+# CONFIG_GPIO_GENERIC_PLATFORM is not set
+# CONFIG_GPIO_IT8761E is not set
+# CONFIG_GPIO_F7188X is not set
+# CONFIG_GPIO_SCH311X is not set
+# CONFIG_GPIO_SCH is not set
+# CONFIG_GPIO_ICH is not set
+# CONFIG_GPIO_VX855 is not set
+# CONFIG_GPIO_LYNXPOINT is not set
+
+#
+# I2C GPIO expanders:
+#
+# CONFIG_GPIO_CRYSTAL_COVE is not set
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_SX150X is not set
+# CONFIG_GPIO_TC3589X is not set
+# CONFIG_GPIO_ADP5520 is not set
+# CONFIG_GPIO_ADP5588 is not set
+
+#
+# PCI GPIO expanders:
+#
+# CONFIG_GPIO_BT8XX is not set
+# CONFIG_GPIO_AMD8111 is not set
+# CONFIG_GPIO_INTEL_MID is not set
+# CONFIG_GPIO_ML_IOH is not set
+# CONFIG_GPIO_RDC321X is not set
+
+#
+# SPI GPIO expanders:
+#
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
+
+#
+# AC97 GPIO expanders:
+#
+
+#
+# LPC GPIO expanders:
+#
+
+#
+# MODULbus GPIO expanders:
+#
+
+#
+# USB GPIO expanders:
+#
+CONFIG_W1=m
+CONFIG_W1_CON=y
+
+#
+# 1-wire Bus Masters
+#
+CONFIG_W1_MASTER_MATROX=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_GPIO=m
+
+#
+# 1-wire Slaves
+#
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2408_READBACK=y
+CONFIG_W1_SLAVE_DS2413=m
+CONFIG_W1_SLAVE_DS2406=m
+CONFIG_W1_SLAVE_DS2423=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2433_CRC=y
+CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_DS2780=m
+CONFIG_W1_SLAVE_DS2781=m
+CONFIG_W1_SLAVE_DS28E04=m
+CONFIG_W1_SLAVE_BQ27000=m
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_GENERIC_ADC_BATTERY is not set
+# CONFIG_TEST_POWER is not set
+# CONFIG_BATTERY_DS2760 is not set
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2781 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_SBS is not set
+# CONFIG_BATTERY_BQ27x00 is not set
+# CONFIG_BATTERY_DA9030 is not set
+# CONFIG_BATTERY_DA9052 is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_LP8727 is not set
+# CONFIG_CHARGER_GPIO is not set
+# CONFIG_CHARGER_BQ2415X is not set
+# CONFIG_CHARGER_BQ24190 is not set
+# CONFIG_CHARGER_BQ24735 is not set
+# CONFIG_CHARGER_SMB347 is not set
+# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_POWER_RESET is not set
+# CONFIG_POWER_AVS is not set
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+# CONFIG_SENSORS_AD7314 is not set
+# CONFIG_SENSORS_AD7414 is not set
+# CONFIG_SENSORS_AD7418 is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1029 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ADM9240 is not set
+# CONFIG_SENSORS_ADT7310 is not set
+# CONFIG_SENSORS_ADT7410 is not set
+# CONFIG_SENSORS_ADT7411 is not set
+# CONFIG_SENSORS_ADT7462 is not set
+# CONFIG_SENSORS_ADT7470 is not set
+# CONFIG_SENSORS_ADT7475 is not set
+# CONFIG_SENSORS_ASC7621 is not set
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_FAM15H_POWER=m
+CONFIG_SENSORS_APPLESMC=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ATXP1=m
+# CONFIG_SENSORS_DS620 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_DA9052_ADC is not set
+# CONFIG_SENSORS_DA9055 is not set
+CONFIG_SENSORS_I5K_AMB=m
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_F75375S is not set
+# CONFIG_SENSORS_FSCHMD is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_G760A is not set
+# CONFIG_SENSORS_G762 is not set
+# CONFIG_SENSORS_GPIO_FAN is not set
+# CONFIG_SENSORS_HIH6130 is not set
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+# CONFIG_SENSORS_IIO_HWMON is not set
+CONFIG_SENSORS_I5500=m
+CONFIG_SENSORS_CORETEMP=m
+# CONFIG_SENSORS_IT87 is not set
+CONFIG_SENSORS_JC42=m
+# CONFIG_SENSORS_POWR1220 is not set
+# CONFIG_SENSORS_LINEAGE is not set
+# CONFIG_SENSORS_LTC2945 is not set
+# CONFIG_SENSORS_LTC4151 is not set
+# CONFIG_SENSORS_LTC4215 is not set
+# CONFIG_SENSORS_LTC4222 is not set
+# CONFIG_SENSORS_LTC4245 is not set
+# CONFIG_SENSORS_LTC4260 is not set
+# CONFIG_SENSORS_LTC4261 is not set
+# CONFIG_SENSORS_MAX1111 is not set
+# CONFIG_SENSORS_MAX16065 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_MAX1668 is not set
+# CONFIG_SENSORS_MAX197 is not set
+# CONFIG_SENSORS_MAX6639 is not set
+# CONFIG_SENSORS_MAX6642 is not set
+# CONFIG_SENSORS_MAX6650 is not set
+# CONFIG_SENSORS_MAX6697 is not set
+# CONFIG_SENSORS_HTU21 is not set
+# CONFIG_SENSORS_MCP3021 is not set
+# CONFIG_SENSORS_ADCXX is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM70 is not set
+# CONFIG_SENSORS_LM73 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_LM93 is not set
+# CONFIG_SENSORS_LM95234 is not set
+# CONFIG_SENSORS_LM95241 is not set
+# CONFIG_SENSORS_LM95245 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_NTC_THERMISTOR is not set
+# CONFIG_SENSORS_NCT6683 is not set
+# CONFIG_SENSORS_NCT6775 is not set
+# CONFIG_SENSORS_NCT7802 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+# CONFIG_SENSORS_ADM1275 is not set
+# CONFIG_SENSORS_LM25066 is not set
+# CONFIG_SENSORS_LTC2978 is not set
+# CONFIG_SENSORS_MAX16064 is not set
+# CONFIG_SENSORS_MAX34440 is not set
+# CONFIG_SENSORS_MAX8688 is not set
+# CONFIG_SENSORS_TPS40422 is not set
+# CONFIG_SENSORS_UCD9000 is not set
+# CONFIG_SENSORS_UCD9200 is not set
+# CONFIG_SENSORS_ZL6100 is not set
+# CONFIG_SENSORS_SHT15 is not set
+# CONFIG_SENSORS_SHT21 is not set
+# CONFIG_SENSORS_SHTC1 is not set
+CONFIG_SENSORS_SIS5595=m
+# CONFIG_SENSORS_DME1737 is not set
+# CONFIG_SENSORS_EMC1403 is not set
+# CONFIG_SENSORS_EMC2103 is not set
+# CONFIG_SENSORS_EMC6W201 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47M192 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_SCH56XX_COMMON is not set
+# CONFIG_SENSORS_SMM665 is not set
+# CONFIG_SENSORS_ADC128D818 is not set
+# CONFIG_SENSORS_ADS1015 is not set
+# CONFIG_SENSORS_ADS7828 is not set
+# CONFIG_SENSORS_ADS7871 is not set
+# CONFIG_SENSORS_AMC6821 is not set
+# CONFIG_SENSORS_INA209 is not set
+# CONFIG_SENSORS_INA2XX is not set
+# CONFIG_SENSORS_THMC50 is not set
+# CONFIG_SENSORS_TMP102 is not set
+# CONFIG_SENSORS_TMP103 is not set
+# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
+CONFIG_SENSORS_VIA_CPUTEMP=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83791D is not set
+# CONFIG_SENSORS_W83792D is not set
+# CONFIG_SENSORS_W83793 is not set
+# CONFIG_SENSORS_W83795 is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83L786NG is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+
+#
+# ACPI drivers
+#
+CONFIG_SENSORS_ACPI_POWER=m
+CONFIG_SENSORS_ATK0110=m
+CONFIG_THERMAL=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
+# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+# CONFIG_THERMAL_GOV_FAIR_SHARE is not set
+CONFIG_THERMAL_GOV_STEP_WISE=y
+CONFIG_THERMAL_GOV_BANG_BANG=y
+CONFIG_THERMAL_GOV_USER_SPACE=y
+# CONFIG_THERMAL_EMULATION is not set
+# CONFIG_INTEL_POWERCLAMP is not set
+CONFIG_X86_PKG_TEMP_THERMAL=m
+# CONFIG_INTEL_SOC_DTS_THERMAL is not set
+# CONFIG_INT340X_THERMAL is not set
+
+#
+# Texas Instruments thermal drivers
+#
+# CONFIG_WATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB=m
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_PCMCIAHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+# CONFIG_SSB_SDIOHOST is not set
+# CONFIG_SSB_SILENT is not set
+# CONFIG_SSB_DEBUG is not set
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+# CONFIG_SSB_DRIVER_GPIO is not set
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+CONFIG_BCMA=m
+CONFIG_BCMA_BLOCKIO=y
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+CONFIG_BCMA_HOST_PCI=y
+CONFIG_BCMA_HOST_SOC=y
+CONFIG_BCMA_DRIVER_GMAC_CMN=y
+CONFIG_BCMA_DRIVER_GPIO=y
+# CONFIG_BCMA_DEBUG is not set
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_CORE=y
+CONFIG_MFD_AS3711=y
+CONFIG_PMIC_ADP5520=y
+CONFIG_MFD_AAT2870_CORE=y
+CONFIG_MFD_BCM590XX=m
+CONFIG_MFD_AXP20X=y
+CONFIG_MFD_CROS_EC=m
+CONFIG_MFD_CROS_EC_I2C=m
+CONFIG_PMIC_DA903X=y
+CONFIG_PMIC_DA9052=y
+CONFIG_MFD_DA9052_SPI=y
+CONFIG_MFD_DA9052_I2C=y
+CONFIG_MFD_DA9055=y
+CONFIG_MFD_DA9063=y
+# CONFIG_MFD_DA9150 is not set
+# CONFIG_MFD_DLN2 is not set
+# CONFIG_MFD_MC13XXX_SPI is not set
+# CONFIG_MFD_MC13XXX_I2C is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_HTC_I2CPLD is not set
+CONFIG_LPC_ICH=m
+CONFIG_LPC_SCH=m
+CONFIG_INTEL_SOC_PMIC=y
+# CONFIG_MFD_JANZ_CMODIO is not set
+# CONFIG_MFD_KEMPLD is not set
+# CONFIG_MFD_88PM800 is not set
+# CONFIG_MFD_88PM805 is not set
+# CONFIG_MFD_88PM860X is not set
+# CONFIG_MFD_MAX14577 is not set
+# CONFIG_MFD_MAX77693 is not set
+# CONFIG_MFD_MAX8907 is not set
+# CONFIG_MFD_MAX8925 is not set
+# CONFIG_MFD_MAX8997 is not set
+# CONFIG_MFD_MAX8998 is not set
+# CONFIG_MFD_MENF21BMC is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_MFD_VIPERBOARD is not set
+# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_RDC321X is not set
+CONFIG_MFD_RTSX_PCI=m
+# CONFIG_MFD_RT5033 is not set
+CONFIG_MFD_RTSX_USB=m
+# CONFIG_MFD_RC5T583 is not set
+# CONFIG_MFD_RN5T618 is not set
+# CONFIG_MFD_SEC_CORE is not set
+# CONFIG_MFD_SI476X_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_SMSC is not set
+# CONFIG_ABX500_CORE is not set
+CONFIG_MFD_SYSCON=y
+# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_LP3943 is not set
+# CONFIG_MFD_LP8788 is not set
+# CONFIG_MFD_PALMAS is not set
+# CONFIG_TPS6105X is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TPS6507X is not set
+# CONFIG_MFD_TPS65090 is not set
+# CONFIG_MFD_TPS65217 is not set
+# CONFIG_MFD_TPS65218 is not set
+# CONFIG_MFD_TPS6586X is not set
+# CONFIG_MFD_TPS65910 is not set
+# CONFIG_MFD_TPS65912 is not set
+# CONFIG_MFD_TPS65912_I2C is not set
+# CONFIG_MFD_TPS65912_SPI is not set
+# CONFIG_MFD_TPS80031 is not set
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_TWL6040_CORE is not set
+# CONFIG_MFD_WL1273_CORE is not set
+# CONFIG_MFD_LM3533 is not set
+CONFIG_MFD_TC3589X=y
+# CONFIG_MFD_TMIO is not set
+CONFIG_MFD_VX855=m
+# CONFIG_MFD_ARIZONA_I2C is not set
+# CONFIG_MFD_ARIZONA_SPI is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X_I2C is not set
+# CONFIG_MFD_WM831X_SPI is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_WM8994 is not set
+# CONFIG_REGULATOR is not set
+# CONFIG_MEDIA_SUPPORT is not set
+
+#
+# Graphics support
+#
+CONFIG_AGP=m
+CONFIG_AGP_AMD64=m
+CONFIG_AGP_INTEL=m
+CONFIG_AGP_SIS=m
+CONFIG_AGP_VIA=m
+CONFIG_INTEL_GTT=m
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_SWITCHEROO=y
+
+#
+# Direct Rendering Manager
+#
+CONFIG_DRM=m
+CONFIG_DRM_MIPI_DSI=y
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_KMS_FB_HELPER=y
+# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
+CONFIG_DRM_TTM=m
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_I2C_ADV7511=m
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_SIL164=m
+CONFIG_DRM_I2C_NXP_TDA998X=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+# CONFIG_DRM_RADEON_UMS is not set
+CONFIG_DRM_NOUVEAU=m
+CONFIG_NOUVEAU_DEBUG=5
+CONFIG_NOUVEAU_DEBUG_DEFAULT=3
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_I810=m
+CONFIG_DRM_I915=m
+CONFIG_DRM_I915_KMS=y
+CONFIG_DRM_I915_FBDEV=y
+CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT=y
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+CONFIG_DRM_VIA=m
+CONFIG_DRM_SAVAGE=m
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_VMWGFX_FBCON=y
+CONFIG_DRM_GMA500=m
+CONFIG_DRM_GMA600=y
+CONFIG_DRM_GMA3600=y
+CONFIG_DRM_UDL=m
+# CONFIG_DRM_AST is not set
+CONFIG_DRM_MGAG200=m
+CONFIG_DRM_CIRRUS_QEMU=m
+CONFIG_DRM_QXL=m
+CONFIG_DRM_BOCHS=m
+CONFIG_DRM_PANEL=y
+
+#
+# Display Panels
+#
+# CONFIG_HSA_AMD is not set
+
+#
+# Frame buffer Devices
+#
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FB_CMDLINE=y
+CONFIG_FB_DDC=m
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_SVGALIB=m
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_BACKLIGHT=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_CYBER2000=m
+CONFIG_FB_CYBER2000_DDC=y
+CONFIG_FB_ARC=m
+CONFIG_FB_ASILIANT=y
+CONFIG_FB_IMSTT=y
+CONFIG_FB_VGA16=m
+CONFIG_FB_UVESA=m
+CONFIG_FB_VESA=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_N411 is not set
+# CONFIG_FB_HGA is not set
+CONFIG_FB_OPENCORES=m
+CONFIG_FB_S1D13XXX=m
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_NVIDIA_I2C=y
+# CONFIG_FB_NVIDIA_DEBUG is not set
+CONFIG_FB_NVIDIA_BACKLIGHT=y
+CONFIG_FB_RIVA=m
+CONFIG_FB_RIVA_I2C=y
+# CONFIG_FB_RIVA_DEBUG is not set
+CONFIG_FB_RIVA_BACKLIGHT=y
+CONFIG_FB_I740=m
+CONFIG_FB_LE80578=m
+CONFIG_FB_CARILLO_RANCH=m
+CONFIG_FB_INTEL=m
+# CONFIG_FB_INTEL_DEBUG is not set
+CONFIG_FB_INTEL_I2C=y
+CONFIG_FB_MATROX=m
+CONFIG_FB_MATROX_MILLENIUM=y
+CONFIG_FB_MATROX_MYSTIQUE=y
+CONFIG_FB_MATROX_G=y
+CONFIG_FB_MATROX_I2C=m
+CONFIG_FB_MATROX_MAVEN=m
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RADEON_BACKLIGHT=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_ATY128=m
+CONFIG_FB_ATY128_BACKLIGHT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_ATY_GENERIC_LCD=y
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_ATY_BACKLIGHT=y
+CONFIG_FB_S3=m
+CONFIG_FB_S3_DDC=y
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SAVAGE_I2C=y
+# CONFIG_FB_SAVAGE_ACCEL is not set
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_VIA=m
+# CONFIG_FB_VIA_DIRECT_PROCFS is not set
+CONFIG_FB_VIA_X_COMPATIBILITY=y
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_KYRO=m
+CONFIG_FB_3DFX=m
+CONFIG_FB_3DFX_ACCEL=y
+CONFIG_FB_3DFX_I2C=y
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_VT8623=m
+CONFIG_FB_TRIDENT=m
+CONFIG_FB_ARK=m
+CONFIG_FB_PM3=m
+CONFIG_FB_CARMINE=m
+CONFIG_FB_CARMINE_DRAM_EVAL=y
+# CONFIG_CARMINE_DRAM_CUSTOM is not set
+CONFIG_FB_SMSCUFX=m
+CONFIG_FB_UDL=m
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_FB_METRONOME=m
+CONFIG_FB_MB862XX=m
+CONFIG_FB_MB862XX_PCI_GDC=y
+CONFIG_FB_MB862XX_I2C=y
+CONFIG_FB_BROADSHEET=m
+CONFIG_FB_AUO_K190X=m
+CONFIG_FB_AUO_K1900=m
+CONFIG_FB_AUO_K1901=m
+# CONFIG_FB_HYPERV is not set
+CONFIG_FB_SIMPLE=y
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_L4F00242T03=m
+CONFIG_LCD_LMS283GF05=m
+CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_ILI922X=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_TDO24M=m
+CONFIG_LCD_VGG2432A4=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_LCD_S6E63M0=m
+CONFIG_LCD_LD9040=m
+CONFIG_LCD_AMS369FG06=m
+CONFIG_LCD_LMS501KF03=m
+CONFIG_LCD_HX8357=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=y
+CONFIG_BACKLIGHT_CARILLO_RANCH=m
+CONFIG_BACKLIGHT_DA903X=m
+CONFIG_BACKLIGHT_DA9052=m
+CONFIG_BACKLIGHT_APPLE=m
+CONFIG_BACKLIGHT_SAHARA=m
+CONFIG_BACKLIGHT_ADP5520=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_ADP8870=m
+CONFIG_BACKLIGHT_AAT2870=m
+CONFIG_BACKLIGHT_LM3639=m
+CONFIG_BACKLIGHT_AS3711=m
+CONFIG_BACKLIGHT_GPIO=m
+CONFIG_BACKLIGHT_LV5207LP=m
+CONFIG_BACKLIGHT_BD6107=m
+CONFIG_VGASTATE=m
+CONFIG_HDMI=y
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+CONFIG_VGACON_SOFT_SCROLLBACK=y
+CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=80
+CONFIG_DUMMY_CONSOLE_ROWS=25
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+# CONFIG_LOGO is not set
+# CONFIG_SOUND is not set
+
+#
+# HID support
+#
+CONFIG_HID=y
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HIDRAW=y
+CONFIG_UHID=m
+CONFIG_HID_GENERIC=y
+
+#
+# Special HID drivers
+#
+# CONFIG_HID_A4TECH is not set
+# CONFIG_HID_ACRUX is not set
+CONFIG_HID_APPLE=m
+# CONFIG_HID_APPLEIR is not set
+# CONFIG_HID_AUREAL is not set
+CONFIG_HID_BELKIN=m
+# CONFIG_HID_BETOP_FF is not set
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CP2112=m
+# CONFIG_HID_CYPRESS is not set
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EMS_FF is not set
+# CONFIG_HID_ELECOM is not set
+CONFIG_HID_ELO=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_HOLTEK=m
+# CONFIG_HOLTEK_FF is not set
+# CONFIG_HID_GT683R is not set
+# CONFIG_HID_HUION is not set
+CONFIG_HID_KEYTOUCH=m
+# CONFIG_HID_KYE is not set
+# CONFIG_HID_UCLOGIC is not set
+# CONFIG_HID_WALTOP is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_ICADE is not set
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+# CONFIG_HID_LCPOWER is not set
+CONFIG_HID_LENOVO=m
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
+CONFIG_HID_LOGITECH_HIDPP=m
+CONFIG_LOGITECH_FF=y
+# CONFIG_LOGIRUMBLEPAD2_FF is not set
+# CONFIG_LOGIG940_FF is not set
+# CONFIG_LOGIWHEELS_FF is not set
+# CONFIG_HID_MAGICMOUSE is not set
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+# CONFIG_HID_MULTITOUCH is not set
+# CONFIG_HID_NTRIG is not set
+CONFIG_HID_ORTEK=m
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PENMOUNT is not set
+# CONFIG_HID_PETALYNX is not set
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PLANTRONICS=m
+CONFIG_HID_PRIMAX=m
+CONFIG_HID_ROCCAT=m
+# CONFIG_HID_SAITEK is not set
+CONFIG_HID_SAMSUNG=m
+# CONFIG_HID_SONY is not set
+# CONFIG_HID_SPEEDLINK is not set
+# CONFIG_HID_STEELSERIES is not set
+CONFIG_HID_SUNPLUS=m
+# CONFIG_HID_RMI is not set
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_HYPERV_MOUSE is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TIVO is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_THINGM is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_WACOM is not set
+# CONFIG_HID_WIIMOTE is not set
+# CONFIG_HID_XINMO is not set
+# CONFIG_HID_ZEROPLUS is not set
+# CONFIG_HID_ZYDACRON is not set
+CONFIG_HID_SENSOR_HUB=m
+
+#
+# USB HID support
+#
+CONFIG_USB_HID=y
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+
+#
+# I2C HID support
+#
+CONFIG_I2C_HID=m
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEFAULT_PERSIST=y
+# CONFIG_USB_DYNAMIC_MINORS is not set
+CONFIG_USB_OTG=y
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+CONFIG_USB_OTG_FSM=m
+# CONFIG_USB_MON is not set
+# CONFIG_USB_WUSB is not set
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_XHCI_HCD=m
+CONFIG_USB_XHCI_PCI=m
+CONFIG_USB_XHCI_PLATFORM=m
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EHCI_PCI=m
+CONFIG_USB_EHCI_HCD_PLATFORM=m
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_FUSBH200_HCD=m
+CONFIG_USB_FOTG210_HCD=m
+CONFIG_USB_MAX3421_HCD=m
+CONFIG_USB_OHCI_HCD=m
+CONFIG_USB_OHCI_HCD_PCI=m
+# CONFIG_USB_OHCI_HCD_SSB is not set
+CONFIG_USB_OHCI_HCD_PLATFORM=m
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_SL811_HCD=m
+# CONFIG_USB_SL811_HCD_ISO is not set
+# CONFIG_USB_SL811_CS is not set
+CONFIG_USB_R8A66597_HCD=m
+# CONFIG_USB_WHCI_HCD is not set
+# CONFIG_USB_HWA_HCD is not set
+CONFIG_USB_HCD_BCMA=m
+CONFIG_USB_HCD_SSB=m
+# CONFIG_USB_HCD_TEST_MODE is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_WDM=m
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_REALTEK_AUTOPM=y
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_UAS=m
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+# CONFIG_USBIP_DEBUG is not set
+CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_MUSB_HOST=y
+# CONFIG_USB_MUSB_GADGET is not set
+# CONFIG_USB_MUSB_DUAL_ROLE is not set
+
+#
+# Platform Glue Layer
+#
+CONFIG_MUSB_PIO_ONLY=y
+CONFIG_USB_DWC3=m
+CONFIG_USB_DWC3_HOST=y
+# CONFIG_USB_DWC3_GADGET is not set
+# CONFIG_USB_DWC3_DUAL_ROLE is not set
+
+#
+# Platform Glue Driver Support
+#
+CONFIG_USB_DWC3_PCI=m
+
+#
+# Debugging features
+#
+# CONFIG_USB_DWC3_DEBUG is not set
+CONFIG_DWC3_HOST_USB3_LPM_ENABLE=y
+CONFIG_USB_DWC2=m
+CONFIG_USB_DWC2_HOST=y
+
+#
+# Gadget/Dual-role mode requires USB Gadget support to be enabled
+#
+# CONFIG_USB_DWC2_PERIPHERAL is not set
+# CONFIG_USB_DWC2_DUAL_ROLE is not set
+CONFIG_USB_DWC2_PLATFORM=m
+CONFIG_USB_DWC2_PCI=m
+# CONFIG_USB_DWC2_DEBUG is not set
+# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
+CONFIG_USB_CHIPIDEA=m
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+# CONFIG_USB_CHIPIDEA_DEBUG is not set
+CONFIG_USB_ISP1760=m
+CONFIG_USB_ISP1760_HCD=y
+CONFIG_USB_ISP1760_HOST_ROLE=y
+# CONFIG_USB_ISP1760_GADGET_ROLE is not set
+# CONFIG_USB_ISP1760_DUAL_ROLE is not set
+
+#
+# USB port drivers
+#
+CONFIG_USB_USS720=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_SIMPLE=m
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+# CONFIG_USB_SERIAL_EMPEG is not set
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+# CONFIG_USB_SERIAL_IR is not set
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
+# CONFIG_USB_SERIAL_GARMIN is not set
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+# CONFIG_USB_SERIAL_METRO is not set
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MXUPORT=m
+# CONFIG_USB_SERIAL_NAVMAN is not set
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_USB_SERIAL_SAFE_PADDED=y
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+# CONFIG_USB_SERIAL_SYMBOL is not set
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+# CONFIG_USB_SERIAL_OPTICON is not set
+# CONFIG_USB_SERIAL_XSENS_MT is not set
+CONFIG_USB_SERIAL_WISHBONE=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_QT2=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+CONFIG_USB_SEVSEG=m
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_IDMOUSE is not set
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_SISUSBVGA=m
+CONFIG_USB_SISUSBVGA_CON=y
+CONFIG_USB_LD=m
+# CONFIG_USB_TRANCEVIBRATOR is not set
+CONFIG_USB_IOWARRIOR=m
+# CONFIG_USB_TEST is not set
+# CONFIG_USB_EHSET_TEST_FIXTURE is not set
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_YUREX is not set
+CONFIG_USB_EZUSB_FX2=m
+CONFIG_USB_HSIC_USB3503=m
+# CONFIG_USB_LINK_LAYER_TEST is not set
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+
+#
+# USB Physical Layer drivers
+#
+CONFIG_USB_PHY=y
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_USB_ISP1301=m
+CONFIG_USB_GADGET=m
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+
+#
+# USB Peripheral Controller
+#
+CONFIG_USB_FOTG210_UDC=m
+CONFIG_USB_GR_UDC=m
+CONFIG_USB_R8A66597=m
+CONFIG_USB_PXA27X=m
+CONFIG_USB_MV_UDC=m
+CONFIG_USB_MV_U3D=m
+CONFIG_USB_M66592=m
+CONFIG_USB_BDC_UDC=m
+
+#
+# Platform Support
+#
+CONFIG_USB_BDC_PCI=m
+CONFIG_USB_AMD5536UDC=m
+CONFIG_USB_NET2272=m
+CONFIG_USB_NET2272_DMA=y
+CONFIG_USB_NET2280=m
+CONFIG_USB_GOKU=m
+CONFIG_USB_EG20T=m
+# CONFIG_USB_DUMMY_HCD is not set
+CONFIG_USB_LIBCOMPOSITE=m
+CONFIG_USB_F_ACM=m
+CONFIG_USB_F_SS_LB=m
+CONFIG_USB_U_SERIAL=m
+CONFIG_USB_U_ETHER=m
+CONFIG_USB_F_SERIAL=m
+CONFIG_USB_F_OBEX=m
+CONFIG_USB_F_NCM=m
+CONFIG_USB_F_ECM=m
+CONFIG_USB_F_PHONET=m
+CONFIG_USB_F_EEM=m
+CONFIG_USB_F_SUBSET=m
+CONFIG_USB_F_RNDIS=m
+CONFIG_USB_F_MASS_STORAGE=m
+CONFIG_USB_F_FS=m
+CONFIG_USB_F_HID=m
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_PHONET=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_HID=y
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+CONFIG_USB_ETH_EEM=y
+CONFIG_USB_G_NCM=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_FUNCTIONFS_ETH=y
+CONFIG_USB_FUNCTIONFS_RNDIS=y
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_GADGET_TARGET=m
+CONFIG_USB_G_SERIAL=m
+# CONFIG_USB_G_PRINTER is not set
+CONFIG_USB_CDC_COMPOSITE=m
+CONFIG_USB_G_NOKIA=m
+CONFIG_USB_G_ACM_MS=m
+CONFIG_USB_G_MULTI=m
+CONFIG_USB_G_MULTI_RNDIS=y
+CONFIG_USB_G_MULTI_CDC=y
+CONFIG_USB_G_HID=m
+# CONFIG_USB_G_DBGP is not set
+# CONFIG_USB_LED_TRIG is not set
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_WHCI=m
+CONFIG_UWB_I1480U=m
+CONFIG_MMC=m
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_CLKGATE=y
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI_ACPI=m
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_WBSD=m
+CONFIG_MMC_TIFM_SD=m
+CONFIG_MMC_SPI=m
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_CB710=m
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_USHC=m
+CONFIG_MMC_USDHI6ROL0=m
+CONFIG_MMC_REALTEK_PCI=m
+CONFIG_MMC_REALTEK_USB=m
+CONFIG_MMC_TOSHIBA_PCI=m
+CONFIG_MEMSTICK=m
+# CONFIG_MEMSTICK_DEBUG is not set
+
+#
+# MemoryStick drivers
+#
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MSPRO_BLOCK=m
+CONFIG_MS_BLOCK=m
+
+#
+# MemoryStick Host Controller Drivers
+#
+CONFIG_MEMSTICK_TIFM_MS=m
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_MEMSTICK_R592=m
+CONFIG_MEMSTICK_REALTEK_PCI=m
+CONFIG_MEMSTICK_REALTEK_USB=m
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+# CONFIG_LEDS_CLASS_FLASH is not set
+
+#
+# LED drivers
+#
+CONFIG_LEDS_LM3530=m
+# CONFIG_LEDS_LM3642 is not set
+# CONFIG_LEDS_PCA9532 is not set
+# CONFIG_LEDS_GPIO is not set
+# CONFIG_LEDS_LP3944 is not set
+# CONFIG_LEDS_LP5521 is not set
+# CONFIG_LEDS_LP5523 is not set
+# CONFIG_LEDS_LP5562 is not set
+# CONFIG_LEDS_LP8501 is not set
+# CONFIG_LEDS_LP8860 is not set
+# CONFIG_LEDS_CLEVO_MAIL is not set
+# CONFIG_LEDS_PCA955X is not set
+# CONFIG_LEDS_PCA963X is not set
+# CONFIG_LEDS_DA903X is not set
+# CONFIG_LEDS_DA9052 is not set
+# CONFIG_LEDS_DAC124S085 is not set
+# CONFIG_LEDS_BD2802 is not set
+# CONFIG_LEDS_INTEL_SS4200 is not set
+# CONFIG_LEDS_LT3593 is not set
+# CONFIG_LEDS_ADP5520 is not set
+# CONFIG_LEDS_DELL_NETBOOKS is not set
+# CONFIG_LEDS_TCA6507 is not set
+# CONFIG_LEDS_LM355x is not set
+
+#
+# LED driver for blink(1) USB RGB LED is under Special HID drivers
(HID_THINGM)
+#
+# CONFIG_LEDS_BLINKM is not set
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+# CONFIG_LEDS_TRIGGER_TIMER is not set
+# CONFIG_LEDS_TRIGGER_ONESHOT is not set
+# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
+# CONFIG_LEDS_TRIGGER_CPU is not set
+# CONFIG_LEDS_TRIGGER_GPIO is not set
+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
+# CONFIG_LEDS_TRIGGER_CAMERA is not set
+CONFIG_ACCESSIBILITY=y
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_USER_MAD=m
+CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_INFINIBAND_USER_MEM=y
+CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
+CONFIG_INFINIBAND_ADDR_TRANS=y
+CONFIG_INFINIBAND_MTHCA=m
+CONFIG_INFINIBAND_MTHCA_DEBUG=y
+CONFIG_INFINIBAND_IPATH=m
+CONFIG_INFINIBAND_QIB=m
+CONFIG_INFINIBAND_QIB_DCA=y
+CONFIG_INFINIBAND_AMSO1100=m
+# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
+CONFIG_INFINIBAND_CXGB3=m
+# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
+CONFIG_INFINIBAND_CXGB4=m
+CONFIG_MLX4_INFINIBAND=m
+CONFIG_MLX5_INFINIBAND=m
+CONFIG_INFINIBAND_NES=m
+# CONFIG_INFINIBAND_NES_DEBUG is not set
+CONFIG_INFINIBAND_OCRDMA=m
+CONFIG_INFINIBAND_USNIC=m
+CONFIG_INFINIBAND_IPOIB=m
+# CONFIG_INFINIBAND_IPOIB_CM is not set
+# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
+CONFIG_INFINIBAND_SRP=m
+CONFIG_INFINIBAND_SRPT=m
+CONFIG_INFINIBAND_ISER=m
+CONFIG_INFINIBAND_ISERT=m
+CONFIG_EDAC=y
+# CONFIG_EDAC_LEGACY_SYSFS is not set
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=y
+# CONFIG_EDAC_MCE_INJ is not set
+CONFIG_EDAC_MM_EDAC=m
+CONFIG_EDAC_AMD64=m
+# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_IE31200=m
+CONFIG_EDAC_X38=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I7CORE=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_EDAC_I7300=m
+CONFIG_EDAC_SBRIDGE=m
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_ABB5ZES3=m
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+# CONFIG_RTC_DRV_DS1374_WDT is not set
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_ISL12057=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF2127=m
+CONFIG_RTC_DRV_PCF8523=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF85063=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+# CONFIG_RTC_DRV_M41T80_WDT is not set
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3029C2=m
+
+#
+# SPI RTC drivers
+#
+CONFIG_RTC_DRV_M41T93=m
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1343=m
+CONFIG_RTC_DRV_DS1347=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_DS3234=m
+CONFIG_RTC_DRV_PCF2123=m
+CONFIG_RTC_DRV_RX4581=m
+CONFIG_RTC_DRV_MCP795=m
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1685_FAMILY=m
+CONFIG_RTC_DRV_DS1685=y
+# CONFIG_RTC_DRV_DS1689 is not set
+# CONFIG_RTC_DRV_DS17285 is not set
+# CONFIG_RTC_DRV_DS17485 is not set
+# CONFIG_RTC_DRV_DS17885 is not set
+# CONFIG_RTC_DS1685_PROC_REGS is not set
+# CONFIG_RTC_DS1685_SYSFS_REGS is not set
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_DS2404=m
+CONFIG_RTC_DRV_DA9052=m
+CONFIG_RTC_DRV_DA9055=m
+CONFIG_RTC_DRV_DA9063=m
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_V3020=m
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_XGENE=m
+
+#
+# HID Sensor RTC drivers
+#
+CONFIG_RTC_DRV_HID_SENSOR_TIME=m
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_INTEL_MIC_X100_DMA=m
+CONFIG_INTEL_MID_DMAC=m
+CONFIG_INTEL_IOATDMA=m
+CONFIG_DW_DMAC_CORE=m
+CONFIG_DW_DMAC=m
+CONFIG_DW_DMAC_PCI=m
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_ACPI=y
+
+#
+# DMA Clients
+#
+CONFIG_ASYNC_TX_DMA=y
+# CONFIG_DMATEST is not set
+CONFIG_DMA_ENGINE_RAID=y
+CONFIG_DCA=m
+CONFIG_AUXDISPLAY=y
+CONFIG_KS0108=m
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS0108_DELAY=2
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+CONFIG_UIO=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_DMEM_GENIRQ=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
+CONFIG_UIO_MF624=m
+CONFIG_VFIO_IOMMU_TYPE1=m
+CONFIG_VFIO=m
+CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_VGA=y
+CONFIG_VFIO_PCI_MMAP=y
+CONFIG_VFIO_PCI_INTX=y
+CONFIG_VIRT_DRIVERS=y
+CONFIG_VIRTIO=m
+
+#
+# Virtio drivers
+#
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_PCI_LEGACY=y
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_MMIO=m
+# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
+
+#
+# Microsoft Hyper-V guest support
+#
+CONFIG_HYPERV=m
+CONFIG_HYPERV_UTILS=m
+CONFIG_HYPERV_BALLOON=m
+CONFIG_STAGING=y
+CONFIG_SLICOSS=m
+CONFIG_PRISM2_USB=m
+# CONFIG_COMEDI is not set
+CONFIG_PANEL=m
+CONFIG_PANEL_PARPORT=0
+CONFIG_PANEL_PROFILE=5
+# CONFIG_PANEL_CHANGE_MESSAGE is not set
+CONFIG_RTL8192U=m
+CONFIG_RTLLIB=m
+CONFIG_RTLLIB_CRYPTO_CCMP=m
+CONFIG_RTLLIB_CRYPTO_TKIP=m
+CONFIG_RTLLIB_CRYPTO_WEP=m
+CONFIG_RTL8192E=m
+CONFIG_R8712U=m
+CONFIG_R8188EU=m
+CONFIG_88EU_AP_MODE=y
+CONFIG_R8723AU=m
+CONFIG_8723AU_AP_MODE=y
+CONFIG_8723AU_BT_COEXIST=y
+CONFIG_RTS5208=m
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+
+#
+# IIO staging drivers
+#
+
+#
+# Accelerometers
+#
+# CONFIG_ADIS16201 is not set
+# CONFIG_ADIS16203 is not set
+# CONFIG_ADIS16204 is not set
+# CONFIG_ADIS16209 is not set
+# CONFIG_ADIS16220 is not set
+# CONFIG_ADIS16240 is not set
+# CONFIG_LIS3L02DQ is not set
+
+#
+# Analog to digital converters
+#
+# CONFIG_AD7606 is not set
+# CONFIG_AD7780 is not set
+# CONFIG_AD7816 is not set
+# CONFIG_AD7192 is not set
+# CONFIG_AD7280 is not set
+
+#
+# Analog digital bi-direction converters
+#
+# CONFIG_ADT7316 is not set
+
+#
+# Capacitance to digital converters
+#
+# CONFIG_AD7150 is not set
+# CONFIG_AD7152 is not set
+# CONFIG_AD7746 is not set
+
+#
+# Direct Digital Synthesis
+#
+# CONFIG_AD9832 is not set
+# CONFIG_AD9834 is not set
+
+#
+# Digital gyroscope sensors
+#
+# CONFIG_ADIS16060 is not set
+
+#
+# Network Analyzer, Impedance Converters
+#
+# CONFIG_AD5933 is not set
+
+#
+# Light sensors
+#
+# CONFIG_SENSORS_ISL29018 is not set
+# CONFIG_SENSORS_ISL29028 is not set
+# CONFIG_TSL2583 is not set
+# CONFIG_TSL2x7x is not set
+
+#
+# Magnetometer sensors
+#
+# CONFIG_SENSORS_HMC5843_I2C is not set
+# CONFIG_SENSORS_HMC5843_SPI is not set
+
+#
+# Active energy metering IC
+#
+# CONFIG_ADE7753 is not set
+# CONFIG_ADE7754 is not set
+# CONFIG_ADE7758 is not set
+# CONFIG_ADE7759 is not set
+# CONFIG_ADE7854 is not set
+
+#
+# Resolver to digital converters
+#
+# CONFIG_AD2S90 is not set
+# CONFIG_AD2S1200 is not set
+# CONFIG_AD2S1210 is not set
+
+#
+# Triggers - standalone
+#
+# CONFIG_IIO_SIMPLE_DUMMY is not set
+CONFIG_FB_SM7XX=m
+CONFIG_FB_XGI=m
+CONFIG_FT1000=m
+CONFIG_FT1000_USB=m
+CONFIG_FT1000_PCMCIA=m
+
+#
+# Speakup console speech
+#
+CONFIG_SPEAKUP=y
+CONFIG_SPEAKUP_SYNTH_ACNTSA=y
+CONFIG_SPEAKUP_SYNTH_APOLLO=y
+CONFIG_SPEAKUP_SYNTH_AUDPTR=y
+CONFIG_SPEAKUP_SYNTH_BNS=y
+CONFIG_SPEAKUP_SYNTH_DECTLK=y
+CONFIG_SPEAKUP_SYNTH_DECEXT=y
+CONFIG_SPEAKUP_SYNTH_LTLK=y
+CONFIG_SPEAKUP_SYNTH_SOFT=y
+CONFIG_SPEAKUP_SYNTH_SPKOUT=y
+CONFIG_SPEAKUP_SYNTH_TXPRT=y
+# CONFIG_SPEAKUP_SYNTH_DUMMY is not set
+CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
+# CONFIG_STAGING_MEDIA is not set
+
+#
+# Android
+#
+CONFIG_USB_WPAN_HCD=m
+CONFIG_WIMAX_GDM72XX=m
+# CONFIG_WIMAX_GDM72XX_QOS is not set
+# CONFIG_WIMAX_GDM72XX_K_MODE is not set
+# CONFIG_WIMAX_GDM72XX_WIMAX2 is not set
+CONFIG_WIMAX_GDM72XX_USB=y
+# CONFIG_WIMAX_GDM72XX_SDIO is not set
+# CONFIG_WIMAX_GDM72XX_USB_PM is not set
+CONFIG_LTE_GDM724X=m
+CONFIG_FIREWIRE_SERIAL=m
+CONFIG_FWTTY_MAX_TOTAL_PORTS=64
+CONFIG_FWTTY_MAX_CARD_PORTS=32
+CONFIG_MTD_SPINAND_MT29F=m
+CONFIG_MTD_SPINAND_ONDIEECC=y
+CONFIG_LUSTRE_FS=m
+CONFIG_LUSTRE_OBD_MAX_IOCTL_BUFFER=8192
+# CONFIG_LUSTRE_DEBUG_EXPENSIVE_CHECK is not set
+CONFIG_LUSTRE_LLITE_LLOOP=m
+CONFIG_LNET=m
+CONFIG_LNET_MAX_PAYLOAD=1048576
+# CONFIG_LNET_SELFTEST is not set
+CONFIG_LNET_XPRT_IB=m
+CONFIG_DGNC=m
+CONFIG_DGAP=m
+CONFIG_GS_FPGABOOT=m
+CONFIG_CRYPTO_SKEIN=m
+CONFIG_UNISYSSPAR=y
+CONFIG_UNISYS_VISORUTIL=m
+CONFIG_UNISYS_VISORCHANNEL=m
+CONFIG_UNISYS_VISORCHIPSET=m
+CONFIG_UNISYS_UISLIB=m
+CONFIG_UNISYS_VIRTPCI=m
+CONFIG_UNISYS_VIRTHBA=m
+CONFIG_FB_TFT=m
+CONFIG_FB_TFT_AGM1264K_FL=m
+CONFIG_FB_TFT_BD663474=m
+CONFIG_FB_TFT_HX8340BN=m
+CONFIG_FB_TFT_HX8347D=m
+CONFIG_FB_TFT_HX8353D=m
+CONFIG_FB_TFT_ILI9320=m
+CONFIG_FB_TFT_ILI9325=m
+CONFIG_FB_TFT_ILI9340=m
+CONFIG_FB_TFT_ILI9341=m
+CONFIG_FB_TFT_ILI9481=m
+CONFIG_FB_TFT_ILI9486=m
+CONFIG_FB_TFT_PCD8544=m
+CONFIG_FB_TFT_RA8875=m
+CONFIG_FB_TFT_S6D02A1=m
+CONFIG_FB_TFT_S6D1121=m
+CONFIG_FB_TFT_SSD1289=m
+CONFIG_FB_TFT_SSD1306=m
+CONFIG_FB_TFT_SSD1331=m
+CONFIG_FB_TFT_SSD1351=m
+CONFIG_FB_TFT_ST7735R=m
+CONFIG_FB_TFT_TINYLCD=m
+CONFIG_FB_TFT_TLS8204=m
+CONFIG_FB_TFT_UC1701=m
+CONFIG_FB_TFT_UPD161704=m
+CONFIG_FB_TFT_WATTEROTT=m
+CONFIG_FB_FLEX=m
+CONFIG_FB_TFT_FBTFT_DEVICE=m
+CONFIG_I2O=m
+CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
+CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_EXT_ADAPTEC_DMA64=y
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_CONFIG_OLD_IOCTL=y
+CONFIG_I2O_BUS=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
+CONFIG_ALIENWARE_WMI=m
+CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_AIO=m
+CONFIG_DELL_SMO8800=m
+CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_FUJITSU_TABLET=m
+CONFIG_AMILO_RFKILL=m
+CONFIG_HP_ACCEL=m
+CONFIG_HP_WIRELESS=m
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_SONY_LAPTOP=m
+CONFIG_SONYPI_COMPAT=y
+CONFIG_IDEAPAD_LAPTOP=m
+CONFIG_THINKPAD_ACPI=m
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_SENSORS_HDAPS=m
+CONFIG_INTEL_MENLOW=m
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_ASUS_WMI=m
+CONFIG_ASUS_NB_WMI=m
+CONFIG_EEEPC_WMI=m
+CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_TOSHIBA_HAPS=m
+CONFIG_ACPI_CMPC=m
+CONFIG_INTEL_IPS=m
+CONFIG_IBM_RTL=m
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_MXM_WMI=m
+CONFIG_INTEL_OAKTRAIL=m
+CONFIG_SAMSUNG_Q10=m
+CONFIG_APPLE_GMUX=m
+CONFIG_INTEL_RST=m
+CONFIG_INTEL_SMARTCONNECT=m
+CONFIG_PVPANIC=m
+CONFIG_CHROME_PLATFORMS=y
+CONFIG_CHROMEOS_LAPTOP=m
+# CONFIG_CHROMEOS_PSTORE is not set
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_COMMON_CLK=y
+
+#
+# Common Clock Framework
+#
+# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_PXA is not set
+# CONFIG_COMMON_CLK_CDCE706 is not set
+
+#
+# Hardware Spinlock drivers
+#
+
+#
+# Clock Source drivers
+#
+CONFIG_CLKEVT_I8253=y
+CONFIG_I8253_LOCK=y
+CONFIG_CLKBLD_I8253=y
+# CONFIG_ATMEL_PIT is not set
+# CONFIG_SH_TIMER_CMT is not set
+# CONFIG_SH_TIMER_MTU2 is not set
+# CONFIG_SH_TIMER_TMU is not set
+# CONFIG_EM_TIMER_STI is not set
+CONFIG_MAILBOX=y
+CONFIG_PCC=y
+CONFIG_ALTERA_MBOX=m
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+
+#
+# Generic IOMMU Pagetable Support
+#
+CONFIG_IOMMU_IOVA=y
+CONFIG_AMD_IOMMU=y
+# CONFIG_AMD_IOMMU_STATS is not set
+CONFIG_AMD_IOMMU_V2=m
+CONFIG_DMAR_TABLE=y
+CONFIG_INTEL_IOMMU=y
+CONFIG_INTEL_IOMMU_DEFAULT_ON=y
+CONFIG_INTEL_IOMMU_FLOPPY_WA=y
+CONFIG_IRQ_REMAP=y
+
+#
+# Remoteproc drivers
+#
+CONFIG_REMOTEPROC=m
+CONFIG_STE_MODEM_RPROC=m
+
+#
+# Rpmsg drivers
+#
+
+#
+# SOC (System On Chip) specific Drivers
+#
+CONFIG_SOC_TI=y
+CONFIG_PM_DEVFREQ=y
+
+#
+# DEVFREQ Governors
+#
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m
+# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
+# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
+# CONFIG_DEVFREQ_GOV_USERSPACE is not set
+
+#
+# DEVFREQ Drivers
+#
+# CONFIG_PM_DEVFREQ_EVENT is not set
+CONFIG_EXTCON=m
+
+#
+# Extcon Device Drivers
+#
+CONFIG_EXTCON_ADC_JACK=m
+CONFIG_EXTCON_GPIO=m
+CONFIG_EXTCON_RT8973A=m
+CONFIG_EXTCON_SM5502=m
+CONFIG_MEMORY=y
+CONFIG_IIO=m
+# CONFIG_IIO_BUFFER is not set
+# CONFIG_IIO_TRIGGER is not set
+
+#
+# Accelerometers
+#
+# CONFIG_BMA180 is not set
+# CONFIG_BMC150_ACCEL is not set
+# CONFIG_HID_SENSOR_ACCEL_3D is not set
+# CONFIG_IIO_ST_ACCEL_3AXIS is not set
+# CONFIG_KXSD9 is not set
+# CONFIG_MMA8452 is not set
+# CONFIG_KXCJK1013 is not set
+# CONFIG_MMA9551 is not set
+# CONFIG_MMA9553 is not set
+
+#
+# Analog to digital converters
+#
+# CONFIG_AD7266 is not set
+# CONFIG_AD7291 is not set
+# CONFIG_AD7298 is not set
+# CONFIG_AD7476 is not set
+# CONFIG_AD7791 is not set
+# CONFIG_AD7793 is not set
+# CONFIG_AD7887 is not set
+# CONFIG_AD7923 is not set
+# CONFIG_AD799X is not set
+# CONFIG_AXP288_ADC is not set
+# CONFIG_CC10001_ADC is not set
+# CONFIG_MAX1027 is not set
+# CONFIG_MAX1363 is not set
+# CONFIG_MCP320X is not set
+# CONFIG_MCP3422 is not set
+# CONFIG_NAU7802 is not set
+# CONFIG_QCOM_SPMI_IADC is not set
+# CONFIG_QCOM_SPMI_VADC is not set
+# CONFIG_TI_ADC081C is not set
+# CONFIG_TI_ADC128S052 is not set
+
+#
+# Amplifiers
+#
+# CONFIG_AD8366 is not set
+
+#
+# Hid Sensor IIO Common
+#
+CONFIG_HID_SENSOR_IIO_COMMON=m
+# CONFIG_HID_SENSOR_IIO_TRIGGER is not set
+
+#
+# SSP Sensor Common
+#
+# CONFIG_IIO_SSP_SENSORHUB is not set
+
+#
+# Digital to analog converters
+#
+# CONFIG_AD5064 is not set
+# CONFIG_AD5360 is not set
+# CONFIG_AD5380 is not set
+# CONFIG_AD5421 is not set
+# CONFIG_AD5446 is not set
+# CONFIG_AD5449 is not set
+# CONFIG_AD5504 is not set
+# CONFIG_AD5624R_SPI is not set
+# CONFIG_AD5686 is not set
+# CONFIG_AD5755 is not set
+# CONFIG_AD5764 is not set
+# CONFIG_AD5791 is not set
+# CONFIG_AD7303 is not set
+# CONFIG_MAX517 is not set
+# CONFIG_MCP4725 is not set
+# CONFIG_MCP4922 is not set
+
+#
+# Frequency Synthesizers DDS/PLL
+#
+
+#
+# Clock Generator/Distribution
+#
+# CONFIG_AD9523 is not set
+
+#
+# Phase-Locked Loop (PLL) frequency synthesizers
+#
+# CONFIG_ADF4350 is not set
+
+#
+# Digital gyroscope sensors
+#
+# CONFIG_ADIS16080 is not set
+# CONFIG_ADIS16130 is not set
+# CONFIG_ADIS16136 is not set
+# CONFIG_ADIS16260 is not set
+# CONFIG_ADXRS450 is not set
+# CONFIG_BMG160 is not set
+# CONFIG_HID_SENSOR_GYRO_3D is not set
+# CONFIG_IIO_ST_GYRO_3AXIS is not set
+# CONFIG_ITG3200 is not set
+
+#
+# Humidity sensors
+#
+# CONFIG_DHT11 is not set
+# CONFIG_SI7005 is not set
+# CONFIG_SI7020 is not set
+
+#
+# Inertial measurement units
+#
+# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16480 is not set
+# CONFIG_KMX61 is not set
+# CONFIG_INV_MPU6050_IIO is not set
+
+#
+# Light sensors
+#
+# CONFIG_ADJD_S311 is not set
+# CONFIG_AL3320A is not set
+# CONFIG_APDS9300 is not set
+# CONFIG_CM32181 is not set
+# CONFIG_CM3232 is not set
+# CONFIG_CM36651 is not set
+# CONFIG_GP2AP020A00F is not set
+# CONFIG_ISL29125 is not set
+# CONFIG_HID_SENSOR_ALS is not set
+# CONFIG_HID_SENSOR_PROX is not set
+# CONFIG_JSA1212 is not set
+# CONFIG_LTR501 is not set
+# CONFIG_TCS3414 is not set
+# CONFIG_TCS3472 is not set
+# CONFIG_SENSORS_TSL2563 is not set
+# CONFIG_TSL4531 is not set
+# CONFIG_VCNL4000 is not set
+
+#
+# Magnetometer sensors
+#
+# CONFIG_AK8975 is not set
+# CONFIG_AK09911 is not set
+# CONFIG_MAG3110 is not set
+# CONFIG_HID_SENSOR_MAGNETOMETER_3D is not set
+# CONFIG_IIO_ST_MAGN_3AXIS is not set
+
+#
+# Inclinometer sensors
+#
+# CONFIG_HID_SENSOR_INCLINOMETER_3D is not set
+# CONFIG_HID_SENSOR_DEVICE_ROTATION is not set
+
+#
+# Pressure sensors
+#
+# CONFIG_BMP280 is not set
+# CONFIG_HID_SENSOR_PRESS is not set
+# CONFIG_MPL115 is not set
+# CONFIG_MPL3115 is not set
+# CONFIG_IIO_ST_PRESS is not set
+# CONFIG_T5403 is not set
+
+#
+# Lightning sensors
+#
+# CONFIG_AS3935 is not set
+
+#
+# Proximity sensors
+#
+# CONFIG_SX9500 is not set
+
+#
+# Temperature sensors
+#
+# CONFIG_MLX90614 is not set
+# CONFIG_TMP006 is not set
+CONFIG_NTB=m
+CONFIG_VME_BUS=y
+
+#
+# VME Bridge Drivers
+#
+CONFIG_VME_CA91CX42=m
+CONFIG_VME_TSI148=m
+
+#
+# VME Board Drivers
+#
+CONFIG_VMIVME_7805=m
+
+#
+# VME Device Drivers
+#
+CONFIG_VME_USER=m
+CONFIG_VME_PIO2=m
+# CONFIG_PWM is not set
+# CONFIG_IPACK_BUS is not set
+CONFIG_RESET_CONTROLLER=y
+# CONFIG_FMC is not set
+
+#
+# PHY Subsystem
+#
+CONFIG_GENERIC_PHY=y
+CONFIG_BCM_KONA_USB2_PHY=m
+CONFIG_PHY_SAMSUNG_USB2=m
+# CONFIG_PHY_EXYNOS4210_USB2 is not set
+# CONFIG_PHY_EXYNOS4X12_USB2 is not set
+# CONFIG_PHY_EXYNOS5250_USB2 is not set
+CONFIG_POWERCAP=y
+CONFIG_INTEL_RAPL=m
+# CONFIG_MCB is not set
+CONFIG_RAS=y
+CONFIG_THUNDERBOLT=m
+
+#
+# Android
+#
+# CONFIG_ANDROID is not set
+
+#
+# Firmware Drivers
+#
+# CONFIG_EDD is not set
+CONFIG_FIRMWARE_MEMMAP=y
+# CONFIG_DELL_RBU is not set
+CONFIG_DCDBAS=m
+CONFIG_DMIID=y
+# CONFIG_DMI_SYSFS is not set
+CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
+CONFIG_ISCSI_IBFT_FIND=y
+# CONFIG_ISCSI_IBFT is not set
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# EFI (Extensible Firmware Interface) Support
+#
+CONFIG_EFI_VARS=m
+CONFIG_EFI_VARS_PSTORE=m
+CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_UEFI_CPER=y
+
+#
+# File systems
+#
+CONFIG_DCACHE_WORD_ACCESS=y
+CONFIG_EXT2_FS=m
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+CONFIG_EXT3_FS=m
+CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=m
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_JBD2=m
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=m
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_WARN is not set
+# CONFIG_XFS_DEBUG is not set
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+# CONFIG_OCFS2_FS_STATS is not set
+# CONFIG_OCFS2_DEBUG_MASKLOG is not set
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
+# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
+# CONFIG_BTRFS_DEBUG is not set
+# CONFIG_BTRFS_ASSERT is not set
+CONFIG_NILFS2_FS=m
+CONFIG_FS_DAX=y
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=y
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+# CONFIG_DNOTIFY is not set
+CONFIG_INOTIFY_USER=y
+# CONFIG_FANOTIFY is not set
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_TREE=m
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_QUOTACTL_COMPAT=y
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=y
+CONFIG_CUSE=m
+CONFIG_OVERLAY_FS=y
+
+#
+# Caches
+#
+CONFIG_FSCACHE=m
+# CONFIG_FSCACHE_STATS is not set
+# CONFIG_FSCACHE_HISTOGRAM is not set
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+# CONFIG_PROC_KCORE is not set
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_KERNFS=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_CONFIGFS_FS=y
+CONFIG_EFIVAR_FS=m
+CONFIG_MISC_FILESYSTEMS=y
+CONFIG_ADFS_FS=m
+# CONFIG_ADFS_FS_RW is not set
+CONFIG_AFFS_FS=m
+CONFIG_ECRYPT_FS=m
+CONFIG_ECRYPT_FS_MESSAGING=y
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_HFSPLUS_FS_POSIX_ACL=y
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+CONFIG_BFS_FS=m
+CONFIG_EFS_FS=m
+# CONFIG_JFFS2_FS is not set
+# CONFIG_UBIFS_FS is not set
+CONFIG_LOGFS=m
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_FILE_CACHE=y
+# CONFIG_SQUASHFS_FILE_DIRECT is not set
+CONFIG_SQUASHFS_DECOMP_SINGLE=y
+# CONFIG_SQUASHFS_DECOMP_MULTI is not set
+# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_ZLIB=y
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+CONFIG_VXFS_FS=m
+CONFIG_MINIX_FS=m
+CONFIG_OMFS_FS=m
+CONFIG_HPFS_FS=m
+CONFIG_QNX4FS_FS=m
+CONFIG_QNX6FS_FS=m
+# CONFIG_QNX6FS_DEBUG is not set
+CONFIG_ROMFS_FS=m
+CONFIG_ROMFS_BACKED_BY_BLOCK=y
+# CONFIG_ROMFS_BACKED_BY_MTD is not set
+# CONFIG_ROMFS_BACKED_BY_BOTH is not set
+CONFIG_ROMFS_ON_BLOCK=y
+CONFIG_PSTORE=y
+# CONFIG_PSTORE_CONSOLE is not set
+# CONFIG_PSTORE_PMSG is not set
+# CONFIG_PSTORE_RAM is not set
+CONFIG_SYSV_FS=m
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+# CONFIG_EXOFS_FS is not set
+CONFIG_F2FS_FS=m
+CONFIG_F2FS_STAT_FS=y
+CONFIG_F2FS_FS_XATTR=y
+CONFIG_F2FS_FS_POSIX_ACL=y
+CONFIG_F2FS_FS_SECURITY=y
+# CONFIG_F2FS_CHECK_FS is not set
+CONFIG_ORE=m
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V2=m
+CONFIG_NFS_V3=m
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=m
+CONFIG_NFS_SWAP=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_PNFS_FILE_LAYOUT=m
+CONFIG_PNFS_BLOCK=m
+CONFIG_PNFS_OBJLAYOUT=m
+CONFIG_PNFS_FLEXFILE_LAYOUT=m
+CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
+CONFIG_NFS_V4_1_MIGRATION=y
+CONFIG_NFS_V4_SECURITY_LABEL=y
+CONFIG_NFS_FSCACHE=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_PNFS=y
+CONFIG_NFSD_V4_SECURITY_LABEL=y
+# CONFIG_NFSD_FAULT_INJECTION is not set
+CONFIG_GRACE_PERIOD=m
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_SUNRPC_BACKCHANNEL=y
+CONFIG_SUNRPC_SWAP=y
+# CONFIG_SUNRPC_DEBUG is not set
+CONFIG_SUNRPC_XPRT_RDMA_CLIENT=m
+CONFIG_SUNRPC_XPRT_RDMA_SERVER=m
+CONFIG_CEPH_FS=m
+CONFIG_CEPH_FSCACHE=y
+CONFIG_CEPH_FS_POSIX_ACL=y
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+CONFIG_CIFS_WEAK_PW_HASH=y
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+CONFIG_CIFS_ACL=y
+# CONFIG_CIFS_DEBUG is not set
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_SMB2=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_NCP_FS=m
+CONFIG_NCPFS_PACKET_SIGNING=y
+CONFIG_NCPFS_IOCTL_LOCKING=y
+CONFIG_NCPFS_STRONG=y
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_SMALLDOS=y
+CONFIG_NCPFS_NLS=y
+CONFIG_NCPFS_EXTRAS=y
+CONFIG_CODA_FS=m
+CONFIG_AFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+CONFIG_AFS_FSCACHE=y
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_9P_FS_SECURITY=y
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_MAC_ROMAN=m
+CONFIG_NLS_MAC_CELTIC=m
+CONFIG_NLS_MAC_CENTEURO=m
+CONFIG_NLS_MAC_CROATIAN=m
+CONFIG_NLS_MAC_CYRILLIC=m
+CONFIG_NLS_MAC_GAELIC=m
+CONFIG_NLS_MAC_GREEK=m
+CONFIG_NLS_MAC_ICELAND=m
+CONFIG_NLS_MAC_INUIT=m
+CONFIG_NLS_MAC_ROMANIAN=m
+CONFIG_NLS_MAC_TURKISH=m
+CONFIG_NLS_UTF8=y
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+
+#
+# printk and dmesg options
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+
+#
+# Compile-time checks and compiler options
+#
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=2048
+CONFIG_STRIP_ASM_SYMS=y
+# CONFIG_READABLE_ASM is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_PAGE_OWNER is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+# CONFIG_FRAME_POINTER is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
+CONFIG_DEBUG_KERNEL=y
+
+#
+# Memory Debugging
+#
+# CONFIG_PAGE_EXTENSION is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+CONFIG_HAVE_ARCH_KASAN=y
+# CONFIG_KASAN is not set
+CONFIG_KASAN_SHADOW_OFFSET=0xdffffc0000000000
+# CONFIG_DEBUG_SHIRQ is not set
+
+#
+# Debug Lockups and Hangs
+#
+# CONFIG_LOCKUP_DETECTOR is not set
+# CONFIG_DETECT_HUNG_TASK is not set
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=0
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_SCHED_STACK_END_CHECK is not set
+# CONFIG_TIMER_STATS is not set
+
+#
+# Lock Debugging (spinlocks, mutexes, etc...)
+#
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_LOCK_TORTURE_TEST is not set
+# CONFIG_STACKTRACE is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_PI_LIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+
+#
+# RCU Debugging
+#
+# CONFIG_SPARSE_RCU_POINTER is not set
+# CONFIG_TORTURE_TEST is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=21
+# CONFIG_RCU_CPU_STALL_INFO is not set
+# CONFIG_RCU_TRACE is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_NOTIFIER_ERROR_INJECTION is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_FENTRY=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_TRACING_SUPPORT=y
+# CONFIG_FTRACE is not set
+# CONFIG_BRANCH_PROFILE_NONE is not set
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+
+#
+# Runtime Testing
+#
+# CONFIG_LKDTM is not set
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_RBTREE_TEST is not set
+# CONFIG_INTERVAL_TREE_TEST is not set
+# CONFIG_PERCPU_TEST is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+# CONFIG_ASYNC_RAID6_TEST is not set
+# CONFIG_TEST_HEXDUMP is not set
+# CONFIG_TEST_STRING_HELPERS is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_TEST_RHASHTABLE is not set
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_TEST_LKM is not set
+# CONFIG_TEST_USER_COPY is not set
+# CONFIG_TEST_BPF is not set
+# CONFIG_TEST_FIRMWARE is not set
+# CONFIG_TEST_UDELAY is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+# CONFIG_STRICT_DEVMEM is not set
+CONFIG_X86_VERBOSE_BOOTUP=y
+# CONFIG_EARLY_PRINTK is not set
+# CONFIG_X86_PTDUMP is not set
+CONFIG_DEBUG_RODATA=y
+# CONFIG_DEBUG_RODATA_TEST is not set
+CONFIG_DEBUG_SET_MODULE_RONX=y
+# CONFIG_DEBUG_NX_TEST is not set
+CONFIG_DOUBLEFAULT=y
+# CONFIG_DEBUG_TLBFLUSH is not set
+# CONFIG_IOMMU_DEBUG is not set
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+CONFIG_IO_DELAY_TYPE_NONE=3
+CONFIG_IO_DELAY_0X80=y
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_DELAY_NONE is not set
+CONFIG_DEFAULT_IO_DELAY_TYPE=0
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+# CONFIG_CPA_DEBUG is not set
+CONFIG_OPTIMIZE_INLINING=y
+# CONFIG_DEBUG_NMI_SELFTEST is not set
+# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+CONFIG_PERSISTENT_KEYRINGS=y
+CONFIG_BIG_KEYS=y
+CONFIG_TRUSTED_KEYS=m
+CONFIG_ENCRYPTED_KEYS=y
+CONFIG_SECURITY_DMESG_RESTRICT=y
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_SECURITY_NETWORK_XFRM=y
+CONFIG_SECURITY_PATH=y
+# CONFIG_INTEL_TXT is not set
+CONFIG_LSM_MMAP_MIN_ADDR=65536
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0
+CONFIG_SECURITY_SELINUX_DISABLE=y
+CONFIG_SECURITY_SELINUX_DEVELOP=y
+CONFIG_SECURITY_SELINUX_AVC_STATS=y
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
+# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
+CONFIG_SECURITY_SMACK=y
+# CONFIG_SECURITY_SMACK_BRINGUP is not set
+CONFIG_SECURITY_SMACK_NETFILTER=y
+CONFIG_SECURITY_TOMOYO=y
+CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
+CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
+# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
+CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
+CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0
+CONFIG_SECURITY_APPARMOR_HASH=y
+CONFIG_SECURITY_YAMA=y
+CONFIG_SECURITY_YAMA_STACKED=y
+CONFIG_INTEGRITY=y
+CONFIG_INTEGRITY_SIGNATURE=y
+CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
+CONFIG_INTEGRITY_AUDIT=y
+CONFIG_IMA=y
+CONFIG_IMA_MEASURE_PCR_IDX=10
+CONFIG_IMA_LSM_RULES=y
+# CONFIG_IMA_TEMPLATE is not set
+CONFIG_IMA_NG_TEMPLATE=y
+# CONFIG_IMA_SIG_TEMPLATE is not set
+CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng"
+CONFIG_IMA_DEFAULT_HASH_SHA1=y
+# CONFIG_IMA_DEFAULT_HASH_SHA256 is not set
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
+CONFIG_IMA_DEFAULT_HASH="sha1"
+# CONFIG_IMA_APPRAISE is not set
+CONFIG_EVM=y
+CONFIG_EVM_ATTR_FSUUID=y
+CONFIG_EVM_EXTRA_SMACK_XATTRS=y
+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
+# CONFIG_DEFAULT_SECURITY_SMACK is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
+# CONFIG_DEFAULT_SECURITY_YAMA is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_GF128MUL=y
+CONFIG_CRYPTO_NULL=y
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_MCRYPTD=m
+CONFIG_CRYPTO_AUTHENC=y
+# CONFIG_CRYPTO_TEST is not set
+CONFIG_CRYPTO_ABLK_HELPER=m
+CONFIG_CRYPTO_GLUE_HELPER_X86=m
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=y
+CONFIG_CRYPTO_GCM=y
+CONFIG_CRYPTO_SEQIV=y
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CTR=y
+# CONFIG_CRYPTO_CTS is not set
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+# CONFIG_CRYPTO_PCBC is not set
+CONFIG_CRYPTO_XTS=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_CMAC=m
+CONFIG_CRYPTO_HMAC=y
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_CRC32=m
+CONFIG_CRYPTO_CRC32_PCLMUL=m
+CONFIG_CRYPTO_CRCT10DIF=y
+# CONFIG_CRYPTO_CRCT10DIF_PCLMUL is not set
+CONFIG_CRYPTO_GHASH=y
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_MICHAEL_MIC=m
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA1_SSSE3=m
+CONFIG_CRYPTO_SHA256_SSSE3=m
+CONFIG_CRYPTO_SHA512_SSSE3=m
+# CONFIG_CRYPTO_SHA1_MB is not set
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA512=m
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+# CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_AES_X86_64=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
+# CONFIG_CRYPTO_ANUBIS is not set
+CONFIG_CRYPTO_ARC4=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
+CONFIG_CRYPTO_BLOWFISH_X86_64=m
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAMELLIA_X86_64 is not set
+# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set
+# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set
+CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES3_EDE_X86_64 is not set
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+# CONFIG_CRYPTO_SALSA20_X86_64 is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set
+# CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set
+# CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set
+# CONFIG_CRYPTO_TEA is not set
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_X86_64=m
+CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
+CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+# CONFIG_CRYPTO_ZLIB is not set
+# CONFIG_CRYPTO_LZO is not set
+# CONFIG_CRYPTO_LZ4 is not set
+# CONFIG_CRYPTO_LZ4HC is not set
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_DRBG_MENU=m
+CONFIG_CRYPTO_DRBG_HMAC=y
+CONFIG_CRYPTO_DRBG_HASH=y
+CONFIG_CRYPTO_DRBG_CTR=y
+CONFIG_CRYPTO_DRBG=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_USER_API_RNG=m
+CONFIG_CRYPTO_HASH_INFO=y
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_DEV_CCP=y
+CONFIG_CRYPTO_DEV_CCP_DD=m
+CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
+CONFIG_CRYPTO_DEV_QAT=m
+CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
+CONFIG_ASYMMETRIC_KEY_TYPE=y
+CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
+CONFIG_PUBLIC_KEY_ALGO_RSA=y
+CONFIG_X509_CERTIFICATE_PARSER=y
+CONFIG_PKCS7_MESSAGE_PARSER=y
+# CONFIG_PKCS7_TEST_KEY is not set
+CONFIG_SIGNED_PE_FILE_VERIFICATION=y
+CONFIG_HAVE_KVM=y
+CONFIG_KVM_COMPAT=y
+CONFIG_VIRTUALIZATION=y
+# CONFIG_KVM is not set
+# CONFIG_BINARY_PRINTF is not set
+
+#
+# Library routines
+#
+CONFIG_RAID6_PQ=m
+CONFIG_BITREVERSE=y
+# CONFIG_HAVE_ARCH_BITREVERSE is not set
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_NET_UTILS=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_IO=y
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
+CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=y
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+# CONFIG_CRC32_SELFTEST is not set
+CONFIG_CRC32_SLICEBY8=y
+# CONFIG_CRC32_SLICEBY4 is not set
+# CONFIG_CRC32_SARWATE is not set
+# CONFIG_CRC32_BIT is not set
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+# CONFIG_CRC8 is not set
+# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
+# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_LZ4_COMPRESS=m
+CONFIG_LZ4_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_DECOMPRESS_LZ4=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_REED_SOLOMON=m
+CONFIG_REED_SOLOMON_DEC16=y
+CONFIG_BCH=m
+CONFIG_BCH_CONST_PARAMS=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_BTREE=y
+CONFIG_INTERVAL_TREE=y
+CONFIG_ASSOCIATIVE_ARRAY=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_HAS_DMA=y
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_CPU_RMAP=y
+CONFIG_DQL=y
+CONFIG_GLOB=y
+# CONFIG_GLOB_SELFTEST is not set
+CONFIG_NLATTR=y
+CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
+CONFIG_LRU_CACHE=m
+CONFIG_AVERAGE=y
+CONFIG_CLZ_TAB=y
+CONFIG_CORDIC=m
+# CONFIG_DDR is not set
+CONFIG_MPILIB=y
+CONFIG_SIGNATURE=y
+CONFIG_OID_REGISTRY=y
+CONFIG_UCS2_STRING=y
+CONFIG_FONT_SUPPORT=y
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_ARCH_HAS_SG_CHAIN=y
diff --git a/cauldron/etc/x86_64/linux-4.1.13.config
b/cauldron/etc/x86_64/linux-4.1.13.config
new file mode 100644
index 0000000..7ade7a7
--- /dev/null
+++ b/cauldron/etc/x86_64/linux-4.1.13.config
@@ -0,0 +1,6139 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/x86 4.1.13 Kernel Configuration
+#
+CONFIG_64BIT=y
+CONFIG_X86_64=y
+CONFIG_X86=y
+CONFIG_INSTRUCTION_DECODER=y
+CONFIG_PERF_EVENTS_INTEL_UNCORE=y
+CONFIG_OUTPUT_FORMAT="elf64-x86-64"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_MMU=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
+CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
+CONFIG_ZONE_DMA32=y
+CONFIG_AUDIT_ARCH=y
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_HAVE_INTEL_TXT=y
+CONFIG_X86_64_SMP=y
+CONFIG_X86_HT=y
+CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi
-fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9
-fcall-saved-r10 -fcall-saved-r11"
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_PGTABLE_LEVELS=4
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_IRQ_WORK=y
+CONFIG_BUILDTIME_EXTABLE_SORT=y
+
+#
+# General setup
+#
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+# CONFIG_COMPILE_TEST is not set
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_HAVE_KERNEL_LZ4=y
+# CONFIG_KERNEL_GZIP is not set
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+CONFIG_KERNEL_XZ=y
+# CONFIG_KERNEL_LZO is not set
+# CONFIG_KERNEL_LZ4 is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+# CONFIG_CROSS_MEMORY_ATTACH is not set
+CONFIG_FHANDLE=y
+# CONFIG_USELIB is not set
+CONFIG_AUDIT=y
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_WATCH=y
+CONFIG_AUDIT_TREE=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_LEGACY_ALLOC_HWIRQ=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_GENERIC_MSI_IRQ=y
+# CONFIG_IRQ_DOMAIN_DEBUG is not set
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_ARCH_CLOCKSOURCE_DATA=y
+CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+
+#
+# Timers subsystem
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ_COMMON=y
+# CONFIG_HZ_PERIODIC is not set
+CONFIG_NO_HZ_IDLE=y
+# CONFIG_NO_HZ_FULL is not set
+# CONFIG_NO_HZ is not set
+CONFIG_HIGH_RES_TIMERS=y
+
+#
+# CPU/Task time and stats accounting
+#
+CONFIG_TICK_CPU_ACCOUNTING=y
+# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+CONFIG_SRCU=y
+# CONFIG_TASKS_RCU is not set
+CONFIG_RCU_STALL_COMMON=y
+# CONFIG_RCU_USER_QS is not set
+CONFIG_RCU_FANOUT=64
+CONFIG_RCU_FANOUT_LEAF=16
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_RCU_FAST_NO_HZ is not set
+# CONFIG_TREE_RCU_TRACE is not set
+CONFIG_RCU_KTHREAD_PRIO=0
+# CONFIG_RCU_NOCB_CPU is not set
+# CONFIG_RCU_EXPEDITE_BOOT is not set
+CONFIG_BUILD_BIN2C=y
+CONFIG_IKCONFIG=m
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
+CONFIG_ARCH_SUPPORTS_INT128=y
+CONFIG_NUMA_BALANCING=y
+CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
+CONFIG_CGROUPS=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CPUSETS=y
+# CONFIG_PROC_PID_CPUSET is not set
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_PAGE_COUNTER=y
+CONFIG_MEMCG=y
+# CONFIG_MEMCG_SWAP is not set
+# CONFIG_MEMCG_KMEM is not set
+# CONFIG_CGROUP_HUGETLB is not set
+# CONFIG_CGROUP_PERF is not set
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_BLK_CGROUP=y
+# CONFIG_DEBUG_BLK_CGROUP is not set
+CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+CONFIG_SCHED_AUTOGROUP=y
+# CONFIG_SYSFS_DEPRECATED is not set
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+CONFIG_RD_LZ4=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_HAVE_UID16=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
+CONFIG_BPF=y
+CONFIG_EXPERT=y
+# CONFIG_UID16 is not set
+CONFIG_MULTIUSER=y
+# CONFIG_SGETMASK_SYSCALL is not set
+# CONFIG_SYSFS_SYSCALL is not set
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_ADVISE_SYSCALLS=y
+CONFIG_PCI_QUIRKS=y
+# CONFIG_EMBEDDED is not set
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+CONFIG_SLUB_CPU_PARTIAL=y
+# CONFIG_SYSTEM_TRUSTED_KEYRING is not set
+# CONFIG_PROFILING is not set
+CONFIG_HAVE_OPROFILE=y
+CONFIG_OPROFILE_NMI_TIMER=y
+# CONFIG_KPROBES is not set
+CONFIG_JUMP_LABEL=y
+# CONFIG_UPROBES is not set
+# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_ARCH_USE_BUILTIN_BSWAP=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_KPROBES_ON_FTRACE=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_PERF_EVENTS_NMI=y
+CONFIG_HAVE_PERF_REGS=y
+CONFIG_HAVE_PERF_USER_STACK_DUMP=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
+CONFIG_HAVE_CMPXCHG_LOCAL=y
+CONFIG_HAVE_CMPXCHG_DOUBLE=y
+CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
+CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_SECCOMP_FILTER=y
+CONFIG_HAVE_CC_STACKPROTECTOR=y
+CONFIG_CC_STACKPROTECTOR=y
+# CONFIG_CC_STACKPROTECTOR_NONE is not set
+CONFIG_CC_STACKPROTECTOR_REGULAR=y
+# CONFIG_CC_STACKPROTECTOR_STRONG is not set
+CONFIG_HAVE_CONTEXT_TRACKING=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_HAVE_ARCH_HUGE_VMAP=y
+CONFIG_HAVE_ARCH_SOFT_DIRTY=y
+CONFIG_MODULES_USE_ELF_RELA=y
+CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_COMPAT_OLD_SIGACTION=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+# CONFIG_MODULE_SIG is not set
+# CONFIG_MODULE_COMPRESS is not set
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
+CONFIG_BLK_DEV_INTEGRITY=y
+CONFIG_BLK_DEV_THROTTLING=y
+# CONFIG_BLK_CMDLINE_PARSER is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_AIX_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+# CONFIG_CMDLINE_PARTITION is not set
+CONFIG_BLOCK_COMPAT=y
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_CFQ_GROUP_IOSCHED=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_PADATA=y
+CONFIG_ASN1=y
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+CONFIG_INLINE_READ_UNLOCK=y
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+CONFIG_INLINE_WRITE_UNLOCK=y
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_LOCK_SPIN_ON_OWNER=y
+CONFIG_ARCH_USE_QUEUE_RWLOCK=y
+CONFIG_QUEUE_RWLOCK=y
+CONFIG_FREEZER=y
+
+#
+# Processor type and features
+#
+CONFIG_ZONE_DMA=y
+CONFIG_SMP=y
+CONFIG_X86_FEATURE_NAMES=y
+# CONFIG_X86_X2APIC is not set
+CONFIG_X86_MPPARSE=y
+CONFIG_X86_EXTENDED_PLATFORM=y
+CONFIG_X86_VSMP=y
+# CONFIG_X86_GOLDFISH is not set
+CONFIG_X86_INTEL_LPSS=y
+CONFIG_X86_AMD_PLATFORM_DEVICE=y
+CONFIG_IOSF_MBI=y
+# CONFIG_IOSF_MBI_DEBUG is not set
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_HYPERVISOR_GUEST=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_DEBUG is not set
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+# CONFIG_XEN is not set
+CONFIG_KVM_GUEST=y
+# CONFIG_KVM_DEBUG_FS is not set
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
+CONFIG_PARAVIRT_CLOCK=y
+CONFIG_NO_BOOTMEM=y
+# CONFIG_MK8 is not set
+# CONFIG_MPSC is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_MATOM is not set
+CONFIG_GENERIC_CPU=y
+CONFIG_X86_INTERNODE_CACHE_SHIFT=12
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_TSC=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=64
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_PROCESSOR_SELECT=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_HPET_TIMER=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_DMI=y
+CONFIG_GART_IOMMU=y
+CONFIG_CALGARY_IOMMU=y
+CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
+CONFIG_SWIOTLB=y
+CONFIG_IOMMU_HELPER=y
+# CONFIG_MAXSMP is not set
+CONFIG_NR_CPUS=64
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_MC=y
+# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_VOLUNTARY=y
+# CONFIG_PREEMPT is not set
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_AMD=y
+CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_X86_MCE_INJECT is not set
+CONFIG_X86_THERMAL_VECTOR=y
+# CONFIG_X86_16BIT is not set
+CONFIG_X86_VSYSCALL_EMULATION=y
+CONFIG_I8K=m
+CONFIG_MICROCODE=m
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_X86_MSR=y
+CONFIG_X86_CPUID=y
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_X86_DIRECT_GBPAGES=y
+CONFIG_NUMA=y
+CONFIG_AMD_NUMA=y
+CONFIG_X86_64_ACPI_NUMA=y
+CONFIG_NODES_SPAN_OTHER_NODES=y
+# CONFIG_NUMA_EMU is not set
+CONFIG_NODES_SHIFT=6
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+# CONFIG_ARCH_MEMORY_PROBE is not set
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_NEED_MULTIPLE_NODES=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
+CONFIG_ARCH_DISCARD_MEMBLOCK=y
+CONFIG_MEMORY_ISOLATION=y
+# CONFIG_MOVABLE_NODE is not set
+CONFIG_HAVE_BOOTMEM_INFO_NODE=y
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTPLUG_SPARSE=y
+CONFIG_MEMORY_HOTREMOVE=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
+CONFIG_MEMORY_BALLOON=y
+CONFIG_BALLOON_COMPACTION=y
+CONFIG_COMPACTION=y
+CONFIG_MIGRATION=y
+CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_NEED_BOUNCE_POOL=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+# CONFIG_MEMORY_FAILURE is not set
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+CONFIG_CLEANCACHE=y
+CONFIG_FRONTSWAP=y
+# CONFIG_CMA is not set
+CONFIG_MEM_SOFT_DIRTY=y
+# CONFIG_ZSWAP is not set
+CONFIG_ZPOOL=m
+CONFIG_ZBUD=m
+CONFIG_ZSMALLOC=m
+# CONFIG_PGTABLE_MAPPING is not set
+# CONFIG_ZSMALLOC_STAT is not set
+CONFIG_GENERIC_EARLY_IOREMAP=y
+CONFIG_X86_PMEM_LEGACY=y
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_RESERVE_LOW=64
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_ARCH_RANDOM=y
+CONFIG_X86_SMAP=y
+# CONFIG_X86_INTEL_MPX is not set
+CONFIG_EFI=y
+CONFIG_EFI_STUB=y
+# CONFIG_EFI_MIXED is not set
+CONFIG_SECCOMP=y
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+CONFIG_HZ_1000=y
+CONFIG_HZ=1000
+CONFIG_SCHED_HRTICK=y
+# CONFIG_KEXEC is not set
+# CONFIG_CRASH_DUMP is not set
+CONFIG_PHYSICAL_START=0x1000000
+CONFIG_RELOCATABLE=y
+# CONFIG_RANDOMIZE_BASE is not set
+CONFIG_PHYSICAL_ALIGN=0x200000
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
+# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_HAVE_LIVEPATCH=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y
+
+#
+# Power management and ACPI options
+#
+CONFIG_ARCH_HIBERNATION_HEADER=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATE_CALLBACKS=y
+CONFIG_HIBERNATION=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_AUTOSLEEP=y
+# CONFIG_PM_WAKELOCKS is not set
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_CLK=y
+CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
+CONFIG_ACPI=y
+CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
+CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
+CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
+CONFIG_ACPI_SLEEP=y
+# CONFIG_ACPI_PROCFS_POWER is not set
+# CONFIG_ACPI_EC_DEBUGFS is not set
+CONFIG_ACPI_AC=y
+CONFIG_ACPI_BATTERY=y
+CONFIG_ACPI_BUTTON=y
+CONFIG_ACPI_VIDEO=y
+CONFIG_ACPI_FAN=y
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_PROCESSOR=y
+CONFIG_ACPI_IPMI=m
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_THERMAL=y
+CONFIG_ACPI_NUMA=y
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+# CONFIG_ACPI_INITRD_TABLE_OVERRIDE is not set
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_PCI_SLOT=y
+CONFIG_X86_PM_TIMER=y
+CONFIG_ACPI_CONTAINER=y
+CONFIG_ACPI_HOTPLUG_MEMORY=y
+CONFIG_ACPI_HOTPLUG_IOAPIC=y
+CONFIG_ACPI_SBS=m
+CONFIG_ACPI_HED=y
+# CONFIG_ACPI_CUSTOM_METHOD is not set
+CONFIG_ACPI_BGRT=y
+# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
+CONFIG_HAVE_ACPI_APEI=y
+CONFIG_HAVE_ACPI_APEI_NMI=y
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_GHES=y
+CONFIG_ACPI_APEI_PCIEAER=y
+# CONFIG_ACPI_APEI_EINJ is not set
+# CONFIG_ACPI_APEI_ERST_DEBUG is not set
+CONFIG_ACPI_EXTLOG=m
+# CONFIG_PMIC_OPREGION is not set
+CONFIG_SFI=y
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+# CONFIG_CPU_FREQ_STAT is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+
+#
+# CPU frequency scaling drivers
+#
+CONFIG_X86_INTEL_PSTATE=y
+CONFIG_X86_PCC_CPUFREQ=m
+CONFIG_X86_ACPI_CPUFREQ=m
+CONFIG_X86_ACPI_CPUFREQ_CPB=y
+CONFIG_X86_POWERNOW_K8=m
+CONFIG_X86_AMD_FREQ_SENSITIVITY=m
+CONFIG_X86_SPEEDSTEP_CENTRINO=m
+CONFIG_X86_P4_CLOCKMOD=m
+
+#
+# shared options
+#
+CONFIG_X86_SPEEDSTEP_LIB=m
+
+#
+# CPU Idle
+#
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
+CONFIG_INTEL_IDLE=y
+
+#
+# Memory power savings
+#
+CONFIG_I7300_IDLE_IOAT_CHANNEL=y
+CONFIG_I7300_IDLE=m
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_DOMAINS=y
+# CONFIG_PCI_CNB20LE_QUIRK is not set
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=y
+CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_PERFORMANCE is not set
+CONFIG_PCIE_PME=y
+CONFIG_PCI_BUS_ADDR_T_64BIT=y
+CONFIG_PCI_MSI=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_REALLOC_ENABLE_AUTO=y
+CONFIG_PCI_STUB=m
+CONFIG_HT_IRQ=y
+CONFIG_PCI_ATS=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_PRI=y
+CONFIG_PCI_PASID=y
+CONFIG_PCI_LABEL=y
+
+#
+# PCI host controller drivers
+#
+CONFIG_ISA_DMA_API=y
+CONFIG_AMD_NB=y
+CONFIG_PCCARD=m
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_PCCARD_NONSTATIC=y
+CONFIG_HOTPLUG_PCI=y
+# CONFIG_HOTPLUG_PCI_ACPI is not set
+# CONFIG_HOTPLUG_PCI_CPCI is not set
+# CONFIG_HOTPLUG_PCI_SHPC is not set
+CONFIG_RAPIDIO=m
+CONFIG_RAPIDIO_TSI721=m
+CONFIG_RAPIDIO_DISC_TIMEOUT=30
+CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS=y
+CONFIG_RAPIDIO_DMA_ENGINE=y
+# CONFIG_RAPIDIO_DEBUG is not set
+CONFIG_RAPIDIO_ENUM_BASIC=m
+
+#
+# RapidIO Switch drivers
+#
+CONFIG_RAPIDIO_TSI57X=m
+CONFIG_RAPIDIO_CPS_XX=m
+CONFIG_RAPIDIO_TSI568=m
+CONFIG_RAPIDIO_CPS_GEN2=m
+CONFIG_X86_SYSFB=y
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_COMPAT_BINFMT_ELF=y
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_BINFMT_SCRIPT=y
+# CONFIG_HAVE_AOUT is not set
+CONFIG_BINFMT_MISC=m
+CONFIG_COREDUMP=y
+CONFIG_IA32_EMULATION=y
+# CONFIG_IA32_AOUT is not set
+CONFIG_X86_X32=y
+CONFIG_COMPAT=y
+CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_KEYS_COMPAT=y
+CONFIG_X86_DEV_DMA_OPS=y
+CONFIG_PMC_ATOM=y
+CONFIG_NET=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_DIAG=y
+CONFIG_UNIX=y
+CONFIG_UNIX_DIAG=y
+CONFIG_XFRM=y
+CONFIG_XFRM_ALGO=y
+CONFIG_XFRM_USER=y
+CONFIG_XFRM_SUB_POLICY=y
+CONFIG_XFRM_MIGRATE=y
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=m
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+# CONFIG_IP_FIB_TRIE_STATS is not set
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_CLASSID=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IP_TUNNEL=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+CONFIG_IP_MROUTE=y
+CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_SYN_COOKIES=y
+CONFIG_NET_IPVTI=m
+CONFIG_NET_UDP_TUNNEL=m
+CONFIG_NET_FOU=m
+CONFIG_NET_FOU_IP_TUNNELS=y
+CONFIG_GENEVE=m
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_LRO=m
+CONFIG_INET_DIAG=m
+CONFIG_INET_TCP_DIAG=m
+CONFIG_INET_UDP_DIAG=m
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_TCP_CONG_DCTCP=m
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+CONFIG_TCP_MD5SIG=y
+CONFIG_IPV6=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_VTI=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_GRE=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+CONFIG_IPV6_MROUTE=y
+CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IPV6_PIMSM_V2=y
+CONFIG_NETLABEL=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NET_PTP_CLASSIFY=y
+# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=m
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_ACCT=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_LOG_COMMON=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+# CONFIG_NF_CONNTRACK_PROCFS is not set
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMEOUT=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CONNTRACK_LABELS=y
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_CT_NETLINK_TIMEOUT=m
+CONFIG_NF_CT_NETLINK_HELPER=m
+CONFIG_NETFILTER_NETLINK_QUEUE_CT=y
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_REDIRECT=m
+CONFIG_NETFILTER_SYNPROXY=m
+CONFIG_NF_TABLES=m
+CONFIG_NF_TABLES_INET=m
+CONFIG_NFT_EXTHDR=m
+CONFIG_NFT_META=m
+CONFIG_NFT_CT=m
+CONFIG_NFT_RBTREE=m
+CONFIG_NFT_HASH=m
+CONFIG_NFT_COUNTER=m
+CONFIG_NFT_LOG=m
+CONFIG_NFT_LIMIT=m
+CONFIG_NFT_MASQ=m
+CONFIG_NFT_REDIR=m
+CONFIG_NFT_NAT=m
+CONFIG_NFT_QUEUE=m
+CONFIG_NFT_REJECT=m
+CONFIG_NFT_REJECT_INET=m
+CONFIG_NFT_COMPAT=m
+CONFIG_NETFILTER_XTABLES=y
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+# CONFIG_NETFILTER_XT_SET is not set
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+# CONFIG_NETFILTER_XT_TARGET_CT is not set
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_HMARK=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_NAT=m
+CONFIG_NETFILTER_XT_TARGET_NETMAP=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_BPF=m
+CONFIG_NETFILTER_XT_MATCH_CGROUP=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ECN=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+# CONFIG_NETFILTER_XT_MATCH_IPVS is not set
+CONFIG_NETFILTER_XT_MATCH_L2TP=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_NFACCT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_MAX=256
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPMARK=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_MAC=m
+CONFIG_IP_SET_HASH_NETPORTNET=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETNET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETIFACE=m
+CONFIG_IP_SET_LIST_SET=m
+CONFIG_IP_VS=m
+CONFIG_IP_VS_IPV6=y
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+
+#
+# IPVS transport protocol load balancing support
+#
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+
+#
+# IPVS scheduler
+#
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_FO=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+
+#
+# IPVS SH scheduler
+#
+CONFIG_IP_VS_SH_TAB_BITS=8
+
+#
+# IPVS application helper
+#
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_NFCT=y
+CONFIG_IP_VS_PE_SIP=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_TABLES_IPV4=m
+CONFIG_NFT_CHAIN_ROUTE_IPV4=m
+CONFIG_NFT_REJECT_IPV4=m
+CONFIG_NF_TABLES_ARP=m
+CONFIG_NF_LOG_ARP=m
+CONFIG_NF_LOG_IPV4=m
+CONFIG_NF_REJECT_IPV4=m
+CONFIG_NF_NAT_IPV4=m
+CONFIG_NFT_CHAIN_NAT_IPV4=m
+CONFIG_NF_NAT_MASQUERADE_IPV4=m
+CONFIG_NFT_MASQ_IPV4=m
+CONFIG_NFT_REDIR_IPV4=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_RPFILTER=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_SYNPROXY=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_NF_TABLES_IPV6=m
+CONFIG_NFT_CHAIN_ROUTE_IPV6=m
+CONFIG_NFT_REJECT_IPV6=m
+CONFIG_NF_REJECT_IPV6=m
+CONFIG_NF_LOG_IPV6=m
+CONFIG_NF_NAT_IPV6=m
+CONFIG_NFT_CHAIN_NAT_IPV6=m
+CONFIG_NF_NAT_MASQUERADE_IPV6=m
+CONFIG_NFT_MASQ_IPV6=m
+CONFIG_NFT_REDIR_IPV6=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RPFILTER=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_TARGET_SYNPROXY=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+CONFIG_IP6_NF_TARGET_NPT=m
+
+#
+# DECnet: Netfilter Configuration
+#
+CONFIG_DECNET_NF_GRABULATOR=m
+CONFIG_NF_TABLES_BRIDGE=m
+CONFIG_NFT_BRIDGE_META=m
+CONFIG_NFT_BRIDGE_REJECT=m
+CONFIG_NF_LOG_BRIDGE=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_TFRC_LIB=y
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
+# CONFIG_SCTP_COOKIE_HMAC_MD5 is not set
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+CONFIG_RDS=m
+# CONFIG_RDS_RDMA is not set
+CONFIG_RDS_TCP=m
+# CONFIG_RDS_DEBUG is not set
+CONFIG_TIPC=m
+# CONFIG_TIPC_MEDIA_IB is not set
+CONFIG_TIPC_MEDIA_UDP=y
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_L2TP=m
+# CONFIG_L2TP_DEBUGFS is not set
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
+CONFIG_STP=m
+CONFIG_GARP=m
+CONFIG_MRP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_HAVE_NET_DSA=y
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+CONFIG_DECNET=m
+CONFIG_DECNET_ROUTER=y
+CONFIG_LLC=m
+CONFIG_LLC2=m
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_X25=m
+CONFIG_LAPB=m
+CONFIG_PHONET=m
+CONFIG_6LOWPAN=m
+CONFIG_6LOWPAN_NHC=m
+CONFIG_6LOWPAN_NHC_DEST=m
+CONFIG_6LOWPAN_NHC_FRAGMENT=m
+CONFIG_6LOWPAN_NHC_HOP=m
+CONFIG_6LOWPAN_NHC_IPV6=m
+CONFIG_6LOWPAN_NHC_MOBILITY=m
+CONFIG_6LOWPAN_NHC_ROUTING=m
+CONFIG_6LOWPAN_NHC_UDP=m
+CONFIG_IEEE802154=m
+CONFIG_IEEE802154_SOCKET=m
+# CONFIG_IEEE802154_6LOWPAN is not set
+# CONFIG_MAC802154 is not set
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_CODEL=m
+CONFIG_NET_SCH_FQ_CODEL=m
+CONFIG_NET_SCH_FQ=m
+CONFIG_NET_SCH_HHF=m
+CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_SCH_PLUG=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_PERF=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=m
+CONFIG_NET_CLS_BPF=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_TEXT=m
+# CONFIG_NET_EMATCH_IPSET is not set
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+# CONFIG_NET_ACT_SIMP is not set
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_NET_ACT_VLAN=m
+CONFIG_NET_ACT_BPF=m
+# CONFIG_NET_ACT_CONNMARK is not set
+# CONFIG_NET_CLS_IND is not set
+CONFIG_NET_SCH_FIFO=y
+CONFIG_DCB=y
+CONFIG_DNS_RESOLVER=y
+CONFIG_BATMAN_ADV=m
+CONFIG_BATMAN_ADV_BLA=y
+CONFIG_BATMAN_ADV_DAT=y
+CONFIG_BATMAN_ADV_NC=y
+CONFIG_BATMAN_ADV_MCAST=y
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_OPENVSWITCH=m
+CONFIG_OPENVSWITCH_GRE=m
+CONFIG_OPENVSWITCH_VXLAN=m
+CONFIG_OPENVSWITCH_GENEVE=m
+CONFIG_VSOCKETS=m
+# CONFIG_VMWARE_VMCI_VSOCKETS is not set
+CONFIG_NETLINK_MMAP=y
+CONFIG_NETLINK_DIAG=m
+CONFIG_MPLS=y
+CONFIG_NET_MPLS_GSO=m
+# CONFIG_MPLS_ROUTING is not set
+CONFIG_HSR=m
+# CONFIG_NET_SWITCHDEV is not set
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_CGROUP_NET_CLASSID=y
+CONFIG_NET_RX_BUSY_POLL=y
+CONFIG_BQL=y
+CONFIG_BPF_JIT=y
+CONFIG_NET_FLOW_LIMIT=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=m
+CONFIG_BT_BREDR=y
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+# CONFIG_BT_CMTP is not set
+CONFIG_BT_HIDP=m
+CONFIG_BT_LE=y
+CONFIG_BT_6LOWPAN=m
+# CONFIG_BT_SELFTEST is not set
+CONFIG_BT_DEBUGFS=y
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_INTEL=m
+CONFIG_BT_BCM=m
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTUSB_BCM=y
+# CONFIG_BT_HCIBTSDIO is not set
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIUART_3WIRE=y
+# CONFIG_BT_HCIUART_INTEL is not set
+# CONFIG_BT_HCIUART_BCM is not set
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBTUART=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+# CONFIG_BT_MRVL_SDIO is not set
+CONFIG_BT_ATH3K=m
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+# CONFIG_RXKAD is not set
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=y
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+CONFIG_CFG80211_WEXT_EXPORT=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=y
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL_HT=y
+CONFIG_MAC80211_RC_MINSTREL_VHT=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_MESSAGE_TRACING is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_RFKILL=y
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+# CONFIG_RFKILL_GPIO is not set
+CONFIG_NET_9P=m
+# CONFIG_NET_9P_VIRTIO is not set
+# CONFIG_NET_9P_RDMA is not set
+# CONFIG_NET_9P_DEBUG is not set
+CONFIG_CAIF=m
+# CONFIG_CAIF_DEBUG is not set
+CONFIG_CAIF_NETDEV=m
+CONFIG_CAIF_USB=m
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+CONFIG_NFC=m
+CONFIG_NFC_DIGITAL=m
+CONFIG_NFC_NCI=m
+# CONFIG_NFC_NCI_SPI is not set
+CONFIG_NFC_HCI=m
+CONFIG_NFC_SHDLC=y
+
+#
+# Near Field Communication (NFC) devices
+#
+CONFIG_NFC_PN533=m
+# CONFIG_NFC_TRF7970A is not set
+# CONFIG_NFC_SIM is not set
+CONFIG_NFC_PORT100=m
+CONFIG_NFC_PN544=m
+CONFIG_NFC_PN544_I2C=m
+CONFIG_NFC_MICROREAD=m
+CONFIG_NFC_MICROREAD_I2C=m
+CONFIG_NFC_MRVL=m
+CONFIG_NFC_MRVL_USB=m
+CONFIG_NFC_ST21NFCA=m
+CONFIG_NFC_ST21NFCA_I2C=m
+CONFIG_NFC_ST21NFCB=m
+CONFIG_NFC_ST21NFCB_I2C=m
+# CONFIG_NFC_NXP_NCI is not set
+CONFIG_HAVE_BPF_JIT=y
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER=y
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
+CONFIG_WANT_DEV_COREDUMP=y
+# CONFIG_ALLOW_DEV_COREDUMP is not set
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_GENERIC_CPU_DEVICES is not set
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_SPI=y
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGMAP_IRQ=y
+CONFIG_DMA_SHARED_BUFFER=y
+# CONFIG_FENCE_TRACE is not set
+
+#
+# Bus devices
+#
+CONFIG_CONNECTOR=y
+# CONFIG_PROC_EVENTS is not set
+CONFIG_MTD=m
+# CONFIG_MTD_TESTS is not set
+CONFIG_MTD_REDBOOT_PARTS=m
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+CONFIG_MTD_CMDLINE_PARTS=m
+CONFIG_MTD_AR7_PARTS=m
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_FTL=m
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_INFTL=m
+CONFIG_RFD_FTL=m
+CONFIG_SSFDC=m
+CONFIG_SM_FTL=m
+# CONFIG_MTD_OOPS is not set
+CONFIG_MTD_SWAP=m
+# CONFIG_MTD_PARTITIONED_MASTER is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_GEN_PROBE=m
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_NOSWAP=y
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+CONFIG_MTD_CFI_GEOMETRY=y
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+CONFIG_MTD_MAP_BANK_WIDTH_8=y
+CONFIG_MTD_MAP_BANK_WIDTH_16=y
+CONFIG_MTD_MAP_BANK_WIDTH_32=y
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+CONFIG_MTD_CFI_I4=y
+CONFIG_MTD_CFI_I8=y
+# CONFIG_MTD_OTP is not set
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_ROM=m
+CONFIG_MTD_ABSENT=m
+
+#
+# Mapping drivers for chip access
+#
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+CONFIG_MTD_PHYSMAP=m
+# CONFIG_MTD_PHYSMAP_COMPAT is not set
+CONFIG_MTD_SBC_GXX=m
+CONFIG_MTD_AMD76XROM=m
+CONFIG_MTD_ICHXROM=m
+CONFIG_MTD_ESB2ROM=m
+CONFIG_MTD_CK804XROM=m
+CONFIG_MTD_SCB2_FLASH=m
+CONFIG_MTD_NETtel=m
+CONFIG_MTD_L440GX=m
+CONFIG_MTD_PCI=m
+CONFIG_MTD_PCMCIA=m
+# CONFIG_MTD_PCMCIA_ANONYMOUS is not set
+# CONFIG_MTD_GPIO_ADDR is not set
+CONFIG_MTD_INTEL_VR_NOR=m
+CONFIG_MTD_PLATRAM=m
+CONFIG_MTD_LATCH_ADDR=m
+
+#
+# Self-contained MTD device drivers
+#
+CONFIG_MTD_PMC551=m
+# CONFIG_MTD_PMC551_BUGFIX is not set
+# CONFIG_MTD_PMC551_DEBUG is not set
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SST25L is not set
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_PHRAM=m
+# CONFIG_MTD_MTDRAM is not set
+CONFIG_MTD_BLOCK2MTD=m
+
+#
+# Disk-On-Chip Device Drivers
+#
+CONFIG_MTD_DOCG3=m
+CONFIG_BCH_CONST_M=14
+CONFIG_BCH_CONST_T=4
+CONFIG_MTD_NAND_ECC=m
+CONFIG_MTD_NAND_ECC_SMC=y
+CONFIG_MTD_NAND=m
+CONFIG_MTD_NAND_BCH=m
+CONFIG_MTD_NAND_ECC_BCH=y
+CONFIG_MTD_SM_COMMON=m
+CONFIG_MTD_NAND_DENALI=m
+CONFIG_MTD_NAND_DENALI_PCI=m
+CONFIG_MTD_NAND_DENALI_DT=m
+CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018
+# CONFIG_MTD_NAND_GPIO is not set
+# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_RICOH=m
+CONFIG_MTD_NAND_DISKONCHIP=m
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+CONFIG_MTD_NAND_DOCG4=m
+CONFIG_MTD_NAND_CAFE=m
+CONFIG_MTD_NAND_NANDSIM=m
+CONFIG_MTD_NAND_PLATFORM=m
+CONFIG_MTD_NAND_HISI504=m
+CONFIG_MTD_ONENAND=m
+CONFIG_MTD_ONENAND_VERIFY_WRITE=y
+CONFIG_MTD_ONENAND_GENERIC=m
+CONFIG_MTD_ONENAND_OTP=y
+CONFIG_MTD_ONENAND_2X_PROGRAM=y
+
+#
+# LPDDR & LPDDR2 PCM memory drivers
+#
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_QINFO_PROBE=m
+CONFIG_MTD_SPI_NOR=m
+# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_LIMIT=20
+# CONFIG_MTD_UBI_FASTMAP is not set
+# CONFIG_MTD_UBI_GLUEBI is not set
+CONFIG_MTD_UBI_BLOCK=y
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_GSC is not set
+CONFIG_PARPORT_AX88796=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_PNP=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+
+#
+# Protocols
+#
+CONFIG_PNPACPI=y
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_NULL_BLK is not set
+CONFIG_BLK_DEV_FD=m
+CONFIG_PARIDE=m
+
+#
+# Parallel IDE high-level drivers
+#
+CONFIG_PARIDE_PD=m
+CONFIG_PARIDE_PCD=m
+CONFIG_PARIDE_PF=m
+CONFIG_PARIDE_PT=m
+CONFIG_PARIDE_PG=m
+
+#
+# Parallel IDE protocol modules
+#
+CONFIG_PARIDE_ATEN=m
+CONFIG_PARIDE_BPCK=m
+CONFIG_PARIDE_COMM=m
+CONFIG_PARIDE_DSTR=m
+CONFIG_PARIDE_FIT2=m
+CONFIG_PARIDE_FIT3=m
+CONFIG_PARIDE_EPAT=m
+CONFIG_PARIDE_EPATC8=y
+CONFIG_PARIDE_EPIA=m
+CONFIG_PARIDE_FRIQ=m
+CONFIG_PARIDE_FRPW=m
+CONFIG_PARIDE_KBIC=m
+CONFIG_PARIDE_KTTI=m
+CONFIG_PARIDE_ON20=m
+CONFIG_PARIDE_ON26=m
+CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
+CONFIG_ZRAM=m
+CONFIG_ZRAM_LZ4_COMPRESS=y
+# CONFIG_ZRAM_DEBUG is not set
+CONFIG_BLK_CPQ_CISS_DA=m
+CONFIG_CISS_SCSI_TAPE=y
+CONFIG_BLK_DEV_DAC960=m
+CONFIG_BLK_DEV_UMEM=m
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DRBD=m
+# CONFIG_DRBD_FAULT_INJECTION is not set
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_NVME=m
+CONFIG_BLK_DEV_SKD=m
+# CONFIG_BLK_DEV_OSD is not set
+CONFIG_BLK_DEV_SX8=m
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_BLK_DEV_RAM_DAX=y
+# CONFIG_BLK_DEV_PMEM is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+CONFIG_CDROM_PKTCDVD_WCACHE=y
+CONFIG_ATA_OVER_ETH=m
+# CONFIG_VIRTIO_BLK is not set
+CONFIG_BLK_DEV_HD=y
+CONFIG_BLK_DEV_RBD=m
+CONFIG_BLK_DEV_RSXX=m
+
+#
+# Misc devices
+#
+CONFIG_SENSORS_LIS3LV02D=m
+# CONFIG_AD525X_DPOT is not set
+# CONFIG_DUMMY_IRQ is not set
+CONFIG_IBM_ASM=m
+CONFIG_PHANTOM=m
+CONFIG_SGI_IOC4=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
+CONFIG_ICS932S401=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_HP_ILO=m
+CONFIG_APDS9802ALS=m
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_BH1780=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_APDS990X=m
+# CONFIG_HMC6352 is not set
+# CONFIG_DS1682 is not set
+# CONFIG_TI_DAC7512 is not set
+CONFIG_VMWARE_BALLOON=m
+# CONFIG_BMP085_I2C is not set
+# CONFIG_BMP085_SPI is not set
+CONFIG_USB_SWITCH_FSA9480=m
+# CONFIG_LATTICE_ECP3_CONFIG is not set
+CONFIG_SRAM=y
+CONFIG_C2PORT=m
+CONFIG_C2PORT_DURAMAR_2150=m
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_EEPROM_93XX46=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+
+#
+# Texas Instruments shared transport line discipline
+#
+# CONFIG_TI_ST is not set
+# CONFIG_SENSORS_LIS3_I2C is not set
+
+#
+# Altera FPGA firmware download module
+#
+CONFIG_ALTERA_STAPL=m
+CONFIG_VMWARE_VMCI=m
+
+#
+# Intel MIC Bus Driver
+#
+CONFIG_INTEL_MIC_BUS=m
+
+#
+# Intel MIC Host Driver
+#
+CONFIG_INTEL_MIC_HOST=m
+
+#
+# Intel MIC Card Driver
+#
+CONFIG_INTEL_MIC_CARD=m
+CONFIG_GENWQE=m
+CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0
+CONFIG_ECHO=m
+# CONFIG_CXL_BASE is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+CONFIG_RAID_ATTRS=y
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_NETLINK=y
+# CONFIG_SCSI_MQ_DEFAULT is not set
+# CONFIG_SCSI_PROC_FS is not set
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+CONFIG_CHR_DEV_ST=y
+CONFIG_CHR_DEV_OSST=y
+CONFIG_BLK_DEV_SR=y
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=y
+CONFIG_CHR_DEV_SCH=y
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_CONSTANTS=y
+# CONFIG_SCSI_LOGGING is not set
+CONFIG_SCSI_SCAN_ASYNC=y
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=y
+CONFIG_SCSI_FC_ATTRS=y
+CONFIG_SCSI_ISCSI_ATTRS=y
+CONFIG_SCSI_SAS_ATTRS=y
+CONFIG_SCSI_SAS_LIBSAS=y
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+CONFIG_SCSI_SRP_ATTRS=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
+CONFIG_SCSI_BNX2_ISCSI=m
+# CONFIG_SCSI_BNX2X_FCOE is not set
+CONFIG_BE2ISCSI=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=5000
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=5000
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC94XX=m
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_MVSAS_TASKLET=y
+CONFIG_SCSI_MVUMI=m
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_ESAS2R=m
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_SAS=m
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+# CONFIG_SCSI_MPT2SAS_LOGGING is not set
+CONFIG_SCSI_MPT3SAS=m
+CONFIG_SCSI_MPT3SAS_MAX_SGE=128
+# CONFIG_SCSI_MPT3SAS_LOGGING is not set
+CONFIG_SCSI_UFSHCD=m
+CONFIG_SCSI_UFSHCD_PCI=m
+CONFIG_SCSI_UFSHCD_PLATFORM=m
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_BUSLOGIC=m
+CONFIG_SCSI_FLASHPOINT=y
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_EATA=m
+CONFIG_SCSI_EATA_TAGGED_QUEUE=y
+CONFIG_SCSI_EATA_LINKED_COMMANDS=y
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_ISCI=m
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+CONFIG_SCSI_IZIP_EPP16=y
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_IPR=m
+CONFIG_SCSI_IPR_TRACE=y
+CONFIG_SCSI_IPR_DUMP=y
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLA_FC=m
+# CONFIG_TCM_QLA2XXX is not set
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_WD719X=m
+# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_VIRTIO=m
+CONFIG_SCSI_CHELSIO_FCOE=m
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_SCSI_DH=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=1
+# CONFIG_SCSI_OSD_DEBUG is not set
+CONFIG_ATA=y
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA_ACPI=y
+CONFIG_SATA_ZPODD=y
+CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+# CONFIG_SATA_INIC162X is not set
+CONFIG_SATA_ACARD_AHCI=m
+CONFIG_SATA_SIL24=m
+CONFIG_ATA_SFF=y
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+# CONFIG_SATA_SX4 is not set
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
+CONFIG_ATA_PIIX=m
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+
+#
+# PATA SFF controllers with BMDMA
+#
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_HPT3X2N=m
+CONFIG_PATA_HPT3X3=m
+CONFIG_PATA_HPT3X3_DMA=y
+# CONFIG_PATA_IT8213 is not set
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OLDPIIX=m
+# CONFIG_PATA_OPTIDMA is not set
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+# CONFIG_PATA_RADISYS is not set
+CONFIG_PATA_RDC=m
+CONFIG_PATA_SCH=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_SIS=m
+# CONFIG_PATA_TOSHIBA is not set
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+
+#
+# PIO-only SFF controllers
+#
+# CONFIG_PATA_CMD640_PCI is not set
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NS87410=m
+# CONFIG_PATA_OPTI is not set
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PLATFORM=m
+CONFIG_PATA_RZ1000=m
+
+#
+# Generic fallback / legacy drivers
+#
+CONFIG_PATA_ACPI=m
+CONFIG_ATA_GENERIC=m
+# CONFIG_PATA_LEGACY is not set
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=y
+CONFIG_MD_AUTODETECT=y
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+CONFIG_MD_MULTIPATH=m
+# CONFIG_MD_FAULTY is not set
+# CONFIG_MD_CLUSTER is not set
+CONFIG_BCACHE=m
+# CONFIG_BCACHE_DEBUG is not set
+# CONFIG_BCACHE_CLOSURES_DEBUG is not set
+CONFIG_BLK_DEV_DM_BUILTIN=y
+CONFIG_BLK_DEV_DM=y
+# CONFIG_DM_MQ_DEFAULT is not set
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
+CONFIG_DM_BIO_PRISON=m
+CONFIG_DM_PERSISTENT_DATA=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+# CONFIG_DM_CACHE is not set
+# CONFIG_DM_ERA is not set
+CONFIG_DM_MIRROR=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_RAID=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_DELAY=m
+CONFIG_DM_UEVENT=y
+CONFIG_DM_FLAKEY=m
+CONFIG_DM_VERITY=m
+# CONFIG_DM_SWITCH is not set
+# CONFIG_DM_LOG_WRITES is not set
+CONFIG_TARGET_CORE=m
+CONFIG_TCM_IBLOCK=m
+CONFIG_TCM_FILEIO=m
+CONFIG_TCM_PSCSI=m
+CONFIG_TCM_USER2=m
+CONFIG_LOOPBACK_TARGET=m
+CONFIG_TCM_FC=m
+CONFIG_ISCSI_TARGET=m
+CONFIG_SBP_TARGET=m
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_CTL=m
+CONFIG_FUSION_LAN=m
+# CONFIG_FUSION_LOGGING is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_NET=m
+# CONFIG_FIREWIRE_NOSY is not set
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MAC_EMUMOUSEBTN=m
+CONFIG_NETDEVICES=y
+CONFIG_MII=m
+CONFIG_NET_CORE=y
+CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_EQUALIZER=m
+CONFIG_NET_FC=y
+CONFIG_IFB=m
+CONFIG_NET_TEAM=m
+CONFIG_NET_TEAM_MODE_BROADCAST=m
+CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
+CONFIG_NET_TEAM_MODE_RANDOM=m
+CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
+CONFIG_NET_TEAM_MODE_LOADBALANCE=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_IPVLAN=m
+CONFIG_VXLAN=m
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+CONFIG_NET_POLL_CONTROLLER=y
+# CONFIG_NTB_NETDEV is not set
+CONFIG_RIONET=m
+CONFIG_RIONET_TX_SIZE=128
+CONFIG_RIONET_RX_SIZE=128
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_VIRTIO_NET=m
+CONFIG_NLMON=m
+CONFIG_SUNGEM_PHY=m
+CONFIG_ARCNET=m
+CONFIG_ARCNET_1201=m
+CONFIG_ARCNET_1051=m
+CONFIG_ARCNET_RAW=m
+CONFIG_ARCNET_CAP=m
+CONFIG_ARCNET_COM90xx=m
+CONFIG_ARCNET_COM90xxIO=m
+CONFIG_ARCNET_RIM_I=m
+CONFIG_ARCNET_COM20020=m
+CONFIG_ARCNET_COM20020_PCI=m
+CONFIG_ARCNET_COM20020_CS=m
+CONFIG_ATM_DRIVERS=y
+CONFIG_ATM_DUMMY=m
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+CONFIG_ATM_ENI_TUNE_BURST=y
+# CONFIG_ATM_ENI_BURST_TX_16W is not set
+CONFIG_ATM_ENI_BURST_TX_8W=y
+CONFIG_ATM_ENI_BURST_TX_4W=y
+CONFIG_ATM_ENI_BURST_TX_2W=y
+# CONFIG_ATM_ENI_BURST_RX_16W is not set
+# CONFIG_ATM_ENI_BURST_RX_8W is not set
+CONFIG_ATM_ENI_BURST_RX_4W=y
+CONFIG_ATM_ENI_BURST_RX_2W=y
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+CONFIG_ATM_NICSTAR_USE_IDT77105=y
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+CONFIG_ATM_FORE200E_USE_TASKLET=y
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+CONFIG_ATM_HE_USE_SUNI=y
+CONFIG_ATM_SOLOS=m
+
+#
+# CAIF transport drivers
+#
+CONFIG_CAIF_TTY=m
+CONFIG_CAIF_SPI_SLAVE=m
+CONFIG_CAIF_SPI_SYNC=y
+CONFIG_CAIF_HSI=m
+# CONFIG_CAIF_VIRTIO is not set
+# CONFIG_VHOST_NET is not set
+# CONFIG_VHOST_SCSI is not set
+CONFIG_VHOST_RING=m
+
+#
+# Distributed Switch Architecture drivers
+#
+# CONFIG_NET_DSA_MV88E6XXX is not set
+# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set
+CONFIG_ETHERNET=y
+CONFIG_MDIO=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NET_VENDOR_AGERE=y
+CONFIG_ET131X=m
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_ALTERA_TSE=m
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_AMD8111_ETH=m
+CONFIG_PCNET32=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_NET_VENDOR_ARC=y
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_ATL2=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_ALX=m
+CONFIG_NET_CADENCE=y
+# CONFIG_MACB is not set
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_BCMGENET=m
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_TIGON3=m
+CONFIG_BNX2X=m
+CONFIG_BNX2X_SRIOV=y
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_BNA=m
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4_DCB=y
+CONFIG_CHELSIO_T4_FCOE=y
+CONFIG_CHELSIO_T4VF=m
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_ENIC=m
+CONFIG_CX_ECAT=m
+CONFIG_DNET=m
+CONFIG_NET_VENDOR_DEC=y
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_DE2104X_DSL=0
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_NAPI is not set
+CONFIG_DE4X5=m
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_ULI526X=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_DL2K=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_BE2NET=m
+CONFIG_BE2NET_VXLAN=y
+CONFIG_NET_VENDOR_EXAR=y
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_NET_VENDOR_FUJITSU=y
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_NET_VENDOR_HP=y
+CONFIG_HP100=m
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_E100=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IGB=m
+CONFIG_IGB_HWMON=y
+CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_VXLAN=y
+CONFIG_IXGBE_HWMON=y
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBE_DCB=y
+CONFIG_IXGBEVF=m
+CONFIG_I40E=m
+CONFIG_I40E_VXLAN=y
+CONFIG_I40E_DCB=y
+CONFIG_I40E_FCOE=y
+CONFIG_I40EVF=m
+CONFIG_FM10K=m
+CONFIG_FM10K_VXLAN=y
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_IP1000=m
+CONFIG_JME=m
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_MVMDIO=m
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKGE_GENESIS=y
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+CONFIG_NET_VENDOR_MELLANOX=y
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_EN_DCB=y
+CONFIG_MLX4_EN_VXLAN=y
+CONFIG_MLX4_CORE=m
+# CONFIG_MLX4_DEBUG is not set
+CONFIG_MLX5_CORE=m
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_NET_VENDOR_MICROCHIP=y
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_FEALNX=m
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NATSEMI=m
+CONFIG_NS83820=m
+CONFIG_NET_VENDOR_8390=y
+CONFIG_PCMCIA_AXNET=m
+CONFIG_NE2K_PCI=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_FORCEDETH=m
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_ETHOC=m
+CONFIG_NET_PACKET_ENGINE=y
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_QLA3XXX=m
+CONFIG_QLCNIC=m
+CONFIG_QLCNIC_SRIOV=y
+CONFIG_QLCNIC_DCB=y
+CONFIG_QLCNIC_VXLAN=y
+CONFIG_QLCNIC_HWMON=y
+CONFIG_QLGE=m
+CONFIG_NETXEN_NIC=m
+CONFIG_NET_VENDOR_QUALCOMM=y
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_ATP=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+CONFIG_8139TOO_PIO=y
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R8169=m
+CONFIG_NET_VENDOR_RDC=y
+CONFIG_R6040=m
+CONFIG_NET_VENDOR_ROCKER=y
+CONFIG_NET_VENDOR_SAMSUNG=y
+CONFIG_SXGBE_ETH=m
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_SC92031=m
+CONFIG_NET_VENDOR_SIS=y
+CONFIG_SIS900=m
+CONFIG_SIS190=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_SFC_MCDI_MON=y
+CONFIG_SFC_SRIOV=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_EPIC100=m
+CONFIG_SMSC911X=m
+# CONFIG_SMSC911X_ARCH_HOOKS is not set
+CONFIG_SMSC9420=m
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_ETH=m
+CONFIG_STMMAC_PLATFORM=m
+CONFIG_STMMAC_PCI=m
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NIU=m
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_TEHUTI=m
+CONFIG_NET_VENDOR_TI=y
+CONFIG_TI_CPSW_ALE=m
+CONFIG_TLAN=m
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_VIA_RHINE=m
+CONFIG_VIA_RHINE_MMIO=y
+CONFIG_VIA_VELOCITY=m
+CONFIG_NET_VENDOR_WIZNET=y
+CONFIG_WIZNET_W5100=m
+CONFIG_WIZNET_W5300=m
+# CONFIG_WIZNET_BUS_DIRECT is not set
+# CONFIG_WIZNET_BUS_INDIRECT is not set
+CONFIG_WIZNET_BUS_ANY=y
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_FDDI=m
+CONFIG_DEFXX=m
+# CONFIG_DEFXX_MMIO is not set
+CONFIG_SKFP=m
+CONFIG_HIPPI=y
+CONFIG_ROADRUNNER=m
+# CONFIG_ROADRUNNER_LARGE_RINGS is not set
+CONFIG_NET_SB1000=m
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+CONFIG_AT803X_PHY=m
+CONFIG_AMD_PHY=m
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_BCM7XXX_PHY=m
+CONFIG_BCM87XX_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+CONFIG_FIXED_PHY=m
+CONFIG_MDIO_BITBANG=m
+CONFIG_MDIO_GPIO=m
+CONFIG_MDIO_BCM_UNIMAC=m
+# CONFIG_MICREL_KS8995MA is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+CONFIG_USB_NET_DRIVERS=y
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_AX88179_178A=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_HUAWEI_CDC_NCM=m
+CONFIG_USB_NET_CDC_MBIM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SR9700=m
+CONFIG_USB_NET_SR9800=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_NET_QMI_WWAN=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_WLAN=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_AIRO=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+CONFIG_PRISM54=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_ADM8211=m
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_MWL8K=m
+CONFIG_ATH_COMMON=m
+CONFIG_ATH_CARDS=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+CONFIG_ATH5K_PCI=y
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K_BTCOEX_SUPPORT=y
+CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI=y
+CONFIG_ATH9K_AHB=y
+# CONFIG_ATH9K_DEBUGFS is not set
+# CONFIG_ATH9K_DYNACK is not set
+# CONFIG_ATH9K_WOW is not set
+CONFIG_ATH9K_RFKILL=y
+CONFIG_ATH9K_CHANNEL_CONTEXT=y
+CONFIG_ATH9K_PCOEM=y
+CONFIG_ATH9K_HTC=m
+# CONFIG_ATH9K_HTC_DEBUGFS is not set
+CONFIG_CARL9170=m
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170_WPC=y
+# CONFIG_CARL9170_HWRNG is not set
+CONFIG_ATH6KL=m
+# CONFIG_ATH6KL_SDIO is not set
+CONFIG_ATH6KL_USB=m
+# CONFIG_ATH6KL_DEBUG is not set
+CONFIG_AR5523=m
+CONFIG_WIL6210=m
+CONFIG_WIL6210_ISR_COR=y
+CONFIG_ATH10K=m
+CONFIG_ATH10K_PCI=m
+# CONFIG_ATH10K_DEBUG is not set
+# CONFIG_ATH10K_DEBUGFS is not set
+CONFIG_WCN36XX=m
+# CONFIG_WCN36XX_DEBUGFS is not set
+CONFIG_B43=m
+CONFIG_B43_BCMA=y
+CONFIG_B43_SSB=y
+CONFIG_B43_BUSES_BCMA_AND_SSB=y
+# CONFIG_B43_BUSES_BCMA is not set
+# CONFIG_B43_BUSES_SSB is not set
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCMCIA=y
+CONFIG_B43_SDIO=y
+CONFIG_B43_BCMA_PIO=y
+CONFIG_B43_PIO=y
+CONFIG_B43_PHY_G=y
+CONFIG_B43_PHY_N=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_PHY_HT=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_HWRNG=y
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_HWRNG=y
+# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_PIO=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_BRCMUTIL=m
+CONFIG_BRCMSMAC=m
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_PROTO_BCDC=y
+CONFIG_BRCMFMAC_PROTO_MSGBUF=y
+CONFIG_BRCMFMAC_SDIO=y
+CONFIG_BRCMFMAC_USB=y
+CONFIG_BRCMFMAC_PCIE=y
+# CONFIG_BRCM_TRACING is not set
+# CONFIG_BRCMDBG is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+CONFIG_HOSTAP_FIRMWARE_NVRAM=y
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_IWLWIFI=m
+CONFIG_IWLWIFI_LEDS=y
+CONFIG_IWLDVM=m
+CONFIG_IWLMVM=m
+CONFIG_IWLWIFI_OPMODE_MODULAR=y
+# CONFIG_IWLWIFI_BCAST_FILTERING is not set
+# CONFIG_IWLWIFI_UAPSD is not set
+
+#
+# Debugging Options
+#
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLEGACY=m
+CONFIG_IWL4965=m
+CONFIG_IWL3945=m
+
+#
+# iwl3945 / iwl4965 Debugging Options
+#
+# CONFIG_IWLEGACY_DEBUG is not set
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_HERMES=m
+# CONFIG_HERMES_PRISM is not set
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_ORINOCO_USB=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_P54_PCI=m
+CONFIG_P54_SPI=m
+CONFIG_P54_SPI_DEFAULT_EEPROM=y
+CONFIG_P54_LEDS=y
+CONFIG_RT2X00=m
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT61PCI=m
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT33XX=y
+CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2800PCI_RT53XX=y
+CONFIG_RT2800PCI_RT3290=y
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_RT3573=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2800_LIB_MMIO=m
+CONFIG_RT2X00_LIB_MMIO=m
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_RTL_CARDS=m
+CONFIG_RTL8192CE=m
+CONFIG_RTL8192SE=m
+CONFIG_RTL8192DE=m
+CONFIG_RTL8723AE=m
+CONFIG_RTL8723BE=m
+CONFIG_RTL8188EE=m
+CONFIG_RTL8192EE=m
+CONFIG_RTL8821AE=m
+CONFIG_RTL8192CU=m
+CONFIG_RTLWIFI=m
+CONFIG_RTLWIFI_PCI=m
+CONFIG_RTLWIFI_USB=m
+# CONFIG_RTLWIFI_DEBUG is not set
+CONFIG_RTL8192C_COMMON=m
+CONFIG_RTL8723_COMMON=m
+CONFIG_RTLBTCOEXIST=m
+CONFIG_WL_TI=y
+CONFIG_WL1251=m
+# CONFIG_WL1251_SPI is not set
+# CONFIG_WL1251_SDIO is not set
+CONFIG_WL12XX=m
+CONFIG_WL18XX=m
+CONFIG_WLCORE=m
+CONFIG_WLCORE_SPI=m
+CONFIG_WLCORE_SDIO=m
+CONFIG_WILINK_PLATFORM_DATA=y
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_PCIE=m
+CONFIG_MWIFIEX_USB=m
+CONFIG_CW1200=m
+CONFIG_CW1200_WLAN_SDIO=m
+CONFIG_CW1200_WLAN_SPI=m
+CONFIG_RSI_91X=m
+# CONFIG_RSI_DEBUGFS is not set
+CONFIG_RSI_SDIO=m
+CONFIG_RSI_USB=m
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+CONFIG_WAN=y
+CONFIG_LANMEDIA=m
+CONFIG_HDLC=m
+CONFIG_HDLC_RAW=m
+CONFIG_HDLC_RAW_ETH=m
+CONFIG_HDLC_CISCO=m
+CONFIG_HDLC_FR=m
+CONFIG_HDLC_PPP=m
+CONFIG_HDLC_X25=m
+CONFIG_PCI200SYN=m
+CONFIG_WANXL=m
+CONFIG_PC300TOO=m
+CONFIG_FARSYNC=m
+CONFIG_DSCC4=m
+CONFIG_DSCC4_PCISYNC=y
+CONFIG_DSCC4_PCI_RST=y
+CONFIG_DLCI=m
+CONFIG_DLCI_MAX=8
+CONFIG_LAPBETHER=m
+CONFIG_X25_ASY=m
+CONFIG_SBNI=m
+CONFIG_SBNI_MULTILINE=y
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_VMXNET3=m
+CONFIG_HYPERV_NET=m
+CONFIG_ISDN=y
+CONFIG_ISDN_I4L=m
+# CONFIG_ISDN_PPP is not set
+# CONFIG_ISDN_AUDIO is not set
+# CONFIG_ISDN_X25 is not set
+
+#
+# ISDN feature submodules
+#
+# CONFIG_ISDN_DIVERSION is not set
+
+#
+# ISDN4Linux hardware drivers
+#
+
+#
+# Passive cards
+#
+# CONFIG_ISDN_DRV_HISAX is not set
+
+#
+# Active cards
+#
+CONFIG_ISDN_CAPI=m
+# CONFIG_CAPI_TRACE is not set
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+# CONFIG_ISDN_CAPI_CAPIDRV is not set
+
+#
+# CAPI hardware drivers
+#
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=y
+CONFIG_INPUT_POLLDEV=y
+CONFIG_INPUT_SPARSEKMAP=y
+CONFIG_INPUT_MATRIXKMAP=m
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5520 is not set
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_QT1070=m
+CONFIG_KEYBOARD_QT2160=m
+CONFIG_KEYBOARD_LKKBD=m
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_GPIO_POLLED=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_TCA8418=m
+CONFIG_KEYBOARD_MATRIX=m
+CONFIG_KEYBOARD_LM8323=m
+CONFIG_KEYBOARD_LM8333=m
+CONFIG_KEYBOARD_MAX7359=m
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
+CONFIG_KEYBOARD_NEWTON=m
+CONFIG_KEYBOARD_OPENCORES=m
+CONFIG_KEYBOARD_SAMSUNG=m
+CONFIG_KEYBOARD_STOWAWAY=m
+CONFIG_KEYBOARD_SUNKBD=m
+CONFIG_KEYBOARD_XTKBD=m
+CONFIG_KEYBOARD_CROS_EC=m
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=y
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_CYPRESS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+CONFIG_MOUSE_PS2_TOUCHKIT=y
+CONFIG_MOUSE_PS2_FOCALTECH=y
+CONFIG_MOUSE_PS2_VMMOUSE=y
+CONFIG_MOUSE_SERIAL=m
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_CYAPA=m
+CONFIG_MOUSE_ELAN_I2C=m
+CONFIG_MOUSE_ELAN_I2C_I2C=y
+CONFIG_MOUSE_ELAN_I2C_SMBUS=y
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MOUSE_GPIO=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_MOUSE_SYNAPTICS_USB=m
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_AD7879_SPI=m
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
+CONFIG_TOUCHSCREEN_BU21013=m
+CONFIG_TOUCHSCREEN_CY8CTMG110=m
+CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
+CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
+CONFIG_TOUCHSCREEN_CYTTSP_SPI=m
+CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
+CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
+CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
+CONFIG_TOUCHSCREEN_DA9034=y
+CONFIG_TOUCHSCREEN_DA9052=m
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_HAMPSHIRE=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GOODIX=m
+CONFIG_TOUCHSCREEN_ILI210X=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_ELAN=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_WACOM_I2C=m
+CONFIG_TOUCHSCREEN_MAX11801=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MMS114=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_EDT_FT5X06=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_PIXCIR=m
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+CONFIG_TOUCHSCREEN_USB_ELO=y
+CONFIG_TOUCHSCREEN_USB_E2I=y
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC_SERIO=m
+CONFIG_TOUCHSCREEN_TSC2005=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+CONFIG_TOUCHSCREEN_ST1232=m
+CONFIG_TOUCHSCREEN_SX8654=m
+CONFIG_TOUCHSCREEN_TPS6507X=m
+CONFIG_TOUCHSCREEN_ZFORCE=m
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=y
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_PS2MULT=m
+CONFIG_SERIO_ARC_PS2=m
+CONFIG_HYPERV_KEYBOARD=m
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_TTY=y
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+CONFIG_MOXA_INTELLIO=m
+CONFIG_MOXA_SMARTIO=m
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+CONFIG_SYNCLINK_GT=m
+CONFIG_NOZOMI=m
+CONFIG_ISI=m
+CONFIG_N_HDLC=m
+# CONFIG_N_GSM is not set
+CONFIG_TRACE_ROUTER=m
+CONFIG_TRACE_SINK=m
+CONFIG_DEVMEM=y
+CONFIG_DEVKMEM=y
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=m
+CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_DMA=y
+CONFIG_SERIAL_8250_PCI=m
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_DETECT_IRQ=y
+CONFIG_SERIAL_8250_RSA=y
+CONFIG_SERIAL_8250_DW=m
+CONFIG_SERIAL_8250_FINTEK=m
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_MAX3100 is not set
+# CONFIG_SERIAL_MAX310X is not set
+CONFIG_SERIAL_CORE=m
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_SCCNXP=m
+CONFIG_SERIAL_SC16IS7XX=m
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+# CONFIG_SERIAL_IFX6X60 is not set
+CONFIG_SERIAL_ARC=m
+CONFIG_SERIAL_ARC_NR_PORTS=1
+CONFIG_SERIAL_RP2=m
+CONFIG_SERIAL_RP2_NR_UARTS=32
+CONFIG_SERIAL_FSL_LPUART=m
+# CONFIG_TTY_PRINTK is not set
+CONFIG_PRINTER=m
+CONFIG_LP_CONSOLE=y
+CONFIG_PPDEV=m
+CONFIG_HVC_DRIVER=y
+CONFIG_VIRTIO_CONSOLE=m
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+# CONFIG_IPMI_SI_PROBE_DEFAULTS is not set
+CONFIG_IPMI_SSIF=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+CONFIG_HW_RANDOM=m
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_VIA=m
+# CONFIG_HW_RANDOM_VIRTIO is not set
+CONFIG_HW_RANDOM_TPM=m
+CONFIG_NVRAM=y
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+CONFIG_IPWIRELESS=m
+CONFIG_MWAVE=m
+CONFIG_RAW_DRIVER=m
+CONFIG_MAX_RAW_DEVS=256
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
+CONFIG_HPET_MMAP_DEFAULT=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_TCG_TPM=y
+CONFIG_TCG_TIS=y
+CONFIG_TCG_TIS_I2C_ATMEL=m
+CONFIG_TCG_TIS_I2C_INFINEON=m
+CONFIG_TCG_TIS_I2C_NUVOTON=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_INFINEON=m
+CONFIG_TCG_CRB=m
+# CONFIG_TCG_TIS_ST33ZP24 is not set
+CONFIG_TELCLOCK=m
+CONFIG_DEVPORT=y
+CONFIG_XILLYBUS=m
+CONFIG_XILLYBUS_PCIE=m
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_ACPI_I2C_OPREGION=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=m
+
+#
+# Multiplexer I2C Chip support
+#
+# CONFIG_I2C_MUX_GPIO is not set
+CONFIG_I2C_MUX_PCA9541=m
+# CONFIG_I2C_MUX_PCA954x is not set
+CONFIG_I2C_MUX_PINCTRL=m
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_ISMT=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+
+#
+# ACPI drivers
+#
+CONFIG_I2C_SCMI=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_CBUS_GPIO is not set
+CONFIG_I2C_DESIGNWARE_CORE=m
+CONFIG_I2C_DESIGNWARE_PLATFORM=m
+CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
+# CONFIG_I2C_GPIO is not set
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_PXA_PCI is not set
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_DIOLAN_U2C=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_ROBOTFUZZ_OSIF=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_CROS_EC_TUNNEL is not set
+# CONFIG_I2C_STUB is not set
+CONFIG_I2C_SLAVE=y
+CONFIG_I2C_SLAVE_EEPROM=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_ALTERA is not set
+# CONFIG_SPI_BITBANG is not set
+# CONFIG_SPI_BUTTERFLY is not set
+# CONFIG_SPI_CADENCE is not set
+# CONFIG_SPI_GPIO is not set
+# CONFIG_SPI_LM70_LLP is not set
+# CONFIG_SPI_OC_TINY is not set
+# CONFIG_SPI_PXA2XX is not set
+# CONFIG_SPI_PXA2XX_PCI is not set
+# CONFIG_SPI_SC18IS602 is not set
+# CONFIG_SPI_XCOMM is not set
+# CONFIG_SPI_XILINX is not set
+# CONFIG_SPI_DESIGNWARE is not set
+
+#
+# SPI Protocol Masters
+#
+# CONFIG_SPI_SPIDEV is not set
+# CONFIG_SPI_TLE62X0 is not set
+CONFIG_SPMI=m
+CONFIG_HSI=m
+CONFIG_HSI_BOARDINFO=y
+
+#
+# HSI controllers
+#
+
+#
+# HSI clients
+#
+CONFIG_HSI_CHAR=m
+
+#
+# PPS support
+#
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+# CONFIG_NTP_PPS is not set
+
+#
+# PPS clients support
+#
+# CONFIG_PPS_CLIENT_KTIMER is not set
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_PARPORT=m
+CONFIG_PPS_CLIENT_GPIO=m
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=m
+
+#
+# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
+#
+CONFIG_PINCTRL=y
+
+#
+# Pin controllers
+#
+# CONFIG_DEBUG_PINCTRL is not set
+# CONFIG_PINCTRL_AMD is not set
+# CONFIG_PINCTRL_BAYTRAIL is not set
+# CONFIG_PINCTRL_CHERRYVIEW is not set
+# CONFIG_PINCTRL_SUNRISEPOINT is not set
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_DEVRES=y
+CONFIG_GPIO_ACPI=y
+# CONFIG_DEBUG_GPIO is not set
+# CONFIG_GPIO_SYSFS is not set
+
+#
+# Memory mapped GPIO drivers
+#
+# CONFIG_GPIO_DWAPB is not set
+# CONFIG_GPIO_F7188X is not set
+# CONFIG_GPIO_GENERIC_PLATFORM is not set
+# CONFIG_GPIO_ICH is not set
+# CONFIG_GPIO_IT8761E is not set
+# CONFIG_GPIO_LYNXPOINT is not set
+# CONFIG_GPIO_SCH is not set
+# CONFIG_GPIO_SCH311X is not set
+# CONFIG_GPIO_VX855 is not set
+
+#
+# I2C GPIO expanders
+#
+# CONFIG_GPIO_ADP5588 is not set
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_SX150X is not set
+
+#
+# MFD GPIO expanders
+#
+# CONFIG_GPIO_ADP5520 is not set
+# CONFIG_GPIO_CRYSTAL_COVE is not set
+# CONFIG_GPIO_DA9052 is not set
+# CONFIG_GPIO_DA9055 is not set
+
+#
+# PCI GPIO expanders
+#
+# CONFIG_GPIO_AMD8111 is not set
+# CONFIG_GPIO_BT8XX is not set
+# CONFIG_GPIO_INTEL_MID is not set
+# CONFIG_GPIO_ML_IOH is not set
+# CONFIG_GPIO_RDC321X is not set
+
+#
+# SPI GPIO expanders
+#
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
+
+#
+# USB GPIO expanders
+#
+CONFIG_W1=m
+CONFIG_W1_CON=y
+
+#
+# 1-wire Bus Masters
+#
+CONFIG_W1_MASTER_MATROX=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_GPIO=m
+
+#
+# 1-wire Slaves
+#
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2408_READBACK=y
+CONFIG_W1_SLAVE_DS2413=m
+CONFIG_W1_SLAVE_DS2406=m
+CONFIG_W1_SLAVE_DS2423=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2433_CRC=y
+CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_DS2780=m
+CONFIG_W1_SLAVE_DS2781=m
+CONFIG_W1_SLAVE_DS28E04=m
+CONFIG_W1_SLAVE_BQ27000=m
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_GENERIC_ADC_BATTERY is not set
+# CONFIG_TEST_POWER is not set
+# CONFIG_BATTERY_DS2760 is not set
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2781 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_SBS is not set
+# CONFIG_BATTERY_BQ27x00 is not set
+# CONFIG_BATTERY_DA9030 is not set
+# CONFIG_BATTERY_DA9052 is not set
+# CONFIG_AXP288_FUEL_GAUGE is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_LP8727 is not set
+# CONFIG_CHARGER_GPIO is not set
+# CONFIG_CHARGER_BQ2415X is not set
+# CONFIG_CHARGER_BQ24190 is not set
+# CONFIG_CHARGER_BQ24735 is not set
+# CONFIG_CHARGER_SMB347 is not set
+# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_POWER_RESET is not set
+# CONFIG_POWER_AVS is not set
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+# CONFIG_SENSORS_AD7314 is not set
+# CONFIG_SENSORS_AD7414 is not set
+# CONFIG_SENSORS_AD7418 is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1029 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ADM9240 is not set
+# CONFIG_SENSORS_ADT7310 is not set
+# CONFIG_SENSORS_ADT7410 is not set
+# CONFIG_SENSORS_ADT7411 is not set
+# CONFIG_SENSORS_ADT7462 is not set
+# CONFIG_SENSORS_ADT7470 is not set
+# CONFIG_SENSORS_ADT7475 is not set
+# CONFIG_SENSORS_ASC7621 is not set
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_FAM15H_POWER=m
+CONFIG_SENSORS_APPLESMC=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ATXP1=m
+# CONFIG_SENSORS_DS620 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_DA9052_ADC is not set
+# CONFIG_SENSORS_DA9055 is not set
+CONFIG_SENSORS_I5K_AMB=m
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_F75375S is not set
+# CONFIG_SENSORS_FSCHMD is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_G760A is not set
+# CONFIG_SENSORS_G762 is not set
+# CONFIG_SENSORS_GPIO_FAN is not set
+# CONFIG_SENSORS_HIH6130 is not set
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+# CONFIG_SENSORS_IIO_HWMON is not set
+CONFIG_SENSORS_I5500=m
+CONFIG_SENSORS_CORETEMP=m
+# CONFIG_SENSORS_IT87 is not set
+CONFIG_SENSORS_JC42=m
+# CONFIG_SENSORS_POWR1220 is not set
+# CONFIG_SENSORS_LINEAGE is not set
+# CONFIG_SENSORS_LTC2945 is not set
+# CONFIG_SENSORS_LTC4151 is not set
+# CONFIG_SENSORS_LTC4215 is not set
+# CONFIG_SENSORS_LTC4222 is not set
+# CONFIG_SENSORS_LTC4245 is not set
+# CONFIG_SENSORS_LTC4260 is not set
+# CONFIG_SENSORS_LTC4261 is not set
+# CONFIG_SENSORS_MAX1111 is not set
+# CONFIG_SENSORS_MAX16065 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_MAX1668 is not set
+# CONFIG_SENSORS_MAX197 is not set
+# CONFIG_SENSORS_MAX6639 is not set
+# CONFIG_SENSORS_MAX6642 is not set
+# CONFIG_SENSORS_MAX6650 is not set
+# CONFIG_SENSORS_MAX6697 is not set
+# CONFIG_SENSORS_HTU21 is not set
+# CONFIG_SENSORS_MCP3021 is not set
+# CONFIG_SENSORS_ADCXX is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM70 is not set
+# CONFIG_SENSORS_LM73 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_LM93 is not set
+# CONFIG_SENSORS_LM95234 is not set
+# CONFIG_SENSORS_LM95241 is not set
+# CONFIG_SENSORS_LM95245 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_NTC_THERMISTOR is not set
+# CONFIG_SENSORS_NCT6683 is not set
+# CONFIG_SENSORS_NCT6775 is not set
+# CONFIG_SENSORS_NCT7802 is not set
+# CONFIG_SENSORS_NCT7904 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+# CONFIG_SENSORS_ADM1275 is not set
+# CONFIG_SENSORS_LM25066 is not set
+# CONFIG_SENSORS_LTC2978 is not set
+# CONFIG_SENSORS_MAX16064 is not set
+# CONFIG_SENSORS_MAX34440 is not set
+# CONFIG_SENSORS_MAX8688 is not set
+# CONFIG_SENSORS_TPS40422 is not set
+# CONFIG_SENSORS_UCD9000 is not set
+# CONFIG_SENSORS_UCD9200 is not set
+# CONFIG_SENSORS_ZL6100 is not set
+# CONFIG_SENSORS_SHT15 is not set
+# CONFIG_SENSORS_SHT21 is not set
+# CONFIG_SENSORS_SHTC1 is not set
+CONFIG_SENSORS_SIS5595=m
+# CONFIG_SENSORS_DME1737 is not set
+# CONFIG_SENSORS_EMC1403 is not set
+# CONFIG_SENSORS_EMC2103 is not set
+# CONFIG_SENSORS_EMC6W201 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47M192 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_SCH56XX_COMMON is not set
+# CONFIG_SENSORS_SMM665 is not set
+# CONFIG_SENSORS_ADC128D818 is not set
+# CONFIG_SENSORS_ADS1015 is not set
+# CONFIG_SENSORS_ADS7828 is not set
+# CONFIG_SENSORS_ADS7871 is not set
+# CONFIG_SENSORS_AMC6821 is not set
+# CONFIG_SENSORS_INA209 is not set
+# CONFIG_SENSORS_INA2XX is not set
+# CONFIG_SENSORS_THMC50 is not set
+# CONFIG_SENSORS_TMP102 is not set
+# CONFIG_SENSORS_TMP103 is not set
+# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
+CONFIG_SENSORS_VIA_CPUTEMP=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83791D is not set
+# CONFIG_SENSORS_W83792D is not set
+# CONFIG_SENSORS_W83793 is not set
+# CONFIG_SENSORS_W83795 is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83L786NG is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+
+#
+# ACPI drivers
+#
+CONFIG_SENSORS_ACPI_POWER=m
+CONFIG_SENSORS_ATK0110=m
+CONFIG_THERMAL=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
+# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_GOV_FAIR_SHARE=y
+CONFIG_THERMAL_GOV_STEP_WISE=y
+CONFIG_THERMAL_GOV_BANG_BANG=y
+CONFIG_THERMAL_GOV_USER_SPACE=y
+# CONFIG_THERMAL_EMULATION is not set
+# CONFIG_INTEL_POWERCLAMP is not set
+CONFIG_X86_PKG_TEMP_THERMAL=m
+# CONFIG_INTEL_SOC_DTS_THERMAL is not set
+CONFIG_INT340X_THERMAL=m
+CONFIG_ACPI_THERMAL_REL=m
+
+#
+# Texas Instruments thermal drivers
+#
+# CONFIG_WATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB=m
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_PCMCIAHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+# CONFIG_SSB_SILENT is not set
+# CONFIG_SSB_DEBUG is not set
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+# CONFIG_SSB_DRIVER_GPIO is not set
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+CONFIG_BCMA=m
+CONFIG_BCMA_BLOCKIO=y
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+CONFIG_BCMA_HOST_PCI=y
+CONFIG_BCMA_HOST_SOC=y
+CONFIG_BCMA_DRIVER_PCI=y
+CONFIG_BCMA_DRIVER_GMAC_CMN=y
+CONFIG_BCMA_DRIVER_GPIO=y
+# CONFIG_BCMA_DEBUG is not set
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_CORE=y
+CONFIG_MFD_AS3711=y
+CONFIG_PMIC_ADP5520=y
+CONFIG_MFD_AAT2870_CORE=y
+CONFIG_MFD_BCM590XX=m
+CONFIG_MFD_AXP20X=y
+CONFIG_MFD_CROS_EC=m
+CONFIG_MFD_CROS_EC_I2C=m
+CONFIG_PMIC_DA903X=y
+CONFIG_PMIC_DA9052=y
+CONFIG_MFD_DA9052_SPI=y
+CONFIG_MFD_DA9052_I2C=y
+CONFIG_MFD_DA9055=y
+CONFIG_MFD_DA9063=y
+# CONFIG_MFD_DA9150 is not set
+# CONFIG_MFD_DLN2 is not set
+# CONFIG_MFD_MC13XXX_SPI is not set
+# CONFIG_MFD_MC13XXX_I2C is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_HTC_I2CPLD is not set
+# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set
+CONFIG_LPC_ICH=m
+CONFIG_LPC_SCH=m
+CONFIG_INTEL_SOC_PMIC=y
+# CONFIG_MFD_JANZ_CMODIO is not set
+# CONFIG_MFD_KEMPLD is not set
+# CONFIG_MFD_88PM800 is not set
+# CONFIG_MFD_88PM805 is not set
+# CONFIG_MFD_88PM860X is not set
+# CONFIG_MFD_MAX14577 is not set
+# CONFIG_MFD_MAX77693 is not set
+# CONFIG_MFD_MAX77843 is not set
+# CONFIG_MFD_MAX8907 is not set
+# CONFIG_MFD_MAX8925 is not set
+# CONFIG_MFD_MAX8997 is not set
+# CONFIG_MFD_MAX8998 is not set
+# CONFIG_MFD_MT6397 is not set
+# CONFIG_MFD_MENF21BMC is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_MFD_VIPERBOARD is not set
+# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_RDC321X is not set
+CONFIG_MFD_RTSX_PCI=m
+# CONFIG_MFD_RT5033 is not set
+CONFIG_MFD_RTSX_USB=m
+# CONFIG_MFD_RC5T583 is not set
+# CONFIG_MFD_RN5T618 is not set
+# CONFIG_MFD_SEC_CORE is not set
+# CONFIG_MFD_SI476X_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SMSC is not set
+# CONFIG_ABX500_CORE is not set
+CONFIG_MFD_SYSCON=y
+# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_LP3943 is not set
+# CONFIG_MFD_LP8788 is not set
+# CONFIG_MFD_PALMAS is not set
+# CONFIG_TPS6105X is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TPS6507X is not set
+# CONFIG_MFD_TPS65090 is not set
+# CONFIG_MFD_TPS65217 is not set
+# CONFIG_MFD_TPS65218 is not set
+# CONFIG_MFD_TPS6586X is not set
+# CONFIG_MFD_TPS65910 is not set
+# CONFIG_MFD_TPS65912 is not set
+# CONFIG_MFD_TPS65912_I2C is not set
+# CONFIG_MFD_TPS65912_SPI is not set
+# CONFIG_MFD_TPS80031 is not set
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_TWL6040_CORE is not set
+# CONFIG_MFD_WL1273_CORE is not set
+# CONFIG_MFD_LM3533 is not set
+# CONFIG_MFD_TMIO is not set
+CONFIG_MFD_VX855=m
+# CONFIG_MFD_ARIZONA_I2C is not set
+# CONFIG_MFD_ARIZONA_SPI is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X_I2C is not set
+# CONFIG_MFD_WM831X_SPI is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_WM8994 is not set
+# CONFIG_REGULATOR is not set
+# CONFIG_MEDIA_SUPPORT is not set
+
+#
+# Graphics support
+#
+CONFIG_AGP=m
+CONFIG_AGP_AMD64=m
+CONFIG_AGP_INTEL=m
+CONFIG_AGP_SIS=m
+CONFIG_AGP_VIA=m
+CONFIG_INTEL_GTT=m
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_SWITCHEROO=y
+
+#
+# Direct Rendering Manager
+#
+CONFIG_DRM=m
+CONFIG_DRM_MIPI_DSI=y
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_KMS_FB_HELPER=y
+# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
+CONFIG_DRM_TTM=m
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_I2C_ADV7511=m
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_SIL164=m
+CONFIG_DRM_I2C_NXP_TDA998X=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+# CONFIG_DRM_RADEON_USERPTR is not set
+# CONFIG_DRM_RADEON_UMS is not set
+CONFIG_DRM_NOUVEAU=m
+CONFIG_NOUVEAU_DEBUG=5
+CONFIG_NOUVEAU_DEBUG_DEFAULT=3
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_I810=m
+CONFIG_DRM_I915=m
+CONFIG_DRM_I915_KMS=y
+CONFIG_DRM_I915_FBDEV=y
+CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT=y
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+CONFIG_DRM_VIA=m
+CONFIG_DRM_SAVAGE=m
+# CONFIG_DRM_VGEM is not set
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_VMWGFX_FBCON=y
+CONFIG_DRM_GMA500=m
+CONFIG_DRM_GMA600=y
+CONFIG_DRM_GMA3600=y
+CONFIG_DRM_UDL=m
+# CONFIG_DRM_AST is not set
+CONFIG_DRM_MGAG200=m
+CONFIG_DRM_CIRRUS_QEMU=m
+CONFIG_DRM_QXL=m
+CONFIG_DRM_BOCHS=m
+CONFIG_DRM_PANEL=y
+
+#
+# Display Panels
+#
+# CONFIG_HSA_AMD is not set
+
+#
+# Frame buffer Devices
+#
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FB_CMDLINE=y
+CONFIG_FB_DDC=m
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_SVGALIB=m
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_BACKLIGHT=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_CYBER2000=m
+CONFIG_FB_CYBER2000_DDC=y
+CONFIG_FB_ARC=m
+CONFIG_FB_ASILIANT=y
+CONFIG_FB_IMSTT=y
+CONFIG_FB_VGA16=m
+CONFIG_FB_UVESA=m
+CONFIG_FB_VESA=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_N411 is not set
+# CONFIG_FB_HGA is not set
+CONFIG_FB_OPENCORES=m
+CONFIG_FB_S1D13XXX=m
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_NVIDIA_I2C=y
+# CONFIG_FB_NVIDIA_DEBUG is not set
+CONFIG_FB_NVIDIA_BACKLIGHT=y
+CONFIG_FB_RIVA=m
+CONFIG_FB_RIVA_I2C=y
+# CONFIG_FB_RIVA_DEBUG is not set
+CONFIG_FB_RIVA_BACKLIGHT=y
+CONFIG_FB_I740=m
+CONFIG_FB_LE80578=m
+CONFIG_FB_CARILLO_RANCH=m
+CONFIG_FB_INTEL=m
+# CONFIG_FB_INTEL_DEBUG is not set
+CONFIG_FB_INTEL_I2C=y
+CONFIG_FB_MATROX=m
+CONFIG_FB_MATROX_MILLENIUM=y
+CONFIG_FB_MATROX_MYSTIQUE=y
+CONFIG_FB_MATROX_G=y
+CONFIG_FB_MATROX_I2C=m
+CONFIG_FB_MATROX_MAVEN=m
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RADEON_BACKLIGHT=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_ATY128=m
+CONFIG_FB_ATY128_BACKLIGHT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_ATY_GENERIC_LCD=y
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_ATY_BACKLIGHT=y
+CONFIG_FB_S3=m
+CONFIG_FB_S3_DDC=y
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SAVAGE_I2C=y
+# CONFIG_FB_SAVAGE_ACCEL is not set
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_VIA=m
+# CONFIG_FB_VIA_DIRECT_PROCFS is not set
+CONFIG_FB_VIA_X_COMPATIBILITY=y
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_KYRO=m
+CONFIG_FB_3DFX=m
+CONFIG_FB_3DFX_ACCEL=y
+CONFIG_FB_3DFX_I2C=y
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_VT8623=m
+CONFIG_FB_TRIDENT=m
+CONFIG_FB_ARK=m
+CONFIG_FB_PM3=m
+CONFIG_FB_CARMINE=m
+CONFIG_FB_CARMINE_DRAM_EVAL=y
+# CONFIG_CARMINE_DRAM_CUSTOM is not set
+CONFIG_FB_SMSCUFX=m
+CONFIG_FB_UDL=m
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_FB_METRONOME=m
+CONFIG_FB_MB862XX=m
+CONFIG_FB_MB862XX_PCI_GDC=y
+CONFIG_FB_MB862XX_I2C=y
+CONFIG_FB_BROADSHEET=m
+CONFIG_FB_AUO_K190X=m
+CONFIG_FB_AUO_K1900=m
+CONFIG_FB_AUO_K1901=m
+# CONFIG_FB_HYPERV is not set
+CONFIG_FB_SIMPLE=y
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_L4F00242T03=m
+CONFIG_LCD_LMS283GF05=m
+CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_ILI922X=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_TDO24M=m
+CONFIG_LCD_VGG2432A4=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_LCD_S6E63M0=m
+CONFIG_LCD_LD9040=m
+CONFIG_LCD_AMS369FG06=m
+CONFIG_LCD_LMS501KF03=m
+CONFIG_LCD_HX8357=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=y
+CONFIG_BACKLIGHT_CARILLO_RANCH=m
+CONFIG_BACKLIGHT_DA903X=m
+CONFIG_BACKLIGHT_DA9052=m
+CONFIG_BACKLIGHT_APPLE=m
+CONFIG_BACKLIGHT_SAHARA=m
+CONFIG_BACKLIGHT_ADP5520=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_ADP8870=m
+CONFIG_BACKLIGHT_AAT2870=m
+CONFIG_BACKLIGHT_LM3639=m
+CONFIG_BACKLIGHT_AS3711=m
+CONFIG_BACKLIGHT_GPIO=m
+CONFIG_BACKLIGHT_LV5207LP=m
+CONFIG_BACKLIGHT_BD6107=m
+CONFIG_VGASTATE=m
+CONFIG_HDMI=y
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+CONFIG_VGACON_SOFT_SCROLLBACK=y
+CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=80
+CONFIG_DUMMY_CONSOLE_ROWS=25
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+# CONFIG_LOGO is not set
+# CONFIG_SOUND is not set
+
+#
+# HID support
+#
+CONFIG_HID=y
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HIDRAW=y
+CONFIG_UHID=m
+CONFIG_HID_GENERIC=y
+
+#
+# Special HID drivers
+#
+# CONFIG_HID_A4TECH is not set
+# CONFIG_HID_ACRUX is not set
+CONFIG_HID_APPLE=m
+# CONFIG_HID_APPLEIR is not set
+# CONFIG_HID_AUREAL is not set
+CONFIG_HID_BELKIN=m
+# CONFIG_HID_BETOP_FF is not set
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CP2112=m
+# CONFIG_HID_CYPRESS is not set
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EMS_FF is not set
+# CONFIG_HID_ELECOM is not set
+CONFIG_HID_ELO=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_HOLTEK=m
+# CONFIG_HOLTEK_FF is not set
+# CONFIG_HID_GT683R is not set
+CONFIG_HID_KEYTOUCH=m
+# CONFIG_HID_KYE is not set
+# CONFIG_HID_UCLOGIC is not set
+# CONFIG_HID_WALTOP is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_ICADE is not set
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+# CONFIG_HID_LCPOWER is not set
+CONFIG_HID_LENOVO=m
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
+CONFIG_HID_LOGITECH_HIDPP=m
+CONFIG_LOGITECH_FF=y
+# CONFIG_LOGIRUMBLEPAD2_FF is not set
+# CONFIG_LOGIG940_FF is not set
+# CONFIG_LOGIWHEELS_FF is not set
+# CONFIG_HID_MAGICMOUSE is not set
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+# CONFIG_HID_MULTITOUCH is not set
+# CONFIG_HID_NTRIG is not set
+CONFIG_HID_ORTEK=m
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PENMOUNT is not set
+# CONFIG_HID_PETALYNX is not set
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PLANTRONICS=m
+CONFIG_HID_PRIMAX=m
+CONFIG_HID_ROCCAT=m
+# CONFIG_HID_SAITEK is not set
+CONFIG_HID_SAMSUNG=m
+# CONFIG_HID_SONY is not set
+# CONFIG_HID_SPEEDLINK is not set
+# CONFIG_HID_STEELSERIES is not set
+CONFIG_HID_SUNPLUS=m
+# CONFIG_HID_RMI is not set
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_HYPERV_MOUSE is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TIVO is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_THINGM is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_WACOM is not set
+# CONFIG_HID_WIIMOTE is not set
+# CONFIG_HID_XINMO is not set
+# CONFIG_HID_ZEROPLUS is not set
+# CONFIG_HID_ZYDACRON is not set
+CONFIG_HID_SENSOR_HUB=m
+# CONFIG_HID_SENSOR_CUSTOM_SENSOR is not set
+
+#
+# USB HID support
+#
+CONFIG_USB_HID=y
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+
+#
+# I2C HID support
+#
+CONFIG_I2C_HID=m
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEFAULT_PERSIST=y
+# CONFIG_USB_DYNAMIC_MINORS is not set
+CONFIG_USB_OTG=y
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+CONFIG_USB_OTG_FSM=m
+# CONFIG_USB_MON is not set
+# CONFIG_USB_WUSB is not set
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_XHCI_HCD=m
+CONFIG_USB_XHCI_PCI=m
+CONFIG_USB_XHCI_PLATFORM=m
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EHCI_PCI=m
+CONFIG_USB_EHCI_HCD_PLATFORM=m
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_FUSBH200_HCD=m
+CONFIG_USB_FOTG210_HCD=m
+CONFIG_USB_MAX3421_HCD=m
+CONFIG_USB_OHCI_HCD=m
+CONFIG_USB_OHCI_HCD_PCI=m
+# CONFIG_USB_OHCI_HCD_SSB is not set
+CONFIG_USB_OHCI_HCD_PLATFORM=m
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_SL811_HCD=m
+# CONFIG_USB_SL811_HCD_ISO is not set
+# CONFIG_USB_SL811_CS is not set
+CONFIG_USB_R8A66597_HCD=m
+# CONFIG_USB_WHCI_HCD is not set
+# CONFIG_USB_HWA_HCD is not set
+CONFIG_USB_HCD_BCMA=m
+CONFIG_USB_HCD_SSB=m
+# CONFIG_USB_HCD_TEST_MODE is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_WDM=m
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_REALTEK_AUTOPM=y
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_UAS=m
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+# CONFIG_USBIP_DEBUG is not set
+CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_MUSB_HOST=y
+# CONFIG_USB_MUSB_GADGET is not set
+# CONFIG_USB_MUSB_DUAL_ROLE is not set
+
+#
+# Platform Glue Layer
+#
+CONFIG_MUSB_PIO_ONLY=y
+CONFIG_USB_DWC3=m
+CONFIG_USB_DWC3_HOST=y
+# CONFIG_USB_DWC3_GADGET is not set
+# CONFIG_USB_DWC3_DUAL_ROLE is not set
+
+#
+# Platform Glue Driver Support
+#
+CONFIG_USB_DWC3_PCI=m
+
+#
+# Debugging features
+#
+# CONFIG_USB_DWC3_DEBUG is not set
+CONFIG_USB_DWC2=m
+CONFIG_USB_DWC2_HOST=y
+
+#
+# Gadget/Dual-role mode requires USB Gadget support to be enabled
+#
+# CONFIG_USB_DWC2_PERIPHERAL is not set
+# CONFIG_USB_DWC2_DUAL_ROLE is not set
+CONFIG_USB_DWC2_PLATFORM=m
+CONFIG_USB_DWC2_PCI=m
+# CONFIG_USB_DWC2_DEBUG is not set
+# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
+CONFIG_USB_CHIPIDEA=m
+CONFIG_USB_CHIPIDEA_PCI=m
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+# CONFIG_USB_CHIPIDEA_DEBUG is not set
+CONFIG_USB_ISP1760=m
+CONFIG_USB_ISP1760_HCD=y
+CONFIG_USB_ISP1760_HOST_ROLE=y
+# CONFIG_USB_ISP1760_GADGET_ROLE is not set
+# CONFIG_USB_ISP1760_DUAL_ROLE is not set
+
+#
+# USB port drivers
+#
+CONFIG_USB_USS720=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_SIMPLE=m
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+# CONFIG_USB_SERIAL_EMPEG is not set
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+# CONFIG_USB_SERIAL_IR is not set
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
+# CONFIG_USB_SERIAL_GARMIN is not set
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+# CONFIG_USB_SERIAL_METRO is not set
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MXUPORT=m
+# CONFIG_USB_SERIAL_NAVMAN is not set
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_USB_SERIAL_SAFE_PADDED=y
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+# CONFIG_USB_SERIAL_SYMBOL is not set
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+# CONFIG_USB_SERIAL_OPTICON is not set
+# CONFIG_USB_SERIAL_XSENS_MT is not set
+CONFIG_USB_SERIAL_WISHBONE=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_QT2=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+CONFIG_USB_SEVSEG=m
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_IDMOUSE is not set
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_SISUSBVGA=m
+CONFIG_USB_SISUSBVGA_CON=y
+CONFIG_USB_LD=m
+# CONFIG_USB_TRANCEVIBRATOR is not set
+CONFIG_USB_IOWARRIOR=m
+# CONFIG_USB_TEST is not set
+# CONFIG_USB_EHSET_TEST_FIXTURE is not set
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_YUREX is not set
+CONFIG_USB_EZUSB_FX2=m
+CONFIG_USB_HSIC_USB3503=m
+# CONFIG_USB_LINK_LAYER_TEST is not set
+# CONFIG_USB_CHAOSKEY is not set
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+
+#
+# USB Physical Layer drivers
+#
+CONFIG_USB_PHY=y
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_USB_ISP1301=m
+CONFIG_USB_GADGET=m
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+
+#
+# USB Peripheral Controller
+#
+CONFIG_USB_FOTG210_UDC=m
+CONFIG_USB_GR_UDC=m
+CONFIG_USB_R8A66597=m
+CONFIG_USB_PXA27X=m
+CONFIG_USB_MV_UDC=m
+CONFIG_USB_MV_U3D=m
+CONFIG_USB_M66592=m
+CONFIG_USB_BDC_UDC=m
+
+#
+# Platform Support
+#
+CONFIG_USB_BDC_PCI=m
+CONFIG_USB_AMD5536UDC=m
+CONFIG_USB_NET2272=m
+CONFIG_USB_NET2272_DMA=y
+CONFIG_USB_NET2280=m
+CONFIG_USB_GOKU=m
+CONFIG_USB_EG20T=m
+# CONFIG_USB_DUMMY_HCD is not set
+CONFIG_USB_LIBCOMPOSITE=m
+CONFIG_USB_F_ACM=m
+CONFIG_USB_F_SS_LB=m
+CONFIG_USB_U_SERIAL=m
+CONFIG_USB_U_ETHER=m
+CONFIG_USB_F_SERIAL=m
+CONFIG_USB_F_OBEX=m
+CONFIG_USB_F_NCM=m
+CONFIG_USB_F_ECM=m
+CONFIG_USB_F_PHONET=m
+CONFIG_USB_F_EEM=m
+CONFIG_USB_F_SUBSET=m
+CONFIG_USB_F_RNDIS=m
+CONFIG_USB_F_MASS_STORAGE=m
+CONFIG_USB_F_FS=m
+CONFIG_USB_F_HID=m
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_PHONET=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_HID=y
+# CONFIG_USB_CONFIGFS_F_PRINTER is not set
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+CONFIG_USB_ETH_EEM=y
+CONFIG_USB_G_NCM=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_FUNCTIONFS_ETH=y
+CONFIG_USB_FUNCTIONFS_RNDIS=y
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_GADGET_TARGET=m
+CONFIG_USB_G_SERIAL=m
+# CONFIG_USB_G_PRINTER is not set
+CONFIG_USB_CDC_COMPOSITE=m
+CONFIG_USB_G_NOKIA=m
+CONFIG_USB_G_ACM_MS=m
+CONFIG_USB_G_MULTI=m
+CONFIG_USB_G_MULTI_RNDIS=y
+CONFIG_USB_G_MULTI_CDC=y
+CONFIG_USB_G_HID=m
+# CONFIG_USB_G_DBGP is not set
+# CONFIG_USB_LED_TRIG is not set
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_WHCI=m
+CONFIG_UWB_I1480U=m
+CONFIG_MMC=m
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_CLKGATE=y
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI_ACPI=m
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_WBSD=m
+CONFIG_MMC_TIFM_SD=m
+CONFIG_MMC_SPI=m
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_CB710=m
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_USHC=m
+CONFIG_MMC_USDHI6ROL0=m
+CONFIG_MMC_REALTEK_PCI=m
+CONFIG_MMC_REALTEK_USB=m
+CONFIG_MMC_TOSHIBA_PCI=m
+CONFIG_MEMSTICK=m
+# CONFIG_MEMSTICK_DEBUG is not set
+
+#
+# MemoryStick drivers
+#
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MSPRO_BLOCK=m
+CONFIG_MS_BLOCK=m
+
+#
+# MemoryStick Host Controller Drivers
+#
+CONFIG_MEMSTICK_TIFM_MS=m
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_MEMSTICK_R592=m
+CONFIG_MEMSTICK_REALTEK_PCI=m
+CONFIG_MEMSTICK_REALTEK_USB=m
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+# CONFIG_LEDS_CLASS_FLASH is not set
+
+#
+# LED drivers
+#
+CONFIG_LEDS_LM3530=m
+# CONFIG_LEDS_LM3642 is not set
+# CONFIG_LEDS_PCA9532 is not set
+# CONFIG_LEDS_GPIO is not set
+# CONFIG_LEDS_LP3944 is not set
+# CONFIG_LEDS_LP5521 is not set
+# CONFIG_LEDS_LP5523 is not set
+# CONFIG_LEDS_LP5562 is not set
+# CONFIG_LEDS_LP8501 is not set
+# CONFIG_LEDS_LP8860 is not set
+# CONFIG_LEDS_CLEVO_MAIL is not set
+# CONFIG_LEDS_PCA955X is not set
+# CONFIG_LEDS_PCA963X is not set
+# CONFIG_LEDS_DA903X is not set
+# CONFIG_LEDS_DA9052 is not set
+# CONFIG_LEDS_DAC124S085 is not set
+# CONFIG_LEDS_BD2802 is not set
+# CONFIG_LEDS_INTEL_SS4200 is not set
+# CONFIG_LEDS_LT3593 is not set
+# CONFIG_LEDS_ADP5520 is not set
+# CONFIG_LEDS_DELL_NETBOOKS is not set
+# CONFIG_LEDS_TCA6507 is not set
+# CONFIG_LEDS_LM355x is not set
+
+#
+# LED driver for blink(1) USB RGB LED is under Special HID drivers
(HID_THINGM)
+#
+# CONFIG_LEDS_BLINKM is not set
+# CONFIG_LEDS_PM8941_WLED is not set
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+# CONFIG_LEDS_TRIGGER_TIMER is not set
+# CONFIG_LEDS_TRIGGER_ONESHOT is not set
+# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
+# CONFIG_LEDS_TRIGGER_CPU is not set
+# CONFIG_LEDS_TRIGGER_GPIO is not set
+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
+# CONFIG_LEDS_TRIGGER_CAMERA is not set
+CONFIG_ACCESSIBILITY=y
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_USER_MAD=m
+CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_INFINIBAND_USER_MEM=y
+CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
+CONFIG_INFINIBAND_ADDR_TRANS=y
+CONFIG_INFINIBAND_MTHCA=m
+CONFIG_INFINIBAND_MTHCA_DEBUG=y
+CONFIG_INFINIBAND_IPATH=m
+CONFIG_INFINIBAND_QIB=m
+CONFIG_INFINIBAND_QIB_DCA=y
+CONFIG_INFINIBAND_AMSO1100=m
+# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
+CONFIG_INFINIBAND_CXGB3=m
+# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
+CONFIG_INFINIBAND_CXGB4=m
+CONFIG_MLX4_INFINIBAND=m
+CONFIG_MLX5_INFINIBAND=m
+CONFIG_INFINIBAND_NES=m
+# CONFIG_INFINIBAND_NES_DEBUG is not set
+CONFIG_INFINIBAND_OCRDMA=m
+CONFIG_INFINIBAND_USNIC=m
+CONFIG_INFINIBAND_IPOIB=m
+# CONFIG_INFINIBAND_IPOIB_CM is not set
+# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
+CONFIG_INFINIBAND_SRP=m
+CONFIG_INFINIBAND_SRPT=m
+CONFIG_INFINIBAND_ISER=m
+CONFIG_INFINIBAND_ISERT=m
+CONFIG_EDAC=y
+# CONFIG_EDAC_LEGACY_SYSFS is not set
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=y
+# CONFIG_EDAC_MCE_INJ is not set
+CONFIG_EDAC_MM_EDAC=m
+CONFIG_EDAC_AMD64=m
+# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_IE31200=m
+CONFIG_EDAC_X38=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I7CORE=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_EDAC_I7300=m
+CONFIG_EDAC_SBRIDGE=m
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_ABB5ZES3=m
+# CONFIG_RTC_DRV_ABX80X is not set
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+# CONFIG_RTC_DRV_DS1374_WDT is not set
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_ISL12057=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF2127=m
+CONFIG_RTC_DRV_PCF8523=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF85063=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+# CONFIG_RTC_DRV_M41T80_WDT is not set
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3029C2=m
+
+#
+# SPI RTC drivers
+#
+CONFIG_RTC_DRV_M41T93=m
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1343=m
+CONFIG_RTC_DRV_DS1347=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_DS3234=m
+CONFIG_RTC_DRV_PCF2123=m
+CONFIG_RTC_DRV_RX4581=m
+CONFIG_RTC_DRV_MCP795=m
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1685_FAMILY=m
+CONFIG_RTC_DRV_DS1685=y
+# CONFIG_RTC_DRV_DS1689 is not set
+# CONFIG_RTC_DRV_DS17285 is not set
+# CONFIG_RTC_DRV_DS17485 is not set
+# CONFIG_RTC_DRV_DS17885 is not set
+# CONFIG_RTC_DS1685_PROC_REGS is not set
+# CONFIG_RTC_DS1685_SYSFS_REGS is not set
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_DS2404=m
+CONFIG_RTC_DRV_DA9052=m
+CONFIG_RTC_DRV_DA9055=m
+CONFIG_RTC_DRV_DA9063=m
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_V3020=m
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_XGENE=m
+
+#
+# HID Sensor RTC drivers
+#
+CONFIG_RTC_DRV_HID_SENSOR_TIME=m
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_INTEL_MIC_X100_DMA=m
+CONFIG_INTEL_IOATDMA=m
+CONFIG_DW_DMAC_CORE=m
+CONFIG_DW_DMAC=m
+CONFIG_DW_DMAC_PCI=m
+# CONFIG_HSU_DMA_PCI is not set
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_ACPI=y
+
+#
+# DMA Clients
+#
+CONFIG_ASYNC_TX_DMA=y
+# CONFIG_DMATEST is not set
+CONFIG_DMA_ENGINE_RAID=y
+CONFIG_DCA=m
+CONFIG_AUXDISPLAY=y
+CONFIG_KS0108=m
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS0108_DELAY=2
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+CONFIG_UIO=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_DMEM_GENIRQ=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
+CONFIG_UIO_MF624=m
+CONFIG_VFIO_IOMMU_TYPE1=m
+CONFIG_VFIO_VIRQFD=m
+CONFIG_VFIO=m
+CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_VGA=y
+CONFIG_VFIO_PCI_MMAP=y
+CONFIG_VFIO_PCI_INTX=y
+CONFIG_VIRT_DRIVERS=y
+CONFIG_VIRTIO=m
+
+#
+# Virtio drivers
+#
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_PCI_LEGACY=y
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MMIO=m
+# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
+
+#
+# Microsoft Hyper-V guest support
+#
+CONFIG_HYPERV=m
+CONFIG_HYPERV_UTILS=m
+CONFIG_HYPERV_BALLOON=m
+CONFIG_STAGING=y
+CONFIG_SLICOSS=m
+CONFIG_PRISM2_USB=m
+# CONFIG_COMEDI is not set
+CONFIG_PANEL=m
+CONFIG_PANEL_PARPORT=0
+CONFIG_PANEL_PROFILE=5
+# CONFIG_PANEL_CHANGE_MESSAGE is not set
+CONFIG_RTL8192U=m
+CONFIG_RTLLIB=m
+CONFIG_RTLLIB_CRYPTO_CCMP=m
+CONFIG_RTLLIB_CRYPTO_TKIP=m
+CONFIG_RTLLIB_CRYPTO_WEP=m
+CONFIG_RTL8192E=m
+CONFIG_R8712U=m
+CONFIG_R8188EU=m
+CONFIG_88EU_AP_MODE=y
+CONFIG_R8723AU=m
+CONFIG_8723AU_AP_MODE=y
+CONFIG_8723AU_BT_COEXIST=y
+CONFIG_RTS5208=m
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+
+#
+# IIO staging drivers
+#
+
+#
+# Accelerometers
+#
+# CONFIG_ADIS16201 is not set
+# CONFIG_ADIS16203 is not set
+# CONFIG_ADIS16204 is not set
+# CONFIG_ADIS16209 is not set
+# CONFIG_ADIS16220 is not set
+# CONFIG_ADIS16240 is not set
+# CONFIG_LIS3L02DQ is not set
+
+#
+# Analog to digital converters
+#
+# CONFIG_AD7606 is not set
+# CONFIG_AD7780 is not set
+# CONFIG_AD7816 is not set
+# CONFIG_AD7192 is not set
+# CONFIG_AD7280 is not set
+
+#
+# Analog digital bi-direction converters
+#
+# CONFIG_ADT7316 is not set
+
+#
+# Capacitance to digital converters
+#
+# CONFIG_AD7150 is not set
+# CONFIG_AD7152 is not set
+# CONFIG_AD7746 is not set
+
+#
+# Direct Digital Synthesis
+#
+# CONFIG_AD9832 is not set
+# CONFIG_AD9834 is not set
+
+#
+# Digital gyroscope sensors
+#
+# CONFIG_ADIS16060 is not set
+
+#
+# Network Analyzer, Impedance Converters
+#
+# CONFIG_AD5933 is not set
+
+#
+# Light sensors
+#
+# CONFIG_SENSORS_ISL29018 is not set
+# CONFIG_SENSORS_ISL29028 is not set
+# CONFIG_TSL2583 is not set
+# CONFIG_TSL2x7x is not set
+
+#
+# Magnetometer sensors
+#
+# CONFIG_SENSORS_HMC5843_I2C is not set
+# CONFIG_SENSORS_HMC5843_SPI is not set
+
+#
+# Active energy metering IC
+#
+# CONFIG_ADE7753 is not set
+# CONFIG_ADE7754 is not set
+# CONFIG_ADE7758 is not set
+# CONFIG_ADE7759 is not set
+# CONFIG_ADE7854 is not set
+
+#
+# Resolver to digital converters
+#
+# CONFIG_AD2S90 is not set
+# CONFIG_AD2S1200 is not set
+# CONFIG_AD2S1210 is not set
+
+#
+# Triggers - standalone
+#
+# CONFIG_IIO_SIMPLE_DUMMY is not set
+CONFIG_FB_SM7XX=m
+CONFIG_FB_SM750=m
+CONFIG_FB_XGI=m
+CONFIG_FT1000=m
+CONFIG_FT1000_USB=m
+CONFIG_FT1000_PCMCIA=m
+
+#
+# Speakup console speech
+#
+CONFIG_SPEAKUP=y
+CONFIG_SPEAKUP_SYNTH_ACNTSA=y
+CONFIG_SPEAKUP_SYNTH_APOLLO=y
+CONFIG_SPEAKUP_SYNTH_AUDPTR=y
+CONFIG_SPEAKUP_SYNTH_BNS=y
+CONFIG_SPEAKUP_SYNTH_DECTLK=y
+CONFIG_SPEAKUP_SYNTH_DECEXT=y
+CONFIG_SPEAKUP_SYNTH_LTLK=y
+CONFIG_SPEAKUP_SYNTH_SOFT=y
+CONFIG_SPEAKUP_SYNTH_SPKOUT=y
+CONFIG_SPEAKUP_SYNTH_TXPRT=y
+# CONFIG_SPEAKUP_SYNTH_DUMMY is not set
+CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
+# CONFIG_STAGING_MEDIA is not set
+
+#
+# Android
+#
+CONFIG_USB_WPAN_HCD=m
+CONFIG_WIMAX_GDM72XX=m
+# CONFIG_WIMAX_GDM72XX_QOS is not set
+# CONFIG_WIMAX_GDM72XX_K_MODE is not set
+# CONFIG_WIMAX_GDM72XX_WIMAX2 is not set
+CONFIG_WIMAX_GDM72XX_USB=y
+# CONFIG_WIMAX_GDM72XX_SDIO is not set
+# CONFIG_WIMAX_GDM72XX_USB_PM is not set
+CONFIG_LTE_GDM724X=m
+CONFIG_FIREWIRE_SERIAL=m
+CONFIG_FWTTY_MAX_TOTAL_PORTS=64
+CONFIG_FWTTY_MAX_CARD_PORTS=32
+CONFIG_MTD_SPINAND_MT29F=m
+CONFIG_MTD_SPINAND_ONDIEECC=y
+CONFIG_LUSTRE_FS=m
+CONFIG_LUSTRE_OBD_MAX_IOCTL_BUFFER=8192
+# CONFIG_LUSTRE_DEBUG_EXPENSIVE_CHECK is not set
+CONFIG_LUSTRE_LLITE_LLOOP=m
+CONFIG_LNET=m
+CONFIG_LNET_MAX_PAYLOAD=1048576
+# CONFIG_LNET_SELFTEST is not set
+CONFIG_LNET_XPRT_IB=m
+CONFIG_DGNC=m
+CONFIG_DGAP=m
+CONFIG_GS_FPGABOOT=m
+CONFIG_CRYPTO_SKEIN=m
+CONFIG_UNISYSSPAR=y
+CONFIG_UNISYS_VISORUTIL=m
+CONFIG_UNISYS_VISORCHANNEL=m
+CONFIG_UNISYS_VISORCHIPSET=m
+CONFIG_UNISYS_UISLIB=m
+CONFIG_UNISYS_VIRTPCI=m
+CONFIG_UNISYS_VIRTHBA=m
+CONFIG_FB_TFT=m
+CONFIG_FB_TFT_AGM1264K_FL=m
+CONFIG_FB_TFT_BD663474=m
+CONFIG_FB_TFT_HX8340BN=m
+CONFIG_FB_TFT_HX8347D=m
+CONFIG_FB_TFT_HX8353D=m
+CONFIG_FB_TFT_ILI9163=m
+CONFIG_FB_TFT_ILI9320=m
+CONFIG_FB_TFT_ILI9325=m
+CONFIG_FB_TFT_ILI9340=m
+CONFIG_FB_TFT_ILI9341=m
+CONFIG_FB_TFT_ILI9481=m
+CONFIG_FB_TFT_ILI9486=m
+CONFIG_FB_TFT_PCD8544=m
+CONFIG_FB_TFT_RA8875=m
+CONFIG_FB_TFT_S6D02A1=m
+CONFIG_FB_TFT_S6D1121=m
+CONFIG_FB_TFT_SSD1289=m
+CONFIG_FB_TFT_SSD1306=m
+CONFIG_FB_TFT_SSD1331=m
+CONFIG_FB_TFT_SSD1351=m
+CONFIG_FB_TFT_ST7735R=m
+CONFIG_FB_TFT_TINYLCD=m
+CONFIG_FB_TFT_TLS8204=m
+CONFIG_FB_TFT_UC1701=m
+CONFIG_FB_TFT_UPD161704=m
+CONFIG_FB_TFT_WATTEROTT=m
+CONFIG_FB_FLEX=m
+CONFIG_FB_TFT_FBTFT_DEVICE=m
+CONFIG_I2O=m
+CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
+CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_EXT_ADAPTEC_DMA64=y
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_CONFIG_OLD_IOCTL=y
+CONFIG_I2O_BUS=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
+CONFIG_ALIENWARE_WMI=m
+CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_AIO=m
+CONFIG_DELL_SMO8800=m
+CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_FUJITSU_TABLET=m
+CONFIG_AMILO_RFKILL=m
+CONFIG_HP_ACCEL=m
+CONFIG_HP_WIRELESS=m
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_SONY_LAPTOP=m
+CONFIG_SONYPI_COMPAT=y
+CONFIG_IDEAPAD_LAPTOP=m
+CONFIG_THINKPAD_ACPI=m
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_SENSORS_HDAPS=m
+CONFIG_INTEL_MENLOW=m
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_ASUS_WMI=m
+CONFIG_ASUS_NB_WMI=m
+CONFIG_EEEPC_WMI=m
+CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_TOSHIBA_HAPS=m
+CONFIG_ACPI_CMPC=m
+CONFIG_INTEL_IPS=m
+CONFIG_IBM_RTL=m
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_MXM_WMI=m
+CONFIG_INTEL_OAKTRAIL=m
+CONFIG_SAMSUNG_Q10=m
+CONFIG_APPLE_GMUX=m
+CONFIG_INTEL_RST=m
+CONFIG_INTEL_SMARTCONNECT=m
+CONFIG_PVPANIC=m
+CONFIG_CHROME_PLATFORMS=y
+CONFIG_CHROMEOS_LAPTOP=m
+# CONFIG_CHROMEOS_PSTORE is not set
+# CONFIG_CROS_EC_CHARDEV is not set
+# CONFIG_CROS_EC_LPC is not set
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_COMMON_CLK=y
+
+#
+# Common Clock Framework
+#
+# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_PXA is not set
+# CONFIG_COMMON_CLK_CDCE706 is not set
+
+#
+# Hardware Spinlock drivers
+#
+
+#
+# Clock Source drivers
+#
+CONFIG_CLKEVT_I8253=y
+CONFIG_I8253_LOCK=y
+CONFIG_CLKBLD_I8253=y
+# CONFIG_ATMEL_PIT is not set
+# CONFIG_SH_TIMER_CMT is not set
+# CONFIG_SH_TIMER_MTU2 is not set
+# CONFIG_SH_TIMER_TMU is not set
+# CONFIG_EM_TIMER_STI is not set
+CONFIG_MAILBOX=y
+CONFIG_PCC=y
+CONFIG_ALTERA_MBOX=m
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+
+#
+# Generic IOMMU Pagetable Support
+#
+CONFIG_IOMMU_IOVA=y
+CONFIG_AMD_IOMMU=y
+# CONFIG_AMD_IOMMU_STATS is not set
+CONFIG_AMD_IOMMU_V2=m
+CONFIG_DMAR_TABLE=y
+CONFIG_INTEL_IOMMU=y
+CONFIG_INTEL_IOMMU_DEFAULT_ON=y
+CONFIG_INTEL_IOMMU_FLOPPY_WA=y
+CONFIG_IRQ_REMAP=y
+
+#
+# Remoteproc drivers
+#
+CONFIG_REMOTEPROC=m
+CONFIG_STE_MODEM_RPROC=m
+
+#
+# Rpmsg drivers
+#
+
+#
+# SOC (System On Chip) specific Drivers
+#
+CONFIG_SOC_TI=y
+CONFIG_PM_DEVFREQ=y
+
+#
+# DEVFREQ Governors
+#
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m
+CONFIG_DEVFREQ_GOV_PERFORMANCE=m
+CONFIG_DEVFREQ_GOV_POWERSAVE=m
+CONFIG_DEVFREQ_GOV_USERSPACE=m
+
+#
+# DEVFREQ Drivers
+#
+# CONFIG_PM_DEVFREQ_EVENT is not set
+CONFIG_EXTCON=m
+
+#
+# Extcon Device Drivers
+#
+CONFIG_EXTCON_ADC_JACK=m
+CONFIG_EXTCON_GPIO=m
+CONFIG_EXTCON_RT8973A=m
+CONFIG_EXTCON_SM5502=m
+# CONFIG_EXTCON_USB_GPIO is not set
+CONFIG_MEMORY=y
+CONFIG_IIO=m
+# CONFIG_IIO_BUFFER is not set
+# CONFIG_IIO_TRIGGER is not set
+
+#
+# Accelerometers
+#
+# CONFIG_BMA180 is not set
+# CONFIG_BMC150_ACCEL is not set
+# CONFIG_HID_SENSOR_ACCEL_3D is not set
+# CONFIG_IIO_ST_ACCEL_3AXIS is not set
+# CONFIG_KXSD9 is not set
+# CONFIG_MMA8452 is not set
+# CONFIG_KXCJK1013 is not set
+# CONFIG_MMA9551 is not set
+# CONFIG_MMA9553 is not set
+
+#
+# Analog to digital converters
+#
+# CONFIG_AD7266 is not set
+# CONFIG_AD7291 is not set
+# CONFIG_AD7298 is not set
+# CONFIG_AD7476 is not set
+# CONFIG_AD7791 is not set
+# CONFIG_AD7793 is not set
+# CONFIG_AD7887 is not set
+# CONFIG_AD7923 is not set
+# CONFIG_AD799X is not set
+# CONFIG_AXP288_ADC is not set
+# CONFIG_MAX1027 is not set
+# CONFIG_MAX1363 is not set
+# CONFIG_MCP320X is not set
+# CONFIG_MCP3422 is not set
+# CONFIG_NAU7802 is not set
+# CONFIG_QCOM_SPMI_IADC is not set
+# CONFIG_QCOM_SPMI_VADC is not set
+# CONFIG_TI_ADC081C is not set
+# CONFIG_TI_ADC128S052 is not set
+
+#
+# Amplifiers
+#
+# CONFIG_AD8366 is not set
+
+#
+# Hid Sensor IIO Common
+#
+CONFIG_HID_SENSOR_IIO_COMMON=m
+# CONFIG_HID_SENSOR_IIO_TRIGGER is not set
+
+#
+# SSP Sensor Common
+#
+# CONFIG_IIO_SSP_SENSORHUB is not set
+
+#
+# Digital to analog converters
+#
+# CONFIG_AD5064 is not set
+# CONFIG_AD5360 is not set
+# CONFIG_AD5380 is not set
+# CONFIG_AD5421 is not set
+# CONFIG_AD5446 is not set
+# CONFIG_AD5449 is not set
+# CONFIG_AD5504 is not set
+# CONFIG_AD5624R_SPI is not set
+# CONFIG_AD5686 is not set
+# CONFIG_AD5755 is not set
+# CONFIG_AD5764 is not set
+# CONFIG_AD5791 is not set
+# CONFIG_AD7303 is not set
+# CONFIG_MAX517 is not set
+# CONFIG_MCP4725 is not set
+# CONFIG_MCP4922 is not set
+
+#
+# Frequency Synthesizers DDS/PLL
+#
+
+#
+# Clock Generator/Distribution
+#
+# CONFIG_AD9523 is not set
+
+#
+# Phase-Locked Loop (PLL) frequency synthesizers
+#
+# CONFIG_ADF4350 is not set
+
+#
+# Digital gyroscope sensors
+#
+# CONFIG_ADIS16080 is not set
+# CONFIG_ADIS16130 is not set
+# CONFIG_ADIS16136 is not set
+# CONFIG_ADIS16260 is not set
+# CONFIG_ADXRS450 is not set
+# CONFIG_BMG160 is not set
+# CONFIG_HID_SENSOR_GYRO_3D is not set
+# CONFIG_IIO_ST_GYRO_3AXIS is not set
+# CONFIG_ITG3200 is not set
+
+#
+# Humidity sensors
+#
+# CONFIG_DHT11 is not set
+# CONFIG_SI7005 is not set
+# CONFIG_SI7020 is not set
+
+#
+# Inertial measurement units
+#
+# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16480 is not set
+# CONFIG_KMX61 is not set
+# CONFIG_INV_MPU6050_IIO is not set
+
+#
+# Light sensors
+#
+# CONFIG_ADJD_S311 is not set
+# CONFIG_AL3320A is not set
+# CONFIG_APDS9300 is not set
+# CONFIG_CM32181 is not set
+# CONFIG_CM3232 is not set
+# CONFIG_CM3323 is not set
+# CONFIG_CM36651 is not set
+# CONFIG_GP2AP020A00F is not set
+# CONFIG_ISL29125 is not set
+# CONFIG_HID_SENSOR_ALS is not set
+# CONFIG_HID_SENSOR_PROX is not set
+# CONFIG_JSA1212 is not set
+# CONFIG_LTR501 is not set
+# CONFIG_TCS3414 is not set
+# CONFIG_TCS3472 is not set
+# CONFIG_SENSORS_TSL2563 is not set
+# CONFIG_TSL4531 is not set
+# CONFIG_VCNL4000 is not set
+
+#
+# Magnetometer sensors
+#
+# CONFIG_AK8975 is not set
+# CONFIG_AK09911 is not set
+# CONFIG_MAG3110 is not set
+# CONFIG_HID_SENSOR_MAGNETOMETER_3D is not set
+# CONFIG_IIO_ST_MAGN_3AXIS is not set
+
+#
+# Inclinometer sensors
+#
+# CONFIG_HID_SENSOR_INCLINOMETER_3D is not set
+# CONFIG_HID_SENSOR_DEVICE_ROTATION is not set
+
+#
+# Pressure sensors
+#
+# CONFIG_BMP280 is not set
+# CONFIG_HID_SENSOR_PRESS is not set
+# CONFIG_MPL115 is not set
+# CONFIG_MPL3115 is not set
+# CONFIG_MS5611 is not set
+# CONFIG_IIO_ST_PRESS is not set
+# CONFIG_T5403 is not set
+
+#
+# Lightning sensors
+#
+# CONFIG_AS3935 is not set
+
+#
+# Proximity sensors
+#
+# CONFIG_SX9500 is not set
+
+#
+# Temperature sensors
+#
+# CONFIG_MLX90614 is not set
+# CONFIG_TMP006 is not set
+CONFIG_NTB=m
+CONFIG_VME_BUS=y
+
+#
+# VME Bridge Drivers
+#
+CONFIG_VME_CA91CX42=m
+CONFIG_VME_TSI148=m
+
+#
+# VME Board Drivers
+#
+CONFIG_VMIVME_7805=m
+
+#
+# VME Device Drivers
+#
+CONFIG_VME_USER=m
+CONFIG_VME_PIO2=m
+# CONFIG_PWM is not set
+# CONFIG_IPACK_BUS is not set
+CONFIG_RESET_CONTROLLER=y
+# CONFIG_FMC is not set
+
+#
+# PHY Subsystem
+#
+CONFIG_GENERIC_PHY=y
+CONFIG_BCM_KONA_USB2_PHY=m
+CONFIG_PHY_SAMSUNG_USB2=m
+# CONFIG_PHY_EXYNOS4210_USB2 is not set
+# CONFIG_PHY_EXYNOS4X12_USB2 is not set
+# CONFIG_PHY_EXYNOS5250_USB2 is not set
+CONFIG_POWERCAP=y
+CONFIG_INTEL_RAPL=m
+# CONFIG_MCB is not set
+CONFIG_RAS=y
+CONFIG_THUNDERBOLT=m
+
+#
+# Android
+#
+# CONFIG_ANDROID is not set
+
+#
+# Firmware Drivers
+#
+# CONFIG_EDD is not set
+CONFIG_FIRMWARE_MEMMAP=y
+# CONFIG_DELL_RBU is not set
+CONFIG_DCDBAS=m
+CONFIG_DMIID=y
+# CONFIG_DMI_SYSFS is not set
+CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
+CONFIG_ISCSI_IBFT_FIND=y
+# CONFIG_ISCSI_IBFT is not set
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# EFI (Extensible Firmware Interface) Support
+#
+CONFIG_EFI_VARS=m
+CONFIG_EFI_VARS_PSTORE=m
+CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_UEFI_CPER=y
+
+#
+# File systems
+#
+CONFIG_DCACHE_WORD_ACCESS=y
+CONFIG_EXT2_FS=m
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+CONFIG_EXT3_FS=m
+CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=m
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_ENCRYPTION is not set
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_JBD2=m
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=m
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_WARN is not set
+# CONFIG_XFS_DEBUG is not set
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+# CONFIG_OCFS2_FS_STATS is not set
+# CONFIG_OCFS2_DEBUG_MASKLOG is not set
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
+# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
+# CONFIG_BTRFS_DEBUG is not set
+# CONFIG_BTRFS_ASSERT is not set
+CONFIG_NILFS2_FS=m
+CONFIG_F2FS_FS=m
+CONFIG_F2FS_STAT_FS=y
+CONFIG_F2FS_FS_XATTR=y
+CONFIG_F2FS_FS_POSIX_ACL=y
+CONFIG_F2FS_FS_SECURITY=y
+# CONFIG_F2FS_CHECK_FS is not set
+CONFIG_FS_DAX=y
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=y
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+# CONFIG_DNOTIFY is not set
+CONFIG_INOTIFY_USER=y
+# CONFIG_FANOTIFY is not set
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_TREE=m
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_QUOTACTL_COMPAT=y
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=y
+CONFIG_CUSE=m
+CONFIG_OVERLAY_FS=y
+
+#
+# Caches
+#
+CONFIG_FSCACHE=m
+# CONFIG_FSCACHE_STATS is not set
+# CONFIG_FSCACHE_HISTOGRAM is not set
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+# CONFIG_PROC_KCORE is not set
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_KERNFS=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_CONFIGFS_FS=y
+CONFIG_EFIVAR_FS=m
+CONFIG_MISC_FILESYSTEMS=y
+CONFIG_ADFS_FS=m
+# CONFIG_ADFS_FS_RW is not set
+CONFIG_AFFS_FS=m
+CONFIG_ECRYPT_FS=m
+CONFIG_ECRYPT_FS_MESSAGING=y
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_HFSPLUS_FS_POSIX_ACL=y
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+CONFIG_BFS_FS=m
+CONFIG_EFS_FS=m
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_UBIFS_FS=m
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+CONFIG_LOGFS=m
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_FILE_CACHE=y
+# CONFIG_SQUASHFS_FILE_DIRECT is not set
+CONFIG_SQUASHFS_DECOMP_SINGLE=y
+# CONFIG_SQUASHFS_DECOMP_MULTI is not set
+# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_ZLIB=y
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+CONFIG_VXFS_FS=m
+CONFIG_MINIX_FS=m
+CONFIG_OMFS_FS=m
+CONFIG_HPFS_FS=m
+CONFIG_QNX4FS_FS=m
+CONFIG_QNX6FS_FS=m
+# CONFIG_QNX6FS_DEBUG is not set
+CONFIG_ROMFS_FS=m
+CONFIG_ROMFS_BACKED_BY_BLOCK=y
+# CONFIG_ROMFS_BACKED_BY_MTD is not set
+# CONFIG_ROMFS_BACKED_BY_BOTH is not set
+CONFIG_ROMFS_ON_BLOCK=y
+CONFIG_PSTORE=y
+# CONFIG_PSTORE_CONSOLE is not set
+# CONFIG_PSTORE_PMSG is not set
+# CONFIG_PSTORE_RAM is not set
+CONFIG_SYSV_FS=m
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+# CONFIG_EXOFS_FS is not set
+CONFIG_ORE=m
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V2=m
+CONFIG_NFS_V3=m
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=m
+CONFIG_NFS_SWAP=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_PNFS_FILE_LAYOUT=m
+CONFIG_PNFS_BLOCK=m
+CONFIG_PNFS_OBJLAYOUT=m
+CONFIG_PNFS_FLEXFILE_LAYOUT=m
+CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
+CONFIG_NFS_V4_1_MIGRATION=y
+CONFIG_NFS_V4_SECURITY_LABEL=y
+CONFIG_NFS_FSCACHE=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_PNFS=y
+CONFIG_NFSD_V4_SECURITY_LABEL=y
+# CONFIG_NFSD_FAULT_INJECTION is not set
+CONFIG_GRACE_PERIOD=m
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_SUNRPC_BACKCHANNEL=y
+CONFIG_SUNRPC_SWAP=y
+# CONFIG_SUNRPC_DEBUG is not set
+CONFIG_SUNRPC_XPRT_RDMA_CLIENT=m
+CONFIG_SUNRPC_XPRT_RDMA_SERVER=m
+CONFIG_CEPH_FS=m
+CONFIG_CEPH_FSCACHE=y
+CONFIG_CEPH_FS_POSIX_ACL=y
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+CONFIG_CIFS_WEAK_PW_HASH=y
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+CONFIG_CIFS_ACL=y
+# CONFIG_CIFS_DEBUG is not set
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_SMB2=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_NCP_FS=m
+CONFIG_NCPFS_PACKET_SIGNING=y
+CONFIG_NCPFS_IOCTL_LOCKING=y
+CONFIG_NCPFS_STRONG=y
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_SMALLDOS=y
+CONFIG_NCPFS_NLS=y
+CONFIG_NCPFS_EXTRAS=y
+CONFIG_CODA_FS=m
+CONFIG_AFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+CONFIG_AFS_FSCACHE=y
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_9P_FS_SECURITY=y
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_MAC_ROMAN=m
+CONFIG_NLS_MAC_CELTIC=m
+CONFIG_NLS_MAC_CENTEURO=m
+CONFIG_NLS_MAC_CROATIAN=m
+CONFIG_NLS_MAC_CYRILLIC=m
+CONFIG_NLS_MAC_GAELIC=m
+CONFIG_NLS_MAC_GREEK=m
+CONFIG_NLS_MAC_ICELAND=m
+CONFIG_NLS_MAC_INUIT=m
+CONFIG_NLS_MAC_ROMANIAN=m
+CONFIG_NLS_MAC_TURKISH=m
+CONFIG_NLS_UTF8=y
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+
+#
+# printk and dmesg options
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+
+#
+# Compile-time checks and compiler options
+#
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=2048
+CONFIG_STRIP_ASM_SYMS=y
+# CONFIG_READABLE_ASM is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_PAGE_OWNER is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+# CONFIG_FRAME_POINTER is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
+CONFIG_DEBUG_KERNEL=y
+
+#
+# Memory Debugging
+#
+# CONFIG_PAGE_EXTENSION is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+CONFIG_HAVE_ARCH_KASAN=y
+# CONFIG_KASAN is not set
+CONFIG_KASAN_SHADOW_OFFSET=0xdffffc0000000000
+# CONFIG_DEBUG_SHIRQ is not set
+
+#
+# Debug Lockups and Hangs
+#
+# CONFIG_LOCKUP_DETECTOR is not set
+# CONFIG_DETECT_HUNG_TASK is not set
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=0
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_SCHED_STACK_END_CHECK is not set
+# CONFIG_DEBUG_TIMEKEEPING is not set
+# CONFIG_TIMER_STATS is not set
+
+#
+# Lock Debugging (spinlocks, mutexes, etc...)
+#
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_LOCK_TORTURE_TEST is not set
+# CONFIG_STACKTRACE is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_PI_LIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+
+#
+# RCU Debugging
+#
+# CONFIG_PROVE_RCU is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
+# CONFIG_TORTURE_TEST is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=21
+# CONFIG_RCU_CPU_STALL_INFO is not set
+# CONFIG_RCU_TRACE is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_NOTIFIER_ERROR_INJECTION is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_FENTRY=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_TRACING_SUPPORT=y
+# CONFIG_FTRACE is not set
+
+#
+# Runtime Testing
+#
+# CONFIG_LKDTM is not set
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_RBTREE_TEST is not set
+# CONFIG_INTERVAL_TREE_TEST is not set
+# CONFIG_PERCPU_TEST is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+# CONFIG_ASYNC_RAID6_TEST is not set
+# CONFIG_TEST_HEXDUMP is not set
+# CONFIG_TEST_STRING_HELPERS is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_TEST_RHASHTABLE is not set
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_TEST_LKM is not set
+# CONFIG_TEST_USER_COPY is not set
+# CONFIG_TEST_BPF is not set
+# CONFIG_TEST_FIRMWARE is not set
+# CONFIG_TEST_UDELAY is not set
+CONFIG_MEMTEST=y
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+# CONFIG_STRICT_DEVMEM is not set
+CONFIG_X86_VERBOSE_BOOTUP=y
+# CONFIG_EARLY_PRINTK is not set
+# CONFIG_X86_PTDUMP is not set
+CONFIG_DEBUG_RODATA=y
+# CONFIG_DEBUG_RODATA_TEST is not set
+CONFIG_DEBUG_SET_MODULE_RONX=y
+# CONFIG_DEBUG_NX_TEST is not set
+CONFIG_DOUBLEFAULT=y
+# CONFIG_DEBUG_TLBFLUSH is not set
+# CONFIG_IOMMU_DEBUG is not set
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+CONFIG_IO_DELAY_TYPE_NONE=3
+CONFIG_IO_DELAY_0X80=y
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_DELAY_NONE is not set
+CONFIG_DEFAULT_IO_DELAY_TYPE=0
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+# CONFIG_CPA_DEBUG is not set
+CONFIG_OPTIMIZE_INLINING=y
+# CONFIG_DEBUG_NMI_SELFTEST is not set
+# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+CONFIG_PERSISTENT_KEYRINGS=y
+CONFIG_BIG_KEYS=y
+CONFIG_TRUSTED_KEYS=m
+CONFIG_ENCRYPTED_KEYS=y
+CONFIG_SECURITY_DMESG_RESTRICT=y
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_SECURITY_NETWORK_XFRM=y
+CONFIG_SECURITY_PATH=y
+# CONFIG_INTEL_TXT is not set
+CONFIG_LSM_MMAP_MIN_ADDR=65536
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0
+CONFIG_SECURITY_SELINUX_DISABLE=y
+CONFIG_SECURITY_SELINUX_DEVELOP=y
+CONFIG_SECURITY_SELINUX_AVC_STATS=y
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
+# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
+CONFIG_SECURITY_SMACK=y
+# CONFIG_SECURITY_SMACK_BRINGUP is not set
+CONFIG_SECURITY_SMACK_NETFILTER=y
+CONFIG_SECURITY_TOMOYO=y
+CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
+CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
+# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
+CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
+CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0
+CONFIG_SECURITY_APPARMOR_HASH=y
+CONFIG_SECURITY_YAMA=y
+CONFIG_SECURITY_YAMA_STACKED=y
+CONFIG_INTEGRITY=y
+CONFIG_INTEGRITY_SIGNATURE=y
+CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
+CONFIG_INTEGRITY_AUDIT=y
+CONFIG_IMA=y
+CONFIG_IMA_MEASURE_PCR_IDX=10
+CONFIG_IMA_LSM_RULES=y
+# CONFIG_IMA_TEMPLATE is not set
+CONFIG_IMA_NG_TEMPLATE=y
+# CONFIG_IMA_SIG_TEMPLATE is not set
+CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng"
+CONFIG_IMA_DEFAULT_HASH_SHA1=y
+# CONFIG_IMA_DEFAULT_HASH_SHA256 is not set
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
+CONFIG_IMA_DEFAULT_HASH="sha1"
+# CONFIG_IMA_APPRAISE is not set
+CONFIG_EVM=y
+CONFIG_EVM_ATTR_FSUUID=y
+CONFIG_EVM_EXTRA_SMACK_XATTRS=y
+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
+# CONFIG_DEFAULT_SECURITY_SMACK is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
+# CONFIG_DEFAULT_SECURITY_YAMA is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_GF128MUL=y
+CONFIG_CRYPTO_NULL=y
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_MCRYPTD=m
+CONFIG_CRYPTO_AUTHENC=y
+# CONFIG_CRYPTO_TEST is not set
+CONFIG_CRYPTO_ABLK_HELPER=m
+CONFIG_CRYPTO_GLUE_HELPER_X86=m
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=y
+CONFIG_CRYPTO_GCM=y
+CONFIG_CRYPTO_SEQIV=y
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CTR=y
+# CONFIG_CRYPTO_CTS is not set
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+# CONFIG_CRYPTO_PCBC is not set
+CONFIG_CRYPTO_XTS=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_CMAC=m
+CONFIG_CRYPTO_HMAC=y
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_CRC32=m
+CONFIG_CRYPTO_CRC32_PCLMUL=m
+CONFIG_CRYPTO_CRCT10DIF=y
+# CONFIG_CRYPTO_CRCT10DIF_PCLMUL is not set
+CONFIG_CRYPTO_GHASH=y
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_MICHAEL_MIC=m
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA1_SSSE3=m
+CONFIG_CRYPTO_SHA256_SSSE3=m
+CONFIG_CRYPTO_SHA512_SSSE3=m
+# CONFIG_CRYPTO_SHA1_MB is not set
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA512=m
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+# CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_AES_X86_64=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
+# CONFIG_CRYPTO_ANUBIS is not set
+CONFIG_CRYPTO_ARC4=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
+CONFIG_CRYPTO_BLOWFISH_X86_64=m
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAMELLIA_X86_64 is not set
+# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set
+# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set
+CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES3_EDE_X86_64 is not set
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+# CONFIG_CRYPTO_SALSA20_X86_64 is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set
+# CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set
+# CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set
+# CONFIG_CRYPTO_TEA is not set
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_X86_64=m
+CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
+CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+# CONFIG_CRYPTO_ZLIB is not set
+CONFIG_CRYPTO_LZO=m
+# CONFIG_CRYPTO_LZ4 is not set
+# CONFIG_CRYPTO_LZ4HC is not set
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_DRBG_MENU=m
+CONFIG_CRYPTO_DRBG_HMAC=y
+CONFIG_CRYPTO_DRBG_HASH=y
+CONFIG_CRYPTO_DRBG_CTR=y
+CONFIG_CRYPTO_DRBG=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_USER_API_RNG=m
+CONFIG_CRYPTO_HASH_INFO=y
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_DEV_CCP=y
+CONFIG_CRYPTO_DEV_CCP_DD=m
+CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
+CONFIG_CRYPTO_DEV_QAT=m
+CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
+CONFIG_ASYMMETRIC_KEY_TYPE=y
+CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
+CONFIG_PUBLIC_KEY_ALGO_RSA=y
+CONFIG_X509_CERTIFICATE_PARSER=y
+CONFIG_PKCS7_MESSAGE_PARSER=y
+# CONFIG_PKCS7_TEST_KEY is not set
+CONFIG_SIGNED_PE_FILE_VERIFICATION=y
+CONFIG_HAVE_KVM=y
+CONFIG_KVM_COMPAT=y
+CONFIG_VIRTUALIZATION=y
+# CONFIG_KVM is not set
+# CONFIG_BINARY_PRINTF is not set
+
+#
+# Library routines
+#
+CONFIG_RAID6_PQ=m
+CONFIG_BITREVERSE=y
+# CONFIG_HAVE_ARCH_BITREVERSE is not set
+CONFIG_RATIONAL=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_NET_UTILS=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_IO=y
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
+CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=y
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+# CONFIG_CRC32_SELFTEST is not set
+CONFIG_CRC32_SLICEBY8=y
+# CONFIG_CRC32_SLICEBY4 is not set
+# CONFIG_CRC32_SARWATE is not set
+# CONFIG_CRC32_BIT is not set
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+# CONFIG_CRC8 is not set
+# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
+# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_LZ4_COMPRESS=m
+CONFIG_LZ4_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_DECOMPRESS_LZ4=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_REED_SOLOMON=m
+CONFIG_REED_SOLOMON_DEC16=y
+CONFIG_BCH=m
+CONFIG_BCH_CONST_PARAMS=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_BTREE=y
+CONFIG_INTERVAL_TREE=y
+CONFIG_ASSOCIATIVE_ARRAY=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_HAS_DMA=y
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_CPU_RMAP=y
+CONFIG_DQL=y
+CONFIG_GLOB=y
+# CONFIG_GLOB_SELFTEST is not set
+CONFIG_NLATTR=y
+CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
+CONFIG_LRU_CACHE=m
+CONFIG_AVERAGE=y
+CONFIG_CLZ_TAB=y
+CONFIG_CORDIC=m
+# CONFIG_DDR is not set
+CONFIG_MPILIB=y
+CONFIG_SIGNATURE=y
+CONFIG_OID_REGISTRY=y
+CONFIG_UCS2_STRING=y
+CONFIG_FONT_SUPPORT=y
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_ARCH_HAS_SG_CHAIN=y
diff --git a/cauldron/etc/x86_64/linux-4.1.14.config
b/cauldron/etc/x86_64/linux-4.1.14.config
new file mode 100644
index 0000000..7ade7a7
--- /dev/null
+++ b/cauldron/etc/x86_64/linux-4.1.14.config
@@ -0,0 +1,6139 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/x86 4.1.13 Kernel Configuration
+#
+CONFIG_64BIT=y
+CONFIG_X86_64=y
+CONFIG_X86=y
+CONFIG_INSTRUCTION_DECODER=y
+CONFIG_PERF_EVENTS_INTEL_UNCORE=y
+CONFIG_OUTPUT_FORMAT="elf64-x86-64"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_MMU=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
+CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
+CONFIG_ZONE_DMA32=y
+CONFIG_AUDIT_ARCH=y
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_HAVE_INTEL_TXT=y
+CONFIG_X86_64_SMP=y
+CONFIG_X86_HT=y
+CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi
-fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9
-fcall-saved-r10 -fcall-saved-r11"
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_PGTABLE_LEVELS=4
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_IRQ_WORK=y
+CONFIG_BUILDTIME_EXTABLE_SORT=y
+
+#
+# General setup
+#
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+# CONFIG_COMPILE_TEST is not set
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_HAVE_KERNEL_LZ4=y
+# CONFIG_KERNEL_GZIP is not set
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+CONFIG_KERNEL_XZ=y
+# CONFIG_KERNEL_LZO is not set
+# CONFIG_KERNEL_LZ4 is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+# CONFIG_CROSS_MEMORY_ATTACH is not set
+CONFIG_FHANDLE=y
+# CONFIG_USELIB is not set
+CONFIG_AUDIT=y
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_WATCH=y
+CONFIG_AUDIT_TREE=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_LEGACY_ALLOC_HWIRQ=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_GENERIC_MSI_IRQ=y
+# CONFIG_IRQ_DOMAIN_DEBUG is not set
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_ARCH_CLOCKSOURCE_DATA=y
+CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+
+#
+# Timers subsystem
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ_COMMON=y
+# CONFIG_HZ_PERIODIC is not set
+CONFIG_NO_HZ_IDLE=y
+# CONFIG_NO_HZ_FULL is not set
+# CONFIG_NO_HZ is not set
+CONFIG_HIGH_RES_TIMERS=y
+
+#
+# CPU/Task time and stats accounting
+#
+CONFIG_TICK_CPU_ACCOUNTING=y
+# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+CONFIG_SRCU=y
+# CONFIG_TASKS_RCU is not set
+CONFIG_RCU_STALL_COMMON=y
+# CONFIG_RCU_USER_QS is not set
+CONFIG_RCU_FANOUT=64
+CONFIG_RCU_FANOUT_LEAF=16
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_RCU_FAST_NO_HZ is not set
+# CONFIG_TREE_RCU_TRACE is not set
+CONFIG_RCU_KTHREAD_PRIO=0
+# CONFIG_RCU_NOCB_CPU is not set
+# CONFIG_RCU_EXPEDITE_BOOT is not set
+CONFIG_BUILD_BIN2C=y
+CONFIG_IKCONFIG=m
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
+CONFIG_ARCH_SUPPORTS_INT128=y
+CONFIG_NUMA_BALANCING=y
+CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
+CONFIG_CGROUPS=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CPUSETS=y
+# CONFIG_PROC_PID_CPUSET is not set
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_PAGE_COUNTER=y
+CONFIG_MEMCG=y
+# CONFIG_MEMCG_SWAP is not set
+# CONFIG_MEMCG_KMEM is not set
+# CONFIG_CGROUP_HUGETLB is not set
+# CONFIG_CGROUP_PERF is not set
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_BLK_CGROUP=y
+# CONFIG_DEBUG_BLK_CGROUP is not set
+CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+CONFIG_SCHED_AUTOGROUP=y
+# CONFIG_SYSFS_DEPRECATED is not set
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+CONFIG_RD_LZ4=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_HAVE_UID16=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
+CONFIG_BPF=y
+CONFIG_EXPERT=y
+# CONFIG_UID16 is not set
+CONFIG_MULTIUSER=y
+# CONFIG_SGETMASK_SYSCALL is not set
+# CONFIG_SYSFS_SYSCALL is not set
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_ADVISE_SYSCALLS=y
+CONFIG_PCI_QUIRKS=y
+# CONFIG_EMBEDDED is not set
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+CONFIG_SLUB_CPU_PARTIAL=y
+# CONFIG_SYSTEM_TRUSTED_KEYRING is not set
+# CONFIG_PROFILING is not set
+CONFIG_HAVE_OPROFILE=y
+CONFIG_OPROFILE_NMI_TIMER=y
+# CONFIG_KPROBES is not set
+CONFIG_JUMP_LABEL=y
+# CONFIG_UPROBES is not set
+# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_ARCH_USE_BUILTIN_BSWAP=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_KPROBES_ON_FTRACE=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_PERF_EVENTS_NMI=y
+CONFIG_HAVE_PERF_REGS=y
+CONFIG_HAVE_PERF_USER_STACK_DUMP=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
+CONFIG_HAVE_CMPXCHG_LOCAL=y
+CONFIG_HAVE_CMPXCHG_DOUBLE=y
+CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
+CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_SECCOMP_FILTER=y
+CONFIG_HAVE_CC_STACKPROTECTOR=y
+CONFIG_CC_STACKPROTECTOR=y
+# CONFIG_CC_STACKPROTECTOR_NONE is not set
+CONFIG_CC_STACKPROTECTOR_REGULAR=y
+# CONFIG_CC_STACKPROTECTOR_STRONG is not set
+CONFIG_HAVE_CONTEXT_TRACKING=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_HAVE_ARCH_HUGE_VMAP=y
+CONFIG_HAVE_ARCH_SOFT_DIRTY=y
+CONFIG_MODULES_USE_ELF_RELA=y
+CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_COMPAT_OLD_SIGACTION=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+# CONFIG_MODULE_SIG is not set
+# CONFIG_MODULE_COMPRESS is not set
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
+CONFIG_BLK_DEV_INTEGRITY=y
+CONFIG_BLK_DEV_THROTTLING=y
+# CONFIG_BLK_CMDLINE_PARSER is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_AIX_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+# CONFIG_CMDLINE_PARTITION is not set
+CONFIG_BLOCK_COMPAT=y
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_CFQ_GROUP_IOSCHED=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_PADATA=y
+CONFIG_ASN1=y
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+CONFIG_INLINE_READ_UNLOCK=y
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+CONFIG_INLINE_WRITE_UNLOCK=y
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_LOCK_SPIN_ON_OWNER=y
+CONFIG_ARCH_USE_QUEUE_RWLOCK=y
+CONFIG_QUEUE_RWLOCK=y
+CONFIG_FREEZER=y
+
+#
+# Processor type and features
+#
+CONFIG_ZONE_DMA=y
+CONFIG_SMP=y
+CONFIG_X86_FEATURE_NAMES=y
+# CONFIG_X86_X2APIC is not set
+CONFIG_X86_MPPARSE=y
+CONFIG_X86_EXTENDED_PLATFORM=y
+CONFIG_X86_VSMP=y
+# CONFIG_X86_GOLDFISH is not set
+CONFIG_X86_INTEL_LPSS=y
+CONFIG_X86_AMD_PLATFORM_DEVICE=y
+CONFIG_IOSF_MBI=y
+# CONFIG_IOSF_MBI_DEBUG is not set
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_HYPERVISOR_GUEST=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_DEBUG is not set
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+# CONFIG_XEN is not set
+CONFIG_KVM_GUEST=y
+# CONFIG_KVM_DEBUG_FS is not set
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
+CONFIG_PARAVIRT_CLOCK=y
+CONFIG_NO_BOOTMEM=y
+# CONFIG_MK8 is not set
+# CONFIG_MPSC is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_MATOM is not set
+CONFIG_GENERIC_CPU=y
+CONFIG_X86_INTERNODE_CACHE_SHIFT=12
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_TSC=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=64
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_PROCESSOR_SELECT=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_HPET_TIMER=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_DMI=y
+CONFIG_GART_IOMMU=y
+CONFIG_CALGARY_IOMMU=y
+CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
+CONFIG_SWIOTLB=y
+CONFIG_IOMMU_HELPER=y
+# CONFIG_MAXSMP is not set
+CONFIG_NR_CPUS=64
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_MC=y
+# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_VOLUNTARY=y
+# CONFIG_PREEMPT is not set
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_AMD=y
+CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_X86_MCE_INJECT is not set
+CONFIG_X86_THERMAL_VECTOR=y
+# CONFIG_X86_16BIT is not set
+CONFIG_X86_VSYSCALL_EMULATION=y
+CONFIG_I8K=m
+CONFIG_MICROCODE=m
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_X86_MSR=y
+CONFIG_X86_CPUID=y
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_X86_DIRECT_GBPAGES=y
+CONFIG_NUMA=y
+CONFIG_AMD_NUMA=y
+CONFIG_X86_64_ACPI_NUMA=y
+CONFIG_NODES_SPAN_OTHER_NODES=y
+# CONFIG_NUMA_EMU is not set
+CONFIG_NODES_SHIFT=6
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+# CONFIG_ARCH_MEMORY_PROBE is not set
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_NEED_MULTIPLE_NODES=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
+CONFIG_ARCH_DISCARD_MEMBLOCK=y
+CONFIG_MEMORY_ISOLATION=y
+# CONFIG_MOVABLE_NODE is not set
+CONFIG_HAVE_BOOTMEM_INFO_NODE=y
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTPLUG_SPARSE=y
+CONFIG_MEMORY_HOTREMOVE=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
+CONFIG_MEMORY_BALLOON=y
+CONFIG_BALLOON_COMPACTION=y
+CONFIG_COMPACTION=y
+CONFIG_MIGRATION=y
+CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_NEED_BOUNCE_POOL=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+# CONFIG_MEMORY_FAILURE is not set
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+CONFIG_CLEANCACHE=y
+CONFIG_FRONTSWAP=y
+# CONFIG_CMA is not set
+CONFIG_MEM_SOFT_DIRTY=y
+# CONFIG_ZSWAP is not set
+CONFIG_ZPOOL=m
+CONFIG_ZBUD=m
+CONFIG_ZSMALLOC=m
+# CONFIG_PGTABLE_MAPPING is not set
+# CONFIG_ZSMALLOC_STAT is not set
+CONFIG_GENERIC_EARLY_IOREMAP=y
+CONFIG_X86_PMEM_LEGACY=y
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_RESERVE_LOW=64
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_ARCH_RANDOM=y
+CONFIG_X86_SMAP=y
+# CONFIG_X86_INTEL_MPX is not set
+CONFIG_EFI=y
+CONFIG_EFI_STUB=y
+# CONFIG_EFI_MIXED is not set
+CONFIG_SECCOMP=y
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+CONFIG_HZ_1000=y
+CONFIG_HZ=1000
+CONFIG_SCHED_HRTICK=y
+# CONFIG_KEXEC is not set
+# CONFIG_CRASH_DUMP is not set
+CONFIG_PHYSICAL_START=0x1000000
+CONFIG_RELOCATABLE=y
+# CONFIG_RANDOMIZE_BASE is not set
+CONFIG_PHYSICAL_ALIGN=0x200000
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
+# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_HAVE_LIVEPATCH=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y
+
+#
+# Power management and ACPI options
+#
+CONFIG_ARCH_HIBERNATION_HEADER=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATE_CALLBACKS=y
+CONFIG_HIBERNATION=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_AUTOSLEEP=y
+# CONFIG_PM_WAKELOCKS is not set
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_CLK=y
+CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
+CONFIG_ACPI=y
+CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
+CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
+CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
+CONFIG_ACPI_SLEEP=y
+# CONFIG_ACPI_PROCFS_POWER is not set
+# CONFIG_ACPI_EC_DEBUGFS is not set
+CONFIG_ACPI_AC=y
+CONFIG_ACPI_BATTERY=y
+CONFIG_ACPI_BUTTON=y
+CONFIG_ACPI_VIDEO=y
+CONFIG_ACPI_FAN=y
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_PROCESSOR=y
+CONFIG_ACPI_IPMI=m
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_THERMAL=y
+CONFIG_ACPI_NUMA=y
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+# CONFIG_ACPI_INITRD_TABLE_OVERRIDE is not set
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_PCI_SLOT=y
+CONFIG_X86_PM_TIMER=y
+CONFIG_ACPI_CONTAINER=y
+CONFIG_ACPI_HOTPLUG_MEMORY=y
+CONFIG_ACPI_HOTPLUG_IOAPIC=y
+CONFIG_ACPI_SBS=m
+CONFIG_ACPI_HED=y
+# CONFIG_ACPI_CUSTOM_METHOD is not set
+CONFIG_ACPI_BGRT=y
+# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
+CONFIG_HAVE_ACPI_APEI=y
+CONFIG_HAVE_ACPI_APEI_NMI=y
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_GHES=y
+CONFIG_ACPI_APEI_PCIEAER=y
+# CONFIG_ACPI_APEI_EINJ is not set
+# CONFIG_ACPI_APEI_ERST_DEBUG is not set
+CONFIG_ACPI_EXTLOG=m
+# CONFIG_PMIC_OPREGION is not set
+CONFIG_SFI=y
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+# CONFIG_CPU_FREQ_STAT is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+
+#
+# CPU frequency scaling drivers
+#
+CONFIG_X86_INTEL_PSTATE=y
+CONFIG_X86_PCC_CPUFREQ=m
+CONFIG_X86_ACPI_CPUFREQ=m
+CONFIG_X86_ACPI_CPUFREQ_CPB=y
+CONFIG_X86_POWERNOW_K8=m
+CONFIG_X86_AMD_FREQ_SENSITIVITY=m
+CONFIG_X86_SPEEDSTEP_CENTRINO=m
+CONFIG_X86_P4_CLOCKMOD=m
+
+#
+# shared options
+#
+CONFIG_X86_SPEEDSTEP_LIB=m
+
+#
+# CPU Idle
+#
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
+CONFIG_INTEL_IDLE=y
+
+#
+# Memory power savings
+#
+CONFIG_I7300_IDLE_IOAT_CHANNEL=y
+CONFIG_I7300_IDLE=m
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_DOMAINS=y
+# CONFIG_PCI_CNB20LE_QUIRK is not set
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=y
+CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_PERFORMANCE is not set
+CONFIG_PCIE_PME=y
+CONFIG_PCI_BUS_ADDR_T_64BIT=y
+CONFIG_PCI_MSI=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_REALLOC_ENABLE_AUTO=y
+CONFIG_PCI_STUB=m
+CONFIG_HT_IRQ=y
+CONFIG_PCI_ATS=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_PRI=y
+CONFIG_PCI_PASID=y
+CONFIG_PCI_LABEL=y
+
+#
+# PCI host controller drivers
+#
+CONFIG_ISA_DMA_API=y
+CONFIG_AMD_NB=y
+CONFIG_PCCARD=m
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_PCCARD_NONSTATIC=y
+CONFIG_HOTPLUG_PCI=y
+# CONFIG_HOTPLUG_PCI_ACPI is not set
+# CONFIG_HOTPLUG_PCI_CPCI is not set
+# CONFIG_HOTPLUG_PCI_SHPC is not set
+CONFIG_RAPIDIO=m
+CONFIG_RAPIDIO_TSI721=m
+CONFIG_RAPIDIO_DISC_TIMEOUT=30
+CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS=y
+CONFIG_RAPIDIO_DMA_ENGINE=y
+# CONFIG_RAPIDIO_DEBUG is not set
+CONFIG_RAPIDIO_ENUM_BASIC=m
+
+#
+# RapidIO Switch drivers
+#
+CONFIG_RAPIDIO_TSI57X=m
+CONFIG_RAPIDIO_CPS_XX=m
+CONFIG_RAPIDIO_TSI568=m
+CONFIG_RAPIDIO_CPS_GEN2=m
+CONFIG_X86_SYSFB=y
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_COMPAT_BINFMT_ELF=y
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_BINFMT_SCRIPT=y
+# CONFIG_HAVE_AOUT is not set
+CONFIG_BINFMT_MISC=m
+CONFIG_COREDUMP=y
+CONFIG_IA32_EMULATION=y
+# CONFIG_IA32_AOUT is not set
+CONFIG_X86_X32=y
+CONFIG_COMPAT=y
+CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_KEYS_COMPAT=y
+CONFIG_X86_DEV_DMA_OPS=y
+CONFIG_PMC_ATOM=y
+CONFIG_NET=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_DIAG=y
+CONFIG_UNIX=y
+CONFIG_UNIX_DIAG=y
+CONFIG_XFRM=y
+CONFIG_XFRM_ALGO=y
+CONFIG_XFRM_USER=y
+CONFIG_XFRM_SUB_POLICY=y
+CONFIG_XFRM_MIGRATE=y
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=m
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+# CONFIG_IP_FIB_TRIE_STATS is not set
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_CLASSID=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IP_TUNNEL=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+CONFIG_IP_MROUTE=y
+CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_SYN_COOKIES=y
+CONFIG_NET_IPVTI=m
+CONFIG_NET_UDP_TUNNEL=m
+CONFIG_NET_FOU=m
+CONFIG_NET_FOU_IP_TUNNELS=y
+CONFIG_GENEVE=m
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_LRO=m
+CONFIG_INET_DIAG=m
+CONFIG_INET_TCP_DIAG=m
+CONFIG_INET_UDP_DIAG=m
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_TCP_CONG_DCTCP=m
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+CONFIG_TCP_MD5SIG=y
+CONFIG_IPV6=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_VTI=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_GRE=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+CONFIG_IPV6_MROUTE=y
+CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IPV6_PIMSM_V2=y
+CONFIG_NETLABEL=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NET_PTP_CLASSIFY=y
+# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=m
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_ACCT=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_LOG_COMMON=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+# CONFIG_NF_CONNTRACK_PROCFS is not set
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMEOUT=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CONNTRACK_LABELS=y
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_CT_NETLINK_TIMEOUT=m
+CONFIG_NF_CT_NETLINK_HELPER=m
+CONFIG_NETFILTER_NETLINK_QUEUE_CT=y
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_REDIRECT=m
+CONFIG_NETFILTER_SYNPROXY=m
+CONFIG_NF_TABLES=m
+CONFIG_NF_TABLES_INET=m
+CONFIG_NFT_EXTHDR=m
+CONFIG_NFT_META=m
+CONFIG_NFT_CT=m
+CONFIG_NFT_RBTREE=m
+CONFIG_NFT_HASH=m
+CONFIG_NFT_COUNTER=m
+CONFIG_NFT_LOG=m
+CONFIG_NFT_LIMIT=m
+CONFIG_NFT_MASQ=m
+CONFIG_NFT_REDIR=m
+CONFIG_NFT_NAT=m
+CONFIG_NFT_QUEUE=m
+CONFIG_NFT_REJECT=m
+CONFIG_NFT_REJECT_INET=m
+CONFIG_NFT_COMPAT=m
+CONFIG_NETFILTER_XTABLES=y
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+# CONFIG_NETFILTER_XT_SET is not set
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+# CONFIG_NETFILTER_XT_TARGET_CT is not set
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_HMARK=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_NAT=m
+CONFIG_NETFILTER_XT_TARGET_NETMAP=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_BPF=m
+CONFIG_NETFILTER_XT_MATCH_CGROUP=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ECN=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+# CONFIG_NETFILTER_XT_MATCH_IPVS is not set
+CONFIG_NETFILTER_XT_MATCH_L2TP=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_NFACCT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_MAX=256
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPMARK=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_MAC=m
+CONFIG_IP_SET_HASH_NETPORTNET=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETNET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETIFACE=m
+CONFIG_IP_SET_LIST_SET=m
+CONFIG_IP_VS=m
+CONFIG_IP_VS_IPV6=y
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+
+#
+# IPVS transport protocol load balancing support
+#
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+
+#
+# IPVS scheduler
+#
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_FO=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+
+#
+# IPVS SH scheduler
+#
+CONFIG_IP_VS_SH_TAB_BITS=8
+
+#
+# IPVS application helper
+#
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_NFCT=y
+CONFIG_IP_VS_PE_SIP=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_TABLES_IPV4=m
+CONFIG_NFT_CHAIN_ROUTE_IPV4=m
+CONFIG_NFT_REJECT_IPV4=m
+CONFIG_NF_TABLES_ARP=m
+CONFIG_NF_LOG_ARP=m
+CONFIG_NF_LOG_IPV4=m
+CONFIG_NF_REJECT_IPV4=m
+CONFIG_NF_NAT_IPV4=m
+CONFIG_NFT_CHAIN_NAT_IPV4=m
+CONFIG_NF_NAT_MASQUERADE_IPV4=m
+CONFIG_NFT_MASQ_IPV4=m
+CONFIG_NFT_REDIR_IPV4=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_RPFILTER=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_SYNPROXY=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_NF_TABLES_IPV6=m
+CONFIG_NFT_CHAIN_ROUTE_IPV6=m
+CONFIG_NFT_REJECT_IPV6=m
+CONFIG_NF_REJECT_IPV6=m
+CONFIG_NF_LOG_IPV6=m
+CONFIG_NF_NAT_IPV6=m
+CONFIG_NFT_CHAIN_NAT_IPV6=m
+CONFIG_NF_NAT_MASQUERADE_IPV6=m
+CONFIG_NFT_MASQ_IPV6=m
+CONFIG_NFT_REDIR_IPV6=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RPFILTER=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_TARGET_SYNPROXY=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+CONFIG_IP6_NF_TARGET_NPT=m
+
+#
+# DECnet: Netfilter Configuration
+#
+CONFIG_DECNET_NF_GRABULATOR=m
+CONFIG_NF_TABLES_BRIDGE=m
+CONFIG_NFT_BRIDGE_META=m
+CONFIG_NFT_BRIDGE_REJECT=m
+CONFIG_NF_LOG_BRIDGE=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_TFRC_LIB=y
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
+# CONFIG_SCTP_COOKIE_HMAC_MD5 is not set
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+CONFIG_RDS=m
+# CONFIG_RDS_RDMA is not set
+CONFIG_RDS_TCP=m
+# CONFIG_RDS_DEBUG is not set
+CONFIG_TIPC=m
+# CONFIG_TIPC_MEDIA_IB is not set
+CONFIG_TIPC_MEDIA_UDP=y
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_L2TP=m
+# CONFIG_L2TP_DEBUGFS is not set
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
+CONFIG_STP=m
+CONFIG_GARP=m
+CONFIG_MRP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_HAVE_NET_DSA=y
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+CONFIG_DECNET=m
+CONFIG_DECNET_ROUTER=y
+CONFIG_LLC=m
+CONFIG_LLC2=m
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_X25=m
+CONFIG_LAPB=m
+CONFIG_PHONET=m
+CONFIG_6LOWPAN=m
+CONFIG_6LOWPAN_NHC=m
+CONFIG_6LOWPAN_NHC_DEST=m
+CONFIG_6LOWPAN_NHC_FRAGMENT=m
+CONFIG_6LOWPAN_NHC_HOP=m
+CONFIG_6LOWPAN_NHC_IPV6=m
+CONFIG_6LOWPAN_NHC_MOBILITY=m
+CONFIG_6LOWPAN_NHC_ROUTING=m
+CONFIG_6LOWPAN_NHC_UDP=m
+CONFIG_IEEE802154=m
+CONFIG_IEEE802154_SOCKET=m
+# CONFIG_IEEE802154_6LOWPAN is not set
+# CONFIG_MAC802154 is not set
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_CODEL=m
+CONFIG_NET_SCH_FQ_CODEL=m
+CONFIG_NET_SCH_FQ=m
+CONFIG_NET_SCH_HHF=m
+CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_SCH_PLUG=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_PERF=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=m
+CONFIG_NET_CLS_BPF=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_TEXT=m
+# CONFIG_NET_EMATCH_IPSET is not set
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+# CONFIG_NET_ACT_SIMP is not set
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_NET_ACT_VLAN=m
+CONFIG_NET_ACT_BPF=m
+# CONFIG_NET_ACT_CONNMARK is not set
+# CONFIG_NET_CLS_IND is not set
+CONFIG_NET_SCH_FIFO=y
+CONFIG_DCB=y
+CONFIG_DNS_RESOLVER=y
+CONFIG_BATMAN_ADV=m
+CONFIG_BATMAN_ADV_BLA=y
+CONFIG_BATMAN_ADV_DAT=y
+CONFIG_BATMAN_ADV_NC=y
+CONFIG_BATMAN_ADV_MCAST=y
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_OPENVSWITCH=m
+CONFIG_OPENVSWITCH_GRE=m
+CONFIG_OPENVSWITCH_VXLAN=m
+CONFIG_OPENVSWITCH_GENEVE=m
+CONFIG_VSOCKETS=m
+# CONFIG_VMWARE_VMCI_VSOCKETS is not set
+CONFIG_NETLINK_MMAP=y
+CONFIG_NETLINK_DIAG=m
+CONFIG_MPLS=y
+CONFIG_NET_MPLS_GSO=m
+# CONFIG_MPLS_ROUTING is not set
+CONFIG_HSR=m
+# CONFIG_NET_SWITCHDEV is not set
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_CGROUP_NET_CLASSID=y
+CONFIG_NET_RX_BUSY_POLL=y
+CONFIG_BQL=y
+CONFIG_BPF_JIT=y
+CONFIG_NET_FLOW_LIMIT=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+CONFIG_BT=m
+CONFIG_BT_BREDR=y
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+# CONFIG_BT_CMTP is not set
+CONFIG_BT_HIDP=m
+CONFIG_BT_LE=y
+CONFIG_BT_6LOWPAN=m
+# CONFIG_BT_SELFTEST is not set
+CONFIG_BT_DEBUGFS=y
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_INTEL=m
+CONFIG_BT_BCM=m
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTUSB_BCM=y
+# CONFIG_BT_HCIBTSDIO is not set
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIUART_3WIRE=y
+# CONFIG_BT_HCIUART_INTEL is not set
+# CONFIG_BT_HCIUART_BCM is not set
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBTUART=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+# CONFIG_BT_MRVL_SDIO is not set
+CONFIG_BT_ATH3K=m
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+# CONFIG_RXKAD is not set
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=y
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+CONFIG_CFG80211_WEXT_EXPORT=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=y
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL_HT=y
+CONFIG_MAC80211_RC_MINSTREL_VHT=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_MESSAGE_TRACING is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_RFKILL=y
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+# CONFIG_RFKILL_GPIO is not set
+CONFIG_NET_9P=m
+# CONFIG_NET_9P_VIRTIO is not set
+# CONFIG_NET_9P_RDMA is not set
+# CONFIG_NET_9P_DEBUG is not set
+CONFIG_CAIF=m
+# CONFIG_CAIF_DEBUG is not set
+CONFIG_CAIF_NETDEV=m
+CONFIG_CAIF_USB=m
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+CONFIG_NFC=m
+CONFIG_NFC_DIGITAL=m
+CONFIG_NFC_NCI=m
+# CONFIG_NFC_NCI_SPI is not set
+CONFIG_NFC_HCI=m
+CONFIG_NFC_SHDLC=y
+
+#
+# Near Field Communication (NFC) devices
+#
+CONFIG_NFC_PN533=m
+# CONFIG_NFC_TRF7970A is not set
+# CONFIG_NFC_SIM is not set
+CONFIG_NFC_PORT100=m
+CONFIG_NFC_PN544=m
+CONFIG_NFC_PN544_I2C=m
+CONFIG_NFC_MICROREAD=m
+CONFIG_NFC_MICROREAD_I2C=m
+CONFIG_NFC_MRVL=m
+CONFIG_NFC_MRVL_USB=m
+CONFIG_NFC_ST21NFCA=m
+CONFIG_NFC_ST21NFCA_I2C=m
+CONFIG_NFC_ST21NFCB=m
+CONFIG_NFC_ST21NFCB_I2C=m
+# CONFIG_NFC_NXP_NCI is not set
+CONFIG_HAVE_BPF_JIT=y
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER=y
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
+CONFIG_WANT_DEV_COREDUMP=y
+# CONFIG_ALLOW_DEV_COREDUMP is not set
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_GENERIC_CPU_DEVICES is not set
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_SPI=y
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGMAP_IRQ=y
+CONFIG_DMA_SHARED_BUFFER=y
+# CONFIG_FENCE_TRACE is not set
+
+#
+# Bus devices
+#
+CONFIG_CONNECTOR=y
+# CONFIG_PROC_EVENTS is not set
+CONFIG_MTD=m
+# CONFIG_MTD_TESTS is not set
+CONFIG_MTD_REDBOOT_PARTS=m
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+CONFIG_MTD_CMDLINE_PARTS=m
+CONFIG_MTD_AR7_PARTS=m
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_FTL=m
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_INFTL=m
+CONFIG_RFD_FTL=m
+CONFIG_SSFDC=m
+CONFIG_SM_FTL=m
+# CONFIG_MTD_OOPS is not set
+CONFIG_MTD_SWAP=m
+# CONFIG_MTD_PARTITIONED_MASTER is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_GEN_PROBE=m
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_NOSWAP=y
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+CONFIG_MTD_CFI_GEOMETRY=y
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+CONFIG_MTD_MAP_BANK_WIDTH_8=y
+CONFIG_MTD_MAP_BANK_WIDTH_16=y
+CONFIG_MTD_MAP_BANK_WIDTH_32=y
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+CONFIG_MTD_CFI_I4=y
+CONFIG_MTD_CFI_I8=y
+# CONFIG_MTD_OTP is not set
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_ROM=m
+CONFIG_MTD_ABSENT=m
+
+#
+# Mapping drivers for chip access
+#
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+CONFIG_MTD_PHYSMAP=m
+# CONFIG_MTD_PHYSMAP_COMPAT is not set
+CONFIG_MTD_SBC_GXX=m
+CONFIG_MTD_AMD76XROM=m
+CONFIG_MTD_ICHXROM=m
+CONFIG_MTD_ESB2ROM=m
+CONFIG_MTD_CK804XROM=m
+CONFIG_MTD_SCB2_FLASH=m
+CONFIG_MTD_NETtel=m
+CONFIG_MTD_L440GX=m
+CONFIG_MTD_PCI=m
+CONFIG_MTD_PCMCIA=m
+# CONFIG_MTD_PCMCIA_ANONYMOUS is not set
+# CONFIG_MTD_GPIO_ADDR is not set
+CONFIG_MTD_INTEL_VR_NOR=m
+CONFIG_MTD_PLATRAM=m
+CONFIG_MTD_LATCH_ADDR=m
+
+#
+# Self-contained MTD device drivers
+#
+CONFIG_MTD_PMC551=m
+# CONFIG_MTD_PMC551_BUGFIX is not set
+# CONFIG_MTD_PMC551_DEBUG is not set
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SST25L is not set
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_PHRAM=m
+# CONFIG_MTD_MTDRAM is not set
+CONFIG_MTD_BLOCK2MTD=m
+
+#
+# Disk-On-Chip Device Drivers
+#
+CONFIG_MTD_DOCG3=m
+CONFIG_BCH_CONST_M=14
+CONFIG_BCH_CONST_T=4
+CONFIG_MTD_NAND_ECC=m
+CONFIG_MTD_NAND_ECC_SMC=y
+CONFIG_MTD_NAND=m
+CONFIG_MTD_NAND_BCH=m
+CONFIG_MTD_NAND_ECC_BCH=y
+CONFIG_MTD_SM_COMMON=m
+CONFIG_MTD_NAND_DENALI=m
+CONFIG_MTD_NAND_DENALI_PCI=m
+CONFIG_MTD_NAND_DENALI_DT=m
+CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018
+# CONFIG_MTD_NAND_GPIO is not set
+# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_RICOH=m
+CONFIG_MTD_NAND_DISKONCHIP=m
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+CONFIG_MTD_NAND_DOCG4=m
+CONFIG_MTD_NAND_CAFE=m
+CONFIG_MTD_NAND_NANDSIM=m
+CONFIG_MTD_NAND_PLATFORM=m
+CONFIG_MTD_NAND_HISI504=m
+CONFIG_MTD_ONENAND=m
+CONFIG_MTD_ONENAND_VERIFY_WRITE=y
+CONFIG_MTD_ONENAND_GENERIC=m
+CONFIG_MTD_ONENAND_OTP=y
+CONFIG_MTD_ONENAND_2X_PROGRAM=y
+
+#
+# LPDDR & LPDDR2 PCM memory drivers
+#
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_QINFO_PROBE=m
+CONFIG_MTD_SPI_NOR=m
+# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_LIMIT=20
+# CONFIG_MTD_UBI_FASTMAP is not set
+# CONFIG_MTD_UBI_GLUEBI is not set
+CONFIG_MTD_UBI_BLOCK=y
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_GSC is not set
+CONFIG_PARPORT_AX88796=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_PNP=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+
+#
+# Protocols
+#
+CONFIG_PNPACPI=y
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_NULL_BLK is not set
+CONFIG_BLK_DEV_FD=m
+CONFIG_PARIDE=m
+
+#
+# Parallel IDE high-level drivers
+#
+CONFIG_PARIDE_PD=m
+CONFIG_PARIDE_PCD=m
+CONFIG_PARIDE_PF=m
+CONFIG_PARIDE_PT=m
+CONFIG_PARIDE_PG=m
+
+#
+# Parallel IDE protocol modules
+#
+CONFIG_PARIDE_ATEN=m
+CONFIG_PARIDE_BPCK=m
+CONFIG_PARIDE_COMM=m
+CONFIG_PARIDE_DSTR=m
+CONFIG_PARIDE_FIT2=m
+CONFIG_PARIDE_FIT3=m
+CONFIG_PARIDE_EPAT=m
+CONFIG_PARIDE_EPATC8=y
+CONFIG_PARIDE_EPIA=m
+CONFIG_PARIDE_FRIQ=m
+CONFIG_PARIDE_FRPW=m
+CONFIG_PARIDE_KBIC=m
+CONFIG_PARIDE_KTTI=m
+CONFIG_PARIDE_ON20=m
+CONFIG_PARIDE_ON26=m
+CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
+CONFIG_ZRAM=m
+CONFIG_ZRAM_LZ4_COMPRESS=y
+# CONFIG_ZRAM_DEBUG is not set
+CONFIG_BLK_CPQ_CISS_DA=m
+CONFIG_CISS_SCSI_TAPE=y
+CONFIG_BLK_DEV_DAC960=m
+CONFIG_BLK_DEV_UMEM=m
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DRBD=m
+# CONFIG_DRBD_FAULT_INJECTION is not set
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_NVME=m
+CONFIG_BLK_DEV_SKD=m
+# CONFIG_BLK_DEV_OSD is not set
+CONFIG_BLK_DEV_SX8=m
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_BLK_DEV_RAM_DAX=y
+# CONFIG_BLK_DEV_PMEM is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+CONFIG_CDROM_PKTCDVD_WCACHE=y
+CONFIG_ATA_OVER_ETH=m
+# CONFIG_VIRTIO_BLK is not set
+CONFIG_BLK_DEV_HD=y
+CONFIG_BLK_DEV_RBD=m
+CONFIG_BLK_DEV_RSXX=m
+
+#
+# Misc devices
+#
+CONFIG_SENSORS_LIS3LV02D=m
+# CONFIG_AD525X_DPOT is not set
+# CONFIG_DUMMY_IRQ is not set
+CONFIG_IBM_ASM=m
+CONFIG_PHANTOM=m
+CONFIG_SGI_IOC4=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
+CONFIG_ICS932S401=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_HP_ILO=m
+CONFIG_APDS9802ALS=m
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_BH1780=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_APDS990X=m
+# CONFIG_HMC6352 is not set
+# CONFIG_DS1682 is not set
+# CONFIG_TI_DAC7512 is not set
+CONFIG_VMWARE_BALLOON=m
+# CONFIG_BMP085_I2C is not set
+# CONFIG_BMP085_SPI is not set
+CONFIG_USB_SWITCH_FSA9480=m
+# CONFIG_LATTICE_ECP3_CONFIG is not set
+CONFIG_SRAM=y
+CONFIG_C2PORT=m
+CONFIG_C2PORT_DURAMAR_2150=m
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_EEPROM_93XX46=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+
+#
+# Texas Instruments shared transport line discipline
+#
+# CONFIG_TI_ST is not set
+# CONFIG_SENSORS_LIS3_I2C is not set
+
+#
+# Altera FPGA firmware download module
+#
+CONFIG_ALTERA_STAPL=m
+CONFIG_VMWARE_VMCI=m
+
+#
+# Intel MIC Bus Driver
+#
+CONFIG_INTEL_MIC_BUS=m
+
+#
+# Intel MIC Host Driver
+#
+CONFIG_INTEL_MIC_HOST=m
+
+#
+# Intel MIC Card Driver
+#
+CONFIG_INTEL_MIC_CARD=m
+CONFIG_GENWQE=m
+CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0
+CONFIG_ECHO=m
+# CONFIG_CXL_BASE is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+CONFIG_RAID_ATTRS=y
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_NETLINK=y
+# CONFIG_SCSI_MQ_DEFAULT is not set
+# CONFIG_SCSI_PROC_FS is not set
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+CONFIG_CHR_DEV_ST=y
+CONFIG_CHR_DEV_OSST=y
+CONFIG_BLK_DEV_SR=y
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=y
+CONFIG_CHR_DEV_SCH=y
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_CONSTANTS=y
+# CONFIG_SCSI_LOGGING is not set
+CONFIG_SCSI_SCAN_ASYNC=y
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=y
+CONFIG_SCSI_FC_ATTRS=y
+CONFIG_SCSI_ISCSI_ATTRS=y
+CONFIG_SCSI_SAS_ATTRS=y
+CONFIG_SCSI_SAS_LIBSAS=y
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+CONFIG_SCSI_SRP_ATTRS=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
+CONFIG_SCSI_BNX2_ISCSI=m
+# CONFIG_SCSI_BNX2X_FCOE is not set
+CONFIG_BE2ISCSI=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=5000
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=5000
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC94XX=m
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_MVSAS_TASKLET=y
+CONFIG_SCSI_MVUMI=m
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_ESAS2R=m
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_SAS=m
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+# CONFIG_SCSI_MPT2SAS_LOGGING is not set
+CONFIG_SCSI_MPT3SAS=m
+CONFIG_SCSI_MPT3SAS_MAX_SGE=128
+# CONFIG_SCSI_MPT3SAS_LOGGING is not set
+CONFIG_SCSI_UFSHCD=m
+CONFIG_SCSI_UFSHCD_PCI=m
+CONFIG_SCSI_UFSHCD_PLATFORM=m
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_BUSLOGIC=m
+CONFIG_SCSI_FLASHPOINT=y
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_EATA=m
+CONFIG_SCSI_EATA_TAGGED_QUEUE=y
+CONFIG_SCSI_EATA_LINKED_COMMANDS=y
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_ISCI=m
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+CONFIG_SCSI_IZIP_EPP16=y
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_IPR=m
+CONFIG_SCSI_IPR_TRACE=y
+CONFIG_SCSI_IPR_DUMP=y
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLA_FC=m
+# CONFIG_TCM_QLA2XXX is not set
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_WD719X=m
+# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_VIRTIO=m
+CONFIG_SCSI_CHELSIO_FCOE=m
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_SCSI_DH=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=1
+# CONFIG_SCSI_OSD_DEBUG is not set
+CONFIG_ATA=y
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA_ACPI=y
+CONFIG_SATA_ZPODD=y
+CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+# CONFIG_SATA_INIC162X is not set
+CONFIG_SATA_ACARD_AHCI=m
+CONFIG_SATA_SIL24=m
+CONFIG_ATA_SFF=y
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+# CONFIG_SATA_SX4 is not set
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
+CONFIG_ATA_PIIX=m
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+
+#
+# PATA SFF controllers with BMDMA
+#
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_HPT3X2N=m
+CONFIG_PATA_HPT3X3=m
+CONFIG_PATA_HPT3X3_DMA=y
+# CONFIG_PATA_IT8213 is not set
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OLDPIIX=m
+# CONFIG_PATA_OPTIDMA is not set
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+# CONFIG_PATA_RADISYS is not set
+CONFIG_PATA_RDC=m
+CONFIG_PATA_SCH=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_SIS=m
+# CONFIG_PATA_TOSHIBA is not set
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+
+#
+# PIO-only SFF controllers
+#
+# CONFIG_PATA_CMD640_PCI is not set
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NS87410=m
+# CONFIG_PATA_OPTI is not set
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PLATFORM=m
+CONFIG_PATA_RZ1000=m
+
+#
+# Generic fallback / legacy drivers
+#
+CONFIG_PATA_ACPI=m
+CONFIG_ATA_GENERIC=m
+# CONFIG_PATA_LEGACY is not set
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=y
+CONFIG_MD_AUTODETECT=y
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+CONFIG_MD_MULTIPATH=m
+# CONFIG_MD_FAULTY is not set
+# CONFIG_MD_CLUSTER is not set
+CONFIG_BCACHE=m
+# CONFIG_BCACHE_DEBUG is not set
+# CONFIG_BCACHE_CLOSURES_DEBUG is not set
+CONFIG_BLK_DEV_DM_BUILTIN=y
+CONFIG_BLK_DEV_DM=y
+# CONFIG_DM_MQ_DEFAULT is not set
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
+CONFIG_DM_BIO_PRISON=m
+CONFIG_DM_PERSISTENT_DATA=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+# CONFIG_DM_CACHE is not set
+# CONFIG_DM_ERA is not set
+CONFIG_DM_MIRROR=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_RAID=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_DELAY=m
+CONFIG_DM_UEVENT=y
+CONFIG_DM_FLAKEY=m
+CONFIG_DM_VERITY=m
+# CONFIG_DM_SWITCH is not set
+# CONFIG_DM_LOG_WRITES is not set
+CONFIG_TARGET_CORE=m
+CONFIG_TCM_IBLOCK=m
+CONFIG_TCM_FILEIO=m
+CONFIG_TCM_PSCSI=m
+CONFIG_TCM_USER2=m
+CONFIG_LOOPBACK_TARGET=m
+CONFIG_TCM_FC=m
+CONFIG_ISCSI_TARGET=m
+CONFIG_SBP_TARGET=m
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_CTL=m
+CONFIG_FUSION_LAN=m
+# CONFIG_FUSION_LOGGING is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_NET=m
+# CONFIG_FIREWIRE_NOSY is not set
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MAC_EMUMOUSEBTN=m
+CONFIG_NETDEVICES=y
+CONFIG_MII=m
+CONFIG_NET_CORE=y
+CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_EQUALIZER=m
+CONFIG_NET_FC=y
+CONFIG_IFB=m
+CONFIG_NET_TEAM=m
+CONFIG_NET_TEAM_MODE_BROADCAST=m
+CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
+CONFIG_NET_TEAM_MODE_RANDOM=m
+CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
+CONFIG_NET_TEAM_MODE_LOADBALANCE=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_IPVLAN=m
+CONFIG_VXLAN=m
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+CONFIG_NET_POLL_CONTROLLER=y
+# CONFIG_NTB_NETDEV is not set
+CONFIG_RIONET=m
+CONFIG_RIONET_TX_SIZE=128
+CONFIG_RIONET_RX_SIZE=128
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_VIRTIO_NET=m
+CONFIG_NLMON=m
+CONFIG_SUNGEM_PHY=m
+CONFIG_ARCNET=m
+CONFIG_ARCNET_1201=m
+CONFIG_ARCNET_1051=m
+CONFIG_ARCNET_RAW=m
+CONFIG_ARCNET_CAP=m
+CONFIG_ARCNET_COM90xx=m
+CONFIG_ARCNET_COM90xxIO=m
+CONFIG_ARCNET_RIM_I=m
+CONFIG_ARCNET_COM20020=m
+CONFIG_ARCNET_COM20020_PCI=m
+CONFIG_ARCNET_COM20020_CS=m
+CONFIG_ATM_DRIVERS=y
+CONFIG_ATM_DUMMY=m
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+CONFIG_ATM_ENI_TUNE_BURST=y
+# CONFIG_ATM_ENI_BURST_TX_16W is not set
+CONFIG_ATM_ENI_BURST_TX_8W=y
+CONFIG_ATM_ENI_BURST_TX_4W=y
+CONFIG_ATM_ENI_BURST_TX_2W=y
+# CONFIG_ATM_ENI_BURST_RX_16W is not set
+# CONFIG_ATM_ENI_BURST_RX_8W is not set
+CONFIG_ATM_ENI_BURST_RX_4W=y
+CONFIG_ATM_ENI_BURST_RX_2W=y
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+CONFIG_ATM_NICSTAR_USE_IDT77105=y
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+CONFIG_ATM_FORE200E_USE_TASKLET=y
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+CONFIG_ATM_HE_USE_SUNI=y
+CONFIG_ATM_SOLOS=m
+
+#
+# CAIF transport drivers
+#
+CONFIG_CAIF_TTY=m
+CONFIG_CAIF_SPI_SLAVE=m
+CONFIG_CAIF_SPI_SYNC=y
+CONFIG_CAIF_HSI=m
+# CONFIG_CAIF_VIRTIO is not set
+# CONFIG_VHOST_NET is not set
+# CONFIG_VHOST_SCSI is not set
+CONFIG_VHOST_RING=m
+
+#
+# Distributed Switch Architecture drivers
+#
+# CONFIG_NET_DSA_MV88E6XXX is not set
+# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set
+CONFIG_ETHERNET=y
+CONFIG_MDIO=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NET_VENDOR_AGERE=y
+CONFIG_ET131X=m
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_ALTERA_TSE=m
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_AMD8111_ETH=m
+CONFIG_PCNET32=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_NET_VENDOR_ARC=y
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_ATL2=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_ALX=m
+CONFIG_NET_CADENCE=y
+# CONFIG_MACB is not set
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_BCMGENET=m
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_TIGON3=m
+CONFIG_BNX2X=m
+CONFIG_BNX2X_SRIOV=y
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_BNA=m
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4_DCB=y
+CONFIG_CHELSIO_T4_FCOE=y
+CONFIG_CHELSIO_T4VF=m
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_ENIC=m
+CONFIG_CX_ECAT=m
+CONFIG_DNET=m
+CONFIG_NET_VENDOR_DEC=y
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_DE2104X_DSL=0
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_NAPI is not set
+CONFIG_DE4X5=m
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_ULI526X=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_DL2K=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_BE2NET=m
+CONFIG_BE2NET_VXLAN=y
+CONFIG_NET_VENDOR_EXAR=y
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_NET_VENDOR_FUJITSU=y
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_NET_VENDOR_HP=y
+CONFIG_HP100=m
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_E100=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IGB=m
+CONFIG_IGB_HWMON=y
+CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_VXLAN=y
+CONFIG_IXGBE_HWMON=y
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBE_DCB=y
+CONFIG_IXGBEVF=m
+CONFIG_I40E=m
+CONFIG_I40E_VXLAN=y
+CONFIG_I40E_DCB=y
+CONFIG_I40E_FCOE=y
+CONFIG_I40EVF=m
+CONFIG_FM10K=m
+CONFIG_FM10K_VXLAN=y
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_IP1000=m
+CONFIG_JME=m
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_MVMDIO=m
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKGE_GENESIS=y
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+CONFIG_NET_VENDOR_MELLANOX=y
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_EN_DCB=y
+CONFIG_MLX4_EN_VXLAN=y
+CONFIG_MLX4_CORE=m
+# CONFIG_MLX4_DEBUG is not set
+CONFIG_MLX5_CORE=m
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_NET_VENDOR_MICROCHIP=y
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_FEALNX=m
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NATSEMI=m
+CONFIG_NS83820=m
+CONFIG_NET_VENDOR_8390=y
+CONFIG_PCMCIA_AXNET=m
+CONFIG_NE2K_PCI=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_FORCEDETH=m
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_ETHOC=m
+CONFIG_NET_PACKET_ENGINE=y
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_QLA3XXX=m
+CONFIG_QLCNIC=m
+CONFIG_QLCNIC_SRIOV=y
+CONFIG_QLCNIC_DCB=y
+CONFIG_QLCNIC_VXLAN=y
+CONFIG_QLCNIC_HWMON=y
+CONFIG_QLGE=m
+CONFIG_NETXEN_NIC=m
+CONFIG_NET_VENDOR_QUALCOMM=y
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_ATP=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+CONFIG_8139TOO_PIO=y
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R8169=m
+CONFIG_NET_VENDOR_RDC=y
+CONFIG_R6040=m
+CONFIG_NET_VENDOR_ROCKER=y
+CONFIG_NET_VENDOR_SAMSUNG=y
+CONFIG_SXGBE_ETH=m
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_SC92031=m
+CONFIG_NET_VENDOR_SIS=y
+CONFIG_SIS900=m
+CONFIG_SIS190=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_SFC_MCDI_MON=y
+CONFIG_SFC_SRIOV=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_EPIC100=m
+CONFIG_SMSC911X=m
+# CONFIG_SMSC911X_ARCH_HOOKS is not set
+CONFIG_SMSC9420=m
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_ETH=m
+CONFIG_STMMAC_PLATFORM=m
+CONFIG_STMMAC_PCI=m
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NIU=m
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_TEHUTI=m
+CONFIG_NET_VENDOR_TI=y
+CONFIG_TI_CPSW_ALE=m
+CONFIG_TLAN=m
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_VIA_RHINE=m
+CONFIG_VIA_RHINE_MMIO=y
+CONFIG_VIA_VELOCITY=m
+CONFIG_NET_VENDOR_WIZNET=y
+CONFIG_WIZNET_W5100=m
+CONFIG_WIZNET_W5300=m
+# CONFIG_WIZNET_BUS_DIRECT is not set
+# CONFIG_WIZNET_BUS_INDIRECT is not set
+CONFIG_WIZNET_BUS_ANY=y
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_FDDI=m
+CONFIG_DEFXX=m
+# CONFIG_DEFXX_MMIO is not set
+CONFIG_SKFP=m
+CONFIG_HIPPI=y
+CONFIG_ROADRUNNER=m
+# CONFIG_ROADRUNNER_LARGE_RINGS is not set
+CONFIG_NET_SB1000=m
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+CONFIG_AT803X_PHY=m
+CONFIG_AMD_PHY=m
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_BCM7XXX_PHY=m
+CONFIG_BCM87XX_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+CONFIG_FIXED_PHY=m
+CONFIG_MDIO_BITBANG=m
+CONFIG_MDIO_GPIO=m
+CONFIG_MDIO_BCM_UNIMAC=m
+# CONFIG_MICREL_KS8995MA is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+CONFIG_USB_NET_DRIVERS=y
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_AX88179_178A=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_HUAWEI_CDC_NCM=m
+CONFIG_USB_NET_CDC_MBIM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SR9700=m
+CONFIG_USB_NET_SR9800=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_NET_QMI_WWAN=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_WLAN=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_AIRO=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+CONFIG_PRISM54=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_ADM8211=m
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_MWL8K=m
+CONFIG_ATH_COMMON=m
+CONFIG_ATH_CARDS=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+CONFIG_ATH5K_PCI=y
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K_BTCOEX_SUPPORT=y
+CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI=y
+CONFIG_ATH9K_AHB=y
+# CONFIG_ATH9K_DEBUGFS is not set
+# CONFIG_ATH9K_DYNACK is not set
+# CONFIG_ATH9K_WOW is not set
+CONFIG_ATH9K_RFKILL=y
+CONFIG_ATH9K_CHANNEL_CONTEXT=y
+CONFIG_ATH9K_PCOEM=y
+CONFIG_ATH9K_HTC=m
+# CONFIG_ATH9K_HTC_DEBUGFS is not set
+CONFIG_CARL9170=m
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170_WPC=y
+# CONFIG_CARL9170_HWRNG is not set
+CONFIG_ATH6KL=m
+# CONFIG_ATH6KL_SDIO is not set
+CONFIG_ATH6KL_USB=m
+# CONFIG_ATH6KL_DEBUG is not set
+CONFIG_AR5523=m
+CONFIG_WIL6210=m
+CONFIG_WIL6210_ISR_COR=y
+CONFIG_ATH10K=m
+CONFIG_ATH10K_PCI=m
+# CONFIG_ATH10K_DEBUG is not set
+# CONFIG_ATH10K_DEBUGFS is not set
+CONFIG_WCN36XX=m
+# CONFIG_WCN36XX_DEBUGFS is not set
+CONFIG_B43=m
+CONFIG_B43_BCMA=y
+CONFIG_B43_SSB=y
+CONFIG_B43_BUSES_BCMA_AND_SSB=y
+# CONFIG_B43_BUSES_BCMA is not set
+# CONFIG_B43_BUSES_SSB is not set
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCMCIA=y
+CONFIG_B43_SDIO=y
+CONFIG_B43_BCMA_PIO=y
+CONFIG_B43_PIO=y
+CONFIG_B43_PHY_G=y
+CONFIG_B43_PHY_N=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_PHY_HT=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_HWRNG=y
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_HWRNG=y
+# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_PIO=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_BRCMUTIL=m
+CONFIG_BRCMSMAC=m
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_PROTO_BCDC=y
+CONFIG_BRCMFMAC_PROTO_MSGBUF=y
+CONFIG_BRCMFMAC_SDIO=y
+CONFIG_BRCMFMAC_USB=y
+CONFIG_BRCMFMAC_PCIE=y
+# CONFIG_BRCM_TRACING is not set
+# CONFIG_BRCMDBG is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+CONFIG_HOSTAP_FIRMWARE_NVRAM=y
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_IWLWIFI=m
+CONFIG_IWLWIFI_LEDS=y
+CONFIG_IWLDVM=m
+CONFIG_IWLMVM=m
+CONFIG_IWLWIFI_OPMODE_MODULAR=y
+# CONFIG_IWLWIFI_BCAST_FILTERING is not set
+# CONFIG_IWLWIFI_UAPSD is not set
+
+#
+# Debugging Options
+#
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLEGACY=m
+CONFIG_IWL4965=m
+CONFIG_IWL3945=m
+
+#
+# iwl3945 / iwl4965 Debugging Options
+#
+# CONFIG_IWLEGACY_DEBUG is not set
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_HERMES=m
+# CONFIG_HERMES_PRISM is not set
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_ORINOCO_USB=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_P54_PCI=m
+CONFIG_P54_SPI=m
+CONFIG_P54_SPI_DEFAULT_EEPROM=y
+CONFIG_P54_LEDS=y
+CONFIG_RT2X00=m
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT61PCI=m
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT33XX=y
+CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2800PCI_RT53XX=y
+CONFIG_RT2800PCI_RT3290=y
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_RT3573=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2800_LIB_MMIO=m
+CONFIG_RT2X00_LIB_MMIO=m
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_RTL_CARDS=m
+CONFIG_RTL8192CE=m
+CONFIG_RTL8192SE=m
+CONFIG_RTL8192DE=m
+CONFIG_RTL8723AE=m
+CONFIG_RTL8723BE=m
+CONFIG_RTL8188EE=m
+CONFIG_RTL8192EE=m
+CONFIG_RTL8821AE=m
+CONFIG_RTL8192CU=m
+CONFIG_RTLWIFI=m
+CONFIG_RTLWIFI_PCI=m
+CONFIG_RTLWIFI_USB=m
+# CONFIG_RTLWIFI_DEBUG is not set
+CONFIG_RTL8192C_COMMON=m
+CONFIG_RTL8723_COMMON=m
+CONFIG_RTLBTCOEXIST=m
+CONFIG_WL_TI=y
+CONFIG_WL1251=m
+# CONFIG_WL1251_SPI is not set
+# CONFIG_WL1251_SDIO is not set
+CONFIG_WL12XX=m
+CONFIG_WL18XX=m
+CONFIG_WLCORE=m
+CONFIG_WLCORE_SPI=m
+CONFIG_WLCORE_SDIO=m
+CONFIG_WILINK_PLATFORM_DATA=y
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_PCIE=m
+CONFIG_MWIFIEX_USB=m
+CONFIG_CW1200=m
+CONFIG_CW1200_WLAN_SDIO=m
+CONFIG_CW1200_WLAN_SPI=m
+CONFIG_RSI_91X=m
+# CONFIG_RSI_DEBUGFS is not set
+CONFIG_RSI_SDIO=m
+CONFIG_RSI_USB=m
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+CONFIG_WAN=y
+CONFIG_LANMEDIA=m
+CONFIG_HDLC=m
+CONFIG_HDLC_RAW=m
+CONFIG_HDLC_RAW_ETH=m
+CONFIG_HDLC_CISCO=m
+CONFIG_HDLC_FR=m
+CONFIG_HDLC_PPP=m
+CONFIG_HDLC_X25=m
+CONFIG_PCI200SYN=m
+CONFIG_WANXL=m
+CONFIG_PC300TOO=m
+CONFIG_FARSYNC=m
+CONFIG_DSCC4=m
+CONFIG_DSCC4_PCISYNC=y
+CONFIG_DSCC4_PCI_RST=y
+CONFIG_DLCI=m
+CONFIG_DLCI_MAX=8
+CONFIG_LAPBETHER=m
+CONFIG_X25_ASY=m
+CONFIG_SBNI=m
+CONFIG_SBNI_MULTILINE=y
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_VMXNET3=m
+CONFIG_HYPERV_NET=m
+CONFIG_ISDN=y
+CONFIG_ISDN_I4L=m
+# CONFIG_ISDN_PPP is not set
+# CONFIG_ISDN_AUDIO is not set
+# CONFIG_ISDN_X25 is not set
+
+#
+# ISDN feature submodules
+#
+# CONFIG_ISDN_DIVERSION is not set
+
+#
+# ISDN4Linux hardware drivers
+#
+
+#
+# Passive cards
+#
+# CONFIG_ISDN_DRV_HISAX is not set
+
+#
+# Active cards
+#
+CONFIG_ISDN_CAPI=m
+# CONFIG_CAPI_TRACE is not set
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+# CONFIG_ISDN_CAPI_CAPIDRV is not set
+
+#
+# CAPI hardware drivers
+#
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=y
+CONFIG_INPUT_POLLDEV=y
+CONFIG_INPUT_SPARSEKMAP=y
+CONFIG_INPUT_MATRIXKMAP=m
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5520 is not set
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_QT1070=m
+CONFIG_KEYBOARD_QT2160=m
+CONFIG_KEYBOARD_LKKBD=m
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_GPIO_POLLED=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_TCA8418=m
+CONFIG_KEYBOARD_MATRIX=m
+CONFIG_KEYBOARD_LM8323=m
+CONFIG_KEYBOARD_LM8333=m
+CONFIG_KEYBOARD_MAX7359=m
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
+CONFIG_KEYBOARD_NEWTON=m
+CONFIG_KEYBOARD_OPENCORES=m
+CONFIG_KEYBOARD_SAMSUNG=m
+CONFIG_KEYBOARD_STOWAWAY=m
+CONFIG_KEYBOARD_SUNKBD=m
+CONFIG_KEYBOARD_XTKBD=m
+CONFIG_KEYBOARD_CROS_EC=m
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=y
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_CYPRESS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+CONFIG_MOUSE_PS2_TOUCHKIT=y
+CONFIG_MOUSE_PS2_FOCALTECH=y
+CONFIG_MOUSE_PS2_VMMOUSE=y
+CONFIG_MOUSE_SERIAL=m
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_CYAPA=m
+CONFIG_MOUSE_ELAN_I2C=m
+CONFIG_MOUSE_ELAN_I2C_I2C=y
+CONFIG_MOUSE_ELAN_I2C_SMBUS=y
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MOUSE_GPIO=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_MOUSE_SYNAPTICS_USB=m
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_AD7879_SPI=m
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
+CONFIG_TOUCHSCREEN_BU21013=m
+CONFIG_TOUCHSCREEN_CY8CTMG110=m
+CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
+CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
+CONFIG_TOUCHSCREEN_CYTTSP_SPI=m
+CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
+CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
+CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
+CONFIG_TOUCHSCREEN_DA9034=y
+CONFIG_TOUCHSCREEN_DA9052=m
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_HAMPSHIRE=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GOODIX=m
+CONFIG_TOUCHSCREEN_ILI210X=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_ELAN=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_WACOM_I2C=m
+CONFIG_TOUCHSCREEN_MAX11801=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MMS114=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_EDT_FT5X06=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_PIXCIR=m
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+CONFIG_TOUCHSCREEN_USB_ELO=y
+CONFIG_TOUCHSCREEN_USB_E2I=y
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC_SERIO=m
+CONFIG_TOUCHSCREEN_TSC2005=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+CONFIG_TOUCHSCREEN_ST1232=m
+CONFIG_TOUCHSCREEN_SX8654=m
+CONFIG_TOUCHSCREEN_TPS6507X=m
+CONFIG_TOUCHSCREEN_ZFORCE=m
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=y
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_PS2MULT=m
+CONFIG_SERIO_ARC_PS2=m
+CONFIG_HYPERV_KEYBOARD=m
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_TTY=y
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+CONFIG_MOXA_INTELLIO=m
+CONFIG_MOXA_SMARTIO=m
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+CONFIG_SYNCLINK_GT=m
+CONFIG_NOZOMI=m
+CONFIG_ISI=m
+CONFIG_N_HDLC=m
+# CONFIG_N_GSM is not set
+CONFIG_TRACE_ROUTER=m
+CONFIG_TRACE_SINK=m
+CONFIG_DEVMEM=y
+CONFIG_DEVKMEM=y
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=m
+CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_DMA=y
+CONFIG_SERIAL_8250_PCI=m
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_DETECT_IRQ=y
+CONFIG_SERIAL_8250_RSA=y
+CONFIG_SERIAL_8250_DW=m
+CONFIG_SERIAL_8250_FINTEK=m
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_MAX3100 is not set
+# CONFIG_SERIAL_MAX310X is not set
+CONFIG_SERIAL_CORE=m
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_SCCNXP=m
+CONFIG_SERIAL_SC16IS7XX=m
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+# CONFIG_SERIAL_IFX6X60 is not set
+CONFIG_SERIAL_ARC=m
+CONFIG_SERIAL_ARC_NR_PORTS=1
+CONFIG_SERIAL_RP2=m
+CONFIG_SERIAL_RP2_NR_UARTS=32
+CONFIG_SERIAL_FSL_LPUART=m
+# CONFIG_TTY_PRINTK is not set
+CONFIG_PRINTER=m
+CONFIG_LP_CONSOLE=y
+CONFIG_PPDEV=m
+CONFIG_HVC_DRIVER=y
+CONFIG_VIRTIO_CONSOLE=m
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+# CONFIG_IPMI_SI_PROBE_DEFAULTS is not set
+CONFIG_IPMI_SSIF=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+CONFIG_HW_RANDOM=m
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_VIA=m
+# CONFIG_HW_RANDOM_VIRTIO is not set
+CONFIG_HW_RANDOM_TPM=m
+CONFIG_NVRAM=y
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+CONFIG_IPWIRELESS=m
+CONFIG_MWAVE=m
+CONFIG_RAW_DRIVER=m
+CONFIG_MAX_RAW_DEVS=256
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
+CONFIG_HPET_MMAP_DEFAULT=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_TCG_TPM=y
+CONFIG_TCG_TIS=y
+CONFIG_TCG_TIS_I2C_ATMEL=m
+CONFIG_TCG_TIS_I2C_INFINEON=m
+CONFIG_TCG_TIS_I2C_NUVOTON=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_INFINEON=m
+CONFIG_TCG_CRB=m
+# CONFIG_TCG_TIS_ST33ZP24 is not set
+CONFIG_TELCLOCK=m
+CONFIG_DEVPORT=y
+CONFIG_XILLYBUS=m
+CONFIG_XILLYBUS_PCIE=m
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_ACPI_I2C_OPREGION=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=m
+
+#
+# Multiplexer I2C Chip support
+#
+# CONFIG_I2C_MUX_GPIO is not set
+CONFIG_I2C_MUX_PCA9541=m
+# CONFIG_I2C_MUX_PCA954x is not set
+CONFIG_I2C_MUX_PINCTRL=m
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_ISMT=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+
+#
+# ACPI drivers
+#
+CONFIG_I2C_SCMI=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_CBUS_GPIO is not set
+CONFIG_I2C_DESIGNWARE_CORE=m
+CONFIG_I2C_DESIGNWARE_PLATFORM=m
+CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
+# CONFIG_I2C_GPIO is not set
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_PXA_PCI is not set
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_DIOLAN_U2C=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_ROBOTFUZZ_OSIF=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_CROS_EC_TUNNEL is not set
+# CONFIG_I2C_STUB is not set
+CONFIG_I2C_SLAVE=y
+CONFIG_I2C_SLAVE_EEPROM=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_ALTERA is not set
+# CONFIG_SPI_BITBANG is not set
+# CONFIG_SPI_BUTTERFLY is not set
+# CONFIG_SPI_CADENCE is not set
+# CONFIG_SPI_GPIO is not set
+# CONFIG_SPI_LM70_LLP is not set
+# CONFIG_SPI_OC_TINY is not set
+# CONFIG_SPI_PXA2XX is not set
+# CONFIG_SPI_PXA2XX_PCI is not set
+# CONFIG_SPI_SC18IS602 is not set
+# CONFIG_SPI_XCOMM is not set
+# CONFIG_SPI_XILINX is not set
+# CONFIG_SPI_DESIGNWARE is not set
+
+#
+# SPI Protocol Masters
+#
+# CONFIG_SPI_SPIDEV is not set
+# CONFIG_SPI_TLE62X0 is not set
+CONFIG_SPMI=m
+CONFIG_HSI=m
+CONFIG_HSI_BOARDINFO=y
+
+#
+# HSI controllers
+#
+
+#
+# HSI clients
+#
+CONFIG_HSI_CHAR=m
+
+#
+# PPS support
+#
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+# CONFIG_NTP_PPS is not set
+
+#
+# PPS clients support
+#
+# CONFIG_PPS_CLIENT_KTIMER is not set
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_PARPORT=m
+CONFIG_PPS_CLIENT_GPIO=m
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=m
+
+#
+# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
+#
+CONFIG_PINCTRL=y
+
+#
+# Pin controllers
+#
+# CONFIG_DEBUG_PINCTRL is not set
+# CONFIG_PINCTRL_AMD is not set
+# CONFIG_PINCTRL_BAYTRAIL is not set
+# CONFIG_PINCTRL_CHERRYVIEW is not set
+# CONFIG_PINCTRL_SUNRISEPOINT is not set
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_DEVRES=y
+CONFIG_GPIO_ACPI=y
+# CONFIG_DEBUG_GPIO is not set
+# CONFIG_GPIO_SYSFS is not set
+
+#
+# Memory mapped GPIO drivers
+#
+# CONFIG_GPIO_DWAPB is not set
+# CONFIG_GPIO_F7188X is not set
+# CONFIG_GPIO_GENERIC_PLATFORM is not set
+# CONFIG_GPIO_ICH is not set
+# CONFIG_GPIO_IT8761E is not set
+# CONFIG_GPIO_LYNXPOINT is not set
+# CONFIG_GPIO_SCH is not set
+# CONFIG_GPIO_SCH311X is not set
+# CONFIG_GPIO_VX855 is not set
+
+#
+# I2C GPIO expanders
+#
+# CONFIG_GPIO_ADP5588 is not set
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_SX150X is not set
+
+#
+# MFD GPIO expanders
+#
+# CONFIG_GPIO_ADP5520 is not set
+# CONFIG_GPIO_CRYSTAL_COVE is not set
+# CONFIG_GPIO_DA9052 is not set
+# CONFIG_GPIO_DA9055 is not set
+
+#
+# PCI GPIO expanders
+#
+# CONFIG_GPIO_AMD8111 is not set
+# CONFIG_GPIO_BT8XX is not set
+# CONFIG_GPIO_INTEL_MID is not set
+# CONFIG_GPIO_ML_IOH is not set
+# CONFIG_GPIO_RDC321X is not set
+
+#
+# SPI GPIO expanders
+#
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
+
+#
+# USB GPIO expanders
+#
+CONFIG_W1=m
+CONFIG_W1_CON=y
+
+#
+# 1-wire Bus Masters
+#
+CONFIG_W1_MASTER_MATROX=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_GPIO=m
+
+#
+# 1-wire Slaves
+#
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2408_READBACK=y
+CONFIG_W1_SLAVE_DS2413=m
+CONFIG_W1_SLAVE_DS2406=m
+CONFIG_W1_SLAVE_DS2423=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2433_CRC=y
+CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_DS2780=m
+CONFIG_W1_SLAVE_DS2781=m
+CONFIG_W1_SLAVE_DS28E04=m
+CONFIG_W1_SLAVE_BQ27000=m
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_GENERIC_ADC_BATTERY is not set
+# CONFIG_TEST_POWER is not set
+# CONFIG_BATTERY_DS2760 is not set
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2781 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_SBS is not set
+# CONFIG_BATTERY_BQ27x00 is not set
+# CONFIG_BATTERY_DA9030 is not set
+# CONFIG_BATTERY_DA9052 is not set
+# CONFIG_AXP288_FUEL_GAUGE is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_LP8727 is not set
+# CONFIG_CHARGER_GPIO is not set
+# CONFIG_CHARGER_BQ2415X is not set
+# CONFIG_CHARGER_BQ24190 is not set
+# CONFIG_CHARGER_BQ24735 is not set
+# CONFIG_CHARGER_SMB347 is not set
+# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_POWER_RESET is not set
+# CONFIG_POWER_AVS is not set
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+# CONFIG_SENSORS_AD7314 is not set
+# CONFIG_SENSORS_AD7414 is not set
+# CONFIG_SENSORS_AD7418 is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1029 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ADM9240 is not set
+# CONFIG_SENSORS_ADT7310 is not set
+# CONFIG_SENSORS_ADT7410 is not set
+# CONFIG_SENSORS_ADT7411 is not set
+# CONFIG_SENSORS_ADT7462 is not set
+# CONFIG_SENSORS_ADT7470 is not set
+# CONFIG_SENSORS_ADT7475 is not set
+# CONFIG_SENSORS_ASC7621 is not set
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_FAM15H_POWER=m
+CONFIG_SENSORS_APPLESMC=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ATXP1=m
+# CONFIG_SENSORS_DS620 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_DA9052_ADC is not set
+# CONFIG_SENSORS_DA9055 is not set
+CONFIG_SENSORS_I5K_AMB=m
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_F75375S is not set
+# CONFIG_SENSORS_FSCHMD is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_G760A is not set
+# CONFIG_SENSORS_G762 is not set
+# CONFIG_SENSORS_GPIO_FAN is not set
+# CONFIG_SENSORS_HIH6130 is not set
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+# CONFIG_SENSORS_IIO_HWMON is not set
+CONFIG_SENSORS_I5500=m
+CONFIG_SENSORS_CORETEMP=m
+# CONFIG_SENSORS_IT87 is not set
+CONFIG_SENSORS_JC42=m
+# CONFIG_SENSORS_POWR1220 is not set
+# CONFIG_SENSORS_LINEAGE is not set
+# CONFIG_SENSORS_LTC2945 is not set
+# CONFIG_SENSORS_LTC4151 is not set
+# CONFIG_SENSORS_LTC4215 is not set
+# CONFIG_SENSORS_LTC4222 is not set
+# CONFIG_SENSORS_LTC4245 is not set
+# CONFIG_SENSORS_LTC4260 is not set
+# CONFIG_SENSORS_LTC4261 is not set
+# CONFIG_SENSORS_MAX1111 is not set
+# CONFIG_SENSORS_MAX16065 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_MAX1668 is not set
+# CONFIG_SENSORS_MAX197 is not set
+# CONFIG_SENSORS_MAX6639 is not set
+# CONFIG_SENSORS_MAX6642 is not set
+# CONFIG_SENSORS_MAX6650 is not set
+# CONFIG_SENSORS_MAX6697 is not set
+# CONFIG_SENSORS_HTU21 is not set
+# CONFIG_SENSORS_MCP3021 is not set
+# CONFIG_SENSORS_ADCXX is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM70 is not set
+# CONFIG_SENSORS_LM73 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_LM93 is not set
+# CONFIG_SENSORS_LM95234 is not set
+# CONFIG_SENSORS_LM95241 is not set
+# CONFIG_SENSORS_LM95245 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_NTC_THERMISTOR is not set
+# CONFIG_SENSORS_NCT6683 is not set
+# CONFIG_SENSORS_NCT6775 is not set
+# CONFIG_SENSORS_NCT7802 is not set
+# CONFIG_SENSORS_NCT7904 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+# CONFIG_SENSORS_ADM1275 is not set
+# CONFIG_SENSORS_LM25066 is not set
+# CONFIG_SENSORS_LTC2978 is not set
+# CONFIG_SENSORS_MAX16064 is not set
+# CONFIG_SENSORS_MAX34440 is not set
+# CONFIG_SENSORS_MAX8688 is not set
+# CONFIG_SENSORS_TPS40422 is not set
+# CONFIG_SENSORS_UCD9000 is not set
+# CONFIG_SENSORS_UCD9200 is not set
+# CONFIG_SENSORS_ZL6100 is not set
+# CONFIG_SENSORS_SHT15 is not set
+# CONFIG_SENSORS_SHT21 is not set
+# CONFIG_SENSORS_SHTC1 is not set
+CONFIG_SENSORS_SIS5595=m
+# CONFIG_SENSORS_DME1737 is not set
+# CONFIG_SENSORS_EMC1403 is not set
+# CONFIG_SENSORS_EMC2103 is not set
+# CONFIG_SENSORS_EMC6W201 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47M192 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_SCH56XX_COMMON is not set
+# CONFIG_SENSORS_SMM665 is not set
+# CONFIG_SENSORS_ADC128D818 is not set
+# CONFIG_SENSORS_ADS1015 is not set
+# CONFIG_SENSORS_ADS7828 is not set
+# CONFIG_SENSORS_ADS7871 is not set
+# CONFIG_SENSORS_AMC6821 is not set
+# CONFIG_SENSORS_INA209 is not set
+# CONFIG_SENSORS_INA2XX is not set
+# CONFIG_SENSORS_THMC50 is not set
+# CONFIG_SENSORS_TMP102 is not set
+# CONFIG_SENSORS_TMP103 is not set
+# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
+CONFIG_SENSORS_VIA_CPUTEMP=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83791D is not set
+# CONFIG_SENSORS_W83792D is not set
+# CONFIG_SENSORS_W83793 is not set
+# CONFIG_SENSORS_W83795 is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83L786NG is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+
+#
+# ACPI drivers
+#
+CONFIG_SENSORS_ACPI_POWER=m
+CONFIG_SENSORS_ATK0110=m
+CONFIG_THERMAL=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
+# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_GOV_FAIR_SHARE=y
+CONFIG_THERMAL_GOV_STEP_WISE=y
+CONFIG_THERMAL_GOV_BANG_BANG=y
+CONFIG_THERMAL_GOV_USER_SPACE=y
+# CONFIG_THERMAL_EMULATION is not set
+# CONFIG_INTEL_POWERCLAMP is not set
+CONFIG_X86_PKG_TEMP_THERMAL=m
+# CONFIG_INTEL_SOC_DTS_THERMAL is not set
+CONFIG_INT340X_THERMAL=m
+CONFIG_ACPI_THERMAL_REL=m
+
+#
+# Texas Instruments thermal drivers
+#
+# CONFIG_WATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB=m
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_PCMCIAHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+# CONFIG_SSB_SILENT is not set
+# CONFIG_SSB_DEBUG is not set
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+# CONFIG_SSB_DRIVER_GPIO is not set
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+CONFIG_BCMA=m
+CONFIG_BCMA_BLOCKIO=y
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+CONFIG_BCMA_HOST_PCI=y
+CONFIG_BCMA_HOST_SOC=y
+CONFIG_BCMA_DRIVER_PCI=y
+CONFIG_BCMA_DRIVER_GMAC_CMN=y
+CONFIG_BCMA_DRIVER_GPIO=y
+# CONFIG_BCMA_DEBUG is not set
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_CORE=y
+CONFIG_MFD_AS3711=y
+CONFIG_PMIC_ADP5520=y
+CONFIG_MFD_AAT2870_CORE=y
+CONFIG_MFD_BCM590XX=m
+CONFIG_MFD_AXP20X=y
+CONFIG_MFD_CROS_EC=m
+CONFIG_MFD_CROS_EC_I2C=m
+CONFIG_PMIC_DA903X=y
+CONFIG_PMIC_DA9052=y
+CONFIG_MFD_DA9052_SPI=y
+CONFIG_MFD_DA9052_I2C=y
+CONFIG_MFD_DA9055=y
+CONFIG_MFD_DA9063=y
+# CONFIG_MFD_DA9150 is not set
+# CONFIG_MFD_DLN2 is not set
+# CONFIG_MFD_MC13XXX_SPI is not set
+# CONFIG_MFD_MC13XXX_I2C is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_HTC_I2CPLD is not set
+# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set
+CONFIG_LPC_ICH=m
+CONFIG_LPC_SCH=m
+CONFIG_INTEL_SOC_PMIC=y
+# CONFIG_MFD_JANZ_CMODIO is not set
+# CONFIG_MFD_KEMPLD is not set
+# CONFIG_MFD_88PM800 is not set
+# CONFIG_MFD_88PM805 is not set
+# CONFIG_MFD_88PM860X is not set
+# CONFIG_MFD_MAX14577 is not set
+# CONFIG_MFD_MAX77693 is not set
+# CONFIG_MFD_MAX77843 is not set
+# CONFIG_MFD_MAX8907 is not set
+# CONFIG_MFD_MAX8925 is not set
+# CONFIG_MFD_MAX8997 is not set
+# CONFIG_MFD_MAX8998 is not set
+# CONFIG_MFD_MT6397 is not set
+# CONFIG_MFD_MENF21BMC is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_MFD_VIPERBOARD is not set
+# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_RDC321X is not set
+CONFIG_MFD_RTSX_PCI=m
+# CONFIG_MFD_RT5033 is not set
+CONFIG_MFD_RTSX_USB=m
+# CONFIG_MFD_RC5T583 is not set
+# CONFIG_MFD_RN5T618 is not set
+# CONFIG_MFD_SEC_CORE is not set
+# CONFIG_MFD_SI476X_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SMSC is not set
+# CONFIG_ABX500_CORE is not set
+CONFIG_MFD_SYSCON=y
+# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_LP3943 is not set
+# CONFIG_MFD_LP8788 is not set
+# CONFIG_MFD_PALMAS is not set
+# CONFIG_TPS6105X is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TPS6507X is not set
+# CONFIG_MFD_TPS65090 is not set
+# CONFIG_MFD_TPS65217 is not set
+# CONFIG_MFD_TPS65218 is not set
+# CONFIG_MFD_TPS6586X is not set
+# CONFIG_MFD_TPS65910 is not set
+# CONFIG_MFD_TPS65912 is not set
+# CONFIG_MFD_TPS65912_I2C is not set
+# CONFIG_MFD_TPS65912_SPI is not set
+# CONFIG_MFD_TPS80031 is not set
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_TWL6040_CORE is not set
+# CONFIG_MFD_WL1273_CORE is not set
+# CONFIG_MFD_LM3533 is not set
+# CONFIG_MFD_TMIO is not set
+CONFIG_MFD_VX855=m
+# CONFIG_MFD_ARIZONA_I2C is not set
+# CONFIG_MFD_ARIZONA_SPI is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X_I2C is not set
+# CONFIG_MFD_WM831X_SPI is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_WM8994 is not set
+# CONFIG_REGULATOR is not set
+# CONFIG_MEDIA_SUPPORT is not set
+
+#
+# Graphics support
+#
+CONFIG_AGP=m
+CONFIG_AGP_AMD64=m
+CONFIG_AGP_INTEL=m
+CONFIG_AGP_SIS=m
+CONFIG_AGP_VIA=m
+CONFIG_INTEL_GTT=m
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_SWITCHEROO=y
+
+#
+# Direct Rendering Manager
+#
+CONFIG_DRM=m
+CONFIG_DRM_MIPI_DSI=y
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_KMS_FB_HELPER=y
+# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
+CONFIG_DRM_TTM=m
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_I2C_ADV7511=m
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_SIL164=m
+CONFIG_DRM_I2C_NXP_TDA998X=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+# CONFIG_DRM_RADEON_USERPTR is not set
+# CONFIG_DRM_RADEON_UMS is not set
+CONFIG_DRM_NOUVEAU=m
+CONFIG_NOUVEAU_DEBUG=5
+CONFIG_NOUVEAU_DEBUG_DEFAULT=3
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_I810=m
+CONFIG_DRM_I915=m
+CONFIG_DRM_I915_KMS=y
+CONFIG_DRM_I915_FBDEV=y
+CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT=y
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+CONFIG_DRM_VIA=m
+CONFIG_DRM_SAVAGE=m
+# CONFIG_DRM_VGEM is not set
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_VMWGFX_FBCON=y
+CONFIG_DRM_GMA500=m
+CONFIG_DRM_GMA600=y
+CONFIG_DRM_GMA3600=y
+CONFIG_DRM_UDL=m
+# CONFIG_DRM_AST is not set
+CONFIG_DRM_MGAG200=m
+CONFIG_DRM_CIRRUS_QEMU=m
+CONFIG_DRM_QXL=m
+CONFIG_DRM_BOCHS=m
+CONFIG_DRM_PANEL=y
+
+#
+# Display Panels
+#
+# CONFIG_HSA_AMD is not set
+
+#
+# Frame buffer Devices
+#
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FB_CMDLINE=y
+CONFIG_FB_DDC=m
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_SVGALIB=m
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_BACKLIGHT=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_CYBER2000=m
+CONFIG_FB_CYBER2000_DDC=y
+CONFIG_FB_ARC=m
+CONFIG_FB_ASILIANT=y
+CONFIG_FB_IMSTT=y
+CONFIG_FB_VGA16=m
+CONFIG_FB_UVESA=m
+CONFIG_FB_VESA=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_N411 is not set
+# CONFIG_FB_HGA is not set
+CONFIG_FB_OPENCORES=m
+CONFIG_FB_S1D13XXX=m
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_NVIDIA_I2C=y
+# CONFIG_FB_NVIDIA_DEBUG is not set
+CONFIG_FB_NVIDIA_BACKLIGHT=y
+CONFIG_FB_RIVA=m
+CONFIG_FB_RIVA_I2C=y
+# CONFIG_FB_RIVA_DEBUG is not set
+CONFIG_FB_RIVA_BACKLIGHT=y
+CONFIG_FB_I740=m
+CONFIG_FB_LE80578=m
+CONFIG_FB_CARILLO_RANCH=m
+CONFIG_FB_INTEL=m
+# CONFIG_FB_INTEL_DEBUG is not set
+CONFIG_FB_INTEL_I2C=y
+CONFIG_FB_MATROX=m
+CONFIG_FB_MATROX_MILLENIUM=y
+CONFIG_FB_MATROX_MYSTIQUE=y
+CONFIG_FB_MATROX_G=y
+CONFIG_FB_MATROX_I2C=m
+CONFIG_FB_MATROX_MAVEN=m
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RADEON_BACKLIGHT=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_ATY128=m
+CONFIG_FB_ATY128_BACKLIGHT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_ATY_GENERIC_LCD=y
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_ATY_BACKLIGHT=y
+CONFIG_FB_S3=m
+CONFIG_FB_S3_DDC=y
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SAVAGE_I2C=y
+# CONFIG_FB_SAVAGE_ACCEL is not set
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_VIA=m
+# CONFIG_FB_VIA_DIRECT_PROCFS is not set
+CONFIG_FB_VIA_X_COMPATIBILITY=y
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_KYRO=m
+CONFIG_FB_3DFX=m
+CONFIG_FB_3DFX_ACCEL=y
+CONFIG_FB_3DFX_I2C=y
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_VT8623=m
+CONFIG_FB_TRIDENT=m
+CONFIG_FB_ARK=m
+CONFIG_FB_PM3=m
+CONFIG_FB_CARMINE=m
+CONFIG_FB_CARMINE_DRAM_EVAL=y
+# CONFIG_CARMINE_DRAM_CUSTOM is not set
+CONFIG_FB_SMSCUFX=m
+CONFIG_FB_UDL=m
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_FB_METRONOME=m
+CONFIG_FB_MB862XX=m
+CONFIG_FB_MB862XX_PCI_GDC=y
+CONFIG_FB_MB862XX_I2C=y
+CONFIG_FB_BROADSHEET=m
+CONFIG_FB_AUO_K190X=m
+CONFIG_FB_AUO_K1900=m
+CONFIG_FB_AUO_K1901=m
+# CONFIG_FB_HYPERV is not set
+CONFIG_FB_SIMPLE=y
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_L4F00242T03=m
+CONFIG_LCD_LMS283GF05=m
+CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_ILI922X=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_TDO24M=m
+CONFIG_LCD_VGG2432A4=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_LCD_S6E63M0=m
+CONFIG_LCD_LD9040=m
+CONFIG_LCD_AMS369FG06=m
+CONFIG_LCD_LMS501KF03=m
+CONFIG_LCD_HX8357=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=y
+CONFIG_BACKLIGHT_CARILLO_RANCH=m
+CONFIG_BACKLIGHT_DA903X=m
+CONFIG_BACKLIGHT_DA9052=m
+CONFIG_BACKLIGHT_APPLE=m
+CONFIG_BACKLIGHT_SAHARA=m
+CONFIG_BACKLIGHT_ADP5520=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_ADP8870=m
+CONFIG_BACKLIGHT_AAT2870=m
+CONFIG_BACKLIGHT_LM3639=m
+CONFIG_BACKLIGHT_AS3711=m
+CONFIG_BACKLIGHT_GPIO=m
+CONFIG_BACKLIGHT_LV5207LP=m
+CONFIG_BACKLIGHT_BD6107=m
+CONFIG_VGASTATE=m
+CONFIG_HDMI=y
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+CONFIG_VGACON_SOFT_SCROLLBACK=y
+CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=80
+CONFIG_DUMMY_CONSOLE_ROWS=25
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+# CONFIG_LOGO is not set
+# CONFIG_SOUND is not set
+
+#
+# HID support
+#
+CONFIG_HID=y
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HIDRAW=y
+CONFIG_UHID=m
+CONFIG_HID_GENERIC=y
+
+#
+# Special HID drivers
+#
+# CONFIG_HID_A4TECH is not set
+# CONFIG_HID_ACRUX is not set
+CONFIG_HID_APPLE=m
+# CONFIG_HID_APPLEIR is not set
+# CONFIG_HID_AUREAL is not set
+CONFIG_HID_BELKIN=m
+# CONFIG_HID_BETOP_FF is not set
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CP2112=m
+# CONFIG_HID_CYPRESS is not set
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EMS_FF is not set
+# CONFIG_HID_ELECOM is not set
+CONFIG_HID_ELO=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_HOLTEK=m
+# CONFIG_HOLTEK_FF is not set
+# CONFIG_HID_GT683R is not set
+CONFIG_HID_KEYTOUCH=m
+# CONFIG_HID_KYE is not set
+# CONFIG_HID_UCLOGIC is not set
+# CONFIG_HID_WALTOP is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_ICADE is not set
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+# CONFIG_HID_LCPOWER is not set
+CONFIG_HID_LENOVO=m
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
+CONFIG_HID_LOGITECH_HIDPP=m
+CONFIG_LOGITECH_FF=y
+# CONFIG_LOGIRUMBLEPAD2_FF is not set
+# CONFIG_LOGIG940_FF is not set
+# CONFIG_LOGIWHEELS_FF is not set
+# CONFIG_HID_MAGICMOUSE is not set
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+# CONFIG_HID_MULTITOUCH is not set
+# CONFIG_HID_NTRIG is not set
+CONFIG_HID_ORTEK=m
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PENMOUNT is not set
+# CONFIG_HID_PETALYNX is not set
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PLANTRONICS=m
+CONFIG_HID_PRIMAX=m
+CONFIG_HID_ROCCAT=m
+# CONFIG_HID_SAITEK is not set
+CONFIG_HID_SAMSUNG=m
+# CONFIG_HID_SONY is not set
+# CONFIG_HID_SPEEDLINK is not set
+# CONFIG_HID_STEELSERIES is not set
+CONFIG_HID_SUNPLUS=m
+# CONFIG_HID_RMI is not set
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_HYPERV_MOUSE is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TIVO is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_THINGM is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_WACOM is not set
+# CONFIG_HID_WIIMOTE is not set
+# CONFIG_HID_XINMO is not set
+# CONFIG_HID_ZEROPLUS is not set
+# CONFIG_HID_ZYDACRON is not set
+CONFIG_HID_SENSOR_HUB=m
+# CONFIG_HID_SENSOR_CUSTOM_SENSOR is not set
+
+#
+# USB HID support
+#
+CONFIG_USB_HID=y
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+
+#
+# I2C HID support
+#
+CONFIG_I2C_HID=m
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEFAULT_PERSIST=y
+# CONFIG_USB_DYNAMIC_MINORS is not set
+CONFIG_USB_OTG=y
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+CONFIG_USB_OTG_FSM=m
+# CONFIG_USB_MON is not set
+# CONFIG_USB_WUSB is not set
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_XHCI_HCD=m
+CONFIG_USB_XHCI_PCI=m
+CONFIG_USB_XHCI_PLATFORM=m
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EHCI_PCI=m
+CONFIG_USB_EHCI_HCD_PLATFORM=m
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_FUSBH200_HCD=m
+CONFIG_USB_FOTG210_HCD=m
+CONFIG_USB_MAX3421_HCD=m
+CONFIG_USB_OHCI_HCD=m
+CONFIG_USB_OHCI_HCD_PCI=m
+# CONFIG_USB_OHCI_HCD_SSB is not set
+CONFIG_USB_OHCI_HCD_PLATFORM=m
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_SL811_HCD=m
+# CONFIG_USB_SL811_HCD_ISO is not set
+# CONFIG_USB_SL811_CS is not set
+CONFIG_USB_R8A66597_HCD=m
+# CONFIG_USB_WHCI_HCD is not set
+# CONFIG_USB_HWA_HCD is not set
+CONFIG_USB_HCD_BCMA=m
+CONFIG_USB_HCD_SSB=m
+# CONFIG_USB_HCD_TEST_MODE is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_WDM=m
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_REALTEK_AUTOPM=y
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_UAS=m
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+# CONFIG_USBIP_DEBUG is not set
+CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_MUSB_HOST=y
+# CONFIG_USB_MUSB_GADGET is not set
+# CONFIG_USB_MUSB_DUAL_ROLE is not set
+
+#
+# Platform Glue Layer
+#
+CONFIG_MUSB_PIO_ONLY=y
+CONFIG_USB_DWC3=m
+CONFIG_USB_DWC3_HOST=y
+# CONFIG_USB_DWC3_GADGET is not set
+# CONFIG_USB_DWC3_DUAL_ROLE is not set
+
+#
+# Platform Glue Driver Support
+#
+CONFIG_USB_DWC3_PCI=m
+
+#
+# Debugging features
+#
+# CONFIG_USB_DWC3_DEBUG is not set
+CONFIG_USB_DWC2=m
+CONFIG_USB_DWC2_HOST=y
+
+#
+# Gadget/Dual-role mode requires USB Gadget support to be enabled
+#
+# CONFIG_USB_DWC2_PERIPHERAL is not set
+# CONFIG_USB_DWC2_DUAL_ROLE is not set
+CONFIG_USB_DWC2_PLATFORM=m
+CONFIG_USB_DWC2_PCI=m
+# CONFIG_USB_DWC2_DEBUG is not set
+# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
+CONFIG_USB_CHIPIDEA=m
+CONFIG_USB_CHIPIDEA_PCI=m
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+# CONFIG_USB_CHIPIDEA_DEBUG is not set
+CONFIG_USB_ISP1760=m
+CONFIG_USB_ISP1760_HCD=y
+CONFIG_USB_ISP1760_HOST_ROLE=y
+# CONFIG_USB_ISP1760_GADGET_ROLE is not set
+# CONFIG_USB_ISP1760_DUAL_ROLE is not set
+
+#
+# USB port drivers
+#
+CONFIG_USB_USS720=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_SIMPLE=m
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+# CONFIG_USB_SERIAL_EMPEG is not set
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+# CONFIG_USB_SERIAL_IR is not set
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
+# CONFIG_USB_SERIAL_GARMIN is not set
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+# CONFIG_USB_SERIAL_METRO is not set
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MXUPORT=m
+# CONFIG_USB_SERIAL_NAVMAN is not set
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_USB_SERIAL_SAFE_PADDED=y
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+# CONFIG_USB_SERIAL_SYMBOL is not set
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+# CONFIG_USB_SERIAL_OPTICON is not set
+# CONFIG_USB_SERIAL_XSENS_MT is not set
+CONFIG_USB_SERIAL_WISHBONE=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_QT2=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+CONFIG_USB_SEVSEG=m
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_IDMOUSE is not set
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_SISUSBVGA=m
+CONFIG_USB_SISUSBVGA_CON=y
+CONFIG_USB_LD=m
+# CONFIG_USB_TRANCEVIBRATOR is not set
+CONFIG_USB_IOWARRIOR=m
+# CONFIG_USB_TEST is not set
+# CONFIG_USB_EHSET_TEST_FIXTURE is not set
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_YUREX is not set
+CONFIG_USB_EZUSB_FX2=m
+CONFIG_USB_HSIC_USB3503=m
+# CONFIG_USB_LINK_LAYER_TEST is not set
+# CONFIG_USB_CHAOSKEY is not set
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+
+#
+# USB Physical Layer drivers
+#
+CONFIG_USB_PHY=y
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_USB_ISP1301=m
+CONFIG_USB_GADGET=m
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+
+#
+# USB Peripheral Controller
+#
+CONFIG_USB_FOTG210_UDC=m
+CONFIG_USB_GR_UDC=m
+CONFIG_USB_R8A66597=m
+CONFIG_USB_PXA27X=m
+CONFIG_USB_MV_UDC=m
+CONFIG_USB_MV_U3D=m
+CONFIG_USB_M66592=m
+CONFIG_USB_BDC_UDC=m
+
+#
+# Platform Support
+#
+CONFIG_USB_BDC_PCI=m
+CONFIG_USB_AMD5536UDC=m
+CONFIG_USB_NET2272=m
+CONFIG_USB_NET2272_DMA=y
+CONFIG_USB_NET2280=m
+CONFIG_USB_GOKU=m
+CONFIG_USB_EG20T=m
+# CONFIG_USB_DUMMY_HCD is not set
+CONFIG_USB_LIBCOMPOSITE=m
+CONFIG_USB_F_ACM=m
+CONFIG_USB_F_SS_LB=m
+CONFIG_USB_U_SERIAL=m
+CONFIG_USB_U_ETHER=m
+CONFIG_USB_F_SERIAL=m
+CONFIG_USB_F_OBEX=m
+CONFIG_USB_F_NCM=m
+CONFIG_USB_F_ECM=m
+CONFIG_USB_F_PHONET=m
+CONFIG_USB_F_EEM=m
+CONFIG_USB_F_SUBSET=m
+CONFIG_USB_F_RNDIS=m
+CONFIG_USB_F_MASS_STORAGE=m
+CONFIG_USB_F_FS=m
+CONFIG_USB_F_HID=m
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_PHONET=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_HID=y
+# CONFIG_USB_CONFIGFS_F_PRINTER is not set
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+CONFIG_USB_ETH_EEM=y
+CONFIG_USB_G_NCM=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_FUNCTIONFS_ETH=y
+CONFIG_USB_FUNCTIONFS_RNDIS=y
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_GADGET_TARGET=m
+CONFIG_USB_G_SERIAL=m
+# CONFIG_USB_G_PRINTER is not set
+CONFIG_USB_CDC_COMPOSITE=m
+CONFIG_USB_G_NOKIA=m
+CONFIG_USB_G_ACM_MS=m
+CONFIG_USB_G_MULTI=m
+CONFIG_USB_G_MULTI_RNDIS=y
+CONFIG_USB_G_MULTI_CDC=y
+CONFIG_USB_G_HID=m
+# CONFIG_USB_G_DBGP is not set
+# CONFIG_USB_LED_TRIG is not set
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_WHCI=m
+CONFIG_UWB_I1480U=m
+CONFIG_MMC=m
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_CLKGATE=y
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI_ACPI=m
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_WBSD=m
+CONFIG_MMC_TIFM_SD=m
+CONFIG_MMC_SPI=m
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_CB710=m
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_USHC=m
+CONFIG_MMC_USDHI6ROL0=m
+CONFIG_MMC_REALTEK_PCI=m
+CONFIG_MMC_REALTEK_USB=m
+CONFIG_MMC_TOSHIBA_PCI=m
+CONFIG_MEMSTICK=m
+# CONFIG_MEMSTICK_DEBUG is not set
+
+#
+# MemoryStick drivers
+#
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MSPRO_BLOCK=m
+CONFIG_MS_BLOCK=m
+
+#
+# MemoryStick Host Controller Drivers
+#
+CONFIG_MEMSTICK_TIFM_MS=m
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_MEMSTICK_R592=m
+CONFIG_MEMSTICK_REALTEK_PCI=m
+CONFIG_MEMSTICK_REALTEK_USB=m
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+# CONFIG_LEDS_CLASS_FLASH is not set
+
+#
+# LED drivers
+#
+CONFIG_LEDS_LM3530=m
+# CONFIG_LEDS_LM3642 is not set
+# CONFIG_LEDS_PCA9532 is not set
+# CONFIG_LEDS_GPIO is not set
+# CONFIG_LEDS_LP3944 is not set
+# CONFIG_LEDS_LP5521 is not set
+# CONFIG_LEDS_LP5523 is not set
+# CONFIG_LEDS_LP5562 is not set
+# CONFIG_LEDS_LP8501 is not set
+# CONFIG_LEDS_LP8860 is not set
+# CONFIG_LEDS_CLEVO_MAIL is not set
+# CONFIG_LEDS_PCA955X is not set
+# CONFIG_LEDS_PCA963X is not set
+# CONFIG_LEDS_DA903X is not set
+# CONFIG_LEDS_DA9052 is not set
+# CONFIG_LEDS_DAC124S085 is not set
+# CONFIG_LEDS_BD2802 is not set
+# CONFIG_LEDS_INTEL_SS4200 is not set
+# CONFIG_LEDS_LT3593 is not set
+# CONFIG_LEDS_ADP5520 is not set
+# CONFIG_LEDS_DELL_NETBOOKS is not set
+# CONFIG_LEDS_TCA6507 is not set
+# CONFIG_LEDS_LM355x is not set
+
+#
+# LED driver for blink(1) USB RGB LED is under Special HID drivers
(HID_THINGM)
+#
+# CONFIG_LEDS_BLINKM is not set
+# CONFIG_LEDS_PM8941_WLED is not set
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+# CONFIG_LEDS_TRIGGER_TIMER is not set
+# CONFIG_LEDS_TRIGGER_ONESHOT is not set
+# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
+# CONFIG_LEDS_TRIGGER_CPU is not set
+# CONFIG_LEDS_TRIGGER_GPIO is not set
+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
+# CONFIG_LEDS_TRIGGER_CAMERA is not set
+CONFIG_ACCESSIBILITY=y
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_USER_MAD=m
+CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_INFINIBAND_USER_MEM=y
+CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
+CONFIG_INFINIBAND_ADDR_TRANS=y
+CONFIG_INFINIBAND_MTHCA=m
+CONFIG_INFINIBAND_MTHCA_DEBUG=y
+CONFIG_INFINIBAND_IPATH=m
+CONFIG_INFINIBAND_QIB=m
+CONFIG_INFINIBAND_QIB_DCA=y
+CONFIG_INFINIBAND_AMSO1100=m
+# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
+CONFIG_INFINIBAND_CXGB3=m
+# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
+CONFIG_INFINIBAND_CXGB4=m
+CONFIG_MLX4_INFINIBAND=m
+CONFIG_MLX5_INFINIBAND=m
+CONFIG_INFINIBAND_NES=m
+# CONFIG_INFINIBAND_NES_DEBUG is not set
+CONFIG_INFINIBAND_OCRDMA=m
+CONFIG_INFINIBAND_USNIC=m
+CONFIG_INFINIBAND_IPOIB=m
+# CONFIG_INFINIBAND_IPOIB_CM is not set
+# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
+CONFIG_INFINIBAND_SRP=m
+CONFIG_INFINIBAND_SRPT=m
+CONFIG_INFINIBAND_ISER=m
+CONFIG_INFINIBAND_ISERT=m
+CONFIG_EDAC=y
+# CONFIG_EDAC_LEGACY_SYSFS is not set
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=y
+# CONFIG_EDAC_MCE_INJ is not set
+CONFIG_EDAC_MM_EDAC=m
+CONFIG_EDAC_AMD64=m
+# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_IE31200=m
+CONFIG_EDAC_X38=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I7CORE=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_EDAC_I7300=m
+CONFIG_EDAC_SBRIDGE=m
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_ABB5ZES3=m
+# CONFIG_RTC_DRV_ABX80X is not set
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+# CONFIG_RTC_DRV_DS1374_WDT is not set
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_ISL12057=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF2127=m
+CONFIG_RTC_DRV_PCF8523=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF85063=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+# CONFIG_RTC_DRV_M41T80_WDT is not set
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3029C2=m
+
+#
+# SPI RTC drivers
+#
+CONFIG_RTC_DRV_M41T93=m
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1343=m
+CONFIG_RTC_DRV_DS1347=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_DS3234=m
+CONFIG_RTC_DRV_PCF2123=m
+CONFIG_RTC_DRV_RX4581=m
+CONFIG_RTC_DRV_MCP795=m
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1685_FAMILY=m
+CONFIG_RTC_DRV_DS1685=y
+# CONFIG_RTC_DRV_DS1689 is not set
+# CONFIG_RTC_DRV_DS17285 is not set
+# CONFIG_RTC_DRV_DS17485 is not set
+# CONFIG_RTC_DRV_DS17885 is not set
+# CONFIG_RTC_DS1685_PROC_REGS is not set
+# CONFIG_RTC_DS1685_SYSFS_REGS is not set
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_DS2404=m
+CONFIG_RTC_DRV_DA9052=m
+CONFIG_RTC_DRV_DA9055=m
+CONFIG_RTC_DRV_DA9063=m
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_V3020=m
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_XGENE=m
+
+#
+# HID Sensor RTC drivers
+#
+CONFIG_RTC_DRV_HID_SENSOR_TIME=m
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_INTEL_MIC_X100_DMA=m
+CONFIG_INTEL_IOATDMA=m
+CONFIG_DW_DMAC_CORE=m
+CONFIG_DW_DMAC=m
+CONFIG_DW_DMAC_PCI=m
+# CONFIG_HSU_DMA_PCI is not set
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_ACPI=y
+
+#
+# DMA Clients
+#
+CONFIG_ASYNC_TX_DMA=y
+# CONFIG_DMATEST is not set
+CONFIG_DMA_ENGINE_RAID=y
+CONFIG_DCA=m
+CONFIG_AUXDISPLAY=y
+CONFIG_KS0108=m
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS0108_DELAY=2
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+CONFIG_UIO=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_DMEM_GENIRQ=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
+CONFIG_UIO_MF624=m
+CONFIG_VFIO_IOMMU_TYPE1=m
+CONFIG_VFIO_VIRQFD=m
+CONFIG_VFIO=m
+CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_VGA=y
+CONFIG_VFIO_PCI_MMAP=y
+CONFIG_VFIO_PCI_INTX=y
+CONFIG_VIRT_DRIVERS=y
+CONFIG_VIRTIO=m
+
+#
+# Virtio drivers
+#
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_PCI_LEGACY=y
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MMIO=m
+# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
+
+#
+# Microsoft Hyper-V guest support
+#
+CONFIG_HYPERV=m
+CONFIG_HYPERV_UTILS=m
+CONFIG_HYPERV_BALLOON=m
+CONFIG_STAGING=y
+CONFIG_SLICOSS=m
+CONFIG_PRISM2_USB=m
+# CONFIG_COMEDI is not set
+CONFIG_PANEL=m
+CONFIG_PANEL_PARPORT=0
+CONFIG_PANEL_PROFILE=5
+# CONFIG_PANEL_CHANGE_MESSAGE is not set
+CONFIG_RTL8192U=m
+CONFIG_RTLLIB=m
+CONFIG_RTLLIB_CRYPTO_CCMP=m
+CONFIG_RTLLIB_CRYPTO_TKIP=m
+CONFIG_RTLLIB_CRYPTO_WEP=m
+CONFIG_RTL8192E=m
+CONFIG_R8712U=m
+CONFIG_R8188EU=m
+CONFIG_88EU_AP_MODE=y
+CONFIG_R8723AU=m
+CONFIG_8723AU_AP_MODE=y
+CONFIG_8723AU_BT_COEXIST=y
+CONFIG_RTS5208=m
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+
+#
+# IIO staging drivers
+#
+
+#
+# Accelerometers
+#
+# CONFIG_ADIS16201 is not set
+# CONFIG_ADIS16203 is not set
+# CONFIG_ADIS16204 is not set
+# CONFIG_ADIS16209 is not set
+# CONFIG_ADIS16220 is not set
+# CONFIG_ADIS16240 is not set
+# CONFIG_LIS3L02DQ is not set
+
+#
+# Analog to digital converters
+#
+# CONFIG_AD7606 is not set
+# CONFIG_AD7780 is not set
+# CONFIG_AD7816 is not set
+# CONFIG_AD7192 is not set
+# CONFIG_AD7280 is not set
+
+#
+# Analog digital bi-direction converters
+#
+# CONFIG_ADT7316 is not set
+
+#
+# Capacitance to digital converters
+#
+# CONFIG_AD7150 is not set
+# CONFIG_AD7152 is not set
+# CONFIG_AD7746 is not set
+
+#
+# Direct Digital Synthesis
+#
+# CONFIG_AD9832 is not set
+# CONFIG_AD9834 is not set
+
+#
+# Digital gyroscope sensors
+#
+# CONFIG_ADIS16060 is not set
+
+#
+# Network Analyzer, Impedance Converters
+#
+# CONFIG_AD5933 is not set
+
+#
+# Light sensors
+#
+# CONFIG_SENSORS_ISL29018 is not set
+# CONFIG_SENSORS_ISL29028 is not set
+# CONFIG_TSL2583 is not set
+# CONFIG_TSL2x7x is not set
+
+#
+# Magnetometer sensors
+#
+# CONFIG_SENSORS_HMC5843_I2C is not set
+# CONFIG_SENSORS_HMC5843_SPI is not set
+
+#
+# Active energy metering IC
+#
+# CONFIG_ADE7753 is not set
+# CONFIG_ADE7754 is not set
+# CONFIG_ADE7758 is not set
+# CONFIG_ADE7759 is not set
+# CONFIG_ADE7854 is not set
+
+#
+# Resolver to digital converters
+#
+# CONFIG_AD2S90 is not set
+# CONFIG_AD2S1200 is not set
+# CONFIG_AD2S1210 is not set
+
+#
+# Triggers - standalone
+#
+# CONFIG_IIO_SIMPLE_DUMMY is not set
+CONFIG_FB_SM7XX=m
+CONFIG_FB_SM750=m
+CONFIG_FB_XGI=m
+CONFIG_FT1000=m
+CONFIG_FT1000_USB=m
+CONFIG_FT1000_PCMCIA=m
+
+#
+# Speakup console speech
+#
+CONFIG_SPEAKUP=y
+CONFIG_SPEAKUP_SYNTH_ACNTSA=y
+CONFIG_SPEAKUP_SYNTH_APOLLO=y
+CONFIG_SPEAKUP_SYNTH_AUDPTR=y
+CONFIG_SPEAKUP_SYNTH_BNS=y
+CONFIG_SPEAKUP_SYNTH_DECTLK=y
+CONFIG_SPEAKUP_SYNTH_DECEXT=y
+CONFIG_SPEAKUP_SYNTH_LTLK=y
+CONFIG_SPEAKUP_SYNTH_SOFT=y
+CONFIG_SPEAKUP_SYNTH_SPKOUT=y
+CONFIG_SPEAKUP_SYNTH_TXPRT=y
+# CONFIG_SPEAKUP_SYNTH_DUMMY is not set
+CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
+# CONFIG_STAGING_MEDIA is not set
+
+#
+# Android
+#
+CONFIG_USB_WPAN_HCD=m
+CONFIG_WIMAX_GDM72XX=m
+# CONFIG_WIMAX_GDM72XX_QOS is not set
+# CONFIG_WIMAX_GDM72XX_K_MODE is not set
+# CONFIG_WIMAX_GDM72XX_WIMAX2 is not set
+CONFIG_WIMAX_GDM72XX_USB=y
+# CONFIG_WIMAX_GDM72XX_SDIO is not set
+# CONFIG_WIMAX_GDM72XX_USB_PM is not set
+CONFIG_LTE_GDM724X=m
+CONFIG_FIREWIRE_SERIAL=m
+CONFIG_FWTTY_MAX_TOTAL_PORTS=64
+CONFIG_FWTTY_MAX_CARD_PORTS=32
+CONFIG_MTD_SPINAND_MT29F=m
+CONFIG_MTD_SPINAND_ONDIEECC=y
+CONFIG_LUSTRE_FS=m
+CONFIG_LUSTRE_OBD_MAX_IOCTL_BUFFER=8192
+# CONFIG_LUSTRE_DEBUG_EXPENSIVE_CHECK is not set
+CONFIG_LUSTRE_LLITE_LLOOP=m
+CONFIG_LNET=m
+CONFIG_LNET_MAX_PAYLOAD=1048576
+# CONFIG_LNET_SELFTEST is not set
+CONFIG_LNET_XPRT_IB=m
+CONFIG_DGNC=m
+CONFIG_DGAP=m
+CONFIG_GS_FPGABOOT=m
+CONFIG_CRYPTO_SKEIN=m
+CONFIG_UNISYSSPAR=y
+CONFIG_UNISYS_VISORUTIL=m
+CONFIG_UNISYS_VISORCHANNEL=m
+CONFIG_UNISYS_VISORCHIPSET=m
+CONFIG_UNISYS_UISLIB=m
+CONFIG_UNISYS_VIRTPCI=m
+CONFIG_UNISYS_VIRTHBA=m
+CONFIG_FB_TFT=m
+CONFIG_FB_TFT_AGM1264K_FL=m
+CONFIG_FB_TFT_BD663474=m
+CONFIG_FB_TFT_HX8340BN=m
+CONFIG_FB_TFT_HX8347D=m
+CONFIG_FB_TFT_HX8353D=m
+CONFIG_FB_TFT_ILI9163=m
+CONFIG_FB_TFT_ILI9320=m
+CONFIG_FB_TFT_ILI9325=m
+CONFIG_FB_TFT_ILI9340=m
+CONFIG_FB_TFT_ILI9341=m
+CONFIG_FB_TFT_ILI9481=m
+CONFIG_FB_TFT_ILI9486=m
+CONFIG_FB_TFT_PCD8544=m
+CONFIG_FB_TFT_RA8875=m
+CONFIG_FB_TFT_S6D02A1=m
+CONFIG_FB_TFT_S6D1121=m
+CONFIG_FB_TFT_SSD1289=m
+CONFIG_FB_TFT_SSD1306=m
+CONFIG_FB_TFT_SSD1331=m
+CONFIG_FB_TFT_SSD1351=m
+CONFIG_FB_TFT_ST7735R=m
+CONFIG_FB_TFT_TINYLCD=m
+CONFIG_FB_TFT_TLS8204=m
+CONFIG_FB_TFT_UC1701=m
+CONFIG_FB_TFT_UPD161704=m
+CONFIG_FB_TFT_WATTEROTT=m
+CONFIG_FB_FLEX=m
+CONFIG_FB_TFT_FBTFT_DEVICE=m
+CONFIG_I2O=m
+CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
+CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_EXT_ADAPTEC_DMA64=y
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_CONFIG_OLD_IOCTL=y
+CONFIG_I2O_BUS=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
+CONFIG_ALIENWARE_WMI=m
+CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_AIO=m
+CONFIG_DELL_SMO8800=m
+CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_FUJITSU_TABLET=m
+CONFIG_AMILO_RFKILL=m
+CONFIG_HP_ACCEL=m
+CONFIG_HP_WIRELESS=m
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_SONY_LAPTOP=m
+CONFIG_SONYPI_COMPAT=y
+CONFIG_IDEAPAD_LAPTOP=m
+CONFIG_THINKPAD_ACPI=m
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_SENSORS_HDAPS=m
+CONFIG_INTEL_MENLOW=m
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_ASUS_WMI=m
+CONFIG_ASUS_NB_WMI=m
+CONFIG_EEEPC_WMI=m
+CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_TOSHIBA_HAPS=m
+CONFIG_ACPI_CMPC=m
+CONFIG_INTEL_IPS=m
+CONFIG_IBM_RTL=m
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_MXM_WMI=m
+CONFIG_INTEL_OAKTRAIL=m
+CONFIG_SAMSUNG_Q10=m
+CONFIG_APPLE_GMUX=m
+CONFIG_INTEL_RST=m
+CONFIG_INTEL_SMARTCONNECT=m
+CONFIG_PVPANIC=m
+CONFIG_CHROME_PLATFORMS=y
+CONFIG_CHROMEOS_LAPTOP=m
+# CONFIG_CHROMEOS_PSTORE is not set
+# CONFIG_CROS_EC_CHARDEV is not set
+# CONFIG_CROS_EC_LPC is not set
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_COMMON_CLK=y
+
+#
+# Common Clock Framework
+#
+# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_PXA is not set
+# CONFIG_COMMON_CLK_CDCE706 is not set
+
+#
+# Hardware Spinlock drivers
+#
+
+#
+# Clock Source drivers
+#
+CONFIG_CLKEVT_I8253=y
+CONFIG_I8253_LOCK=y
+CONFIG_CLKBLD_I8253=y
+# CONFIG_ATMEL_PIT is not set
+# CONFIG_SH_TIMER_CMT is not set
+# CONFIG_SH_TIMER_MTU2 is not set
+# CONFIG_SH_TIMER_TMU is not set
+# CONFIG_EM_TIMER_STI is not set
+CONFIG_MAILBOX=y
+CONFIG_PCC=y
+CONFIG_ALTERA_MBOX=m
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+
+#
+# Generic IOMMU Pagetable Support
+#
+CONFIG_IOMMU_IOVA=y
+CONFIG_AMD_IOMMU=y
+# CONFIG_AMD_IOMMU_STATS is not set
+CONFIG_AMD_IOMMU_V2=m
+CONFIG_DMAR_TABLE=y
+CONFIG_INTEL_IOMMU=y
+CONFIG_INTEL_IOMMU_DEFAULT_ON=y
+CONFIG_INTEL_IOMMU_FLOPPY_WA=y
+CONFIG_IRQ_REMAP=y
+
+#
+# Remoteproc drivers
+#
+CONFIG_REMOTEPROC=m
+CONFIG_STE_MODEM_RPROC=m
+
+#
+# Rpmsg drivers
+#
+
+#
+# SOC (System On Chip) specific Drivers
+#
+CONFIG_SOC_TI=y
+CONFIG_PM_DEVFREQ=y
+
+#
+# DEVFREQ Governors
+#
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m
+CONFIG_DEVFREQ_GOV_PERFORMANCE=m
+CONFIG_DEVFREQ_GOV_POWERSAVE=m
+CONFIG_DEVFREQ_GOV_USERSPACE=m
+
+#
+# DEVFREQ Drivers
+#
+# CONFIG_PM_DEVFREQ_EVENT is not set
+CONFIG_EXTCON=m
+
+#
+# Extcon Device Drivers
+#
+CONFIG_EXTCON_ADC_JACK=m
+CONFIG_EXTCON_GPIO=m
+CONFIG_EXTCON_RT8973A=m
+CONFIG_EXTCON_SM5502=m
+# CONFIG_EXTCON_USB_GPIO is not set
+CONFIG_MEMORY=y
+CONFIG_IIO=m
+# CONFIG_IIO_BUFFER is not set
+# CONFIG_IIO_TRIGGER is not set
+
+#
+# Accelerometers
+#
+# CONFIG_BMA180 is not set
+# CONFIG_BMC150_ACCEL is not set
+# CONFIG_HID_SENSOR_ACCEL_3D is not set
+# CONFIG_IIO_ST_ACCEL_3AXIS is not set
+# CONFIG_KXSD9 is not set
+# CONFIG_MMA8452 is not set
+# CONFIG_KXCJK1013 is not set
+# CONFIG_MMA9551 is not set
+# CONFIG_MMA9553 is not set
+
+#
+# Analog to digital converters
+#
+# CONFIG_AD7266 is not set
+# CONFIG_AD7291 is not set
+# CONFIG_AD7298 is not set
+# CONFIG_AD7476 is not set
+# CONFIG_AD7791 is not set
+# CONFIG_AD7793 is not set
+# CONFIG_AD7887 is not set
+# CONFIG_AD7923 is not set
+# CONFIG_AD799X is not set
+# CONFIG_AXP288_ADC is not set
+# CONFIG_MAX1027 is not set
+# CONFIG_MAX1363 is not set
+# CONFIG_MCP320X is not set
+# CONFIG_MCP3422 is not set
+# CONFIG_NAU7802 is not set
+# CONFIG_QCOM_SPMI_IADC is not set
+# CONFIG_QCOM_SPMI_VADC is not set
+# CONFIG_TI_ADC081C is not set
+# CONFIG_TI_ADC128S052 is not set
+
+#
+# Amplifiers
+#
+# CONFIG_AD8366 is not set
+
+#
+# Hid Sensor IIO Common
+#
+CONFIG_HID_SENSOR_IIO_COMMON=m
+# CONFIG_HID_SENSOR_IIO_TRIGGER is not set
+
+#
+# SSP Sensor Common
+#
+# CONFIG_IIO_SSP_SENSORHUB is not set
+
+#
+# Digital to analog converters
+#
+# CONFIG_AD5064 is not set
+# CONFIG_AD5360 is not set
+# CONFIG_AD5380 is not set
+# CONFIG_AD5421 is not set
+# CONFIG_AD5446 is not set
+# CONFIG_AD5449 is not set
+# CONFIG_AD5504 is not set
+# CONFIG_AD5624R_SPI is not set
+# CONFIG_AD5686 is not set
+# CONFIG_AD5755 is not set
+# CONFIG_AD5764 is not set
+# CONFIG_AD5791 is not set
+# CONFIG_AD7303 is not set
+# CONFIG_MAX517 is not set
+# CONFIG_MCP4725 is not set
+# CONFIG_MCP4922 is not set
+
+#
+# Frequency Synthesizers DDS/PLL
+#
+
+#
+# Clock Generator/Distribution
+#
+# CONFIG_AD9523 is not set
+
+#
+# Phase-Locked Loop (PLL) frequency synthesizers
+#
+# CONFIG_ADF4350 is not set
+
+#
+# Digital gyroscope sensors
+#
+# CONFIG_ADIS16080 is not set
+# CONFIG_ADIS16130 is not set
+# CONFIG_ADIS16136 is not set
+# CONFIG_ADIS16260 is not set
+# CONFIG_ADXRS450 is not set
+# CONFIG_BMG160 is not set
+# CONFIG_HID_SENSOR_GYRO_3D is not set
+# CONFIG_IIO_ST_GYRO_3AXIS is not set
+# CONFIG_ITG3200 is not set
+
+#
+# Humidity sensors
+#
+# CONFIG_DHT11 is not set
+# CONFIG_SI7005 is not set
+# CONFIG_SI7020 is not set
+
+#
+# Inertial measurement units
+#
+# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16480 is not set
+# CONFIG_KMX61 is not set
+# CONFIG_INV_MPU6050_IIO is not set
+
+#
+# Light sensors
+#
+# CONFIG_ADJD_S311 is not set
+# CONFIG_AL3320A is not set
+# CONFIG_APDS9300 is not set
+# CONFIG_CM32181 is not set
+# CONFIG_CM3232 is not set
+# CONFIG_CM3323 is not set
+# CONFIG_CM36651 is not set
+# CONFIG_GP2AP020A00F is not set
+# CONFIG_ISL29125 is not set
+# CONFIG_HID_SENSOR_ALS is not set
+# CONFIG_HID_SENSOR_PROX is not set
+# CONFIG_JSA1212 is not set
+# CONFIG_LTR501 is not set
+# CONFIG_TCS3414 is not set
+# CONFIG_TCS3472 is not set
+# CONFIG_SENSORS_TSL2563 is not set
+# CONFIG_TSL4531 is not set
+# CONFIG_VCNL4000 is not set
+
+#
+# Magnetometer sensors
+#
+# CONFIG_AK8975 is not set
+# CONFIG_AK09911 is not set
+# CONFIG_MAG3110 is not set
+# CONFIG_HID_SENSOR_MAGNETOMETER_3D is not set
+# CONFIG_IIO_ST_MAGN_3AXIS is not set
+
+#
+# Inclinometer sensors
+#
+# CONFIG_HID_SENSOR_INCLINOMETER_3D is not set
+# CONFIG_HID_SENSOR_DEVICE_ROTATION is not set
+
+#
+# Pressure sensors
+#
+# CONFIG_BMP280 is not set
+# CONFIG_HID_SENSOR_PRESS is not set
+# CONFIG_MPL115 is not set
+# CONFIG_MPL3115 is not set
+# CONFIG_MS5611 is not set
+# CONFIG_IIO_ST_PRESS is not set
+# CONFIG_T5403 is not set
+
+#
+# Lightning sensors
+#
+# CONFIG_AS3935 is not set
+
+#
+# Proximity sensors
+#
+# CONFIG_SX9500 is not set
+
+#
+# Temperature sensors
+#
+# CONFIG_MLX90614 is not set
+# CONFIG_TMP006 is not set
+CONFIG_NTB=m
+CONFIG_VME_BUS=y
+
+#
+# VME Bridge Drivers
+#
+CONFIG_VME_CA91CX42=m
+CONFIG_VME_TSI148=m
+
+#
+# VME Board Drivers
+#
+CONFIG_VMIVME_7805=m
+
+#
+# VME Device Drivers
+#
+CONFIG_VME_USER=m
+CONFIG_VME_PIO2=m
+# CONFIG_PWM is not set
+# CONFIG_IPACK_BUS is not set
+CONFIG_RESET_CONTROLLER=y
+# CONFIG_FMC is not set
+
+#
+# PHY Subsystem
+#
+CONFIG_GENERIC_PHY=y
+CONFIG_BCM_KONA_USB2_PHY=m
+CONFIG_PHY_SAMSUNG_USB2=m
+# CONFIG_PHY_EXYNOS4210_USB2 is not set
+# CONFIG_PHY_EXYNOS4X12_USB2 is not set
+# CONFIG_PHY_EXYNOS5250_USB2 is not set
+CONFIG_POWERCAP=y
+CONFIG_INTEL_RAPL=m
+# CONFIG_MCB is not set
+CONFIG_RAS=y
+CONFIG_THUNDERBOLT=m
+
+#
+# Android
+#
+# CONFIG_ANDROID is not set
+
+#
+# Firmware Drivers
+#
+# CONFIG_EDD is not set
+CONFIG_FIRMWARE_MEMMAP=y
+# CONFIG_DELL_RBU is not set
+CONFIG_DCDBAS=m
+CONFIG_DMIID=y
+# CONFIG_DMI_SYSFS is not set
+CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
+CONFIG_ISCSI_IBFT_FIND=y
+# CONFIG_ISCSI_IBFT is not set
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# EFI (Extensible Firmware Interface) Support
+#
+CONFIG_EFI_VARS=m
+CONFIG_EFI_VARS_PSTORE=m
+CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_UEFI_CPER=y
+
+#
+# File systems
+#
+CONFIG_DCACHE_WORD_ACCESS=y
+CONFIG_EXT2_FS=m
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+CONFIG_EXT3_FS=m
+CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=m
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_ENCRYPTION is not set
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_JBD2=m
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=m
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_WARN is not set
+# CONFIG_XFS_DEBUG is not set
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+# CONFIG_OCFS2_FS_STATS is not set
+# CONFIG_OCFS2_DEBUG_MASKLOG is not set
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
+# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
+# CONFIG_BTRFS_DEBUG is not set
+# CONFIG_BTRFS_ASSERT is not set
+CONFIG_NILFS2_FS=m
+CONFIG_F2FS_FS=m
+CONFIG_F2FS_STAT_FS=y
+CONFIG_F2FS_FS_XATTR=y
+CONFIG_F2FS_FS_POSIX_ACL=y
+CONFIG_F2FS_FS_SECURITY=y
+# CONFIG_F2FS_CHECK_FS is not set
+CONFIG_FS_DAX=y
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=y
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+# CONFIG_DNOTIFY is not set
+CONFIG_INOTIFY_USER=y
+# CONFIG_FANOTIFY is not set
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_TREE=m
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_QUOTACTL_COMPAT=y
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=y
+CONFIG_CUSE=m
+CONFIG_OVERLAY_FS=y
+
+#
+# Caches
+#
+CONFIG_FSCACHE=m
+# CONFIG_FSCACHE_STATS is not set
+# CONFIG_FSCACHE_HISTOGRAM is not set
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+# CONFIG_PROC_KCORE is not set
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_KERNFS=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_CONFIGFS_FS=y
+CONFIG_EFIVAR_FS=m
+CONFIG_MISC_FILESYSTEMS=y
+CONFIG_ADFS_FS=m
+# CONFIG_ADFS_FS_RW is not set
+CONFIG_AFFS_FS=m
+CONFIG_ECRYPT_FS=m
+CONFIG_ECRYPT_FS_MESSAGING=y
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_HFSPLUS_FS_POSIX_ACL=y
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+CONFIG_BFS_FS=m
+CONFIG_EFS_FS=m
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_UBIFS_FS=m
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+CONFIG_LOGFS=m
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_FILE_CACHE=y
+# CONFIG_SQUASHFS_FILE_DIRECT is not set
+CONFIG_SQUASHFS_DECOMP_SINGLE=y
+# CONFIG_SQUASHFS_DECOMP_MULTI is not set
+# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_ZLIB=y
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+CONFIG_VXFS_FS=m
+CONFIG_MINIX_FS=m
+CONFIG_OMFS_FS=m
+CONFIG_HPFS_FS=m
+CONFIG_QNX4FS_FS=m
+CONFIG_QNX6FS_FS=m
+# CONFIG_QNX6FS_DEBUG is not set
+CONFIG_ROMFS_FS=m
+CONFIG_ROMFS_BACKED_BY_BLOCK=y
+# CONFIG_ROMFS_BACKED_BY_MTD is not set
+# CONFIG_ROMFS_BACKED_BY_BOTH is not set
+CONFIG_ROMFS_ON_BLOCK=y
+CONFIG_PSTORE=y
+# CONFIG_PSTORE_CONSOLE is not set
+# CONFIG_PSTORE_PMSG is not set
+# CONFIG_PSTORE_RAM is not set
+CONFIG_SYSV_FS=m
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+# CONFIG_EXOFS_FS is not set
+CONFIG_ORE=m
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V2=m
+CONFIG_NFS_V3=m
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=m
+CONFIG_NFS_SWAP=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_PNFS_FILE_LAYOUT=m
+CONFIG_PNFS_BLOCK=m
+CONFIG_PNFS_OBJLAYOUT=m
+CONFIG_PNFS_FLEXFILE_LAYOUT=m
+CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
+CONFIG_NFS_V4_1_MIGRATION=y
+CONFIG_NFS_V4_SECURITY_LABEL=y
+CONFIG_NFS_FSCACHE=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_PNFS=y
+CONFIG_NFSD_V4_SECURITY_LABEL=y
+# CONFIG_NFSD_FAULT_INJECTION is not set
+CONFIG_GRACE_PERIOD=m
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_SUNRPC_BACKCHANNEL=y
+CONFIG_SUNRPC_SWAP=y
+# CONFIG_SUNRPC_DEBUG is not set
+CONFIG_SUNRPC_XPRT_RDMA_CLIENT=m
+CONFIG_SUNRPC_XPRT_RDMA_SERVER=m
+CONFIG_CEPH_FS=m
+CONFIG_CEPH_FSCACHE=y
+CONFIG_CEPH_FS_POSIX_ACL=y
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+CONFIG_CIFS_WEAK_PW_HASH=y
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+CONFIG_CIFS_ACL=y
+# CONFIG_CIFS_DEBUG is not set
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_SMB2=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_NCP_FS=m
+CONFIG_NCPFS_PACKET_SIGNING=y
+CONFIG_NCPFS_IOCTL_LOCKING=y
+CONFIG_NCPFS_STRONG=y
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_SMALLDOS=y
+CONFIG_NCPFS_NLS=y
+CONFIG_NCPFS_EXTRAS=y
+CONFIG_CODA_FS=m
+CONFIG_AFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+CONFIG_AFS_FSCACHE=y
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_9P_FS_SECURITY=y
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_MAC_ROMAN=m
+CONFIG_NLS_MAC_CELTIC=m
+CONFIG_NLS_MAC_CENTEURO=m
+CONFIG_NLS_MAC_CROATIAN=m
+CONFIG_NLS_MAC_CYRILLIC=m
+CONFIG_NLS_MAC_GAELIC=m
+CONFIG_NLS_MAC_GREEK=m
+CONFIG_NLS_MAC_ICELAND=m
+CONFIG_NLS_MAC_INUIT=m
+CONFIG_NLS_MAC_ROMANIAN=m
+CONFIG_NLS_MAC_TURKISH=m
+CONFIG_NLS_UTF8=y
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+
+#
+# printk and dmesg options
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+
+#
+# Compile-time checks and compiler options
+#
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=2048
+CONFIG_STRIP_ASM_SYMS=y
+# CONFIG_READABLE_ASM is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_PAGE_OWNER is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+# CONFIG_FRAME_POINTER is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
+CONFIG_DEBUG_KERNEL=y
+
+#
+# Memory Debugging
+#
+# CONFIG_PAGE_EXTENSION is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+CONFIG_HAVE_ARCH_KASAN=y
+# CONFIG_KASAN is not set
+CONFIG_KASAN_SHADOW_OFFSET=0xdffffc0000000000
+# CONFIG_DEBUG_SHIRQ is not set
+
+#
+# Debug Lockups and Hangs
+#
+# CONFIG_LOCKUP_DETECTOR is not set
+# CONFIG_DETECT_HUNG_TASK is not set
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=0
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_SCHED_STACK_END_CHECK is not set
+# CONFIG_DEBUG_TIMEKEEPING is not set
+# CONFIG_TIMER_STATS is not set
+
+#
+# Lock Debugging (spinlocks, mutexes, etc...)
+#
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_LOCK_TORTURE_TEST is not set
+# CONFIG_STACKTRACE is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_PI_LIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+
+#
+# RCU Debugging
+#
+# CONFIG_PROVE_RCU is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
+# CONFIG_TORTURE_TEST is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=21
+# CONFIG_RCU_CPU_STALL_INFO is not set
+# CONFIG_RCU_TRACE is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_NOTIFIER_ERROR_INJECTION is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_FENTRY=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_TRACING_SUPPORT=y
+# CONFIG_FTRACE is not set
+
+#
+# Runtime Testing
+#
+# CONFIG_LKDTM is not set
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_RBTREE_TEST is not set
+# CONFIG_INTERVAL_TREE_TEST is not set
+# CONFIG_PERCPU_TEST is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+# CONFIG_ASYNC_RAID6_TEST is not set
+# CONFIG_TEST_HEXDUMP is not set
+# CONFIG_TEST_STRING_HELPERS is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_TEST_RHASHTABLE is not set
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_TEST_LKM is not set
+# CONFIG_TEST_USER_COPY is not set
+# CONFIG_TEST_BPF is not set
+# CONFIG_TEST_FIRMWARE is not set
+# CONFIG_TEST_UDELAY is not set
+CONFIG_MEMTEST=y
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+# CONFIG_STRICT_DEVMEM is not set
+CONFIG_X86_VERBOSE_BOOTUP=y
+# CONFIG_EARLY_PRINTK is not set
+# CONFIG_X86_PTDUMP is not set
+CONFIG_DEBUG_RODATA=y
+# CONFIG_DEBUG_RODATA_TEST is not set
+CONFIG_DEBUG_SET_MODULE_RONX=y
+# CONFIG_DEBUG_NX_TEST is not set
+CONFIG_DOUBLEFAULT=y
+# CONFIG_DEBUG_TLBFLUSH is not set
+# CONFIG_IOMMU_DEBUG is not set
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+CONFIG_IO_DELAY_TYPE_NONE=3
+CONFIG_IO_DELAY_0X80=y
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_DELAY_NONE is not set
+CONFIG_DEFAULT_IO_DELAY_TYPE=0
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+# CONFIG_CPA_DEBUG is not set
+CONFIG_OPTIMIZE_INLINING=y
+# CONFIG_DEBUG_NMI_SELFTEST is not set
+# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+CONFIG_PERSISTENT_KEYRINGS=y
+CONFIG_BIG_KEYS=y
+CONFIG_TRUSTED_KEYS=m
+CONFIG_ENCRYPTED_KEYS=y
+CONFIG_SECURITY_DMESG_RESTRICT=y
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_SECURITY_NETWORK_XFRM=y
+CONFIG_SECURITY_PATH=y
+# CONFIG_INTEL_TXT is not set
+CONFIG_LSM_MMAP_MIN_ADDR=65536
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0
+CONFIG_SECURITY_SELINUX_DISABLE=y
+CONFIG_SECURITY_SELINUX_DEVELOP=y
+CONFIG_SECURITY_SELINUX_AVC_STATS=y
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
+# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
+CONFIG_SECURITY_SMACK=y
+# CONFIG_SECURITY_SMACK_BRINGUP is not set
+CONFIG_SECURITY_SMACK_NETFILTER=y
+CONFIG_SECURITY_TOMOYO=y
+CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
+CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
+# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
+CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
+CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0
+CONFIG_SECURITY_APPARMOR_HASH=y
+CONFIG_SECURITY_YAMA=y
+CONFIG_SECURITY_YAMA_STACKED=y
+CONFIG_INTEGRITY=y
+CONFIG_INTEGRITY_SIGNATURE=y
+CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
+CONFIG_INTEGRITY_AUDIT=y
+CONFIG_IMA=y
+CONFIG_IMA_MEASURE_PCR_IDX=10
+CONFIG_IMA_LSM_RULES=y
+# CONFIG_IMA_TEMPLATE is not set
+CONFIG_IMA_NG_TEMPLATE=y
+# CONFIG_IMA_SIG_TEMPLATE is not set
+CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng"
+CONFIG_IMA_DEFAULT_HASH_SHA1=y
+# CONFIG_IMA_DEFAULT_HASH_SHA256 is not set
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
+CONFIG_IMA_DEFAULT_HASH="sha1"
+# CONFIG_IMA_APPRAISE is not set
+CONFIG_EVM=y
+CONFIG_EVM_ATTR_FSUUID=y
+CONFIG_EVM_EXTRA_SMACK_XATTRS=y
+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
+# CONFIG_DEFAULT_SECURITY_SMACK is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
+# CONFIG_DEFAULT_SECURITY_YAMA is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_GF128MUL=y
+CONFIG_CRYPTO_NULL=y
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_MCRYPTD=m
+CONFIG_CRYPTO_AUTHENC=y
+# CONFIG_CRYPTO_TEST is not set
+CONFIG_CRYPTO_ABLK_HELPER=m
+CONFIG_CRYPTO_GLUE_HELPER_X86=m
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=y
+CONFIG_CRYPTO_GCM=y
+CONFIG_CRYPTO_SEQIV=y
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CTR=y
+# CONFIG_CRYPTO_CTS is not set
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+# CONFIG_CRYPTO_PCBC is not set
+CONFIG_CRYPTO_XTS=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_CMAC=m
+CONFIG_CRYPTO_HMAC=y
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_CRC32=m
+CONFIG_CRYPTO_CRC32_PCLMUL=m
+CONFIG_CRYPTO_CRCT10DIF=y
+# CONFIG_CRYPTO_CRCT10DIF_PCLMUL is not set
+CONFIG_CRYPTO_GHASH=y
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_MICHAEL_MIC=m
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA1_SSSE3=m
+CONFIG_CRYPTO_SHA256_SSSE3=m
+CONFIG_CRYPTO_SHA512_SSSE3=m
+# CONFIG_CRYPTO_SHA1_MB is not set
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA512=m
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+# CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_AES_X86_64=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
+# CONFIG_CRYPTO_ANUBIS is not set
+CONFIG_CRYPTO_ARC4=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
+CONFIG_CRYPTO_BLOWFISH_X86_64=m
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAMELLIA_X86_64 is not set
+# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set
+# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set
+CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_DES3_EDE_X86_64 is not set
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+# CONFIG_CRYPTO_SALSA20_X86_64 is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set
+# CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set
+# CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set
+# CONFIG_CRYPTO_TEA is not set
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_X86_64=m
+CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
+CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+# CONFIG_CRYPTO_ZLIB is not set
+CONFIG_CRYPTO_LZO=m
+# CONFIG_CRYPTO_LZ4 is not set
+# CONFIG_CRYPTO_LZ4HC is not set
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_DRBG_MENU=m
+CONFIG_CRYPTO_DRBG_HMAC=y
+CONFIG_CRYPTO_DRBG_HASH=y
+CONFIG_CRYPTO_DRBG_CTR=y
+CONFIG_CRYPTO_DRBG=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_USER_API_RNG=m
+CONFIG_CRYPTO_HASH_INFO=y
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_DEV_CCP=y
+CONFIG_CRYPTO_DEV_CCP_DD=m
+CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
+CONFIG_CRYPTO_DEV_QAT=m
+CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
+CONFIG_ASYMMETRIC_KEY_TYPE=y
+CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
+CONFIG_PUBLIC_KEY_ALGO_RSA=y
+CONFIG_X509_CERTIFICATE_PARSER=y
+CONFIG_PKCS7_MESSAGE_PARSER=y
+# CONFIG_PKCS7_TEST_KEY is not set
+CONFIG_SIGNED_PE_FILE_VERIFICATION=y
+CONFIG_HAVE_KVM=y
+CONFIG_KVM_COMPAT=y
+CONFIG_VIRTUALIZATION=y
+# CONFIG_KVM is not set
+# CONFIG_BINARY_PRINTF is not set
+
+#
+# Library routines
+#
+CONFIG_RAID6_PQ=m
+CONFIG_BITREVERSE=y
+# CONFIG_HAVE_ARCH_BITREVERSE is not set
+CONFIG_RATIONAL=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_NET_UTILS=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_IO=y
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
+CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=y
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+# CONFIG_CRC32_SELFTEST is not set
+CONFIG_CRC32_SLICEBY8=y
+# CONFIG_CRC32_SLICEBY4 is not set
+# CONFIG_CRC32_SARWATE is not set
+# CONFIG_CRC32_BIT is not set
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+# CONFIG_CRC8 is not set
+# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
+# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_LZ4_COMPRESS=m
+CONFIG_LZ4_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_DECOMPRESS_LZ4=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_REED_SOLOMON=m
+CONFIG_REED_SOLOMON_DEC16=y
+CONFIG_BCH=m
+CONFIG_BCH_CONST_PARAMS=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_BTREE=y
+CONFIG_INTERVAL_TREE=y
+CONFIG_ASSOCIATIVE_ARRAY=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_HAS_DMA=y
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_CPU_RMAP=y
+CONFIG_DQL=y
+CONFIG_GLOB=y
+# CONFIG_GLOB_SELFTEST is not set
+CONFIG_NLATTR=y
+CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
+CONFIG_LRU_CACHE=m
+CONFIG_AVERAGE=y
+CONFIG_CLZ_TAB=y
+CONFIG_CORDIC=m
+# CONFIG_DDR is not set
+CONFIG_MPILIB=y
+CONFIG_SIGNATURE=y
+CONFIG_OID_REGISTRY=y
+CONFIG_UCS2_STRING=y
+CONFIG_FONT_SUPPORT=y
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_ARCH_HAS_SG_CHAIN=y
diff --git a/cauldron/etc/x86_64/sorcery/depends/elvis.p
b/cauldron/etc/x86_64/sorcery/depends/elvis.p
new file mode 100644
index 0000000..6e244c5
--- /dev/null
+++ b/cauldron/etc/x86_64/sorcery/depends/elvis.p
@@ -0,0 +1 @@
+MAKE_SYMLINK="y"
diff --git a/cauldron/etc/x86_64/sorcery/depends/ncurses.p
b/cauldron/etc/x86_64/sorcery/depends/ncurses.p
new file mode 100644
index 0000000..3014852
--- /dev/null
+++ b/cauldron/etc/x86_64/sorcery/depends/ncurses.p
@@ -0,0 +1 @@
+UTF8="y"
diff --git a/cauldron/etc/x86_64/sorcery/sorcery.depends
b/cauldron/etc/x86_64/sorcery/sorcery.depends
new file mode 100644
index 0000000..d9d8dff
--- /dev/null
+++ b/cauldron/etc/x86_64/sorcery/sorcery.depends
@@ -0,0 +1,2 @@
+coreutils:gmp:off
+openssl:gmp:off
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/README
b/cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/README
new file mode 100644
index 0000000..b5e659d
--- /dev/null
+++ b/cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/README
@@ -0,0 +1,9 @@
+"/etc/sorcery/local" is the cache for locally stored
+configuration files.
+
+"/etc/sorcery/local/config" contains the variables that
+you wish to override in /etc/sorcery/config.
+
+Addtionally, "/etc/sorcery/local" stores your config for
+Linus Torvalds' Linux Kernel and XFree86.
+
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/compile_config
b/cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/compile_config
new file mode 100644
index 0000000..f3a07e4
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/compile_config
@@ -0,0 +1 @@
+CCACHE=off
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/config
b/cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/config
new file mode 100644
index 0000000..a70278c
--- /dev/null
+++ b/cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/config
@@ -0,0 +1,24 @@
+ ARCHIVE="on"
+ AUTOFIX="on"
+ UPDATEFIX="off"
+ AUTOPRUNE="off"
+ GATHER_DOCS="off"
+ MAIL_REPORTS="off"
+ VIEW_REPORTS="off"
+ PRESERVE="on"
+ SUSTAIN="on"
+ TMPFS="off"
+ VOYEUR="on"
+ REAP="on"
+ STORE_CONF_LOG="on"
+ NET_SELECT="off"
+ CONFIG_LOC="off"
+ CLEAN_SOURCE="off"
+ CROSS_INSTALL="off"
+ SET_TERM_TITLE="on"
+ color "on"
+ ARCHITECTURE="x86_64"
+ OPTIMIZATIONS="strip tiny "
+ CUSTOM_CFLAGS=""
+ CUSTOM_CXXFLAGS=""
+ CUSTOM_LDFLAGS=""
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/details.defaults

b/cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/details.defaults
new file mode 100644
index 0000000..20ffcf9
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/details.defaults
@@ -0,0 +1,19 @@
+TXTMESSAGE=""
+PATCH[3]=patch-2.6.14.7
+. ${SPELL_DIRECTORY}/info/patches/*/${PATCH[3]}
+SOURCE3=$source
+SOURCE3_URL=$source_url
+TXTMESSAGE="${TXTMESSAGE}${txtmessage} "
+SHORT="${SHORT}${short} "
+KERNEL_VERSION=${patchversion}
+SOURCE3_GPG=$source_gpg
+. ${SPELL_DIRECTORY}/info/patches/*/${PATCH[3]}
+SOURCE4=$(echo $source_gpg | cut -d: -f2)
+SOURCE4_URL=$gpg_source_url
+SOURCE4_IGNORE=signature
+. ${SPELL_DIRECTORY}/info/kernels/2.6.14
+SOURCE=$source
+SOURCE_URL=$source_url
+SOURCE2=${source}.sign
+SOURCE_GPG=kernel.gpg:${SOURCE2}:ESTABLISHED_UPSTREAM_KEY
+SOURCE2_URL=${source_url}.sign
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/kernel.config
b/cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/kernel.config
new file mode 100644
index 0000000..db509bd
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/kernel.config
@@ -0,0 +1,3054 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.14.2
+# Sun Dec 11 16:00:34 2005
+#
+CONFIG_X86=y
+CONFIG_SEMAPHORE_SLEEPERS=y
+CONFIG_MMU=y
+CONFIG_UID16=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_CLEAN_COMPILE=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_POSIX_MQUEUE is not set
+CONFIG_BSD_PROCESS_ACCT=y
+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
+CONFIG_SYSCTL=y
+# CONFIG_AUDIT is not set
+CONFIG_HOTPLUG=y
+CONFIG_KOBJECT_UEVENT=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_EMBEDDED=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SHMEM=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_OBSOLETE_MODPARM=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# Processor type and features
+#
+CONFIG_X86_PC=y
+# CONFIG_X86_ELAN is not set
+# CONFIG_X86_VOYAGER is not set
+# CONFIG_X86_NUMAQ is not set
+# CONFIG_X86_SUMMIT is not set
+# CONFIG_X86_BIGSMP is not set
+# CONFIG_X86_VISWS is not set
+# CONFIG_X86_GENERICARCH is not set
+# CONFIG_X86_ES7000 is not set
+# CONFIG_M386 is not set
+CONFIG_M486=y
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+# CONFIG_M686 is not set
+# CONFIG_MPENTIUMII is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUMM is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MEFFICEON is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP2 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MGEODEGX1 is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+CONFIG_X86_GENERIC=y
+CONFIG_X86_CMPXCHG=y
+CONFIG_X86_XADD=y
+CONFIG_X86_L1_CACHE_SHIFT=7
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_X86_PPRO_FENCE=y
+CONFIG_X86_F00F_BUG=y
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_INVLPG=y
+CONFIG_X86_BSWAP=y
+CONFIG_X86_POPAD_OK=y
+CONFIG_X86_ALIGNMENT_16=y
+CONFIG_X86_INTEL_USERCOPY=y
+CONFIG_HPET_TIMER=y
+# CONFIG_SMP is not set
+# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_VOLUNTARY=y
+# CONFIG_PREEMPT is not set
+# CONFIG_X86_UP_APIC is not set
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_NONFATAL=y
+CONFIG_TOSHIBA=m
+CONFIG_I8K=m
+CONFIG_X86_REBOOTFIXUPS=y
+CONFIG_MICROCODE=m
+CONFIG_X86_MSR=m
+CONFIG_X86_CPUID=m
+
+#
+# Firmware Drivers
+#
+# CONFIG_EDD is not set
+# CONFIG_DELL_RBU is not set
+CONFIG_DCDBAS=m
+CONFIG_NOHIGHMEM=y
+# CONFIG_HIGHMEM4G is not set
+# CONFIG_HIGHMEM64G is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+CONFIG_MATH_EMULATION=y
+CONFIG_MTRR=y
+# CONFIG_EFI is not set
+# CONFIG_REGPARM is not set
+CONFIG_SECCOMP=y
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=250
+CONFIG_PHYSICAL_START=0x100000
+# CONFIG_KEXEC is not set
+
+#
+# Power management options (ACPI, APM)
+#
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+# CONFIG_SOFTWARE_SUSPEND is not set
+
+#
+# ACPI (Advanced Configuration and Power Interface) Support
+#
+CONFIG_ACPI=y
+# CONFIG_ACPI_SLEEP is not set
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_VIDEO=m
+# CONFIG_ACPI_HOTKEY is not set
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_THERMAL=m
+CONFIG_ACPI_ASUS=m
+CONFIG_ACPI_IBM=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_ACPI_BLACKLIST_YEAR=0
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_EC=y
+CONFIG_ACPI_POWER=y
+CONFIG_ACPI_SYSTEM=y
+CONFIG_X86_PM_TIMER=y
+# CONFIG_ACPI_CONTAINER is not set
+
+#
+# APM (Advanced Power Management) BIOS Support
+#
+CONFIG_APM=m
+CONFIG_APM_IGNORE_USER_SUSPEND=y
+CONFIG_APM_DO_ENABLE=y
+CONFIG_APM_CPU_IDLE=y
+CONFIG_APM_DISPLAY_BLANK=y
+CONFIG_APM_RTC_IS_GMT=y
+CONFIG_APM_ALLOW_INTS=y
+CONFIG_APM_REAL_MODE_POWER_OFF=y
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+# CONFIG_CPU_FREQ_DEBUG is not set
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+
+#
+# CPUFreq processor drivers
+#
+CONFIG_X86_ACPI_CPUFREQ=m
+CONFIG_X86_POWERNOW_K6=m
+CONFIG_X86_POWERNOW_K7=m
+CONFIG_X86_POWERNOW_K7_ACPI=y
+CONFIG_X86_POWERNOW_K8=m
+CONFIG_X86_POWERNOW_K8_ACPI=y
+CONFIG_X86_GX_SUSPMOD=m
+CONFIG_X86_SPEEDSTEP_CENTRINO=m
+CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=y
+CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y
+CONFIG_X86_SPEEDSTEP_ICH=m
+CONFIG_X86_SPEEDSTEP_SMI=m
+CONFIG_X86_P4_CLOCKMOD=m
+CONFIG_X86_CPUFREQ_NFORCE2=m
+CONFIG_X86_LONGRUN=m
+CONFIG_X86_LONGHAUL=m
+
+#
+# shared options
+#
+# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
+CONFIG_X86_SPEEDSTEP_LIB=m
+# CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set
+
+#
+# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
+#
+CONFIG_PCI=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GOMMCONFIG is not set
+# CONFIG_PCI_GODIRECT is not set
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCI_LEGACY_PROC=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_ISA_DMA_API=y
+CONFIG_ISA=y
+CONFIG_EISA=y
+CONFIG_EISA_VLB_PRIMING=y
+CONFIG_EISA_PCI_EISA=y
+CONFIG_EISA_VIRTUAL_ROOT=y
+CONFIG_EISA_NAMES=y
+CONFIG_MCA=y
+CONFIG_MCA_LEGACY=y
+CONFIG_MCA_PROC_FS=y
+CONFIG_SCx200=m
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+CONFIG_PCCARD=m
+# CONFIG_PCMCIA_DEBUG is not set
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_PCMCIA_IOCTL=y
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_I82365=m
+CONFIG_TCIC=m
+CONFIG_PCMCIA_PROBE=y
+CONFIG_PCCARD_NONSTATIC=m
+
+#
+# PCI Hotplug Support
+#
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_AOUT=m
+CONFIG_BINFMT_MISC=m
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+CONFIG_NET_KEY=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_ASK_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_FWMARK=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+# CONFIG_IP_ROUTE_MULTIPATH_CACHED is not set
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_ARPD=y
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_BIC=y
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_IPV6_TUNNEL=m
+CONFIG_NETFILTER=y
+CONFIG_NETFILTER_DEBUG=y
+CONFIG_BRIDGE_NETFILTER=y
+CONFIG_NETFILTER_NETLINK=y
+CONFIG_NETFILTER_NETLINK_QUEUE=y
+CONFIG_NETFILTER_NETLINK_LOG=y
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+# CONFIG_IP_NF_CT_ACCT is not set
+# CONFIG_IP_NF_CONNTRACK_MARK is not set
+# CONFIG_IP_NF_CONNTRACK_EVENTS is not set
+# CONFIG_IP_NF_CONNTRACK_NETLINK is not set
+# CONFIG_IP_NF_CT_PROTO_SCTP is not set
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_IRC=m
+# CONFIG_IP_NF_NETBIOS_NS is not set
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_AMANDA=m
+CONFIG_IP_NF_PPTP=m
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_LIMIT=m
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_MAC=m
+CONFIG_IP_NF_MATCH_PKTTYPE=m
+CONFIG_IP_NF_MATCH_MARK=m
+CONFIG_IP_NF_MATCH_MULTIPORT=m
+CONFIG_IP_NF_MATCH_TOS=m
+CONFIG_IP_NF_MATCH_RECENT=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_DSCP=m
+CONFIG_IP_NF_MATCH_AH_ESP=m
+CONFIG_IP_NF_MATCH_LENGTH=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_TCPMSS=m
+CONFIG_IP_NF_MATCH_HELPER=m
+CONFIG_IP_NF_MATCH_STATE=m
+CONFIG_IP_NF_MATCH_CONNTRACK=m
+CONFIG_IP_NF_MATCH_OWNER=m
+CONFIG_IP_NF_MATCH_PHYSDEV=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_REALM=m
+CONFIG_IP_NF_MATCH_SCTP=m
+CONFIG_IP_NF_MATCH_DCCP=m
+CONFIG_IP_NF_MATCH_COMMENT=m
+CONFIG_IP_NF_MATCH_HASHLIMIT=m
+CONFIG_IP_NF_MATCH_STRING=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_TARGET_NFQUEUE=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_SAME=m
+CONFIG_IP_NF_NAT_SNMP_BASIC=m
+CONFIG_IP_NF_NAT_IRC=m
+CONFIG_IP_NF_NAT_FTP=m
+CONFIG_IP_NF_NAT_TFTP=m
+CONFIG_IP_NF_NAT_AMANDA=m
+CONFIG_IP_NF_NAT_PPTP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_DSCP=m
+CONFIG_IP_NF_TARGET_MARK=m
+CONFIG_IP_NF_TARGET_CLASSIFY=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_TARGET_NOTRACK=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_LIMIT=m
+CONFIG_IP6_NF_MATCH_MAC=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_MULTIPORT=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_MARK=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AHESP=m
+CONFIG_IP6_NF_MATCH_LENGTH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_PHYSDEV=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_TARGET_NFQUEUE=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_MARK=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_RAW=m
+
+#
+# DECnet: Netfilter Configuration
+#
+CONFIG_DECNET_NF_GRABULATOR=m
+
+#
+# Bridge: Netfilter Configuration
+#
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+
+#
+# DCCP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP is not set
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+CONFIG_ATM_BR2684_IPFILTER=y
+CONFIG_BRIDGE=m
+CONFIG_VLAN_8021Q=m
+CONFIG_DECNET=m
+# CONFIG_DECNET_ROUTER is not set
+CONFIG_LLC=y
+CONFIG_LLC2=m
+CONFIG_IPX=m
+CONFIG_IPX_INTERN=y
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=y
+CONFIG_LTPC=m
+CONFIG_COPS=m
+# CONFIG_COPS_DAYNA is not set
+# CONFIG_COPS_TANGENT is not set
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP_DECAP=y
+CONFIG_X25=m
+CONFIG_LAPB=m
+CONFIG_NET_DIVERT=y
+CONFIG_ECONET=m
+CONFIG_ECONET_AUNUDP=y
+CONFIG_ECONET_NATIVE=y
+CONFIG_WAN_ROUTER=m
+# CONFIG_NET_SCHED is not set
+CONFIG_NET_CLS_ROUTE=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+CONFIG_HAMRADIO=y
+
+#
+# Packet Radio protocols
+#
+CONFIG_AX25=m
+CONFIG_AX25_DAMA_SLAVE=y
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+
+#
+# AX.25 network device drivers
+#
+CONFIG_MKISS=m
+CONFIG_6PACK=m
+CONFIG_BPQETHER=m
+CONFIG_DMASCC=m
+CONFIG_SCC=m
+CONFIG_SCC_DELAY=y
+CONFIG_SCC_TRXECHO=y
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_BAYCOM_PAR=m
+CONFIG_BAYCOM_EPP=m
+CONFIG_YAM=m
+CONFIG_IRDA=m
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_ULTRA=y
+
+#
+# IrDA options
+#
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_FAST_RR=y
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+CONFIG_IRTTY_SIR=m
+
+#
+# Dongle support
+#
+CONFIG_DONGLE=y
+CONFIG_ESI_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_LITELINK_DONGLE=m
+CONFIG_MA600_DONGLE=m
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_MCP2120_DONGLE=m
+CONFIG_OLD_BELKIN_DONGLE=m
+CONFIG_ACT200L_DONGLE=m
+
+#
+# Old SIR device drivers
+#
+CONFIG_IRPORT_SIR=m
+
+#
+# Old Serial dongle support
+#
+CONFIG_DONGLE_OLD=y
+CONFIG_ESI_DONGLE_OLD=m
+CONFIG_ACTISYS_DONGLE_OLD=m
+CONFIG_TEKRAM_DONGLE_OLD=m
+CONFIG_GIRBIL_DONGLE_OLD=m
+CONFIG_LITELINK_DONGLE_OLD=m
+CONFIG_MCP2120_DONGLE_OLD=m
+CONFIG_OLD_BELKIN_DONGLE_OLD=m
+CONFIG_ACT200L_DONGLE_OLD=m
+CONFIG_MA600_DONGLE_OLD=m
+
+#
+# FIR device drivers
+#
+CONFIG_USB_IRDA=m
+CONFIG_SIGMATEL_FIR=m
+CONFIG_NSC_FIR=m
+CONFIG_WINBOND_FIR=m
+CONFIG_TOSHIBA_FIR=m
+CONFIG_SMC_IRCC_FIR=m
+CONFIG_ALI_FIR=m
+CONFIG_VLSI_FIR=m
+CONFIG_VIA_FIR=m
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_CMTP=m
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIUSB=m
+CONFIG_BT_HCIUSB_SCO=y
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_BCSP_TXCRC=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBTUART=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_IEEE80211=m
+# CONFIG_IEEE80211_DEBUG is not set
+CONFIG_IEEE80211_CRYPT_WEP=m
+CONFIG_IEEE80211_CRYPT_CCMP=m
+CONFIG_IEEE80211_CRYPT_TKIP=m
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_DEBUG_DRIVER is not set
+
+#
+# Connector - unified userspace <-> kernelspace linker
+#
+CONFIG_CONNECTOR=m
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=m
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_CONCAT=m
+# CONFIG_MTD_PARTITIONS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_FTL=m
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_INFTL=m
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_GEN_PROBE=m
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_NOSWAP=y
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_GEOMETRY is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_OTP is not set
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_AMDSTD_RETRY=0
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_ROM=m
+CONFIG_MTD_ABSENT=m
+
+#
+# Mapping drivers for chip access
+#
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+CONFIG_MTD_PHYSMAP=m
+CONFIG_MTD_PHYSMAP_START=0x8000000
+CONFIG_MTD_PHYSMAP_LEN=0x4000000
+CONFIG_MTD_PHYSMAP_BANKWIDTH=2
+CONFIG_MTD_SC520CDP=m
+CONFIG_MTD_AMD76XROM=m
+CONFIG_MTD_ICHXROM=m
+CONFIG_MTD_SCB2_FLASH=m
+CONFIG_MTD_L440GX=m
+CONFIG_MTD_PCI=m
+CONFIG_MTD_PLATRAM=m
+
+#
+# Self-contained MTD device drivers
+#
+CONFIG_MTD_PMC551=m
+# CONFIG_MTD_PMC551_BUGFIX is not set
+# CONFIG_MTD_PMC551_DEBUG is not set
+CONFIG_MTD_SLRAM=m
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+CONFIG_MTD_BLKMTD=m
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+CONFIG_MTD_DOC2000=m
+CONFIG_MTD_DOC2001=m
+CONFIG_MTD_DOC2001PLUS=m
+CONFIG_MTD_DOCPROBE=m
+CONFIG_MTD_DOCECC=m
+CONFIG_MTD_DOCPROBE_ADVANCED=y
+CONFIG_MTD_DOCPROBE_ADDRESS=0x0000
+CONFIG_MTD_DOCPROBE_HIGH=y
+CONFIG_MTD_DOCPROBE_55AA=y
+
+#
+# NAND Flash Device Drivers
+#
+CONFIG_MTD_NAND=m
+CONFIG_MTD_NAND_VERIFY_WRITE=y
+CONFIG_MTD_NAND_IDS=m
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+
+#
+# Parallel port support
+#
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+CONFIG_PARPORT_NOT_PC=y
+# CONFIG_PARPORT_GSC is not set
+CONFIG_PARPORT_1284=y
+
+#
+# Plug and Play support
+#
+CONFIG_PNP=y
+# CONFIG_PNP_DEBUG is not set
+
+#
+# Protocols
+#
+CONFIG_ISAPNP=y
+CONFIG_PNPBIOS=y
+CONFIG_PNPBIOS_PROC_FS=y
+CONFIG_PNPACPI=y
+
+#
+# Block devices
+#
+CONFIG_BLK_DEV_FD=y
+CONFIG_BLK_DEV_XD=m
+CONFIG_PARIDE=m
+CONFIG_PARIDE_PARPORT=m
+
+#
+# Parallel IDE high-level drivers
+#
+CONFIG_PARIDE_PD=m
+CONFIG_PARIDE_PCD=m
+CONFIG_PARIDE_PF=m
+CONFIG_PARIDE_PT=m
+CONFIG_PARIDE_PG=m
+
+#
+# Parallel IDE protocol modules
+#
+CONFIG_PARIDE_ATEN=m
+CONFIG_PARIDE_BPCK=m
+CONFIG_PARIDE_BPCK6=m
+CONFIG_PARIDE_COMM=m
+CONFIG_PARIDE_DSTR=m
+CONFIG_PARIDE_FIT2=m
+CONFIG_PARIDE_FIT3=m
+CONFIG_PARIDE_EPAT=m
+CONFIG_PARIDE_EPATC8=y
+CONFIG_PARIDE_EPIA=m
+CONFIG_PARIDE_FRIQ=m
+CONFIG_PARIDE_FRPW=m
+CONFIG_PARIDE_KBIC=m
+CONFIG_PARIDE_KTTI=m
+CONFIG_PARIDE_ON20=m
+CONFIG_PARIDE_ON26=m
+CONFIG_BLK_CPQ_DA=y
+CONFIG_BLK_CPQ_CISS_DA=y
+CONFIG_CISS_SCSI_TAPE=y
+CONFIG_BLK_DEV_DAC960=y
+CONFIG_BLK_DEV_UMEM=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_CRYPTOLOOP=y
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_SX8=y
+CONFIG_BLK_DEV_UB=y
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_LBD=y
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_ATA_OVER_ETH=m
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+CONFIG_IDE=y
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_IDE_SATA is not set
+# CONFIG_BLK_DEV_HD_IDE is not set
+CONFIG_BLK_DEV_IDEDISK=y
+CONFIG_IDEDISK_MULTI_MODE=y
+CONFIG_BLK_DEV_IDECS=m
+CONFIG_BLK_DEV_IDECD=y
+CONFIG_BLK_DEV_IDETAPE=m
+CONFIG_BLK_DEV_IDEFLOPPY=m
+CONFIG_BLK_DEV_IDESCSI=y
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=y
+CONFIG_BLK_DEV_CMD640=y
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+CONFIG_BLK_DEV_IDEPNP=y
+CONFIG_BLK_DEV_IDEPCI=y
+CONFIG_IDEPCI_SHARE_IRQ=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+CONFIG_BLK_DEV_GENERIC=y
+CONFIG_BLK_DEV_OPTI621=y
+CONFIG_BLK_DEV_RZ1000=y
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+# CONFIG_IDEDMA_ONLYDISK is not set
+CONFIG_BLK_DEV_AEC62XX=y
+CONFIG_BLK_DEV_ALI15X3=y
+# CONFIG_WDC_ALI15X3 is not set
+CONFIG_BLK_DEV_AMD74XX=y
+CONFIG_BLK_DEV_ATIIXP=y
+CONFIG_BLK_DEV_CMD64X=y
+CONFIG_BLK_DEV_TRIFLEX=y
+CONFIG_BLK_DEV_CY82C693=y
+CONFIG_BLK_DEV_CS5520=y
+CONFIG_BLK_DEV_CS5530=y
+CONFIG_BLK_DEV_HPT34X=y
+CONFIG_HPT34X_AUTODMA=y
+CONFIG_BLK_DEV_HPT366=y
+CONFIG_BLK_DEV_SC1200=y
+CONFIG_BLK_DEV_PIIX=y
+CONFIG_BLK_DEV_IT821X=y
+CONFIG_BLK_DEV_NS87415=y
+CONFIG_BLK_DEV_PDC202XX_OLD=y
+CONFIG_PDC202XX_BURST=y
+CONFIG_BLK_DEV_PDC202XX_NEW=y
+CONFIG_PDC202XX_FORCE=y
+CONFIG_BLK_DEV_SVWKS=y
+CONFIG_BLK_DEV_SIIMAGE=y
+CONFIG_BLK_DEV_SIS5513=y
+CONFIG_BLK_DEV_SLC90E66=y
+CONFIG_BLK_DEV_TRM290=y
+CONFIG_BLK_DEV_VIA82CXXX=y
+# CONFIG_IDE_ARM is not set
+CONFIG_IDE_CHIPSETS=y
+
+#
+# Note: most of these also require special kernel boot parameters
+#
+CONFIG_BLK_DEV_4DRIVES=y
+CONFIG_BLK_DEV_ALI14XX=y
+CONFIG_BLK_DEV_DTC2278=y
+CONFIG_BLK_DEV_HT6560B=y
+CONFIG_BLK_DEV_QD65XX=y
+CONFIG_BLK_DEV_UMC8672=y
+CONFIG_BLK_DEV_IDEDMA=y
+CONFIG_IDEDMA_IVB=y
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI device support
+#
+CONFIG_RAID_ATTRS=y
+CONFIG_SCSI=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=y
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_CHR_DEV_SG=y
+# CONFIG_CHR_DEV_SCH is not set
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI Transport Attributes
+#
+CONFIG_SCSI_SPI_ATTRS=y
+CONFIG_SCSI_FC_ATTRS=y
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=y
+
+#
+# SCSI low-level drivers
+#
+CONFIG_BLK_DEV_3W_XXXX_RAID=y
+CONFIG_SCSI_3W_9XXX=y
+CONFIG_SCSI_7000FASST=y
+CONFIG_SCSI_ACARD=y
+CONFIG_SCSI_AHA152X=y
+CONFIG_SCSI_AHA1542=y
+CONFIG_SCSI_AHA1740=y
+CONFIG_SCSI_AACRAID=y
+CONFIG_SCSI_AIC7XXX=y
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+# CONFIG_AIC7XXX_PROBE_EISA_VL is not set
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set
+CONFIG_SCSI_AIC7XXX_OLD=y
+CONFIG_SCSI_AIC79XX=y
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_ENABLE_RD_STRM is not set
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
+CONFIG_SCSI_DPT_I2O=y
+CONFIG_SCSI_IN2000=y
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=y
+CONFIG_MEGARAID_MAILBOX=y
+CONFIG_MEGARAID_SAS=y
+CONFIG_SCSI_SATA=y
+CONFIG_SCSI_SATA_AHCI=y
+CONFIG_SCSI_SATA_SVW=y
+CONFIG_SCSI_ATA_PIIX=y
+CONFIG_SCSI_SATA_MV=y
+CONFIG_SCSI_SATA_NV=y
+CONFIG_SCSI_SATA_PROMISE=y
+CONFIG_SCSI_SATA_QSTOR=y
+CONFIG_SCSI_SATA_SX4=y
+CONFIG_SCSI_SATA_SIL=y
+CONFIG_SCSI_SATA_SIS=y
+CONFIG_SCSI_SATA_ULI=y
+CONFIG_SCSI_SATA_VIA=y
+CONFIG_SCSI_SATA_VITESSE=y
+CONFIG_SCSI_SATA_INTEL_COMBINED=y
+CONFIG_SCSI_BUSLOGIC=y
+# CONFIG_SCSI_OMIT_FLASHPOINT is not set
+CONFIG_SCSI_DMX3191D=y
+CONFIG_SCSI_DTC3280=y
+CONFIG_SCSI_EATA=y
+CONFIG_SCSI_EATA_TAGGED_QUEUE=y
+CONFIG_SCSI_EATA_LINKED_COMMANDS=y
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_FUTURE_DOMAIN=y
+CONFIG_SCSI_FD_MCS=y
+CONFIG_SCSI_GDTH=y
+CONFIG_SCSI_GENERIC_NCR5380=y
+CONFIG_SCSI_GENERIC_NCR5380_MMIO=y
+CONFIG_SCSI_GENERIC_NCR53C400=y
+CONFIG_SCSI_IBMMCA=y
+CONFIG_IBMMCA_SCSI_ORDER_STANDARD=y
+CONFIG_IBMMCA_SCSI_DEV_RESET=y
+CONFIG_SCSI_IPS=y
+CONFIG_SCSI_INITIO=y
+CONFIG_SCSI_INIA100=y
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+CONFIG_SCSI_IZIP_EPP16=y
+CONFIG_SCSI_IZIP_SLOW_CTR=y
+CONFIG_SCSI_NCR53C406A=y
+CONFIG_SCSI_NCR_D700=y
+CONFIG_SCSI_SYM53C8XX_2=y
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_IOMAPPED=y
+CONFIG_SCSI_IPR=y
+# CONFIG_SCSI_IPR_TRACE is not set
+# CONFIG_SCSI_IPR_DUMP is not set
+CONFIG_SCSI_NCR_Q720=y
+CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8
+CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
+CONFIG_SCSI_NCR53C8XX_SYNC=20
+# CONFIG_SCSI_NCR53C8XX_PROFILE is not set
+CONFIG_SCSI_MCA_53C9X=y
+CONFIG_SCSI_PAS16=y
+CONFIG_SCSI_PSI240I=y
+CONFIG_SCSI_QLOGIC_FAS=y
+CONFIG_SCSI_QLOGIC_FC=y
+# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set
+CONFIG_SCSI_QLOGIC_1280=y
+CONFIG_SCSI_QLOGIC_1280_1040=y
+CONFIG_SCSI_QLA2XXX=y
+CONFIG_SCSI_QLA21XX=y
+CONFIG_SCSI_QLA22XX=y
+CONFIG_SCSI_QLA2300=y
+CONFIG_SCSI_QLA2322=y
+CONFIG_SCSI_QLA6312=y
+CONFIG_SCSI_QLA24XX=y
+CONFIG_SCSI_LPFC=y
+CONFIG_SCSI_SIM710=y
+CONFIG_53C700_IO_MAPPED=y
+CONFIG_SCSI_SYM53C416=y
+CONFIG_SCSI_DC395x=y
+CONFIG_SCSI_DC390T=y
+CONFIG_SCSI_T128=y
+CONFIG_SCSI_U14_34F=y
+CONFIG_SCSI_U14_34F_TAGGED_QUEUE=y
+CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y
+CONFIG_SCSI_U14_34F_MAX_TAGS=8
+CONFIG_SCSI_ULTRASTOR=y
+CONFIG_SCSI_NSP32=y
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# PCMCIA SCSI adapter support
+#
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+
+#
+# Old CD-ROM drivers (not SCSI, not IDE)
+#
+CONFIG_CD_NO_IDESCSI=y
+CONFIG_AZTCD=m
+CONFIG_GSCD=m
+CONFIG_SBPCD=m
+CONFIG_MCDX=m
+CONFIG_OPTCD=m
+CONFIG_CM206=m
+CONFIG_SJCD=m
+CONFIG_ISP16_CDI=m
+CONFIG_CDU31A=m
+CONFIG_CDU535=m
+
+#
+# Multi-device support (RAID and LVM)
+#
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=y
+CONFIG_MD_LINEAR=y
+CONFIG_MD_RAID0=y
+CONFIG_MD_RAID1=y
+CONFIG_MD_RAID10=y
+CONFIG_MD_RAID5=y
+CONFIG_MD_RAID6=y
+CONFIG_MD_MULTIPATH=y
+# CONFIG_MD_FAULTY is not set
+CONFIG_BLK_DEV_DM=y
+CONFIG_DM_CRYPT=y
+# CONFIG_DM_SNAPSHOT is not set
+# CONFIG_DM_MIRROR is not set
+# CONFIG_DM_ZERO is not set
+# CONFIG_DM_MULTIPATH is not set
+
+#
+# Fusion MPT device support
+#
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=y
+CONFIG_FUSION_FC=y
+CONFIG_FUSION_SAS=y
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_CTL=m
+CONFIG_FUSION_LAN=m
+
+#
+# IEEE 1394 (FireWire) support
+#
+CONFIG_IEEE1394=y
+
+#
+# Subsystem Options
+#
+# CONFIG_IEEE1394_VERBOSEDEBUG is not set
+CONFIG_IEEE1394_OUI_DB=y
+CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y
+CONFIG_IEEE1394_CONFIG_ROM_IP1394=y
+# CONFIG_IEEE1394_EXPORT_FULL_API is not set
+
+#
+# Device Drivers
+#
+CONFIG_IEEE1394_PCILYNX=y
+CONFIG_IEEE1394_OHCI1394=y
+
+#
+# Protocol Drivers
+#
+CONFIG_IEEE1394_VIDEO1394=m
+CONFIG_IEEE1394_SBP2=y
+CONFIG_IEEE1394_SBP2_PHYS_DMA=y
+CONFIG_IEEE1394_ETH1394=m
+CONFIG_IEEE1394_DV1394=m
+CONFIG_IEEE1394_RAWIO=y
+CONFIG_IEEE1394_CMP=m
+CONFIG_IEEE1394_AMDTP=m
+
+#
+# I2O device support
+#
+CONFIG_I2O=y
+CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_CONFIG_OLD_IOCTL=y
+CONFIG_I2O_BUS=y
+CONFIG_I2O_BLOCK=y
+CONFIG_I2O_SCSI=y
+CONFIG_I2O_PROC=y
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+CONFIG_NET_SB1000=m
+
+#
+# ARCnet devices
+#
+CONFIG_ARCNET=y
+CONFIG_ARCNET_1201=m
+CONFIG_ARCNET_1051=m
+CONFIG_ARCNET_RAW=m
+CONFIG_ARCNET_CAP=m
+CONFIG_ARCNET_COM90xx=m
+CONFIG_ARCNET_COM90xxIO=m
+CONFIG_ARCNET_RIM_I=m
+CONFIG_ARCNET_COM20020=m
+CONFIG_ARCNET_COM20020_ISA=m
+CONFIG_ARCNET_COM20020_PCI=m
+
+#
+# PHY device support
+#
+CONFIG_PHYLIB=y
+CONFIG_PHYCONTROL=y
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=m
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL1=m
+CONFIG_EL2=m
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_EL3=m
+CONFIG_3C515=m
+CONFIG_ELMC=m
+CONFIG_ELMC_II=m
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_LANCE=m
+CONFIG_NET_VENDOR_SMC=y
+CONFIG_WD80x3=m
+CONFIG_ULTRAMCA=m
+CONFIG_ULTRA=m
+CONFIG_ULTRA32=m
+CONFIG_SMC9194=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NI5010=m
+CONFIG_NI52=m
+CONFIG_NI65=m
+
+#
+# Tulip family network device support
+#
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_TULIP=m
+CONFIG_TULIP_MWI=y
+CONFIG_TULIP_MMIO=y
+CONFIG_TULIP_NAPI=y
+CONFIG_TULIP_NAPI_HW_MITIGATION=y
+CONFIG_DE4X5=m
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_ULI526X=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_PCMCIA_XIRTULIP=m
+CONFIG_AT1700=m
+CONFIG_DEPCA=m
+CONFIG_HP100=m
+CONFIG_NET_ISA=y
+CONFIG_E2100=m
+CONFIG_EWRK3=m
+CONFIG_EEXPRESS=m
+CONFIG_EEXPRESS_PRO=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_LP486E=m
+CONFIG_ETH16I=m
+CONFIG_NE2000=m
+CONFIG_ZNET=m
+CONFIG_SEEQ8005=m
+CONFIG_NE2_MCA=m
+CONFIG_IBMLANA=m
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+# CONFIG_AMD8111E_NAPI is not set
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_ADAPTEC_STARFIRE_NAPI=y
+CONFIG_AC3200=m
+CONFIG_APRICOT=m
+CONFIG_B44=m
+CONFIG_FORCEDETH=m
+CONFIG_CS89x0=m
+CONFIG_DGRS=m
+CONFIG_EEPRO100=m
+CONFIG_E100=m
+CONFIG_LNE390=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_NE3210=m
+CONFIG_ES3210=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+CONFIG_8139TOO_PIO=y
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+CONFIG_8139_OLD_RX_RESET=y
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_VIA_RHINE=m
+CONFIG_VIA_RHINE_MMIO=y
+CONFIG_NET_POCKET=y
+CONFIG_ATP=m
+CONFIG_DE600=m
+CONFIG_DE620=m
+
+#
+# Ethernet (1000 Mbit)
+#
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_DL2K=m
+CONFIG_E1000=m
+CONFIG_E1000_NAPI=y
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+# CONFIG_R8169_NAPI is not set
+CONFIG_R8169_VLAN=y
+CONFIG_SIS190=m
+# CONFIG_SKGE is not set
+CONFIG_SK98LIN=m
+CONFIG_VIA_VELOCITY=m
+CONFIG_TIGON3=m
+CONFIG_BNX2=m
+
+#
+# Ethernet (10000 Mbit)
+#
+CONFIG_CHELSIO_T1=m
+CONFIG_IXGB=m
+CONFIG_IXGB_NAPI=y
+CONFIG_S2IO=m
+CONFIG_S2IO_NAPI=y
+# CONFIG_2BUFF_MODE is not set
+
+#
+# Token Ring devices
+#
+CONFIG_TR=y
+CONFIG_IBMTR=m
+CONFIG_IBMOL=m
+CONFIG_IBMLS=m
+CONFIG_3C359=m
+CONFIG_TMS380TR=m
+CONFIG_TMSPCI=m
+CONFIG_SKISA=m
+CONFIG_PROTEON=m
+CONFIG_ABYSS=m
+CONFIG_MADGEMC=m
+CONFIG_SMCTR=m
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+
+#
+# Obsolete Wireless cards support (pre-802.11)
+#
+CONFIG_STRIP=m
+CONFIG_ARLAN=m
+CONFIG_WAVELAN=m
+CONFIG_PCMCIA_WAVELAN=m
+CONFIG_PCMCIA_NETWAVE=m
+
+#
+# Wireless 802.11 Frequency Hopping cards support
+#
+CONFIG_PCMCIA_RAYCS=m
+
+#
+# Wireless 802.11b ISA/PCI cards support
+#
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_AIRO=m
+CONFIG_HERMES=m
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+
+#
+# Wireless 802.11b Pcmcia/Cardbus cards support
+#
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_PCMCIA_WL3501=m
+
+#
+# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
+#
+CONFIG_PRISM54=m
+CONFIG_HOSTAP=m
+# CONFIG_HOSTAP_FIRMWARE is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+CONFIG_NET_WIRELESS=y
+
+#
+# PCMCIA network device support
+#
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_ARCNET_COM20020_CS=m
+CONFIG_PCMCIA_IBMTR=m
+
+#
+# Wan interfaces
+#
+CONFIG_WAN=y
+CONFIG_HOSTESS_SV11=m
+CONFIG_COSA=m
+CONFIG_DSCC4=m
+CONFIG_DSCC4_PCISYNC=y
+CONFIG_DSCC4_PCI_RST=y
+CONFIG_LANMEDIA=m
+CONFIG_SEALEVEL_4021=m
+CONFIG_SYNCLINK_SYNCPPP=m
+CONFIG_HDLC=m
+CONFIG_HDLC_RAW=y
+CONFIG_HDLC_RAW_ETH=y
+CONFIG_HDLC_CISCO=y
+CONFIG_HDLC_FR=y
+CONFIG_HDLC_PPP=y
+CONFIG_HDLC_X25=y
+CONFIG_PCI200SYN=m
+CONFIG_WANXL=m
+CONFIG_PC300=m
+CONFIG_PC300_MLPPP=y
+CONFIG_N2=m
+CONFIG_C101=m
+CONFIG_FARSYNC=m
+CONFIG_DLCI=m
+CONFIG_DLCI_COUNT=24
+CONFIG_DLCI_MAX=8
+CONFIG_SDLA=m
+CONFIG_WAN_ROUTER_DRIVERS=y
+CONFIG_CYCLADES_SYNC=m
+CONFIG_CYCLOMX_X25=y
+CONFIG_LAPBETHER=m
+CONFIG_X25_ASY=m
+CONFIG_SBNI=m
+CONFIG_SBNI_MULTILINE=y
+
+#
+# ATM drivers
+#
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+CONFIG_ATM_NICSTAR_USE_SUNI=y
+CONFIG_ATM_NICSTAR_USE_IDT77105=y
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+CONFIG_ATM_IDT77252_RCV_ALL=y
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E_MAYBE=m
+CONFIG_ATM_FORE200E_PCA=y
+CONFIG_ATM_FORE200E_PCA_DEFAULT_FW=y
+CONFIG_ATM_FORE200E_USE_TASKLET=y
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_FORE200E=m
+CONFIG_ATM_HE=m
+CONFIG_ATM_HE_USE_SUNI=y
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPPOE=m
+CONFIG_PPPOATM=m
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+CONFIG_NET_FC=y
+CONFIG_SHAPER=m
+CONFIG_NETCONSOLE=m
+CONFIG_NETPOLL=y
+CONFIG_NETPOLL_RX=y
+CONFIG_NETPOLL_TRAP=y
+CONFIG_NET_POLL_CONTROLLER=y
+
+#
+# ISDN subsystem
+#
+CONFIG_ISDN=m
+
+#
+# Old ISDN4Linux
+#
+CONFIG_ISDN_I4L=m
+CONFIG_ISDN_PPP=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+CONFIG_ISDN_AUDIO=y
+CONFIG_ISDN_TTY_FAX=y
+CONFIG_ISDN_X25=y
+
+#
+# ISDN feature submodules
+#
+CONFIG_ISDN_DRV_LOOP=m
+CONFIG_ISDN_DIVERSION=m
+
+#
+# ISDN4Linux hardware drivers
+#
+
+#
+# Passive cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+
+#
+# D-channel protocol features
+#
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+# CONFIG_HISAX_NO_SENDCOMPLETE is not set
+# CONFIG_HISAX_NO_LLC is not set
+# CONFIG_HISAX_NO_KEYPAD is not set
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+
+#
+# HiSax supported cards
+#
+CONFIG_HISAX_16_0=y
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_AVM_A1=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_IX1MICROR2=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_ASUSCOM=y
+CONFIG_HISAX_TELEINT=y
+CONFIG_HISAX_HFCS=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_SPORTSTER=y
+CONFIG_HISAX_MIC=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_ISURF=y
+CONFIG_HISAX_HSTSAPHIR=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+# CONFIG_HISAX_DEBUG is not set
+
+#
+# HiSax PCMCIA card service modules
+#
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+CONFIG_HISAX_AVM_A1_CS=m
+CONFIG_HISAX_TELES_CS=m
+
+#
+# HiSax sub driver modules
+#
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_HFCUSB=m
+CONFIG_HISAX_HFC4S8S=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+CONFIG_HISAX_HDLC=y
+
+#
+# Active cards
+#
+CONFIG_ISDN_DRV_ICN=m
+CONFIG_ISDN_DRV_PCBIT=m
+CONFIG_ISDN_DRV_SC=m
+CONFIG_ISDN_DRV_ACT2000=m
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+
+#
+# CAPI subsystem
+#
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
+CONFIG_ISDN_CAPI_CAPIFS=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+
+#
+# CAPI hardware drivers
+#
+
+#
+# Active AVM cards
+#
+CONFIG_CAPI_AVM=y
+# CONFIG_ISDN_DRV_AVMB1_B1ISA is not set
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+# CONFIG_ISDN_DRV_AVMB1_T1ISA is not set
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+
+#
+# Active Eicon DIVA Server cards
+#
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+
+#
+# Telephony Support
+#
+CONFIG_PHONE=m
+CONFIG_PHONE_IXJ=m
+CONFIG_PHONE_IXJ_PCMCIA=m
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_TSDEV=m
+CONFIG_INPUT_TSDEV_SCREEN_X=240
+CONFIG_INPUT_TSDEV_SCREEN_Y=320
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_SUNKBD=y
+CONFIG_KEYBOARD_LKKBD=y
+CONFIG_KEYBOARD_XTKBD=y
+CONFIG_KEYBOARD_NEWTON=y
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=y
+CONFIG_MOUSE_SERIAL=y
+CONFIG_MOUSE_INPORT=m
+CONFIG_MOUSE_ATIXL=y
+CONFIG_MOUSE_LOGIBM=m
+CONFIG_MOUSE_PC110PAD=m
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_ANALOG=m
+CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=y
+CONFIG_JOYSTICK_IFORCE_232=y
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_DB9=m
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+# CONFIG_JOYSTICK_JOYDUMP is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_PCSPKR=y
+CONFIG_INPUT_UINPUT=m
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_COMPUTONE=m
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+CONFIG_CYZ_INTR=y
+CONFIG_DIGIEPCA=m
+CONFIG_ESPSERIAL=m
+CONFIG_MOXA_INTELLIO=m
+CONFIG_MOXA_SMARTIO=m
+CONFIG_ISI=m
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+CONFIG_N_HDLC=m
+CONFIG_RISCOM8=m
+CONFIG_SPECIALIX=m
+CONFIG_SPECIALIX_RTSCTS=y
+CONFIG_SX=m
+CONFIG_RIO=m
+CONFIG_RIO_OLDPCI=y
+CONFIG_STALDRV=y
+CONFIG_STALLION=m
+CONFIG_ISTALLION=m
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=m
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_ACPI=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_DETECT_IRQ=y
+CONFIG_SERIAL_8250_RSA=y
+# CONFIG_SERIAL_8250_FOURPORT is not set
+# CONFIG_SERIAL_8250_ACCENT is not set
+# CONFIG_SERIAL_8250_BOCA is not set
+# CONFIG_SERIAL_8250_HUB6 is not set
+# CONFIG_SERIAL_8250_MCA is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=m
+CONFIG_SERIAL_JSM=m
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+CONFIG_PRINTER=m
+CONFIG_LP_CONSOLE=y
+CONFIG_PPDEV=m
+CONFIG_TIPAR=m
+
+#
+# IPMI
+#
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+
+#
+# Watchdog Cards
+#
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_NOWAYOUT=y
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_SC520_WDT=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_IB700_WDT=m
+CONFIG_IBMASR=m
+CONFIG_WAFER_WDT=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_I8XX_TCO=m
+CONFIG_SC1200_WDT=m
+# CONFIG_SCx200_WDT is not set
+CONFIG_60XX_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_CPU5_WDT=m
+# CONFIG_W83627HF_WDT is not set
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_MACHZ_WDT=m
+
+#
+# ISA-based Watchdog Cards
+#
+CONFIG_PCWATCHDOG=m
+CONFIG_MIXCOMWD=m
+CONFIG_WDT=m
+CONFIG_WDT_501=y
+
+#
+# PCI-based Watchdog Cards
+#
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_WDTPCI=m
+CONFIG_WDT_501_PCI=y
+
+#
+# USB-based Watchdog Cards
+#
+CONFIG_USBPCWATCHDOG=m
+CONFIG_HW_RANDOM=m
+CONFIG_NVRAM=m
+CONFIG_RTC=m
+CONFIG_GEN_RTC=m
+CONFIG_GEN_RTC_X=y
+CONFIG_DTLK=m
+CONFIG_R3964=m
+CONFIG_APPLICOM=m
+CONFIG_SONYPI=m
+
+#
+# Ftape, the floppy tape device driver
+#
+CONFIG_FTAPE=m
+CONFIG_ZFTAPE=m
+CONFIG_ZFT_DFLT_BLK_SZ=10240
+
+#
+# The compressor will be built as a module only!
+#
+CONFIG_ZFT_COMPRESSOR=m
+CONFIG_FT_NR_BUFFERS=3
+CONFIG_FT_PROC_FS=y
+CONFIG_FT_NORMAL_DEBUG=y
+# CONFIG_FT_FULL_DEBUG is not set
+# CONFIG_FT_NO_TRACE is not set
+# CONFIG_FT_NO_TRACE_AT_ALL is not set
+
+#
+# Hardware configuration
+#
+CONFIG_FT_STD_FDC=y
+# CONFIG_FT_MACH2 is not set
+# CONFIG_FT_PROBE_FC10 is not set
+# CONFIG_FT_ALT_FDC is not set
+CONFIG_FT_FDC_THR=8
+CONFIG_FT_FDC_MAX_RATE=2000
+CONFIG_FT_ALPHA_CLOCK=0
+CONFIG_AGP=m
+CONFIG_AGP_ALI=m
+CONFIG_AGP_ATI=m
+CONFIG_AGP_AMD=m
+CONFIG_AGP_AMD64=m
+CONFIG_AGP_INTEL=m
+CONFIG_AGP_NVIDIA=m
+CONFIG_AGP_SIS=m
+CONFIG_AGP_SWORKS=m
+CONFIG_AGP_VIA=m
+CONFIG_AGP_EFFICEON=m
+CONFIG_DRM=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_I810=m
+CONFIG_DRM_I830=m
+CONFIG_DRM_I915=m
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+CONFIG_DRM_VIA=m
+CONFIG_DRM_SAVAGE=m
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+CONFIG_MWAVE=m
+CONFIG_SCx200_GPIO=m
+CONFIG_RAW_DRIVER=m
+CONFIG_HPET=y
+# CONFIG_HPET_RTC_IRQ is not set
+CONFIG_HPET_MMAP=y
+CONFIG_MAX_RAW_DEVS=256
+CONFIG_HANGCHECK_TIMER=m
+
+#
+# TPM devices
+#
+CONFIG_TCG_TPM=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+# CONFIG_TCG_INFINEON is not set
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=m
+
+#
+# I2C Algorithms
+#
+CONFIG_I2C_ALGOBIT=y
+CONFIG_I2C_ALGOPCF=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_ELEKTOR=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_I810=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_ISA=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_PROSAVAGE=m
+CONFIG_I2C_SAVAGE4=m
+CONFIG_SCx200_I2C=m
+CONFIG_SCx200_I2C_SCL=12
+CONFIG_SCx200_I2C_SDA=13
+CONFIG_SCx200_ACB=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+# CONFIG_I2C_STUB is not set
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_VOODOO3=m
+CONFIG_I2C_PCA_ISA=m
+
+#
+# Miscellaneous I2C Chip support
+#
+CONFIG_SENSORS_DS1337=m
+CONFIG_SENSORS_DS1374=m
+CONFIG_SENSORS_EEPROM=m
+CONFIG_SENSORS_PCF8574=m
+CONFIG_SENSORS_PCA9539=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_RTC8564=m
+CONFIG_SENSORS_MAX6875=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+
+#
+# Dallas's 1-wire bus
+#
+CONFIG_W1=m
+CONFIG_W1_MATROX=m
+CONFIG_W1_DS9490=m
+CONFIG_W1_DS9490_BRIDGE=m
+CONFIG_W1_THERM=m
+CONFIG_W1_SMEM=m
+CONFIG_W1_DS2433=m
+# CONFIG_W1_DS2433_CRC is not set
+
+#
+# Hardware Monitoring support
+#
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_FSCHER=m
+CONFIG_SENSORS_FSCPOS=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_SENSORS_HDAPS=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Misc devices
+#
+CONFIG_IBM_ASM=m
+
+#
+# Multimedia Capabilities Port drivers
+#
+
+#
+# Multimedia devices
+#
+CONFIG_VIDEO_DEV=m
+
+#
+# Video For Linux
+#
+
+#
+# Video Adapters
+#
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_SAA6588=m
+CONFIG_VIDEO_PMS=m
+CONFIG_VIDEO_BWQCAM=m
+CONFIG_VIDEO_CQCAM=m
+CONFIG_VIDEO_W9966=m
+CONFIG_VIDEO_CPIA=m
+CONFIG_VIDEO_CPIA_PP=m
+CONFIG_VIDEO_CPIA_USB=m
+CONFIG_VIDEO_SAA5246A=m
+CONFIG_VIDEO_SAA5249=m
+CONFIG_TUNER_3036=m
+CONFIG_VIDEO_STRADIS=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_DC30=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZORAN_LML33R10=m
+CONFIG_VIDEO_MEYE=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_MXB=m
+CONFIG_VIDEO_DPC=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_OVCAMCHIP=m
+
+#
+# Radio Adapters
+#
+CONFIG_RADIO_CADET=m
+CONFIG_RADIO_RTRACK=m
+CONFIG_RADIO_RTRACK2=m
+CONFIG_RADIO_AZTECH=m
+CONFIG_RADIO_GEMTEK=m
+CONFIG_RADIO_GEMTEK_PCI=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_MAESTRO=m
+CONFIG_RADIO_MIROPCM20=m
+CONFIG_RADIO_MIROPCM20_RDS=m
+CONFIG_RADIO_SF16FMI=m
+CONFIG_RADIO_SF16FMR2=m
+CONFIG_RADIO_TERRATEC=m
+CONFIG_RADIO_TRUST=m
+CONFIG_RADIO_TYPHOON=m
+CONFIG_RADIO_TYPHOON_PROC_FS=y
+CONFIG_RADIO_ZOLTRIX=m
+
+#
+# Digital Video Broadcasting Devices
+#
+CONFIG_DVB=y
+CONFIG_DVB_CORE=m
+
+#
+# Supported SAA7146 based PCI Adapters
+#
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_BUDGET=m
+CONFIG_DVB_BUDGET_CI=m
+CONFIG_DVB_BUDGET_AV=m
+CONFIG_DVB_BUDGET_PATCH=m
+
+#
+# Supported USB Adapters
+#
+CONFIG_DVB_USB=m
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_TTUSB_BUDGET=m
+CONFIG_DVB_TTUSB_DEC=m
+CONFIG_DVB_CINERGYT2=m
+CONFIG_DVB_CINERGYT2_TUNING=y
+CONFIG_DVB_CINERGYT2_STREAM_URB_COUNT=32
+CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512
+CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250
+CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y
+CONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=100
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+CONFIG_DVB_B2C2_FLEXCOP=m
+CONFIG_DVB_B2C2_FLEXCOP_PCI=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
+
+#
+# Supported BT878 Adapters
+#
+CONFIG_DVB_BT8XX=m
+
+#
+# Supported Pluto2 Adapters
+#
+CONFIG_DVB_PLUTO2=m
+
+#
+# Supported DVB Frontends
+#
+
+#
+# Customise DVB Frontends
+#
+
+#
+# DVB-S (satellite) frontends
+#
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_CX24110=m
+CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA80XX=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_S5H1420=m
+
+#
+# DVB-T (terrestrial) frontends
+#
+CONFIG_DVB_SP8870=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_CX22700=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_L64781=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+
+#
+# DVB-C (cable) frontends
+#
+CONFIG_DVB_ATMEL_AT76C651=m
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_TDA10021=m
+CONFIG_DVB_STV0297=m
+
+#
+# ATSC (North American/Korean Terresterial DTV) frontends
+#
+CONFIG_DVB_NXT2002=m
+CONFIG_DVB_OR51211=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_VIDEO_VIDEOBUF=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEO_BUF=m
+CONFIG_VIDEO_BUF_DVB=m
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_IR=m
+CONFIG_VIDEO_TVEEPROM=m
+
+#
+# Graphics support
+#
+# CONFIG_FB is not set
+CONFIG_VIDEO_SELECT=y
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+# CONFIG_MDA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+
+#
+# Sound
+#
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_RTCTIMER=m
+CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_GENERIC_DRIVER=y
+
+#
+# Generic devices
+#
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_OPL4_LIB=m
+CONFIG_SND_VX_LIB=m
+# CONFIG_SND_DUMMY is not set
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+
+#
+# ISA devices
+#
+CONFIG_SND_AD1848_LIB=m
+CONFIG_SND_CS4231_LIB=m
+CONFIG_SND_AD1816A=m
+CONFIG_SND_AD1848=m
+CONFIG_SND_CS4231=m
+CONFIG_SND_CS4232=m
+CONFIG_SND_CS4236=m
+CONFIG_SND_ES968=m
+CONFIG_SND_ES1688=m
+CONFIG_SND_ES18XX=m
+CONFIG_SND_GUS_SYNTH=m
+CONFIG_SND_GUSCLASSIC=m
+CONFIG_SND_GUSEXTREME=m
+CONFIG_SND_GUSMAX=m
+CONFIG_SND_INTERWAVE=m
+CONFIG_SND_INTERWAVE_STB=m
+CONFIG_SND_OPTI92X_AD1848=m
+CONFIG_SND_OPTI92X_CS4231=m
+CONFIG_SND_OPTI93X=m
+CONFIG_SND_SB8=m
+CONFIG_SND_SB16=m
+CONFIG_SND_SBAWE=m
+CONFIG_SND_SB16_CSP=y
+CONFIG_SND_WAVEFRONT=m
+CONFIG_SND_ALS100=m
+CONFIG_SND_AZT2320=m
+CONFIG_SND_CMI8330=m
+CONFIG_SND_DT019X=m
+CONFIG_SND_OPL3SA2=m
+CONFIG_SND_SGALAXY=m
+CONFIG_SND_SSCAPE=m
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_AC97_BUS=m
+
+#
+# PCI devices
+#
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS4281=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_CA0106=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_MIXART=m
+CONFIG_SND_NM256=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SND_AD1889=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VX222=m
+CONFIG_SND_HDA_INTEL=m
+
+#
+# USB devices
+#
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_USX2Y=m
+
+#
+# PCMCIA devices
+#
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_PDAUDIOCF=m
+
+#
+# Open Sound System
+#
+CONFIG_SOUND_PRIME=m
+CONFIG_SOUND_BT878=m
+CONFIG_SOUND_CMPCI=m
+CONFIG_SOUND_CMPCI_FM=y
+CONFIG_SOUND_CMPCI_MIDI=y
+CONFIG_SOUND_CMPCI_JOYSTICK=y
+CONFIG_SOUND_EMU10K1=m
+CONFIG_MIDI_EMU10K1=y
+CONFIG_SOUND_FUSION=m
+CONFIG_SOUND_CS4281=m
+CONFIG_SOUND_ES1370=m
+CONFIG_SOUND_ES1371=m
+CONFIG_SOUND_ESSSOLO1=m
+CONFIG_SOUND_MAESTRO=m
+CONFIG_SOUND_MAESTRO3=m
+CONFIG_SOUND_ICH=m
+CONFIG_SOUND_SONICVIBES=m
+CONFIG_SOUND_TRIDENT=m
+# CONFIG_SOUND_MSNDCLAS is not set
+# CONFIG_SOUND_MSNDPIN is not set
+CONFIG_SOUND_VIA82CXXX=m
+CONFIG_MIDI_VIA82CXXX=y
+CONFIG_SOUND_OSS=m
+CONFIG_SOUND_TRACEINIT=y
+CONFIG_SOUND_DMAP=y
+CONFIG_SOUND_AD1816=m
+CONFIG_SOUND_AD1889=m
+CONFIG_SOUND_SGALAXY=m
+CONFIG_SOUND_ADLIB=m
+CONFIG_SOUND_ACI_MIXER=m
+CONFIG_SOUND_CS4232=m
+CONFIG_SOUND_SSCAPE=m
+CONFIG_SOUND_GUS=m
+CONFIG_SOUND_GUS16=y
+CONFIG_SOUND_GUSMAX=y
+CONFIG_SOUND_VMIDI=m
+CONFIG_SOUND_TRIX=m
+CONFIG_SOUND_MSS=m
+CONFIG_SOUND_MPU401=m
+CONFIG_SOUND_NM256=m
+CONFIG_SOUND_MAD16=m
+CONFIG_MAD16_OLDCARD=y
+CONFIG_SOUND_PAS=m
+CONFIG_SOUND_PSS=m
+CONFIG_PSS_MIXER=y
+CONFIG_SOUND_SB=m
+CONFIG_SOUND_AWE32_SYNTH=m
+CONFIG_SOUND_WAVEFRONT=m
+CONFIG_SOUND_MAUI=m
+CONFIG_SOUND_YM3812=m
+CONFIG_SOUND_OPL3SA1=m
+CONFIG_SOUND_OPL3SA2=m
+CONFIG_SOUND_YMFPCI=m
+CONFIG_SOUND_YMFPCI_LEGACY=y
+CONFIG_SOUND_UART6850=m
+CONFIG_SOUND_AEDSP16=m
+CONFIG_SC6600=y
+CONFIG_SC6600_JOY=y
+CONFIG_SC6600_CDROM=4
+CONFIG_SC6600_CDROMBASE=0x0
+# CONFIG_AEDSP16_MSS is not set
+# CONFIG_AEDSP16_SBPRO is not set
+CONFIG_AEDSP16_MPU401=y
+CONFIG_SOUND_TVMIXER=m
+CONFIG_SOUND_KAHLUA=m
+CONFIG_SOUND_ALI5455=m
+CONFIG_SOUND_FORTE=m
+CONFIG_SOUND_RME96XX=m
+CONFIG_SOUND_AD1980=m
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+CONFIG_USB_BANDWIDTH=y
+CONFIG_USB_DYNAMIC_MINORS=y
+# CONFIG_USB_SUSPEND is not set
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_SPLIT_ISO=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+# CONFIG_USB_ISP116X_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_BIG_ENDIAN is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_UHCI_HCD=y
+CONFIG_USB_SL811_HCD=y
+CONFIG_USB_SL811_CS=m
+
+#
+# USB Device Class drivers
+#
+# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set
+
+#
+# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be
needed; see USB_STORAGE Help for more information
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_DATAFAB=y
+CONFIG_USB_STORAGE_FREECOM=y
+CONFIG_USB_STORAGE_ISD200=y
+CONFIG_USB_STORAGE_DPCM=y
+CONFIG_USB_STORAGE_USBAT=y
+CONFIG_USB_STORAGE_SDDR09=y
+CONFIG_USB_STORAGE_SDDR55=y
+CONFIG_USB_STORAGE_JUMPSHOT=y
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=y
+CONFIG_USB_HIDINPUT=y
+# CONFIG_HID_FF is not set
+# CONFIG_USB_HIDDEV is not set
+CONFIG_USB_AIPTEK=m
+CONFIG_USB_WACOM=m
+CONFIG_USB_ACECAD=m
+CONFIG_USB_KBTAB=m
+CONFIG_USB_POWERMATE=m
+CONFIG_USB_MTOUCH=m
+CONFIG_USB_ITMTOUCH=m
+CONFIG_USB_EGALAX=m
+CONFIG_USB_YEALINK=m
+CONFIG_USB_XPAD=m
+CONFIG_USB_ATI_REMOTE=m
+# CONFIG_USB_KEYSPAN_REMOTE is not set
+CONFIG_USB_APPLETOUCH=m
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+#
+# USB Multimedia devices
+#
+CONFIG_USB_DABUSB=m
+CONFIG_USB_VICAM=m
+CONFIG_USB_DSBR=m
+CONFIG_USB_IBMCAM=m
+CONFIG_USB_KONICAWC=m
+CONFIG_USB_OV511=m
+CONFIG_USB_SE401=m
+CONFIG_USB_SN9C102=m
+CONFIG_USB_STV680=m
+CONFIG_USB_W9968CF=m
+CONFIG_USB_PWC=m
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_MON=y
+
+#
+# USB port drivers
+#
+CONFIG_USB_USS720=m
+
+#
+# USB Serial Converter support
+#
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRPRIME=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP2101=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+# CONFIG_USB_SERIAL_KEYSPAN is not set
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_USB_SERIAL_SAFE_PADDED=y
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_EZUSB=y
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_AUERSWALD=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_PHIDGETKIT=m
+CONFIG_USB_PHIDGETSERVO=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_SISUSBVGA_CON is not set
+CONFIG_USB_LD=m
+CONFIG_USB_TEST=m
+
+#
+# USB DSL modem support
+#
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_XUSBATM=m
+
+#
+# USB Gadget Support
+#
+CONFIG_USB_GADGET=m
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+CONFIG_USB_GADGET_SELECTED=y
+CONFIG_USB_GADGET_NET2280=y
+CONFIG_USB_NET2280=m
+# CONFIG_USB_GADGET_PXA2XX is not set
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+CONFIG_USB_ZERO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FILE_STORAGE=m
+CONFIG_USB_FILE_STORAGE_TEST=y
+CONFIG_USB_G_SERIAL=m
+
+#
+# MMC/SD Card support
+#
+CONFIG_MMC=m
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_WBSD=m
+
+#
+# InfiniBand support
+#
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_USER_MAD=m
+CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_INFINIBAND_MTHCA=m
+# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
+CONFIG_INFINIBAND_IPOIB=m
+# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
+
+#
+# SN Devices
+#
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+CONFIG_REISERFS_FS=y
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+# CONFIG_REISERFS_FS_XATTR is not set
+CONFIG_JFS_FS=y
+CONFIG_JFS_POSIX_ACL=y
+# CONFIG_JFS_SECURITY is not set
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_STATISTICS=y
+CONFIG_FS_POSIX_ACL=y
+CONFIG_XFS_FS=y
+CONFIG_XFS_EXPORT=y
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_SECURITY=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+CONFIG_MINIX_FS=m
+CONFIG_ROMFS_FS=m
+CONFIG_INOTIFY=y
+CONFIG_QUOTA=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_DNOTIFY=y
+CONFIG_AUTOFS_FS=m
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=m
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_ZISOFS_FS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=y
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_RAMFS=y
+CONFIG_RELAYFS_FS=m
+
+#
+# Miscellaneous filesystems
+#
+CONFIG_ADFS_FS=m
+CONFIG_ADFS_FS_RW=y
+CONFIG_AFFS_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+CONFIG_BFS_FS=m
+CONFIG_EFS_FS=m
+CONFIG_JFFS_FS=m
+CONFIG_JFFS_FS_VERBOSE=0
+# CONFIG_JFFS_PROC_FS is not set
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_CRAMFS=m
+CONFIG_VXFS_FS=m
+CONFIG_HPFS_FS=m
+CONFIG_QNX4FS_FS=m
+CONFIG_SYSV_FS=m
+CONFIG_UFS_FS=m
+CONFIG_UFS_FS_WRITE=y
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=m
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+CONFIG_NFS_V4=y
+# CONFIG_NFS_DIRECTIO is not set
+CONFIG_NFSD=m
+CONFIG_NFSD_V3=y
+# CONFIG_NFSD_V3_ACL is not set
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_TCP=y
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+CONFIG_SMB_FS=m
+CONFIG_SMB_NLS_DEFAULT=y
+CONFIG_SMB_NLS_REMOTE="cp437"
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+# CONFIG_CIFS_XATTR is not set
+# CONFIG_CIFS_EXPERIMENTAL is not set
+CONFIG_NCP_FS=m
+CONFIG_NCPFS_PACKET_SIGNING=y
+CONFIG_NCPFS_IOCTL_LOCKING=y
+CONFIG_NCPFS_STRONG=y
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_SMALLDOS=y
+# CONFIG_NCPFS_NLS is not set
+CONFIG_NCPFS_EXTRAS=y
+CONFIG_CODA_FS=m
+CONFIG_CODA_FS_OLD_API=y
+CONFIG_AFS_FS=m
+CONFIG_RXRPC=m
+CONFIG_9P_FS=m
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_DEBUG_KERNEL=y
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_FRAME_POINTER is not set
+# CONFIG_EARLY_PRINTK is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_KPROBES is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_4KSTACKS is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_AES_586=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_CRC32C=m
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Hardware crypto devices
+#
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=y
+
+#
+# Library routines
+#
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_X86_BIOS_REBOOT=y
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/makefile.patches

b/cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/makefile.patches
new file mode 100644
index 0000000..ac9e845
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/config/etc/sorcery/local/makefile.patches
@@ -0,0 +1,6 @@
+all: patch-2.6.14.7
+
+patch-2.6.14.7:
+ @echo -n "patch-2.6.14.7 "
+
+.PHONY : all patch-2.6.14.7
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/README
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/README
new file mode 100644
index 0000000..f7108ae
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/README
@@ -0,0 +1,2 @@
+This directory holds the previously selected dependency
+configurations for spells.
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/distcc.p
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/distcc.p
new file mode 100644
index 0000000..574d2ff
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/distcc.p
@@ -0,0 +1,8 @@
+INIT_INSTALLED="distcc"
+INIT_NOT_INSTALLED=""
+INIT_ENABLED=""
+INIT_DISABLED="distcc"
+XINETD_INSTALLED="distcc"
+XINETD_NOT_INSTALLED=""
+XINETD_ENABLED=""
+XINETD_DISABLED="distcc"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/elvis.p
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/elvis.p
new file mode 100644
index 0000000..f6f299a
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/elvis.p
@@ -0,0 +1 @@
+MAKE_SYMLINK="n"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/findutils.p

b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/findutils.p
new file mode 100644
index 0000000..3575fdc
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/findutils.p
@@ -0,0 +1 @@
+FINDUTILS_OPTS="--disable-d_type-optimization"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/g++.p
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/g++.p
new file mode 100644
index 0000000..c78e7f6
--- /dev/null
+++ b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/g++.p
@@ -0,0 +1 @@
+GCC_MULTILIB="--disable-multilib"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/gcc.p
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/gcc.p
new file mode 100644
index 0000000..86c2206
--- /dev/null
+++ b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/gcc.p
@@ -0,0 +1,2 @@
+GCC_NOLIB64="y"
+GCC_MULTILIB="--disable-multilib"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/gettext.p

b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/gettext.p
new file mode 100644
index 0000000..8637bd1
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/gettext.p
@@ -0,0 +1 @@
+GETTEXT_TETEX="n"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/glibc.p
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/glibc.p
new file mode 100644
index 0000000..b78368a
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/glibc.p
@@ -0,0 +1,5 @@
+GLIBC_NPTL="y"
+GLIBC_UTF="n"
+GLIBC_NOLIB64="y"
+GLIBC_HEADERS_DIR="/usr/src/glibc-2.3.5/linux-libc-headers-2.6.12.0"
+GLIBC_ARCH="x86_64"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/gnupg.p
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/gnupg.p
new file mode 100644
index 0000000..a1e4d2f
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/gnupg.p
@@ -0,0 +1 @@
+DEVEL="n"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/grub.p
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/grub.p
new file mode 100644
index 0000000..e8d146a
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/grub.p
@@ -0,0 +1,50 @@
+GRUB_EXT2="y"
+GRUB_FAT="y"
+GRUB_FFS="y"
+GRUB_MINIX="y"
+GRUB_REISER="y"
+GRUB_REISER4="n"
+GRUB_JFS="y"
+GRUB_XFS="y"
+GRUB_VSTA="y"
+GRUB_GZIP="y"
+GRUB_MD5="y"
+GRUB_PACKET="n"
+GRUB_PCI="n"
+GRUB_3C503="n"
+GRUB_3C503_SH="n"
+GRUB_3C503_AUI="n"
+GRUB_3C507="n"
+GRUB_3C509="n"
+GRUB_3C529="n"
+GRUB_3C90x="n"
+GRUB_CS89x0="n"
+GRUB_DAVICOM="n"
+GRUB_DEPCA="n"
+GRUB_EEPRO10="n"
+GRUB_EEPRO100="n"
+GRUB_EPIC100="n"
+GRUB_SMC9000="n"
+GRUB_EXOS205="n"
+GRUB_NI5010="n"
+GRUB_NI5210="n"
+GRUB_NI6510="n"
+GRUB_LANCE="n"
+GRUB_NE="n"
+GRUB_NE2000="n"
+GRUB_NE2100="n"
+GRUB_NATSEMI="n"
+GRUB_WD="n"
+GRUB_OTULIP="n"
+GRUB_TULIP="n"
+GRUB_RTL8139="n"
+GRUB_SIS900="n"
+GRUB_SK_G16="n"
+GRUB_TIARA="n"
+GRUB_VIARHINE="n"
+GRUB_W89C840="n"
+GRUB_COMP_FIX="n"
+GRUB_DISKLESS="n"
+GRUB_HERCULES="n"
+GRUB_SERIAL="y"
+GRUB_LINUX_MEM="n"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/hotplug.p

b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/hotplug.p
new file mode 100644
index 0000000..c0c7db3
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/hotplug.p
@@ -0,0 +1,4 @@
+INIT_INSTALLED="hotplug"
+INIT_NOT_INSTALLED=""
+INIT_ENABLED="hotplug"
+INIT_DISABLED=""
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/iana-etc.p

b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/iana-etc.p
new file mode 100644
index 0000000..8205191
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/iana-etc.p
@@ -0,0 +1,2 @@
+IANA_AMANDA="y"
+IANA_SWAT="y"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/init.d
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/init.d
new file mode 100644
index 0000000..b50c652
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/init.d
@@ -0,0 +1 @@
+DEVICES=static
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/init.d.p
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/init.d.p
new file mode 100644
index 0000000..7f57ee1
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/init.d.p
@@ -0,0 +1,5 @@
+INIT_INSTALLED="devices smgl-misc hostname.sh mountall.sh keymap.sh single
smgl-default-remote-fs smgl-suspend-single"
+INIT_NOT_INSTALLED=""
+INIT_ENABLED="devices smgl-misc hostname.sh mountall.sh keymap.sh single
smgl-default-remote-fs smgl-suspend-single"
+INIT_DISABLED=""
+INIT_PROVIDES="mountall.sh:local_fs smgl-default-remote-fs:remote_fs"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/irssi.p
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/irssi.p
new file mode 100644
index 0000000..a5ddea5
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/irssi.p
@@ -0,0 +1 @@
+IRSSI_SVN="n"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/lilo.p
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/lilo.p
new file mode 100644
index 0000000..44a3421
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/lilo.p
@@ -0,0 +1 @@
+RUN_LILO="n"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/linux.p
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/linux.p
new file mode 100644
index 0000000..ae17374
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/linux.p
@@ -0,0 +1,8 @@
+kernel_arch="x86_64"
+reconf="false"
+mode="newktree"
+kver="2.6.14"
+patches=""
+selected_patches="patch-2.6.14.7 "
+MAKEMODE="menuconfig"
+UPDATE_BL="n"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/lshw.p
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/lshw.p
new file mode 100644
index 0000000..0d189a6
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/lshw.p
@@ -0,0 +1 @@
+LSHWGUI="n"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/man.p
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/man.p
new file mode 100644
index 0000000..e3a4fad
--- /dev/null
+++ b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/man.p
@@ -0,0 +1 @@
+PROFILE_D_SCRIPT="n"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/metalog.p

b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/metalog.p
new file mode 100644
index 0000000..047e157
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/metalog.p
@@ -0,0 +1,5 @@
+INIT_INSTALLED="smgl-metalog"
+INIT_NOT_INSTALLED=""
+INIT_ENABLED="smgl-metalog"
+INIT_DISABLED=""
+INIT_PROVIDES="smgl-metalog:syslog"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/module-init-tools.p

b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/module-init-tools.p
new file mode 100644
index 0000000..c056f30
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/module-init-tools.p
@@ -0,0 +1,6 @@
+OLD_TOO="n"
+GZIP_MODS="n"
+INIT_INSTALLED="modutils"
+INIT_NOT_INSTALLED=""
+INIT_ENABLED="modutils"
+INIT_DISABLED=""
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/mutt.p
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/mutt.p
new file mode 100644
index 0000000..43e2a4c
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/mutt.p
@@ -0,0 +1,4 @@
+BRANCH="stable"
+PATCHES="-compressed_folders -edit_threads -trash_folder -signatures_menu
-attachment_counting -isalias -deepif -date_conditional -current_shortcut
-libesmtp"
+MUTT_OPTS="--enable-pop --enable-imap"
+TERMINAL_LIBRARY="ncurses"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/ncurses.p

b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/ncurses.p
new file mode 100644
index 0000000..91fd0ef
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/ncurses.p
@@ -0,0 +1 @@
+UTF8="n"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/net-tools.p

b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/net-tools.p
new file mode 100644
index 0000000..889b1b1
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/net-tools.p
@@ -0,0 +1,41 @@
+GETTEXT="y"
+UNIX="y"
+INET="y"
+INET6="y"
+NOVELL="y"
+APPLETALK="y"
+AFAX25="y"
+AFNETROM="y"
+AFROSE="y"
+AFX25="y"
+AFECONET="y"
+DECNET="n"
+AFASH="y"
+ETHERNET="y"
+ARCNET="y"
+SLIP="y"
+PPP="y"
+IPIP="y"
+STRIP="y"
+TOKEN="y"
+HWAX25="y"
+HWROSE="y"
+HWNETROM="y"
+HWX25="y"
+FRAME="y"
+SIT="y"
+FDDI="y"
+HIPPI="y"
+HWASH="y"
+CISCO="y"
+IRDA="y"
+HWECONET="y"
+IPMASQ="y"
+IPTOOLS="y"
+MII="n"
+CONFIG_OPTS="y\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\nn\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\nn\n"
+INIT_INSTALLED="mountnetwork network"
+INIT_NOT_INSTALLED=""
+INIT_ENABLED="network"
+INIT_DISABLED="mountnetwork"
+INIT_PROVIDES="network:network"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/nfs-utils.p

b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/nfs-utils.p
new file mode 100644
index 0000000..4e5e309
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/nfs-utils.p
@@ -0,0 +1,5 @@
+NFS_UTILS_NFSV3="--enable-nfsv3"
+INIT_INSTALLED="nfs nfslock"
+INIT_NOT_INSTALLED=""
+INIT_ENABLED=""
+INIT_DISABLED="nfs nfslock"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/openssh.p

b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/openssh.p
new file mode 100644
index 0000000..1f4625f
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/openssh.p
@@ -0,0 +1,8 @@
+INIT_INSTALLED="sshd"
+INIT_NOT_INSTALLED=""
+INIT_ENABLED=""
+INIT_DISABLED="sshd"
+XINETD_INSTALLED="sshd"
+XINETD_NOT_INSTALLED=""
+XINETD_ENABLED=""
+XINETD_DISABLED="sshd"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/pciutils.p

b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/pciutils.p
new file mode 100644
index 0000000..c603301
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/pciutils.p
@@ -0,0 +1 @@
+PCIUTILS_UPDATE="n"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/pcmcia-cs.p

b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/pcmcia-cs.p
new file mode 100644
index 0000000..5b356f7
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/pcmcia-cs.p
@@ -0,0 +1,4 @@
+INIT_INSTALLED="pcmcia"
+INIT_NOT_INSTALLED=""
+INIT_ENABLED="pcmcia"
+INIT_DISABLED=""
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/pcre.p
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/pcre.p
new file mode 100644
index 0000000..c6567e5
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/pcre.p
@@ -0,0 +1 @@
+BUILDUTF8="n"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/perl.p
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/perl.p
new file mode 100644
index 0000000..d9d4f23
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/perl.p
@@ -0,0 +1,2 @@
+NEW_CUSTOM="n"
+THREADED="n"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/portmap.p

b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/portmap.p
new file mode 100644
index 0000000..ff0da75
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/portmap.p
@@ -0,0 +1,5 @@
+INIT_INSTALLED="portmap"
+INIT_NOT_INSTALLED=""
+INIT_ENABLED="portmap"
+INIT_DISABLED=""
+INIT_PROVIDES="portmap:portmap"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/ppp.p
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/ppp.p
new file mode 100644
index 0000000..b263081
--- /dev/null
+++ b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/ppp.p
@@ -0,0 +1,2 @@
+USE_PEER_DNS="y"
+HAVE_CBCP="n"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/procps.p
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/procps.p
new file mode 100644
index 0000000..7f95c7b
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/procps.p
@@ -0,0 +1,4 @@
+INIT_INSTALLED="smgl-sysctl"
+INIT_NOT_INSTALLED=""
+INIT_ENABLED="smgl-sysctl"
+INIT_DISABLED=""
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/rp-pppoe.p

b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/rp-pppoe.p
new file mode 100644
index 0000000..6d0cda7
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/rp-pppoe.p
@@ -0,0 +1 @@
+CONFIG_PPPOE="n"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/screen
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/screen
new file mode 100644
index 0000000..b38d328
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/screen
@@ -0,0 +1 @@
+REPLACE_RC=y
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/sysklogd.p

b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/sysklogd.p
new file mode 100644
index 0000000..532cd92
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/sysklogd.p
@@ -0,0 +1,6 @@
+INIT_DISABLED=""
+INIT_INSTALLED="sysklogd"
+INIT_NOT_INSTALLED=""
+INIT_PROVIDES="sysklogd:syslog"
+INIT_ENABLED="sysklogd"
+
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/syslog-ng

b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/syslog-ng
new file mode 100644
index 0000000..36c5817
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/syslog-ng
@@ -0,0 +1 @@
+CONF_SPECIAL_CONF=n
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/syslog-ng.p

b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/syslog-ng.p
new file mode 100644
index 0000000..7ac5cac
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/syslog-ng.p
@@ -0,0 +1,5 @@
+INIT_INSTALLED="syslog-ng"
+INIT_DISABLED=""
+INIT_NOT_INSTALLED=""
+INIT_ENABLED="syslog-ng"
+INIT_PROVIDES="syslog-ng:syslog"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/udev.p
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/udev.p
new file mode 100644
index 0000000..1d41c64
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/udev.p
@@ -0,0 +1,7 @@
+UDEV_UPDATE2="y"
+UDEV_STATIC="y"
+UDEV_STATIC_TARGET="udevstart"
+INIT_INSTALLED="udevd"
+INIT_NOT_INSTALLED=""
+INIT_ENABLED="udevd"
+INIT_DISABLED=""
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/uptimed.p

b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/uptimed.p
new file mode 100644
index 0000000..cb4c823
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/uptimed.p
@@ -0,0 +1,4 @@
+INIT_INSTALLED="uptimed smgl-uptimed-bootid"
+INIT_NOT_INSTALLED=""
+INIT_ENABLED="uptimed smgl-uptimed-bootid"
+INIT_DISABLED=""
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/util-linux.p

b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/util-linux.p
new file mode 100644
index 0000000..642b7c9
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/util-linux.p
@@ -0,0 +1,5 @@
+SELINUX="n"
+INIT_INSTALLED="hwclock.sh"
+INIT_NOT_INSTALLED=""
+INIT_ENABLED="hwclock.sh"
+INIT_DISABLED=""
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/vim.p
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/vim.p
new file mode 100644
index 0000000..8483414
--- /dev/null
+++ b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/vim.p
@@ -0,0 +1,5 @@
+GVIM_MULTIBYTE="--enable-multibyte"
+GVIM_HANGUL="--disable-hangulinput"
+GVIM_GUI="none"
+GVIM_SUN="--disable-workshop"
+GVIM_SYMLINK="n"
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/xinetd.p
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/xinetd.p
new file mode 100644
index 0000000..f75e03c
--- /dev/null
+++
b/cauldron/etc/x86_64/sorcery/x86_64/state/etc/sorcery/local/depends/xinetd.p
@@ -0,0 +1,4 @@
+INIT_INSTALLED="xinetd"
+INIT_NOT_INSTALLED=""
+INIT_ENABLED="xinetd"
+INIT_DISABLED=""
diff --git
a/cauldron/etc/x86_64/sorcery/x86_64/state/var/state/sorcery/depends
b/cauldron/etc/x86_64/sorcery/x86_64/state/var/state/sorcery/depends
new file mode 100644
index 0000000..d65a821
--- /dev/null
+++ b/cauldron/etc/x86_64/sorcery/x86_64/state/var/state/sorcery/depends
@@ -0,0 +1,200 @@
+autoconf:m4:on:required::
+autoconf:perl:on:required::
+automake:autoconf:on:required::
+basesystem:bash:on:required::
+basesystem:binutils:on:required::
+basesystem:(BOOTLOADER):off:optional::
+basesystem:bzip2:on:required::
+basesystem:ccache:off:optional::
+basesystem:coreutils:on:required::
+basesystem:cpio:on:required::
+basesystem:dialog:on:required::
+basesystem:diffutils:on:required::
+basesystem:e2fsprogs:on:required::
+basesystem:file:on:required::
+basesystem:findutils:on:required::
+basesystem:gawk:on:required::
+basesystem:gcc:on:required::
+basesystem:glibc:on:required::
+basesystem:gnupg:on:required::
+basesystem:grep:on:required::
+basesystem:gzip:on:required::
+basesystem:iana-etc:on:required::
+basesystem:init.d:on:required::
+basesystem:installwatch:on:required::
+basesystem:less:on:required::
+basesystem:make:on:required::
+basesystem:module-init-tools:on:required::
+basesystem:mutt:off:optional::
+basesystem:nano:on:required::
+basesystem:ncurses:on:required::
+basesystem:net-tools:on:required::
+basesystem:nfs-utils:off:optional::
+basesystem:openssh:off:optional::
+basesystem:patch:on:required::
+basesystem:procps:on:required::
+basesystem:readline:on:required::
+basesystem:sed:on:required::
+basesystem:shadow:on:required::
+basesystem:simpleinit-msb:on:required::
+basesystem:smgl-archspecs:on:required::
+basesystem:smgl-fhs:on:required::
+basesystem:sorcery-pubkeys:on:optional::
+basesystem:(SORCERY-SOUNDS):off:optional::
+basesystem:tar:on:required::
+basesystem:texinfo:on:required::
+basesystem:unzip:on:required::
+basesystem:util-linux(UTIL-LINUX):on:required::
+basesystem:wget:on:required::
+basesystem:zlib:on:required::
+bash:ncurses:on:required:--with-curses:
+bash:readline:on:required:--with-installed-readline:
+binutils:bison:on:required::
+binutils:flex:on:required::
+bison:gettext:on:optional:--enable-nls:--disable-nls
+bison:m4:on:required::
+console-data:perl:on:required::
+console-tools:console-data:on:required::
+console-tools:flex:on:required::
+console-tools:perl:on:required::
+coreutils:linux-pam:off:optional:--enable-pam:
+cpio:patch:on:required::
+cpio:texinfo:off:optional::
+cvs:gnupg:on:required::
+cvs:smgl-fhs:on:required::
+cvs:zlib:on:required:--with-external-zlib:
+dialog:ncurses:on:required::
+distcc:gtk+2:off:optional:--with-gtk:
+distcc:libgnomeui:off:optional:--with-gnome:
+distcc:popt:on:required::
+e2fsprogs:gawk:on:required::
+e2fsprogs:init.d:on:required::
+elvis:(X11-LIBS):off:optional:--with-x:--with-x=no
+ethstatus:ncurses:on:required::
+file:zlib:on:required::
+findutils:gettext:on:optional:--enable-nls:--disable-nls
+gettext:(CSHARP):off:optional:--enable-csharp:--disable-csharp
+gettext:g++:off:optional:--enable-libasprintf:--disable-libasprintf
+gettext:texinfo:on:required::
+g++:gcc:on:required::
+glib2:perl:on:required::
+glib2:pkgconfig:on:required::
+glibc:gcc34:on:required::
+glibc:gettext:on:required::
+glibc:perl:on:required::
+gnupg:bzip2:on:optional:--enable-bzip2:--disable-bzip2
+gnupg:gettext:on:optional:--enable-nls:--disable-nls
+gnupg:libusb:off:optional::--without-libusb
+gnupg:nasm:off:optional:--enable-asm:--disable-asm
+gnupg:openldap:off:optional:--enable-ldap:--disable-ldap
+grep:pcre:off:optional:--enable-perl-regexp:--disable-perl-regexp
+groff:g++:on:required::
+groff:netpbm:off:optional::
+groff:(POSTSCRIPT-INTERPRETER):off:optional::
+groff:psutils:off:optional::
+hotplug:module-init-tools:on:required::
+hotplug:which:on:required::
+iana-etc:gawk:on:required::
+init.d:simpleinit-msb:on:required::
+init.d:udev:on:required::
+installwatch:bzip2:on:required::
+installwatch:tar:on:required::
+irssi:glib2:on:required::
+irssi:ncurses:on:required::
+irssi:openssl:off:optional::--disable-ssl
+irssi:perl:off:optional:--with-perl=module:--with-perl=no
+jed:gpm:off:optional:useGPM:
+jed:slang:on:required::
+jed:(X11-SERVER):off:optional:useX:
+jfsutils:e2fsprogs:on:required::
+libol:automake:on:required::
+libol:libtool:on:required::
+libpcap:bison:on:required::
+libpcap:flex:on:required::
+lilo:bin86:on:required::
+links:openssl:off:optional::
+lvm:device-mapper:on:optional::--disable-devmapper
+lvm:readline:on:optional:--enable-readline:--enable-readline=no
+m4:texinfo:on:required::
+man:groff:on:required::
+metalog:pcre:on:required::
+module-init-tools:flex:on:required::
+module-init-tools:gnupg:on:required::
+module-init-tools:mktemp:on:required::
+module-init-tools:smgl-fhs:on:required::
+mutt:gnupg:off:optional::--disable-pgp
+mutt:krb5:off:optional:--with-gss:
+mutt:(MAIL-TRANSPORT-AGENT):off:optional::
+mutt:ncurses:on:required::
+mutt:openssl:off:optional:--with-ssl:
+nano:ncurses:on:required::
+ncurses:(GNAT):off:optional::--without-ada
+ncurses:g++:off:optional:--with-cxx --with-cxx-binding:--without-cxx
--without-cxx-binding
+netkit-ping:netkit-base:on:required::
+net-tools:coreutils:on:required::
+net-tools:dhcpcd:off:optional::
+net-tools:gettext:on:optional::
+net-tools:init.d:on:required::
+net-tools:netconf:on:required::
+net-tools:wireless_tools:off:optional::
+nfs-utils:gcc34:on:required::
+nfs-utils:portmap:on:required::
+openssh:krb5:off:optional:--with-kerberos5=/usr:
+openssh:linux-pam:off:optional:--with-pam:
+openssh:openssl:on:required::
+openssh:tcp_wrappers:off:optional:--with-tcp-wrappers:
+openssh:zlib:on:required::
+openssl:krb5:off:optional:krb5:no-krb5
+openssl:perl:on:required::
+parted:autoconf:on:required::
+parted:automake:on:required::
+parted:gettext:on:optional:--enable-nls:--disable-nls
+parted:libtool:on:required::
+parted:readline:on:optional:--without-readline:--with-readline
+pcre:g++:off:optional:--enable-cpp:--disable-cpp
+perl:gdbm:off:optional::
+pkgconfig:automake:on:required::
+pkgconfig:libtool:on:required::
+portmap:tcp_wrappers:on:required::
+ppp:libpcap:on:required::
+procinfo:perl:on:required::
+procps:ncurses:on:required::
+raidtools:popt:on:required::
+rp-pppoe:ppp:on:required::
+sgml-common:autoconf:on:required::
+sgml-common:automake:on:required::
+shadow:cracklib:off:optional:--with-libcrack:--without-libcrack
+shadow:libselinux:off:optional:--with-selinux:
+shadow:linux-pam:off:optional:--with-libpam:--without-libpam
+slang:libpng:off:optional::
+slang:pcre:off:optional::
+slang:readline:on:optional::
+sorcery-pubkeys:gnupg:on:required::
+syslog-ng:flex:on:required::
+syslog-ng:libol:on:required::
+syslog-ng:which:on:required::
+tar:gnupg:on:required::
+tar:smgl-fhs:on:required::
+tcp_wrappers:libtool:on:required::
+tdb:gdbm:on:required::
+udev:hotplug:on:required::
+udev:libselinux:off:optional:USE_SELINUX=true:USE_SELINUX=false
+udev:(SYSTEM-LOGGER):off:optional:USE_LOG=true:USE_LOG=false
+util-linux:console-tools(CONSOLE-TOOLS):on:required::
+util-linux:zlib:on:required::
+vim:acl:off:optional:--enable-acl:--disable-acl
+vim:cscope:off:optional:--enable-cscope:
+vim:gettext:on:optional:--enable-nls:--disable-nls
+vim:gpm:off:optional:--enable-gpm:--disable-gpm
+vim:perl:off:optional:--enable-perlinterp:
+vim:python:off:optional:--enable-pythoninterp:
+vim:ruby:off:optional:--enable-rubyinterp:
+vim:tcl:off:optional:--enable-tclinterp:
+wget:gettext:off:optional:--enable-nls:--disable-nls
+wget:openssl:off:optional:--with-ssl:--without-ssl
+wireless_tools:pcmcia-cs:off:optional::
+xfsprogs:autoconf:on:required::
+xfsprogs:e2fsprogs:on:required::
+xfsprogs:libtool:on:required::
+xinetd:gcc34:on:required::
+xinetd:tcp_wrappers:off:optional:--with-libwrap:
diff --git a/cauldron/etc/x86_64/sys/sys.install
b/cauldron/etc/x86_64/sys/sys.install
new file mode 100644
index 0000000..e69de29
diff --git a/cauldron/etc/x86_64/sys/sys.runtime
b/cauldron/etc/x86_64/sys/sys.runtime
new file mode 100644
index 0000000..728fbd0
--- /dev/null
+++ b/cauldron/etc/x86_64/sys/sys.runtime
@@ -0,0 +1,50 @@
+bash
+binutils
+bzip2
+castfs
+coreutils
+cpio
+dialog
+diffutils
+e2fsprogs
+file
+findutils
+flex
+gawk
+gcc
+gettext
+glibc
+gmp
+gnupg
+grep
+gzip
+iana-etc
+init.d
+installwatch
+kbd
+kmod
+libidn
+libmpc
+libtool
+locale
+make
+mpfr
+nano
+ncurses
+patch
+perl
+procps
+readline
+sed
+shadow
+simpleinit-msb
+smgl-archspecs
+smgl-fhs
+sorcery-pubkeys
+tar
+tzdata
+unzip
+util-linux
+wget
+xz-utils
+zlib
diff --git a/cauldron/etc/x86_64/sys/sys.sources
b/cauldron/etc/x86_64/sys/sys.sources
new file mode 100644
index 0000000..e69de29
diff --git a/cauldron/lib/errorcodes b/cauldron/lib/errorcodes
index ccc4415..fa4eeca 100644
--- a/cauldron/lib/errorcodes
+++ b/cauldron/lib/errorcodes
@@ -21,12 +21,18 @@

# base error codes
liberror_add_error ERR_MK_DIR "could not make directory"
+liberror_add_error ERR_MK_FILE "could not create file"
+liberror_add_error ERR_WRITE_FILE "could not write file"
liberror_add_error ERR_DIR_EXISTS "directory already exists"
-liberror_add_error ERR_FILE_NOT_FOUND "requested file not found"
-liberror_add_error ERR_DIR_NOT_FOUND "requested directory not found"
+liberror_add_error ERR_FILE_ACCESS "file not accessible"
+liberror_add_error ERR_DIR_ACCESS "directory not accessible"
liberror_add_error ERR_CP_FILE "could not copy file"
liberror_add_error ERR_CHMOD_FILE "could not chmod file"
-liberror_add_error ERR_RM_FILES "could not remove files"
+liberror_add_error ERR_RM_FILE "could not remove file"
+liberror_add_error ERR_LINK_FILE "could not symlink file"
+liberror_add_error ERR_URL_DL "could not download from url"
+liberror_add_error ERR_TARGET "invalid target parameter"
+liberror_add_error ERR_OUTPUT "could not write output"

# libcauldron base
liberror_add_error ERR_LOAD_LIBRARY "problem loading library"
@@ -34,34 +40,47 @@ liberror_add_error ERR_CLEANUP_BUILD "could not clean up
build directory"
liberror_add_error ERR_CLEANUP_TMP "could not clean up temporary directory"

# libcauldron build
+liberror_add_error ERR_CAULDRON_ARCH \
+ "build architecture (config var CAULDRON_ARCH) not set"
liberror_add_error ERR_UNPACK_CACHE \
- "could not unpack spell cache inside build directory"
+ "could not unpack spell cache"
liberror_add_error ERR_RM_CACHE \
- "could not remove spell cache after unpacking in build"
+ "could not remove spell cache after unpacking"
liberror_add_error ERR_HOST_TRIPLE "could not get host triple for builds"
-liberror_add_error ERR_BUILD_SPOOL "build directory sorcery spool does not
exist"
-liberror_add_error ERR_RESOLV "resolv.conf missing in the build directory"
+liberror_add_error ERR_BUILD_SPOOL \
+ "build directory sorcery spool does not exist"
+liberror_add_error ERR_RESOLV "resolv.conf missing in target directory"
+liberror_add_error ERR_KERNEL "could not determine kernel"
+liberror_add_error ERR_LDCONFIG "could not build library symlinks"

# libcauldron cleaner files
liberror_add_error ERR_CLEAN_CLEANER "cleaner files could not be found"
-liberror_add_error ERR_CLEAN_DIR "failed to clean directory from iso"
-liberror_add_error ERR_CLEAN_FILE "failed to clean file from iso"
+liberror_add_error ERR_CLEAN_DIR "target dir to clean not found"
+liberror_add_error ERR_CLEAN_FILE "cleaner file not found"

# libcauldron enchantment
+liberror_add_error ERR_ENCHANT_SRC "could not access enchantment sources"
liberror_add_error ERR_ENCHANT_CONFIG "could not source enchant config"
-liberror_add_error ERR_INSTALLER_DIR \
- "could not create the iso installer directory"
-liberror_add_error ERR_COPY_INSTALLER "could not copy installer to iso"
-liberror_add_error ERR_LINK_INSTALLER "could not link installer in iso"
+liberror_add_error ERR_ENCHANT_ISO "could not enchant iso"
+liberror_add_error ERR_ENCHANT_DIR \
+ "could not create the iso enchantment directory"
+liberror_add_error ERR_COPY_ENCHANTER "could not copy enchanter to iso"
+liberror_add_error ERR_LINK_ENCHANTER "could not link enchanter in iso"

# libcauldron final product
-liberror_add_error ERR_ISO_PACKAGE "could not create final iso file"
-liberror_add_error ERR_ISO_COMPRESS "could not compress final iso file"
+liberror_add_error ERR_ISO_CREATE "could not create iso filesystem"
+liberror_add_error ERR_ISO_PACKAGE "could not create final iso image"
+liberror_add_error ERR_ISO_COMPRESS "could not compress final iso image"
+liberror_add_error ERR_ISO_COMPRESSFS \
+ "could not create compressed iso runtime image"
+liberror_add_error ERR_ISO_LOADER "could not set up iso bootloader"
+liberror_add_error ERR_SYS_CREATE "could not create sys filesystem"
liberror_add_error ERR_SYS_PACKAGE "could not package final sys file"
liberror_add_error ERR_SYS_COMPRESS "could not compress final sys archive"

# lib.chroot
-liberror_add_error ERR_CHROOT_UNDEF "chroot target is undefined"
+liberror_add_error ERR_CHROOT_INVALID "chroot target is undefined or invalid"
+liberror_add_error ERR_CHROOT_ISROOT "chroot target equals the host root fs"
liberror_add_error ERR_CHROOT_INIT "could not init chroot"
liberror_add_error ERR_CHROOT_DONE "could not close chroot"
liberror_add_error ERR_CHROOT_CURRENT "chroot not current or not defined"
@@ -79,6 +98,8 @@ liberror_add_error ERR_INIT_MAKE_RAMFS "could not build
initramfs"
liberror_add_error ERR_INIT_MAKE_RD "could not build initramdisk"
liberror_add_error ERR_INIT_MAKE_FS \
"could not make filesystem for initramfs/ramdisk"
+liberror_add_error ERR_INIT_DIRS \
+ "could not determine directories to add to initramfs/ramdisk"

# lib.sorcerous
liberror_add_error ERR_SORCEROUS_ARCHIVE \
@@ -92,13 +113,17 @@ liberror_add_error ERR_SORCEROUS_DOWNLOAD "could not
download sorcery"
liberror_add_error ERR_SORCEROUS_UNPACK \
"could not unpack a valid sorcery install"
liberror_add_error ERR_SORCEROUS_INSTALL \
- "could not install sorcery into build directory"
+ "could not install sorcery into target directory"
+liberror_add_error ERR_SORCEROUS_UNINSTALL \
+ "could not uninstall sorcery from target directory"
+liberror_add_error ERR_SORCERY_ARCH \
+ "sorcery architecture (CAULDRON_SORCERY_ARCH) not set"
+liberror_add_error ERR_SORCEROUS_DEFAULT_SETTINGS \
+ "could not configure sorcery with cauldron settings"
+liberror_add_error ERR_SORCEROUS_SPELL_CACHE \
+ "could not determine spell\'s cache file"

# lib.toolchain
-liberror_add_error ERR_TOOLCHAIN_CP_CACHE \
- "could not copy toolchain spell cache from host system into build
directory"
-liberror_add_error ERR_TOOLCHAIN_BUILD_CACHE \
- "could not build toolchain cache file from spell install info"
liberror_add_error ERR_TOOLCHAIN_STAGE1 \
"cross-toolchain stage 1 failed"
liberror_add_error ERR_TOOLCHAIN_STAGE2 \
@@ -109,18 +134,21 @@ liberror_add_error ERR_TOOLCHAIN_CAST \
"could not cast toolchain spell cache"
liberror_add_error ERR_TOOLCHAIN_DISPEL \
"could not dispel toolchain spell cache"
-liberror_add_error ERR_TOOLCHAIN_GATHER \
- "could not generate toolchain spell cache"
-liberror_add_error ERR_TOOLCHAIN_SORCERY \
- "sorcery not found in toolchain root"
-liberror_add_error ERR_TOOLCHAIN_RESURRECT \
- "could not resurrect spell using sorcery"
liberror_add_error ERR_TOOLCHAIN_COMPILER_TEST \
"could not compile a functioning binary using the chroot compiler"
liberror_add_error ERR_TOOLCHAIN_BASEROOT_TEST \
"the basesystem chroot failed the validity test"
liberror_add_error ERR_TOOLCHAIN_BASEROOT \
"could not acquire and set up a valid basesystem chroot"
+liberror_add_error ERR_TOOLCHAIN_KSRC "could not acquire kernel source"
+liberror_add_error ERR_TOOLCHAIN_SOURCES "could not acquire toolchain
sources"
+liberror_add_error ERR_TOOLCHAIN_UNPACK \
+ "could not unpack toolchain component sources"
+liberror_add_error ERR_TOOLCHAIN_CONFIGURE \
+ "could not configure toolchain component"
+liberror_add_error ERR_TOOLCHAIN_COMPONENT "could not build toolchain
component"
+liberror_add_error ERR_TOOLCHAIN_BUILD "could not build toolchain"
+liberror_add_error ERR_TOOLCHAIN_PATCH "could not patch toolchain grimoire"


#-------------------------------------------------------------------------------
##
diff --git a/cauldron/lib/lib.chroot b/cauldron/lib/lib.chroot
index 6102d5a..d499c92 100644
--- a/cauldron/lib/lib.chroot
+++ b/cauldron/lib/lib.chroot
@@ -19,39 +19,49 @@
LIBCHROOT_PATHS=()
LIBCHROOT_USERS=()

+# guarantee that CAULDRON_NULL is defined
+: "${CAULDRON_NULL:=/dev/null}"
+# guarantee that CAULDRON_STDOUT is defined
+: "${CAULDRON_STDOUT:=/dev/stdout}"
+
+# set LC_COLLATE to C so we don't get affected by the user's locale
+# when grepping, sorting, etc.
+export LC_COLLATE="C"
+

#-------------------------------------------------------------------------------
## @param target dir to chroot into (optional)
-## @param target sorcery config (optional)
-## @param target sorcery local config (optional)
##
## Prepares a chroot environment and exports necessary variables. For every
## target dir to chroot into, there should be one
## [cauldron_chroot_init ... cauldron_chroot_done] pair.
##
-## If supplied, the second and third parameters should be file paths to the
-## sorcery config and local config inside the chroot target (the first
-## parameter). They will default to etc/sorcery/config and
-## etc/sorcery/local/config relative to the chroot target, respectively.
-##

#-------------------------------------------------------------------------------
function cauldron_chroot_init() {
local target="${1:-$CAULDRON_BUILD}"
local num="${#LIBCHROOT_PATHS[@]}"
- local sconfig="${2:-$target/etc/sorcery/config}"
- local slconfig="${3:-$target/etc/sorcery/local/config}"
+ local bind=

- # if target is somehow null, return an error
- if [[ -z "$target" ]]
- then
- return $ERR_CHROOT_UNDEF
- fi
+ # ensure a direct and absolute path
+ target=$("${CAULDRON_CMD_READLINK[@]}" "$target") ||
+ return $ERR_CHROOT_INVALID
+
+ # if target is either null or not a valid directory, return an error
+ [[ -d "$target" ]] || return $ERR_CHROOT_INVALID
+
+ # if target matches the root directory, return an error
+ [[ "$target" == "/" ]] && return $ERR_CHROOT_ISROOT

# test if the target path is already loaded as a chroot -- if it is, just
- # increase the count, but if it isn't do the bind mounts and set up the
- # counts
- if $(echo "${LIBCHROOT_PATHS[@]}" | grep -q "$target")
+ # increase the count, but if it isn't mount subtrees and increment the path
+ # and user counts
+ local already_loaded=0
+ for p in "${LIBCHROOT_PATHS[@]}"
+ do
+ [[ "$p" == "$target" ]] && already_loaded=1
+ done
+ if [[ "$already_loaded" -eq 1 ]]
then
- for((path=0; path < num; path++))
+ for ((path=0; path < num; path++))
do
if [[ "$target" == "${LIBCHROOT_PATHS[path]}" ]]
then
@@ -59,14 +69,23 @@ function cauldron_chroot_init() {
fi
done
else
- # bind the needed mounts in order
- for bind in dev dev/pts proc
+ # bind mount the dev tree
+ for bind in dev dev/pts
do
"${CAULDRON_CMD_MOUNT_BIND[@]}" \
"$CAULDRON_HOST/$bind" \
"$target/$bind" ||
return $ERR_CHROOT_INIT
done
+ # mount procfs
+ "${CAULDRON_CMD_MOUNT[@]}" -t proc proc "$target/proc" ||
+ return $ERR_CHROOT_INIT
+ # mount sysfs
+ "${CAULDRON_CMD_MOUNT[@]}" -t sysfs sys "$target/sys" ||
+ return $ERR_CHROOT_INIT
+ # mount runfs
+ "${CAULDRON_CMD_MOUNT[@]}" -t tmpfs run "$target/run" ||
+ return $ERR_CHROOT_INIT

# add the target path to the list of chrooted paths
LIBCHROOT_PATHS[num]="$target"
@@ -76,18 +95,9 @@ function cauldron_chroot_init() {

# test if the target path matches the currently defined chroot command
target
# path -- if it doesn't, we need to set the chroot command
- if [[ "${#CAULDRON_CHROOT[@]}" -eq 0 ||
- "$target" == "${CAULDRON_CHROOT[${#CAULDRON_CHROOT[*]}-1]}" ]]
+ if [[ "$num" -eq 0 ||
+ "$target" == "${CAULDRON_CHROOT[${num}-1]}" ]]
then
- # make sure the sorcerous library is loaded
- # which provides cauldron_source_sorcery
- if ! type -t cauldron_source_sorcery > "$CAULDRON_NULL"
- then
- cauldron_load_library lib.sorcerous
- fi
- # source the target sorcery, so we have access to its functions
- cauldron_sorcerous_load $sconfig $slconfig || return
$ERR_SORCEROUS_TARGET
-
# everything went OK, so export the chroot definitions
CAULDRON_CHROOT=( "${CAULDRON_CMD_CHROOT[@]}" "$target" )
fi
@@ -96,7 +106,7 @@ function cauldron_chroot_init() {
}


#-------------------------------------------------------------------------------
-## @param target dir to chroot into
+## @param target chroot dir
##
## Cleans up the chroot environment after it is no longer needed.
##
@@ -105,11 +115,11 @@ function cauldron_chroot_done() {
local target="${1:-$CAULDRON_BUILD}"
local index=""

- # if target is somehow null, return an error
- if [[ -z "$target" ]]
- then
- return $ERR_CHROOT_UNDEF
- fi
+ # ensure an existing absolute path
+ target=$("${CAULDRON_CMD_READLINK[@]}" "$target") || return $ERR_TARGET
+
+ # if target doesn't point to a valid directory, return an error
+ [[ -d "$target" ]] || return $ERR_CHROOT_INVALID

for ((index=0; index < "${#LIBCHROOT_PATHS[@]}"; index++))
do
@@ -121,11 +131,9 @@ function cauldron_chroot_done() {
then
LIBCHROOT_USERS[index]=$((LIBCHROOT_USERS[index]-1))
else
- # unmount the bind mounts
- for bind in proc dev/pts dev
- do
- "${CAULDRON_CMD_UNMOUNT[@]}" "$target/$bind" || return
$ERR_CHROOT_DONE
- done
+ # unmount the chroot mount points
+ "${CAULDRON_CMD_UNMOUNT_RECURSIVE[@]}" "$target"/* ||
+ return $ERR_CHROOT_DONE

# clear the chroot definitions
unset CAULDRON_CHROOT
@@ -139,6 +147,30 @@ function cauldron_chroot_done() {
}


#-------------------------------------------------------------------------------
+##
+## Forcefully cleans up all known chroot paths
+## ONLY TO BE USED BEFORE A FORCED EXIT DUE TO NON-RECOVERABLE ERROR
CONDITIONS
+##
+#-------------------------------------------------------------------------------
+function cauldron_chroot_cleanup() {
+ local target=
+
+ for target in "${LIBCHROOT_PATHS[@]}"
+ do
+ # unmount the chroot mount points
+ "${CAULDRON_CMD_UNMOUNT_RECURSIVE[@]}" "$target"/* ||
+ return $ERR_CHROOT_DONE
+ done
+
+ # clear the chroot definitions
+ unset LIBCHROOT_USERS
+ unset LIBCHROOT_PATHS
+ unset CAULDRON_CHROOT
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
## @param -q [quiet -- don't output anything, just test] (optional)
## @param chroot path (optional)
##
@@ -149,7 +181,7 @@ function cauldron_chroot_done() {
##

#-------------------------------------------------------------------------------
function cauldron_chroot_current() {
- local num="${#CAULDRON_CHROOT[*]}"
+ local num="${#LIBCHROOT_PATHS[*]}"
local current=""
local target=""
local match=0
@@ -166,72 +198,74 @@ function cauldron_chroot_current() {
# use the correct index into the array (indexing starts from 0, but count
of
# elements starts from 1)
[[ "$num" -gt 0 ]] && ((num--))
- current="${CAULDRON_CHROOT[num]}"
+ current="${LIBCHROOT_PATHS[num]}"

# if there is no current chroot, then return immediately (no sense testing
if
# anything matches the currently defined chroot when there is none)
[[ -z "$current" ]] && return $ERR_CHROOT_CURRENT

- # make sure that the chroot is also present in LIBCHROOT_PATHS and
- # LIBCHROOT_USERS
- for ((index=0; index < "${#LIBCHROOT_PATHS[@]}"; index++))
- do
- if [[ "$current" == "${LIBCHROOT_PATHS[index]}" ]]
- then
- if [[ "${LIBCHROOT_USERS[index]}" -ge 1 ]]
- then
- match=1
- fi
- fi
- done
-
- # if the currently defined chroot doesn't match a loaded chroot in
- # LIBCHROOT_PATHS and LIBCHROOT_USERS, then there is something wrong and
the
- # chroot should probably be reloaded
- [[ "$match" -eq 0 ]] && return $ERR_CHROOT_CURRENT
+ # ensure that the chroot is also present in LIBCHROOT_USERS
+ # if it is not present in LIBCHROOT_USERS, then there is something wrong
and
+ # the chroot should probably be reloaded
+ [[ "${LIBCHROOT_USERS[num]}" -ge 1 ]] || return $ERR_CHROOT_CURRENT

if [[ -n "$target" ]]
then
# test if the target path doesn't match the currently defined chroot
command
- # target path -- if it does match, then we can just do nothing till the
end
- # of the function where we return ERR_OK; if it doesn't match, return
error
- # here
- if [[ "$target" != "$current" ]]
- then
- # the target chroot doesn't match the current chroot
- return $ERR_CHROOT_CURRENT
- fi
- else
- # output the currently loaded chroot
- echo "$current"
+ # target path -- if it doesn't match, return an error
+ [[ "$target" != "$current" ]] && return $ERR_CHROOT_CURRENT
fi

+ # output the current chroot path if not quieted
+ [[ "$quiet" -ne 1 ]] && echo "$current"
+
return $ERR_OK
}


#-------------------------------------------------------------------------------
+## @param -q (optional)
+## @param -s (optional)
## @param command plus args to execute inside the chroot
##
## Executes the command given as the first parameter and any args that follow
-## inside the cauldron chroot defined by cauldron_chroot_init.
+## inside the chroot constructed by enchant_chroot_init. If the -q flag is
+## passed, the command will be "quieted", meaning that messages from
enchantment
+## will be disabled. If the -s flag is passed, the command will run silently,
+## where even the normal output of the chrooted command will be suppressed.
The
+## outupt follows the general pattern of configurable output, meaning that
+## ENCHANT_NULL and ENCHANT_STDOUT will be used as the targets.
##

#-------------------------------------------------------------------------------
function cauldron_chroot() {
- if cauldron_chroot_current -q
- then
- "${CAULDRON_CHROOT[@]}" $* || return $ERR_CHROOT_EXEC
- else
- return $ERR_CHROOT_CURRENT
- fi
+ local stdout="$CAULDRON_STDOUT"
+
+ case "$1" in
+ -q )
+ verbose="no"
+ shift
+ ;;
+ -s )
+ verbose="no"
+ stdout="$CAULDRON_NULL"
+ shift
+ ;;
+ esac
+
+ cauldron_chroot_current -q || return $ERR_CHROOT_CURRENT
+
+ cauldron_verbose "${CAULDRON_CHROOT[@]} $@"
+
+ PATH="/sbin:/bin:/usr/sbin:/usr/bin"
+ "${CAULDRON_CHROOT[@]}" "$@" &> "$stdout" || return $ERR_CHROOT_EXEC

return $ERR_OK
}


#-------------------------------------------------------------------------------
-## @param target_spells
+## @param target spells to cast
##
## Performs cast on the list of spells needed for installation to the target
-## system. "target_spells" can either be a list of spells passed as
arguments or
+## system. "target spells" can either be a list of spells passed as
arguments or
## a file which contains such a list. The members of the spell list can be
## separated by anything IFS will recognize (typically any whitespace).
##
@@ -255,42 +289,54 @@ function cauldron_chroot_cast() {
}


#-------------------------------------------------------------------------------
-## @param target_spells
+## @param target spells to dispel
##
## Performs dispel on the list of spells needed for installation to the
target
-## system. "target_spells" can either be a list of spells passed as
arguments or
+## system. "target spells" can either be a list of spells passed as
arguments or
## a file which contains such a list. The members of the spell list can be
## separated by anything IFS will recognize (typically any whitespace).
##

#-------------------------------------------------------------------------------
function cauldron_chroot_dispel() {
local target_spells=( "$@" )
+ local sustained="$CAULDRON_BUILD/var/lib/sorcery/sustained"
local spell=""

# if a file that lists spells to cast is passed in, get the list of spells
# from the file
[[ -f "$target_spells" ]] && target_spells=( $(< "$target_spells") )

+ # don't attempt to dispel any spells that are sustained
+ for ((i=0; i < ${#target_spells[@]}; i++))
+ do
+ grep -q "${target_spells[i]}" "$sustained" &&
+ target_spells[i]=""
+ done
+
# make sure we have a valid chroot of where we will cast
- [[ -z "$CAULDRON_CHROOT" ]] && return $ERR_CHROOT_INIT
+ cauldron_chroot_init
+ liberror_check || return $?

# dispel all the spells in the list in one shot for better efficiency
cauldron_chroot "${CAULDRON_CMD_DISPEL[@]}" "${target_spells[@]}" ||
return $ERR_CHROOT_DISPEL

+ cauldron_chroot_done
+ liberror_check || return $?
+
return $ERR_OK
}


#-------------------------------------------------------------------------------
## @param target_spells
##
-## Performs cast and immediate dispel on the each spell in the list of spells
-## to ensure that each spell is cast "cleanly" (meaning that no idle
-## dependencies are laying about in the build tree to get inadvertently
picked
-## up by arguably broken spell builds). "target_spells" can either be a list
of
-## spells passed as arguments or a file which contains such a list. The
members
-## of the spell list can be separated by anything IFS will recognize
(typically
-## any whitespace).
+## Performs cast and immediate dispel on each spell in the list of spells to
+## ensure that each spell is cast "cleanly" (meaning that no idle
dependencies
+## are laying about in the build tree to get inadvertently picked up by
arguably
+## broken spell builds). "target_spells" can either be a list of spells
passed
+## as arguments or a file which contains such a list. The members of the
spell
+## list can be separated by anything IFS will recognize (typically any
+## whitespace).
##

#-------------------------------------------------------------------------------
function cauldron_chroot_cast_clean() {
@@ -301,16 +347,6 @@ function cauldron_chroot_cast_clean() {
# from the file
[[ -f "$target_spells" ]] && target_spells=( $(< "$target_spells") )

- # Since we will be installing from the running ISO system instead of a
giant
- # tarball, for each spell we only need to make sure that the cache file is
- # available. This will require that the ISO sorcery has caching enabled.
The
- # caching should really be turned on from the very beginning though...
- if [[ -z "$ARCHIVE" ]]
- then
- cauldron_sorcerous_load || return $ERR_SORCEROUS_TARGET
- fi
- [[ "$ARCHIVE" == "off" ]] && return $ERR_SORCEROUS_ARCHIVE
-
# make sure we have a valid chroot of where we will cast
[[ -z "$CAULDRON_CHROOT" ]] && return $ERR_CHROOT_INIT

diff --git a/cauldron/lib/lib.init b/cauldron/lib/lib.init
index 888d23e..fa9c2fc 100644
--- a/cauldron/lib/lib.init
+++ b/cauldron/lib/lib.init
@@ -18,24 +18,6 @@

#-------------------------------------------------------------------------------


#-------------------------------------------------------------------------------
-##
-## Handles setting up the init process on the ISO. The ISO init is
-## responsible for detecting hardware, loading device drivers, setting
-## console fonts, etc.
-##
-#-------------------------------------------------------------------------------
-function cauldron_init_setup() {
- mkdir -p "$CAULDRON_ISO/etc" || return $ERR_MK_DIR
-
- "${CAULDRON_CMD_CP_PRESERVE[@]}" \
- "$CAULDRON_DATA/$CAULDRON_ARCH/inittab" \
- "$CAULDRON_ISO/etc/inittab" ||
- return $ERR_CP_FILE
-
- return $ERR_OK
-}
-
-#-------------------------------------------------------------------------------
## @param init ramdisk/ramfs image (required)
##
## Copies the image passed as first parameter into the ISO run-time
filesystem
@@ -44,10 +26,11 @@ function cauldron_init_setup() {

#-------------------------------------------------------------------------------
function cauldron_init_img_install() {
local img="$1"
+ local target="$CAULDRON_ISO/boot"

- "${CAULDRON_CMD_MKDIR[@]}" "$CAULDRON_ISO/boot" || return $ERR_MK_DIR
+ "${CAULDRON_CMD_MKDIR[@]}" "$target" || return $ERR_MK_DIR

- "${CAULDRON_CMD_CP[@]}" "$img" "$CAULDRON_ISO/boot/$img" ||
+ "${CAULDRON_CMD_CP[@]}" "$img" "$target/${img##*/}" ||
return $ERR_CP_FILE

return $ERR_OK
@@ -58,7 +41,7 @@ function cauldron_init_img_install() {
## Makes the initrd to be used by the ISO on booting.
##

#-------------------------------------------------------------------------------
-function cauldron_init_make_ramdisk() {
+function cauldron_init_ramdisk_make() {
local initrd="$CAULDRON_TMP/initrd"
local initmnt="$CAULDRON_TMP/initrd_mount"

@@ -90,7 +73,7 @@ function cauldron_init_make_ramdisk() {
## Installs the init ramdisk to be used by the ISO on booting.
##

#-------------------------------------------------------------------------------
-function cauldron_init_install_ramdisk() {
+function cauldron_init_ramdisk_install() {
local ramdisk="$CAULDRON_TMP/initrd.gz"

cauldron_init_img_install "$ramdisk" || return $ERR_INIT_INSTALL_RD
@@ -103,13 +86,14 @@ function cauldron_init_install_ramdisk() {
## Makes the initramfs be used by the ISO on booting.
##

#-------------------------------------------------------------------------------
-function cauldron_init_make_ramfs() {
- local ramdir="$CAULDRON_TMP/initram"
- local ramfs="$CAULDRON_TMP/initram.cpio.gz"
+function cauldron_init_ramfs_make() {
+ local ramdir="$CAULDRON_TMP/initfs"
+ local ramfs="$CAULDRON_TMP/initfs.gz"

"${CAULDRON_CMD_MKDIR[@]}" "$ramdir" || return $ERR_MK_DIR

- cauldron_init_fs_make "$ramdir" || return $ERR_INIT_MAKE_FS
+ cauldron_init_fs_make "$ramdir"
+ liberror_check || return $ERR_INIT_MAKE_FS

(
cd "$ramdir"
@@ -125,96 +109,188 @@ function cauldron_init_make_ramfs() {
## Installs the init ramfs to be used by the ISO on booting.
##

#-------------------------------------------------------------------------------
-function cauldron_init_install_ramfs() {
- local ramfs="$CAULDRON_TMP/initram.cpio.gz"
+function cauldron_init_ramfs_install() {
+ local ramfs="$CAULDRON_TMP/initfs.gz"

- cauldron_init_img_install "$ramfs" || return $ERR_INIT_INSTALL_RAMFS
+ cauldron_init_img_install "$ramfs"
+ liberror_check || return $ERR_INIT_INSTALL_RAMFS

return $ERR_OK
}


#-------------------------------------------------------------------------------
## @param path_to_initfs (required)
+## @param list of directories (optional)
##
-## Sets up the basic directories that will be needed on the initfs
+## Sets up the basic directories that will be needed on the initfs. If the
list
+## of directories aren't passed in as function parameters, the list defaults
to
+## that found in the config file CAULDRON_CONFIG/CAULDRON_ARCH/initfs/dirs.
##

#-------------------------------------------------------------------------------
function cauldron_init_fs_dirs() {
local initfs="$1"
- local list="$CAULDRON_DATA/$CAULDRON_ARCH/initfs/dirs"
+ local file="$CAULDRON_CONFIG/$CAULDRON_ARCH/initfs/dirs"
+ local list=
+
+ [[ -d "$initfs" ]] || return $ERR_TARGET
+ shift

- if [[ -f "$list" ]]
+ if [[ $# -ge 1 ]]
then
- for dir in $("${CAULDRON_CMD_CAT[@]}" "$list")
- do
- "${CAULDRON_CMD_MKDIR[@]}" "$initfs/$dir" || return $ERR_MK_DIR
- done
+ list=( "$@" )
+ else
+ [[ -f "$file" ]] && list=( $(< "$file") )
fi
+ [[ -n "$list" ]] || return $ERR_INIT_DIRS
+
+
+ for dir in "${list[@]}"
+ do
+ "${CAULDRON_CMD_MKDIR[@]}" "$initfs/$dir" ||
+ return $ERR_MK_DIR
+ done

return $ERR_OK
}


#-------------------------------------------------------------------------------
## @param path_to_initfs (required)
+## @param list of binaries (optional)
##
-## Gathers and copies the necessary binaries into the initfs
+## Gathers and copies the necessary binaries into the initfs. If the list of
+## binaries aren't passed in as function parameters, the list defaults to
that
+## found in the config file CAULDRON_CONFIG/CAULDRON_ARCH/initfs/binaries.
##

#-------------------------------------------------------------------------------
function cauldron_init_fs_bins() {
local initfs="$1"
- local list="$CAULDRON_DATA/$CAULDRON_ARCH/initfs/binaries"
+ local file="$CAULDRON_CONFIG/$CAULDRON_ARCH/initfs/binaries"
+ local list=

- if [[ -f "$list" ]]
+ [[ -d "$initfs" ]] || return $ERR_TARGET
+ shift
+
+ if [[ $# -ge 1 ]]
then
- for bin in $("${CAULDRON_CMD_CAT[@]}" "$list")
- do
- "${CAULDRON_CMD_CP[@]}" "$bin" "$initfs/bin" || return $ERR_CP_FILE
- done
+ list=( "$@" )
+ else
+ [[ -f "$file" ]] && list=( $(< "$file") )
fi

+ for bin in "${list[@]}"
+ do
+ "${CAULDRON_CMD_CP[@]}" "$CAULDRON_BUILD/$bin" "$initfs/bin/" ||
+ return $ERR_CP_FILE
+ "${CAULDRON_CMD_CHMOD[@]}" 0755 "$initfs/bin/$bin" ||
+ return $ERR_CHMOD_FILE
+ done
+
return $ERR_OK
}


#-------------------------------------------------------------------------------
## @param path_to_initfs (required)
+## @param list of libraries (optional)
##
-## Gathers and copies the necessary libraries into the initfs
+## Gathers and copies the necessary libraries into the initfs. If the list of
+## libraries aren't passed in as function parameters, the list defaults to
that
+## found in the config file CAULDRON_CONFIG/CAULDRON_ARCH/initfs/libs.
##

#-------------------------------------------------------------------------------
function cauldron_init_fs_libs() {
local initfs="$1"
- local list="$CAULDRON_DATA/$CAULDRON_ARCH/initfs/libs"
+ local file="$CAULDRON_CONFIG/$CAULDRON_ARCH/initfs/libs"
+ local list=
+
+ [[ -d "$initfs" ]] || return $ERR_TARGET
+ shift

- if [[ -f "$list" ]]
+ if [[ $# -ge 1 ]]
then
- for lib in $("${CAULDRON_CMD_CAT[@]}" "$list")
- do
- "${CAULDRON_CMD_CP[@]}" "$lib" "$initfs/lib/" || return $ERR_CP_FILE
- done
+ list=( "$@" )
+ else
+ [[ -f "$file" ]] && list=( $(< "$file") )
fi

+ for lib in "${list[@]}"
+ do
+ "${CAULDRON_CMD_CP[@]}" "$CAULDRON_BUILD/$lib" "$initfs/lib/" ||
+ return $ERR_CP_FILE
+ "${CAULDRON_CMD_CHMOD[@]}" 0644 "$initfs/lib/$lib" ||
+ return $ERR_CHMOD_FILE
+ done
+
return $ERR_OK
}


#-------------------------------------------------------------------------------
## @param path_to_initfs (required)
+## @param list of libraries (optional)
##
-## Copies over any required kernel modules into the initfs
+## Copies over any required kernel modules into the initfs. If the list of
+## modules aren't passed in as function parameters, the list defaults to that
+## found in the config file CAULDRON_CONFIG/CAULDRON_ARCH/initfs/modules.
##

#-------------------------------------------------------------------------------
function cauldron_init_fs_mods() {
local initfs="$1"
- local list="$CAULDRON_DATA/$CAULDRON_ARCH/initfs/modules"
+ local iso="$CAULDRON_ISO"
+ local file="$CAULDRON_CONFIG/$CAULDRON_ARCH/initfs/modules"
+ local modpath="lib/modules/$CAULDRON_KERNEL_VERS"
+ local list=
+
+ # alter the target if a compressed fs is desired
+ [[ "$CAULDRON_ISO_SQUASH" == "yes" ]] &&
+ iso="$CAULDRON_ISO_SQUASHFS"
+
+ [[ -d "$initfs" ]] || return $ERR_TARGET
+ [[ -d "$iso" ]] || return $ERR_DIR_ACCESS
+ shift
+
+ if [[ $# -ge 1 ]]
+ then
+ list=( "$@" )
+ else
+ [[ -f "$file" ]] && list=( $(< "$file") )
+ fi

- if [[ -f "$list" ]]
+ # adding extra modules to the initfs is optional, so make sure the user
wants
+ # to add something
+ if [[ -n "$list" ]]
then
- for module in $("${CAULDRON_CMD_CAT[@]}" "$list")
+ # make sure the module path exists in the initfs
+ "${CAULDRON_CMD_MKDIR[@]}" "$initfs/$modpath"
+
+ cauldron_verbose "Copying kernel modules to initfs..."
+
+ # copy all desired modules
+ for module in "${list[@]}"
do
- "${CAULDRON_CMD_CP[@]}" \
- "$module" \
- "$initfs/lib/modules/$CAULDRON_KVERS" ||
+ path="$initfs/$modpath/kernel/${module%/*}"
+
+ "${CAULDRON_CMD_MKDIR[@]}" "$path"
+
+ "${CAULDRON_CMD_CP_RECURSE[@]}" \
+ "$iso/$modpath/kernel/$module" \
+ "$path/" ||
return $ERR_CP_FILE
done
+
+ cauldron_verbose "Copying kernel modules.dep and related files"\
+ "to initfs..."
+
+ # copy modules.dep, modules.alias, etc. from the source modules dir
+ # files only (no hierarchies)
+ for file in "$iso/$modpath/"*
+ do
+ if [[ -f "$file" ]]
+ then
+ "${CAULDRON_CMD_MKDIR[@]}" "$initfs/$modpath" ||
+ return $ERR_MK_DIR
+ "${CAULDRON_CMD_CP[@]}" "$file" "$initfs/$modpath/" ||
+ return $ERR_CP_FILE
+ fi
+ done
fi

return $ERR_OK
@@ -222,13 +298,21 @@ function cauldron_init_fs_mods() {


#-------------------------------------------------------------------------------
## @param path_to_initfs (required)
+## @param init script (optional)
##
## Sets up the "init" in the initfs (AKA linuxrc in ramdisks)
##

#-------------------------------------------------------------------------------
function cauldron_init_fs_init() {
local initfs="$1"
- local init_script="$CAULDRON_DATA/$CAULDRON_ARCH/initfs/init"
+ local init_script="${2:-$CAULDRON_CONFIG/$CAULDRON_ARCH/initfs/init}"
+ local isoid="/etc/enchantment/enchantment.conf"
+ local isofs=""
+
+ [[ -d "$initfs" ]] || return $ERR_TARGET
+ shift
+
+ [[ -r "$init_script" ]] || return $ERR_FILE_ACCESS

# copy the init script to /init in the init filesystem, because /init is
# *requried* by init ramfs and an init ramdisk can be configured to use
@@ -239,6 +323,20 @@ function cauldron_init_fs_init() {
# make sure the init script is executable
"${CAULDRON_CMD_CHMOD}" 0755 "$initfs/init" || return $ERR_CHMOD_FILE

+ # modify the SMGL_ISOFS and SMGL_ID to match defined variables
+ "${CAULDRON_CMD_SEDFILE[@]}" \
+ "s,^SMGL_ID=.*,SMGL_ID=\"$isoid\"," \
+ "$initfs/init" ||
+ return $ERR_WRITE_FILE
+
+ [[ "$CAULDRON_ISO_SQUASH" == "yes" ]] &&
+ isofs="${CAULDRON_ISO_SQUASHIMG##*/}"
+
+ "${CAULDRON_CMD_SEDFILE[@]}" \
+ "s,^SMGL_ISOFS=.*,SMGL_ISOFS=\"$isofs\"," \
+ "$initfs/init" ||
+ return $ERR_WRITE_FILE
+
return $ERR_OK
}

@@ -246,38 +344,50 @@ function cauldron_init_fs_init() {
## @param path_to_initfs (required)
## @param path to build directory (optional)
##
-## Builds busybox for use in the initramfs using a preconfigured config file
for
-## the build. It builds by casting in the build chroot, copies the resulting
-## busybox binary, and then dispels the busybox spell in the chroot to clean
up.
+## Builds sysutils (e.g. busybox) for use in the initramfs using a
preconfigured
+## config file for the build. It builds by casting in the build chroot,
copies
+## the resulting sysutils binary, and then dispels in the chroot to clean up.
##

#-------------------------------------------------------------------------------
-function cauldron_init_fs_busybox() {
+function cauldron_init_fs_sysutils() {
local initfs="$1"
local build="${2:-$CAULDRON_BUILD}"
- local bbconf="$CAULDRON_DATA/$CAULDRON_ARCH/initfs/busybox.config"
+ local util="$CAULDRON_SYSUTILS"
+ local utilconf="$CAULDRON_SYSUTILS_CONF"
+ local sorcery="etc/sorcery/local"
+
+ [[ -d "$initfs" ]] || return $ERR_TARGET
+ shift

if [[ ! -d "$build" ]]
then
mkdir -p "$build" || return $ERR_MK_DIR
fi

- "${CAULDRON_CMD_MKDIR[@]}" "$build/etc/sorcery/local" || return $ERR_MK_DIR
+ "${CAULDRON_CMD_MKDIR[@]}" "$build/$sorcery" || return $ERR_MK_DIR

"${CAULDRON_CMD_CP_FORCE[@]}" \
- "$bbconf" \
- "$build/etc/sorcery/local/busybox.config" ||
+ "$utilconf" \
+ "$build/$sorcery/${util}.config" ||
return $ERR_CP_FILE

- cauldron_chroot_init "$build" || return $ERR_CHROOT_INIT
+ cauldron_chroot_init "$build"
+ liberror_check || return $?

- cauldron_chroot_cast "busybox" || return $ERR_CHROOT_CAST
+ cauldron_chroot_cast "$util"
+ liberror_check || return $?

- "${CAULDRON_CMD_CP[@]}" "$build/sbin/busybox" "$initfs/sbin/busybox" ||
+ "${CAULDRON_CMD_CP[@]}" "$build/sbin/$util" "$initfs/sbin/$util" ||
return $ERR_CP_FILE

- cauldron_chroot_dispel "busybox" || return $ERR_CHROOT_DISPEL
+ "${CAULDRON_CMD_SYMLINK_FORCE[@]}" "/sbin/$util" "$initfs/bin/sh" ||
+ return $ERR_LINK_FILE

- cauldorn_chroot_done "$build" || return $ERR_CHROOT_DONE
+ cauldron_chroot_dispel "$util"
+ liberror_check || return $?
+
+ cauldron_chroot_done "$build"
+ liberror_check || return $?

return $ERR_OK
}
@@ -292,16 +402,24 @@ function cauldron_init_fs_busybox() {
function cauldron_init_fs_make() {
local initfs="$1"

- [[ -d "$initfs" ]] || return $ERR_DIR_NOT_FOUND
-
- cauldron_init_fs_busybox "$initfs" &&
- cauldron_init_fs_dirs "$initfs" &&
- cauldron_init_fs_bins "$initfs" &&
- cauldron_init_fs_libs "$initfs" &&
- cauldron_init_fs_mods "$initfs" &&
+ [[ -d "$initfs" ]] || return $ERR_DIR_ACCESS
+
+ cauldron_init_fs_dirs "$initfs"
+ liberror_check || return $ERR_INIT_MAKE_FS
+ cauldron_init_fs_sysutils "$initfs"
+ liberror_check || return $ERR_INIT_MAKE_FS
+ cauldron_init_fs_bins "$initfs"
+ liberror_check || return $ERR_INIT_MAKE_FS
+ cauldron_init_fs_libs "$initfs"
+ liberror_check || return $ERR_INIT_MAKE_FS
+ cauldron_init_fs_mods "$initfs"
+ liberror_check || return $ERR_INIT_MAKE_FS
cauldron_init_fs_init "$initfs"
+ liberror_check || return $ERR_INIT_MAKE_FS

- [[ "$?" -gt 0 ]] && return $ERR_INIT_MAKE_FS
+ # create an empty var/log/dmesg in the initfs so dmesg will function
properly
+ "${CAULDRON_CMD_CAT[@]}" /dev/null > "$initfs/var/log/dmesg" ||
+ return $ERR_WRITE_FILE

return $ERR_OK
}
diff --git a/cauldron/lib/lib.sorcerous b/cauldron/lib/lib.sorcerous
index a8af267..d1793ba 100644
--- a/cauldron/lib/lib.sorcerous
+++ b/cauldron/lib/lib.sorcerous
@@ -15,6 +15,13 @@
##

#-------------------------------------------------------------------------------

+# guarantee that CAULDRON_NULL is defined
+: "${CAULDRON_NULL:=/dev/null}"
+
+# set LC_COLLATE to C so we (including the loaded sorcery) don't get
affected by
+# the user's locale when grepping, sorting, etc.
+export LC_COLLATE="C"
+

#-------------------------------------------------------------------------------
## @param path to the sorcery config to load
##
@@ -30,8 +37,9 @@
##

#-------------------------------------------------------------------------------
function cauldron_sorcerous_load() {
- local config="${1:-$CAULDRON_ISORCERY_CONFIG}"
- local local_config="${2:-$CAULDRON_ISORCERY_LCONFIG}"
+ local target="${1:-$CAULDRON_BUILD}"
+ local config="$target/etc/sorcery/config"
+ local local_config="$target/etc/sorcery/local/config"

# source the main config file
source "$config" || return $ERR_SORCEROUS_TARGET
@@ -63,7 +71,7 @@ function cauldron_sorcerous_cross_configure() {
local hostarch="$CAULDRON_HOST_ARCH"
local arch="$CAULDRON_ARCH"

- if [[ -z modify_config ]]
+ if ! declare -lF modify_config
then
. "$CAULDRON_HSORCERY_LIBS/libtrack" 2> $CAULDRON_NULL ||
liberror_die $ERR_SORCEROUS_HOST
@@ -99,7 +107,8 @@ function cauldron_sorcerous_cross_configure() {

#-------------------------------------------------------------------------------
function cauldron_sorcerous_download() {
local spool="${1:-$CAULDRON_BUILD/var/spool/sorcery}"
- local sorcery_url="${CAULDRON_SORCERY_URL}"
+ local sorcery="$CAULDRON_SORCERY_PKG"
+ local sorcery_url="$CAULDRON_SORCERY_URL"
local url_get=( "${CAULDRON_CMD_URL_DL[@]}" )

# ensure the spool dir exists for getting spell sources
@@ -109,45 +118,437 @@ function cauldron_sorcerous_download() {
# then get the source tarball and place it in CAULDRON_BUILD
if [[ ! -e "$spool/$sorcery" || "$CAULDRON_FORCE_DOWNLOAD" == "yes" ]]
then
+ # make sure any existing file is removed
+ "${CAULDRON_CMD_RM_FORCE[@]}" "$spool/$sorcery"
+
# run in a subshell as an easy way of not messing with the working
directory
(
cd "$spool"
"${url_get[@]}" "$sorcery_url" ||
return $ERR_SORCEROUS_DOWNLOAD
)
- fi &&
+ fi

return $ERR_OK
}


#-------------------------------------------------------------------------------
-## @param spool_path
+## @param chroot_path (optional)
+## @param spool_path (optional: relative to chroot_path)
##
-## Installs sorcery into the build directory. The download_path parameter
-## (optional) indicates where the sorcery source tarball to install from is
-## stored. If spool_path is not supplied, the tarball is assumed to be in
-## the CAULDRON_BUILD/var/spool/sorcery directory.
+## Installs sorcery into the given chroot directory. If the chroot_path
+## parameter is not specified, it defaults to CAULDRON_BUILD. The spool_path
+## parameter (optional) indicates where the sorcery source tarball to install
+## from is stored. If spool_path is not supplied, it defaults to
+## /var/spool/sorcery.
##

#-------------------------------------------------------------------------------
function cauldron_sorcerous_install() {
- local spool="${1:-$CAULDRON_BUILD/var/spool/sorcery}"
+ local target="${1:-$CAULDRON_BUILD}"
+ local spool="${2:-/var/spool/sorcery}"
local sorcery="$CAULDRON_SORCERY_PKG"

+ [[ -d "$target/${spool#/}" ]] || return $ERR_SORCEROUS_INSTALL
+
# unpack the source tarball
- "${CAULDRON_CMD_UNPACK_SORCERY[@]}" "$spool/$sorcery" ||
- return $ERR_SORCEROUS_UNPACK
+ "${CAULDRON_CMD_UNPACK_SORCERY[@]/TARGETDIR/$target}" \
+ "${target}/${spool#/}/$sorcery" ||
+ return $ERR_SORCEROUS_UNPACK

- [[ -x "$CAULDRON_BUILD/usr/src/sorcery/install" ]] ||
+ [[ -x "$target/usr/src/sorcery/install" ]] ||
return $ERR_SORCEROUS_UNPACK

# make sure the chroot library is loaded so cauldron_chroot is available
- if ! type -t cauldron_chroot > "$CAULDRON_NULL"
+ if ! declare -lF cauldron_chroot
+ then
+ cauldron_load_library lib.chroot
+ liberror_check || return $?
+ fi
+
+ cauldron_chroot_init "$target"
+ liberror_check || return $?
+
+ # ugly workaround for the broken sorcery install
+ local installer="tmp/install_sorcery"
+ "${CAULDRON_CMD_CAT[@]}" > "$target/$installer" <<SORCERY
+#!/bin/sh
+cd /usr/src/sorcery &&
+./install
+SORCERY
+ liberror_check || return $ERR_SORCEROUS_INSTALL
+ [[ -f "$target/$installer" ]] || return $ERR_SORCEROUS_INSTALL
+ echo "DEBUG: $target/bin/sh $target/$installer"
+ cauldron_chroot "/bin/sh" "/$installer"
+ liberror_check || return $?
+ cauldron_chroot rm "/$installer"
+ liberror_check || return $?
+
+ #cauldron_chroot sh -c "cd /usr/src/sorcery && ./install"
+ #liberror_check || return $?
+
+ [[ -x "$target/usr/sbin/cast" ]] || return $ERR_SORCEROUS_INSTALL
+
+ cauldron_chroot_done "$target"
+ liberror_check || return $?
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
+## @param target dir to remove sorcery from (optional, default:
CAULDRON_BUILD)
+##
+## Thoroughly removes traces of sorcery from the target directory. If the
+## directory isn't specified as the first argument to the function, it
defaults
+## to CAULDRON_BUILD.
+##
+#-------------------------------------------------------------------------------
+function cauldron_sorcerous_clean() {
+ local target="${1:-$CAULDRON_BUILD}"
+
+ [[ -d "$target" ]] || return $ERR_SORCEROUS_UNINSTALL
+
+ cauldron_chroot_init "$target"
+ liberror_check || return $?
+
+ #cauldron_chroot_check -q "$target"
+ #liberror_check || return $ERR_SORCEROUS_UNINSTALL
+
+ if [[ -f "$target/etc/sorcery/install.log" &&
+ -x "$target/usr/src/sorcery/uninstall" ]]
+ then
+ cauldron_chroot "/usr/src/sorcery/uninstall"
+ liberror_check || return $ERR_SORCEROUS_UNINSTALL
+ fi
+
+ # forcefully remove /etc/sorcery to ensure nothing is left
+ cauldron_chroot /bin/rm -fr "/etc/sorcery"
+ liberror_check || return $ERR_SORCEROUS_UNINSTALL
+
+ # additionally forcefully wipe out var/{lib,log,state}/sorcery in the
chroot
+ # since some state files may not be removed by sorcery uninstall
+ cauldron_chroot /bin/rm -fr "/var/lib/sorcery"
+ liberror_check || return $ERR_SORCEROUS_UNINSTALL
+ cauldron_chroot /bin/rm -fr "/var/log/sorcery"
+ liberror_check || return $ERR_SORCEROUS_UNINSTALL
+ cauldron_chroot /bin/rm -fr "/var/state/sorcery"
+ liberror_check || return $ERR_SORCEROUS_UNINSTALL
+
+ cauldron_chroot_done "$target"
+ liberror_check || return $?
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
+## @param chroot path (optional, default: CAULDRON_BUILD)
+##
+## Updates sorcery itself in the given chroot path.
+##
+#-------------------------------------------------------------------------------
+function cauldron_sorcerous_update() {
+ local target="${1:-$CAULDRON_BUILD}"
+
+ # make sure the chroot library is loaded so cauldron_chroot is available
+ if ! declare -lF cauldron_chroot
+ then
+ cauldron_load_library lib.chroot
+ liberror_check || return $?
+ fi
+
+ cauldron_chroot_init "$target"
+ liberror_check || return $?
+
+ cauldron_chroot sorcery update
+ liberror_check || return $?
+
+ cauldron_chroot_done "$target"
+ liberror_check || return $?
+}
+
+#-------------------------------------------------------------------------------
+## @param chroot path (optional, default: CAULDRON_BUILD)
+##
+## Configures sorcery in the given chroot to use the grimoires indicated. The
+## grimoires to use will come from the CAULDRON_SORCERY_GRIMOIRES cauldron
+## config variable, which should be an ordered list (array) of all desired
+## grimoires. The order of the grimoires in the target sorcery will be set to
+## match the order in CAULDRON_SORCERY_GRIMOIRES.
+##
+#-------------------------------------------------------------------------------
+function cauldron_sorcerous_set_grimoires() {
+ local target="${1:-$CAULDRON_BUILD}"
+ local grimoires=( "${CAULDRON_SORCERY_GRIMOIRES[@]}" )
+
+ # ensure a sorcery local config directory exists in the chroot
+ if [[ ! -d "$target/etc/sorcery/local" ]]
+ then
+ "${CAULDRON_CMD_MKDIR[@]}" "$target/etc/sorcery/local" ||
+ return $ERR_MK_DIR
+ fi
+
+ # flush any existing grimoires from the chroot sorcery config
+ "${CAULDRON_CMD_CAT[@]}" "/dev/null" \
+ > "$target/etc/sorcery/local/grimoire" ||
+ return $ERR_WRITE_FILE
+
+ # populate the chroot sorcery config with the desired grimoires
+ for ((i=0;i<"${#grimoires[@]}";i++))
+ do
+ echo "GRIMOIRE_DIR[$i]=/var/lib/sorcery/codex/${grimoires[i]}" \
+ >> "$target/etc/sorcery/local/grimoire" ||
+ return $ERR_WRITE_FILE
+ done
+}
+
+#-------------------------------------------------------------------------------
+## @param chroot path (optional, default: CAULDRON_BUILD)
+##
+## Updates the grimoires defined in CAULDRON_SORCERY_GRIMOIRES by running
scribe
+## update in the given chroot path.
+##
+#-------------------------------------------------------------------------------
+function cauldron_sorcerous_update_grimoires() {
+ local target="${1:-$CAULDRON_BUILD}"
+ local grimoires=( "${CAULDRON_SORCERY_GRIMOIRES[@]}" )
+ local codex="/var/lib/sorcery/codex"
+ local grimurl="$CAULDRON_SORCERY_GRIMOIRE_URL"
+ local grimtype="$CAULDRON_SORCERY_GRIMOIRE_TYPE"
+ local grimoire=
+
+ # make sure the chroot library is loaded so cauldron_chroot is available
+ if ! declare -lF cauldron_chroot
+ then
+ cauldron_load_library lib.chroot
+ liberror_check || return $?
+ fi
+
+ cauldron_chroot_init "$target"
+ liberror_check || return $?
+
+ # update and unpack each grimoire into the chroot environment
+ for grimoire in "${grimoires[@]}"
+ do
+ cauldron_verbose "Updating and unpacking grimoire: $grimoire"
+
+ # remove any stale instances of the grimoire if found
+ cauldron_chroot \
+ "${CAULDRON_CMD_RM_RECURSE_FORCE[@]}" \
+ "$target/$codex/$grimoire"
+ liberror_check || return $?
+ cauldron_chroot "${CAULDRON_CMD_RM_FORCE[@]}"
"/tmp/${grimoire}.$grimtype"
+ liberror_check || return $?
+
+ # download the grimoire to be unpacked
+ (
+ cd "$target/tmp" &&
+ "${CAULDRON_CMD_URL_DL[@]}" "$grimurl/${grimoire}.${grimtype}" ||
+ return $ERR_URL_DL
+ )
+ liberror_check "$grimurl/${grimoire}.$grimtype" || return $?
+
+ # unpack the grimoire
+ cauldron_chroot "${CAULDRON_CMD_MKDIR[@]}" "$codex"
+ liberror_check "mkdir $codex" || return $?
+ cauldron_chroot \
+ "${CAULDRON_CMD_UNPACK_TARGETDIR[@]/TARGETDIR/$codex}" \
+ "/tmp/${grimoire}.${grimtype}"
+ liberror_check "unpack $grimoire" || return $?
+
+ # remove the downloaded grimoire tarball after successfully unpacking
+ cauldron_chroot "${CAULDRON_CMD_RM_FORCE[@]}"
"/tmp/${grimoire}.$grimtype"
+ liberror_check || return $?
+ done
+
+ # reindex all available grimoires
+ cauldron_chroot scribe reindex
+ liberror_check || return $?
+
+ cauldron_chroot_done "$target"
+ liberror_check || return $?
+}
+
+#-------------------------------------------------------------------------------
+## @param spell
+## @param sorcery spell cache directory (optional)
+##
+## Looks up the given spell in the CAULDRON_BUILD chroot, then returns any
valid
+## spell caches found matching the spell name, version, and
+## CAULDRON_SORCERY_ARCH setting in the spell cache directory.
+##
+#-------------------------------------------------------------------------------
+function cauldron_sorcerous_spell_cache() {
+ local build="$CAULDRON_BUILD"
+ local spell="$1"
+ local cachedir="${2:-$build/var/cache/sorcery}"
+ local version=
+ local cache=
+
+ [[ -n "$spell" ]] || return $ERR_SORCEROUS_SPELL_CACHE
+
+ version=$(grep "^$spell:" "$state")
+ version="${version##*:}"
+ if [[ -z "$version" ]]
+ then
+ # the spell couldn't be found in sorcery's list of installed spells, so
try
+ # getting the version from gaze
+ cauldron_chroot_init
+ liberror_check || return $?
+ version=$(cauldron_chroot -q gaze DETAILS "$spell" | \
+ grep 'VERSION=' | \
+ cut -d= -f2)
+ #cauldron_chroot -q gaze -q where -p "$spell"
+ liberror_check || return $?
+ cauldron_chroot_done
+ liberror_check || return $?
+ #version=$(grep "VERSION=" "$grimoire/$version/$spell/DETAILS" | cut -d=
-f2)
+ [[ -n "$version" ]] || return $ERR_SORCEROUS_SPELL_CACHE
+ fi
+
+ cache="$(${CAULDRON_CMD_READLINK[@]}
$cachedir/$spell-$version-$CAULDRON_SORCERY_ARCH*)"
+ [[ -n "$cache" ]] || return $ERR_SORCEROUS_SPELL_CACHE
+
+ echo "$cache"
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
+##
+## Modifies the sorcery in the given chroot to conform to the settings needed
+## by cauldron for its builds. Uses CAULDRON_BUILD as the base location.
+##
+#-------------------------------------------------------------------------------
+function cauldron_sorcerous_cauldron_defaults() {
+ local target="$CAULDRON_BUILD"
+ local confdir="$target/etc/sorcery/local"
+ local config="$confdir/config"
+ local grimoire="$target/var/lib/sorcery/codex/stable"
+ local sorcery_settings="$CAULDRON_SORCERY_SETTINGS"
+ local architecture="$CAULDRON_SORCERY_ARCH"
+ local njobs="$CAULDRON_BUILD_JOBS"
+
+ # make sure we have an architecture setting
+ [[ -n "$architecture" ]] || return $ERR_SORCERY_ARCH
+
+ # ensure the etc/sorcery/local directory exists
+ if ! [[ -d "$chroot_sorcery_confdir" ]]
+ then
+ "${CAULDRON_CMD_MKDIR[@]}" "$confdir" ||
+ return $ERR_MK_DIR
+ fi
+
+ # make sure we have settings to copy before attempting
+ if [[ -f "$sorcery_settings" ]]
+ then
+ # populate sorcery with general cauldron settings
+ "${CAULDRON_CMD_CAT[@]}" "$sorcery_settings" \
+ > "$config" 2> "$CAULDRON_NULL" ||
+ return $ERR_SORCEROUS_DEFAULT_SETTINGS
+ fi
+
+ # set the machine architecture to compile for
+ echo "ARCHITECTURE=\"$architecture\"" >> "$config" ||
+ return $ERR_SORCEROUS_DEFAULT_SETTINGS
+
+ if [[ "$CAULDRON_BUILD_VOYEUR" == "yes" ]]
+ then
+ echo "VOYEUR=\"on\"" >> "$config" ||
+ return $ERR_SORCEROUS_DEFAULT_SETTINGS
+ fi
+
+ if [[ "$njobs" -ge 1 ]]
+ then
+ echo "MAKE_NJOBS=\"$njobs\"" >> "$config" ||
+ return $ERR_SORCEROUS_DEFAULT_SETTINGS
+ fi
+
+ if [[ "$1" == "nostaging" ]]
+ then
+ echo "STAGED_INSTALL=\"off\"" >> "$config" ||
+ return $ERR_SORCEROUS_DEFAULT_SETTINGS
+ fi
+
+ # fixes for base spells until the patches hit stable
+ for patch in "$CAULDRON_CONFIG"/toolchain/grimoire_hacks/*/*.patch
+ do
+ local spell="${patch##*/}"
+ spell="${spell%.patch}"
+
+ cauldron_verbose "Patching grimoire spell $spell ..."
+
+ "${CAULDRON_CMD_PATCH[@]}" -Nt -d "$target" -p0 < "$patch" ||
+ return $ERR_TOOLCHAIN_PATCH
+ done
+
+ # make sure the chroot library is loaded so cauldron_chroot is available
+ if ! declare -lF cauldron_chroot
then
cauldron_load_library lib.chroot
+ liberror_check || return $?
+ fi
+
+ cauldron_chroot_init
+ liberror_check || return $?
+
+ # temporary fix for choosing xz-utils over deprecated lzma-utils
+ cauldron_chroot sorcery default add xz-utils LZMA "on"
+ liberror_check || return $?
+
+ # temporary fix for choosing kbd over deprecated console-tools
+ cauldron_chroot sorcery default add kbd CONSOLE-TOOLS "on"
+ liberror_check || return $?
+
+ cauldron_chroot_done
+ liberror_check || return $?
+
+ # install all spell pre-configurations
+ cauldron_verbose "installing cauldron-specific spell defaults"
+
+ "${CAULDRON_CMD_MKDIR[@]}" "$confdir/depends" ||
+ return $ERR_SORCEROUS_DEFAULT_SETTINGS
+ for spellconfig in "$CAULDRON_CONFIG/toolchain/sorcery/depends/"*
+ do
+ local spell="${spellconfig##*/}"
+
+ touch "$confdir/depends/$spell" || return $ERR_SORCEROUS_DEFAULT_SETTINGS
+
+ "${CAULDRON_CMD_CP_FORCE[@]}" \
+ "$spellconfig" \
+ "$confdir/depends/${spell}.p" ||
+ return $ERR_SORCEROUS_DEFAULT_SETTINGS
+ done
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
+## @param chroot_path
+##
+## Modifies the sorcery in the given chroot to conform to the settings needed
+## by cauldron for sys filesystems. The chroot_path parameter is a path to
+## the chroot in which the sorcery to purify is installed. If not supplied,
the
+## parameter defaults to $CAULDRON_SYS.
+##
+#-------------------------------------------------------------------------------
+function cauldron_sorcerous_sys_defaults() {
+ local target="${1:-$CAULDRON_SYS}"
+ local sorcery_confdir="$target/etc/sorcery/local"
+ local sorcery_config="$sorcery_confdir/config"
+ local arch="$CAULDRON_SORCERY_ARCH"
+
+ # make sure we have an architecture setting
+ [[ -n "$arch" ]] || return $ERR_SORCERY_ARCH
+
+ # ensure the etc/sorcery/local directory exists
+ if ! [[ -d "$sorcery_confdir" ]]
+ then
+ "${CAULDRON_CMD_MKDIR[@]}" "$sorcery_confdir" ||
+ return $ERR_MK_DIR
fi
- # install the source tarball, relative to CAULDRON_BUILD
- "$CAULDRON_BUILD/usr/src/sorcery/install" "$CAULDRON_BUILD" ||
- return $ERR_SORCEROUS_INSTALL
+
+ # set the machine architecture to compile for
+ echo "ARCHITECTURE=\"$arch\"" >> "$sorcery_config" ||
+ return $ERR_WRITE_FILE

return $ERR_OK
}
diff --git a/cauldron/lib/lib.toolchain b/cauldron/lib/lib.toolchain
index 4e5e5f2..e5ad9cf 100644
--- a/cauldron/lib/lib.toolchain
+++ b/cauldron/lib/lib.toolchain
@@ -3,7 +3,7 @@
##
##=head1 SYNOPSIS
##
-## lib.hostcache provides functions for generating spell caches from what's
+## lib.toolchain provides functions for generating spell caches from what's
## available on the HOST system - only to be used for the
initial
## build toolchain
##
@@ -17,6 +17,13 @@
##

#-------------------------------------------------------------------------------

+# guarantee that CAULDRON_NULL is defined
+: "${CAULDRON_NULL:=/dev/null}"
+
+# set LC_COLLATE to C so we don't get affected by the user's locale
+# when grepping, sorting, etc.
+export LC_COLLATE="C"
+

#-------------------------------------------------------------------------------
## @param chroot path (required)
## @param compiler (optional)
@@ -28,80 +35,71 @@
## actually run correctly in the build environment.
##
## The chroot path parameter is the path to the chroot build environment, and
-## defaults to "$CAULDRON_BUILD/baseroot" if not provided. The optional
compiler
+## defaults to "$CAULDRON_BUILD" if not provided. The optional compiler
## second parameter is the compiler to use (defaults to gcc). Currently the
## compiler is expected to have the same parameters as gcc (though only the
## ouput flag [-o] is used).
##

#-------------------------------------------------------------------------------
function cauldron_toolchain_compiler_test() {
- local chroot="${1:-$CAULDRON_BUILD/baseroot}"
- local compiler="${2:-gcc}"
+ local chroot="${1:-$CAULDRON_BUILD}"
+ local compiler="${2:-$CAULDRON_COMPILER}"
local comptest="tmp/compiler.test"


# create an extremely simple C source for testing the compiler
echo -e "#include <stdlib.h>\nint main(void) { exit(0); }" \
- > "$chroot/tmp/compiler.test.c"
+ > "$chroot/$comptest.c" ||
+ return $ERR_WRITE_FILE

- cauldron_chroot_init "$chroot" || return $?
+ cauldron_chroot_init "$chroot"
+ liberror_check || return $?

# compile a very simple source file to ensure the compiler works
- cauldron_chroot "$compiler" -o "/$comptest" "/$comptest.c" ||
- return $ERR_TOOLCHAIN_COMPILER_TEST
+ cauldron_chroot "$compiler" -o "/$comptest" "/$comptest.c"
+ liberror_check "compile $comptest.c using $compiler" || return $?

# run the generated binary to make sure it was properly compiled
- cauldron_chroot "/$comptest" || return $ERR_TOOLCHAIN_COMPILER_TEST
+ cauldron_chroot "/$comptest"
+ liberror_check "execute $comptest" || return $?

- cauldron_chroot_done "$chroot" || return $?
+ cauldron_chroot_done "$chroot"
+ liberror_check || return $?

# clean up the temporary files
"${CAULDRON_CMD_RM_FORCE[@]}" "$chroot/$comptest.c" "$chroot/$comptest" ||
- return $ERR_RM_FILES
+ return $ERR_RM_FILE

return $ERR_OK
}


#-------------------------------------------------------------------------------
-## @param baseroot (optional)
+## @param baseroot_dir (optional)
##
## Performs basic quality assurance over an acquired basesystem chroot for
-## cauldron purposes. The path to the (unpacked) baseroot directory (which
will
-## function as the build chroot hereafter) defaults to
-## "$CAULDRON_BUILD/baseroot" if not provided.
+## cauldron purposes. The path to the (unpacked) baseroot_dir directory
(which
+## will function as the build chroot hereafter) defaults to
"$CAULDRON_BUILD" if
+## not provided.
##

#-------------------------------------------------------------------------------
function cauldron_toolchain_baseroot_test() {
- local chroot="${1:-$CAULDRON_BUILD/baseroot}"
- local fhs=(
- bin
- boot
- dev
- home
- etc
- lib
- mnt
- opt
- proc
- root
- sbin
- tmp
- usr/bin
- usr/sbin
- var
- )
+ local chroot="${1:-$CAULDRON_BUILD}"

# ensure that a valid chroot was passed in as the first parameter
[[ -d "$chroot" ]] || return $ERR_TOOLCHAIN_BASEROOT_TEST

- # ensure the important standard FHS directories are present
- for dir in "${fhs[@]}"
+ # ensure important standard directories are present
+ for dir in "${CAULDRON_FHS_DIRS[@]}"
do
- [[ -d "$chroot/$dir" ]] ||
- return $ERR_TOOLCHAIN_BASEROOT_TEST
+ if [[ ! -d "$chroot/$dir" ]]
+ then
+ "${CAULDRON_CMD_MKDIR[@]}" "$chroot/$dir" ||
+ return $ERR_TOOLCHAIN_BASEROOT_TEST
+ fi
done

cauldron_toolchain_compiler_test "$chroot"
+ liberror_check || return $ERR_TOOLCHAIN_BASEROOT_TEST

return $ERR_OK
}
@@ -119,340 +117,510 @@ function cauldron_toolchain_baseroot_test() {
function cauldron_toolchain_baseroot() {
local baseroot="${1:-$CAULDRON_BASEROOT}"
local baseroot_url="$CAULDRON_BASEROOT_URL"
- local chroot="$CAULDRON_BUILD/baseroot"
+ local baseroot_sig="$CAULDRON_BASEROOT_SIGN_URL"
+ local chroot="$CAULDRON_BUILD"
+ local baseroot_path=$("${CAULDRON_CMD_READLINK[@]}" "$baseroot")

- if [[ -d "$baseroot" ]]
+ if [[ -d "$baseroot_path" ]]
then
- ln -sf "$baseroot" "$chroot" || return "$ERR_TOOLCHAIN_BASEROOT"
+ if [[ "$baseroot_path" != "$chroot" ]]
+ then
+ if [[ -d "$chroot" ]]
+ then
+ rmdir "$chroot" || return "$ERR_TOOLCHAIN_BASEROOT"
+ fi
+ ln -sf "$baseroot_path" "$chroot" || return "$ERR_TOOLCHAIN_BASEROOT"
+ fi
else
# ensure that the target chroot directory exists
"${CAULDRON_CMD_MKDIR[@]}" "$chroot" || return $ERR_TOOLCHAIN_BASEROOT

+ [[ "${baseroot%%[^/]*}" == "/" ]] || baseroot="$CAULDRON_TMP/$baseroot"
if [[ ! -f "$baseroot" ]]
then
# get a fresh basesystem chroot package
(
- cd "$CAULDRON_BUILD"
- "${CAULDRON_CMD_URL_DL[@]}" "$baseroot_url" ||
- return $ERR_TOOLCHAIN_BASEROOT
+ cd "$CAULDRON_TMP"
+ "${CAULDRON_CMD_URL_DL[@]}" "$baseroot_url"
+ liberror_check $ERR_TOOLCHAIN_BASEROOT \
+ "could not acquire baseroot image file" ||
+ return $ERR_TOOLCHAIN_BASEROOT
+ "${CAULDRON_CMD_URL_DL[@]}" "$baseroot_sig"
+ liberror_check $ERR_TOOLCHAIN_BASEROOT \
+ "could not acquire baseroot signature file" ||
+ return $ERR_TOOLCHAIN_BASEROOT
)
+ liberror_check || return $?
fi

# unpack it
- "${CAULDRON_CMD_UNPACK_BASEROOT[@]}" "$baseroot" ||
+ "${CAULDRON_CMD_UNPACK_BUILD[@]}" "$baseroot" ||
return $ERR_TOOLCHAIN_BASEROOT
fi

# perform basic sanity checking on the chroot
# return whatever error code baseroot_test gives back to us
- cauldron_toolchain_baseroot_test "$chroot" || return $?
+ cauldron_toolchain_baseroot_test "$chroot"
+ liberror_check || return $?
+
+ return $ERR_OK
}


#-------------------------------------------------------------------------------
+## @param list of spells (optional)
##
-## Scans the sorcery archspec files to find the host triplet.
-##
-## Later, this will be used to set the value of HOST_TRIPLE in
-## /etc/cauldron/config after the code to write the config file is in place.
+## Generates a spell cache by casting the spell and then dispelling it. This
+## assumes that ARCHIVE is already set to "yes" in the chroot's sorcery
config.
##

#-------------------------------------------------------------------------------
-function cauldron_toolchain_host_get() {
- local specs="${CAULDRON_HOST_ARCH_PATH//\"/}"
- local search="-perm 400 -type f -name $CAULDRON_HOST_ARCH"
- local cmd_grep="${CAULDRON_CMD_GREP[@]}"
- local cmd_grep_quiet="${CAULDRON_CMD_GREP_QUIET[@]}"
- local cmd_find="${CAULDRON_CMD_FIND[@]}"
- local cmd_cut="${CAULDRON_CMD_CUT[@]}"
- local arch_spec=
- local host_triple=
-
- # get the value for the HOST triplet from sorcery archspecs
-
- if $("$cmd_find" --version | "$cmd_grep" 'version 4\.1\(\.\|$\)')
- then
- arch_spec="$($cmd_find $spec $search -print 2>$CAULDRON_NULL)"
- else
- arch_spec="$($cmd_find -L $spec $search -print 2>$CAULDRON_NULL)"
- fi
+function cauldron_toolchain_cache_cast() {
+ local spells=("${@:-$CAULDRON_TOOLCHAIN}")

- # no matching arch spec found
- [[ -z "$arch_spec" ]] && return $ERR_HOST_TRIPLE
+ # if $spells points to a file, replace it with the contents of the file as
an
+ # array
+ [[ -f "$spells" ]] && spells=($(<"$spells"))

- host_triple="$($cmd_grep 'HOST=' $arch_spec | $cmd_cut -d = -f 2)"
+ [[ -n "$spells" ]] || return $ERR_TOOLCHAIN_CAST

- # no matching host definition
- [[ -z "$host_triple" ]] && return $ERR_HOST_TRIPLE
+ # make sure we have a chroot accessible
+ # default to $CAULDRON_BUILD, unless one is already defined
+ cauldron_chroot_init || return $ERR_CHROOT_INIT

- "${CAULDRON_CMD_OUTPUT[@]}" "$host_triple"
+ # generate the caches for the needed spells
+ cauldron_chroot_cast_clean "$spells" || return $ERR_TOOLCHAIN_CAST
+
+ # clean up the chroot
+ cauldron_chroot_done || return $ERR_CHROOT_DONE

return $ERR_OK
}


#-------------------------------------------------------------------------------
-## @param spell
-## @param install_log_path
##
-## Builds a cache file from the information provided by the install log for
the
-## spell passed as an argument using sorcery's create_cache_archive. It
expects
-## the provided spell to include the version as a suffix (i.e. bash-3.2).
+## This builds the cross-compiler to produce the TARGET binaries.
+##
+#-------------------------------------------------------------------------------
+function cauldron_toolchain_build_cross() {
+ # make sure we have a chroot accessible
+ # default to $CAULDRON_BUILD, unless one is already defined
+ cauldron_chroot_init || return $ERR_CHROOT_INIT
+
+ # build the stage 1 tools
+ cauldron_sorcerous_cross_configure 1 || return $ERR_TOOLCHAIN_STAGE1
+ cauldron_chroot_cast "binutils" || return $ERR_CHROOT_CAST
+ cauldron_chroot_cast "gcc" || return $ERR_CHROOT_CAST
+
+ # build glibc (stage 2)
+ cauldron_sorcerous_cross_configure 2 || return $ERR_TOOLCHAIN_STAGE2
+ cauldron_chroot_cast "glibc" || return $ERR_CHROOT_CAST
+
+ # rebuild gcc (still stage 1, but this time linked against the
+ # cross-glibc
+ cauldron_sorcerous_cross_configure 1 || return $ERR_TOOLCHAIN_STAGE1
+ cauldron_chroot_cast "gcc" || return $ERR_CHROOT_CAST
+
+ # do a sorcery rebuild inside the BUILD dir to
+ # generate the cross-compile tool-chain (stage 3)
+ cauldron_sorcerous_cross_configure 3 || return $ERR_TOOLCHAIN_STAGE3
+ cauldron_chroot "${CAULDRON_CMD_REBUILD[@]}" || return $ERR_CHROOT_REBUILD
+
+ # if we had to initialize a default chroot
+ # clean up by shutting it down
+ cauldron_chroot_done || return $ERR_CHROOT_DONE
+}
+
+
+#-------------------------------------------------------------------------------
+##
+## Download the linux kernel sources from the net
##

#-------------------------------------------------------------------------------
-function cauldron_toolchain_cache_resurrect() {
- local spell="$1"
- local install_logs="${2:-$CAULDRON_HOST/var/log/sorcery/install}"
- local cache="$CAULDRON_HOST_CACHE_PATH/$spell.tar"
+function cauldron_toolchain_kernel_source() {
+ local spool="$CAULDRON_BUILD/var/spool/sorcery"
+ srcfile="$spool/${CAULDRON_KERNEL_URL##*/}"
+ sigfile="$spool/${CAULDRON_KERNEL_SIGN_URL##*/}"
+
+ [[ -f "$srcfile" ]] && return $ERR_OK

- if [[ -z create_cache_archive ]]
+ if [[ ! -d "$spool" ]]
then
- . "$CAULDRON_HSORCERY_LIBS/libstate" 2>$CAULDRON_NULL ||
- liberror_die $ERR_SORCEROUS_HOST
+ "${CAULDRON_CMD_MKDIR[@]}" "$spool"
+ liberror_check || return $?
fi

- # generate the missing cache file using sorcery
- create_cache_archive "$install_logs/$spell" "$cache"
"${cache}${EXTENSION}" ||
- return $ERR_TOOLCHAIN_RESURRECT
+ (
+ cd "$spool"
+
+ "${CAULDRON_CMD_URL_DL[@]}" "$CAULDRON_KERNEL_URL"
+ liberror_check "kernel source url: $CAULDRON_KERNEL_URL" ||
+ return $ERR_TOOLCHAIN_KSRC
+ liberror_check "kernel source url: $CAULDRON_KERNEL_SIGN_URL" ||
+ return $ERR_TOOLCHAIN_KSRC
+ )

return $ERR_OK
}


#-------------------------------------------------------------------------------
-## @param spell_name
-## @param spell_version
-## @param install_log_path
##
-## Generates a spell cache by manually copying files from the spell's install
-## log and packaging them. Assumes that the spell's install log exists and is
-## intact.
+## Download the toolchain suite sources from the net
##

#-------------------------------------------------------------------------------
-function cauldron_toolchain_cache_gather() {
- local spell="$1"
- local version="$2"
- local install_logs="${3:-$CAULDRON_HOST/var/log/sorcery/install}"
- local gather="$CAULDRON_TMP/gather"
+function cauldron_toolchain_sources() {
+ local force="$1"
+ local urls=(
+ "$CAULDRON_SYSUTILS_URL"
+ "$CAULDRON_COMPILER_URL"
+ "$CAULDRON_LIBC_URL"
+ "$CAULDRON_AUTOCONF_URL"
+ "$CAULDRON_AUTOMAKE_URL"
+ "$CAULDRON_MAKE_URL"
+ "$CAULDRON_PERL_URL"
+ )
+ local sigs=(
+ "$CAULDRON_SYSUTILS_SIGN_URL"
+ "$CAULDRON_COMPILER_SIGN_URL"
+ "$CAULDRON_LIBC_SIGN_URL"
+ "$CAULDRON_AUTOCONF_SIGN_URL"
+ "$CAULDRON_AUTOMAKE_SIGN_URL"
+ "$CAULDRON_MAKE_SIGN_URL"
+ "$CAULDRON_PERL_SIGN_URL"
+ )
+
+ if [[ ! -d "$CAULDRON_BUILD/var/spool/sorcery" ]]
+ then
+ "${CAULDRON_CMD_MKDIR[@]}" "$CAULDRON_BUILD/var/spool/sorcery"
+ liberror_check || return $?
+ fi

- [[ -d "$install_logs" ]] || return $ERR_TOOLCHAIN_GATHER
+ (
+ cd "$CAULDRON_BUILD/var/spool/sorcery"
+ liberror_check || return $?

- [[ -z "$spell" ]] && return $ERR_TOOLCHAIN_GATHER
- [[ -z "$version" ]] && return $ERR_TOOLCHAIN_GATHER
+ for ((i=0; i<"${#urls[@]}"; i++))
+ do
+ url="${urls[i]}"
+ sig="${sigs[i]}"
+ if [[ -f "${url##*/}" ]]
+ then
+ if [[ -n "$force" ]]
+ then
+ "${CAULDRON_CMD_RM_FORCE[@]}" "${url##*/}"
+ else
+ continue
+ fi
+ fi

- # make sure the gather path is clean
- # completely wipe it out and recreate it
- "${CAULDRON_CMD_RM_RECURSE_FORCE[@]}" "$gather" || return $ERR_RM_FILES
- "${CAULDRON_CMD_MKDIR[@]}" "$gather" || return $ERR_MK_DIR
+ "${CAULDRON_CMD_URL_DL[@]}" "$url"
+ liberror_check "$url" || return $ERR_TOOLCHAIN_SOURCES
+ "${CAULDRON_CMD_URL_DL[@]}" "$sig"
+ liberror_check "$sig" || return $ERR_TOOLCHAIN_SOURCES
+ done
+ )

- # find all the files installed by the given spell
- for file in "$install_logs/${spell}-${version}"/*
- do
- # copy all files from the sorcery install log
- "${CAULDRON_CMD_CP_EXACT[@]}" "$file" "$gather/" ||
- return $ERR_TOOLCHAIN_GATHER
- done
+ return $ERR_OK
+}
+
+function cauldron_toolchain_unpack() {
+ local target="$1"
+ local archive=
+
+ [[ -n "$target" ]] || return $ERR_TOOLCHAIN_UNPACK

- # package the collection of files from the install log as a cache file
- "${CAULDRON_CMD_TAR[@]}" jcf "${spell}-${version}.tar.bz2" \
- --transform "s#$gather/##" \
- "$gather"/* ||
- return $ERR_TOOLCHAIN_GATHER
+ if [[ ! -d "$CAULDRON_BUILD/usr/src" ]]
+ then
+ "${CAULDRON_CMD_MKDIR[@]}" "$CAULDRON_BUILD/usr/src"
+ liberror_check || return $?
+ fi

- # if the packaging was successful, wipe out the gather dir
- "${CAULDRON_CMD_RM_RECURSE_FORCE[@]}" "$gather"
+ if [[ -d "$CAULDRON_BUILD/var/spool/sorcery" ]]
+ then
+ "${CAULDRON_CMD_MKDIR[@]}" "$CAULDRON_BUILD/var/spool/sorcery" ||
+ return $ERR_TOOLCHAIN_UNPACK
+ fi
+
+ eval target="\$CAULDRON_$target-\$CAULDRON_${target}_VERS"
+
+ archive=( $(ls "$CAULDRON_BUILD/var/spool/sorcery/$target"*) )
+ archive="${archive[0]}"
+
+ [[ -n "$archive" ]] || return $ERR_TOOLCHAIN_UNPACK
+
+ cauldron_verbose "Unpacking toolchain source: $target"
+
+ "${CAULDRON_CMD_UNPACK_BUILD_SRC[@]}" "$archive" ||
+ return $?

return $ERR_OK
}


#-------------------------------------------------------------------------------
-## @param spell
+## @param component to configure
##
-## Generates a spell cache by casting the spell and then dispelling it. This
-## assumes that ARCHIVE is already set to "yes" in the chroot's sorcery
config.
+## Configures the specified component for building. This assumes that the
+## relevant sources are already available under the chroot's /usr/src
directory.
##

#-------------------------------------------------------------------------------
-function cauldron_toolchain_cache_cast() {
- local spells="$CAULDRON_SYS_SPELLS"
-
- [[ -f "$spells" ]] || return $ERR_TOOLCHAIN_CAST
+function cauldron_toolchain_configure_component() {
+ local component="$1"
+ local srcdir="$CAULDRON_BUILD/usr/src"
+ local config=
+ local targetdir=
+ local targetconf=
+
+ [[ -n "$component" ]] || return $ERR_TOOLCHAIN_CONFIGURE
+
+ case "$component" in
+ kernel)
+ case "$CAULDRON_KERNEL" in
+ linux)
+ config="$CAULDRON_KERNEL_CONF"
+ targetdir="$srcdir/$CAULDRON_KERNEL-$CAULDRON_KERNEL_VERS"
+ targetconf="$targetdir/.config"
+ ;;
+ esac
+ ;;
+ sysutils)
+ case "$CAULDRON_SYSUTILS" in
+ busybox)
+ config="$CAULDRON_SYSUTILS_CONF"
+ targetdir="$srcdir/$CAULDRON_SYSUTILS-$CAULDRON_SYSUTILS_VERS"
+ targetconf="$targetdir/.config"
+ ;;
+ esac
+ ;;
+ esac
+
+ if [[ ! -f "$config" ]]
+ then
+ cauldron_verbose_error "kernel config file $config not found"
+ return $ERR_TOOLCHAIN_CONFIGURE
+ fi

- # make sure we have a chroot accessible
- # default to $CAULDRON_BUILD, unless one is already defined
- cauldron_chroot_init || return $ERR_CHROOT_INIT
+ [[ -d "$targetdir" ]] || return $ERR_TOOLCHAIN_CONFIGURE

- # generate the caches for the needed spells
- cauldron_chroot_cast_clean "$spells" || return $ERR_TOOLCHAIN_CAST

- # clean up the chroot
- cauldron_chroot_done || return $ERR_CHROOT_DONE
+ "${CAULDRON_CMD_CAT[@]}" "$config" > "$targetconf"
+ liberror_check "component: $component" || return $ERR_TOOLCHAIN_CONFIGURE

return $ERR_OK
}


#-------------------------------------------------------------------------------
-## @param spell
##
-## Generates a cache file for the given spell. It will try to use information
-## from an already installed/cast spell (in the case of the host system
having
-## sorcery configured to not generate the caches), and, failing that, will
cast
-## the spell and then dispel it (the second step only being performed if
-## aggressive is true).
+## Extracts and installs the kernel headers for userland in the build chroot.
+## Assumes that the kernel sources are already available and configured.
##

#-------------------------------------------------------------------------------
-function cauldron_toolchain_cache_make() {
- local spell="$1"
- local config="$CAULDRON_ISORCERY_CONFIG"
- local lconfig="$CAULDRON_ISORCERY_LCONFIG"
- local install_logs="$CAULDRON_HOST/var/log/sorcery/install"
- local version=""
- local packages="$CAULDRON_HSORCERY_PACKAGES"
- local cmd_grep="${CAULDRON_CMD_GREP[@]}"
- local cmd_cut="${CAULDRON_CMD_CUT[@]}"
-
- # First check to see if the spell was installed, but no cache exists.
- if "${CAULDRON_CMD_GAZE_INSTALLED}" "$spell" > $CAULDRON_NULL
- then
- # use sorcery to generate a cache file using the install log
- # this is the least intensive of the three options
- version="$($cmd_grep ^$spell $packages | $cmd_cut -d: -f4)"
+function cauldron_toolchain_kernel_headers() {
+ local kern="$CAULDRON_KERNEL"
+ local vers="$CAULDRON_KERNEL_VERS"
+ local karch="$CAULDRON_ARCH"

- if ! cauldron_toolchain_cache_resurrect "${spell}-${version}"
- then
- # Only do this part if the caller wants us to be aggressive in
building the
- # cache.
- if [[ "$CAULDRON_AGGRESSIVE" == yes ]]
- then
- if [[ -e "$install_logs/${spell}-${version}" ]]
- then
- # try making a cache from the install logs manually
- cauldron_toolchain_cache_gather "$install_logs" "$spell" "$version"
- fi
- fi
- fi
+ [[ -n "$kern" ]] || return $ERR_KERNEL
+ [[ -n "$vers" ]] || return $ERR_KERNEL

- # otherwise, there's no install logs so we will need to cast the spell
- elif [[ "$CAULDRON_AGGRESSIVE" == "yes" ]]
+ cauldron_chroot_init
+ liberror_check || return $?
+
+ # adjust the arch for linux if x86_64
+ if [[ "$kern" == "linux" ]]
then
- # make sure sorcery is in the build chroot
- [[ -f "$config" ]] || return $ERR_TOOLCHAIN_SORCERY
+ case "$karch" in
+ x86_64 )
+ #karch="x86"
+ true
+ ;;
+ esac
+ fi

- # sorcery defaults to archiving, but can be overridden in a local config
- # check for the local config
- if [[ -f "$lconfig" ]]
- then
- archive=$($cmd_grep '[^#]*ARCHIVE=' "$config" | $cmd_cut -d= -f2)
+ case "$CAULDRON_KERNEL" in
+ linux)
+ cauldron_chroot make -C "/usr/src/$kern-$vers" \
+ INSTALL_HDR_PATH="/usr" \
+ ARCH="$karch" \
+ headers_install
+ liberror_check || return $?
+ ;;
+ esac

- # if archiving is off in the local config, turn it on
- if [[ "$archive" != "on" ]]
- then
- sed -i 's/ARCHIVE=.*/ARCHIVE="on"/' "$config" ||
- return $ERR_SORCEROUS_ARCHIVE
- fi
- fi
+ cauldron_chroot_done
+ liberror_check || return $?

- # get the cache by manually casting/dispelling
- # this is the most resource intensive of the three options
- cauldron_toolchain_cache_cast "$spell" || return $ERR_TOOLCHAIN_CAST
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
+##
+## Unpacks the kernel sources and copies the cauldron configuration for the
+## kernel into the kernel source directory.
+##
+#-------------------------------------------------------------------------------
+function cauldron_toolchain_kernel_prepare() {
+ local kern="$CAULDRON_KERNEL"
+ local vers="$CAULDRON_KERNEL_VERS"
+ local conf="$CAULDRON_KERNEL_CONF"
+ local target="$CAULDRON_BUILD/usr/src/$kern-$vers"
+
+ cauldron_toolchain_unpack "KERNEL"
+ liberror_check "kernel source" || return $?
+
+ case "$kern" in
+ linux )
+ target="$target/.config"
+ ;;
+ * )
+ target=""
+ esac
+
+ if [[ -n "$target" ]]
+ then
+ "${CAULDRON_CMD_CP[@]}" "$conf" "$target" ||
+ return $ERR_CP_FILE
fi
+}
+
+#-------------------------------------------------------------------------------
+##
+## Does any work necessary to bootstrap a working compiler inside the
toolchain
+## chroot before it can be used for building sys and iso packages
+##
+#-------------------------------------------------------------------------------
+function cauldron_toolchain_compiler_bootstrap() {
+ # prepare chroots to $CAULDRON_BUILD
+ cauldron_chroot_init
+ liberror_check || return $?
+
+ case "$CAULDRON_COMPILER" in
+ gcc )
+ # retool gcc
+ cauldron_chroot sorcery unhold gmp mpfr libmpc
+ cauldron_chroot cast -c gmp mpfr libmpc
+ liberror_check || return $?
+ cauldron_chroot_cast -c gcc
+ liberror_check || return $?
+ cauldron_toolchain_compiler_test
+ liberror_check || return $?
+ ;;
+ * )
+ ;;
+ esac

return $ERR_OK
}


#-------------------------------------------------------------------------------
##
-## Generates the base toolchain using the HOST information. This is
-## done by unpacking the cache file for each spell required for the
-## toolchain if it exists. If it does not exist, this may be because
-## caching is disabled on the host machine, or perhaps the cache file
-## was deleted by accident. Otherwise the spell must be cast within
-## a chroot environment in the CAULDRON_BUILD directory.
+## Builds all the necessary toolchain components. This will attempt to
download
+## any sources that can't already be found.
##

#-------------------------------------------------------------------------------
-function cauldron_toolchain_build_host() {
- local spell=""
- local version=""
- local spell_cache=""
- local host_triple=""
- local ext="$CAULDRON_CACHE_EXTENSION"
- local packages="$CAULDRON_HSORCERY_PACKAGES"
- local cmd_grep="${CAULDRON_CMD_GREP[@]}"
- local cmd_cut="${CAULDRON_CMD_CUT[@]}"
-
- # get the value for HOST_TRIPLE
- host_triple="$(cauldron_toolchain_host_get)"
-
- [[ -z "$host_triple" ]] && return $ERR_HOST_TRIPLE
-
- # grab the list of spells needed as the base tool-chain which will be
- # used to create the cross-compile tool-chain
- for spell in "$CAULDRON_TOOLCHAIN"
+function cauldron_toolchain_build() {
+ # ensure that the toolchain kernel headers are available for building the
+ # toolchain against -- this kernel will be built and added to the iso
later,
+ # and the sources will be available for sys
+ cauldron_toolchain_kernel_prepare
+ liberror_check "kernel prepare" || return $?
+ cauldron_toolchain_kernel_headers
+ liberror_check "kernel headers" || return $?
+
+ # build the toolchain suite components (compiler, libc, make, autotools,
+ # etc.) -- only those needed for basic compilation from source for core
+ # software
+ for unit in compiler libc make automake autoconf sysutils #perl
do
- # grab the version for the spell from sorcery's state info
- # on what's installed
- version="$($cmd_grep \"^$spell\" $packages | $cmd_cut -d: -f4)"
-
- # check if spell found on the system
- if [[ -n "$version" ]]
- then
- # set SPELL_CACHE as shorthand for SPELL-VERSION-HOST_TRIPLE.tar.bz2
- spell_cache="${spell}-${version}-${host_triple}.tar${ext}"
-
- # unpack the cache file, effectively installing
- # the spell into the BUILD dir
- # the unpacking is done against the BUILD dir as the root dir, so
- # this should not touch the HOST filesystem at all
- "${CAULDRON_CMD_UNPACK_BUILD[@]}" "$CAULDRON_BUILD/$spell_cache"
- return $ERR_UNPACK_CACHE
-
- # if the tar was successful, then remove the temporary file
- "${CAULDRON_CMD_RM[@]}" "$CAULDRON_BUILD/$spell_cache" ||
- return $ERR_RM_CACHE
- fi
+ cauldron_toolchain_build_component "$unit"
+ liberror_check "toolchain component: $unit" || return
$ERR_TOOLCHAIN_BUILD
done

return $ERR_OK
}


#-------------------------------------------------------------------------------
+## @param component to build
##
-## This builds the cross-compiler to produce the TARGET binaries.
+## Builds the specified toolchain component in the toolchain chroot. This
+## assumes that the relevant sources are already unpacked and available under
+## the chroot's usr/src directory.
##

#-------------------------------------------------------------------------------
-function cauldron_toolchain_build_cross() {
- local chroot=0
-
- # make sure we have a chroot accessible
- # default to $CAULDRON_BUILD, unless one is already defined
- if ! cauldron_chroot_current -q
+function cauldron_toolchain_build_component() {
+ local component="$1"
+ local srcdir="$CAULDRON_BUILD/usr/src"
+ local target=
+
+ case "$component" in
+ compiler)
+ target="$CAULDRON_COMPILER-$CAULDRON_COMPILER_VERS"
+ ;;
+ libc)
+ target="$CAULDRON_LIBC-$CAULDRON_LIBC_VERS"
+ ;;
+ kernel)
+ target="$CAULDRON_KERNEL-$CAULDRON_KERNEL_VERS"
+ ;;
+ binutils)
+ target="binutils-$CAULDRON_BINUTILS_VERS"
+ ;;
+ make)
+ target="make-$CAULDRON_MAKE_VERS"
+ ;;
+ automake)
+ target="automake-$CAULDRON_AUTOMAKE_VERS"
+ ;;
+ autoconf)
+ target="autoconf-$CAULDRON_AUTOCONF_VERS"
+ ;;
+ perl)
+ target="perl-$CAULDRON_PERL_VERS"
+ ;;
+ sysutils)
+ target="$CAULDRON_SYSUTILS-$CAULDRON_SYSUTILS_VERS"
+ ;;
+ *) return $ERR_TOOLCHAIN_COMPONENT ;;
+ esac
+
+ cauldron_toolchain_unpack "$target"
+ liberror_check "$component" || return $?
+
+ # for components that need a particular configuration, copy over the
+ # preconfigured file before starting the build
+ if [[ -n "$config" ]]
then
- chroot=1
- cauldron_chroot_init || return $ERR_CHROOT_INIT
+ cauldron_toolchain_configure_component "$component" "$srcdir/$target"
+ liberror_check || return $?
fi

- # build the stage 1 tools
- cauldron_sorcerous_configure 1 || return $ERR_TOOLCHAIN_STAGE1
- cauldron_chroot "$CAULDRON_CMD_CAST" "binutils" || return $ERR_CHROOT_CAST
- cauldron_chroot "$CAULDRON_CMD_CAST" "gcc" || return $ERR_CHROOT_CAST
+ cauldron_chroot_init
+ liberror_check || return $?

- # build glibc (stage 2)
- cauldron_sorcerous_configure 2 || return $ERR_TOOLCHAIN_STAGE2
- cauldron_chroot "$CAULDRON_CMD_CAST" "glibc" || return $ERR_CHROOT_CAST
+ # run autotools as necessary
+ if [[ -x "$srcdir/$target/configure" ]]
+ then
+ cauldron_chroot sh -c "cd /usr/src/$target && configure"
+ liberror_check || return $?
+ fi

- # rebuild gcc (still stage 1, but this time linked against the
- # cross-glibc
- cauldron_sorcerous_configure 1 || return $ERR_TOOLCHAIN_STAGE1
- cauldron_chroot "$CAULDRON_CMD_CAST" "gcc" || return $ERR_CHROOT_CAST
+ # build and install
+ cauldron_chroot sh -c "cd /usr/src/$target && make && make install"
+ liberror_check || return $?

- # do a sorcery rebuild inside the BUILD dir to
- # generate the cross-compile tool-chain (stage 3)
- cauldron_sorcerous_configure 3 || return $ERR_TOOLCHAIN_STAGE3
- cauldron_chroot "$CAULDRON_CMD_REBUILD" || return $ERR_CHROOT_REBUILD
-
- # if we had to initialize a default chroot
- # clean up by shutting it down
- if [[ "$chroot" -eq 1 ]]
+ if [[ "$component" == "linux" ]]
then
- cauldron_chroot_done || return $ERR_CHROOT_DONE
+ cauldron_chroot sh -c "cd /usr/src/$target && make modules_install"
+ liberror_check || return $?
fi
+
+ # clean up after a successful build
+ cauldron_chroot rm -r "/usr/src/$target"
+
+ cauldron_chroot_done
+ liberror_check || return $?
+
+ return $ERR_OK
}

+

#-------------------------------------------------------------------------------
##
## This software is free software; you can redistribute it and/or modify
diff --git a/cauldron/lib/libcauldron b/cauldron/lib/libcauldron
index 24523de..854c395 100644
--- a/cauldron/lib/libcauldron
+++ b/cauldron/lib/libcauldron
@@ -94,33 +94,339 @@ function cauldron_color() {
}


#-------------------------------------------------------------------------------
+## @param messages
+##
+## Prints informational messages to the console, but only if CAULDRON_VERBOSE
+## is enabled.
+##
+#-------------------------------------------------------------------------------
+function cauldron_verbose() {
+ [[ "$CAULDRON_VERBOSE" == "yes" ]] &&
+ libcolor_msg notice "$@"
+}
+
+#-------------------------------------------------------------------------------
+## @param messages
+##
+## Prints error messages to the console, but only if CAULDRON_VERBOSE is
+## enabled.
+##
+#-------------------------------------------------------------------------------
+function cauldron_verbose_error() {
+ [[ "$CAULDRON_VERBOSE" == "yes" ]] &&
+ libcolor_msg error "$@"
+}
+
+#-------------------------------------------------------------------------------
+## @param VARIABLE
+##
+## Prints the current value of the specified VARIABLE. If VARIABLE is an
array,
+## it returns the full array as a single string.
+##
+#-------------------------------------------------------------------------------
+function cauldron_get_variable() {
+ for var in "$@"
+ do
+ [[ -n "$var" ]] || return $ERR_TARGET
+
+ var=$(declare -p "$var" 2> "$CAULDRON_NULL")
+ printf "%s\n" "${var##*$1=}"
+ done
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
## @param cleanfile
+## @param target (chroot) directory
##
-## Cleans out unneeded files that were used to generate the ISO, but should
-## not be present on the final ISO system. cleanfile is a file that lists
paths
-## to remove (absolute paths, relative to a chroot of the iso), one file/path
-## per line.
+## Cleans out unneeded files that were used to generate the target directory.
+## cleanfile is a file that lists paths to remove (absolute paths, relative
to a
+## chroot of the iso), one file/path per line. The paths can be directories
or
+## regular files, but the function will not attempt to recursively remove
+## directories (i.e., only rmdir is used on directories, and rm is used on
+## regular files). The target directory should be one of either CAULDRON_SYS
or
+## CAULDRON_ISO.
##

#-------------------------------------------------------------------------------
-function cauldron_clean_iso_system() {
+function cauldron_clean_fs() {
local cleanfile="$1"
+ local target="$2"

[[ -z "$cleanfile" ]] && return $ERR_CLEAN_FILE

- cauldron_chroot_current -q || return $ERR_CHROOT_CURRENT
+ [[ -n "$target" && -d "$target" ]] || return $ERR_CLEAN_DIR
+
+ cauldron_chroot_init "$target"
+ liberror_check || return $?

- for i in $(sort -r $cleanfile)
+ # process cleanfiles in reverse so that we remove contained files and
subdirs
+ # before attempting to rmdir a directory
+ for object in $(sort -r "$cleanfile")
do
- if [[ -d "$i" ]]
+ # only attempt to rmdir if the object is an existing dir
+ if [[ -d "$target/${object#/}" ]]
then
- "$CAULDRON_CMD_OUTPUT[@]}" "Attempting to remove directory $i..."
- cauldron_chroot rmdir "$i" || return $ERR_CLEAN_DIR
+ cauldron_verbose "Attempting to remove directory"\
+ "$target/${object#/}..."
+ cauldron_chroot rmdir "$object"
+ # just check for errors, but don't bail if one was found
+ # it's possible a dir will have files from other objects that need to
be
+ # cleaned first before the dir can be reaped, for example
+ # also, an empty dir doesn't really take up any space to be concerned
+ # about
+ liberror_check
else
- "$CAULDRON_CMD_OUTPUT[@]}" "Deleting $i"
- cauldron_chroot rm "$i" || return $ERR_CLEAN_FILE
+ # only attempt to rm a file if the object is an existing file
+ if [[ -e "$target/${object#/}" ]]
+ then
+ cauldron_verbose "Deleting $target/${object#/}"
+ cauldron_chroot rm "$object"
+ liberror_check || return $?
+ fi
+ fi
+ done
+
+ cauldron_chroot_done "$target"
+ liberror_check || return $?
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
+## @param target chroot directory
+##
+## Ensures the existence of basic FHS directories, dev nodes, etc. in the
target
+## chroot directory. If the target chroot parameter isn't given, it defaults
to
+## CAULDRON_BUILD.
+##
+#-------------------------------------------------------------------------------
+function cauldron_fs_bootstrap() {
+ local target="${1:-$CAULDRON_BUILD}"
+ local dir=
+
+ [[ -d "$target" ]] || return $ERR_TARGET
+
+ # guarantee the existence of necessary basic directories
+ for dir in "${CAULDRON_FHS_DIRS[@]}"
+ do
+ cauldron_verbose "Attempting mkdir $target/$dir ..."
+
+ "${CAULDRON_CMD_MKDIR[@]}" "$target/$dir"
+ liberror_check "$target/$dir" || return $ERR_MK_DIR
+ done
+ for dir in tmp var/tmp
+ do
+ "${CAULDRON_CMD_CHMOD[@]}" 1777 "$target/$dir"
+ liberror_check "$target/$dir" || return $ERR_CHMOD_FILE
+ done
+ "${CAULDRON_CMD_CHMOD[@]}" 0750 "$target/root"
+ liberror_check "$target/root" || return $ERR_CHMOD_FILE
+
+ cauldron_chroot_init "$target"
+ liberror_check || return $?
+
+ # run ldconfig in the target to ensure proper library links
+ (
+ # set _everything_ in locale to "C" first
+ export LANG=C
+ export LC_ALL=C
+ cauldron_chroot ldconfig
+ )
+ liberror_check || return $ERR_LDCONFIG
+
+ # guarantee that static dev nodes exist in /dev in the chroot
+ echo 'cd /dev && /sbin/MAKEDEV generic' > "$target/tmp/makedevs"
+ liberror_check "$target/tmp/makedevs" || return $ERR_MK_FILE
+ cauldron_chroot sh "/tmp/makedevs"
+ liberror_check || return $?
+ cauldron_chroot rm "/tmp/makedevs"
+ liberror_check || return $?
+
+ # guarantee the existence of /dev/initctl in the chroot
+ cauldron_chroot mkfifo -m 0660 "/dev/initctl"
+ liberror_check || return $?
+
+ cauldron_chroot_done "$target"
+ liberror_check || return $?
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
+## @param target type (bootable, chroot, ...)
+## @param target chroot directory
+##
+## Ensures the existence of sane default configs in etc in the target chroot
+## directory. This includes things like etc/passwd, etc/group, etc. If the
+## target directory parameter isn't given, it defaults to CAULDRON_BUILD.
+##
+#-------------------------------------------------------------------------------
+function cauldron_etc_configs() {
+ local targettype="$1"
+ local target="${2:-$CAULDRON_BUILD}"
+ local srcdir="$CAULDRON_CONFIG/base_etc"
+ local sysconfig="$target/etc/sysconfig"
+ local config=
+
+ [[ -d "$target" ]] || return $ERR_TARGET
+ [[ -d "$srcdir" ]] || return $ERR_DIR_ACCESS
+
+ for config in "${CAULDRON_ETC_CONFIGS[@]}"
+ do
+ # ensure subdirs exist before copying
+ if [[ "${config%/*}" != "$config" ]]
+ then
+ "${CAULDRON_CMD_MKDIR[@]}" "$target/etc/${config%/*}" ||
+ return $ERR_MK_DIR
fi
+ "${CAULDRON_CMD_CP_FORCE[@]}" "$srcdir/$config" "$target/etc/$config" ||
+ return $ERR_CP_FILE
+ case "$config" in
+ shadow | gshadow )
+ "${CAULDRON_CMD_CHMOD[@]}" 0600 "$target/etc/$config" ||
+ return $ERR_CHMOD_FILE
+ ;;
+ * )
+ "${CAULDRON_CMD_CHMOD[@]}" 0644 "$target/etc/$config" ||
+ return $ERR_CHMOD_FILE
+ ;;
+ esac
+ done
+
+ echo "PERFORM_DEPMOD=y" > "$sysconfig/modutils" ||
+ return $ERR_WRITE_FILE
+ echo "ENABLE_SWAP_BEFORE_DEPMOD=y" >> "$sysconfig/modutils" ||
+ return $ERR_WRITE_FILE
+
+ # link /etc/mtab to /proc/mounts for mount command
+ "${CAULDRON_CMD_SYMLINK_FORCE[@]}" /proc/mounts "$target/etc/mtab" ||
+ return $ERR_LINK_FILE
+
+ # modify /etc/sysconfig/devices to use (e)udev
+ "${CAULDRON_CMD_SEDFILE[@]}" '/DEVICES=/s,=.*,=udev,' "$sysconfig/devices"
||
+ return $ERR_WRITE_FILE
+
+ # modify /etc/sysconfig/facilities to use corresponding facilities
+ "${CAULDRON_CMD_SEDFILE[@]}" '/root_fs=/s,=.*,=mountroot.sh,' \
+ "$sysconfig/facilities" ||
+ return $ERR_WRITE_FILE
+ "${CAULDRON_CMD_SEDFILE[@]}" '/modules=/s,=.*,=modutils,' \
+ "$sysconfig/facilities" ||
+ return $ERR_WRITE_FILE
+ "${CAULDRON_CMD_SEDFILE[@]}" '/network=/s,=.*,=network,' \
+ "$sysconfig/facilities" ||
+ return $ERR_WRITE_FILE
+ "${CAULDRON_CMD_SEDFILE[@]}" '/local_fs=/s,=.*,=mountall.sh,' \
+ "$sysconfig/facilities" ||
+ return $ERR_WRITE_FILE
+
+ case "$targettype" in
+ bootable)
+ # the "root" fs is handled by the initramfs, so write a custom one
that does
+ # nothing
+ "${CAULDRON_CMD_CAT[@]}" >
"$target/etc/init.d/runlevels/%S/mountroot.sh" \
+ << EOF
+#!/bin/bash
+PROGRAM=/bin/false
+RUNLEVEL=S
+PROVIDES=root_fs
+ESSENTIAL=yes
+
+. /etc/init.d/smgl_init
+. /etc/sysconfig/init
+
+start() { mount -t proc proc /proc; exit 0; }
+stop() { true; exit 0; }
+restart() { exit 3; }
+reload() { exit 3; }
+force_reload() { exit 3; }
+status() { exit 3; }
+usage() { echo "Usage: $0 {start|stop}"; }
+EOF
+ [[ "$?" -eq 0 ]] || return $ERR_WRITE_FILE
+
+ # modify /etc/sysconfig/mountall to not try to clean /tmp on boot
+ [[ -f "$sysconfig/mountall" ]] || return $ERR_FILE_ACCESS
+ "${CAULDRON_CMD_SEDFILE[@]}" '/CLEAN_TMP=/s,=.*,=,'
"$sysconfig/mountall" ||
+ return $ERR_WRITE_FILE
+
+ # modify /etc/sysconfig/init to boot to the correct runlevel
+ [[ -f "$sysconfig/init" ]] || return $ERR_FILE_ACCESS
+ "${CAULDRON_CMD_SEDFILE[@]}" '/RUNLEVEL=/s,=.*,=S,' "$sysconfig/init"
||
+ return $ERR_WRITE_FILE
+
+ ;;
+ chroot)
+ # ensure that a sorcery local config dir exists
+ "${CAULDRON_CMD_MKDIR[@]}" "$target/etc/sorcery/local" ||
+ return $ERR_MK_DIR
+
+ # add a basic sorcery configure with the correct architecture set, and
some
+ # sane security defaults enabled
+ echo "ARCHITECTURE=\"$CAULDRON_SORCERY_ARCH\"" \
+ >> "$target/etc/sorcery/local/config" ||
+ return $ERR_WRITE_FILE
+
+ ;;
+ *)
+ return $ERR_TARGET
+ ;;
+ esac
+}
+
+#-------------------------------------------------------------------------------
+##
+## Creates and populates the CAULDRON_SYS directory with all the spells
intended
+## for the sys filesystem.
+##
+#-------------------------------------------------------------------------------
+function cauldron_populate_sys() {
+ local target="$CAULDRON_SYS"
+ local spells="$CAULDRON_SYS_SPELLS"
+ local spell=
+ local cache=
+
+ # make the target dir if it doesn't exist
+ "${CAULDRON_CMD_MKDIR[@]}" "$target" || return $ERR_MK_DIR
+
+ # ensure the existence of standard directories in the target dir
+ for dir in "${CAULDRON_FHS_DIRS[@]}"
+ do
+ "${CAULDRON_CMD_MKDIR[@]}" "$target/$dir"
+ liberror_check || return $?
done

+ # find the cache file for each spell and unpack it to the target dir
+ for spell in $(< "$spells")
+ do
+ # get the spell's installed version and/or cache file
+ cache=$(cauldron_sorcerous_spell_cache "$spell")
+ liberror_check
+
+ cauldron_verbose "Unpacking to $(libcolor_dir $target): \
+ $(libcolor_file $cache)"
+
+ "${CAULDRON_CMD_UNPACK_TARGETDIR[@]/TARGETDIR/$target}" "$cache" ||
+ return $ERR_UNPACK_CACHE
+ #liberror_check
+ done
+
+ # ensure sane default /etc configs
+ cauldron_etc_configs 'sys' "$target"
+ liberror_check || return $?
+
+ ## ensure the sys chroot is properly bootstrapped
+ #cauldron_fs_bootstrap "$target"
+ #liberror_check || return $?
+
+ # run ldconfig over the target to ensure proper dynamic library links exist
+ # set _everything_ in locale to "C" first
+ export LANG=C
+ export LC_ALL=C
+ "$CAULDRON_BUILD/sbin/ldconfig" -r "$target" ||
+ return $ERR_LDCONFIG
+
return $ERR_OK
}

@@ -133,9 +439,23 @@ function cauldron_clean_iso_system() {
##

#-------------------------------------------------------------------------------
function cauldron_package_sys() {
+ local target="$CAULDRON_TMP"
+ local sys="$CAULDRON_SYS_NAME"
+
+ [[ -d "$target" ]] || return $ERR_DIR_ACCESS
+
+ # remove any existing sys package before proceeding
+ if readlink -q "$target/$sys"*
+ then
+ "${CAULDRON_CMD_RM[@]}" "$target/$sys"* ||
+ return $ERR_RM_FILE
+ fi
+
+ cauldron_verbose "Packing sys to $(libcolor_file $sys)"
"${CAULDRON_CMD_ARCHIVE_SYS[@]}" || return $ERR_SYS_PACKAGE

- "${CAULDRON_CMD_COMPRESS[@]}" "$CAULDRON_BUILD/$CAULDRON_SYS_NAME".* ||
+ cauldron_verbose "Compressing $(libcolor_file $sys)"
+ "${CAULDRON_CMD_COMPRESS[@]}" "$target/$sys"* ||
return $ERR_SYS_COMPRESS

return $ERR_OK
@@ -143,19 +463,515 @@ function cauldron_package_sys() {


#-------------------------------------------------------------------------------
##
-## Builds the ISO filesystem using the generated ISO data and the filename
-## set in the cauldron config file.
+## Creates and populates the CAULDRON_ISO directory with all the spells
intended
+## for the iso filesystem. If CAULDRON_ISO_SQUASH is enabled,
+## CAULDRON_ISO_SQUASHFS is targeted instead of CAULDRON_ISO.
+##
+#-------------------------------------------------------------------------------
+function cauldron_iso_install_runtime() {
+ local target="$CAULDRON_ISO"
+ local spells="$CAULDRON_ISO_RUNTIME"
+ local caches="$CAULDRON_ISO_CACHES"
+ local cachedir="var/cache/sorcery"
+ local sysconfig="$target/etc/sysconfig"
+ local sys="$CAULDRON_SYS_NAME_FULL"
+ local src="$(${CAULDRON_CMD_READLINK[@]} $CAULDRON_TMP/$sys)"
+ local karch=
+ local kimg=
+ local spell=
+ local cache=
+
+ # alter the target if a compressed fs is desired
+ [[ "$CAULDRON_ISO_SQUASH" == "yes" ]] &&
+ target="$CAULDRON_ISO_SQUASHFS"
+
+ # convert the spell list to an array if it's a file
+ [[ -f "$spells" ]] && spells=( $(< "$spells") )
+ # make sure we have spells to add
+ [[ -n "$spells" ]] || return $ERR_ISO_CREATE
+
+ # make the target dir if it doesn't exist
+ "${CAULDRON_CMD_MKDIR[@]}" "$target" || return $ERR_MK_DIR
+
+ # ensure the existence of standard directories in the target dir
+ for dir in "${CAULDRON_FHS_DIRS[@]}"
+ do
+ "${CAULDRON_CMD_MKDIR[@]}" "$target/$dir" || return $ERR_MK_DIR
+ done
+
+ # find the cache file for each runtime spell and unpack it to the target
dir
+ for spell in "${spells[@]}"
+ do
+ # get the spell's installed version and/or cache file
+ cache=$(cauldron_sorcerous_spell_cache "$spell")
+ liberror_check "$spell"
+
+ cauldron_verbose "Unpacking to $(libcolor_dir $target): \
+ $(libcolor_file $cache)"
+
+ "${CAULDRON_CMD_UNPACK_TARGETDIR[@]/TARGETDIR/$target}" "$cache" ||
+ return $ERR_UNPACK_CACHE
+ done
+
+ # ensure that the libraries from gcc are unpacked, since many programs
rely on
+ # them instead of libc alone (particularly if they are C++ programs)
+ cache=$(cauldron_sorcerous_spell_cache "gcc")
+ liberror_check "gcc libs" || return $ERR_ISO_CREATE
+ cauldron_verbose "Unpacking to $(libcolor_dir $target): \
+ $(libcolor_file gcc shared libraries)"
+ "${CAULDRON_CMD_UNPACK_TARGETDIR[@]/TARGETDIR/$target}" "$cache" \
+ --wildcards \
+ "usr/lib/lib*" ||
+ return $ERR_UNPACK_CACHE
+
+ # ensure sane default /etc configs
+ cauldron_verbose "Ensuring sane /etc defaults in $(libcolor_dir $target)"
+ cauldron_etc_configs 'iso' "$target"
+ liberror_check || return $?
+
+ # run ldconfig over the target to ensure proper dynamic library links exist
+ # set _everything_ in locale to "C" first
+ export LANG=C
+ export LC_ALL=C
+ cauldron_verbose "Running ldconfig in $(libcolor_dir $target)"
+ "$CAULDRON_BUILD/sbin/ldconfig" -r "$target" ||
+ return $ERR_LDCONFIG
+
+ # install busybox symlinks and set the PATH accordingly
+ if [[ -x "$target/sbin/busybox" ]]
+ then
+ cauldron_verbose "Installing busybox symlinks in \
+ $(libcolor_dir $target/usr/busybox)"
+
+ "${CAULDRON_CMD_MKDIR[@]}" "$target/usr/busybox" || return $ERR_MK_DIR
+
+ cauldron_chroot_init "$target"
+ liberror_check || return $?
+ cauldron_chroot "/sbin/busybox" --install -s "/usr/busybox"
+ liberror_check || return $?
+ cauldron_chroot_done "$target"
+ liberror_check || return $?
+
+ cauldron_verbose "Adding busybox symlinks to PATH via \
+ $(libcolor_file $target/etc/profile.d/busybox.sh)"
+
+ echo 'export PATH="$PATH:/usr/busybox"' >
"$target/etc/profile.d/busybox.sh" ||
+ return $ERR_WRITE_FILE
+
+ "${CAULDRON_CMD_CHMOD[@]}" 0755 "$target/etc/profile.d/busybox.sh" ||
+ return $ERR_CHMOD_FILE
+
+ # busybox also needs specifically gtbl, instead of tbl, for man
+ # symlinking to tbl provided by groff works fine
+ "${CAULDRON_CMD_SYMLINK[@]}" "tbl" "$target/usr/bin/gtbl" ||
+ return $ERR_LINK_FILE
+ fi
+
+ # make sure sys is added to iso
+ "${CAULDRON_CMD_CP_FORCE[@]}" "$src" "$target/${src##*/}" ||
+ return $ERR_CP_FILE
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
+##
+## Downloads the sources to be included in the final iso as optional installs
+## into the target installed system. If CAULDRON_ISO_SQUASH is enabled,
+## CAULDRON_ISO_SQUASHFS is targeted instead of CAULDRON_ISO.
+##
+#-------------------------------------------------------------------------------
+function cauldron_iso_install_caches() {
+ local caches=( "${1:-${CAULDRON_ISO_CACHES[@]}}" )
+ local srcdir="$CAULDRON_BUILD/var/cache/sorcery"
+ local target="$CAULDRON_ISO"
+ local cachedir="/var/cache/sorcery"
+ local spell=
+ local cache=
+
+ # alter the target if a compressed fs is desired
+ [[ "$CAULDRON_ISO_SQUASH" == "yes" ]] &&
+ target="$CAULDRON_ISO_SQUASHFS"
+
+ # make sure the target base dir exists
+ [[ -d "$target" ]] || return $ERR_DIR_ACCESS
+ # make sure the source cache dir exists
+ [[ -d "$srcdir" ]] || return $ERR_DIR_ACCESS
+
+ # convert the cache list to an array if it's a file
+ [[ -f "$caches" ]] && caches=( $(< "$caches") )
+
+ # make sure we have at least one valid cache to deal with
+ [[ -n "$caches" ]] || return $ERR_ISO_CREATE
+
+ # make the target cache dir if it doesn't exist
+ "${CAULDRON_CMD_MKDIR[@]}" "$target/$cachedir" || return $ERR_MK_DIR
+
+ # copy all the installable caches over
+ for spell in "${caches[@]}"
+ do
+ # get the spell's installed version and/or cache file
+ cache=$(cauldron_sorcerous_spell_cache "$spell")
+ liberror_check "spell: $spell" || return $?
+ if [[ -z "$cache" ]]
+ then
+ liberror_print_error \
+ $ERR_SORCEROUS_SPELL_CACHE \
+ "failed to find spell cache for $spell"
+ return $ERR_SORCEROUS_SPELL_CACHE
+ fi
+
+ cauldron_verbose "Copying cache to $(libcolor_dir $target): " \
+ "$(libcolor_file $cache)"
+
+ "${CAULDRON_CMD_CP[@]}" "$cache" "$target/$cachedir" ||
+ return $ERR_CP_FILE
+ done
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
+##
+## Downloads the sources to be included in the final iso as optional installs
+## into the target installed system. If CAULDRON_ISO_SQUASH is enabled,
+## CAULDRON_ISO_SQUASHFS is targeted instead of CAULDRON_ISO.
+##
+#-------------------------------------------------------------------------------
+function cauldron_iso_install_sources() {
+ local spells=( "${@:-${CAULDRON_ISO_SOURCES[@]}}" )
+ local srcdir="$CAULDRON_BUILD/var/spool/sorcery"
+ local target="$CAULDRON_ISO/usr/src"
+ local spellsrc=
+ local file=
+ local kernel="$CAULDRON_KERNEL"
+ local kvers="$CAULDRON_KERNEL_VERS"
+
+ [[ -f $spells ]] && spells=( $(< $spells) )
+
+ # alter the target if a compressed fs is desired
+ [[ "$CAULDRON_ISO_SQUASH" == "yes" ]] &&
+ target="$CAULDRON_ISO_SQUASHFS/usr/src"
+
+ # make the sys dir if it doesn't exist
+ "${CAULDRON_CMD_MKDIR[@]}" "$target" || return $ERR_MK_DIR
+
+ cauldron_chroot_init "$CAULDRON_BUILD"
+ liberror_check || return $?
+
+ for spell in "${spells[@]}"
+ do
+ # download the source file(s)
+ cauldron_chroot summon "$spell"
+ liberror_check || return $?
+
+ # get the list of the actual files downloaded
+ spellsrc=( $(cauldron_chroot -q summon -p source $spell) )
+ liberror_check || return $?
+
+ # copy each file into the target
+ for file in "${spellsrc[@]}"
+ do
+ cauldron_verbose "Copying spell source to $(libcolor_dir $target): \
+ $(libcolor_file $file)"
+
+ "${CAULDRON_CMD_CP[@]}" "$srcdir/$file" "$target/" ||
+ return $ERR_CP_FILE
+ done
+ done
+
+ # add the kernel sources
+ cauldron_verbose "Copying kernel sources to $(libcolor_dir $target): \
+ $(libcolor_file $kernel-$kvers)"
+ "${CAULDRON_CMD_CP[@]}" "$srcdir/$kernel-$kvers"* "$target/" ||
+ return $ERR_CP_FILE
+ "${CAULDRON_CMD_CP[@]}" "$srcdir/$kernel-$kvers"* "$target/" ||
+ return $ERR_CP_FILE
+
+ cauldron_chroot_done "$CAULDRON_BUILD"
+ liberror_check || return $?
+}
+
+#-------------------------------------------------------------------------------
+##
+## Generates a compressed filesystem of the iso runtime, using the configured
+## command. This is typically a squashfs image. The final image is later
copied
+## into the iso target directory to be used during the iso boot.
+##
+#-------------------------------------------------------------------------------
+function cauldron_iso_compressedfs() {
+ local target="$CAULDRON_ISO_SQUASHFS"
+ local binpath="$CAULDRON_BUILD/usr/sbin"
+
+ [[ -d "$target" ]] || return $ERR_TARGET
+
+ # don't do anything if we already have the image
+ [[ -f "$CAULDRON_ISO_SQUASHIMG" ]] && return $ERR_OK
+
+ # wipe the bash history if it exists
+ if [[ -f "$target/root/.bash_history" ]]
+ then
+ printf '' > "$target/root/.bash_history" ||
+ return $ERR_WRITE_FILE
+ fi
+
+ "$binpath/${CAULDRON_CMD_MKSQUASHFS[@]}" ||
+ return $ERR_ISO_COMPRESSFS
+}
+
+#-------------------------------------------------------------------------------
+## @param target path (optional)
+##
+## Packages the iso filesystem using the generated iso data and the filename
+## set in the cauldron config file. If the target path isn't given as an
+## argument, it defaults to CAULDRON_ISO.
+##
+#-------------------------------------------------------------------------------
+function cauldron_iso_bootloader() {
+ local target="${1:-$CAULDRON_ISO}"
+ local src="$CAULDRON_BUILD"
+ local loader="$CAULDRON_ISO_BOOTLOADER"
+ local binpath="$CAULDRON_BUILD/usr/bin"
+ local conf="$CAULDRON_CONFIG/$CAULDRON_ARCH/iso"
+
+ [[ -d "$target" ]] || return $ERR_TARGET
+ [[ -d "$src" ]] || return $ERR_DIR_ACCESS
+ [[ -d "$binpath" ]] || return $ERR_DIR_ACCESS
+ [[ -d "$conf" ]] || return $ERR_DIR_ACCESS
+
+ case "$loader" in
+ syslinux )
+ # ensure /boot/syslinux exists in the target
+ "${CAULDRON_CMD_MKDIR[@]}" "$target/boot/syslinux" ||
+ return $ERR_MK_DIR
+
+ # copy the main config file
+ "${CAULDRON_CMD_CP[@]}" \
+ "$conf/syslinux.cfg" \
+ "$target/boot/syslinux/syslinux.cfg" ||
+ return $ERR_CP_FILE
+
+ # ensure that /isolinux exists in the target for booting cdroms
+ "${CAULDRON_CMD_MKDIR[@]}" "$target/isolinux" ||
+ return $ERR_MK_DIR
+
+ # copy the main config to the isolinux config
+ "${CAULDRON_CMD_CP[@]}" \
+ "$target/boot/syslinux/syslinux.cfg" \
+ "$target/isolinux/isolinux.cfg" ||
+ return $ERR_CP_FILE
+
+ # copy over the bootup message if present
+ if [[ -f "$conf/syslinux.msg" ]]
+ then
+ "${CAULDRON_CMD_CP[@]}" \
+ "$conf/syslinux.msg" \
+ "$target/boot/syslinux/syslinux.msg" ||
+ return $ERR_CP_FILE
+ fi
+
+ # copy in all necessary syslinux/isolinux modules
+ case "$CAULDRON_ISO_BOOTENV" in
+ efi )
+ mods="$src/usr/share/syslinux/efi"
+ ;;
+ bios )
+ mods="$src/usr/share/syslinux"
+
+ # copy the isolinux.bin boot file into the target's /isolinux
+ "${CAULDRON_CMD_CP[@]}" \
+ "$src/usr/share/syslinux/isolinux.bin" \
+ "$target/isolinux/" ||
+ return $ERR_CP_FILE
+ ;;
+ * )
+ ;;
+ esac
+ for mod in "$mods/"*.c32
+ do
+ "${CAULDRON_CMD_CP[@]}" "$mod" "$target/boot/syslinux/" ||
+ return $ERR_CP_FILE
+ done
+ ;;
+ grub )
+ ;;
+ * )
+ return $ERR_ISO_LOADER
+ ;;
+ esac
+
+ # install the bootloader background image
+ if [[ -f "$conf/installsmgl.img" ]]
+ then
+ "${CAULDRON_CMD_CP[@]}" "$conf/installsmgl.img" "$target/boot/" ||
+ return $ERR_CP_FILE
+ fi
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
+## @param target path (optional)
+##
+## Packages the iso filesystem using the generated iso data and the filename
+## set in the cauldron config file. If the target path isn't given as an
+## argument, it defaults to CAULDRON_ISO.
##

#-------------------------------------------------------------------------------
function cauldron_package_iso() {
- "${CAULDRON_CMD_MKISO[@]}" || return $ERR_ISO_PACKAGE
+ local target="${1:-$CAULDRON_ISO}"
+ local binpath="$CAULDRON_BUILD/usr/bin"
+ local cimg="$CAULDRON_ISO_SQUASHIMG"
+
+ [[ -d "$target" ]] || return $ERR_TARGET
+ [[ -d "$binpath" ]] || return $ERR_DIR_ACCESS
+
+ # add bootloader files and setup
+ cauldron_iso_bootloader "$target"
+ liberror_check || return $ERR_ISO_PACKAGE
+
+ # if using a compressed fs for the iso runtime, copy that in
+ if [[ "$CAULDRON_ISO_SQUASH" == "yes" ]]
+ then
+ # only copy if the compressed image isn't written directly into the
target
+ # during image creation
+ if [[ "$cimg" != "$target/${cimg##*/}" ]]
+ then
+ "${CAULDRON_CMD_CP[@]}" "$cimg" "$target/" || return $ERR_CP_FILE
+ fi
+ fi
+
+ # wipe the bash history if it exists
+ if [[ -f "$target/root/.bash_history" ]]
+ then
+ printf '' > "$target/root/.bash_history" ||
+ return $ERR_WRITE_FILE
+ fi
+
+ # build the final filesystem image
+ "$binpath/${CAULDRON_CMD_MKISOFS[@]}" "$target" || return $ERR_ISO_PACKAGE

- "${CAULDRON_CMD_COMPRESS[@]}" "$CAULDRON_ISO_NAME" || return
$ERR_ISO_COMPRESS
+ # compress it if desired
+ if [[ "$CAULDRON_ISO_COMPRESS" == "yes" ]]
+ then
+ "$binpath/${CAULDRON_CMD_COMPRESS[@]}" "$CAULDRON_ISO_NAME" ||
+ return $ERR_ISO_COMPRESS
+ fi

return $ERR_OK
}


#-------------------------------------------------------------------------------
+## @param target path (optional)
+##
+## Builds the iso kernel and installs it into the iso filesystem. If the
target
+## path isn't given as an argument, it defaults to CAULDRON_ISO. If using a
+## compressed filesystem for the iso runtime (e.g., squashfs) the bootenv is
set
+## to CAULDRON_ISO so that the kernel image itself is properly installed
outside
+## the compressed image to be used during iso boot (it is additionally copied
+## inside the iso runtime). If not using a compressed runtime, then bootenv
is
+## equal to the normal target, so there is only one copy of the kernel image,
+## which is available both at boot and runtime (due to having a single
+## filesystem).
+##
+#-------------------------------------------------------------------------------
+function cauldron_iso_kernel() {
+ local target="$CAULDRON_ISO"
+ local bootenv="$CAULDRON_ISO"
+ local kernel="$CAULDRON_KERNEL"
+ local kvers="$CAULDRON_KERNEL_VERS"
+ local kconf="$CAULDRON_KERNEL_CONF"
+ local build="$CAULDRON_BUILD"
+ local kimg="$build/usr/src"
+ local karch="$CAULDRON_ARCH"
+
+ # alter the target if a compressed fs is desired
+ [[ "$CAULDRON_ISO_SQUASH" == "yes" ]] &&
+ target="$CAULDRON_ISO_SQUASHFS"
+
+ [[ -d "$target" ]] || return $ERR_TARGET
+
+ # create the bootenv directory if it doesn't exist
+ # this is only needed if bootenv != target, which is the case when using a
+ # compressed iso runtime
+ if [[ ! -d "$bootenv" ]]
+ then
+ "${CAULDRON_CMD_MKDIR[@]}" "$bootenv" || return $ERR_MK_DIR
+ fi
+
+ # build the kernel in CAULDRON_BUILD
+ case "$kernel" in
+ linux )
+ # adjust kernel arch as necessary
+ case "$karch" in
+ x86_64 )
+ karch="x86"
+ ;;
+ esac
+ kimg="$kimg/$kernel-$kvers/arch/$karch/boot/bzImage"
+ cat > "$build/tmp/kbuild.sh" <<- KBuild
+ #!/bin/sh
+ cd /usr/src/$kernel-$kvers &&
+ make -j "${CAULDRON_BUILD_JOBS:-1}" &&
+ make -j "${CAULDRON_BUILD_JOBS:-1}" modules_install
+KBuild
+ ;;
+ * )
+ return $ERR_KERNEL
+ ;;
+ esac
+
+ # build the kernel (and possibly install, depending on the build script)
+ if [[ -f "$build/tmp/kbuild.sh" ]]
+ then
+ cauldron_chroot_init "$build"
+ liberror_check || return $?
+ cauldron_chroot sh "/tmp/kbuild.sh"
+ liberror_check || return $?
+ cauldron_chroot rm "/tmp/kbuild.sh"
+ liberror_check || return $?
+ cauldron_chroot_done "$build"
+ liberror_check || return $?
+ fi
+
+ # ensure the existence of the built kernel image
+ [[ -h "$kimg" ]] && kimg="$(${CAULDRON_CMD_READLINK[@]} $kimg)"
+ [[ -f "$kimg" ]] || return $ERR_FILE_ACCESS
+
+ # copy the built kernel image from the build dir to /boot/kernel in the
+ # bootenv as a standard location for the iso bootloader
+ "${CAULDRON_CMD_MKDIR[@]}" "$bootenv/boot" || return $ERR_MK_DIR
+ "${CAULDRON_CMD_CP[@]}" "$kimg" "$bootenv/boot/kernel" ||
+ return $ERR_CP_FILE
+
+ # symlink the bootenv kernel image to a useful name so that we always know
what
+ # kernel the iso is running
+ "${CAULDRON_CMD_SYMLINK_FORCE[@]}" \
+ "/boot/kernel" \
+ "$bootenv/boot/$kernel-$karch-$kvers" ||
+ return $ERR_LINK_FILE
+
+ # if using a compressed iso runtime, the kernel should also be copied to
the
+ # runtime for install purposes
+ if [[ "$CAULDRON_ISO_SQUASH" == "yes" ]]
+ then
+ "${CAULDRON_CMD_CP[@]}" "$kimg" "$target/boot/$kernel-$karch-$kvers" ||
+ return $ERR_CP_FILE
+ fi
+
+ # ensure that the lib/modules dir exists in the target
+ "${CAULDRON_CMD_MKDIR[@]}" "$target/lib/modules" ||
+ return $ERR_MK_DIR
+
+ # install the kernel modules into the iso
+ "${CAULDRON_CMD_CP_RECURSE[@]}" \
+ "$build/lib/modules/$kvers" \
+ "$target/lib/modules" ||
+ return $ERR_CP_FILE
+
+}
+
+#-------------------------------------------------------------------------------
##
## Sources the enchantment config files in the build chroot so that we can
## obtain (and modify if the user so wishes) the paths where we will store
the
@@ -163,104 +979,452 @@ function cauldron_package_iso() {
##

#-------------------------------------------------------------------------------
function cauldron_source_enchantment() {
- local host_enchant_config="$CAULDRON_HOST/etc/cauldron/enchantment/config"
- local enchant_config="$CAULDRON_BUILD/etc/enchantment/config"
- local enchant_lconfig="$CAULDRON_BUILD/etc/enchantment/local/config"
+ local host_config="$CAULDRON_HOST/etc/cauldron/enchantment.conf"
+ local config="${CAULDRON_ENCHANT_CONFIG:-$host_config}"

- # make sure the ISO has the enchantment configs first
- # if, we need to copy them (they are required for the ISO)
- if [[ ! -f "$enchant_config" ]]
- then
- "${CAULDRON_CMD_CP_FORCE[@]}" "$host_enchant_config" "$enchant_config" ||
- liberror_die $ERR_ENCHANT_CONFIG
- fi
+ [[ -f "$config" ]] || return $ERR_ENCHANT_CONFIG

- # set ENCHANT_ISO_PATH before sourcing the enchantment configs so all the
- # enchantment variables used by cauldron will be relative to the cauldron
- # build chroot
- ENCHANT_ISO_PATH="$CAULDRON_BUILD"
+ # make sure enchantment can find its configs
+ ENCHANT_CONF="${ENCHANT_CONF:-$CAULDRON_ENCHANT_DIR/config}"

# source the enchantment config to make sure we get the paths correct
- . "$enchant_config" 2>$CAULDRON_NULL ||
- liberror_die $ERR_ENCHANT_CONFIG
- # try to source the local config, but don't die if it doesn't exist
- . "$enchant_lconfig" 2>$CAULDRON_NULL
+ . "$config" @>$CAULDRON_NULL || return $ERR_ENCHANT_CONFIG
}


#-------------------------------------------------------------------------------
##
-## Adds the given installer(s) listed in $CAULDRON_INSTALLERS to the ISO
system.
-## The user can then choose the installer either at boot-time or run-time.
+## Adds the given enchanter(s) (installer(s)) listed in $CAULDRON_ENCHANTERS
to
+## the ISO system. The user can then choose the installer either at
boot-time or
+## run-time.
##
-## The installer(s) can currently be shell or menu (future: X?). In theory it
-## should support any installer, as long as it's packaged in its own
directory
-## and the name of that dir is included in CAULDRON_INSTALLERS, and the
binary
-## to execute for that installer is named enchantment* (i.e., enchantment
+## The enchanter(s) can currently be shell or menu (future: X?). In theory it
+## should support any enchanter, as long as it's packaged in its own
directory
+## and the name of that dir is included in CAULDRON_ENCHANTERS, and the
binary
+## to execute for that enchanter is named enchantment* (i.e., enchantment
## (shell) or enchantment-menu). This behavior may change in the future
though.
##

#-------------------------------------------------------------------------------
-function cauldron_add_installers() {
- local installer=""
+function cauldron_add_enchanters() {
+ local target="$CAULDRON_ISO"
+ local enchanters="${1:-${ENCHANT_DATA#/}}"
+ local srcdir="$CAULDRON_ENCHANT_DIR"
+ local enchanter=""

- # no need to return error if cauldron_source_enchantment fails, because it
- # runs liberror_die itself on error, which causes an exit
- [[ -z $ENCHANT_DATA ]] && cauldron_source_enchantment
+ # alter the target if a compressed fs is desired
+ [[ "$CAULDRON_ISO_SQUASH" == "yes" ]] &&
+ target="$CAULDRON_ISO_SQUASHFS"

- # make sure CAULDRON_BUILD/ENCHANT_DATA exists
- "${CAULDRON_CMD_MKDIR[@]}" "$ENCHANT_DATA" || return $ERR_INSTALLER_DIR
+ [[ -d "$CAULDRON_ENCHANT_DIR" ]] || return $ERR_ENCHANT_SRC
+ [[ -d "$target/$data" ]] || return $ERR_ENCHANT_DIR

- for installer in $CAULDRON_INSTALLERS
+ for enchanter in "${CAULDRON_ENCHANTERS[@]}"
do
+ cauldron_verbose "Installing enchanter: $enchanter"
+
+ "${CAULDRON_CMD_CP_RECURSE[@]}" "$srcdir/$enchanter" "$target/$data/" ||
+ return $ERR_COPY_ENCHANTER
+
+ if [[ -f "$target/$data/$enchanter/bin/enchantment-$enchanter" ]]
+ then
+ "${CAULDRON_CMD_SYMLINK_FORCE[@]}" \
+ "$ENCHANT_DATA/$enchanter/bin/enchantment-$enchanter" \
+ "$target/usr/sbin/" ||
+ return $ERR_LINK_ENCHANTER
+ fi
+ echo "$enchanter:$(cat $target/$enchanters/$enchanter/description)" \
+ >> "$target/$ENCHANT_MODULES/welcome/enchanters"
+ done
+
+ # set the default enchanter to the first entry in the enchanters list
+ "${CAULDRON_CMD_SYMLINK_FORCE[@]}" \
+ "/usr/sbin/enchantment-$CAULDRON_ENCHANTERS" \
+ "$target/usr/sbin/enchantment" ||
+ return $ERR_LINK_ENCHANTER
+
+ # set the default login environment according to the default enchanter
+ case "$CAULDRON_ENCHANTERS" in
+ shell)
+ "${CAULDRON_CMD_SYMLINK_FORCE[@]}" \
+ "$ENCHANT_DATA/shell/bashrc" \
+ "$target/root/.bashrc" ||
+ return $ERR_LINK_ENCHANTER
+ ;;
+ esac
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
+## @param target directory (optional, defaults to CAULDRON_ISO)
+##
+## Adds enchantment to the target dir, which defaults to CAULDRON_ISO if not
+## given as the first parameter.
+##
+#-------------------------------------------------------------------------------
+function cauldron_enchant() {
+ local target="$CAULDRON_ISO"
+ local srcconf="$CAULDRON_ENCHANT_CONFIG"
+ local srcdir="$CAULDRON_ENCHANT_DIR"
+ local confdir=""
+ local config=""
+ local component=
+ local compdest=
+
+ # alter the target if a compressed fs is desired
+ [[ "$CAULDRON_ISO_SQUASH" == "yes" ]] &&
+ target="$CAULDRON_ISO_SQUASHFS"
+
+ # ensure a valid target
+ [[ -n "$target" ]] || return $ERR_TARGET
+
+ confdir="$target/etc/enchantment"
+ config="$confdir/enchantment.conf"
+
+ # load the enchantment config so we can get the enchantment path info
+ cauldron_source_enchantment
+ liberror_check || return $ERR_ENCHANT_ISO
+
+ # ensure that we have a valid target to enchant to
+ [[ -n "$ENCHANT_DATA" ]] || return $ERR_ENCHANT_ISO
+
+ # ensure the target enchantment directory exists in the iso fs
+ if [[ ! -d "$target/${ENCHANT_DATA#/}" ]]
+ then
+ "${CAULDRON_CMD_MKDIR[@]}" "$target/$ENCHANT_DATA" ||
+ return $ERR_ENCHANT_ISO
+ fi
+
+ # ensure the SMGL common scripts directory exists in the target
+ if [[ ! -d "$target/${ENCHANT_COMMON#/}" ]]
+ then
+ "${CAULDRON_CMD_MKDIR[@]}" "$target/$ENCHANT_COMMON" ||
+ return $ERR_ENCHANT_ISO
+ fi
+
+ # copy all SMGL common scripts into the target
+ "${CAULDRON_CMD_CP_RECURSE[@]}" \
+ "$CAULDRON_COMMON"/* \
+ "$target/$ENCHANT_COMMON/" ||
+ return $ERR_ENCHANT_ISO
+
+ # make sure the target config file directory exists
+ cauldron_verbose "Making main enchantment config directory: \
+ $(libcolor_dir $confdir)"
+ "${CAULDRON_CMD_MKDIR[@]}" "$confdir" ||
+ return $ERR_ENCHANT_ISO
+
+ # add the runtime config file
+ cauldron_verbose "Installing enchantment config file: \
+ $(libcolor_file $config)"
+ "${CAULDRON_CMD_CP[@]}" "$srcconf" "$config" ||
+ return $ERR_ENCHANT_ISO
+
+ # add all enabled enchantment components
+ for component in "${CAULDRON_ENCHANT_COMPONENTS[@]}"
+ do
+ case "$component" in
+ config* )
+ compdest="$ENCHANT_CONFIGS"
+ ;;
+ lib* )
+ compdest="$ENCHANT_LIBS"
+ ;;
+ module* )
+ compdest="$ENCHANT_MODULES"
+ ;;
+ doc* )
+ compdest="$ENCHANT_DOCS"
+ ;;
+ * )
+ compdest=
+ esac
+
+ # ensure components are installed relative to the target directory
+ compdest="$target/${compdest#/}"
+
+ cauldron_verbose "Installing enchantment component: $component"
+
+ if [[ "$component" == "doc" ]]
+ then
+ for manpage in "$srcdir/$component/"*.[0-9]
+ do
+ local dir="$target/usr/share/man/man${manpage##*.}"
+ "${CAULDRON_CMD_MKDIR[@]}" "$dir" ||
+ return $ERR_ENCHANT_ISO
+ "${CAULDRON_CMD_CP[@]}" "$manpage" "$dir/" ||
+ return $ERR_ENCHANT_ISO
+ "${CAULDRON_CMD_CHMOD[@]}" 0644 "$dir/${manpage##*/}" ||
+ return $ERR_ENCHANT_ISO
+ continue
+ done
+ fi
+
+ "${CAULDRON_CMD_MKDIR[@]}" "${compdest#$component}"
"${CAULDRON_CMD_CP_RECURSE[@]}" \
- "$CAULDRON_LIBS/enchantment/$installer" \
- "$ENCHANT_DATA/" ||
- return $ERR_COPY_INSTALLER
- "$CAULDRON_CMD_SYMLINK_FORCE[@]}" \
- "$ENCHANT_DATA/$installer"/bin/enchantment* \
- "$CAULDRON_BUILD/usr/sbin/" ||
- return $ERR_LINK_INSTALLER
+ "$srcdir/$component"/* \
+ "$compdest" ||
+ return $ERR_ENCHANT_ISO
+ done
+
+ # add all enabled enchanters (installers)
+ cauldron_add_enchanters
+ liberror_check || return $ERR_ENCHANT_ISO
+
+ # add available editors information
+ if [[ "${#CAULDRON_ISO_EDITORS[@]}" -gt 0 ]]
+ then
+ echo "This iso provides the following editors by default:" \
+ > "$ENCHANT_MODULES/welcome/editors"
+ for editor in "${CAULDRON_ISO_EDITORS[@]}"
+ do
+ echo "$editor" | sed 's/^\([^:]*\)/::@[\1]/'
+ done | column -t -s: \ >> "$ENCHANT_MODULES/welcome/editors" ||
+ return $ERR_WRITE_FILE
+ fi
+
+ # save version information to the iso
+ cauldron_verbose "Writing version info"
+ "${CAULDRON_CMD_MKDIR[@]}" "$target/$ENCHANT_DATA/version"
+ # blank all the files
+ for file in enchantment iso sorcery sorcery_version grimoire
grimoire_version
+ do
+ echo -n "" > "$target/$ENCHANT_DATA/version/$file" || return
$ERR_WRITE_FILE
+ done
+ # write the version info file by file
+ echo "$ENCHANT_VERSION" >> "$target/$ENCHANT_DATA/version/enchantment" ||
+ return $ERR_WRITE_FILE
+ echo "$ENCHANT_ISO_VERSION" >> "$target/$ENCHANT_DATA/version/iso" ||
+ return $ERR_WRITE_FILE
+ "${CAULDRON_CMD_CAT[@]}" "$CAULDRON_BUILD/etc/sorcery/version" \
+ >> "$target/$ENCHANT_DATA/version/sorcery" ||
+ return $ERR_WRITE_FILE
+ for grim in "$CAULDRON_BUILD/var/lib/sorcery/codex"/*
+ do
+ echo "${grim##*/}" >> "$target/$ENCHANT_DATA/version/grimoire" ||
+ return $ERR_WRITE_FILE
+ "${CAULDRON_CMD_HEAD[@]}" -n1 "$grim/VERSION" \
+ >> "$target/$ENCHANT_DATA/version/grimoire_version" ||
+ return $ERR_WRITE_FILE
+ done
+
+ # save the architecture information to the iso
+ cauldron_verbose "Installing architecture info"
+ echo "$CAULDRON_ARCH" >> "$target/$ENCHANT_DATA/archs" ||
+ return $ERR_WRITE_FILE
+
+ # set up the init system to load the enchanters
+ cauldron_verbose "Setting iso init to load enchanters..."
+ cauldron_enchant_init "$target"
+ liberror_check || return $ERR_ENCHANT_ISO
+
+ # for all modules, replace instances of @...@ with corresponding values
from
+ # the environment variables
+ for module in "$target/${ENCHANT_DATA#/}/modules/"*
+ do
+ local file="$module/instructions"
+ [[ -f "$file" ]] || continue
+
+ for var in $("${CAULDRON_CMD_GREP[@]}" -o '@[^[ @]*@' "$file")
+ do
+ local evar="${var#@}"
+ evar="${evar%@}"
+ eval local evarval="\$$evar"
+ cauldron_verbose "Writing variable $evar \($evarval\) to " \
+ "$(libcolor_file $file)"
+ "${CAULDRON_CMD_SEDFILE[@]}" "s/$var/$evarval/g" "$file" ||
+ return $ERR_WRITE_FILE
+ done
+ done
+
+ cauldron_verbose "Successfully enchanted: $target"
+}
+
+#-------------------------------------------------------------------------------
+## @param target directory (optional, defaults to CAULDRON_ISO)
+##
+## Sets up the iso's init system to run the enabled enchanters (installers).
+##
+#-------------------------------------------------------------------------------
+function cauldron_enchant_init() {
+ local target="$CAULDRON_ISO"
+ local enchantment="/usr/sbin/enchantment"
+ local tab=
+ local profile=
+
+ # alter the target if a compressed fs is desired
+ [[ "$CAULDRON_ISO_SQUASH" == "yes" ]] &&
+ target="$CAULDRON_ISO_SQUASHFS"
+
+ [[ -d "$target" ]] || return $ERR_TARGET
+
+ tab="$target/etc/inittab"
+ profile="$target/etc/profile.d/enchantment.sh"
+
+ # ensure that the etc dir exists
+ mkdir -p "$target/etc" || return $ERR_MK_DIR
+
+ # remove any existing inittab if present
+ if [[ -f "$tab" ]]
+ then
+ "${CAULDRON_CMD_RM[@]}" "$tab" ||
+ return $ERR_RM_FILE
+ fi
+
+ # copy in the default fstab
+ "${CAULDRON_CMD_CP_FORCE[@]}" \
+ "$CAULDRON_CONFIG/$CAULDRON_ARCH/iso/fstab" \
+ "$target/etc/fstab" ||
+ return $ERR_CP_FILE
+ echo "" >> "$tab" || return $ERR_WRITE_FILE
+ "${CAULDRON_CMD_SYMLINK_FORCE[@]}" \
+ "/proc/mounts" \
+ "$target/etc/mtab" ||
+ return $ERR_LINK_FILE
+
+ # copy in the default inittab
+ "${CAULDRON_CMD_CP_PRESERVE[@]}" \
+ "$CAULDRON_CONFIG/$CAULDRON_ARCH/iso/inittab" \
+ "$tab" ||
+ return $ERR_CP_FILE
+ echo "" >> "$tab" || return $ERR_WRITE_FILE
+
+ "${CAULDRON_CMD_SED[@]}" '/^tty[0-9]\+:/d' "$tab" > \
+ "$target/tmp/inittab" ||
+ return $ERR_WRITE_FILE
+ "${CAULDRON_CMD_CAT[@]}" "$target/tmp/inittab" > "$tab" ||
+ return $ERR_WRITE_FILE
+ "${CAULDRON_CMD_RM[@]}" "$target/tmp/inittab" || return $ERR_RM_FILE
+
+ # set login shells to run enchantment
+ echo "[ -f /root/.bashrc ] && source /root/.bashrc" > "$profile" ||
+ return $ERR_WRITE_FILE
+ echo "$enchantment welcome" >> "$profile" ||
+ return $ERR_WRITE_FILE
+
+ # install a login shell
+ "${CAULDRON_CMD_CP[@]}" \
+ "$CAULDRON_CONFIG/$CAULDRON_ARCH/iso/login.sh" \
+ "$target/bin/" ||
+ return $ERR_CP_FILE
+ "${CAULDRON_CMD_CHMOD[@]}" 0755 "$target/bin/login.sh" ||
+ return $ERR_CHMOD_FILE
+
+ # first tty is always the default enchanter
+ local i=1
+ echo "tty$i:linux:/sbin/agetty -nl" \
+ "/bin/login.sh 9600 tty$i" \
+ >> "$target/etc/inittab" ||
+ return $ERR_WRITE_FILE
+
+ i=0
+ for enchanter in "${CAULDRON_ENCHANTERS[@]}"
+ do
+ # skip the first enchanter, since it *is* the default
+ ((i++))
+ [[ "$i" -eq 1 ]] && continue
+
+ echo "tty$i:linux:/sbin/agetty -nl \
+ $enchantment-$enchanter \
+ 9600 tty$i" \
+ >> "$target/etc/inittab" ||
+ return $ERR_WRITE_FILE
+ done
+
+ # ensure any remaining tty's are set to the default enchanter
+ for ((i=$((++i)); i<=6; i++))
+ do
+ echo "tty$i:linux:/sbin/agetty -nl" \
+ "/bin/login.sh 9600 tty$i" \
+ >> "$target/etc/inittab" ||
+ return $ERR_WRITE_FILE
done

return $ERR_OK
}


#-------------------------------------------------------------------------------
+## @param target directory (optional, defaults to CAULDRON_BUILD)
##
-## This creates the CAULDRON_BUILD directory, and copies sorcery and
-## cauldron files into it. It also configures the CAULDRON_BUILD
-## sorcery as necessary (i.e. ensures that CLEAN_SOURCE="off") for
-## sanity purposes
+## This prepares the CAULDRON_BUILD directory for cauldron work by copying
+## sorcery and cauldron files into it. It also configures the CAULDRON_BUILD
+## sorcery as necessary (i.e. ensures that CLEAN_SOURCE="off"), as well as
+## adding grimoires.
##

#-------------------------------------------------------------------------------
function cauldron_prepare() {
+ local target="${1:-$CAULDRON_BUILD}"
+ local kernel="$CAULDRON_KERNEL"
+ local kvers="$CAULDRON_KERNEL_VERS"
+
# ensure that the build dir exists
- "${CAULDRON_CMD_MKDIR[@]}" "$CAULDRON_BUILD"
+ [[ -d "$target" ]] || "${CAULDRON_CMD_MKDIR[@]}" "$target"
+ liberror_check || return $?

- # ensure CAULDRON_BUILD/etc exists
- "${CAULDRON_CMD_MKDIR[@]}" "$CAULDRON_BUILD/etc"
+ # ensure necessary directories exist in the CAULDRON_BUILD chroot
+ for dir in "${CAULDRON_FHS_DIRS[@]}"
+ do
+ if [[ ! -d "$target/$dir" ]]
+ then
+ "${CAULDRON_CMD_MKDIR[@]}" "$target/$dir"
+ liberror_check || return $?
+ fi
+ done

# copy the host's resolv.conf in order to dl sources from the net
"${CAULDRON_CMD_CP[@]}" \
"$CAULDRON_RESOLV" \
- "$CAULDRON_BUILD/etc/resolv.conf" ||
- return $ERR_RESOLV
+ "$CAULDRON_BUILD/etc/resolv.conf"
+ liberror_check || return $ERR_RESOLV

- # prepare chroots to $CAULDRON_BUILD
- cauldron_chroot_init || return $?
+ # prepare chroots to target
+ cauldron_chroot_init "$target"
+ liberror_check || return $?

- # install sorcery into the build dir
- if ! type -t cauldron_sorcerous_install > "$CAULDRON_NULL"
+ [[ -d "$target/usr/src" ]] ||
+ "${CAULDRON_CMD_MKDIR[@]}" "$target/usr/src" ||
+ liberror_check || return $ERR_MK_DIR
+
+ if ! declare -lF cauldron_sorcerous_install
then
cauldron_load_library lib.sorcerous
fi
- cauldron_sorcerous_install "$CAULDRON_BUILD" || return
$ERR_SORCEROUS_INSTALL

- # cauldron is a spell
- # there is a spoon
- cauldron_chroot "${CAULDRON_CMD_CAST[@]}" cauldron || return
$ERR_CHROOT_CAST
+ # clean any existing sorcery instances from the chroot
+ cauldron_sorcerous_clean
+ liberror_check || return $?
+
+ # install sorcery into the build dir
+ cauldron_sorcerous_download
+ liberror_check || return $?
+ cauldron_sorcerous_install
+ liberror_check || return $?
+
+ # set and install grimoires into the build dir
+ cauldron_sorcerous_set_grimoires
+ liberror_check || return $?
+ cauldron_sorcerous_update_grimoires
+ liberror_check || return $?
+
+ # load cauldron config values for sorcery into the build dir
+ cauldron_sorcerous_cauldron_defaults "nostaging"
+ liberror_check || return $?
+
+ # make sure the chroot has valid and configured linux sources
+ cauldron_toolchain_kernel_source
+ liberror_check || return $?
+ cauldron_verbose "Unpacking kernel source for $kernel version $kvers"
+ cauldron_toolchain_unpack KERNEL
+ liberror_check || return $?
+ cauldron_verbose "Configuring kernel $kvers"
+ cauldron_toolchain_configure_component kernel
+ liberror_check || return $?
+ cauldron_verbose "Installing kernel headers into $target"
+ cauldron_toolchain_kernel_headers
+ liberror_check || return $?

# clean up the chroot
- cauldron_chroot_done || return $?
+ cauldron_chroot_done "$target"
+ liberror_check || return $?

return $ERR_OK
}
diff --git a/enchantment/TODO b/enchantment/TODO
new file mode 100644
index 0000000..6694a96
--- /dev/null
+++ b/enchantment/TODO
@@ -0,0 +1,8 @@
+modules
+ bootloader
+ the choice(s) of bootloader is dependent on the arch, as well
+ as which spells were selected for inclusion in the iso, so
+ there needs to be a dynamic selection "interface" for the
+ bootloader module instructions
+ disk-partition
+ same problem as for bootloader
diff --git a/enchantment/config/commands.conf
b/enchantment/config/commands.conf
new file mode 100644
index 0000000..d1ed05b
--- /dev/null
+++ b/enchantment/config/commands.conf
@@ -0,0 +1,330 @@
+#!/bin/bash
+
+# command to output text strings (typically echo, output to STDOUT)
+[[ -n "${ENCHANT_CMD_OUTPUT[@]}" ]] ||
+ ENCHANT_CMD_OUTPUT=(
+ echo
+ )
+
+# command to enter a chroot
+[[ -n "${ENCHANT_CMD_CHROOT[@]}" ]] ||
+ ENCHANT_CMD_CHROOT=(
+ "$ENCHANT_ISO_PATH/bin/chroot"
+ )
+
+# command to install a single file
+[[ -n "${ENCHANT_CMD_INSTALL_FILE[@]}" ]] ||
+ ENCHANT_CMD_INSTALL_FILE=(
+ cp
+ -dfp
+ )
+
+# command to recursively install a directory and its contents
+[[ -n "${ENCHANT_CMD_INSTALL_DIR[@]}" ]] ||
+ ENCHANT_CMD_INSTALL_DIR=(
+ cp
+ --parents
+ -dfpr
+ )
+
+# command to download a url from the internet
+[[ -n "${ENCHANT_CMD_URL_DL[@]}" ]] ||
+ ENCHANT_CMD_URL_DL=(
+ wget
+ )
+
+# command used for compressing files
+[[ -n "${ENCHANT_CMD_COMPRESS[@]}" ]] ||
+ ENCHANT_CMD_COMPRESS=(
+ bzip2
+ )
+
+# command to unpack a baseroot archive into the cauldron build
+[[ -n "${ENCHANT_CMD_TAR[@]}" ]] ||
+ ENCHANT_CMD_TAR=(
+ tar
+ )
+
+# command to unpack a sorcery archive into the cauldron build
+[[ -n "${ENCHANT_CMD_UNPACK_SORCERY[@]}" ]] ||
+ ENCHANT_CMD_UNPACK_SORCERY=(
+ "${ENCHANT_CMD_TAR[@]}"
+ -C "$ENCHANT_BUILD/usr/src"
+ xf
+ )
+
+# command to chmod files
+[[ -n "${ENCHANT_CMD_CHMOD[@]}" ]] ||
+ ENCHANT_CMD_CHMOD=(
+ chmod
+ )
+
+# command to make directories
+[[ -n "${ENCHANT_CMD_MKDIR[@]}" ]] ||
+ ENCHANT_CMD_MKDIR=(
+ mkdir
+ -p
+ )
+
+# command to remove directories
+[[ -n "${ENCHANT_CMD_RMDIR[@]}" ]] ||
+ ENCHANT_CMD_RMDIR=(
+ rmdir
+ )
+
+# command to move
+[[ -n "${ENCHANT_CMD_MV[@]}" ]] ||
+ ENCHANT_CMD_MV=(
+ mv
+ )
+
+# command to copy
+[[ -n "${ENCHANT_CMD_CP[@]}" ]] ||
+ ENCHANT_CMD_CP=(
+ cp
+ )
+
+# command to copy forcefully
+[[ -n "${ENCHANT_CMD_CP_FORCE[@]}" ]] ||
+ ENCHANT_CMD_CP_FORCE=(
+ "${ENCHANT_CMD_CP[@]}"
+ -f
+ )
+
+# command to copy recursively
+[[ -n "${ENCHANT_CMD_CP_RECURSE[@]}" ]] ||
+ ENCHANT_CMD_CP_RECURSE=(
+ "${ENCHANT_CMD_CP[@]}"
+ -r
+ )
+
+# command to copy recursively forcefully
+[[ -n "${ENCHANT_CMD_CP_RECURSE_FORCE[@]}" ]] ||
+ ENCHANT_CMD_CP_RECURSE_FORCE=(
+ "${ENCHANT_CMD_CP_RECURSE[@]}"
+ -f
+ )
+
+# command to copy recursively, preserving as much information as possible
+[[ -n "${ENCHANT_CMD_CP_EXACT[@]}" ]] ||
+ ENCHANT_CMD_CP_EXACT=(
+ "${ENCHANT_CMD_CP[@]}"
+ -a --parents
+ )
+
+# command to remove files
+[[ -n "${ENCHANT_CMD_RM[@]}" ]] ||
+ ENCHANT_CMD_RM=(
+ rm
+ )
+
+# command to remove files forcefully
+[[ -n "${ENCHANT_CMD_RM_FORCE[@]}" ]] ||
+ ENCHANT_CMD_RM_FORCE=(
+ "${ENCHANT_CMD_RM_[@]}"
+ -f
+ )
+
+# command to remove files recursively
+[[ -n "${ENCHANT_CMD_RM_RECURSE[@]}" ]] ||
+ ENCHANT_CMD_RM_RECURSE=(
+ "${ENCHANT_CMD_RM[@]}"
+ -r
+ )
+
+# command to remove files recursively forcefully
+[[ -n "${ENCHANT_CMD_RM_RECURSE_FORCE[@]}" ]] ||
+ ENCHANT_CMD_RM_RECURSE_FORCE=(
+ "${ENCHANT_CMD_RM_RECURSE[@]}"
+ -f
+ )
+
+[[ -n "${ENCHANT_CMD_SYMLINK[@]}" ]] ||
+ ENCHANT_CMD_SYMLINK=(
+ ln
+ -s
+ )
+
+[[ -n "${ENCHANT_CMD_SYMLINK_FORCE[@]}" ]] ||
+ ENCHANT_CMD_SYMLINK_FORCE=(
+ "${ENCHANT_CMD_SYMLINK[@]}"
+ -f
+ )
+
+[[ -n "${ENCHANT_CMD_HARDLINK[@]}" ]] ||
+ ENCHANT_CMD_HARDLINK=(
+ ln
+ )
+
+[[ -n "${ENCHANT_CMD_HARDLINK_FORCE[@]}" ]] ||
+ ENCHANT_CMD_HARDLINK_FORCE=(
+ "${ENCHANT_CMD_HARDLINK[@]}"
+ -f
+ )
+
+# command to mount a filesystem
+[[ -n "${ENCHANT_CMD_MOUNT[@]}" ]] ||
+ ENCHANT_CMD_MOUNT=(
+ mount
+ )
+
+# command to bind-mount a filesystem
+[[ -n "${ENCHANT_CMD_MOUNT_BIND[@]}" ]] ||
+ ENCHANT_CMD_MOUNT_BIND=(
+ "${ENCHANT_CMD_MOUNT[@]}"
+ --bind
+ )
+
+# command to loop-mount a filesystem
+[[ -n "${ENCHANT_CMD_MOUNT_LOOP[@]}" ]] ||
+ ENCHANT_CMD_MOUNT_LOOP=(
+ "${ENCHANT_CMD_MOUNT[@]}"
+ -o loop
+ )
+
+# command to unmount a filesystem
+[[ -n "${ENCHANT_CMD_UNMOUNT[@]}" ]] ||
+ ENCHANT_CMD_UNMOUNT=(
+ umount
+ )
+
+# command to unmount a filesystem
+[[ -n "${ENCHANT_CMD_UNMOUNT_RECURSIVE[@]}" ]] ||
+ ENCHANT_CMD_UNMOUNT_RECURSIVE=(
+ umount
+ -R
+ )
+
+# command to dump data
+[[ -n "${ENCHANT_CMD_DD[@]}" ]] ||
+ ENCHANT_CMD_DD=(
+ dd
+ )
+
+# command to concatenate a file
+[[ -n "${ENCHANT_CMD_CAT[@]}" ]] ||
+ ENCHANT_CMD_CAT=(
+ cat
+ )
+
+# command to count characters in a file
+[[ -n "${ENCHANT_CMD_WC[@]}" ]] ||
+ ENCHANT_CMD_WC=(
+ wc
+ )
+
+# command to "head" a file
+[[ -n "${ENCHANT_CMD_HEAD[@]}" ]] ||
+ ENCHANT_CMD_HEAD=(
+ head
+ )
+
+# command to "tail" a file
+[[ -n "${ENCHANT_CMD_TAIL[@]}" ]] ||
+ ENCHANT_CMD_TAIL=(
+ tail
+ )
+
+# command to "page" text output (less, more, etc.)
+[[ -n "${ENCHANT_CMD_PAGER[@]}" ]] ||
+ ENCHANT_CMD_PAGER=(
+ less
+ -XFR
+ )
+
+# command to split text into columns
+[[ -n "${ENCHANT_CMD_COLUMN[@]}" ]] ||
+ ENCHANT_CMD_COLUMN=(
+ column
+ )
+
+# command to paste text from multiple "files"
+[[ -n "${ENCHANT_CMD_PASTE[@]}" ]] ||
+ ENCHANT_CMD_PASTE=(
+ paste
+ )
+
+# command to find files
+[[ -n "${ENCHANT_CMD_FIND[@]}" ]] ||
+ ENCHANT_CMD_FIND=(
+ find
+ )
+
+# command to grep a file/stream
+[[ -n "${ENCHANT_CMD_GREP[@]}" ]] ||
+ ENCHANT_CMD_GREP=(
+ grep
+ )
+
+# command to grep a file/stream
+[[ -n "${ENCHANT_CMD_GREP_QUIET[@]}" ]] ||
+ ENCHANT_CMD_GREP_QUIET=(
+ grep
+ -q
+ )
+
+# command to split a text stream by delimiters
+[[ -n "${ENCHANT_CMD_CUT[@]}" ]] ||
+ ENCHANT_CMD_CUT=(
+ cut
+ )
+
+# command to awk a file/stream
+[[ -n "${ENCHANT_CMD_AWK[@]}" ]] ||
+ ENCHANT_CMD_AWK=(
+ awk
+ #gawk
+ )
+
+# command to sed a file/stream
+[[ -n "${ENCHANT_CMD_SED[@]}" ]] ||
+ ENCHANT_CMD_SED=(
+ sed
+ )
+
+# command to sed a file/stream
+[[ -n "${ENCHANT_CMD_SEDFILE[@]}" ]] ||
+ ENCHANT_CMD_SEDFILE=(
+ sed
+ -i
+ )
+
+# command to set colored output for ls
+[[ -n "${ENCHANT_CMD_DIRCOLORS[@]}" ]] ||
+ ENCHANT_CMD_DIRCOLORS=(
+ dircolors
+ -b
+ )
+
+# command for loading a console keymap
+[[ -n "${ENCHANT_CMD_LOAD_KEYMAP[@]}" ]] ||
+ ENCHANT_CMD_LOAD_KEYMAP=(
+ loadkeys
+ )
+
+# command to find absolute paths
+[[ -n "${ENCHANT_CMD_READLINK[@]}" ]] ||
+ ENCHANT_CMD_READLINK=(
+ readlink
+ -e
+ )
+
+# sorcery cast/dispel/rebuild commands
+[[ -n "${ENCHANT_CMD_CAST[@]}" ]] ||
+ ENCHANT_CMD_CAST=(
+ "$ENCHANT_HSORCERY_PATH/cast"
+ )
+[[ -n "${ENCHANT_CMD_DISPEL[@]}" ]] ||
+ ENCHANT_CMD_DISPEL=(
+ "$ENCHANT_HSORCERY_PATH/dispel"
+ )
+[[ -n "${ENCHANT_CMD_REBUILD[@]}" ]] ||
+ ENCHANT_CMD_REBUILD=(
+ "$ENCHANT_HSORCERY_PATH/sorcery"
+ rebuild
+ )
+[[ -n "${ENCHANT_CMD_GAZE_INSTALLED[@]}" ]] ||
+ ENCHANT_CMD_GAZE_INSTALLED=(
+ gaze -q installed
+ )
+
diff --git a/enchantment/config/default.conf b/enchantment/config/default.conf
new file mode 100644
index 0000000..e04dbe5
--- /dev/null
+++ b/enchantment/config/default.conf
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+# define target paths
+source "$ENCHANT_CONFIGS/target.conf"
+
+# main display settings (color, etc.)
+source "$ENCHANT_CONFIGS/display.conf"
+
+# i18n keymaps, locales, etc.
+source "$ENCHANT_CONFIGS/i18n.conf"
+# installer module settings
+source "$ENCHANT_CONFIGS/modules.conf"
+# installer potion settings
+source "$ENCHANT_CONFIGS/potion.conf"
+# enchant/iso version information
+source "$ENCHANT_CONFIGS/version.conf"
+
+# settings for things to install into the target
+source "$ENCHANT_CONFIGS/sorcery.conf"
+source "$ENCHANT_CONFIGS/spells.conf"
+source "$ENCHANT_CONFIGS/kernel.conf"
+
+# commands used by enchantment
+source "$ENCHANT_CONFIGS/commands.conf"
+
diff --git a/enchantment/config/display.conf b/enchantment/config/display.conf
new file mode 100644
index 0000000..0e34cb7
--- /dev/null
+++ b/enchantment/config/display.conf
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+# whether to use color for displaying messages
+: "${ENCHANT_COLOR:=yes}"
+
+# whether enchantment should suppress output messages
+: "${ENCHANT_VERBOSE:=yes}"
+
+# handle input/output redirections
+: "${ENCHANT_NULL:=/dev/null}"
+: "${ENCHANT_STDOUT:=/dev/stdout}"
+: "${ENCHANT_STDERR:=/dev/stderr}"
+
diff --git a/enchantment/config/i18n.conf b/enchantment/config/i18n.conf
new file mode 100644
index 0000000..a695011
--- /dev/null
+++ b/enchantment/config/i18n.conf
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+# user-selected keymap
+: "${ENCHANT_KEYMAP:=$ENCHANT_TMP/i18n-keymap}"
+
+# directory to scan for keymap files
+: "${ENCHANT_KEYMAPDIR:=$ENCHANT_ISO_PATH/usr/share/keymaps}"
+
diff --git a/enchantment/config/kernel.conf b/enchantment/config/kernel.conf
new file mode 100644
index 0000000..a439b1b
--- /dev/null
+++ b/enchantment/config/kernel.conf
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+# kernel version to use for installs
+: "${ENCHANT_ISO_KVERS:=$(uname -r)}"
+
+# kernel image to use for installs
+: "${ENCHANT_ISO_KERNEL:=$ENCHANT_ISO_PATH/boot/kernel}"
+
+# path to the kernel modules to use for the install
+: "${ENCHANT_ISO_KMODS:=$ENCHANT_ISO_PATH/lib/modules}"
+
+# the type of kernel to use for installs
+: "${ENCHANT_KERNEL_TYPE:=linux}"
+
+# kernel sources to use for installing kernel headers needed for compiling in
+# the target
+: "${ENCHANT_KERNEL_SOURCE:=$ENCHANT_SPELL_SOURCES/linux-4.1.14.tar.xz}"
+: "${ENCHANT_KERNEL_USESPELL:=no}"
+
diff --git a/enchantment/config/modules.conf b/enchantment/config/modules.conf
new file mode 100644
index 0000000..12f1392
--- /dev/null
+++ b/enchantment/config/modules.conf
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+# file that holds the current module (step)
+: "${ENCHANT_STATUS:=$ENCHANT_TMP/current_module}"
+
+# list of modules that are active for the current enchanter (installer), and
their orders
+:
"${ENCHANT_ENCHANTER_MODULES:=$ENCHANT_ENCHANTERS/$ENCHANT_INSTALLER/modules}"
+
+# shell to use for running module scripts
+: "${ENCHANT_SHELL:=/bin/bash}"
+
diff --git a/enchantment/config/paths.conf b/enchantment/config/paths.conf
new file mode 100644
index 0000000..224b70c
--- /dev/null
+++ b/enchantment/config/paths.conf
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+# path to the ISO system (this should usually be null, unless
+# you are doing some tricky hacking)
+: "${ENCHANT_ISO_PATH:=}"
+
+# path to the base library modules (libcolor, liberror, etc.)
+: "${ENCHANT_BASE:=$ENCHANT_ISO_PATH/usr/share/smgl}"
+
+# where the common SMGL scripts (such as liberror) are located
+: "${ENCHANT_COMMON:=$ENCHANT_BASE/common}"
+
+# where the enchantment-specific files are located
+: "${ENCHANT_DATA:=$ENCHANT_BASE/enchantment}"
+
+# path to the enchantment configurations and profiles
+: "${ENCHANT_CONFIGS:=$ENCHANT_DATA/config}"
+
+# path to the enchantment library modules
+: "${ENCHANT_LIBS:=$ENCHANT_DATA/lib}"
+
+# location of the enchanter (installer) modules (steps)
+: "${ENCHANT_MODULES:=$ENCHANT_DATA/modules}"
+
+# location of the enchanters (installer front-ends)
+: "${ENCHANT_ENCHANTERS:=$ENCHANT_DATA/enchanters}"
+
+# location of enchantment documentation
+: "${ENCHANT_DOCS:=$ENCHANT_ISO_PATH/usr/share/doc/enchantment}"
+
+# temp directory used during the install
+: "${ENCHANT_TMP:=$ENCHANT_ISO_PATH/tmp/enchantment}"
+
diff --git a/enchantment/config/potion.conf b/enchantment/config/potion.conf
new file mode 100644
index 0000000..cfc14d7
--- /dev/null
+++ b/enchantment/config/potion.conf
@@ -0,0 +1,60 @@
+#!/bin/bash
+
+# path where potion state data is stored (directory)
+: "${ENCHANT_POTION:=$ENCHANT_TMP/potion}"
+
+# temporary files to represent the history buffers (backwards and fowards)
+: "${ENCHANT_BACK:=$ENCHANT_POTION/back}"
+: "${ENCHANT_FORWARD:=$ENCHANT_POTION/forward}"
+
+# size of each history buffer (forward, back)
+: "${ENCHANT_POTION_BUFFER:=20}"
+
+# the hash function (binary) for hashing file contents to determine if a file
+# changed between installation modules
+# (defaults to sha1)
+: "${ENCHANT_POTION_HASHFUNC:=$ENCHANT_ISO_PATH/bin/sha1sum}"
+
+# the archive utility used for archiving collections and directories into a
+# potion (defaults to tar)
+: "${ENCHANT_POTION_ARCHIVE:=$ENCHANT_ISO_PATH/bin/tar}"
+
+# the compression function (binary) for compressing files (potion archives)
+# (defaults to gzip)
+: "${ENCHANT_POTION_COMPRESS:=$ENCHANT_ISO_PATH/bin/gzip}"
+
+# list of config files (e.g., /etc) for which to keep state information on
+# do not include a preceding '/' as the list will be relative to the target
+# system directory (ENCHANT_TARGET)
+[[ -n "$ENCHANT_POTION_CONFS" ]] ||
+ ENCHANT_POTION_CONFS=(
+ etc/timezone
+ etc/hostname
+ etc/sysconfig/*
+ )
+
+# list of ISO mounts to exclude from partition/filesystem/mount_point
listings
+# each match is exact, so subdirectories need to be explicitly listed
separately
+[[ -n "$ENCHANT_POTION_MOUNT_EXCLUDES" ]] ||
+ ENCHANT_POTION_MOUNT_EXCLUDES=(
+ /
+ /dev
+ /dev/pts
+ /dev/shm
+ /proc
+ /sys
+ /tmp
+ /var
+ /var/tmp
+ )
+
+# current potion dir - used with the enchant history functions to keep
separate
+# state for each level of history
+# you should only change this if you are doing tricky hacks
+: "${ENCHANT_POTION_CURRENT:=}"
+
+# file to save a potion restore point to by default
+: "${ENCHANT_POTION_BOTTLE:=$ENCHANT_POTION/bottle}"
+
+
+# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
diff --git a/enchantment/config/sorcery.conf b/enchantment/config/sorcery.conf
new file mode 100644
index 0000000..5adc096
--- /dev/null
+++ b/enchantment/config/sorcery.conf
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+# branch of sorcery to use in the ISO
+: "${ENCHANT_SORCERY_BRANCH:=stable}"
+
+# ISO sorcery config path
+: "${ENCHANT_SORCERY_CONFIG:=$ENCHANT_ISO_PATH/etc/sorcery/config}"
+
+# ISO sorcery lib/module path
+: "${ENCHANT_SORCERY_LIBS:=$ENCHANT_ISO_PATH/var/lib/sorcery/modules}"
+
diff --git a/enchantment/config/spells.conf b/enchantment/config/spells.conf
new file mode 100644
index 0000000..de1adfb
--- /dev/null
+++ b/enchantment/config/spells.conf
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+# path to installable spell sources
+: "${ENCHANT_SPELL_SOURCES:=$ENCHANT_ISO_PATH/var/spool/sorcery}"
+
+# path to installable spell caches (pre-built binaries)
+: "${ENCHANT_SPELL_CACHES:=$ENCHANT_ISO_PATH/var/cache/sorcery}"
+
+# file to hold sources selected for install
+: "${ENCHANT_SOURCES_LIST:=$ENCHANT_TMP/spell-sources}"
+
+# file to hold caches selected for install
+: "${ENCHANT_CACHES_LIST:=$ENCHANT_TMP/spell-caches}"
+
+# archive file that contains a basesystem chroot to install
+: "${ENCHANT_SYSTEM_ARCHIVE:=$ENCHANT_ISO_PATH/system.tar.xz}"
+
+# ISO architecture/machine/host information (used to select caches when more
+# than one architecture is available for caches)
+: "${ENCHANT_HOST_ARCH_PATH:=$ENCHANT_ISO_PATH/usr/share/archspecs}"
+
+# the arch(s) available for install on this ISO, if undefined set to
+# the archs file written by cauldron at generation
+: "${ENCHANT_ARCH:=$ENCHANT_DATA/archs}"
+
diff --git a/enchantment/config/target.conf b/enchantment/config/target.conf
new file mode 100644
index 0000000..f059671
--- /dev/null
+++ b/enchantment/config/target.conf
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+# where the target system is mounted
+: "${ENCHANT_TARGET:=$ENCHANT_ISO_PATH/mnt/smgl}"
+
+# absolute path to the file which the kernel should be installed as
+: "${ENCHANT_TARGET_KERNEL:=$ENCHANT_TARGET/boot/vmlinuz}"
+
+# path where kernel modules should be installed
+: "${ENCHANT_TARGET_KMODS:=$ENCHANT_TARGET/lib/modules}"
+
+# path where spell sources will be installed
+: "${ENCHANT_TARGET_SOURCES:=$ENCHANT_TARGET/var/spool/sorcery}"
+
+# path where spell caches will be installed
+: "${ENCHANT_TARGET_CACHES:=$ENCHANT_TARGET/var/cache/sorcery}"
+
diff --git a/enchantment/config/version.conf b/enchantment/config/version.conf
new file mode 100644
index 0000000..de9426b
--- /dev/null
+++ b/enchantment/config/version.conf
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+# version of enchantment
+: "${ENCHANT_VERSION:=0.1}"
+
+# version of the iso itself
+: "${ENCHANT_ISO_VERSION:=0.11}"
+
diff --git a/enchantment/data/config/commands.conf
b/enchantment/data/config/commands.conf
deleted file mode 100644
index b0e0532..0000000
--- a/enchantment/data/config/commands.conf
+++ /dev/null
@@ -1,294 +0,0 @@
-#!/bin/bash
-
-# command to output text strings (typically echo, output to STDOUT
-[[ -n "${ENCHANT_CMD_OUTPUT[@]}" ]] ||
- ENCHANT_CMD_OUTPUT=(
- echo
- )
-
-# command to enter a chroot
-[[ -n "${ENCHANT_CMD_CHROOT[@]}" ]] ||
- ENCHANT_CMD_CHROOT=(
- "$ENCHANT_ISO_PATH/bin/chroot"
- )
-
-# command to download a url from the internet
-[[ -n "${ENCHANT_CMD_URL_DL[@]}" ]] ||
- ENCHANT_CMD_URL_DL=(
- wget
- )
-
-# command used to generate the final iso media
-[[ -n "${ENCHANT_CMD_MKISOFS[@]}" ]] ||
- ENCHANT_CMD_MKISOFS=(
- mkisofs
- -R
- -b isolinux/isolinux.bin
- -c isolinux/boot.cat
- -no-emul-boot
- -boot-load-size 4
- -boot-info-table
- -o "$ENCHANT_ISO_NAME"
- "$ENCHANT_BUILD"
- )
-
-# command to archive the sys package (e.g., tar, cpio, etc.)
-[[ -n "${ENCHANT_CMD_ARCHIVE_SYS[@]}" ]] ||
- ENCHANT_CMD_ARCHIVE_SYS=(
- tar
- cf "$ENCHANT_BUILD"/"${ENCHANT_SYS_NAME}.tar"
- -C "$ENCHANT_SYS"
- )
-
-# command used for compressing files
-[[ -n "${ENCHANT_CMD_COMPRESS[@]}" ]] ||
- ENCHANT_CMD_COMPRESS=(
- bzip2
- )
-
-# command to unpack a baseroot archive into the cauldron build
-[[ -n "${ENCHANT_CMD_TAR[@]}" ]] ||
- ENCHANT_CMD_TAR=(
- tar
- )
-
-# command to unpack a sorcery archive into the cauldron build
-[[ -n "${ENCHANT_CMD_UNPACK_SORCERY[@]}" ]] ||
- ENCHANT_CMD_UNPACK_SORCERY=(
- "${ENCHANT_CMD_TAR[@]}"
- -C "$ENCHANT_BUILD/usr/src"
- xf
- )
-
-# command to unpack a baseroot archive into the cauldron build
-[[ -n "${ENCHANT_CMD_UNPACK_BASEROOT[@]}" ]] ||
- ENCHANT_CMD_UNPACK_BASEROOT=(
- "${ENCHANT_CMD_TAR[@]}"
- -C "$ENCHANT_BUILD/baseroot"
- xf "$ENCHANT_BASEROOT"
- )
-
-# command to unpack a baseroot archive into the cauldron build
-[[ -n "${ENCHANT_CMD_UNPACK_BUILD[@]}" ]] ||
- ENCHANT_CMD_UNPACK_BUILD=(
- "${ENCHANT_CMD_TAR[@]}"
- -C "$ENCHANT_BUILD/"
- xf
- )
-
-# command to chmod files
-[[ -n "${ENCHANT_CMD_CHMOD[@]}" ]] ||
- ENCHANT_CMD_CHMOD=(
- chmod
- )
-
-# command to make directories
-[[ -n "${ENCHANT_CMD_MKDIR[@]}" ]] ||
- ENCHANT_CMD_MKDIR=(
- mkdir
- -p
- )
-
-# command to remove directories
-[[ -n "${ENCHANT_CMD_RMDIR[@]}" ]] ||
- ENCHANT_CMD_RMDIR=(
- rmdir
- )
-
-# command to copy
-[[ -n "${ENCHANT_CMD_CP[@]}" ]] ||
- ENCHANT_CMD_CP=(
- cp
- )
-
-# command to copy forcefully
-[[ -n "${ENCHANT_CMD_CP_FORCE[@]}" ]] ||
- ENCHANT_CMD_CP_FORCE=(
- "${ENCHANT_CMD_CP[@]}"
- -f
- )
-
-# command to copy recursively
-[[ -n "${ENCHANT_CMD_CP_RECURSE[@]}" ]] ||
- ENCHANT_CMD_CP_RECURSE=(
- "${ENCHANT_CMD_CP[@]}"
- -r
- )
-
-# command to copy recursively forcefully
-[[ -n "${ENCHANT_CMD_CP_RECURSE_FORCE[@]}" ]] ||
- ENCHANT_CMD_CP_RECURSE_FORCE=(
- "${ENCHANT_CMD_CP_RECURSE[@]}"
- -f
- )
-
-# command to copy recursively, preserving as much information as possible
-[[ -n "${ENCHANT_CMD_CP_EXACT[@]}" ]] ||
- ENCHANT_CMD_CP_EXACT=(
- "${ENCHANT_CMD_CP[@]}"
- -a --parents
- )
-
-# command to remove files
-[[ -n "${ENCHANT_CMD_RM[@]}" ]] ||
- ENCHANT_CMD_RM=(
- rm
- )
-
-# command to remove files forcefully
-[[ -n "${ENCHANT_CMD_RM_FORCE[@]}" ]] ||
- ENCHANT_CMD_RM_FORCE=(
- "${ENCHANT_CMD_RM_[@]}"
- -f
- )
-
-# command to remove files recursively
-[[ -n "${ENCHANT_CMD_RM_RECURSE[@]}" ]] ||
- ENCHANT_CMD_RM_RECURSE=(
- "${ENCHANT_CMD_RM[@]}"
- -r
- )
-
-# command to remove files recursively forcefully
-[[ -n "${ENCHANT_CMD_RM_RECURSE_FORCE[@]}" ]] ||
- ENCHANT_CMD_RM_RECURSE_FORCE=(
- "${ENCHANT_CMD_RM_RECURSE[@]}"
- -f
- )
-
-[[ -n "${ENCHANT_CMD_SYMLINK[@]}" ]] ||
- ENCHANT_CMD_SYMLINK=(
- ln
- -s
- )
-
-[[ -n "${ENCHANT_CMD_SYMLINK_FORCE[@]}" ]] ||
- ENCHANT_CMD_SYMLINK_FORCE=(
- "${ENCHANT_CMD_SYMLINK[@]}"
- -f
- )
-
-[[ -n "${ENCHANT_CMD_HARDLINK[@]}" ]] ||
- ENCHANT_CMD_HARDLINK=(
- ln
- )
-
-[[ -n "${ENCHANT_CMD_HARDLINK_FORCE[@]}" ]] ||
- ENCHANT_CMD_HARDLINK_FORCE=(
- "${ENCHANT_CMD_HARDLINK[@]}"
- -f
- )
-
-# command to mount a filesystem
-[[ -n "${ENCHANT_CMD_MOUNT[@]}" ]] ||
- ENCHANT_CMD_MOUNT=(
- mount
- )
-
-# command to bind-mount a filesystem
-[[ -n "${ENCHANT_CMD_MOUNT_BIND[@]}" ]] ||
- ENCHANT_CMD_MOUNT_BIND=(
- "${ENCHANT_CMD_MOUNT[@]}"
- --bind
- )
-
-# command to loop-mount a filesystem
-[[ -n "${ENCHANT_CMD_MOUNT_LOOP[@]}" ]] ||
- ENCHANT_CMD_MOUNT_LOOP=(
- "${ENCHANT_CMD_MOUNT[@]}"
- -o loop
- )
-
-# command to unmount a filesystem
-[[ -n "${ENCHANT_CMD_UNMOUNT[@]}" ]] ||
- ENCHANT_CMD_UNMOUNT=(
- umount
- )
-
-# command to create the ramdisk filesystem (typically ext2)
-[[ -n "${ENCHANT_CMD_MKRDFS[@]}" ]] ||
- ENCHANT_CMD_MKRDFS=(
- mke2fs
- )
-
-# command to compress the iso ramdisk
-[[ -n "${ENCHANT_CMD_COMPRESS_RAMDISK[@]}" ]] ||
- ENCHANT_CMD_COMPRESS_RAMDISK=(
- gzip
- -9
- )
-
-# command to dump data
-[[ -n "${ENCHANT_CMD_DD[@]}" ]] ||
- ENCHANT_CMD_DD=(
- dd
- )
-
-# command to concatenate a file
-[[ -n "${ENCHANT_CMD_CAT[@]}" ]] ||
- ENCHANT_CMD_CAT=(
- cat
- )
-
-# command to package the iso initramfs
-[[ -n "${ENCHANT_CMD_MKRAMFS[@]}" ]] ||
- ENCHANT_CMD_MKRAMFS=(
- find * -depth -print \| cpio -H newc -o \| gzip -9c
- )
-
-# command to find files
-[[ -n "${ENCHANT_CMD_FIND[@]}" ]] ||
- ENCHANT_CMD_FIND=(
- find
- )
-
-# command to grep a file/stream
-[[ -n "${ENCHANT_CMD_GREP[@]}" ]] ||
- ENCHANT_CMD_GREP=(
- grep
- )
-
-# command to grep a file/stream
-[[ -n "${ENCHANT_CMD_GREP_QUIET[@]}" ]] ||
- ENCHANT_CMD_GREP_QUIET=(
- grep
- -q
- )
-
-# command to split a text stream by delimiters
-[[ -n "${ENCHANT_CMD_CUT[@]}" ]] ||
- ENCHANT_CMD_CUT=(
- cut
- )
-
-# command to awk a file/stream
-[[ -n "${ENCHANT_CMD_AWK[@]}" ]] ||
- ENCHANT_CMD_AWK=(
- gawk
- )
-
-# command to sed a file/stream
-[[ -n "${ENCHANT_CMD_SED[@]}" ]] ||
- ENCHANT_CMD_SED=(
- sed
- )
-
-# sorcery cast/dispel/rebuild commands
-[[ -n "${ENCHANT_CMD_CAST[@]}" ]] ||
- ENCHANT_CMD_CAST=(
- "$ENCHANT_HSORCERY_PATH/cast"
- )
-[[ -n "${ENCHANT_CMD_DISPEL[@]}" ]] ||
- ENCHANT_CMD_DISPEL=(
- "$ENCHANT_HSORCERY_PATH/dispel"
- )
-[[ -n "${ENCHANT_CMD_REBUILD[@]}" ]] ||
- ENCHANT_CMD_REBUILD=(
- "$ENCHANT_HSORCERY_PATH/sorcery"
- rebuild
- )
-[[ -n "${ENCHANT_CMD_GAZE_INSTALLED[@]}" ]] ||
- ENCHANT_CMD_GAZE_INSTALLED=(
- gaze -q installed
- )
-
diff --git a/enchantment/data/config/default.conf
b/enchantment/data/config/default.conf
deleted file mode 100644
index dd0a7aa..0000000
--- a/enchantment/data/config/default.conf
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-source "$ENCHANT_CONF/paths.conf"
-source "$ENCHANT_CONF/kernel.conf"
-source "$ENCHANT_CONF/target.conf"
-
-source "$ENCHANT_CONF/display.conf"
-
-source "$ENCHANT_CONF/i18n.conf"
-source "$ENCHANT_CONF/potion.conf"
-source "$ENCHANT_CONF/spells.conf"
-source "$ENCHANT_CONF/sorcery.conf"
-
-source "$ENCHANT_CONF/commands.conf"
-
diff --git a/enchantment/data/config/display.conf
b/enchantment/data/config/display.conf
deleted file mode 100644
index feef646..0000000
--- a/enchantment/data/config/display.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-# whether to use color for displaying messages
-ENCHANT_COLOR="${ENCHANT_COLOR:-yes}"
-
diff --git a/enchantment/data/config/i18n.conf
b/enchantment/data/config/i18n.conf
deleted file mode 100644
index 411e607..0000000
--- a/enchantment/data/config/i18n.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-# user-selected keymap
-ENCHANT_KEYMAP="${ENCHANT_KEYMAP:-$ENCHANT_TMP/i18n-keymap}"
-
diff --git a/enchantment/data/config/kernel.conf
b/enchantment/data/config/kernel.conf
deleted file mode 100644
index e149966..0000000
--- a/enchantment/data/config/kernel.conf
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-
-# kernel version to use for installs
-ENCHANT_ISO_KVERS="${ENCHANT_ISO_KVERS:-$(uname -r)}"
-
-# kernel image to use for installs
-ENCHANT_ISO_KERNEL="${ENCHANT_ISO_KERNEL:-$ENCHANT_ISO_PATH/boot/vmlinux}"
-
-# path to the kernel modules to use for the install
-ENCHANT_ISO_KMODS="${ENCHANT_ISO_KMODS:-$ENCHANT_ISO_PATH/lib/modules}"
-
diff --git a/enchantment/data/config/modules.conf
b/enchantment/data/config/modules.conf
deleted file mode 100644
index 7362514..0000000
--- a/enchantment/data/config/modules.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-# install module (step) info
-ENCHANT_STATUS="${ENCHANT_STATUS:-$ENCHANT_TMP/current_module}"
-
diff --git a/enchantment/data/config/paths.conf
b/enchantment/data/config/paths.conf
deleted file mode 100644
index 3a38e40..0000000
--- a/enchantment/data/config/paths.conf
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-
-# path to the ISO system (this should usually be null, unless
-# you are doing some tricky hacking)
-ENCHANT_ISO_PATH="${ENCHANT_ISO_PATH:-}"
-
-# path to the base library modules (libcolor, liberror, etc.)
-ENCHANT_BASE="${ENCHANT_BASE:-$ENCHANT_ISO_PATH/usr/share/smgl}"
-
-# path to the enchant library modules
-ENCHANT_LIBS="${ENCHANT_LIBS:-$ENCHANT_BASE/enchantment}"
-
-# where the installer files are located
-ENCHANT_DATA="${ENCHANT_DATA:-$ENCHANT_BASE/data}"
-
-# location of the install modules (steps)
-ENCHANT_MODULES="${ENCHANT_MODULES:-$ENCHANT_DATA/modules}"
-
-# location of installer documentation
-ENCHANT_DOCS="${ENCHANT_DOCS:-$ENCHANT_ISO_PATH/usr/share/doc/enchantment}"
-
-# temp directory used during the install
-ENCHANT_TMP="${ENCHANT_TMP:-$ENCHANT_ISO_PATH/tmp/enchantment}"
-
diff --git a/enchantment/data/config/potion.conf
b/enchantment/data/config/potion.conf
deleted file mode 100644
index 927853b..0000000
--- a/enchantment/data/config/potion.conf
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-
-# path where potion state data is stored (directory)
-ENCHANT_POTION="${ENCHANT_POTION:-$ENCHANT_TMP/potion}"
-
-# temporary files to represent the history buffers (backwards and fowards)
-ENCHANT_BACK="${ENCHANT_BACK:-$ENCHANT_POTION/back}"
-ENCHANT_FORWARD="${ENCHANT_FORWARD:-$ENCHANT_POTION/forward}"
-
-# size of each history buffer (forward, back)
-ENCHANT_POTION_BUFFER="${ENCHANT_POTION_BUFFER:-20}"
-
-# the hash function (binary) for hashing file contents to determine if a file
-# changed between installation modules
-# (defaults to sha1)
-ENCHANT_HASHFUNC="${ENCHANT_HASHFUNC:-$ENCHANT_ISO_PATH/bin/sha1sum}"
-
-# the archive utility used for archiving collections and directories into a
-# potion (defaults to tar)
-ENCHANT_ARCHIVE="${ENCHANT_ARCHIVE:-$ENCHANT_ISO_PATH/bin/tar}"
-
-# the compression function (binary) for compressing files (potion archives)
-# (defaults to gzip)
-ENCHANT_COMPRESS="${ENCHANT_COMPRESS:-$ENCHANT_ISO_PATH/bin/gzip}"
-
diff --git a/enchantment/data/config/sorcery.conf
b/enchantment/data/config/sorcery.conf
deleted file mode 100644
index 121b476..0000000
--- a/enchantment/data/config/sorcery.conf
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-
-# branch of sorcery to use in the ISO
-ENCHANT_SORCERY_BRANCH="${ENCHANT_SORCERY_BRANCH:-stable}"
-
-# ISO sorcery config path
-ENCHANT_SORCERY_CONFIG="${ENCHANT_SORCERY_CONFIG:-$ENCHANT_ISO_PATH/etc/sorcery/config}"
-
-# ISO sorcery lib/module path
-ENCHANT_SORCERY_LIBS="${ENCHANT_SORCERY_LIBS:-$ENCHANT_ISO_PATH/var/lib/sorcery/modules}"
-
diff --git a/enchantment/data/config/spells.conf
b/enchantment/data/config/spells.conf
deleted file mode 100644
index 42f8f6e..0000000
--- a/enchantment/data/config/spells.conf
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-
-# path to installable spell sources
-ENCHANT_SPELL_SOURCES="${ENCHANT_SPELL_SOURCES:-$ENCHANT_ISO_PATH/var/spool/sorcery}"
-
-# path to installable spell caches (pre-built binaries)
-ENCHANT_SPELL_CACHES="${ENCHANT_SPELL_CACHES:-$ENCHANT_ISO_PATH/var/cache/sorcery}"
-
-# file to hold sources selected for install
-ENCHANT_SOURCES_LIST="${ENCHANT_SOURCES_LIST:-$ENCHANT_TMP/spell-sources}"
-
-# file to hold caches selected for install
-ENCHANT_CACHES_LIST="${ENCHANT_CACHES_LIST:-$ENCHANT_TMP/spell-caches}"
-
-# ISO architecture/machine/host information (used to select caches when more
-# than one architecture is available for caches)
-ENCHANT_HOST_ARCH_PATH="${ENCHANT_HOST_ARCH_PATH:-$ENCHANT_ISO_PATH/usr/share/archspecs}"
-
-# list of archs available for install on this ISO, if undefined set to
-# the first entry in the archs file written by cauldron at generation
-ENCHANT_ARCH="${ENCHANT_ARCH:-$(head -n1 $ENCHANT_DATA/archs)}"
-ENCHANT_MACHTYPE="${ENCHANT_MACHTYPE:-$MACHTYPE}"
-ENCHANT_CACHE_EXT="${ENCHANT_CACHE_EXT:-tar.bz2}"
-
diff --git a/enchantment/data/config/target.conf
b/enchantment/data/config/target.conf
deleted file mode 100644
index 6b5281c..0000000
--- a/enchantment/data/config/target.conf
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-# where the target system is mounted
-ENCHANT_TARGET="${ENCHANT_TARGET:-$ENCHANT_ISO_PATH/mnt/root}"
-
-# absolute path to the file which the kernel should be installed as
-ENCHANT_TARGET_KERNEL="${ENCHANT_TARGET_KERNEL:-$ENCHANT_TARGET/boot/vmlinuz}"
-
-# path where kernel modules should be installed
-ENCHANT_TARGET_KMODS="${ENCHANT_TARGET_KMODS:-$ENCHANT_TARGET/lib/modules}"
-
-# path where spell sources will be installed
-ENCHANT_TARGET_SOURCES="${ENCHANT_TARGET_SOURCES:-$ENCHANT_TARGET/var/spool/sorcery}"
-
-# path where spell caches will be installed
-ENCHANT_TARGET_CACHES="${ENCHANT_TARGET_CACHES:-$ENCHANT_TARGET/var/cache/sorcery}"
-
diff --git a/enchantment/doc/enchantment.8 b/enchantment/doc/enchantment.8
index 5c9dc23..6f80da4 100644
--- a/enchantment/doc/enchantment.8
+++ b/enchantment/doc/enchantment.8
@@ -44,13 +44,13 @@
Enchantment is a command-line front-end to the enchantment library (which
serves as a backend for all the Source Mage GNU/Linux installer front-ends,
including the menu system). All of the installation functions are accessible
through this single command-line frontend by passing the desired command as
the first parameter to the program, followed by any arguments that command
needs.
.SH "ENCHANTMENT COMMANDS"
A list of acceptable commands is given below. For each command, if it can
accept any arguements, they are described in that command's section. Optional
arguments are enclosed in square brackets ('[' and ']'), while required
arguments are bare (not surrounded by brackets or anything else). The
commands are organized by logical function.
-.SS General
+.SS "General Commands"
.PP
\fBhelp\fR [TOPIC]
.RS 4
Displays help for a given topic. If no topic is provided, it will display a
list of topics available.
.RE
-.SS "Module Interaction"
+.SS "Module Interaction Commands"
.PP
\fBtodo\fR [MODULE]
.RS 4
@@ -81,11 +81,11 @@ Jump to the installation step MODULE given as the first
(and only) argument. MOD
.RS 4
Display the initial welcome message, which provides some introductory
information on how to use the installation interface.
.RE
-.SS "Content Installation"
+.SS "Content Installation Commands"
.PP
\fBchroot\fR [ARGS]
.RS 4
-Chroot to $\fIENCHANT_TARGET\fR using the command given in
$\fIENCHANT_CHROOT\fR (see the section on \fBENVIRONMENT VARIABLES\fR below),
performing necessary mount bindings needed for shell functionality inside the
chroot, and also setting the shell prompt to indicate that you are now in a
chroot. If called with arguments, the arguments are passed to the
$\fIENCHANT_CHROOT\fR command (you can use this to directly execute commands
in the chroot, rather than having to first enter an interactive shell and
then manually execute the command afterwards).
+Chroot to \fIENCHANT_TARGET\fR using the command given in
\fIENCHANT_CHROOT\fR (see the section on \fBENVIRONMENT VARIABLES\fR below),
performing necessary mount bindings needed for shell functionality inside the
chroot, and also setting the shell prompt to indicate that you are now in a
chroot. If called with arguments, the arguments are passed to the
\fIENCHANT_CHROOT\fR command (you can use this to directly execute commands
in the chroot, rather than having to first enter an interactive shell and
then manually execute the command afterwards).
.RE
.PP
\fBinstall\fR SUBCOMMAND
@@ -97,7 +97,7 @@ Performs a given installation, according to the supplied
SUBCOMMAND, which can b
\fBkernel\fR IMAGE MODULES_PATH VERSION
.RE
.RS 8
-Installs the given kernel to the target as specified in \fIENCHANT_TARGET\fR
(see the section on \fBENVIRONMENT VARIABLES\fR below). The first argument,
IMAGE, must be an absolute path the to kernel image itself (i.e.
/boot/vmlinuz), which will be installed to \fIENCHANT_TARGET_KERNEL\fR (see
the section on \fBENVIRONMENT VARIABLES\fR below). The second argument,
MODULES_PATH, must be an aboslute path to the directory where the kernel
modules matching the image supplied in IMAGE are to be taken from (e.g.
/lib/modules/2.6.32.8). The kernel modules will be installed to
\fIENCHANT_TARGET_KMODS\fR (see the section on \fBENVIRONMENT VARIABLES\fR
below). Finally, VERSION, the third and last argument, must supply the
numbered kernel version associated with the kernel image and modules (e.g.
2.6.32.8).
+Installs the given kernel to the target as specified in \fIENCHANT_TARGET\fR
(see the section on \fBENVIRONMENT VARIABLES\fR below). The first argument,
IMAGE, must be an absolute path to the kernel image itself (i.e.
/boot/kernel), which will be installed to \fIENCHANT_TARGET_KERNEL\fR (see
the section on \fBENVIRONMENT VARIABLES\fR below). The second argument,
MODULES_PATH, must be an aboslute path to the directory where the kernel
modules matching the image supplied in IMAGE are to be taken from (e.g.
/lib/modules/2.6.32.8). The kernel modules will be installed to
\fIENCHANT_TARGET_KMODS\fR (see the section on \fBENVIRONMENT VARIABLES\fR
below). Finally, VERSION, the third and last argument, must supply the
numbered kernel version associated with the kernel image and modules (e.g.
2.6.32.8).
.RE
.RS 4
\fBisokernel\fR
@@ -109,7 +109,7 @@ Installs the kernel image and modules that are used for
the ISO runtime itself t
\fBsystem\fR
.RE
.RS 8
-Installs the minimal base system (system.tar.bz2) to the target specified in
\fIENCHANT_TARGET\fR (see the section on \fBENVIRONMENT VARIABLES\fR below).
+Installs the minimal base system (system.tar.xz) to the target specified in
\fIENCHANT_TARGET\fR (see the section on \fBENVIRONMENT VARIABLES\fR below).
.RE
.RS 4
\fBspells\fR
@@ -132,7 +132,7 @@ Installs spell caches from \fIENCHANT_SPELL_CACHES\fR to
the target location spe

.RS 8
.RE
-.SS "Potion (history) Interaction"
+.SS "Potion (history) Interaction Commands"
.PP
\fBback\fR
.RS 4
@@ -148,13 +148,13 @@ Move forward one level in the history stack (similar to
pressing the forward but
.RS 4
Package the present installation state into a restorable potion. This can
then be used either to restore the current installation if something goes
wrong, or it can be used later for automated installs (e.g. on other machines
with the same hardware for site-wide installs). This only takes effect if
history is enabled in the current install (can be configured at run-time, see
the section on \fBENVIRONMENT VARIABLES\fR below for more information).
.RE
-.SS "i18n"
+.SS "i18n Commands"
.PP
\fBkeymap\fR [/path/to/keymap.file]
.RS 4
If called without an argument, presents a menu by which you can select an
appropriate keymap to use for the current installation session. If supplied a
keymap file (with path) as an argument, it will directly select that keymap
to use for the installation session.
.RE
-.SS "Setup"
+.SS "Setup Commands"
.PP
\fBinit\fR
.RS 4
@@ -174,12 +174,12 @@ Where the installation goes to. For example, if you
have an 80GB partition /dev/
.PP
iso
.RS 4
-Refers to the installation runtime. The runtime is typically available via a
burned cd, consisting of the contents of an iso9660 filesystem prepared by
cauldron, hence the labelling of the runtime as iso. This is in contrast to
system, defined below. The spells and binaries available for use in the iso
may differ from those available in the system.
+Refers to the installation runtime (an \fBi\fRnitial \fBs\fRsystem
\fBo\fRbject). The runtime prepared by cauldron is typically available as the
contents of a filesystem image, such as iso9660 or udf, which is then burned
onto removable media like a cdrom, but may alternatively be available via a
usb key or even direct from a hard disk. This is in contrast to system,
defined below. The spells and binaries available for use in the iso may
differ from those available in the system.
.RE
.PP
system
.RS 4
-Refers to the target runtime. Note that the target runtime is not
necessarily available in the target until after a certain stage of the
installation is completed. This also refers to the pre-built compressed
archive of the minimal target runtime, typically stored as system.tar.bz2 in
the root directory of an officially released iso. The spells and binaries
available for use in the system may differ from those available in the iso.
+Refers to the target runtime. Note that the target runtime is not
necessarily available in the target until after a certain stage of the
installation is completed. This also refers to the pre-built compressed
archive of the minimal target runtime, typically stored as system.tar.xz in
the root directory of an officially released iso. The spells and binaries
available for use in the system may differ from those available in the iso.
.RE
.PP
module
@@ -189,10 +189,10 @@ An installation "step". It is a logical unit within the
entire installation proc
.PP
potion
.RS 4
-This is the component of the Enchantment script suite responsible for
managing history and state tracking. It is also the name of an instance of a
collection of such state, to be used for install process recovery, automated
installs, and possibly other things.
+This is the component of the Enchantment script suite responsible for
managing history and tracking state. It is also the name of an instance of a
collection of such state, to be used for install process recovery, automated
installs, and possibly other things.
.RE
.PP
-installer
+enchanter
.RS 4
A user interface to libenchantment (and the associated sub-libraries). This
includes, for example, the command-line installer (described by the present
man-page you are reading) and the TUI menu installer (which uses dialog to
display the text menus).
.RE
@@ -209,7 +209,7 @@ The source code collection needed to build a spell.
.PP
cache
.RS 4
-A compressed archive of a pre-built spell.
+A compressed archive of a pre-built spell (otherwise known as a binary
package).
.RE
.SH "ENVIRONMENT VARIABLES"

diff --git a/enchantment/enchanters/menu/libmenu
b/enchantment/enchanters/menu/libmenu
new file mode 100644
index 0000000..52e53a1
--- /dev/null
+++ b/enchantment/enchanters/menu/libmenu
@@ -0,0 +1,109 @@
+#!/bin/bash
+# [not actually a script, just to teach vi proper hilighting]
+
+# Constants for exit codes recognized by the menu launcher
+# (menu modules should not exit with anything else,
+# or it'll be treated as an error in the menu module itself)
+
+EXIT_OK=0 # Launches menu on the [now] current step
+EXIT_MAINMENU=21 # Brings up the main menu
+EXIT_SHELL=22 # Switches to shell installer (after user asked)
+EXIT_BAIL=23 # Exit to shell (to be used after weird errors)
+
+# for dialog
+export DIALOG_ESC=1 # Treat esc as cancel
+
+# die_cmd [failed_command [displayed_exitcode [exitcode_for_exit]]]
+function die_cmd() {
+ local rc=${2:-$?}
+ local message
+
+ [[ -n "$1" ]] &&
+ message="Error: $1 failed with exit code $rc, "
+
+ message="${message}bailing out."
+
+ echo "$message" >&2
+ exit ${3:-$EXIT_BAIL}
+}
+
+function run_dialog() {
+ dialog --backtitle "Source Mage GNU/Linux Installer, menu interface" \
+ --stdout --cr-wrap "$@"
+}
+
+# Menu / checklist / whatever
+# If this returns 0, use result from dialog, otherwise the user cancelled
+function menu_step() {
+ ANSWER=$(run_dialog --extra-button --extra-label "back" --cancel-label
"abort" "$@")
+ rc=$?
+ if [[ $rc == 0 ]] ;then # OK
+ return 0
+ elif [[ $rc == 3 ]] ;then # back
+ return 1
+ elif [[ $rc == 1 ]] ;then # abort/cancel
+ exit $EXIT_MAINMENU
+ else
+ die_cmd "dialog" $rc
+ fi
+ return $rc
+}
+
+# Displays the doc blurb at the start of a step
+# Buttons: OK, main menu, shell
+# Only returns normally if the user pressed "OK", otherwise exits
+function menu_intro() {
+ run_dialog --extra-button --extra-label "shell" --yes-label "start" \
+ --cancel-label "main menu" --title "$1" --yesno "$2" 0 0
+ rc=$?
+ if [[ $rc == 0 ]] ;then
+ return 0
+ elif [[ $rc == 1 ]] ;then # main menu
+ exit $EXIT_MAINMENU
+ elif [[ $rc == 3 ]] ;then # shell
+ exit $EXIT_SHELL
+ else
+ die_cmd "dialog" $rc
+ fi
+}
+
+function menu_central_menu() {
+ local title=$1
+ local text=$2
+ shift 2
+ ANSWER=$(run_dialog --extra-button --extra-label "done" --cancel-label
"back" \
+ --title "$title" --menu "$text" 0 0 0 "$@")
+ local rc=$?
+ if [[ $rc != 0 ]] && [[ $rc != 1 ]] && [[ $rc != 3 ]] ;then
+ die_cmd "dialog" $rc
+ fi
+
+ return $rc
+}
+
+function menu_message() {
+ run_dialog --title "$1" --msgbox "$2" 0 0
+ true # Don't return nonzero even if user pressed ESC
+}
+
+function menu_menu() {
+ local title=$1
+ local text=$2
+ shift 2
+ menu_step --title "$title" --menu "$text" 0 0 0 "$@"
+}
+
+function menu_inputbox() {
+ menu_step --title "$1" --inputbox "$2" 0 0 "$3"
+}
+
+function menu_loop() {
+ STATE=initial
+ while [[ $STATE != mainmenu ]] ;do
+ $STATE || # Function call
+ die_cmd "State $STATE"
+ done
+
+ # Exit to main menu on normal completion of loop
+ exit $EXIT_MAINMENU
+}
diff --git a/enchantment/enchanters/menu/menu.sh
b/enchantment/enchanters/menu/menu.sh
new file mode 100644
index 0000000..030d82d
--- /dev/null
+++ b/enchantment/enchanters/menu/menu.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /usr/share/smgl.install/libenchant
+. /wherever/libmenu
+
+function main_menu() {
+}
+
+function main_loop() {
+ if $MENU ;then
+ main_menu
+ MENU=false
+ else
+ step=$(enchant_getstep)
+ if ! [[ -x /usr/share/smgl.install/menu/$step ]] ;then
+ echo "No gui code found for step $step, falling back to shell..."
+ exit
+ fi
+ /usr/share/smgl.install/menu/$step
+ rc=$?
+ if [[ $rc == $EXIT_OK ]] ;then
+ : # Carry on with the next step, nothing to do
+ # (Step will have set the current installer step already)
+ elif [[ $rc == $EXIT_MAINMENU ]] ;then
+ MENU=true
+ elif [[ $rc == $EXIT_SHELL ]] ;then
+ echo "Switching to shell, type \e[1mmenu\e[1m to return to menu"
+ echo "Type \e[1mtodo\e1m to see the current step's documentation"
+ exit
+ elif [[ $rc == $EXIT_BAIL ]] ;then
+ echo "Bailing to shell."
+ exit
+ else
+ die_cmd "gui step $step" $rc
+ fi
+ fi
+}
diff --git a/enchantment/enchanters/menu/modules/disk-format
b/enchantment/enchanters/menu/modules/disk-format
new file mode 100644
index 0000000..3d01341
--- /dev/null
+++ b/enchantment/enchanters/menu/modules/disk-format
@@ -0,0 +1,156 @@
+#!/bin/bash
+
+. ../libmenu
+
+load_partitions() {
+ # Device Boot Start End MiB #blocks Id System
+ #/dev/sda1 * 0+ 9538- 9539- 9767488+ 83 Linux
+ #/dev/sda2 9538+ 10236- 699- 714892+ 82 Linux swap / Solaris
+
+ PARTITIONS=()
+ local i=0
+ local PART SIZE TYPE
+ while read PART _ _ SIZE _ _ TYPE ;do
+ [[ "$TYPE" == "Empty" ]] && continue
+ SIZE=${SIZE%+}; SIZE=${SIZE%-}
+ PARTITIONS[i++]=$PART
+ PARTITIONS[i++]="$SIZE MiB, $TYPE"
+ # Poor man's pipe: doesn't spawn a subshell.
+ done < <(sfdisk -l -uM | grep '^/' )
+}
+
+mkfs_command() {
+ case $1 in
+ ext2) echo "mke2fs $2" ;;
+ ext3) echo "mke2fs -j $2" ;;
+ reiserfs) echo "mkreiserfs $2" ;;
+ xfs) echo "mkfs.xfs $2" ;; # ignore existing partition
+ jfs) echo "mkfs.jfs $2" ;; # ditto
+ swap) echo "mkswap $2" ;;
+ custom) echo "... $2" ;;
+ *) return 1 ;;
+ esac
+ return 0
+}
+
+function initial() {
+ menu_intro "Intro: disk-format" \
+"In this menu you will be formatting your disk.
+blah blah blather, ignorum ipsorum latin pretend
+more junk to get some test text creativity all
+gone and this should do"
+ STATE=get_part
+ return 0
+}
+
+function get_part() {
+ load_partitions
+ menu_central_menu "Partition selection menu" \
+ "Select a partition to format or hit 'done'" \
+ "${PARTITIONS[@]}" custom "Enter one manually"
+ rc=$?
+ if [[ $rc == 1 ]] ;then
+ STATE=initial
+ return 0
+ elif [[ $rc == 3 ]] ;then
+ STATE=finish
+ return 0
+ fi
+
+ PARTITION=$ANSWER
+ if [[ $PARTITION == custom ]] ;then
+ STATE=enter_part
+ else
+ STATE=get_fstype
+ fi
+}
+
+function enter_part() {
+ menu_inputbox "Enter partition" \
+ "Please enter a partition to be formatted (including /dev/)" \
+ "/dev/" ||
+ {
+ STATE=get_part
+ return 0
+ }
+ PARTITION=$ANSWER
+ STATE=get_fstype
+}
+
+function get_fstype() {
+ menu_menu "Filesystem Selection Menu" \
+ "Please select what filesystem to use for $PARTITION" \
+ "ext2" "Second Extended file system" \
+ "ext3" "Second Extended journaling file system" \
+ "reiserfs" "Reiserfs journaling file system" \
+ "xfs" "XFS journaling file system" \
+ "jfs" "JFS journaling file system" \
+ "swap" "Swap partition" \
+ "custom" "your call" ||
+ {
+ STATE=get_part
+ return 0
+ }
+ FSTYPE=$ANSWER
+ MKFSCMD="$(mkfs_command $FSTYPE $PARTITION)"
+ STATE=confirm
+}
+
+function confirm() {
+ menu_menu "Confirmation Menu" \
+ "Do you want to run the following command:
+$MKFSCMD" \
+ "doit" "Energize!" \
+ "modify" "Let me edit that line" ||
+ {
+ STATE=get_fstype
+ return 0
+ }
+ if [[ $ANSWER == doit ]] ;then
+ STATE=result
+ else
+ STATE=tunecmd
+ fi
+}
+
+function tunecmd() {
+ menu_inputbox "Alter command" \
+ "Alter the command below whatever way you like.
+It will be executed as if typed on the command line." \
+ "$MKFSCMD" ||
+ {
+ STATE=confirm
+ return 0
+ }
+ MKFSCMD=$ANSWER
+ STATE=confirm
+}
+
+function result() {
+ echo "Creating filesystem..."
+ eval "$MKFSCMD"
+ rc=$?
+ if [[ $rc == 0 ]] ;then
+ echo "mkfs completed successfully. Press enter to continue..."
+ read LINE
+ STATE=get_part
+ else
+ cat <<EOF
+mkfs failed with exit status $rc. Enter 'cancel' to return
+to partition selection, anything else to re-edit the command...
+EOF
+ read ANSWER
+ if [[ $ANSWER == "cancel" ]] ;then
+ STATE=get_part
+ else
+ STATE=tunecmd
+ fi
+ fi
+}
+
+function finish() {
+ enchant_setnext
+ exit $EXIT_OK
+}
+
+menu_loop
diff --git a/enchantment/enchanters/shell/aliases
b/enchantment/enchanters/shell/aliases
new file mode 100644
index 0000000..57eaac5
--- /dev/null
+++ b/enchantment/enchanters/shell/aliases
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+# shell aliases for the shell enchanter (installer)
+
+alias welcome="enchantment-shell welcome"
+alias help="enchantment-shell help"
+alias keymap="enchantment-shell keymap"
+alias 539="enchantment-shell keymap"
+alias todo="enchantment-shell todo"
+alias list="enchantment-shell list"
+alias jump="enchantment-shell jump"
+alias next="enchantment-shell next"
+alias prev="enchantment-shell prev"
+alias install="enchantment-shell install"
+alias potion="enchantment-shell potion"
+
diff --git a/enchantment/enchanters/shell/bashrc
b/enchantment/enchanters/shell/bashrc
new file mode 100644
index 0000000..3e0b6e6
--- /dev/null
+++ b/enchantment/enchanters/shell/bashrc
@@ -0,0 +1,61 @@
+#!/bin/bash
+#-------------------------------------------------------------------------------
+##
+##=head1 SYNOPSIS
+##
+## This is the init/setup of the SMGL shell installer.
+## Take care not to pollute the user's namespace too much,
+## And make sure your functions don't collide with existing commands.
+##
+##=head1 COPYRIGHT
+##
+## Copyright 2010 by the Cauldron Team
+##
+##=head1 FUNCTIONS
+##
+##=over 4
+##
+#-------------------------------------------------------------------------------
+
+# set path to include the shell enchanter commands, if ENCHANT_ENCHANTERS is
+# defined (otherwise the shell enchanter is assumed to already be in PATH)
+PATH="${ENCHANT_ENCHANTERS:+$ENCHANT_ENCHANTERS/shell/bin:}$PATH"
+
+# initialize the installer
+enchantment-shell init
+
+
+# source installer-specific command aliases, if defined
+if [[ -r "$ENCHANT_ENCHANTERS/shell/aliases" ]]
+then
+ source "$ENCHANT_ENCHANTERS/shell/aliases"
+fi
+
+# use titlecase because this will pollute the user's namespace, and we want
to
+# minimize the likelihood that it would interfere with the user's regular
+# processing
+function Shell_Set_Prompt() {
+ enchantment-shell prompt
+}
+
+PS1="\$(Shell_Set_Prompt)\n\u \w\$ "
+
+#-------------------------------------------------------------------------------
+##
+## This software is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This software is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this software; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##
+#-------------------------------------------------------------------------------
+
+# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
diff --git a/enchantment/enchanters/shell/bin/enchantment-shell
b/enchantment/enchanters/shell/bin/enchantment-shell
new file mode 100755
index 0000000..db6583d
--- /dev/null
+++ b/enchantment/enchanters/shell/bin/enchantment-shell
@@ -0,0 +1,448 @@
+#!/bin/bash
+#-------------------------------------------------------------------------------
+##
+##=head1 SYNOPSIS
+##
+## This file is the user-level interface of the SMGL shell installer. All
+## user-level commands are defined here, and either handle the input
directly
+## using libenchanment (and its sub-libraries) or route it to more
high-level
+## functions defined in the shell functions file.
+##
+##=head1 COPYRIGHT
+##
+## Copyright 2010 by the Cauldron Team
+##
+##=head1 FUNCTIONS
+##
+##=over 4
+##
+#-------------------------------------------------------------------------------
+
+# let libenchantment know which installer this is
+ENCHANT_INSTALLER="shell"
+
+selfname="${0##*/}"
+
+
+#-------------------------------------------------------------------------------
+function enchant_shell_command_version() {
+ local ver="$ENCHANT_VERSION"
+ local isover="$ENCHANT_ISO_VERSION"
+ local verpath="$ENCHANT_DATA/version"
+ local sorceryver="sorcery"
+ local grim="grimoire"
+ local grimver="grimoire_version"
+
+ [ -r "$verpath/$sorceryver" ] && sorceryver=$(< "$verpath/$sorceryver")
+ [ -r "$verpath/$grim" ] && grim=$(< "$verpath/$grim")
+ [ -r "$verpath/$grimver" ] && grimver=$(< "$verpath/$grimver")
+
+ "${ENCHANT_CMD_CAT[@]}" << EndVersion
+ ISO version $isover
+ Sorcery version $sorceryver
+ Grimoire ${grim// /,} version ${grimver// /,}
+ $selfname version $ver
+EndVersion
+}
+
+function enchant_shell_command_keymap() {
+ [[ "$#" -le 1 ]] || return $ERR_INSTALLER_CMD
+
+ enchant_shell_perform_keymap "$@" || return $ERR_INSTALLER_KEYMAP
+
+ return $ERR_OK
+}
+
+function enchant_shell_command_aliases() {
+ local aliases="$ENCHANT_ENCHANTERS/$ENCHANT_INSTALLER/aliases"
+
+ # source installer-specific command aliases
+ if [[ -r "$aliases" ]]
+ then
+ source "$aliases" &> "$ENCHANT_NULL" ||
+ liberror_die $ERR_INSTALLER "cannot load aliases file"
+ fi
+
+ return $ERR_OK
+}
+
+function enchant_shell_command_prompt() {
+ local ccurr="$(libcolor_color BOLD)$(libcolor_color WHITE)"
+ local cnext="$(libcolor_color BOLD)$(libcolor_color GREEN)"
+ local ccurnum="$(libcolor_color BOLD)$(libcolor_color WHITE)"
+ local ctotal="$(libcolor_color BOLD)$(libcolor_color RED)"
+ local normal="$(libcolor_color NORMAL_COLOR)"
+
+ [[ "$#" -eq 0 ]] || return $ERR_INSTALLER_CMD
+
+ local current="current:$ccurr$(enchant_get_current)$normal"
+ local next="next:$cnext$(enchant_get_next)$normal"
+ local num="$ccurnum$(enchant_modules_number_current)$normal"
+ local total="$ctotal$(enchant_modules_number_total)$normal"
+ local stats="$current $next $num/$total"
+
+ "${ENCHANT_CMD_OUTPUT[@]}" \
+ "[$stats] For a list of commands, type "$(libcolor_notice "help") ||
+ return $ERR_OUTPUT
+
+ return $ERR_OK
+}
+
+function enchant_shell_command_chroot() {
+ # can take any number of arguments,
+ # so don't check the number of arguments
+
+ enchant_shell_perform_chroot "$@"
+ liberror_check_fatal
+
+ return $ERR_OK
+}
+
+function enchant_shell_command_list_modules() {
+ [[ $# -eq 0 ]] || return $ERR_INSTALLER_CMD
+
+ enchant_shell_perform_list_modules
+ liberror_check_fatal
+
+ return $ERR_OK
+}
+
+function enchant_shell_command_todo() {
+ [[ $# -le 1 ]] || return $ERR_INSTALLER_CMD
+
+ enchant_shell_perform_todo "$@"
+ liberror_check_fatal
+
+ return $ERR_OK
+}
+
+function enchant_shell_command_jump() {
+ [[ $# -eq 1 ]] || return $ERR_INSTALLER_CMD
+
+ enchant_shell_perform_jump "$@"
+ liberror_check_fatal
+
+ return $ERR_OK
+}
+
+function enchant_shell_command_help() {
+ [[ $# -le 1 ]] || return $ERR_INSTALLER_CMD
+
+ enchant_shell_perform_help "$@"
+ liberror_check_fatal
+
+ return $ERR_OK
+}
+
+# Initialize installer
+function enchant_shell_command_init() {
+ [[ "$#" -eq 0 ]] || return $ERR_INSTALLER_CMD
+
+ enchant_prepare
+ liberror_check_fatal
+
+ return $ERR_OK
+}
+
+function enchant_shell_command_install() {
+ local command="$1"
+ shift
+
+ case "$command" in
+ "headers" )
+ enchant_install_kernel_headers "$@"
+ liberror_check_fatal
+ ;;
+ "kernel" )
+ [[ $# -ne 3 ]] && return $ERR_INSTALLER_CMD
+ enchant_install_kernel "$@"
+ liberror_check_fatal
+ ;;
+ "isokernel" )
+ [[ $# -ne 0 ]] && return $ERR_INSTALLER_CMD
+ enchant_install_kernel
+ liberror_check_fatal
+ ;;
+ "system" )
+ [[ $# -ne 0 ]] && return $ERR_INSTALLER_CMD
+ enchant_install_system
+ liberror_check_fatal
+ ;;
+ "spells" )
+ [[ $# -ne 0 ]] && return $ERR_INSTALLER_CMD
+ enchant_install_sources
+ liberror_check_fatal
+ enchant_install_caches
+ liberror_check_fatal
+ ;;
+ "sources" )
+ # can take either 0 or multiple arguments,
+ # so don't check the number of arguments
+ enchant_install_sources "$@"
+ liberror_check_fatal
+ ;;
+ "caches" )
+ # can take either 0 or multiple arguments,
+ # so don't check the number of arguments
+ enchant_install_caches "$@"
+ liberror_check_fatal
+ ;;
+ * ) return $ERR_INSTALLER_CMD ;;
+ esac
+
+ return $ERR_OK
+}
+
+function enchant_shell_command_variable() {
+ enchant_shell_perform_variable "$@"
+ liberror_check_fatal
+}
+
+function enchant_shell_command_select() {
+ # TODO: not yet implemented
+
+ return $ERR_OK
+}
+
+function enchant_shell_command_potion() {
+ local command="$1"
+ shift
+
+ # TODO: not yet implemented
+ case "$command" in
+ back )
+ enchant_shell_perform_back
+ ;;
+ forward )
+ enchant_shell_perform_forward
+ ;;
+ bottle )
+ enchant_potion_bottle "$@"
+ ;;
+ apply )
+ enchant_potion_apply "$@"
+ ;;
+ esac
+
+ return $ERR_OK
+}
+#-------------------------------------------------------------------------------
+
+#-------------------------------------------------------------------------------
+function enchant_shell_command_help() {
+ "${ENCHANT_CMD_CAT[@]}" << EndUsage
+Usage: $selfname [-h | --help] [-v | --version] [-f FILE | --config FILE]
+ [COMMAND [SUBCOMMAND ...]]
+OPTIONS
+ -f FILE
+ --config FILE
+ use config file FILE, overriding any value of the CONFIG_FILE
+ env var
+ -h
+ --help
+ displays the present help/usage information (see the manpage
+ enchantment.8 for more detail)
+ -v
+ --version
+ displays the current version of $selfname
+
+MAIN COMMANDS
+ welcome
+ present the welcome info
+ list
+ show a list of all available modules, in order
+ config VARIABLE [ VARIABLE2 [ VARIABLE 3 ... ] ]
+ show the value of enchantment environment variable VARIABLE for
each
+ variable name passed as arguments
+ jump MODULE
+ jump to module MODULE
+ keymap
+ set the current keymap via a menu of keymaps to choose from
+ chroot
+ chroot into the target directory (ENCHANT_TARGET by default)
+ next
+ proceed to the next module
+ prev
+ return to the previous module
+ todo [MODULE]
+ show what needs to be done for module MODULE (current module if
none
+ given)
+ select SUBCOMMAND
+ sets items to install via the install command
+ the SUBCOMMAND can be one of:
+
+ caches
+ select built spells (packages) to install into the target
+ (ENCHANT_TARGET)
+ sources
+ select spell (package) sources to install into the target
+ (ENCHANT_TARGET)
+ install SUBCOMMAND
+ installs a given component into the target (ENCHANT_TARGET)
+ the SUBCOMMAND can be one of:
+
+ caches
+ install selected built spells (packages) into the target
+ (ENCHANT_TARGET)
+ sources
+ install selected spell (package) sources into the target
+ (ENCHANT_TARGET)
+ system
+ install a basesystem into the target (ENCHANT_TARGET)
+ isokernel
+ install the iso kernel and modules into the target
+ (ENCHANT_TARGET)
+ kernel
+ install a configured kernel into the target
(ENCHANT_TARGET)
+ potion
+ back
+ goes back in the potion history (undo)
+ forward
+ goes forward in the potion history (redo)
+ bottle [potion_file]
+ bottle a potion -- saves metadata from the current install
+ session so that it can be restored/copied later (defaults
to
+ ENCHANT_POTION_BOTTLE)
+ apply [potion_file]
+ restore from the bottled (saved) potion potion_file
(defaults
+ to ENCHANT_POTION_BOTTLE)
+EndUsage
+}
+#-------------------------------------------------------------------------------
+
+
+#####################
+## MAIN PROCESSING ##
+#####################
+
+while [[ "x$1" == "x-"* ]]
+do
+ case "${1#-}" in
+ "f" )
+ shift
+ CONFIG="$1"
+ shift
+ ;;
+ "h" )
+ enchant_shell_command_help
+ exit $?
+ ;;
+ "v" )
+ enchant_shell_command_version
+ exit $?
+ ;;
+ esac
+done
+
+command="$1"
+shift
+
+
+# source configs and libenchantment
+: "${CONFIG:=/etc/enchantment/enchantment.conf}"
+. "$CONFIG"
+
+# load the main library (which in turn loads sub-libraries)
+if ! . "$ENCHANT_LIBS/libenchantment"
+then
+ echo "error: could not load libenchantment"
+ exit 1
+fi
+
+# source installer-specific functions
+. "$ENCHANT_ENCHANTERS/$ENCHANT_INSTALLER/functions" ||
+ liberror_die \
+ $ERR_INSTALLER_FUNCS \
+ "cannot load $ENCHANT_INSTALLER functions file"
+
+
+case "$command" in
+ "aliases" )
+ enchant_shell_command_aliases
+ liberror_check_fatal
+ ;;
+ "keymap" )
+ enchant_shell_command_keymap
+ liberror_check_fatal
+ ;;
+ "init" )
+ enchant_shell_command_init
+ liberror_check_fatal
+ ;;
+ "prompt" )
+ enchant_shell_command_prompt
+ liberror_check_fatal
+ ;;
+ "chroot" )
+ enchant_shell_command_chroot "$@"
+ liberror_check_fatal
+ ;;
+ "todo" )
+ enchant_shell_command_todo "$@"
+ liberror_check_fatal
+ ;;
+ "list" )
+ enchant_shell_command_list_modules "$@"
+ liberror_check_fatal
+ ;;
+ "next" )
+ enchant_shell_perform_next
+ liberror_check_fatal
+ ;;
+ "prev" )
+ enchant_shell_perform_prev
+ liberror_check_fatal
+ ;;
+ "jump" )
+ enchant_shell_command_jump "$@"
+ liberror_check_fatal
+ ;;
+ "welcome" )
+ enchant_shell_perform_welcome
+ liberror_check_fatal
+ ;;
+ "select" )
+ enchant_shell_command_select "$@"
+ liberror_check_fatal
+ ;;
+ "install" )
+ enchant_shell_command_install "$@"
+ liberror_check_fatal
+ ;;
+ "potion" )
+ enchant_shell_command_potion "$@"
+ liberror_check_fatal
+ ;;
+ "config" )
+ enchant_shell_command_variable "$@"
+ liberror_check_fatal
+ ;;
+ "help" )
+ enchant_shell_command_help "$@"
+ liberror_check_fatal
+ ;;
+ * )
+ enchant_shell_command_help
+ liberror_check_fatal
+ ;;
+esac
+
+#-------------------------------------------------------------------------------
+##
+## This software is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This software is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this software; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##
+#-------------------------------------------------------------------------------
+
+# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
diff --git a/enchantment/enchanters/shell/description
b/enchantment/enchanters/shell/description
new file mode 100644
index 0000000..b67e14c
--- /dev/null
+++ b/enchantment/enchanters/shell/description
@@ -0,0 +1 @@
+command-line based interface (CLI) enchanter
diff --git a/enchantment/enchanters/shell/functions
b/enchantment/enchanters/shell/functions
new file mode 100644
index 0000000..269b9dc
--- /dev/null
+++ b/enchantment/enchanters/shell/functions
@@ -0,0 +1,398 @@
+#!/bin/bash
+#-------------------------------------------------------------------------------
+##
+##=head1 SYNOPSIS
+##
+## These are the functions used by the SMGL shell installer.
+## Take care not to pollute the user's namespace too much,
+## and make sure your functions don't (accidentally) collide
+## with existing commands.
+##
+##=head1 COPYRIGHT
+##
+## Copyright 2010 by the Cauldron Team
+##
+##=head1 FUNCTIONS
+##
+##=over 4
+##
+#-------------------------------------------------------------------------------
+
+# print a standardized header
+# if given a filename for an argument, it will print the contents of the file
+# after the header
+function enchant_shell_header() {
+ printf "\n\n\n"
+
+ # if arg1 supplied, cat it
+ if [[ -n "$1" ]]
+ then
+ [[ -f "$1" ]] || return $ERR_FILE_ACCESS
+ "${ENCHANT_CMD_CAT[@]}" "$1" || return $ERR_FILE_ACCESS
+ fi
+
+ return $ERR_OK
+}
+
+# output the step instructions
+# use color if desired, else just plain bold
+function enchant_shell_print() {
+ local file="$1"
+ local hilight=""
+ local normal=""
+
+ [[ -f "$file" ]] || return $ERR_FILE_ACCESS
+
+ if [[ "$ENCHANT_COLOR" == "yes" ]]
+ then
+ hilight="$(libcolor_color NOTICE_COLOR)"
+ normal="$(libcolor_color NORMAL_COLOR)"
+ else
+ hilight="$(libcolor_color BOLD)"
+ normal="$(libcolor_color NORMAL)"
+ fi
+
+ # replace instances of "@[...]" with $hilight...$normal in situ
+ # the color codes have to be used directly (rather than the libcolor_
message
+ # functions) due to the in situ nature of the markup, otherwise we would
have
+ # to overly complicate the instruction printing function by printing one
line
+ # at a time
+ "${ENCHANT_CMD_SED[@]}" "s/@\[\([^]]*\)\]/$hilight\1$normal/g;" "$file" ||
+ return $ERR_FILE_ACCESS
+
+ return $ERR_OK
+}
+
+# display module names with short descriptions in columns
+function enchant_shell_modules() {
+ local list=""
+ local module=""
+ local padded=""
+ local file=""
+ local col_width="0"
+
+ # get the list of modules
+ list=( $(enchant_modules_list) )
+
+ [[ "${#list[*]}" -eq 0 ]] && return $ERR_MODULE_NONE
+
+ # get the width of the widest column
+ for col in ${list[*]}
+ do
+ [[ "${#col}" -gt "$col_width" ]] && col_width="${#col}"
+ done
+
+ enchant_shell_header
+ liberror_check || return $?
+
+ for module in ${list[*]}
+ do
+ # pad the output to align the columns
+ padded="$module"
+ while [[ "${#padded}" -lt "$col_width" ]]
+ do
+ padded="$padded "
+ done
+
+ file="$ENCHANT_MODULES/${module}/description"
+ if [[ -r "$file" ]]
+ then
+ # output name and info in columns
+ "${ENCHANT_CMD_OUTPUT[@]}" "$padded" |
+ "${ENCHANT_CMD_PASTE[@]}" - "$file" ||
+ return $ERR_OUTPUT
+ else
+ # module exists but its description data is missing
+ "${ENCHANT_CMD_OUTPUT[@]}" -e \
+ "$padded\t$(libcolor_error \(description not available\))" ||
+ return $ERR_OUTPUT
+ fi
+ done
+
+ return $ERR_OK
+}
+
+function enchant_shell_perform_variable() {
+ local list="$@"
+ local var=
+ local value=
+ local llist=
+
+ [[ "$#" -eq 0 ]] && list=( ${!ENCHANT_*} )
+
+ for var in "${list[@]}"
+ do
+ # check for user-desired globbing
+ if [[ "${var%\*}" != "$var" ]]
+ then
+ eval llist=( \${!${var}} )
+ for i in "${llist[@]}"
+ do
+ value=$(enchant_get_variable "$var")
+ liberror_check || return $?
+
+ libcolor_msg notice "$var: $(libcolor_info $value)"
+ done
+ else
+ value=$(enchant_get_variable "$var")
+ liberror_check || return $?
+
+ libcolor_msg notice "$var: $(libcolor_info $value)"
+ fi
+ done | "${ENCHANT_CMD_PAGER[@]}" || return $ERR_OUTPUT
+
+ return $ERR_OK
+}
+
+function enchant_shell_perform_todo() {
+ local curstep="${1:-$(enchant_get_current)}"
+
+ [[ -z "$curstep" ]] && return $ERR_GET_CURRENT
+
+ # output the header
+ enchant_shell_header
+ liberror_check || return $?
+
+ # output the current module's instructions
+ enchant_shell_print "$ENCHANT_MODULES/$curstep/instructions"
+ liberror_check || return $?
+
+ return $ERR_OK
+}
+
+function enchant_shell_perform_next() {
+ enchant_set_next
+ liberror_check || return $?
+
+ enchant_shell_perform_todo
+ liberror_check || return $?
+
+ return $ERR_OK
+}
+
+function enchant_shell_perform_prev() {
+ enchant_set_prev
+ liberror_check || return $?
+
+ enchant_shell_perform_todo
+ liberror_check || return $?
+
+ return $ERR_OK
+}
+
+function enchant_shell_perform_back() {
+ enchant_back
+ liberror_check || return $?
+
+ return $ERR_OK
+}
+
+function enchant_shell_perform_forward() {
+ enchant_forward
+ liberror_check || return $?
+
+ return $ERR_OK
+}
+
+function enchant_shell_perform_list_modules() {
+ enchant_shell_modules
+ liberror_check || return $?
+
+ return $ERR_OK
+}
+
+function enchant_shell_perform_jump() {
+ local rc=""
+
+ enchant_set_current $*
+ rc="$?"
+ liberror_check "$rc" "'$@'"
+
+ if [[ "$rc" -eq $ERR_SET_CURRENT ]]
+ then
+ "${ENCHANT_CMD_OUTPUT[@]}" \
+ "Type $(libcolor_notice enchantment list) to see a list of steps." ||
+ return $ERR_OUTPUT
+ fi
+
+ return $rc
+}
+
+function enchant_shell_perform_welcome() {
+ enchant_shell_perform_todo "welcome"
+ liberror_check || return $?
+}
+
+function enchant_shell_perform_help() {
+ helpfile="$ENCHANT_MODULES/help/${1:-index}"
+
+ if [[ ! -f "$helpfile" ]]
+ then
+ if [[ -n "$1" ]]
+ then
+ libcolor_msg warn "No installer help for '$1'"
+ else
+ return $ERR_TARGET
+ fi
+ fi
+
+ enchant_shell_header
+ liberror_check || return $?
+ enchant_shell_print "$helpfile"
+ liberror_check || return $?
+
+ return $ERR_OK
+}
+
+function enchant_shell_perform_chroot() {
+ enchant_chroot_init
+ liberror_check || return $?
+
+ # set the prompt to let the user know
+ # we are entering... the Chroot Zone
+ PS1="[inside chroot, type"
+ PS1="$PS1 $(libcolor_notice exit)"
+ PS1="$PS1 to return to installer]"
+ PS1="${PS1}\n\u \w\$ "
+ export PS1
+
+ if [[ "$ENCHANT_COLOR" == "yes" ]]
+ then
+ export LS_COLORS="$(${ENCHANT_CMD_DIRCOLORS[@]})"
+ fi
+
+ enchant_chroot "$@"
+ liberror_check || return $?
+
+ enchant_chroot_done
+ liberror_check || return $?
+
+ return $ERR_OK
+}
+
+function enchant_shell_keymap_list {
+ local choices=( "$@" )
+ local max="${#choices[*]}"
+ local i=""
+
+ [[ "$max" -lt 1 ]] && return $ERR_INSTALLER_KEYMAP
+
+ if [[ "$max" -gt 20 ]]
+ then
+ for ((i=0; i < "$max"; i++))
+ do
+ printf "\n[%2d] %s\n" "$(($i + 1))" "${choices[i]}"
+ done | "${ENCHANT_CMD_COLUMN[@]}" | "${ENCHANT_CMD_PAGER[@]}"
+ else
+ for ((i=0; i < "$max"; i++))
+ do
+ printf "\n\t\t\t[%2d] %s\n" "$(($i + 1))" "${choices[i]}"
+ done | "${ENCHANT_CMD_PAGER[@]}"
+ fi
+
+ return $ERR_OK
+}
+
+function enchant_shell_keymap_info() {
+ local i="0"
+
+ local msgs=(
+ "First, choose your keyboard's hardware type from the list below."
+ "Some hardware types will also have a subtype,"
+ "which will be presented in another menu."
+ "After you are done choosing your hardware type (and subtype),"
+ "choose your preferred keymapping from the menu you are presented with."
+ ""
+ "You may enter 0 to go back to a previous menu."
+ )
+
+ # print a header
+ printf "\n\t$(libcolor_notice Keymap Selection Menu)\n\n"
+
+ # print the welcome information
+ for ((i; i < "${#msgs[*]}"; i++))
+ do
+ printf "\t$(libcolor_notice ${msgs[i]})\n"
+ done
+
+ return $ERR_OK
+}
+
+function enchant_shell_keymap_prompt() {
+ # print an indented prompt
+ printf "\n\t"
+ libcolor_notice "Please enter a number (0 to go back, * to exit): "
+}
+
+function enchant_shell_perform_keymap() {
+ local choices=()
+ local prefix=""
+ local rc=""
+
+ # print the initial welcome info
+ enchant_shell_keymap_info
+
+ while [[ "$rc" -ne "$ERR_KEYMAP_EXIT" ]]
+ do
+ # get the list of choices
+ choices=( $(enchant_i18n_keymap_make_list "$prefix") )
+
+ # print the list of choices as a numbered menu
+ enchant_shell_keymap_list "${choices[@]}"
+
+ # print a prompt, with indentation
+ enchant_shell_keymap_prompt
+
+ # get user input and update the menu prefix
+ # enchant_i18n_keymap_input will automatically set the keymap if the
input
+ # is for a specific keymap rather than a directory
+ prefix=$(enchant_i18n_keymap_input_handler "$prefix" "${#choices[@]}")
+ rc="$?"
+
+ # if we got bad input, just repeat the loop until we get good input
+ # but warn the user so they know what happened
+ if [[ "$rc" -ge 1 ]]
+ then
+ case "$rc" in
+ # exit is handled by the loop condition itself, so we don't need to
do
+ # anything for this one
+ $ERR_KEYMAP_EXIT )
+ break
+ ;;
+ # if there was a problem with the input, let the user know and
re-loop
+ $ERR_KEYMAP_INPUT )
+ "${ENCHANT_CMD_OUTPUT[@]}" \
+ "Error: You must enter a number corresponding to one" \
+ "of the choices in the list above!" ||
+ return $ERR_OUTPUT
+ ;;
+ * )
+ # return any errors which weren't explicitly handled above
+ liberror_check || return $rc
+ ;;
+ esac
+ fi
+ done
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
+##
+## This software is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This software is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this software; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##
+#-------------------------------------------------------------------------------
+
+# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
diff --git a/enchantment/enchanters/shell/modules
b/enchantment/enchanters/shell/modules
new file mode 100644
index 0000000..e08e326
--- /dev/null
+++ b/enchantment/enchanters/shell/modules
@@ -0,0 +1,23 @@
+init:disk-partition
+disk-partition:disk-format
+disk-format:disk-mount
+disk-mount:spell-caches
+spell-caches:spell-sources
+spell-sources:basesystem
+basesystem:edit-confs
+edit-confs:kernel
+kernel:iso-kernel
+kernel:compile-kernel
+iso-kernel:boot-loader
+compile-kernel:boot-loader
+kernel:boot-loader
+boot-loader:grub
+boot-loader:lilo
+grub:user-setup
+lilo:user-setup
+boot-loader:user-setup
+user-setup:reboot
+reboot:reboot
+error:init
+init:init
+init:error
diff --git a/enchantment/enchantments b/enchantment/enchantments
deleted file mode 100644
index 325a03f..0000000
--- a/enchantment/enchantments
+++ /dev/null
@@ -1,2 +0,0 @@
-menu:text menu installer
-shell:guided shell-prompt installer
diff --git a/enchantment/etc/enchantment.conf
b/enchantment/etc/enchantment.conf
index 3a046e7..e107860 100644
--- a/enchantment/etc/enchantment.conf
+++ b/enchantment/etc/enchantment.conf
@@ -1,7 +1,6 @@
#!/bin/bash

-ENCHANT_CONF="/usr/share/smgl/enchantment/config"
-
-source "$ENCHANT_CONF/default.conf"
-
-# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
+# source the base enchnatment config paths, with a default fallback
+source "${ENCHANT_CONFIGS:-/usr/share/smgl/enchantment/config}/paths.conf"
+# source the main enchnatment config file
+source "$ENCHANT_CONFIGS/default.conf"
diff --git a/enchantment/lib/errorcodes b/enchantment/lib/errorcodes
index eb5b0aa..4fdc2dd 100644
--- a/enchantment/lib/errorcodes
+++ b/enchantment/lib/errorcodes
@@ -20,14 +20,24 @@

#-------------------------------------------------------------------------------
# base error codes
liberror_add_error ERR_MK_DIR "could not make directory"
+liberror_add_error ERR_MK_FILE "could not create file"
+liberror_add_error ERR_WRITE_FILE "could not write file"
liberror_add_error ERR_DIR_EXISTS "directory already exists"
-liberror_add_error ERR_FILE_NOT_FOUND "requested file not found"
-liberror_add_error ERR_DIR_NOT_FOUND "requested directory not found"
+liberror_add_error ERR_FILE_ACCESS "file not accessible"
+liberror_add_error ERR_DIR_ACCESS "directory not accessible"
+liberror_add_error ERR_CP_FILE "could not copy file"
+liberror_add_error ERR_CHMOD_FILE "could not chmod file"
+liberror_add_error ERR_RM_FILE "could not remove file"
+liberror_add_error ERR_SYMLINK_FILE "could not symlink file"
+liberror_add_error ERR_SYMLINK_DIR "could not symlink dir"
+liberror_add_error ERR_TARGET "invalid target parameter"
+liberror_add_error ERR_OUTPUT "could not write output"

# libenchantment base
liberror_add_error ERR_LOAD_LIBRARY "could not load enchantment library"
liberror_add_error ERR_PREPARE "could not initialize enchantment"
liberror_add_error ERR_CLEANUP "could not clean up after finishing"
+liberror_add_error ERR_VARIABLE "variable not found"

# libenchantment module processing
liberror_add_error ERR_GET_CURRENT "could not get current module"
@@ -38,11 +48,14 @@ liberror_add_error ERR_SET_NEXT "could not set next
module"
liberror_add_error ERR_SET_PREV "could not set previous module"

# lib.chroot
-liberror_add_error ERR_CHROOT_INIT "could not initialized chroot"
+liberror_add_error ERR_CHROOT_INVALID "chroot target is undefined or invalid"
+liberror_add_error ERR_CHROOT_ISROOT "chroot target equals the host root fs"
+liberror_add_error ERR_CHROOT_INIT "could not initialize chroot"
liberror_add_error ERR_CHROOT_NOT_INIT "chroot not initialized"
liberror_add_error ERR_CHROOT_UNDEF "chroot command undefined"
-liberror_add_error ERR_CHROOT_EXEC "could not execute chroot command"
+liberror_add_error ERR_CHROOT_CURRENT "chroot not current or not defined"
liberror_add_error ERR_CHROOT_DONE "could not properly clean up chroot"
+liberror_add_error ERR_CHROOT_EXEC "could not execute chroot command"

# lib.i18n keymap
liberror_add_error ERR_KEYMAP_EXIT "keymap processing finished"
@@ -60,8 +73,10 @@ liberror_add_error ERR_INSTALL_FILE "could not install
file"
liberror_add_error ERR_INSTALL_CACHES "could not install spell caches"
liberror_add_error ERR_INSTALL_SOURCES "could not install spell sources"
liberror_add_error ERR_INSTALL_KERNEL "could not install kernel image"
+liberror_add_error ERR_INSTALL_KHDRS "could not install kernel headers"
liberror_add_error ERR_INSTALL_KMODS "could not install kernel modules"
liberror_add_error ERR_INSTALL_DEPMOD "could not perform depmod in install"
+liberror_add_error ERR_INSTALL_SYSTEM "could not install sys image"

# lib.module
liberror_add_error ERR_MODULE_NONE "no modules found"
@@ -75,6 +90,7 @@ liberror_add_error ERR_HISTORY_BACK "could not go back in
install history"
liberror_add_error ERR_HISTORY_FORWARD "could not go forward in install
history"

# lib.potion
+liberror_add_error ERR_POTION_CURRENT "current potion invalid"
liberror_add_error ERR_POTION_DIR "potion directory not found"
liberror_add_error ERR_POTION_GET_HASHSUM "could not read hashsum of file"
liberror_add_error ERR_POTION_SET_HASHSUM "could not store hashsum of file"
@@ -87,12 +103,10 @@ liberror_add_error ERR_POTION_COMPRESS "could not
compress potion archive"
# lib.potion gets
liberror_add_error ERR_POTION_GET_BOOTLOADER "could not read bootloader
config"
liberror_add_error ERR_POTION_GET_CONFS "could not read target system
configs"
-liberror_add_error ERR_POTION_GET_FILESYSTEMS "could not read filesystems"
liberror_add_error ERR_POTION_GET_KERNEL "could not read kernel config"
-liberror_add_error ERR_POTION_GET_MOUNT_POINTS "could not read mount points"
+liberror_add_error ERR_POTION_GET_DISKINFO "could not read disk information"
liberror_add_error ERR_POTION_GET_OPT_SPELLS \
"could not read optional spell selection"
-liberror_add_error ERR_POTION_GET_PARTITIONS "could not read partitions"
liberror_add_error ERR_POTION_GET_USERS "could not read user/group config"

# lib.potion updates
@@ -112,6 +126,8 @@ liberror_add_error ERR_POTION_UPDATE_PARTITIONS "could
not update partitions"
liberror_add_error ERR_POTION_UPDATE_USERS "could not update user/group
config"

# installer
+liberror_add_error ERR_INSTALLER \
+ "\$ENCHANT_INSTALLER error"
liberror_add_error ERR_INSTALLER_FUNCS \
"could not load \$ENCHANT_INSTALLER functions file"
liberror_add_error ERR_INSTALLER_CMD "incorrect usage or unrecognized
command"
diff --git a/enchantment/lib/lib.chroot b/enchantment/lib/lib.chroot
index e0c90d9..ab710e5 100644
--- a/enchantment/lib/lib.chroot
+++ b/enchantment/lib/lib.chroot
@@ -15,75 +15,248 @@
##

#-------------------------------------------------------------------------------

+# global variables for tracking chroot users
+LIBCHROOT_PATHS=()
+LIBCHROOT_USERS=()
+
+# non-hardcoded /dev/null for output dumping
+ENCHANT_NULL="${ENCHANT_NULL:-/dev/null}"
+# non-hardcoded /dev/stdout for output dumping
+ENCHANT_STDOUT="${ENCHANT_STDOUT:-/dev/stdout}"
+
+# set LC_COLLATE to C so we don't get affected by the user's locale
+# when grepping, sorting, etc.
+export LC_COLLATE="C"
+

#-------------------------------------------------------------------------------
## @param target dir to chroot into
##
## Prepares a chroot environment and exports necessary variables. For every
## target dir to chroot into, there should be one
-## [cauldron_chroot_init ... cauldron_chroot_done] pair.
+## [enchant_chroot_init ... enchant_chroot_done] pair.
##

#-------------------------------------------------------------------------------
function enchant_chroot_init() {
- if [[ "$ENCHANT_CHROOT_INIT" -ne 1 ]]
- then
- # if target is somehow null, return an error
- [[ -z "$ENCHANT_TARGET" ]] && return $ERR_CHROOT_UNDEF
+ local target="${1:-$ENCHANT_TARGET}"
+ local num="${#LIBCHROOT_PATHS[@]}"
+ local bind=""
+
+ # ensure an existing absolute path
+ target=$("${ENCHANT_CMD_READLINK[@]}" "$target") ||
+ return $ERR_CHROOT_INVALID
+
+ # if target is either null or not a valid directory, return an error
+ [[ -d "$target" ]] || return $ERR_CHROOT_INVALID

- # bind the needed mounts
- mount --bind "$ENCHANT_ISO_PATH/dev" "$ENCHANT_TARGET/dev" ||
+ # if target matches the root directory, return an error
+ [[ "$target" == "/" ]] && return $ERR_CHROOT_ISROOT
+
+ # test if the target path is already loaded as a chroot -- if it is, just
+ # increase the count, but if it isn't do the bind mounts and set up the
+ # counts
+ local already_loaded=0
+ for p in "${LIBCHROOT_PATHS[@]}"
+ do
+ [[ "$p" == "$target" ]] && already_loaded=1
+ done
+ if [[ "$already_loaded" -eq 1 ]]
+ then
+ for ((path=0; path < num; path++))
+ do
+ if [[ "$target" == "${LIBCHROOT_PATHS[path]}" ]]
+ then
+ ((LIBCHROOT_USERS[path]++))
+ fi
+ done
+ else
+ # bind mount the dev tree
+ for bind in dev dev/pts
+ do
+ "${ENCHANT_CMD_MOUNT_BIND[@]}" \
+ "$ENCHANT_ISO_PATH/$bind" \
+ "$target/$bind" ||
+ return $ERR_CHROOT_INIT
+ done
+ # mount procfs
+ "${ENCHANT_CMD_MOUNT[@]}" -t proc proc "$target/proc" ||
return $ERR_CHROOT_INIT
- mount --bind "$ENCHANT_ISO_PATH/dev/pts" "$ENCHANT_TARGET/dev/pts" ||
+ # mount sysfs
+ "${ENCHANT_CMD_MOUNT[@]}" -t sysfs sys "$target/sys" ||
return $ERR_CHROOT_INIT
- mount --bind "$ENCHANT_ISO_PATH/proc" "$ENCHANT_TARGET/proc" ||
+ # mount runfs
+ "${ENCHANT_CMD_MOUNT[@]}" -t tmpfs run "$target/run" ||
return $ERR_CHROOT_INIT

- # export that the chroot is successfully constructed
- export ENCHANT_CHROOT_INIT=1
+ # add the target path to the list of chrooted paths
+ LIBCHROOT_PATHS[num]="$target"
+ # set the user count to 1
+ LIBCHROOT_USERS[num]=1
+ fi
+
+ # test if the target path matches the currently defined chroot command
target
+ # path -- if it doesn't, we need to set the chroot command
+ if [[ "$num" -eq 0 ||
+ "$target" == "${ENCHANT_CHROOT[${num}-1]}" ]]
+ then
+ # everything went OK, so export the chroot definitions
+ ENCHANT_CHROOT=( "${ENCHANT_CMD_CHROOT[@]}" "$target" )
fi

return $ERR_OK
}


#-------------------------------------------------------------------------------
+## @param target dir to chroot into (optional)
##
## Cleans up the chroot environment after it is no longer needed
##

#-------------------------------------------------------------------------------
function enchant_chroot_done() {
- if [[ "$ENCHANT_CHROOT_INIT" -eq 1 ]]
+ local target="${1:-$ENCHANT_TARGET}"
+ local index=""
+
+ # ensure an existing absolute path
+ target=$("${ENCHANT_CMD_READLINK[@]}" "$target") || return $ERR_TARGET
+
+ # if target doesn't point to a valid directory, return an error
+ [[ -d "$target" ]] || return $ERR_CHROOT_INVALID
+
+ for ((index=0; index < "${#LIBCHROOT_PATHS[@]}"; index++))
+ do
+ if [[ "$target" == "${LIBCHROOT_PATHS[index]}" ]]
+ then
+ # remove one "lock" for each time cauldron_chroot_done is called until
we
+ # are down to the last one, and then do the actual cleanup of the
chroot
+ if [[ "${LIBCHROOT_USERS[index]}" -gt 1 ]]
+ then
+ LIBCHROOT_USERS[index]=$((LIBCHROOT_USERS[index]-1))
+ else
+ # unmount the chroot mount points
+ "${ENCHANT_CMD_UNMOUNT_RECURSIVE[@]}" "$target"/* ||
+ return $ERR_CHROOT_DONE
+
+ # clear the chroot definitions
+ unset ENCHANT_CHROOT
+ unset LIBCHROOT_USERS[index]
+ unset LIBCHROOT_PATHS[index]
+ fi
+ fi
+ done
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
+##
+## Forcefully cleans up all known chroot paths (only to be used before a
forced
+## exit from the main program due to a non-recoverable error condition)
+##
+#-------------------------------------------------------------------------------
+function enchant_chroot_cleanup() {
+ local target=
+
+ for target in "${LIBCHROOT_PATHS[@]}"
+ do
+ # unmount the chroot mount points
+ "${ENCHANT_CMD_UNMOUNT_RECURSIVE[@]}" "$target"/* ||
+ return $ERR_CHROOT_DONE
+ done
+
+ # clear the chroot definitions
+ unset LIBCHROOT_USERS
+ unset LIBCHROOT_PATHS
+ unset ENCHANT_CHROOT
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
+## @param -q [quiet -- don't output anything, just test] (optional)
+## @param chroot path (optional)
+##
+## Determines the current chroot. If called with no parameters, it will
return
+## (echo) the path of the current chroot. If provided the chroot path
parameter,
+## it will test whether the provided path matches the current chroot, and
will
+## return an error if they don't match.
+##
+#-------------------------------------------------------------------------------
+function enchant_chroot_current() {
+ local num="${#LIBCHROOT_PATHS[*]}"
+ local current=""
+ local target=""
+ local match=0
+ local quiet=0
+
+ # check if we should disable output
+ if [[ "$1" == "-q" ]]
then
- # if target is somehow null, return an error
- [[ -z "$ENCHANT_TARGET" ]] && return $ERR_CHROOT_UNDEF
+ quiet=1
+ shift
+ fi
+ target="$1"
+
+ # use the correct index into the array (indexing starts from 0, but count
of
+ # elements starts from 1)
+ [[ "$num" -gt 0 ]] && ((num--))
+ current="${LIBCHROOT_PATHS[num]}"
+
+ # if there is no current chroot, then return immediately (no sense testing
if
+ # anything matches the currently defined chroot when there is none)
+ [[ -z "$current" ]] && return $ERR_CHROOT_CURRENT

- # unmount the bind mounts
- umount "$ENCHANT_TARGET/proc" || return $ERR_CHROOT_DONE
- umount "$ENCHANT_TARGET/dev/pts" || return $ERR_CHROOT_DONE
- umount "$ENCHANT_TARGET/dev" || return $ERR_CHROOT_DONE
+ # make sure that the chroot is also present in LIBCHROOT_USERS
+ # if it is not present in LIBCHROOT_USERS, then there is something wrong
and
+ # the chroot should probably be reloaded
+ [[ "${LIBCHROOT_USERS[num]}" -ge 1 ]] || return $ERR_CHROOT_CURRENT

- # clear the chroot definitions
- unset ENCHANT_CHROOTINIT
+ if [[ -n "$target" ]]
+ then
+ # test if the target path doesn't match the currently defined chroot
command
+ # target path -- if it doesn't match, return an error
+ [[ "$target" != "$current" ]] && return $ERR_CHROOT_CURRENT
fi

+ # output the currently loaded chroot
+ [[ "$quiet" -ne 1 ]] && echo "$current"
+
return $ERR_OK
}


#-------------------------------------------------------------------------------
+## @param -q (optional)
+## @param -s (optional)
## @param command plus args to execute inside the chroot
##
## Executes the command given as the first parameter and any args that follow
-## inside the chroot constructed by enchant_chroot_init.
+## inside the chroot constructed by enchant_chroot_init. If the -q flag is
+## passed, the command will be "quieted", meaning that messages from
enchantment
+## will be disabled. If the -s flag is passed, the command will run silently,
+## where even the normal output of the chrooted command will be suppressed.
The
+## outupt follows the general pattern of configurable output, meaning that
+## ENCHANT_NULL and ENCHANT_STDOUT will be used as the targets.
##

#-------------------------------------------------------------------------------
function enchant_chroot() {
- if [[ "$ENCHANT_CHROOT_INIT" -eq 1 ]]
- then
- # if target is somehow null, return an error
- [[ -z "$ENCHANT_TARGET" ]] && return $ERR_CHROOT_UNDEF
+ local stdout="$ENCHANT_STDOUT"

- "$ENCHANT_CHROOT" "$ENCHANT_TARGET" "$@" || return $ERR_CHROOT_EXEC
- else
- return $ERR_CHROOT_NOT_INIT
- fi
+ case "${1#-}" in
+ q)
+ verbose="no"
+ shift
+ ;;
+ s)
+ verbose="no"
+ stdout="$ENCHANT_NULL"
+ shift
+ ;;
+ esac
+
+ enchant_chroot_current -q || return $ERR_CHROOT_CURRENT
+
+ enchant_verbose "${ENCHANT_CHROOT[@]} $@"
+
+ PATH="/sbin:/bin:/usr/sbin:/usr/bin"
+ "${ENCHANT_CHROOT[@]}" "$@" @> "$stdout" || return $ERR_CHROOT_EXEC

return $ERR_OK
}
diff --git a/enchantment/lib/lib.i18n b/enchantment/lib/lib.i18n
index d3a1349..fcb5b2c 100644
--- a/enchantment/lib/lib.i18n
+++ b/enchantment/lib/lib.i18n
@@ -68,28 +68,28 @@ function enchant_i18n_keymap_input_get() {
##

#-------------------------------------------------------------------------------
function enchant_i18n_keymap_make_list {
- local prefix="${1:-$ENCHANT_ISO_PATH/usr/share/keymaps}"
+ local prefix="${1:-$ENCHANT_KEYMAPDIR}"
local list=()
local result=()
local i=""

- [[ -d "$prefix" ]] || return $ERR_DIR_NOT_FOUND
+ [[ -d "$prefix" ]] || return $ERR_DIR_ACCESS

- list=( $(find "$prefix"/* -maxdepth 0 -type d -not -name include) )
+ list=( $("${ENCHANT_CMD_FIND[@]}" "$prefix"/* -maxdepth 0 -type d -not
-name include) )

if [[ "${#list[*]}" -eq 0 ]]
then
- list=( $(find "$prefix"/* -type f -name *.map.gz) )
+ list=( $("${ENCHANT_CMD_FIND[@]}" "$prefix"/* -type f -name *.map.gz) )
fi

[[ "${#list[*]}" -eq 0 ]] && return $ERR_KEYMAP_LIST

for ((i=0; i < "${#list[*]}"; i++))
do
- result=( "$result" "${list[i]##*/}" )
+ result=( "${result[@]}" "${list[i]##*/}" )
done

- echo "${result[*]}"
+ echo "${result[@]}"

return $ERR_OK
}
@@ -100,7 +100,7 @@ function enchant_i18n_keymap_make_list {
##

#-------------------------------------------------------------------------------
function enchant_i18n_keymap_get() {
- cat "$ENCHANT_KEYMAP" || return $ERR_KEYMAP_GET
+ "${ENCHANT_CMD_CAT[@]}" "$ENCHANT_KEYMAP" || return $ERR_KEYMAP_GET

return $ERR_OK
}
@@ -115,9 +115,9 @@ function enchant_i18n_keymap_get() {
function enchant_i18n_keymap_set() {
local keymap="$1"

- [[ -f "$keymap" ]] || return $ERR_FILE_NOT_FOUND
+ [[ -f "$keymap" ]] || return $ERR_FILE_ACCESS

- loadkeys "$keymap" || return $ERR_KEYMAP_LOAD
+ "${ENCHANT_CMD_LOAD_KEYMAP[@]}" "$keymap" || return $ERR_KEYMAP_LOAD

# store the selected keymap for later use by enchantment (e.g., for
potions)
echo "${keymap%.*map.*}" > "$ENCHANT_KEYMAP" ||
@@ -135,7 +135,7 @@ function enchant_i18n_keymap_set() {
##

#-------------------------------------------------------------------------------
function enchant_i18n_keymap_input_handler() {
- local prefix="${1:-$ENCHANT_ISO_PATH/usr/share/keymaps}"
+ local prefix="${1:-$ENCHANT_KEYMAPDIR}"
local max="$2"
local input=""
local rc=""
@@ -159,7 +159,7 @@ function enchant_i18n_keymap_input_handler() {
then
# only go up a level if we aren't at the beginning
# (don't go lower than the floor)
- [[ "$prefix" != "$ENCHANT_ISO_PATH/usr/share/keymaps" ]] &&
+ [[ "$prefix" != "$ENCHANT_KEYMAPDIR" ]] &&
prefix="${prefix%/[^/]*}"
else
# get the menu item, adjusting for array indexed from 0
diff --git a/enchantment/lib/lib.install b/enchantment/lib/lib.install
index 92f701b..610e09a 100644
--- a/enchantment/lib/lib.install
+++ b/enchantment/lib/lib.install
@@ -36,7 +36,8 @@ function enchant_install_file() {
[[ -z "$src" ]] && return $ERR_INSTALL_FILE
[[ -z "$dst" ]] && return $ERR_INSTALL_FILE

- cp -dfp "$src" "$dst" || return $ERR_INSTALL_FILE
+ "${ENCHANT_CMD_INSTALL_FILE[@]}" "$src" "$dst" ||
+ return $ERR_INSTALL_FILE

return $ERR_OK
}
@@ -54,10 +55,11 @@ function enchant_install_dir() {
local $src="$1"
local $dst="$2"

- [[ -z "$src" ]] && return $ERR_INSTALL_FILE
- [[ -z "$dst" ]] && return $ERR_INSTALL_FILE
+ [[ -z "$src" ]] && return $ERR_INSTALL_DIR
+ [[ -z "$dst" ]] && return $ERR_INSTALL_DIR

- cp --parents -dfpr "$src" "$dst" || return $ERR_INSTALL_DIR
+ "${ENCHANT_CMD_INSTALL_DIR[@]}" "$src" "$dst" ||
+ return $ERR_INSTALL_DIR

return $ERR_OK
}
@@ -72,13 +74,26 @@ function enchant_install_dir() {
##

#-------------------------------------------------------------------------------
function enchant_install_sources() {
- local sources=( "${@:-$(cat $ENCHANT_SOURCES_LIST)}" )
+ local sources=( "$@" )
local dst="$ENCHANT_TARGET_SOURCES"

- for spell in $sources
+ # if no spells were passed in directly, load via the env var
+ [[ -n "$sources" ]] || sources=( "${ENCHANT_SOURCES_LIST[@]}" )
+
+ for spell in "${sources[@]}"
do
- enchant_install_file "$ENCHANT_SPELL_SOURCES/$spell" "$dst/" ||
- return $ERR_INSTALL_SOURCES
+ # if the spells are specified via a file, read the file
+ if [[ -r "$spell" ]]
+ then
+ while read s
+ do
+ enchant_install_file "$ENCHANT_SPELL_SOURCES/$s" "$dst/" ||
+ return $ERR_INSTALL_SOURCES
+ done < "$spell"
+ else
+ enchant_install_file "$ENCHANT_SPELL_SOURCES/$spell" "$dst/" ||
+ return $ERR_INSTALL_SOURCES
+ fi
done

return $ERR_OK
@@ -88,19 +103,32 @@ function enchant_install_sources() {
##
## @param caches_list
##
-## Copies the selected spell caches into the target. If caches_list is empty
+## Installs the selected spell caches into the target. If caches_list is
empty
## (no caches were passed as arguments), it reads the list of caches to
-## install from $ENCHANT_SOURCES_LIST.
+## install from $ENCHANT_CACHES_LIST.
##

#-------------------------------------------------------------------------------
function enchant_install_caches() {
- local caches=( "${@:-$(cat $ENCHANT_CACHES_LIST)}" )
+ local caches=( "$@" )
local dst="$ENCHANT_TARGET_CACHES"

+ # if no spells were passed in directly, load via the env var
+ [[ -n "$caches" ]] || caches=( "${ENCHANT_CACHES_LIST[@]}" )
+
for spell in $caches
do
- enchant_install_file "$ENCHANT_SPELL_SOURCES/spell" "$dst/" ||
- return $ERR_INSTALL_CACHES
+ # if the spells are specified via a file, read the file
+ if [[ -r "$spell" ]]
+ then
+ while read s
+ do
+ "${ENCHANT_CMD_TAR[@]}" -C "$target" -xf "$ENCHANT_SPELL_CACHES/$s"
||
+ return $ERR_INSTALL_CACHES
+ done < "$spell"
+ else
+ "${ENCHANT_CMD_TAR[@]}" -C "$target" -xf
"$ENCHANT_SPELL_CACHES/$spell" ||
+ return $ERR_INSTALL_CACHES
+ fi
done

return $ERR_OK
@@ -108,9 +136,31 @@ function enchant_install_caches() {


#-------------------------------------------------------------------------------
##
+## @param sys iaage archive file
+##
+## Unpacks the given sys image to the target system. If the sys image is not
+## specified, it defaults to ENCHANT_SYSTEM_ARCHIVE.
+##
+#-------------------------------------------------------------------------------
+function enchant_install_system() {
+ local sys="${1:-$ENCHANT_SYSTEM_ARCHIVE}"
+ local dst="$ENCHANT_TARGET"
+
+ # ensure that the sys image is a file
+ [[ -f "$sys" ]] || return $ERR_INSTALL_SYSTEM
+
+ "${ENCHANT_CMD_TAR[@]}" -C "$dst" -xf "$sys" ||
+ return $ERR_INSTALL_SYSTEM
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
+##
## @param kernel_image (absolute path - e.g. $ENCHANT_ISO_PATH/boot/vmlinux)
## @param modules_path (absolute path - e.g. $ENCHANT_ISO_PATH/lib/modules)
## @param kernel_version (e.g. 2.6.32.8)
+## @param kernel_type (e.g. linux)
##
## Copies the kernel and it's associated modules from the ISO to the TARGET
## system. Requires that / and /boot on the TARGET system are mounted (unless
@@ -126,22 +176,114 @@ function enchant_install_kernel() {
local kernel="${1:-$ENCHANT_ISO_KERNEL}"
local kmods="${2:-$ENCHANT_ISO_KMODS}"
local kvers="${3:-$ENCHANT_ISO_KVERS}"
+ local ktype="${4:-$ENCHANT_KERNEL_TYPE}"

# copy the kernel over
enchant_install_file "$kernel" "$target_kernel" || return
$ERR_INSTALL_KERNEL

- # copy the modules over
- enchant_install_dir "$kmods/$kvers" "$target_kmods/$(basename $kmods)" ||
- return $ERR_INSTALL_KMODS
+ case "$ktype" in
+ linux)
+ # copy the modules over
+ enchant_install_dir "$kmods/$kvers" "$target_kmods/$(basename $kmods)"
||
+ return $ERR_INSTALL_KMODS

- # make sure that the proper dep info is generated on the target system
- depmod -a -b "$target_kmods/$kvers" "$kvers" ||
- return $ERR_INSTALL_DEPMOD
+ # make sure that the proper dep info is generated on the target system
+ depmod -a -b "$target_kmods/$kvers" "$kvers" ||
+ return $ERR_INSTALL_DEPMOD
+ ;;
+ esac

return $ERR_OK
}


#-------------------------------------------------------------------------------
+##
+## @param kernel_source (absolute path - e.g.
$ENCHANT_ISO_PATH/usr/src/kern.tar)
+## @param kernel_arch (architecture to install for - e.g. x86)
+##
+## Installs the kernel headers into the TARGET's /usr/include/ to be used by
the
+## system build toolchain for compiling packages from source.
+## Requires that / on the TARGET system is mounted.
+##
+#-------------------------------------------------------------------------------
+function enchant_install_kernel_headers_linux() {
+ local ksrc="${1:-$ENCHANT_KERNEL_SOURCE}"
+ local karch="${2:-$ENCHANT_ARCH}"
+ local target="$ENCHANT_TARGET"
+ local ksrcd="${ksrc%%.*}"
+
+ [[ -f "$ksrc" ]] || return $ERR_TARGET
+
+ [[ -f "$karch" ]] && karch=$(< "$karch")
+ liberror_check || return $ERR_FILE_ACCESS
+
+ # unpack the kernel headers into the target
+ "${ENCHANT_CMD_MKDIR[@]}" "$target/usr/src" ||
+ return $ERR_MK_DIR
+ "${ENCHANT_CMD_TAR[@]}" -C "$target/usr/src" -xf "$ksrc" ||
+ return $ERR_INSTALL_KHDRS
+
+ # adjust the arch setting for what linux uses
+ case "$karch" in
+ x86_64 )
+ karch="x86"
+ ;;
+ esac
+
+ ksrc="${ksrc##*/}"
+
+ # sylink the needed header dirs for the initial install
+ for hdir in \
+ "arch/$karch/include/asm" \
+ "include/uapi/asm-generic" \
+ "include/uapi/linux"
+ do
+ "${ENCHANT_CMD_SYMLINK[@]}" \
+ "/usr/src/$ksrcd/$hdir" \
+ "$target/usr/include/${hdir##*/}" ||
+ return $ERR_SYMLINK_DIR
+ done
+
+ # install the headers via kernel makefile in the chroot
+ enchant_chroot_init "$target"
+ liberror_check || return $?
+ enchant_chroot "/usr/src/$ksrcd/make" ARCH="$karch" headers_install
+ liberror_check || return $?
+ enchant_chroot_done "$target"
+ liberror_check || return $?
+
+ # remove the symlinks
+ for hlink in asm asm-generic linux
+ do
+ "${ENCHANT_CMD_RM[@]}" "$target/usr/include/$hlink" ||
+ return $ERR_RM_FILE
+ done
+
+ # move the kernel headers from the src tree to the target's root
+ "${ENCHANT_CMD_MV[@]}" \
+ "$target/usr/src/$ksrcd/usr/include/"* \
+ "$target/usr/include/" ||
+ return $ERR_INSTALL_KHDRS
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
+##
+## @param kernel_type (e.g. linux)
+##
+## Installs the kernel headers into the TARGET's /usr/include/ to be used by
the
+## system build toolchain for compiling packages from source.
+## Requires that / on the TARGET system is mounted.
+##
+#-------------------------------------------------------------------------------
+function enchant_install_kernel_headers() {
+ local ktype="${1:-$ENCHANT_KERNEL_TYPE}"
+
+ enchant_install_kernel_headers_"${!ktype}"
+}
+
+#-------------------------------------------------------------------------------
##=back
##
##=head1 LICENSE
diff --git a/enchantment/lib/lib.modules b/enchantment/lib/lib.modules
index 90c2cb7..8fdc923 100644
--- a/enchantment/lib/lib.modules
+++ b/enchantment/lib/lib.modules
@@ -30,19 +30,20 @@
##

#-------------------------------------------------------------------------------
function enchant_modules_list() {
+ local modlist="$ENCHANT_ENCHANTERS/$ENCHANT_INSTALLER/modules"
local output=()
- local module=""
+ local module=

# make sure the installer's modules file exists
- [[ -f "$ENCHANT_DATA/$INSTALLER/modules" ]] || return $ERR_MODULE_FILE
+ [[ -f "$modlist" ]] || return $ERR_MODULE_FILE

# for all modules, if the module isn't "error" and it isn't already in the
# output list, append it to the output list
- for module in $(cut -d: -f1 "$ENCHANT_DATA/$INSTALLER/modules")
+ for module in $(cut -d: -f1 "$modlist")
do
if [[ "$module" != "error" ]]
then
- if ! $(echo "${output[@]}" | grep -q "$module")
+ if [[ " ${output[@]} " != *" $module "* ]]
then
output=( "${output[@]}" "$module" )
fi
@@ -62,15 +63,25 @@ function enchant_modules_list() {
## implementation of the shell installer for an example).
##

#-------------------------------------------------------------------------------
-function enchant_modules_number() {
- local num="$(grep -n -m1 \"^$(enchant_get_current):\"
$ENCHANT_INSTALLER/modules)"
+function enchant_modules_number_current() {
+ local list=
+ local current=
+ local num=0

- if [[ -z "$num" ]]
- then
- return $ERR_MODULE_GET_NUM
- fi
+ list=( $(enchant_modules_list) )
+ liberror_check || return $ERR_MODULE_GET_NUM
+
+ current=$(enchant_get_current)
+ liberror_check || return $ERR_MODULE_GET_NUM
+
+ for ((i=0; i < "${#list[@]}" ; i++))
+ do
+ [[ "${list[i]}" == "$current" ]] && num="$((i+1))"
+ done
+
+ [[ "$num" -gt 0 ]] || return $ERR_MODULE_GET_NUM

- echo "$num" | cut -d: -f1 || return $ERR_MODULE_GET_NUM
+ echo "$num"

return $ERR_OK
}
@@ -80,8 +91,12 @@ function enchant_modules_number() {
## Returns the total number of modules to perform during the installation
##

#-------------------------------------------------------------------------------
-function enchant_modules_total() {
- local total="$(enchant_modules_list | wc -l)"
+function enchant_modules_number_total() {
+ local total=
+
+ total=( $(enchant_modules_list) )
+ liberror_check || return $ERR_MODULE_NONE
+ total="${#total[@]}"

if [[ "$total" -eq 0 || -z "$total" ]]
then
@@ -101,14 +116,14 @@ function enchant_modules_total() {
##

#-------------------------------------------------------------------------------
function enchant_modules_enter() {
- local module="$(cat $ENCHANT_STATUS)"
+ local module="$(enchant_get_current)"
local script=""

for script in "$ENCHANT_MODULES/$module/enter"/*
do
- if [[ -f "$script" ]]
+ if [[ -r "$script" ]]
then
- /bin/bash "$script" || return $ERR_MODULE_SCRIPT
+ "$ENCHANT_SHELL" "$script" || return $ERR_MODULE_SCRIPT
fi
done

@@ -123,14 +138,17 @@ function enchant_modules_enter() {
##

#-------------------------------------------------------------------------------
function enchant_modules_exit() {
- local module="$(cat $ENCHANT_STATUS)"
- local script=""
+ local module=
+ local script=
+
+ module="$(enchant_get_current)"
+ libcheck_error || return $?

for script in "$ENCHANT_MODULES/$module/exit"/*
do
- if [[ -f "$script" ]]
+ if [[ -r "$script" ]]
then
- /bin/bash "$script" || return $ERR_MODULE_SCRIPT
+ "$ENCHANT_SHELL" "$script" || return $ERR_MODULE_SCRIPT
fi
done

@@ -147,11 +165,14 @@ function enchant_modules_exit() {
##

#-------------------------------------------------------------------------------
function enchant_modules_potion() {
- local module="$(cat $ENCHANT_STATUS)"
local potion="$1"
- local script=""
+ local module=
+ local script=
+
+ module="$(enchant_get_current)"
+ libcheck_error || return $?

- [[ -d "$potion" ]] || $ERR_DIR_NOT_FOUND
+ [[ -d "$potion" ]] || $ERR_DIR_ACCESS

for script in "$ENCHANT_MODULES/$module/potion"/*
do
diff --git a/enchantment/lib/lib.potion b/enchantment/lib/lib.potion
index ca28045..a70cc96 100644
--- a/enchantment/lib/lib.potion
+++ b/enchantment/lib/lib.potion
@@ -25,36 +25,6 @@

#-------------------------------------------------------------------------------


#-------------------------------------------------------------------------------
-# global variables
-#-------------------------------------------------------------------------------
-# current potion dir - used with the enchant history functions to keep
separate
-# state for each level of history
-ENCHANT_POTION_CURRENT=""
-
-# list of config files (e.g., /etc) for which to keep state information on
-# do not include a preceding '/' as the list will be relative to the target
-# system directory (by default /mnt/root)
-ENCHANT_POTION_CONFS=(
- etc/timezone
- etc/hostname
- etc/sysconfig/*
- )
-
-# list of ISO mounts to exclude from partition/filesystem/mount_point
listings
-# each match is exact, so subdirectories need to be explicitly listed
separately
-ENCHANT_POTION_MOUNT_EXCLUDES=(
- /
- /dev
- /dev/pts
- /dev/shm
- /proc
- /sys
- /tmp
- /var
- /var/tmp
- )
-
-#-------------------------------------------------------------------------------
# function definitions

#-------------------------------------------------------------------------------

#-------------------------------------------------------------------------------
@@ -64,9 +34,10 @@ ENCHANT_POTION_MOUNT_EXCLUDES=(
## ENCHANT_POTION/.
##

#-------------------------------------------------------------------------------
-function enchant_potion_make_dir() {
+function enchant_potion_new() {
local potion="$1"

+ [[ -n "$potion" ]] || return $ERR_TARGET
[[ -d "$potion" ]] && return $ERR_DIR_EXISTS

mkdir -p "$ENCHANT_POTION/$potion" || return $ERR_MK_DIR
@@ -76,11 +47,45 @@ function enchant_potion_make_dir() {


#-------------------------------------------------------------------------------
##
+## Initializes the potion subsystem
+##
+#-------------------------------------------------------------------------------
+function enchant_potion_init() {
+ local initpotion="default"
+
+ mkdir -p "$ENCHANT_POTION" || return $ERR_MK_DIR
+ echo "" > "$ENCHANT_BACK" || return $ERR_WRITE_FILE
+ echo "" > "$ENCHANT_FORWARD" || return $ERR_WRITE_FILE
+
+ enchant_potion_new "$initpotion"
+ liberror_check || return $?
+ enchant_potion_set_current "$initpotion"
+ liberror_check || return $?
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
+##
## Gets the current potion name (temporary directory tied to the history
level)
##

#-------------------------------------------------------------------------------
function enchant_potion_get_current() {
- echo -n "$ENCHANT_POTION_CURRENT"
+ local pdir="$ENCHANT_POTION"
+ local pfile="$pdir/.current"
+ local current="$ENCHANT_POTION_CURRENT"
+
+ if [[ -z "$current" ]]
+ then
+ [[ -d "$pdir" ]] || return $ERR_POTION_DIR
+ [[ -f "$pfile" ]] || return $ERR_POTION_CURRENT
+
+ current=$(< $pfile) || return $ERR_POTION_CURRENT
+ [[ -d "$current" ]] || return $ERR_DIR_ACCESS
+ ENCHANT_POTION_CURRENT="$current"
+ fi
+
+ printf "%s" "$current"

return $ERR_OK
}
@@ -93,10 +98,20 @@ function enchant_potion_get_current() {

#-------------------------------------------------------------------------------
function enchant_potion_set_current() {
local potion="$1"
+ local pdir="$ENCHANT_POTION"

- [[ -d "$potion" ]] || return $ERR_DIR_NOT_FOUND
+ if ! [[ -d "$potion" ]]
+ then
+ if [[ -d "$pdir/$potion" ]]
+ then
+ potion="$pdir/$potion"
+ else
+ return $ERR_DIR_ACCESS
+ fi
+ fi

- $ENCHANT_POTION_CURRENT="$potion"
+ echo "$potion" > "$ENCHANT_POTION/.current" || return $ERR_WRITE_FILE
+ ENCHANT_POTION_CURRENT="$potion"

return $ERR_OK
}
@@ -105,17 +120,26 @@ function enchant_potion_set_current() {
## @param file to get the hash for (relative to the current potion dir)
## @param potion directory name (relative to $ENCHANT_POTION/) [optional]
##
-## Gets the stored hashsum of the given file
+## Gets the stored hashsum of the given file. A deleted file results in a
cached
+## hashsum consisting of a single "0" and no cached file content. A file that
+## hasn't yet been cached (something new) should have neither cached content
nor
+## a cached hashsum, and this is not an error.
##

#-------------------------------------------------------------------------------
function enchant_potion_get_hashsum() {
- local hashfunc="$ENCHANT_HASHFUNC"
local file="$1"
local potion="${2:-$ENCHANT_POTION_CURRENT}"
+ local pfile="$ENCHANT_POTION/$potion/${file##*/}"
+ local hashname="${ENCHANT_POTION_HASHFUNC##*/}"

- [[ -f "$file" ]] || return $ERR_FILE_NOT_FOUND
+ if [[ ! -f "$pfile" ]] && [[ ! -f "${pfile}.${hashname}" ]]
+ then
+ # the file hasn't yet been cached
+ echo ""
+ return $ERR_OK
+ fi

- cut -d' ' -f1 "$ENCHANT_POTION/$potion/${file##*/}.${hashfunc##*/}" ||
+ cut -d' ' -f1 "$ENCHANT_POTION/$potion/${pfile}.${hashname}" ||
return $ERR_POTION_GET_HASHSUM

return $ERR_OK
@@ -131,14 +155,19 @@ function enchant_potion_get_hashsum() {
##

#-------------------------------------------------------------------------------
function enchant_potion_set_hashsum() {
- local hashfunc="$ENCHANT_HASHFUNC"
local file="$1"
local potion="${2:-$ENCHANT_POTION_CURRENT}"
+ local hashfunc="$ENCHANT_POTION_HASHFUNC"
+ local pfile="$potion/${file##*/}.${hashfunc##*/}"

- [[ -f "$file" ]] || return $ERR_FILE_NOT_FOUND
+ [[ -d "$potion" ]] || return $ERR_DIR_ACCESS

- "$hashfunc" "$file" >
"$ENCHANT_POTION/$potion/${file##*/}.${hashfunc##*/}" ||
- return $ERR_POTION_SET_HASHSUM
+ if [[ -f "$file" ]]
+ then
+ "$hashfunc" "$file" > "$pfile" || return $ERR_POTION_SET_HASHSUM
+ else
+ echo "0" > "$pfile" || return $ERR_POTION_SET_HASHSUM
+ fi

return $ERR_OK
}
@@ -154,95 +183,115 @@ function enchant_potion_set_hashsum() {
function enchant_potion_cache_file() {
local file="$1"
local potion="${2:-$ENCHANT_POTION_CURRENT}"
- local sum=""
+ local pfile=""
+ local sum1=""
+ local sum2=""

- [[ -f "$file" ]] || return $ERR_FILE_NOT_FOUND
+ # last-ditch effort to ensure we have a valid current potion to work with
+ if ! [[ -d "$potion" ]]
+ then
+ potion=$(enchant_potion_get_current)
+ [[ -d "$potion" ]] || return $ERR_DIR_ACCESS
+ fi

- sum="$($ENCHANT_HASHFUNC $file | cut -d' ' -f1)"
+ # set the target file path
+ pfile="$potion/${file##*/}"
+
+ # if the file doesn't exist, then either it didn't exist to begin with, or
the
+ # user (purposely) deleted it, so we track that the requested file doesn't
+ # exist by giving it an invalid hash
+ if [[ -f "$file" ]]
+ then
+ sum1="$($ENCHANT_POTION_HASHFUNC $file | cut -d' ' -f1)" ||
+ return $ERR_POTION_SET_HASHSUM
+ else
+ sum1=0
+ fi
+
+ sum2="$(enchant_potion_get_hashsum $file $potion)" ||
+ return $ERR_POTION_SET_HASHSUM

# only update if the checksums differ or we don't already have the hashsum
- if [[ "$sum" != "$(enchant_potion_get_hashsum $file $potion)" ]]
+ if [[ "$sum1" != "$sum2" ]]
then
# generate and store the (new) hashsum of the file
- enchant_potion_set_hashsum "$file" "$potion" || return
$ERR_POTION_SET_HASHSUM
+ enchant_potion_set_hashsum "$file" "$potion"
+ liberror_check "$file" || return $ERR_POTION_CACHE_FILE
+
+ # store the file itself, but only if it's a valid file (i.e. not deleted)
+ if [[ "$sum1" && "$sum1" != "0" ]]
+ then
+ "${ENCHANT_CMD_CP_FORCE[@]}" "$file" "$pfile" ||
+ return $ERR_POTION_CACHE_FILE
+ fi
fi

- # store the file itself
- cp -f "$file" "$ENCHANT_POTION/$potion/${file##*/}" || return
$ERR_POTION_CACHE_FILE
-
return $ERR_OK
}


#-------------------------------------------------------------------------------
-## @param potion directory name (relative to $ENCHANT_POTION/) [optional]
+## @param target (the data field to extract)
+## @param output_file (defaults to $ENCHANT_POTION/target) [optional]
##
-## Parses /proc/mounts to determine which partitions are mounted, excluding
the
-## list of ISO mounts.
+## Parses /proc/mounts to extract the requested target data, excluding the
list
+## of ISO mounts, and stores the information in output_file.
##

#-------------------------------------------------------------------------------
-function enchant_potion_get_partitions() {
- local mounts="/proc/mounts"
- local potion="${1:-$ENCHANT_POTION_CURRENT}"
-
- # list of ISO mounts to exclude
- # each match is exact
+function enchant_potion_get_diskinfo() {
+ local target="$1"
+ local potion="${2:-$ENCHANT_POTION}"
local excl="$ENCHANT_POTION_MOUNT_EXCLUDES"
+ local src="/proc/mounts"
+ local record=""

- [[ -d "$ENCHANT_POTION" ]] || return $ERR_POTION_DIR
-
- # for every line, if the 2nd field exactly matches one of excl, skip it
- # otherwise, store the filesystem (field 3) to the temp file
- gawk -v i="$excl" '{if(match(i,$2)) next; else print $1}' $mounts > \
- $ENCHANT_POTION/partitions || return $ERR_POTION_GET_PARTITIONS
+ [[ -d "$potion" ]] || return $ERR_POTION_DIR

- return $ERR_OK
-}
+ case "$target" in
+ "partitions" )
+ record=1
+ ;;
+ "mount_points" )
+ record=2
+ ;;
+ "filesystems" )
+ record=3
+ ;;
+ * )
+ return $ERR_TARGET
+ ;;
+ esac

-#-------------------------------------------------------------------------------
-## @param potion directory name (relative to $ENCHANT_POTION/) [optional]
-##
-## Checks to see if the list of partitions has changed, and updates the state
-## cache if they were changed.
-##
-#-------------------------------------------------------------------------------
-function enchant_potion_update_partitions() {
- local potion_parts="$ENCHANT_POTION/$1/filesystems"
- local parts="$ENCHANT_POTION/filesystems"
- local potion="${1:-$ENCHANT_POTION_CURRENT}"
+ [[ "$target" == $potion* ]] || target="$potion/$target"

- enchant_potion_get_filesystems || return $ERR_POTION_GET_PARTITIONS
+ [[ -n "$excl" ]] || return $ERR_POTION_GET_DISKINFO
+ excl=(-v i="${excl[@]}")

- # if there isn't a stored copy of the mount points, or if the stored copy
- # differs from what we currently have, then store the current set
- if [[ ! -f "$potion_parts" || "$(cat $potion_parts)" != "$(cat $parts)" ]]
- then
- cp -f "$parts" > "$potion_parts" || return $ERR_POTION_UPDATE_PARTITIONS
- fi
+ [[ "$record" -gt 0 ]] || return $ERR_POTION_GET_DISKINFO

- return $ERR_OK
+ # for every line, if the 2nd field exactly matches one of excl, skip it
+ # otherwise, store the source data to the target file
+ "${ENCHANT_CMD_AWK[@]}" "${excl[@]}" \
+ "{if(match(i,\$2)) next; else print \$$record}" "$src" \
+ > "$target" ||
+ return $ERR_POTION_GET_DISKINFO
}


#-------------------------------------------------------------------------------
## @param potion directory name (relative to $ENCHANT_POTION/) [optional]
##
-## Parses /proc/mounts to determine which filesystems are mounted, excluding
the
-## list of ISO mounts.
+## Checks to see if the list of partitions has changed, excluding the list of
+## iso mounts, and updates the state cache if they were changed.
##

#-------------------------------------------------------------------------------
-function enchant_potion_get_filesystems() {
- local mounts="/proc/mounts"
+function enchant_potion_update_partitions() {
local potion="${1:-$ENCHANT_POTION_CURRENT}"
+ local target="partitions"

- # list of ISO mounts to exclude
- # each match is exact
- local excl="$ENCHANT_POTION_MOUNT_EXCLUDES"
-
- [[ -d "$ENCHANT_POTION" ]] || return $ERR_POTION_DIR
+ enchant_potion_get_diskinfo "$target"
+ liberror_check "$target" || return $ERR_POTION_UPDATE_PARTITIONS

- # for every line, if the 2nd field exactly matches one of excl, skip it
- # otherwise, store the filesystem (field 3) to the temp file
- gawk -v i="$excl" '{if(match(i,$2)) next; else print $3}' $mounts > \
- $ENCHANT_POTION/filesystems || return $ERR_POTION_GET_FILESYSTEMS
+ enchant_potion_cache_file "$ENCHANT_POTION/$target" "$potion"
+ liberror_check "$target" || return $ERR_POTION_UPDATE_PARTITIONS

return $ERR_OK
}
@@ -251,47 +300,19 @@ function enchant_potion_get_filesystems() {
## @param potion directory name (relative to $ENCHANT_POTION/) [optional]
##
## Checks to see if the list of filesystems corresponding to partitions has
-## changed, and updates the state cache if they were changed.
+## changed, excluding the iso mounts, and updates the state cache if they
were
+## changed.
##

#-------------------------------------------------------------------------------
function enchant_potion_update_filesystems() {
- local potion_fs="$ENCHANT_POTION/$1/filesystems"
- local fs="$ENCHANT_POTION/filesystems"
local potion="${1:-$ENCHANT_POTION_CURRENT}"
+ local target="filesystems"

- enchant_potion_get_filesystems || return $ERR_POTION_GET_FILESYSTEMS
+ enchant_potion_get_diskinfo "$target"
+ liberror_check "$target" || return $ERR_POTION_UPDATE_PARTITIONS

- # if there isn't a stored copy of the mount points, or if the stored copy
- # differs from what we currently have, then store the current set
- if [[ ! -f "$potion_fs" || "$(cat $potion_fs)" != "$(cat $fs)" ]]
- then
- cp -f "$fs" > "$potion_fs" || return $ERR_POTION_UPDATE_FILESYSTEMS
- fi
-
- return $ERR_OK
-}
-
-#-------------------------------------------------------------------------------
-## @param potion directory name (relative to $ENCHANT_POTION/) [optional]
-##
-## Parses /proc/mounts to determine which devices are mounted where,
excluding
-## the list of ISO mounts.
-##
-#-------------------------------------------------------------------------------
-function enchant_potion_get_mount_points() {
- local mounts="/proc/mounts"
- local potion="${1:-$ENCHANT_POTION_CURRENT}"
-
- # list of ISO mounts to exclude
- # each match is exact
- local excl="$ENCHANT_POTION_MOUNT_EXCLUDES"
-
- [[ -d "$ENCHANT_POTION" ]] || return $ERR_POTION_DIR
-
- # for every line, if the 2nd field exactly matches one of excl, skip it
- # otherwise, store the mount point (field 2) to the temp file
- gawk -v i="$excl" '{if(match(i,$2)) next; else print $2}' $mounts > \
- $ENCHANT_POTION/mount_points || return $ERR_POTION_GET_MOUNT_POINTS
+ enchant_potion_cache_file "$ENCHANT_POTION/$target" "$potion"
+ liberror_check "$target" || return $ERR_POTION_UPDATE_FILESYSTEMS

return $ERR_OK
}
@@ -300,23 +321,19 @@ function enchant_potion_get_mount_points() {
## @param potion directory name (relative to $ENCHANT_POTION/) [optional]
##
## Checks to see if the list of mount points (/, /usr, etc.) corresponding to
-## partitions/filesystems has changed, and updates the state cache if they
were
-## changed.
+## partitions/filesystems has changed, excluding the iso mounts, and updates
the
+## state cache if they were changed.
##

#-------------------------------------------------------------------------------
function enchant_potion_update_mount_points() {
- local potion_mounts="$ENCHANT_POTION/$1/mount_points"
- local mounts="$ENCHANT_POTION/mount_points"
local potion="${1:-$ENCHANT_POTION_CURRENT}"
+ local target="mount_points"

- enchant_potion_get_mount_points || return $ERR_POTION_GET_MOUNT_POINTS
+ enchant_potion_get_diskinfo "$target"
+ liberror_check "$target" || return $ERR_POTION_UPDATE_PARTITIONS

- # if there isn't a stored copy of the mount points, or if the stored copy
- # differs from what we currently have, then store the current set
- if [[ ! -f "$potion_mounts" || "$(cat $potion_mounts)" != "$(cat $mounts)"
]]
- then
- cp -f "$mounts" > "$potion_mounts" || return
$ERR_POTION_UPDATE_MOUNT_POINTS
- fi
+ enchant_potion_cache_file "$ENCHANT_POTION/$target" "$potion"
+ liberror_check "$target" || return $ERR_POTION_UPDATE_MOUNT_POINTS

return $ERR_OK
}
@@ -332,10 +349,8 @@ function enchant_potion_update_kernel_config() {
local potion="${1:-$ENCHANT_POTION_CURRENT}"
local kernel_config="$ENCHANT_TARGET/usr/src/linux/.config"

- [[ -f "$kernel_config" ]] || return $ERR_FILE_NOT_FOUND
-
- enchant_potion_cache_file "$kernel_config" "$potion" ||
- return $ERR_POTION_CACHE_FILE
+ enchant_potion_cache_file "$kernel_config" "$potion"
+ liberror_check "$kernel_config" || return $ERR_POTION_CACHE_FILE

return $ERR_OK
}
@@ -351,9 +366,8 @@ function enchant_potion_update_kernel() {
local potion="${1:-$ENCHANT_POTION_CURRENT}"
local kernels="$ENCHANT_TMP/kernels"

- [[ -f "$kernels" ]] || return $ERR_FILE_NOT_FOUND
-
- enchant_potion_cache_file "$kernels" "$potion" || return
$ERR_POTION_CACHE_FILE
+ enchant_potion_cache_file "$kernels" "$potion"
+ liberror_check "$kernel" || return $ERR_POTION_CACHE_FILE

return $ERR_OK
}
@@ -369,9 +383,8 @@ function enchant_potion_update_spell_sources() {
local potion="${1:-$ENCHANT_POTION_CURRENT}"
local spells="$ENCHANT_TMP/sources"

- [[ -f "$spells" ]] || return $ERR_FILE_NOT_FOUND
-
- enchant_potion_cache_file "$spells" "$potion" || return
$ERR_POTION_CACHE_FILE
+ enchant_potion_cache_file "$spells" "$potion"
+ liberror_check "$spells" || return $ERR_POTION_CACHE_FILE

return $ERR_OK
}
@@ -387,9 +400,8 @@ function enchant_potion_update_spell_caches() {
local potion="${1:-$ENCHANT_POTION_CURRENT}"
local spells="$ENCHANT_TMP/caches"

- [[ -f "$spells" ]] || return $ERR_FILE_NOT_FOUND
-
- enchant_potion_cache_file "$spells" "$potion" || return
$ERR_POTION_CACHE_FILE
+ enchant_potion_cache_file "$spells" "$potion"
+ liberror_check "$spells" || return $ERR_POTION_CACHE_FILE

return $ERR_OK
}
@@ -405,10 +417,8 @@ function enchant_potion_update_bootloader() {
local potion="${1:-$ENCHANT_POTION_CURRENT}"
local bootloaders="$ENCHANT_TMP/bootloaders"

- [[ -f "$bootloaders" ]] || return $ERR_FILE_NOT_FOUND
-
- enchant_potion_cache_file "$bootloaders" "$potion" ||
- return $ERR_POTION_CACHE_FILE
+ enchant_potion_cache_file "$bootloaders" "$potion"
+ liberror_check "$bootloaders" || return $ERR_POTION_CACHE_FILE

return $ERR_OK
}
@@ -427,9 +437,9 @@ function enchant_potion_update_confs() {
for conf in $ENCHANT_POTION_CONFS
do
conf="$ENCHANT_TARGET/$conf"
- [[ -f "$file" ]] || return $ERR_FILE_NOT_FOUND

- enchant_potion_cache_file "$conf" "$potion" || return
$ERR_POTION_CACHE_FILE
+ enchant_potion_cache_file "$conf" "$potion"
+ liberror_check "$conf" || return $ERR_POTION_CACHE_FILE
done

return $ERR_OK
@@ -449,9 +459,9 @@ function enchant_potion_update_users() {
for file in etc/passwd etc/group etc/shadow etc/gshadow
do
file="$ENCHANT_TARGET/$file"
- [[ -f "$file" ]] || return $ERR_FILE_NOT_FOUND

- enchant_potion_cache_file "$file" "$potion" || return
$ERR_POTION_CACHE_FILE
+ enchant_potion_cache_file "$file" "$potion"
+ liberror_check "$file" || return $ERR_POTION_CACHE_FILE
done

return $ERR_OK
@@ -466,24 +476,24 @@ function enchant_potion_update_users() {
function enchant_potion_update() {
local potion="${1:-$ENCHANT_POTION_CURRENT}"

- enchant_potion_update_partitions "$potion" ||
- return $ERR_POTION_UPDATE_PARTITIONS
- enchant_potion_update_filesystems "$potion" ||
- return $ERR_POTION_UPDATE_FILESYSTEMS
- enchant_potion_update_mount_points "$potion" ||
- return $ERR_POTION_UPDATE_MOUNT_POINTS
- enchant_potion_update_spell_sources "$potion" ||
- return $ERR_POTION_UPDATE_SOURCES
- enchant_potion_update_spell_caches "$potion" ||
- return $ERR_POTION_UPDATE_CACHES
- enchant_potion_update_kernel "$potion" ||
- return $ERR_POTION_UPDATE_KERNEL
- enchant_potion_update_bootloader "$potion" ||
- return $ERR_POTION_UPDATE_BOOTLOADER
- enchant_potion_update_confs "$potion" ||
- return $ERR_POTION_UPDATE_CONFS
- enchant_potion_update_users "$potion" ||
- return $ERR_POTION_UPDATE_USERS
+ enchant_potion_update_partitions "$potion"
+ liberror_check || return $ERR_POTION_UPDATE_PARTITIONS
+ enchant_potion_update_filesystems "$potion"
+ liberror_check || return $ERR_POTION_UPDATE_FILESYSTEMS
+ enchant_potion_update_mount_points "$potion"
+ liberror_check || return $ERR_POTION_UPDATE_MOUNT_POINTS
+ enchant_potion_update_spell_sources "$potion"
+ liberror_check || return $ERR_POTION_UPDATE_SOURCES
+ enchant_potion_update_spell_caches "$potion"
+ liberror_check || return $ERR_POTION_UPDATE_CACHES
+ enchant_potion_update_kernel "$potion"
+ liberror_check || return $ERR_POTION_UPDATE_KERNEL
+ enchant_potion_update_bootloader "$potion"
+ liberror_check || return $ERR_POTION_UPDATE_BOOTLOADER
+ enchant_potion_update_confs "$potion"
+ liberror_check || return $ERR_POTION_UPDATE_CONFS
+ enchant_potion_update_users "$potion"
+ liberror_check || return $ERR_POTION_UPDATE_USERS

return $ERR_OK
}
@@ -498,23 +508,32 @@ function enchant_potion_update() {

#-------------------------------------------------------------------------------
function enchant_potion_bottle() {
local potion="${1:-$ENCHANT_POTION_CURRENT}"
- local output="$ENCHANT_POTION/potion"
+ local output="$ENCHANT_POTION_BOTTLE"

- [[ -d "$potion" ]] || return $ERR_DIR_NOT_FOUND
+ [[ -d "$potion" ]] || return $ERR_DIR_ACCESS

# package the potion into a compressed archive
- case "$ENCHANT_ARCHIVE" in
+ case "$ENCHANT_POTION_ARCHIVE" in
"tar" )
- tar cf "${output}.tar" "$ENCHANT_POTION/$potion"/* || return
$ERR_POTION_ARCHIVE
- [[ -n "$ENCHANT_COMPRESS" ]] && "$ENCHANT_COMPRESS" "${output}.tar" ||
- return $ERR_POTION_COMPRESS
+ tar cf "${output}.tar" "$ENCHANT_POTION/$potion"/* ||
+ return $ERR_POTION_ARCHIVE
+ if [[ -n "$ENCHANT_POTION_COMPRESS" ]]
+ then
+ "$ENCHANT_POTION_COMPRESS" "${output}.tar" ||
+ return $ERR_POTION_COMPRESS
+ fi
;;
"cpio" )
(
cd "$potion"
- find * | cpio -H newc -o > "${output}.io" || return
$ERR_POTION_ARCHIVE
- [[ -n "$ENCHANT_COMPRESS" ]] && "$ENCHANT_COMPRESS" "${output}.io" ||
- return $ERR_POTION_COMPRESS
+ find * | cpio -H newc -o > "${output}.io" ||
+ return $ERR_POTION_ARCHIVE
+
+ if [[ -n "$ENCHANT_POTION_COMPRESS" ]]
+ then
+ "$ENCHANT_POTION_COMPRESS" "${output}.io" ||
+ return $ERR_POTION_COMPRESS
+ fi
)
;;
* )
@@ -525,9 +544,9 @@ function enchant_potion_bottle() {
}


#-------------------------------------------------------------------------------
+## @param potion (optional, defaults to ENCHANT_POTION_BOTTLE)
## @param -s start (optional)
## @param -e end (optional)
-## @param potion (required)
##
## If potion is an archive, it unpacks the archive and performs an automated
## install. If potion is a directory, it assumes it is a proper state
directory
@@ -548,8 +567,8 @@ function enchant_potion_bottle() {
## actions.
##

#-------------------------------------------------------------------------------
-function enchant_potion_quaff() {
- local potion="$1"
+function enchant_potion_apply() {
+ local potion="${1:-$ENCHANT_POTION_BOTTLE}"
local current=""
local end=""
local list=""
@@ -603,9 +622,9 @@ function enchant_potion_quaff() {
list=($(enchant_modules_list))

# process each module's potion scripts from start module to end module
- for ((current < end; current++))
+ for ((i=current; i < end; i++))
do
- enchant_modules_potion "${list[current]}" "$potion"
+ enchant_modules_potion "${list[i]}" "$potion"
done

return $ERR_OK
diff --git a/enchantment/lib/libenchantment b/enchantment/lib/libenchantment
index 7f0ae4c..6ae314d 100644
--- a/enchantment/lib/libenchantment
+++ b/enchantment/lib/libenchantment
@@ -45,14 +45,14 @@ function enchant_fatal_error() {

#-------------------------------------------------------------------------------
# liberror includes

#-------------------------------------------------------------------------------
-. "$ENCHANT_BASE/liberror" ||
+. "$ENCHANT_COMMON/liberror" ||
enchant_fatal_error "error: cannot load base library liberror"

# load enchantment error code and message defines
. "$ENCHANT_LIBS/errorcodes" ||
enchant_fatal_error "error: cannot load enchantment error codes"

-. "$ENCHANT_BASE/libcolor" ||
+. "$ENCHANT_COMMON/libcolor" ||
enchant_fatal_error "error: cannot load base library libcolor"

# test/set whether color output should be enabled
@@ -79,6 +79,30 @@ function enchant_load_library() {
}


#-------------------------------------------------------------------------------
+## @param messages
+##
+## Prints informational messages to the console, but only if CAULDRON_VERBOSE
+## is enabled.
+##
+#-------------------------------------------------------------------------------
+function enchant_verbose() {
+ [[ "$ENCHANT_VERBOSE" == "yes" ]] &&
+ libcolor_msg info "$@"
+}
+
+#-------------------------------------------------------------------------------
+## @param messages
+##
+## Prints error messages to the console, but only if CAULDRON_VERBOSE is
+## enabled.
+##
+#-------------------------------------------------------------------------------
+function enchant_verbose_error() {
+ [[ "$ENCHANT_VERBOSE" == "yes" ]] &&
+ libcolor_msg error "$@"
+}
+
+#-------------------------------------------------------------------------------
# enchant includes

#-------------------------------------------------------------------------------
enchant_load_library "lib.chroot"
@@ -98,13 +122,17 @@ enchant_load_library "lib.potion"

#-------------------------------------------------------------------------------
function enchant_prepare() {
# this initializes the file which holds the current step
- mkdir -p "$ENCHANT_TMP" || return $ERR_PREPARE
+ "${ENCHANT_CMD_MKDIR[@]}" "$ENCHANT_TMP" || return $ERR_PREPARE
echo 'init' > "$ENCHANT_STATUS" || return $ERR_PREPARE

# the next lines are to init the history files
- mkdir -p "$ENCHANT_POTION" || return $ERR_PREPARE
- cat < $ENCHANT_NULL > "$ENCHANT_BACK" || return $ERR_PREPARE
- cat < $ENCHANT_NULL > "$ENCHANT_FORWARD" || return $ERR_PREPARE
+ enchant_potion_init
+ liberror_check || return $ERR_PREPARE
+
+ for file in bootloaders caches filesystems kernels mount_points sources
+ do
+ printf '' > "$ENCHANT_TMP/$file" || return $ERR_PREPARE
+ done

return $ERR_OK
}
@@ -115,7 +143,7 @@ function enchant_prepare() {
##

#-------------------------------------------------------------------------------
function enchant_cleanup() {
- rm -fr "$ENCHANT_TMP" || return $ERR_CLEANUP
+ "${ENCHANT_CMD_RM_RECURSE[@]}" "$ENCHANT_TMP" || return $ERR_CLEANUP

return $ERR_OK
}
@@ -136,6 +164,108 @@ function enchant_color() {
}


#-------------------------------------------------------------------------------
+## @param VARIABLE
+##
+## Returns (via echo) the current value of the specified VARIABLE. If
VARIABLE
+## is an array, it returns the full array as a single string.
+##
+#-------------------------------------------------------------------------------
+function enchant_get_variable() {
+ for var in "$@"
+ do
+ [[ -n "$var" ]] || return $ERR_TARGET
+
+ var=$(declare -p "$var" 2> "$ENCHANT_NULL")
+ printf "%s\n" "${var##*$1=}"
+ done
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
+## @param history file (back or forward)
+##
+## Gets the current total number of history "back" entries
+##
+#-------------------------------------------------------------------------------
+function enchant_history_total() {
+ local histfile=
+
+ case "$1" in
+ back) histfile="$ENCHANT_BACK" ;;
+ forward) histfile="$ENCHANT_FORWARD" ;;
+ *) return $ERR_TARGET ;;
+ esac
+
+ "${ENCHANT_CMD_WC[@]}" -l < "$histfile" || return $ERR_FILE_ACCESS
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
+## @param history file (back or forward)
+##
+## Adds an entry to the given history file.
+##
+#-------------------------------------------------------------------------------
+function enchant_history_push() {
+ local histfile=
+
+ case "$1" in
+ back) histfile="$ENCHANT_BACK" ;;
+ forward) histfile="$ENCHANT_FORWARD" ;;
+ *) return $ERR_TARGET ;;
+ esac
+
+ enchant_get_current >> "$histfile" || return $ERR_FILE_ACCESS
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
+## @param history file (back or forward)
+## @param entry index number (optional)
+##
+## Drops an entry from the given history file. By default it pops the most
+## recent entry.
+##
+#-------------------------------------------------------------------------------
+function enchant_history_pop() {
+ local entry="${2:-$}"
+ local histfile=
+
+ case "$1" in
+ back) histfile="$ENCHANT_BACK" ;;
+ forward) histfile="$ENCHANT_FORWARD" ;;
+ *) return $ERR_TARGET ;;
+ esac
+
+ "${ENCHANT_CMD_SEDFILE[@]}" "${entry}d" "$histfile" || return
$ERR_FILE_ACCESS
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
+## @param history file (back or forward)
+##
+## Gets the current (most recent) history entry for the given history file.
+##
+#-------------------------------------------------------------------------------
+function enchant_history_current() {
+ local histfile=
+
+ case "$1" in
+ back) histfile="$ENCHANT_BACK" ;;
+ forward) histfile="$ENCHANT_FORWARD" ;;
+ *) return $ERR_TARGET ;;
+ esac
+
+ "${ENCHANT_CMD_TAIL[@]}" -n 1 "$histfile" || return $ERR_FILE_ACCESS
+
+ return $ERR_OK
+}
+
+#-------------------------------------------------------------------------------
##
## Determines and returns the current module in the installation procedure.
##
@@ -143,7 +273,7 @@ function enchant_color() {
function enchant_get_current() {
[[ -z "$ENCHANT_STATUS" ]] && return $ERR_GET_CURRENT

- cat "$ENCHANT_STATUS" || return $ERR_GET_CURRENT
+ "${ENCHANT_CMD_CAT[@]}" "$ENCHANT_STATUS" || return $ERR_GET_CURRENT

return $ERR_OK
}
@@ -160,29 +290,34 @@ function enchant_get_current() {
function enchant_set_current() {
local module="$1"

- if ! $(enchant_modules_list | grep -q "$module")
+ # make sure the requested module exists in the set of possible modules
+ if [[ " $(enchant_modules_list) " != *" $module "* ]]
then
return $ERR_SET_CURRENT
fi

- enchant_modules_exit || return $ERR_MODULE_EXIT
+ enchant_modules_exit
+ liberror_check || return $ERR_SET_CURRENT

# if the max history size has been reached, then we drop the oldest item
- if [[ "$(wc -l < $ENCHANT_BACK)" -ge "$ENCHANT_POTION_BUFFER" ]]
+ if [[ "$(enchant_history_total back)" -ge "$ENCHANT_POTION_BUFFER" ]]
then
- sed -i '1d' "$ENCHANT_BACK" || return $ERR_SET_CURRENT
+ enchant_history_pop back 1
+ liberror_check || return $ERR_SET_CURRENT
fi

# copy the current module to the back history
echo "$module" >> "$ENCHANT_BACK" || return $ERR_SET_CURRENT

# check the installation state
- enchant_potion_update || return $?
+ enchant_potion_update
+ liberror_check || return $ERR_SET_CURRENT

# set the current module
echo "$module" > "$ENCHANT_STATUS" || return $ERR_SET_CURRENT

- enchant_modules_enter || return $ERR_MODULE_ENTER
+ enchant_modules_enter
+ liberror_check || return $ERR_SET_CURRENT

return $ERR_OK
}
@@ -193,19 +328,15 @@ function enchant_set_current() {
##

#-------------------------------------------------------------------------------
function enchant_get_next() {
- local step
- step="$(grep -m1 \"^$(enchant_get_current):\" $ENCHANT_DATA/modules)" ||
- return $ERR_GET_NEXT
+ local modlist="$ENCHANT_ENCHANTER_MODULES"
+ local mod=""

- step="$(echo $step | cut -d: -f2)" || return $ERR_GET_NEXT
+ mod=$(grep -m1 "^$(enchant_get_current):" "$modlist") || return
$ERR_GET_NEXT
+ mod="${mod#*:}"

- if [[ -z "$step" ]]
- then
- echo "error"
- return $ERR_GET_NEXT
- fi
+ [[ -z "$mod" ]] && return $ERR_GET_NEXT

- echo $step
+ echo "$mod"

return $ERR_OK
}
@@ -218,11 +349,13 @@ function enchant_get_next() {
function enchant_set_next() {
local module

- # get next step
- module="$(enchant_get_next)" || return $ERR_SET_NEXT
+ # get next module
+ module="$(enchant_get_next)"
+ liberror_check || return $ERR_SET_NEXT

# save new status
- enchant_set_step "$module" || return $ERR_SET_NEXT
+ enchant_set_current "$module"
+ liberror_check || return $ERR_SET_NEXT

return $ERR_OK
}
@@ -233,22 +366,15 @@ function enchant_set_next() {
##

#-------------------------------------------------------------------------------
function enchant_get_prev() {
- local step
-
- # get the current step
- step="$(enchant_get_current)" || return $ERR_GET_PREV
-
- step="$(grep -m1 \":$step$\" $ENCHANT_DATA/order)" || return $ERR_GET_PREV
+ local modlist="$ENCHANT_ENCHANTER_MODULES"
+ local mod=""

- step="$(echo $step | cut -d: -f1)" || return $ERR_GET_PREV
+ mod=$(grep -m1 ":$(enchant_get_current)$" "$modlist") || return
$ERR_GET_PREV
+ mod="${mod%%:*}"

- if [[ -z "$step" ]]
- then
- echo "error"
- return $ERR_GET_PREV
- fi
+ [[ -z "$mod" ]] && return $ERR_GET_PREV

- echo "$step"
+ echo "$mod"

return $ERR_OK
}
@@ -261,10 +387,12 @@ function enchant_get_prev() {
function enchant_set_prev() {
local module

- # get the current step
- module="$(enchant_get_prev)" || return $ERR_SET_PREV
+ # get the current module
+ module="$(enchant_get_prev)"
+ liberror_check || return $ERR_SET_PREV

- enchant_set_current "$module" || return $ERR_SET_PREV
+ enchant_set_current "$module"
+ liberror_check || return $ERR_SET_PREV

return $ERR_OK
}
@@ -278,25 +406,34 @@ function enchant_set_prev() {
##

#-------------------------------------------------------------------------------
function enchant_back() {
+ local nback=
+ local nforw=
+
# if the back history is empty, then we can't go back
- [[ "$(wc -l < $ENCHANT_BACK)" -eq 0 ]] && return $ERR_HISTORY_BACK
+ nback="$(enchant_history_total back)" || return $ERR_HISTORY_BACK
+ [[ "$nback" -eq 0 ]] && return $ERR_HISTORY_BACK

# if the max forward history size has been reached
- if [[ "$(wc -l < $ENCHANT_FORWARD)" -ge "$ENCHANT_POTION_BUFFER" ]]
+ nforw="$(enchant_history_total forward)" || return $ERR_HISTORY_FORWARD
+ if [[ "$nforw" -ge "$ENCHANT_POTION_BUFFER" ]]
then
# then we drop the oldest item from the forward history
- sed -i '1d' "$ENCHANT_FORWARD" || return $ERR_HISTORY_BACK
+ enchant_history_pop forward 1
+ liberror_check || return $ERR_HISTORY_BACK
fi

# copy the current status to the forward history, so we can go forward to
# where we are after we jump back
- enchant_get_current >> "$ENCHANT_FORWARD" || return $ERR_HISTORY_BACK
+ enchant_get_current >> "$ENCHANT_FORWARD"
+ liberror_check || return $ERR_HISTORY_BACK

# set the current step to be the one we are jumping to
- tail -n 1 "$ENCHANT_BACK" > "$ENCHANT_STATUS" || return $ERR_HISTORY_BACK
+ enchant_history_current back > "$ENCHANT_STATUS"
+ liberror_check || return $ERR_HISTORY_BACK

# remove the step we jumped to from the back history
- sed -i '$d' "$ENCHANT_BACK" || return $ERR_HISTORY_BACK
+ enchant_history_pop back
+ liberror_check || return $ERR_HISTORY_BACK

return $ERR_OK
}
@@ -310,25 +447,34 @@ function enchant_back() {
##

#-------------------------------------------------------------------------------
function enchant_forward() {
+ local nback=
+ local nforw=
+
# if the forward history is empty, then we can't go forward
- [[ "$(wc -l < $ENCHANT_FORWARD)" -eq 0 ]] && return $ERR_HISTORY_FORWARD
+ nforw="$(enchant_history_total forward)" || return $ERR_HISTORY_FORWARD
+ [[ "$nforw" -eq 0 ]] && return $ERR_HISTORY_FORWARD

# if the max back history size has been reached
- if [[ "$(wc -l < $ENCHANT_BACK)" -ge "$ENCHANT_POTION_BUFFER" ]]
+ nback="$(enchant_history_total back)" || return $ERR_HISTORY_BACK
+ if [[ "$nback" -ge "$ENCHANT_POTION_BUFFER" ]]
then
# then we drop the oldest item from the back history
- sed -i '1d' "$ENCHANT_BACK" || return $ERR_HISTORY_FORWARD
+ enchant_history_pop back 1
+ liberror_check || return $ERR_HISTORY_BACK
fi

# copy the current status to the back history, so we can go back to where
we
# are after we jump forward
- enchant_get_current >> "$ENCHANT_BACK" || return $ERR_HISTORY_FORWARD
+ enchant_get_current >> "$ENCHANT_BACK"
+ liberror_check || return $ERR_HISTORY_FORWARD

# set the current step to be the one we are jumping to
- tail -n 1 "$ENCHANT_FORWARD" > "$ENCHANT_STATUS" || return
$ERR_HISTORY_FORWARD
+ enchant_history_current forward > "$ENCHANT_STATUS"
+ liberror_check || return $ERR_HISTORY_FORWARD

# remove the step we jumped to from the forward history
- sed -i '$d' "$ENCHANT_FORWARD" || return $ERR_HISTORY_FORWARD
+ enchant_history_pop forward
+ liberror_check || return $ERR_HISTORY_FORWARD

return $ERR_OK
}
diff --git a/enchantment/menu/libmenu b/enchantment/menu/libmenu
deleted file mode 100644
index 52e53a1..0000000
--- a/enchantment/menu/libmenu
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/bin/bash
-# [not actually a script, just to teach vi proper hilighting]
-
-# Constants for exit codes recognized by the menu launcher
-# (menu modules should not exit with anything else,
-# or it'll be treated as an error in the menu module itself)
-
-EXIT_OK=0 # Launches menu on the [now] current step
-EXIT_MAINMENU=21 # Brings up the main menu
-EXIT_SHELL=22 # Switches to shell installer (after user asked)
-EXIT_BAIL=23 # Exit to shell (to be used after weird errors)
-
-# for dialog
-export DIALOG_ESC=1 # Treat esc as cancel
-
-# die_cmd [failed_command [displayed_exitcode [exitcode_for_exit]]]
-function die_cmd() {
- local rc=${2:-$?}
- local message
-
- [[ -n "$1" ]] &&
- message="Error: $1 failed with exit code $rc, "
-
- message="${message}bailing out."
-
- echo "$message" >&2
- exit ${3:-$EXIT_BAIL}
-}
-
-function run_dialog() {
- dialog --backtitle "Source Mage GNU/Linux Installer, menu interface" \
- --stdout --cr-wrap "$@"
-}
-
-# Menu / checklist / whatever
-# If this returns 0, use result from dialog, otherwise the user cancelled
-function menu_step() {
- ANSWER=$(run_dialog --extra-button --extra-label "back" --cancel-label
"abort" "$@")
- rc=$?
- if [[ $rc == 0 ]] ;then # OK
- return 0
- elif [[ $rc == 3 ]] ;then # back
- return 1
- elif [[ $rc == 1 ]] ;then # abort/cancel
- exit $EXIT_MAINMENU
- else
- die_cmd "dialog" $rc
- fi
- return $rc
-}
-
-# Displays the doc blurb at the start of a step
-# Buttons: OK, main menu, shell
-# Only returns normally if the user pressed "OK", otherwise exits
-function menu_intro() {
- run_dialog --extra-button --extra-label "shell" --yes-label "start" \
- --cancel-label "main menu" --title "$1" --yesno "$2" 0 0
- rc=$?
- if [[ $rc == 0 ]] ;then
- return 0
- elif [[ $rc == 1 ]] ;then # main menu
- exit $EXIT_MAINMENU
- elif [[ $rc == 3 ]] ;then # shell
- exit $EXIT_SHELL
- else
- die_cmd "dialog" $rc
- fi
-}
-
-function menu_central_menu() {
- local title=$1
- local text=$2
- shift 2
- ANSWER=$(run_dialog --extra-button --extra-label "done" --cancel-label
"back" \
- --title "$title" --menu "$text" 0 0 0 "$@")
- local rc=$?
- if [[ $rc != 0 ]] && [[ $rc != 1 ]] && [[ $rc != 3 ]] ;then
- die_cmd "dialog" $rc
- fi
-
- return $rc
-}
-
-function menu_message() {
- run_dialog --title "$1" --msgbox "$2" 0 0
- true # Don't return nonzero even if user pressed ESC
-}
-
-function menu_menu() {
- local title=$1
- local text=$2
- shift 2
- menu_step --title "$title" --menu "$text" 0 0 0 "$@"
-}
-
-function menu_inputbox() {
- menu_step --title "$1" --inputbox "$2" 0 0 "$3"
-}
-
-function menu_loop() {
- STATE=initial
- while [[ $STATE != mainmenu ]] ;do
- $STATE || # Function call
- die_cmd "State $STATE"
- done
-
- # Exit to main menu on normal completion of loop
- exit $EXIT_MAINMENU
-}
diff --git a/enchantment/menu/menu.sh b/enchantment/menu/menu.sh
deleted file mode 100644
index 030d82d..0000000
--- a/enchantment/menu/menu.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/bash
-
-. /usr/share/smgl.install/libenchant
-. /wherever/libmenu
-
-function main_menu() {
-}
-
-function main_loop() {
- if $MENU ;then
- main_menu
- MENU=false
- else
- step=$(enchant_getstep)
- if ! [[ -x /usr/share/smgl.install/menu/$step ]] ;then
- echo "No gui code found for step $step, falling back to shell..."
- exit
- fi
- /usr/share/smgl.install/menu/$step
- rc=$?
- if [[ $rc == $EXIT_OK ]] ;then
- : # Carry on with the next step, nothing to do
- # (Step will have set the current installer step already)
- elif [[ $rc == $EXIT_MAINMENU ]] ;then
- MENU=true
- elif [[ $rc == $EXIT_SHELL ]] ;then
- echo "Switching to shell, type \e[1mmenu\e[1m to return to menu"
- echo "Type \e[1mtodo\e1m to see the current step's documentation"
- exit
- elif [[ $rc == $EXIT_BAIL ]] ;then
- echo "Bailing to shell."
- exit
- else
- die_cmd "gui step $step" $rc
- fi
- fi
-}
diff --git a/enchantment/menu/modules/disk-format
b/enchantment/menu/modules/disk-format
deleted file mode 100644
index 3d01341..0000000
--- a/enchantment/menu/modules/disk-format
+++ /dev/null
@@ -1,156 +0,0 @@
-#!/bin/bash
-
-. ../libmenu
-
-load_partitions() {
- # Device Boot Start End MiB #blocks Id System
- #/dev/sda1 * 0+ 9538- 9539- 9767488+ 83 Linux
- #/dev/sda2 9538+ 10236- 699- 714892+ 82 Linux swap / Solaris
-
- PARTITIONS=()
- local i=0
- local PART SIZE TYPE
- while read PART _ _ SIZE _ _ TYPE ;do
- [[ "$TYPE" == "Empty" ]] && continue
- SIZE=${SIZE%+}; SIZE=${SIZE%-}
- PARTITIONS[i++]=$PART
- PARTITIONS[i++]="$SIZE MiB, $TYPE"
- # Poor man's pipe: doesn't spawn a subshell.
- done < <(sfdisk -l -uM | grep '^/' )
-}
-
-mkfs_command() {
- case $1 in
- ext2) echo "mke2fs $2" ;;
- ext3) echo "mke2fs -j $2" ;;
- reiserfs) echo "mkreiserfs $2" ;;
- xfs) echo "mkfs.xfs $2" ;; # ignore existing partition
- jfs) echo "mkfs.jfs $2" ;; # ditto
- swap) echo "mkswap $2" ;;
- custom) echo "... $2" ;;
- *) return 1 ;;
- esac
- return 0
-}
-
-function initial() {
- menu_intro "Intro: disk-format" \
-"In this menu you will be formatting your disk.
-blah blah blather, ignorum ipsorum latin pretend
-more junk to get some test text creativity all
-gone and this should do"
- STATE=get_part
- return 0
-}
-
-function get_part() {
- load_partitions
- menu_central_menu "Partition selection menu" \
- "Select a partition to format or hit 'done'" \
- "${PARTITIONS[@]}" custom "Enter one manually"
- rc=$?
- if [[ $rc == 1 ]] ;then
- STATE=initial
- return 0
- elif [[ $rc == 3 ]] ;then
- STATE=finish
- return 0
- fi
-
- PARTITION=$ANSWER
- if [[ $PARTITION == custom ]] ;then
- STATE=enter_part
- else
- STATE=get_fstype
- fi
-}
-
-function enter_part() {
- menu_inputbox "Enter partition" \
- "Please enter a partition to be formatted (including /dev/)" \
- "/dev/" ||
- {
- STATE=get_part
- return 0
- }
- PARTITION=$ANSWER
- STATE=get_fstype
-}
-
-function get_fstype() {
- menu_menu "Filesystem Selection Menu" \
- "Please select what filesystem to use for $PARTITION" \
- "ext2" "Second Extended file system" \
- "ext3" "Second Extended journaling file system" \
- "reiserfs" "Reiserfs journaling file system" \
- "xfs" "XFS journaling file system" \
- "jfs" "JFS journaling file system" \
- "swap" "Swap partition" \
- "custom" "your call" ||
- {
- STATE=get_part
- return 0
- }
- FSTYPE=$ANSWER
- MKFSCMD="$(mkfs_command $FSTYPE $PARTITION)"
- STATE=confirm
-}
-
-function confirm() {
- menu_menu "Confirmation Menu" \
- "Do you want to run the following command:
-$MKFSCMD" \
- "doit" "Energize!" \
- "modify" "Let me edit that line" ||
- {
- STATE=get_fstype
- return 0
- }
- if [[ $ANSWER == doit ]] ;then
- STATE=result
- else
- STATE=tunecmd
- fi
-}
-
-function tunecmd() {
- menu_inputbox "Alter command" \
- "Alter the command below whatever way you like.
-It will be executed as if typed on the command line." \
- "$MKFSCMD" ||
- {
- STATE=confirm
- return 0
- }
- MKFSCMD=$ANSWER
- STATE=confirm
-}
-
-function result() {
- echo "Creating filesystem..."
- eval "$MKFSCMD"
- rc=$?
- if [[ $rc == 0 ]] ;then
- echo "mkfs completed successfully. Press enter to continue..."
- read LINE
- STATE=get_part
- else
- cat <<EOF
-mkfs failed with exit status $rc. Enter 'cancel' to return
-to partition selection, anything else to re-edit the command...
-EOF
- read ANSWER
- if [[ $ANSWER == "cancel" ]] ;then
- STATE=get_part
- else
- STATE=tunecmd
- fi
- fi
-}
-
-function finish() {
- enchant_setnext
- exit $EXIT_OK
-}
-
-menu_loop
diff --git a/enchantment/modules/basesystem/description
b/enchantment/modules/basesystem/description
new file mode 100644
index 0000000..ee52fe8
--- /dev/null
+++ b/enchantment/modules/basesystem/description
@@ -0,0 +1 @@
+install basesystem into your target system
diff --git a/enchantment/modules/basesystem/instructions
b/enchantment/modules/basesystem/instructions
new file mode 100644
index 0000000..de6135e
--- /dev/null
+++ b/enchantment/modules/basesystem/instructions
@@ -0,0 +1,12 @@
+@[basesystem step]
+In this step, you will unpack and install the basesystem chroot image to
your target partitions.
+
+enchantment:
+ @[enchantment install basesystem]
+
+manually:
+ @[tar -xf /system.tar.xz -C "$ENCHANT_TARGET"]
+
+If all goes well, you will have a very minimal base system that you can now
play around in.
+
+When you are ready, type @[next].
diff --git a/enchantment/modules/boot-loader/boot-loader
b/enchantment/modules/boot-loader/boot-loader
deleted file mode 100644
index 3bafe86..0000000
--- a/enchantment/modules/boot-loader/boot-loader
+++ /dev/null
@@ -1,18 +0,0 @@
-@[boot-loader step]
-Now it is time to set up a boot loader. Since this is the x86 ISO, you can
-set up either grub or lilo. Use whichever you please, but only use one of
them.
-It is assumed that whichever boot loader you will set up here was selected
and
-installed during the @[select-spells] and @[install] steps.
-
-Once you have decided which boot loader to set up, you need to configure the
-boot loader. After you finish configuring your boot loader, you need to
-"install" it. This involves running the boot loader, which will install
itself
-to the location you specified in the config file.
-
-For lilo instructions, type @[todo lilo].
-
-For grub instructions, type @[todo grub].
-
-To see the instructions for this step again, just type @[todo].
-
-When you are finished, type @[next].
diff --git a/enchantment/modules/boot-loader/boot-loader.info
b/enchantment/modules/boot-loader/boot-loader.info
deleted file mode 100644
index c856628..0000000
--- a/enchantment/modules/boot-loader/boot-loader.info
+++ /dev/null
@@ -1 +0,0 @@
-install and set up a boot manager
diff --git a/enchantment/modules/boot-loader/description
b/enchantment/modules/boot-loader/description
new file mode 100644
index 0000000..c856628
--- /dev/null
+++ b/enchantment/modules/boot-loader/description
@@ -0,0 +1 @@
+install and set up a boot manager
diff --git a/enchantment/modules/boot-loader/instructions
b/enchantment/modules/boot-loader/instructions
new file mode 100644
index 0000000..58832c4
--- /dev/null
+++ b/enchantment/modules/boot-loader/instructions
@@ -0,0 +1,18 @@
+@[boot-loader step]
+Now it is time to set up a boot loader. It is assumed that whichever boot
+loader you will set up here was selected and installed during the
+@[select-spells] and @[install] steps.
+
+Once you have decided which boot loader to set up, you need to configure the
+boot loader. After you finish configuring your boot loader, you need to
+"install" it. This involves running the boot loader, which will install
itself
+to the location you specified in the config file.
+
+For instructions for your bootloader, type @[todo name]
+where @[name] is the spell name of your bootloader (e.g. lilo, grub2, etc.).
+
+example: for grub instructions, type @[todo grub].
+
+To see the instructions for this step again, just type @[todo].
+
+When you are finished, type @[next].
diff --git a/enchantment/modules/compile-kernel/compile-kernel
b/enchantment/modules/compile-kernel/compile-kernel
deleted file mode 100644
index e6a7e18..0000000
--- a/enchantment/modules/compile-kernel/compile-kernel
+++ /dev/null
@@ -1,23 +0,0 @@
-@[compile-kernel step]
-You may now set up a custom kernel for your installation by casting the linux
-spell or compiling and installing manually. Remember to update your
bootloader
-configuration to use your new kernel if you wish to boot it!
-
-chroot into your system:
-@[ smgl-chroot]
-
-spell install:
-@[ cast -r linux]
-
-manual install (change VERSION to what you have):
-@[ cd /usr/src && tar jxvf linux-VERSION]
-@[ ln -sf /usr/src/linux-VERSION /usr/src/linux && cd /usr/src/linux]
-@[ make menuconfig && make && make modules_install]
-@[ cp -f arch/i386/boot/bzImage /boot/vmlinuz-VERSION]
-@[ cp -f .config /boot/config-VERSION]
-@[ cp -f System.map /boot/System.map-VERSION]
-
-Exit the chroot:
-@[exit]
-
-Type @[next] to go to the next step.
diff --git a/enchantment/modules/compile-kernel/compile-kernel.info
b/enchantment/modules/compile-kernel/compile-kernel.info
deleted file mode 100644
index 8f3a34b..0000000
--- a/enchantment/modules/compile-kernel/compile-kernel.info
+++ /dev/null
@@ -1 +0,0 @@
-configure, build, and install a custom kernel
diff --git a/enchantment/modules/compile-kernel/description
b/enchantment/modules/compile-kernel/description
new file mode 100644
index 0000000..8f3a34b
--- /dev/null
+++ b/enchantment/modules/compile-kernel/description
@@ -0,0 +1 @@
+configure, build, and install a custom kernel
diff --git a/enchantment/modules/compile-kernel/instructions
b/enchantment/modules/compile-kernel/instructions
new file mode 100644
index 0000000..eab25da
--- /dev/null
+++ b/enchantment/modules/compile-kernel/instructions
@@ -0,0 +1,23 @@
+@[compile-kernel step]
+You may now set up a custom kernel for your installation by casting the linux
+spell or compiling and installing manually. Remember to update your
bootloader
+configuration to use your new kernel if you wish to boot it!
+
+chroot into your system:
+ @[enchantment chroot]
+
+spell install:
+ @[cast -r linux]
+
+manual install (change VERSION to what you have):
+ @[cd /usr/src && tar -xvf linux-VERSION]
+ @[ln -sf /usr/src/linux-VERSION /usr/src/linux && cd /usr/src/linux]
+ @[make menuconfig && make && make modules_install]
+ @[cp -f arch/x86/boot/bzImage /boot/vmlinuz-VERSION]
+ @[cp -f .config /boot/config-VERSION]
+ @[cp -f System.map /boot/System.map-VERSION]
+
+Exit the chroot:
+ @[exit]
+
+Type @[next] to go to the next step.
diff --git a/enchantment/modules/disk-format/description
b/enchantment/modules/disk-format/description
new file mode 100644
index 0000000..33cf106
--- /dev/null
+++ b/enchantment/modules/disk-format/description
@@ -0,0 +1 @@
+creating filesystems
diff --git a/enchantment/modules/disk-format/disk-format
b/enchantment/modules/disk-format/disk-format
deleted file mode 100644
index bc8cbfa..0000000
--- a/enchantment/modules/disk-format/disk-format
+++ /dev/null
@@ -1,21 +0,0 @@
-@[disk-format step]
-Now create filesystems on the partitions you just created. Below is a list
-of example commands for the different types of filesystems supported on this
-ISO. The partitions given are examples. Be sure to format all the partitions
-you need.
-
-@[ mke2fs /dev/sda1]
-@[ mkfs.ext3 /dev/sda1]
-@[ mkreiserfs /dev/sda1]
-@[ mkfs.jfs /dev/sda1]
-@[ mkfs.xfs /dev/sda1]
-
-You probably want a swap partition:
-@[ mkswap /dev/sda2]
-
-The reiser4 tools are provided on the ISO. However, the ISO kernel does not
-yet support reiser4, so although you can create reiser4 filesystems and
-check ones already created, you cannot yet mount them. Only make a reiser4
-filesystem if you really know what you are doing. (@[mkfs.reiser4])
-
-Type @[next] to go to the next step.
diff --git a/enchantment/modules/disk-format/disk-format.info
b/enchantment/modules/disk-format/disk-format.info
deleted file mode 100644
index 33cf106..0000000
--- a/enchantment/modules/disk-format/disk-format.info
+++ /dev/null
@@ -1 +0,0 @@
-creating filesystems
diff --git a/enchantment/modules/disk-format/instructions
b/enchantment/modules/disk-format/instructions
new file mode 100644
index 0000000..65574e3
--- /dev/null
+++ b/enchantment/modules/disk-format/instructions
@@ -0,0 +1,15 @@
+@[disk-format step]
+Now create filesystems on the partitions you just created. Below is a list
+of example commands for different types of filesystems. The partitions given
+are examples only. Be sure to format all the partitions you need.
+
+Examples:
+ @[mkfs.xfs /dev/sda1]
+ @[mke2fs /dev/sda2]
+ @[mkreiserfs /dev/sda3]
+ @[mkfs.ext3 /dev/sda4]
+
+You probably want a swap partition:
+ @[mkswap /dev/sda5]
+
+Type @[next] to go to the next step.
diff --git a/enchantment/modules/disk-mount/description
b/enchantment/modules/disk-mount/description
new file mode 100644
index 0000000..a6df0c5
--- /dev/null
+++ b/enchantment/modules/disk-mount/description
@@ -0,0 +1 @@
+mounting filesystems at appropriate mount-points
diff --git a/enchantment/modules/disk-mount/disk-mount
b/enchantment/modules/disk-mount/disk-mount
deleted file mode 100644
index 72f8a05..0000000
--- a/enchantment/modules/disk-mount/disk-mount
+++ /dev/null
@@ -1,23 +0,0 @@
-@[disk-mount step]
-You need to mount the filesystems. We'll be installing to /mnt/root,
-so mount the filesystem that will be / onto /mnt/root. The partitions given
are
-only examples. Replace them with the partitions you used in @[disk-format].
-
-Examples:
-@[ mount -t ext2 /dev/sda1 /mnt/root]
-@[ mount -t reiserfs /dev/sda1 /mnt/root]
-@[ mount -t xfs /dev/sda1 /mnt/root]
-
-Then mount any other partitions you made at the proper subdirectories.
-You'll probably need to make directories for the other mount points first
-(assuming you formatted the / partition). Make sure you mount / first.
-
-For example, if you created /dev/sda2 for /usr:
-@[ mkdir /mnt/root/usr]
-@[ mount -t ext2 /dev/sda2 /mnt/root/usr]
-(or, for example, if it's a jfs partition)
-@[ mount -t jfs /dev/sda1 /mnt/root]
-
-Don't forget to mount @[all] the (system) partitions you plan to use.
-Also, you may want to turn on swap via e.g.
-@[ swapon /dev/sda2]
diff --git a/enchantment/modules/disk-mount/disk-mount.info
b/enchantment/modules/disk-mount/disk-mount.info
deleted file mode 100644
index a6df0c5..0000000
--- a/enchantment/modules/disk-mount/disk-mount.info
+++ /dev/null
@@ -1 +0,0 @@
-mounting filesystems at appropriate mount-points
diff --git a/enchantment/modules/disk-mount/instructions
b/enchantment/modules/disk-mount/instructions
new file mode 100644
index 0000000..100cd57
--- /dev/null
+++ b/enchantment/modules/disk-mount/instructions
@@ -0,0 +1,20 @@
+@[disk-mount step]
+You need to mount the filesystems you will use. Please be sure to mount your
+intended / and all sub-mounts (e.g. /usr) relative to the installer target
mount:
+ @[$ENCHANT_TARGET] (e.g., mount /usr at @[$ENCHANT_TARGET]/usr)
+
+Examples:
+ @[mount -t xfs /dev/sda1 $ENCHANT_TARGET]
+ @[mkdir $ENCHANT_TARGET/boot $ENCHANT_TARGET/usr]
+ @[mount -t ext2 /dev/sda2 $ENCHANT_TARGET/boot]
+ @[mount -t reiserfs /dev/sda3 $ENCHANT_TARGET/usr]
+ @[mount -t ext3 /dev/sda3 $ENCHANT_TARGET/var]
+
+The above are examples only. Replace them with the partitions and filesystem
+types you used in the @[disk-format] step.
+
+Don't forget to mount @[all] the (system) partitions you plan to use under
+@[$ENCHANT_TARGET]. Also, you may want to turn on swap via e.g.
+ @[swapon /dev/sda5]
+
+Type @[next] to go to the next step.
diff --git a/enchantment/modules/disk-partition/description
b/enchantment/modules/disk-partition/description
new file mode 100644
index 0000000..470f054
--- /dev/null
+++ b/enchantment/modules/disk-partition/description
@@ -0,0 +1 @@
+creating partitions
diff --git a/enchantment/modules/disk-partition/disk-partition
b/enchantment/modules/disk-partition/disk-partition
deleted file mode 100644
index 21d95d0..0000000
--- a/enchantment/modules/disk-partition/disk-partition
+++ /dev/null
@@ -1,23 +0,0 @@
-@[disk-partition step]
-First, we'll need to create some partitions on your disk that we can install
-SMGL to. You'll need to know the device of your hard disk to do this. One
good
-way to find your disks is by ls /sys/block, running cat /proc/partitions, or
by
-dmesg | grep -i disk. You probably want something that is either hd or sd.
-
-This image ships with several popular programs for partitioning:
-
-cfdisk is probably the most popular, a curses-based menu system:
-@[ cfdisk /dev/sda]
-
-parted can resize partitions, but may be a tad confusing:
-@[ parted /dev/sda]
-
-Then for the purists there's plain line-based fdisk. Can be a bit hard to
use:
-@[ fdisk /dev/sda]
-
-The iso also ships with @[sfdisk], if you're insane enough to want to use
-it.
-
-Remember to save your new partitioning scheme before quitting the program,
-create a swap partition, and remember you can always see this screen again
-by typing @[todo]. Type @[next] when you're done.
diff --git a/enchantment/modules/disk-partition/disk-partition.info
b/enchantment/modules/disk-partition/disk-partition.info
deleted file mode 100644
index 470f054..0000000
--- a/enchantment/modules/disk-partition/disk-partition.info
+++ /dev/null
@@ -1 +0,0 @@
-creating partitions
diff --git a/enchantment/modules/disk-partition/instructions
b/enchantment/modules/disk-partition/instructions
new file mode 100644
index 0000000..c1eb79e
--- /dev/null
+++ b/enchantment/modules/disk-partition/instructions
@@ -0,0 +1,19 @@
+@[disk-partition step]
+First, we'll need to create some partitions on your disk that we can install
+SMGL to. You'll need to know the device of your hard disk to do this. To find
+your disks, you can try @[ls /sys/block], @[cat /proc/partitions], or
+@[dmesg | grep -i disk]. You probably want something that starts with either
hd
+or sd.
+
+Then, use a program to partition your device:
+
+cfdisk, a curses-based menu front-end to fdisk: @[cfdisk /dev/sda]
+parted: @[parted /dev/sda]
+fdisk: @[fdisk /dev/sda]
+
+There is also @[sfdisk], if you're low-level enough to want to use it.
+
+Be sure to create a swap partition unless you know you don't need one.
+Remember to save your new partitioning scheme before quitting the program.
+
+Type @[next] when you're done.
diff --git a/enchantment/modules/edit-confs/description
b/enchantment/modules/edit-confs/description
new file mode 100644
index 0000000..a460b43
--- /dev/null
+++ b/enchantment/modules/edit-confs/description
@@ -0,0 +1 @@
+editing the basic configuration files
diff --git a/enchantment/modules/edit-confs/edit-confs
b/enchantment/modules/edit-confs/edit-confs
deleted file mode 100644
index 1858656..0000000
--- a/enchantment/modules/edit-confs/edit-confs
+++ /dev/null
@@ -1,23 +0,0 @@
-@[edit-confs step]
-Now, we need to set up our partitions so the system will find them again on
-bootup. For this, edit @[/mnt/root/etc/fstab] and add your partitions.
-
-(For editors available on this iso, do @[help editors])
-
-Also, take a look at the files in @[/mnt/root/etc/sysconfig/] and edit any
you
-feel should be different. Especially, you should make sure the @[facilities]
file
-looks correct, and if you selected a custom keymap at the start of this
-install, you'll need to edit the file called @[keymap] in that directory
-(do @[ cat /tmp/selected-keymap] to see which you chose).
-
-You may also wish to create @[/mnt/root/etc/hostname] with a hostname for
your
-system, and you can set up networking by editing the
-@[/mnt/root/etc/network/interfaces] file.
-
-Finally, you can choose to set your timezone by doing the following:
-@[ smgl-chroot]
-@[ ln -sf /usr/share/zoneinfo/SOME/TIMEZONE /etc/localtime]
-
-Just remember to replace "SOME/TIMEZONE" with your actual timezone.
-
-Type @[next] to go to the next step.
diff --git a/enchantment/modules/edit-confs/edit-confs.info
b/enchantment/modules/edit-confs/edit-confs.info
deleted file mode 100644
index a460b43..0000000
--- a/enchantment/modules/edit-confs/edit-confs.info
+++ /dev/null
@@ -1 +0,0 @@
-editing the basic configuration files
diff --git a/enchantment/modules/edit-confs/instructions
b/enchantment/modules/edit-confs/instructions
new file mode 100644
index 0000000..9a38cfd
--- /dev/null
+++ b/enchantment/modules/edit-confs/instructions
@@ -0,0 +1,23 @@
+@[edit-confs step]
+(For editors available on this iso, type @[list-editors])
+
+Partitions and mounts: @[$ENCHANT_TARGET/etc/fstab]
+Edit fstab for your partitions and mounts so your system will find them again
+on bootup.
+
+Also, take a look at the files in @[$ENCHANT_TARGET/etc/sysconfig/] and edit
any you
+feel should be different. Especially, you should make sure the @[facilities]
file
+looks correct, and if you selected a custom keymap at the start of this
+install, you'll need to edit the file called @[keymap] in that directory
+(type @[cat /tmp/enchantment/keymap] to see which you chose).
+
+Hostname: @[$ENCHANT_TARGET/etc/hostname]
+If you wish to set a hostname for your system, add it here.
+
+Networking: @[/mnt/root/etc/network/interfaces]
+Edit this file (@[man interfaces] for help) to set your networking.
+
+Timezone: (replace "SOME/TIMEZONE" with your actual timezone)
+ @[enchantment chroot ln -sf /usr/share/zoneinfo/SOME/TIMEZONE
/etc/localtime]
+
+Type @[next] to go to the next step.
diff --git a/enchantment/modules/error/description
b/enchantment/modules/error/description
new file mode 100644
index 0000000..2732448
--- /dev/null
+++ b/enchantment/modules/error/description
@@ -0,0 +1 @@
+an error was encountered
diff --git a/enchantment/modules/error/error b/enchantment/modules/error/error
deleted file mode 100644
index d81e770..0000000
--- a/enchantment/modules/error/error
+++ /dev/null
@@ -1 +0,0 @@
-I got confused. WTF. Well, hope for the best and type "next" to start over...
diff --git a/enchantment/modules/error/error.info
b/enchantment/modules/error/error.info
deleted file mode 100644
index 2732448..0000000
--- a/enchantment/modules/error/error.info
+++ /dev/null
@@ -1 +0,0 @@
-an error was encountered
diff --git a/enchantment/modules/error/instructions
b/enchantment/modules/error/instructions
new file mode 100644
index 0000000..5009eb3
--- /dev/null
+++ b/enchantment/modules/error/instructions
@@ -0,0 +1,7 @@
+Error encountered.
+
+@[enchantment next] to try to proceed
+
+ or
+
+@[enchantment jump init] to start over
diff --git a/enchantment/modules/grub/description
b/enchantment/modules/grub/description
new file mode 100644
index 0000000..cc62224
--- /dev/null
+++ b/enchantment/modules/grub/description
@@ -0,0 +1 @@
+install and configure the grub bootloader
diff --git a/enchantment/modules/grub/grub b/enchantment/modules/grub/grub
deleted file mode 100644
index 74cf91f..0000000
--- a/enchantment/modules/grub/grub
+++ /dev/null
@@ -1,23 +0,0 @@
-@[grub step]:
-To run grub properly, it needs to be chroot'ed into the new system.
-
-chroot into the system:
-@[ smgl-chroot]
-
-Copy all the necessary grub files to /boot:
-cp /usr/lib/grub/i386-pc/* /boot/grub
-
-Then run grub and enter the following commands, without the > in front
(adjust
-for your disk layout):
-@[ /sbin/grub]
-> @[root (hd0,0)]
-> @[setup (hd0)]
-> @[quit]
-
-Update menu.lst for your kernel:
-$EDITOR /boot/grub/menu.lst
-
-Exit the chroot:
-@[ exit]
-
-Type @[next] to go to the next step.
diff --git a/enchantment/modules/grub/grub.info
b/enchantment/modules/grub/grub.info
deleted file mode 100644
index cc62224..0000000
--- a/enchantment/modules/grub/grub.info
+++ /dev/null
@@ -1 +0,0 @@
-install and configure the grub bootloader
diff --git a/enchantment/modules/grub/instructions
b/enchantment/modules/grub/instructions
new file mode 100644
index 0000000..374e0ed
--- /dev/null
+++ b/enchantment/modules/grub/instructions
@@ -0,0 +1,23 @@
+@[grub step]:
+To run grub properly, it needs to be chroot'ed into the new system.
+
+chroot into the system:
+ @[enchantment chroot]
+
+Copy all the necessary grub files to /boot:
+cp /usr/lib/grub/i386-pc/* /boot/grub
+
+Then run grub and enter the following commands, without the > in front
(adjust
+for your disk layout):
+ @[/sbin/grub]
+ > @[root (hd0,0)]
+ > @[setup (hd0)]
+ > @[quit]
+
+Update menu.lst for your kernel:
+$EDITOR /boot/grub/menu.lst
+
+Exit the chroot:
+ @[exit]
+
+Type @[next] to go to the next step.
diff --git a/enchantment/modules/init/description
b/enchantment/modules/init/description
new file mode 100644
index 0000000..da3882a
--- /dev/null
+++ b/enchantment/modules/init/description
@@ -0,0 +1 @@
+start of the install
diff --git a/enchantment/modules/init/init b/enchantment/modules/init/init
deleted file mode 100644
index 7cd6fe4..0000000
--- a/enchantment/modules/init/init
+++ /dev/null
@@ -1,2 +0,0 @@
-@[init step]
-enter @[next].
diff --git a/enchantment/modules/init/init.info
b/enchantment/modules/init/init.info
deleted file mode 100644
index da3882a..0000000
--- a/enchantment/modules/init/init.info
+++ /dev/null
@@ -1 +0,0 @@
-start of the install
diff --git a/enchantment/modules/init/instructions
b/enchantment/modules/init/instructions
new file mode 100644
index 0000000..94b7505
--- /dev/null
+++ b/enchantment/modules/init/instructions
@@ -0,0 +1,3 @@
+@[init step]
+
+Type @[next] to proceed.
diff --git a/enchantment/modules/install/description
b/enchantment/modules/install/description
new file mode 100644
index 0000000..e1eb7cf
--- /dev/null
+++ b/enchantment/modules/install/description
@@ -0,0 +1 @@
+install the base system and selected optional spells
diff --git a/enchantment/modules/install/install
b/enchantment/modules/install/install
deleted file mode 100644
index e8cd038..0000000
--- a/enchantment/modules/install/install
+++ /dev/null
@@ -1,23 +0,0 @@
-@[install step]
-It is time to install all of the spells to your system. There are two ways
that
-you can do this: manually, and using the @[smgl-enchant] script. Note
-that system.tar.bz2 is @[required] for a new install.
-
-manual method:
-@[ tar xjvf /system.tar.bz2 -C /mnt/root]
-@[ cd /var/cache/sorcery]
-@[ tar jxf SPELL -C /mnt/root ]
-
-Remember to replace "SPELL" with the filename of the spell cache to install.
As
-an example, to install lilo:
-@[ tar jxf /var/cache/sorcery/lilo-22.8-i486-pc-linux-gnu.tar.bz2 -C
/mnt/root]
-
-enchant method (uses /tmp/spells):
-@[ smgl-enchant]
-
-Enchant can also take a command-line argument to a cache file with a
specified
-path. This enables you to run enchant on any cache file you choose, from any
-directory, without the tedium of typing in the tar line as given in the
"manual
-method" section. See @[ smgl-enchant] for more information.
-
-When the step finishes type @[next].
diff --git a/enchantment/modules/install/install.info
b/enchantment/modules/install/install.info
deleted file mode 100644
index e1eb7cf..0000000
--- a/enchantment/modules/install/install.info
+++ /dev/null
@@ -1 +0,0 @@
-install the base system and selected optional spells
diff --git a/enchantment/modules/install/instructions
b/enchantment/modules/install/instructions
new file mode 100644
index 0000000..5714fcd
--- /dev/null
+++ b/enchantment/modules/install/instructions
@@ -0,0 +1,21 @@
+@[install step]
+It is time to install all of the spells to your system. There are two ways
that
+you can do this: manually, and using @[enchantment install spells].
+
+enchantment method (uses $ENCHANT_TMP/spells):
+ @[enchantment install spells]
+
+@[enchantment install spells] will by default install all spells found in
+$ENCHANT_TMP/spells. You can also specify a command-line argument to a
+cache file with a specified path to install a single cache file instead.
+
+manual method:
+ @[tar -C $ENCHANT_TARGET -xjvf /system.tar.bz2]
+ @[cd /var/cache/sorcery]
+ @[tar -C $ENCHANT_TARGET -xvjf SPELL]
+
+Remember to replace "SPELL" with the filename of the spell cache to install.
+As an example, to install lilo:
+ @[tar -xvf /var/cache/sorcery/lilo-VERSION-ARCH.tar.bz2 -C $ENCHANT_TARGET]
+
+Type @[next] to proceed to the next step.
diff --git a/enchantment/modules/iso-kernel/description
b/enchantment/modules/iso-kernel/description
new file mode 100644
index 0000000..d998c9a
--- /dev/null
+++ b/enchantment/modules/iso-kernel/description
@@ -0,0 +1 @@
+install the kernel from the ISO into your target system
diff --git a/enchantment/modules/iso-kernel/instructions
b/enchantment/modules/iso-kernel/instructions
new file mode 100644
index 0000000..997360b
--- /dev/null
+++ b/enchantment/modules/iso-kernel/instructions
@@ -0,0 +1,22 @@
+@[iso-kernel step]
+Installing the ISO kernel is easy, and it should work well (it's working on
+your computer right now). To install the ISO kernel, all you need to do is
copy
+the kernel and kernel modules over to your new system. You can do this via
+enchantment, or manually. Remember to modify your bootloader configuration to
+use the kernel you install if you wish to boot it (@[bootloader] step)!
+
+using enchantment:
+ @[enchantment install iso-kernel]
+
+manually:
+ copy the kernel itself:
+ @[cp /boot/config-$(uname -r) $ENCHANT_TARGET/boot/]
+ @[cp /boot/kernel $ENCHANT_TARGET/boot/vmlinuz-$(uname -r)]
+
+ copy all the kernel modules:
+ @[cp -a /lib/modules/$(uname -r) $ENCHANT_TARGET/lib/modules/]
+
+ you'll probably also want the modprobe blacklist:
+ @[cp /etc/modprobe.d/blacklist $ENCHANT_TARGET/etc/modprobe.d/blacklist]
+
+Type @[next] to go to the next step.
diff --git a/enchantment/modules/iso-kernel/iso-kernel
b/enchantment/modules/iso-kernel/iso-kernel
deleted file mode 100644
index 460a899..0000000
--- a/enchantment/modules/iso-kernel/iso-kernel
+++ /dev/null
@@ -1,22 +0,0 @@
-@[iso-kernel step]
-Installing the ISO kernel is easy, and it should work well (it's working on
-your computer right now). To install the ISO kernel, all you need to do is
copy
-the kernel and kernel modules over to your new system. You can do this with a
-script we provide, or manually. Remember to modify your bootloader
-configuration to use the kernel you install if you wish to boot it!
-
-using smgl-kernel:
-@[ smgl-kernel]
-
-manually:
-copy the kernel itself:
-@[ cp /boot/config-$(uname -r) /mnt/root/boot/]
-@[ cp /boot/linux /mnt/root/boot/vmlinuz-$(uname -r)]
-
-copy all the kernel modules:
-@[ cp -a /lib/modules/$(uname -r) /mnt/root/lib/modules/]
-
-you'll probably also want the modprobe blacklist:
-@[ cp /etc/modprobe.d/blacklist /mnt/root/etc/modprobe.d/blacklist]
-
-Type @[next] to go to the next step.
diff --git a/enchantment/modules/iso-kernel/iso-kernel.info
b/enchantment/modules/iso-kernel/iso-kernel.info
deleted file mode 100644
index d998c9a..0000000
--- a/enchantment/modules/iso-kernel/iso-kernel.info
+++ /dev/null
@@ -1 +0,0 @@
-install the kernel from the ISO into your target system
diff --git a/enchantment/modules/kernel/description
b/enchantment/modules/kernel/description
new file mode 100644
index 0000000..bb5c5a1
--- /dev/null
+++ b/enchantment/modules/kernel/description
@@ -0,0 +1 @@
+install ISO kernel and/or compile a custom kernel
diff --git a/enchantment/modules/kernel/instructions
b/enchantment/modules/kernel/instructions
new file mode 100644
index 0000000..cd9f5a0
--- /dev/null
+++ b/enchantment/modules/kernel/instructions
@@ -0,0 +1,12 @@
+@[kernel]
+You can install the ISO kernel (fast and easy), set up a custom kernel
+(recommended), or both (best of both worlds). Whatever you choose, you must
+install at least one kernel.
+
+For instructions on how to install the ISO kernel, type @[todo iso-kernel].
+
+For instructions on how to install a custom kernel, type @[todo
compile-kernel].
+
+To see the instructions for this step again, just type @[todo].
+
+When you are finished, type @[next].
diff --git a/enchantment/modules/kernel/kernel
b/enchantment/modules/kernel/kernel
deleted file mode 100644
index cd9f5a0..0000000
--- a/enchantment/modules/kernel/kernel
+++ /dev/null
@@ -1,12 +0,0 @@
-@[kernel]
-You can install the ISO kernel (fast and easy), set up a custom kernel
-(recommended), or both (best of both worlds). Whatever you choose, you must
-install at least one kernel.
-
-For instructions on how to install the ISO kernel, type @[todo iso-kernel].
-
-For instructions on how to install a custom kernel, type @[todo
compile-kernel].
-
-To see the instructions for this step again, just type @[todo].
-
-When you are finished, type @[next].
diff --git a/enchantment/modules/kernel/kernel.info
b/enchantment/modules/kernel/kernel.info
deleted file mode 100644
index bb5c5a1..0000000
--- a/enchantment/modules/kernel/kernel.info
+++ /dev/null
@@ -1 +0,0 @@
-install ISO kernel and/or compile a custom kernel
diff --git a/enchantment/modules/lilo/description
b/enchantment/modules/lilo/description
new file mode 100644
index 0000000..69e6cda
--- /dev/null
+++ b/enchantment/modules/lilo/description
@@ -0,0 +1 @@
+install and configure the lilo bootloader
diff --git a/enchantment/modules/lilo/instructions
b/enchantment/modules/lilo/instructions
new file mode 100644
index 0000000..d8349a2
--- /dev/null
+++ b/enchantment/modules/lilo/instructions
@@ -0,0 +1,19 @@
+@[lilo step]:
+Edit @[$ENCHANT_TARGET/etc/lilo.conf] to fit your setup (especially, you'll
+want to change the boot= and root= entries to point to your partitions, and
+you'll need to set the kernel version correctly).
+
+To run lilo properly, you need to chroot into the new system and then install
+lilo.
+
+chroot into the installed system:
+ @[enchantment chroot]
+
+run lilo so it installs to the boot record:
+ @[/sbin/lilo]
+
+exit the chroot:
+ @[ exit]
+
+Unless you got an error message when you were installing the boot loader,
+you should be done with this step. Type @[next] to go to the next step.
diff --git a/enchantment/modules/lilo/lilo b/enchantment/modules/lilo/lilo
deleted file mode 100644
index 82c49bd..0000000
--- a/enchantment/modules/lilo/lilo
+++ /dev/null
@@ -1,20 +0,0 @@
-@[lilo step]:
-Edit @[/mnt/root/etc/lilo.conf] to your setup (especially, you'll want to
change
-the boot= and root= entries to point to your partitions, and you'll need to
-set the kernel version correctly).
-
-To run lilo properly, it needs to be chroot'ed into the new system. This
needs
-some directories (/dev, /proc), so we provide a wrapper to set those up for
-you and clean them up again when you're done.
-
-Run the script to get a shell inside the installed system:
-@[ smgl-chroot]
-
-Then run lilo so it updates the boot record:
-@[ /sbin/lilo]
-
-Exit the chroot:
-@[ exit]
-
-Unless you got an error message when you were installing the boot loader,
-you should be done with this step. Type @[next] to go to the next step.
diff --git a/enchantment/modules/lilo/lilo.info
b/enchantment/modules/lilo/lilo.info
deleted file mode 100644
index 69e6cda..0000000
--- a/enchantment/modules/lilo/lilo.info
+++ /dev/null
@@ -1 +0,0 @@
-install and configure the lilo bootloader
diff --git a/enchantment/modules/reboot/description
b/enchantment/modules/reboot/description
new file mode 100644
index 0000000..9c8e7ef
--- /dev/null
+++ b/enchantment/modules/reboot/description
@@ -0,0 +1 @@
+reboot into the new system
diff --git a/enchantment/modules/reboot/instructions
b/enchantment/modules/reboot/instructions
new file mode 100644
index 0000000..34a9626
--- /dev/null
+++ b/enchantment/modules/reboot/instructions
@@ -0,0 +1,12 @@
+@[reboot step]
+You should be all done with the installation! Congratulations! Time to reboot
+into your installed system! Just type:
+
+ @[reboot]
+
+If you installed @[smgl-setup] (installed by default unless changed), be
sure to
+run @[man smgl-setup] when first logging in. It will provide you with
+information on what you can do with your newly installed system.
+
+We don't (yet) eject the CD during shutdown, so be sure to take it out during
+reboot or configure your BIOS not to try and boot from it.
diff --git a/enchantment/modules/reboot/reboot
b/enchantment/modules/reboot/reboot
deleted file mode 100644
index 5eb2dc9..0000000
--- a/enchantment/modules/reboot/reboot
+++ /dev/null
@@ -1,12 +0,0 @@
-@[reboot step]
-You should be all done with the installation! Congratulations! Time to reboot
-into your installed system! Just type:
-
-@[ reboot]
-
-If you installed @[smgl-setup] (installed by default unless changed), be
sure to
-run @[man smgl-setup] when first logging in. It will provide you with
-information on what you can do with your newly installed system.
-
-We don't (yet) eject the CD during shutdown, so be sure to take it out during
-reboot or configure your BIOS not to try and boot from it.
diff --git a/enchantment/modules/reboot/reboot.info
b/enchantment/modules/reboot/reboot.info
deleted file mode 100644
index 9c8e7ef..0000000
--- a/enchantment/modules/reboot/reboot.info
+++ /dev/null
@@ -1 +0,0 @@
-reboot into the new system
diff --git a/enchantment/modules/select-spells/description
b/enchantment/modules/select-spells/description
new file mode 100644
index 0000000..abeb713
--- /dev/null
+++ b/enchantment/modules/select-spells/description
@@ -0,0 +1 @@
+choose the spells to install
diff --git a/enchantment/modules/select-spells/instructions
b/enchantment/modules/select-spells/instructions
new file mode 100644
index 0000000..7dbf13e
--- /dev/null
+++ b/enchantment/modules/select-spells/instructions
@@ -0,0 +1,23 @@
+@[select-spells step]
+You may now select the spells you would like that are provided on the ISO.
+There are currently two ways that you can accomplish this. Both methods make
+use of /tmp/spells. It is crucial to install some spells (such as a
bootloader)
+or your system may not function, so some of these have been included as
+defaults in /tmp/spells. @[NOTE:] the ISO caches represent ALL spells
installed
+for the ISO runtime, and are selectable for install, regardless of whether
they
+are also included in system.tar.bz2 as well - gcc, glibc, bash, etc. are
+available both in system.tar.bz2 AND in the ISO's /var/cache/sorcery/
+directory. For a list of the spells in system.tar.bz2, see /tmp/rspells.
+
+text menu:
+@[ smgl-spells]
+
+manual:
+@[ $EDITOR /tmp/spells]
+
+You can of course use any editor you like, in case you haven't set $EDITOR.
+
+You can re-edit /tmp/spells any time during the install session and it will
+remember your changes each time. Likewise, you may re-run @[smgl-spells].
+
+When you are finished selecting your spells, type @[next].
diff --git a/enchantment/modules/select-spells/select-spells
b/enchantment/modules/select-spells/select-spells
deleted file mode 100644
index 7dbf13e..0000000
--- a/enchantment/modules/select-spells/select-spells
+++ /dev/null
@@ -1,23 +0,0 @@
-@[select-spells step]
-You may now select the spells you would like that are provided on the ISO.
-There are currently two ways that you can accomplish this. Both methods make
-use of /tmp/spells. It is crucial to install some spells (such as a
bootloader)
-or your system may not function, so some of these have been included as
-defaults in /tmp/spells. @[NOTE:] the ISO caches represent ALL spells
installed
-for the ISO runtime, and are selectable for install, regardless of whether
they
-are also included in system.tar.bz2 as well - gcc, glibc, bash, etc. are
-available both in system.tar.bz2 AND in the ISO's /var/cache/sorcery/
-directory. For a list of the spells in system.tar.bz2, see /tmp/rspells.
-
-text menu:
-@[ smgl-spells]
-
-manual:
-@[ $EDITOR /tmp/spells]
-
-You can of course use any editor you like, in case you haven't set $EDITOR.
-
-You can re-edit /tmp/spells any time during the install session and it will
-remember your changes each time. Likewise, you may re-run @[smgl-spells].
-
-When you are finished selecting your spells, type @[next].
diff --git a/enchantment/modules/select-spells/select-spells.info
b/enchantment/modules/select-spells/select-spells.info
deleted file mode 100644
index abeb713..0000000
--- a/enchantment/modules/select-spells/select-spells.info
+++ /dev/null
@@ -1 +0,0 @@
-choose the spells to install
diff --git a/enchantment/modules/spell-caches/description
b/enchantment/modules/spell-caches/description
new file mode 100644
index 0000000..fbbb4de
--- /dev/null
+++ b/enchantment/modules/spell-caches/description
@@ -0,0 +1 @@
+choose the spell caches (built packages) to install
diff --git a/enchantment/modules/spell-caches/instructions
b/enchantment/modules/spell-caches/instructions
new file mode 100644
index 0000000..1f2684a
--- /dev/null
+++ b/enchantment/modules/spell-caches/instructions
@@ -0,0 +1,21 @@
+@[spell-caches step]
+You may now select the spell caches (built packages) you would like installed
+that are provided on the ISO. You can accomplish this either using
enchantment
+or by directly editing @[$ENCHANT_TMP/spell_caches]. The iso caches available
+for installation are present in /var/cache/sorcery/.
+
+enchantment:
+ @[enchantment select caches] # presents a text menu for toggling caches
+ @[enchantment select caches add glob] # adds files matching the pattern
+ @[enchantment select caches del glob] # removes files matching the pattern
+
+manually:
+ @[$EDITOR "$ENCHANT_TMP/spell_caches"]
+
+You can of course use any editor you like, in case you haven't set $EDITOR.
+
+You can re-edit @[$ENCHANT_TMP/spell_caches] any time during the install
session
+and your changes will be remembered if you have potion functionality enabled.
+Likewise, you may always re-run @[enchantment select caches] at any time.
+
+When you are finished selecting your spell caches, type @[next].
diff --git a/enchantment/modules/spell-sources/description
b/enchantment/modules/spell-sources/description
new file mode 100644
index 0000000..884df10
--- /dev/null
+++ b/enchantment/modules/spell-sources/description
@@ -0,0 +1 @@
+choose the spell source files to install
diff --git a/enchantment/modules/spell-sources/instructions
b/enchantment/modules/spell-sources/instructions
new file mode 100644
index 0000000..4f4d6ff
--- /dev/null
+++ b/enchantment/modules/spell-sources/instructions
@@ -0,0 +1,25 @@
+@[spell-sources step]
+You may now select the spell sources you would like to install. You can
+accomplish this either using enchantment or editing the file directly.
@[NOTE:]
+the iso sources are located in /var/spool/sorcery/. It is also highly
+recommended that you select at least one bootloader to build later.
Bootloaders
+must be provided as sources rather than prebuilt caches (packages) because
they
+come with varying options, some of which (depending on the bootloader at
least)
+may be self-conflicting.
+
+via text menu:
+ @[enchantment select sources] # presents a text menu for toggling sources
+ @[enchantment select sources add glob] # adds files matching the pattern
+ @[enchantment select sources del glob] # removes files matching the pattern
+
+edit manually:
+ @[$EDITOR "$ENCHANT_TMP/spell_sources"]
+
+You can of course use any editor you like, in case you haven't set $EDITOR.
+
+You can re-edit @[$ENCHANT_TMP/spell_sources] any time during the install
+session and your changes will be remembered if you have potion functionality
+enabled. Likewise, you may always re-run @[enchantment select sources] at any
+time.
+
+When you are finished selecting your spell sources, type @[next].
diff --git a/enchantment/modules/user-setup/description
b/enchantment/modules/user-setup/description
new file mode 100644
index 0000000..cd1aea6
--- /dev/null
+++ b/enchantment/modules/user-setup/description
@@ -0,0 +1 @@
+set root password, create regular users
diff --git a/enchantment/modules/user-setup/instructions
b/enchantment/modules/user-setup/instructions
new file mode 100644
index 0000000..1dd81f2
--- /dev/null
+++ b/enchantment/modules/user-setup/instructions
@@ -0,0 +1,20 @@
+@[user-setup step]
+To set up users, chroot into the target system as for the bootloader step:
+ @[enchantment chroot]
+
+Set a password for the root user (pick a secure one, but not one you'll
forget,
+and bear in mind that it can be bypassed with a screwdriver):
+ @[passwd root]
+
+@[Recommended]: add at least one regular user for daily use:
+ @[useradd -m -d /home/mbolton] -g users @[mbolton]
+ @[passwd mbolton]
+
+Replace @[mbolton] with whatever login you want. Don't forget to change
+@[/home/mbolton] accordingly. You may also change the group (-g users) if you
+wish.
+
+Finally, exit the chroot to return to the installer:
+ @[exit]
+
+Type @[next] to continue to the next step.
diff --git a/enchantment/modules/user-setup/user-setup
b/enchantment/modules/user-setup/user-setup
deleted file mode 100644
index 006ab3d..0000000
--- a/enchantment/modules/user-setup/user-setup
+++ /dev/null
@@ -1,17 +0,0 @@
-@[user-setup step]
-To set up users, chroot into the target system as for the bootloader step:
-@[ smgl-chroot]
-
-Set a password for the root user (pick a secure one, but not one you'll
forget,
-and bear in mind that it can be bypassed with a screwdriver):
-@[ passwd root]
-
-@[Recommended]: add at least one regular user for daily use:
-@[ useradd -m -d /home/mbolton ]-g users@[ mbolton]
-@[ passwd mbolton]
-
-Replace mbolton with whatever login you want. Don't forget to change
-/home/mbolton accordingly. You may also change the group (-g users).
-
-Finally, exit the chroot to return to the installer:
-@[ exit]
diff --git a/enchantment/modules/user-setup/user-setup.info
b/enchantment/modules/user-setup/user-setup.info
deleted file mode 100644
index cd1aea6..0000000
--- a/enchantment/modules/user-setup/user-setup.info
+++ /dev/null
@@ -1 +0,0 @@
-set root password, create regular users
diff --git a/enchantment/modules/welcome/description
b/enchantment/modules/welcome/description
new file mode 100644
index 0000000..a258082
--- /dev/null
+++ b/enchantment/modules/welcome/description
@@ -0,0 +1 @@
+welcome screen with basic info/instructions
diff --git a/enchantment/modules/welcome/editors
b/enchantment/modules/welcome/editors
new file mode 100644
index 0000000..701b5bb
--- /dev/null
+++ b/enchantment/modules/welcome/editors
@@ -0,0 +1,6 @@
+This iso provides the following text editors (additional editors may be
+installed from spell caches).
+
+ @[nano] - a quite easy-to-use, small editor
+ @[vi] - a small vi clone, part of busybox
+
diff --git a/enchantment/modules/welcome/instructions
b/enchantment/modules/welcome/instructions
new file mode 100644
index 0000000..91f4d9b
--- /dev/null
+++ b/enchantment/modules/welcome/instructions
@@ -0,0 +1,16 @@
+@[Welcome to the SMGL @ENCHANT_ISO_VERSION@ install iso!]
+This is the guided shell prompt enchantment (installer).
+
+To see the list of all steps: @[list].
+To see the list of all commands: @[help].
+To see this message again: @[welcome].
+
+To set a different keymap: @[keymap].
+ or: @[539]
+
+If you have any feedback for us, please drop by #sourcemage-cauldron
+on irc.freenode.net, file a bug on bugs.sourcemage.org,
+or just send an email to the mailing lists or to iso AT sourcemage.org.
+
+Enter @[next] to advance to the next step in the installation.
+Have fun!
diff --git a/enchantment/modules/welcome/welcome
b/enchantment/modules/welcome/welcome
deleted file mode 100644
index 3c0d1ae..0000000
--- a/enchantment/modules/welcome/welcome
+++ /dev/null
@@ -1,22 +0,0 @@
-Welcome to the SMGL @ISO_VERSION@ install CD!
-
-The install process is currently a guided shell prompt. Type @[next] to
start.
-Everytime you finish a step, enter @[next] to advance to the next one.
-If you want to re-read the documentation for a step, type @[todo].
-You can enter @[prev] at any time to jump to the previous step.
-
-If you ever get lost, type @[steps] to get a list of installer steps,
-and e.g. @[jump copy-base] to jump to a specific step.
-Don't worry, there's no magic attached to the steps, you can jump between
-them as you please without breaking anything.
-
-If at any time you need help, type @[help].
-To see this message again, type @[welcome].
-
-If you need to set a different keymap, type @[539].
-
-If you have any feedback you'd like us to hear, please drop by
-#sourcemage-cauldron on irc.freenode.net, file a bug on bugs.sourcemage.org,
-or just send an email to the mailing lists or to iso AT sourcemage.org.
-
-Enter @[next] to begin the installation. Have fun!
diff --git a/enchantment/shell/bashrc b/enchantment/shell/bashrc
deleted file mode 100755
index 4c7152f..0000000
--- a/enchantment/shell/bashrc
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/bash
-#-------------------------------------------------------------------------------
-##
-##=head1 SYNOPSIS
-##
-## This is the init/setup of the SMGL shell installer.
-## Take care not to pollute the user's namespace too much,
-## And make sure your functions don't collide with existing commands.
-##
-##=head1 COPYRIGHT
-##
-## Copyright 2010 by the Cauldron Team
-##
-##=head1 FUNCTIONS
-##
-##=over 4
-##
-#-------------------------------------------------------------------------------
-
-# these variables are defined the same in etc/enchantment/enchantment.conf
-# if redefined in the environment, they will be overridden for
-# all enchantment scripts
-ENCHANT_ISO_PATH="${ENCHANT_ISO_PATH:-}"
-ENCHANT_DATA="${ENCHANT_DATA:-$ENCHANT_ISO_PATH/usr/share/enchantment}"
-
-# set path to include the shell installer commands
-PATH="$ENCHANT_DATA/shell/bin:$PATH"
-
-# initialize the installer
-enchantment init
-
-# use titlecase because this will pollute the user's namespace, and we want
to
-# minimize the likelihood that it would interfere with the user's regular
-# processing
-function Shell_Set_Prompt() {
- enchantment prompt
-}
-
-PS1="\$(Shell_Set_Prompt)\n\u \w\$ "
-
-#-------------------------------------------------------------------------------
-##
-## This software is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
-##
-## This software is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this software; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-##
-#-------------------------------------------------------------------------------
-
-# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
diff --git a/enchantment/shell/bin/enchantment
b/enchantment/shell/bin/enchantment
deleted file mode 100755
index b269821..0000000
--- a/enchantment/shell/bin/enchantment
+++ /dev/null
@@ -1,260 +0,0 @@
-#!/bin/bash
-#-------------------------------------------------------------------------------
-##
-##=head1 SYNOPSIS
-##
-## This file is the user-level interface of the SMGL shell installer. All
-## user-level commands are defined here, and either handle the input
directly
-## using libenchanment (and its sub-libraries) or route it to more
high-level
-## functions defined in the shell functions file.
-##
-##=head1 COPYRIGHT
-##
-## Copyright 2010 by the Cauldron Team
-##
-##=head1 FUNCTIONS
-##
-##=over 4
-##
-#-------------------------------------------------------------------------------
-
-# let libenchantment know which installer this is
-ENCHANT_INSTALLER="shell"
-
-CONFIG="${CONFIG:-/etc/enchantment/enchantment.conf}"
-
-# source configs and libenchantment
-. "$CONFIG"
-
-# load the main library (which in turn loads sub-libraries)
-if ! . "$ENCHANT_LIBS/libenchantment"
-then
- echo "error: could not load libenchantment"
- exit 1
-fi
-
-# source installer-specific functions
-source "$ENCHANT_DATA/$ENCHANT_INSTALLER/functions" ||
- liberror_die \
- $ERR_INSTALLER_FUNCS \
- "cannot load $ENCHANT_INSTALLER functions file"
-
-
-#------------------------------------------------------------------------------
-function enchant_shell_command_keymap() {
- [[ "$#" -le 1 ]] || return $ERR_INSTALLER_CMD
-
- enchant_shell_perform_keymap "$@" || return $ERR_INSTALLER_KEYMAP
-
- return $ERR_OK
-}
-
-function enchant_shell_command_prompt() {
- [[ "$#" -eq 0 ]] || return $ERR_INSTALLER_CMD
-
- local current="current:$(enchant_get_current)"
- local next="next:$(enchant_get_next)"
- local num="$(enchant_modules_number)"
- local total="$(enchant_modules_total)"
-
- echo -n "[$current $next $num/$total] "
- echo -n "For a list of commands, type "
- libcolor_notice "help"
-
- return $ERR_OK
-}
-
-function enchant_shell_command_chroot() {
- # can take any number of arguments,
- # so don't check the number of arguments
-
- enchant_shell_perform_chroot "$@"
- liberror_check_fatal
-
- return $ERR_OK
-}
-
-function_enchant_shell_command_list() {
- [[ $# -eq 0 ]] || return $ERR_INSTALLER_CMD
-
- enchant_shell_list_modules
- liberror_check_fatal
-
- return $ERR_OK
-}
-
-function enchant_shell_command_todo() {
- [[ $# -le 1 ]] || return $ERR_INSTALLER_CMD
-
- enchant_shell_perform_todo "$@"
- liberror_check_fatal
-
- return $ERR_OK
-}
-
-function enchant_shell_command_jump() {
- [[ $# -eq 1 ]] || return $ERR_INSTALLER_CMD
-
- enchant_shell_perform_jump "$@"
- liberror_check_fatal
-
- return $ERR_OK
-}
-
-function enchant_shell_command_help() {
- [[ $# -le 1 ]] || return $ERR_INSTALLER_CMD
-
- enchant_shell_perform_help "$@"
- liberror_check_fatal
-
- return $ERR_OK
-}
-
-# Initialize installer
-function enchant_shell_command_init() {
- [[ "$#" -eq 0 ]] || return $ERR_INSTALLER_CMD
-
- enchant_prepare
- liberror_check_fatal
-
- return $ERR_OK
-}
-
-function enchant_shell_command_install {
- local command="$1"
- shift
-
- case "$command" in
- "kernel" )
- [[ $# -ne 3 ]] && return $ERR_INSTALLER_CMD
- enchant_install_kernel "$@"
- liberror_check_fatal
- ;;
- "isokernel" )
- [[ $# -ne 0 ]] && return $ERR_INSTALLER_CMD
- enchant_install_kernel
- liberror_check_fatal
- ;;
- "system" )
- [[ $# -ne 0 ]] && return $ERR_INSTALLER_CMD
- enchant_install_system
- liberror_check_fatal
- ;;
- "spells" )
- [[ $# -ne 0 ]] && return $ERR_INSTALLER_CMD
- enchant_install_spell_sources
- liberror_check_fatal
- enchant_install_spell_caches
- liberror_check_fatal
- ;;
- "sources" )
- # can take either 0 or multiple arguments,
- # so don't check the number of arguments
- enchant_install_sources "$@"
- liberror_check_fatal
- ;;
- "caches" )
- # can take either 0 or multiple arguments,
- # so don't check the number of arguments
- enchant_install_caches "$@"
- liberror_check_fatal
- ;;
- * ) return $ERR_INSTALLER_CMD ;;
- esac
-
- return $ERR_OK
-}
-
-function enchant_shell_command_potion() {
- # TODO: not yet implemented
-
- return $ERR_OK
-}
-#------------------------------------------------------------------------------
-
-
-#####################
-## MAIN PROCESSING ##
-#####################
-
-command="$1"
-shift
-
-case "$command" in
- "keymap" )
- enchant_shell_command_keymap
- liberror_check_fatal
- ;;
- "init" )
- enchant_shell_command_init
- liberror_check_fatal
- ;;
- "prompt" )
- enchant_shell_command_prompt
- liberror_check_fatal
- ;;
- "chroot" )
- enchant_shell_command_chroot "$@"
- liberror_check_fatal
- ;;
- "todo" )
- enchant_shell_command_todo "$@"
- liberror_check_fatal
- ;;
- "list" )
- enchant_shell_command_list_modules "$@"
- liberror_check_fatal
- ;;
- "next" )
- enchant_shell_perform_next
- liberror_check_fatal
- ;;
- "prev" )
- enchant_shell_perform_prev
- liberror_check_fatal
- ;;
- "jump" )
- enchant_shell_command_jump "$@"
- liberror_check_fatal
- ;;
- "welcome" )
- enchant_shell_perform_welcome
- liberror_check_fatal
- ;;
- "install" )
- enchant_shell_command_install "$@"
- liberror_check_fatal
- ;;
- "potion" )
- enchant_shell_command_potion "$@"
- liberror_check_fatal
- ;;
- "help" )
- enchant_shell_command_help "$@"
- liberror_check_fatal
- ;;
- * )
- enchant_shell_command_help
- liberror_check_fatal
- ;;
-esac
-
-#-------------------------------------------------------------------------------
-##
-## This software is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
-##
-## This software is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this software; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-##
-#-------------------------------------------------------------------------------
-
-# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
diff --git a/enchantment/shell/functions b/enchantment/shell/functions
deleted file mode 100644
index 5ff703a..0000000
--- a/enchantment/shell/functions
+++ /dev/null
@@ -1,342 +0,0 @@
-#!/bin/bash
-#-------------------------------------------------------------------------------
-##
-##=head1 SYNOPSIS
-##
-## These are the functions used by the SMGL shell installer.
-## Take care not to pollute the user's namespace too much,
-## and make sure your functions don't (accidentally) collide
-## with existing commands.
-##
-##=head1 COPYRIGHT
-##
-## Copyright 2010 by the Cauldron Team
-##
-##=head1 FUNCTIONS
-##
-##=over 4
-##
-#-------------------------------------------------------------------------------
-
-# print a standardized header
-# if given a filename for an argument, it will print the contents of the file
-# after the header
-function enchant_shell_header() {
- echo ""
- echo ""
- echo ""
-
- # if arg1 supplied, cat it
- if [[ -n "$1" ]]
- then
- [[ -f "$1" ]] || return $ERR_FILE_NOT_FOUND
- cat "$1"
- fi
-
- return $ERR_OK
-}
-
-# output the step instructions
-# use color if libcolor loaded, else just plain bold
-function enchant_shell_print() {
- local file="$1"
- local hilight=""
- local normal=""
-
- [[ -f "$file" ]] || return $ERR_FILE_NOT_FOUND
-
- if [[ "$LIBCOLOR_NOCOLOR" == "yes" ]]
- then
- hilight="$LIBCOLOR_NOTICE_COLOR"
- normal="$LIBCOLOR_NORMAL_COLOR"
- else
- hilight="$LIBCOLOR_BOLD"
- normal="$LIBCOLOR_NORMAL"
- fi
-
- # replace instances of "@[...]" with $hilight...$normal in situ
- # the color codes have to be used directly (rather than the libcolor_
message
- # functions) due to the in situ nature of the markup, otherwise we would
have
- # to overly complicate the instruction printing function by printing one
line
- # at a time
- sed "s/@\[\([^]]*\)\]/$hilight\1$normal/g" "$file"
-
- return $ERR_OK
-}
-
-# display module names with short descriptions in columns
-function enchant_shell_modules() {
- local list=""
- local module=""
- local col_width="0"
-
- # get the list of modules
- list=( $(enchant_modules_list) )
-
- [[ "${#list[*]}" -eq 0 ]] && return $ERR_MODULE_NONE
-
- # get the width of the widest column
- for col in ${list[*]}
- do
- [[ "${#col}" -gt "$col_width" ]] && col_width="${#col}"
- done
-
- enchant_shell_header || return $ERR_FILE_NOT_FOUND
-
- for module in ${list[*]}
- do
- # pad the output to align the columns
- while [[ "${#module}" -lt "$col_width" ]]
- do
- module="$module "
- done
-
- # output name and info in columns
- echo "$module" | paste - "$ENCHANT_MODULES/$module/${module}.info"
- done
-
- return $ERR_OK
-}
-
-function enchant_shell_perform_todo() {
- local curstep="${1:-$(enchant_get_current)}"
-
- [[ -z "$curstep" ]] && return $ERR_GET_CURRENT
-
- # output the header
- enchant_shell_header || return $ERR_FILE_NOT_FOUND
-
- # output the current module's instructions
- enchant_shell_print "$ENCHANT_MODULES/$curstep/$curstep" ||
- return $ERR_FILE_NOT_FOUND
-
- return $ERR_OK
-}
-
-function enchant_shell_perform_next() {
- enchant_set_next || return $ERR_SET_NEXT
-
- todo || return $ERR_FILE_NOT_FOUND
-
- return $ERR_OK
-}
-
-function enchant_shell_perform_prev() {
- enchant_set_prev || return $ERR_SET_PREV
-
- todo || return $ERR_FILE_NOT_FOUND
-
- return $ERR_OK
-}
-
-function enchant_shell_perform_back() {
- enchant_back || return $ERR_HISTORY_BACK
-
- return $ERR_OK
-}
-
-function enchant_shell_perform_forward() {
- enchant_forward || return $ERR_HISTORY_FORWARD
-
- return $ERR_OK
-}
-
-function enchant_shell_perform_list_modules() {
- enchant_shell_modules || return $ERR_INSTALLER_MODULES
-
- return $ERR_OK
-}
-
-function enchant_shell_perform_jump() {
- local rc=""
-
- enchant_set_current $*
- rc="$?"
-
- if [[ "$rc" -gt 0 ]]
- then
- echo ""
- libcolor_error "'$@': error: "
- liberror_print_error "$rc"
-
- if [[ "$rc" == $ERR_SET_CURRENT ]]
- then
- echo "Type $(libcolor_notice enchantment list) to see a list of steps."
- fi
- fi
-
- return $ERR_OK
-}
-
-function enchant_shell_perform_welcome() {
- enchant_shell_header || return $ERR_FILE_NOT_FOUND
-
- enchant_shell_print "$ENCHANT_MODULES/welcome/welcome" ||
- return $ERR_FILE_NOT_FOUND
-
- return $ERR_OK
-}
-
-function enchant_shell_perform_help() {
- helpfile="$ENCHANT_MODULES/help/${1:-index}"
-
- if [[ ! -f "$helpfile" ]]
- then
- if [[ -n "$1" ]]
- then
- libcolor_warn "No installer help for '$1'"
- echo ""
- else
- return $ERR_FILE_NOT_FOUND
- fi
- fi
-
- enchant_shell_header || return $ERR_FILE_NOT_FOUND
- enchant_shell_print "$helpfile" ||
- return $ERR_FILE_NOT_FOUND
-
- return $ERR_OK
-}
-
-function enchant_shell_perform_chroot() {
- enchant_chroot_init || return $ERR_CHROOT_INIT
-
- # set the prompt to let the user know
- # we are entering... the Chroot Zone
- PS1="[inside chroot, type"
- PS1="$PS1 $(libcolor_notice exit)"
- PS1="$PS1 to return to installer]"
- PS1="${PS1}\n\u \w\$ "
- export PS1
-
- enchant_chroot "$@" || return $ERR_CHROOT_EXEC
-
- enchant_chroot_done || return $ERR_CHROOT_DONE
-
- return $ERR_OK
-}
-
-function enchant_shell_keymap_list {
- local choices=( "$@" )
- local max="${#choices[*]}"
- local i=""
-
- [[ "$max" -lt 1 ]] && return $ERR_INSTALLER_KEYMAP
-
- if [[ "$max" -gt 20 ]]
- then
- for ((i=0; i < "$max"; i++))
- do
- printf "\n[%2d] %s\n" "$(($i + 1))" "${choices[i]}"
- done | column | more
- else
- for ((i=0; i < "$max"; i++))
- do
- printf "\n\t\t\t[%2d] %s\n" "$(($i + 1))" "${choices[i]}"
- done | more
- fi
-
- return $ERR_OK
-}
-
-function enchant_shell_keymap_info() {
- local i="0"
-
- local msgs=(
- "First, choose your keyboard's hardware type from the list below."
- "Some hardware types will also have a subtype,"
- "which will be presented in another menu."
- "After you are done choosing your hardware type (and subtype),"
- "choose your preferred keymapping from the menu you are presented with."
- ""
- "You may enter 0 to go back to a previous menu."
- )
-
- # print a header
- printf "\n\t$(libcolor_notice Keymap Selection Menu)\n\n"
-
- # print the welcome information
- for ((i; i < "${#msgs[*]}"; i++))
- do
- printf "\t$(libcolor_notice ${msgs[i]})\n"
- done
-
- return $ERR_OK
-}
-
-function enchant_shell_keymap_prompt() {
- # print an indented prompt
- echo ""
- printf "\t$(libcolor_notice Please enter a number (0 to go back, * to
exit):)"
- echo " "
-}
-
-function enchant_shell_peform_keymap() {
- local choices=()
- local prefix=""
- local rc=""
-
- # print the initial welcome info
- enchant_shell_keymap_info
-
- while [[ "$rc" -ne "$ERR_KEYMAP_EXIT" ]]
- do
- # get the list of choices
- choices=( "$(enchant_i18n_keymap_make_list $prefix)" )
-
- # print the list of choices as a numbered menu
- enchant_shell_keymap_list "${choices[@]}"
-
- # print a prompt, with indentation
- enchant_shell_keymap_prompt
-
- # get user input and update the menu prefix
- # enchant_i18n_keymap_input will automatically set the keymap if the
input
- # is for a specific keymap rather than a directory
- prefix="$(enchant_i18n_keymap_input $prefix ${#choices[*]})"
- rc="$?"
-
- # if we got bad input, just repeat the loop until we get good input
- # but warn the user so they know what happened
- if [[ "$rc" -ge 1 ]]
- then
- case "$rc" in
- # exit is handled by the loop condition itself, so we don't need to
do
- # anything for this one
- "$ERR_KEYMAP_EXIT" )
- ;;
- # if there was a problem with the input, let the user know and
re-loop
- "$ERR_KEYMAP_INPUT" )
- echo "Error: You must enter a number corresponding to one"
- echo "of the choices in the list above!"
- ;;
- * )
- # return any errors which weren't explicitly handled above
- return $rc
- ;;
- esac
- fi
- done
-
- return $ERR_OK
-}
-
-#-------------------------------------------------------------------------------
-##
-## This software is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
-##
-## This software is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this software; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-##
-#-------------------------------------------------------------------------------
-
-# vim:ai:tw=80:tabstop=2:softtabstop=2:shiftwidth=2:expandtab
diff --git a/enchantment/shell/modules b/enchantment/shell/modules
deleted file mode 100644
index 4620414..0000000
--- a/enchantment/shell/modules
+++ /dev/null
@@ -1,17 +0,0 @@
-init:disk-partition
-disk-partition:disk-format
-disk-format:disk-mount
-disk-mount:copy-base
-copy-base:edit-confs
-edit-confs:boot-loader
-boot-loader:grub
-boot-loader:lilo
-grub:opt-spells
-lilo:opt-spells
-boot-loader:opt-spells
-opt-spells:user-setup
-user-setup:reboot
-reboot:reboot
-error:init
-init:init
-init:error
diff --git a/lib/libcolor b/lib/libcolor
index d13b553..1f10d63 100644
--- a/lib/libcolor
+++ b/lib/libcolor
@@ -21,58 +21,90 @@ LIBCOLOR_NOCOLOR="no"

#-------------------------------------------------------------------------------
# Message Color Definitions

#-------------------------------------------------------------------------------
-LIBCOLOR_NORMAL=""
-LIBCOLOR_BOLD=""
-LIBCOLOR_BLACK=""
-LIBCOLOR_RED=""
-LIBCOLOR_GREEN=""
-LIBCOLOR_YELLOW=""
-LIBCOLOR_BLUE=""
-LIBCOLOR_VIOLET=""
-LIBCOLOR_CYAN=""
-LIBCOLOR_WHITE=""
-
-LIBCOLOR_NORMAL_COLOR="${LIBCOLOR_NORMAL}${LIBCOLOR_WHITE}"
-LIBCOLOR_NOTICE_COLOR="${LIBCOLOR_BOLD}${LIBCOLOR_BLUE}"
-LIBCOLOR_WARN_COLOR="${LIBCOLOR_NORMAL}${LIBCOLOR_CYAN}"
-LIBCOLOR_ERROR_COLOR="${LIBCOLOR_BOLD}${LIBCOLOR_RED}"
-LIBCOLOR_QUERY_COLOR="${LIBCOLOR_BOLD}${LIBCOLOR_YELLOW}"
-LIBCOLOR_FILE_COLOR="${LIBCOLOR_BOLD}${LIBCOLOR_GREEN}"
-LIBCOLOR_SYMLINK_COLOR="${LIBCOLOR_BOLD}${LIBCOLOR_CYAN}"
+: "${LIBCOLOR_NORMAL:=}"
+: "${LIBCOLOR_BOLD:=}"
+: "${LIBCOLOR_BLACK:=}"
+: "${LIBCOLOR_RED:=}"
+: "${LIBCOLOR_GREEN:=}"
+: "${LIBCOLOR_YELLOW:=}"
+: "${LIBCOLOR_BLUE:=}"
+: "${LIBCOLOR_VIOLET:=}"
+: "${LIBCOLOR_CYAN:=}"
+: "${LIBCOLOR_WHITE:=}"
+
+: "${LIBCOLOR_NORMAL_COLOR:=${LIBCOLOR_NORMAL}${LIBCOLOR_WHITE}}"
+: "${LIBCOLOR_NOTICE_COLOR:=${LIBCOLOR_BOLD}${LIBCOLOR_VIOLET}}"
+: "${LIBCOLOR_OK_COLOR:=${LIBCOLOR_BOLD}${LIBCOLOR_GREEN}}"
+: "${LIBCOLOR_ERROR_COLOR:=${LIBCOLOR_BOLD}${LIBCOLOR_RED}}"
+: "${LIBCOLOR_WARN_COLOR:=${LIBCOLOR_BOLD}${LIBCOLOR_YELLOW}}"
+: "${LIBCOLOR_QUERY_COLOR:=${LIBCOLOR_NORMAL}${LIBCOLOR_CYAN}}"
+: "${LIBCOLOR_FILE_COLOR:=${LIBCOLOR_BOLD}${LIBCOLOR_WHITE}}"
+: "${LIBCOLOR_DIR_COLOR:=${LIBCOLOR_BOLD}${LIBCOLOR_BLUE}}"
+: "${LIBCOLOR_SYMLINK_COLOR:=${LIBCOLOR_BOLD}${LIBCOLOR_CYAN}}"


#-------------------------------------------------------------------------------
-## @param notice message
+## @param facility (notice, warn, error, symlink, ...)
+## @param message
##
-## Prints the given message in "notice" color.
+## Prints the given message in the facility color. The facility must be one
of
+## the libcolor message color functions
+##
+#-------------------------------------------------------------------------------
+function libcolor_msg() {
+ local func="$1"
+
+ [[ -n "$func" ]] || return $?
+
+ shift
+ eval libcolor_${func} "\$@"
+ printf "\n"
+}
+
+
+#-------------------------------------------------------------------------------
+## @param color
+## @param message
+##
+## Prints the given message in the given color.
##

#-------------------------------------------------------------------------------
-function libcolor_notice() {
+libcolor_printf() {
+ local reset="${color:-$LIBCOLOR_NORMAL_COLOR}"
+ local color="$1"
+ shift 1
+
if [[ "$LIBCOLOR_NOCOLOR" = "yes" ]]
then
- echo -n "$@"
- else
- echo -ne "$LIBCOLOR_NOTICE_COLOR"
- echo -n "$@"
- echo -ne "$LIBCOLOR_NORMAL_COLOR"
+ printf "%s" "$*"
+ return "$?"
fi
+
+ printf "%b%s%b" "$color" "$*" "${reset:-$LIBCOLOR_NORMAL_COLOR}"
}


#-------------------------------------------------------------------------------
+## @param info message
+##
+## Prints the given message in "info" color.
+##
+#-------------------------------------------------------------------------------
+function libcolor_info() { libcolor_printf "$LIBCOLOR_NORMAL_COLOR" "$@" ;}
+
+#-------------------------------------------------------------------------------
+## @param notice message
+##
+## Prints the given message in "notice" color.
+##
+#-------------------------------------------------------------------------------
+function libcolor_notice() { libcolor_printf "$LIBCOLOR_NOTICE_COLOR" "$@" ;}
+
+#-------------------------------------------------------------------------------
## @param warning message
##
## Prints the given message in "warn" color.
##

#-------------------------------------------------------------------------------
-function libcolor_warn() {
- if [[ "$LIBCOLOR_NOCOLOR" = "yes" ]]
- then
- echo -n "$@"
- else
- echo -ne "$LIBCOLOR_WARN_COLOR"
- echo -n "$@"
- echo -ne "$LIBCOLOR_NORMAL_COLOR"
- fi
-}
+function libcolor_warn() { libcolor_printf "$LIBCOLOR_WARN_COLOR" "$@" ;}


#-------------------------------------------------------------------------------
## @param error message
@@ -80,16 +112,7 @@ function libcolor_warn() {
## Prints the given error message in "error" color.
##

#-------------------------------------------------------------------------------
-function libcolor_error() {
- if [[ "$LIBCOLOR_NOCOLOR" = "yes" ]]
- then
- echo -n "$@"
- else
- echo -ne "$LIBCOLOR_ERROR_COLOR"
- echo -n "$@"
- echo -ne "$LIBCOLOR_NORMAL_COLOR"
- fi
-}
+function libcolor_error() { libcolor_printf "$LIBCOLOR_ERROR_COLOR" "$@" ;}


#-------------------------------------------------------------------------------
## @param query message
@@ -97,16 +120,7 @@ function libcolor_error() {
## Prints the given query message in "query" color.
##

#-------------------------------------------------------------------------------
-function libcolor_query() {
- if [[ "$LIBCOLOR_NOCOLOR" = "yes" ]]
- then
- echo -n "$@"
- else
- echo -ne "$LIBCOLOR_QUERY_COLOR"
- echo -n "$@"
- echo -ne "$LIBCOLOR_NORMAL_COLOR"
- fi
-}
+function libcolor_query() { libcolor_printf "$LIBCOLOR_QUERY_COLOR" "$@" ;}


#-------------------------------------------------------------------------------
## @param file name
@@ -114,16 +128,15 @@ function libcolor_query() {
## Prints the given file name in "file" color.
##

#-------------------------------------------------------------------------------
-function libcolor_file() {
- if [[ "$LIBCOLOR_NOCOLOR" = "yes" ]]
- then
- echo -n "$@"
- else
- echo -ne "$LIBCOLOR_FILE_COLOR"
- echo -n "$@"
- echo -ne "$LIBCOLOR_NORMAL_COLOR"
- fi
-}
+function libcolor_file() { libcolor_printf "$LIBCOLOR_FILE_COLOR" "$@" ;}
+
+#-------------------------------------------------------------------------------
+## @param directory name
+##
+## Prints the given directory name in "dir" color.
+##
+#-------------------------------------------------------------------------------
+function libcolor_dir() { libcolor_printf "$LIBCOLOR_DIR_COLOR" "$@" ;}


#-------------------------------------------------------------------------------
## @param symlink name
@@ -131,15 +144,27 @@ function libcolor_file() {
## Prints the given symlink name in "symlink" color.
##

#-------------------------------------------------------------------------------
-function libcolor_symlink() {
- if [[ "$LIBCOLOR_NOCOLOR" = "yes" ]]
- then
- echo -n "$@"
- else
- echo -ne "$LIBCOLOR_SYMLINK_COLOR"
- echo -n "$@"
- echo -ne "$LIBCOLOR_NORMAL_COLOR"
- fi
+function libcolor_symlink() { libcolor_printf "$LIBCOLOR_SYMLINK_COLOR" "$@"
;}
+
+#-------------------------------------------------------------------------------
+## @param colors (RED, BLUE, BOLD, etc., ...)
+##
+## Prints the control code(s) for the given color(s). This is an internal
+## function that should only be used when absolutely necessary for
specialized
+## output. Use the message functions above unless you have a *really* good
+## reason for using this one instead.
+##
+#-------------------------------------------------------------------------------
+function libcolor_color() {
+ local color=
+
+ while [[ "$#" -gt 0 ]]
+ do
+ eval color="\$LIBCOLOR_$1"
+ [[ -n "$color" ]] &&
+ printf "%b" "$color"
+ shift
+ done
}


#-------------------------------------------------------------------------------
diff --git a/lib/liberror b/lib/liberror
old mode 100755
new mode 100644
index fbd6fe4..fe48938
--- a/lib/liberror
+++ b/lib/liberror
@@ -88,11 +88,30 @@ function liberror_print_error() {
# exit if $errmsg not defined
[[ -z "$errmsg" ]] && return 1

+ # get the name of the calling function
+ local caller=""
+ local lineno=""
+ local bashsrc=""
+ for ((i=0; i < "${#FUNCNAME[@]}"; i++))
+ do
+ if [[ "${FUNCNAME[i]}" != liberror* ]]
+ then
+ caller="${FUNCNAME[i]}"
+ lineno="${BASH_LINENO[i-1]}"
+ bashsrc="${BASH_SOURCE[i]}"
+ break
+ fi
+ done
+
+ # inject the calling function's name and source line number
+ # into the error message for tracing purposes
+ errmsg="$caller\(${bashsrc##*/}:$lineno\): $errmsg"
+
# print an OK message if the "error" is 0, otherwise print an error message
if [[ "$error" -eq 0 ]]
then
# output using libcolor if available
- if [[ "$(type -t libcolor_notice)" == "function" ]]
+ if declare -lF libcolor_notice
then
eval libcolor_notice "$errmsg" >&$output
echo "" >&$output
@@ -104,7 +123,7 @@ function liberror_print_error() {
[[ -n "$info" ]] && errmsg="$errmsg: $info"

# output using libcolor if available
- if [[ "$(type -t libcolor_error)" == "function" ]]
+ if declare -lF libcolor_error
then
eval libcolor_error "$errmsg" >&$output
echo "" >&$output
@@ -179,7 +198,9 @@ function liberror_check() {

[[ "$error" -gt 0 ]] && liberror_print_error "$error" "$info"

- return $ERR_OK
+ # return the same error back so that we don't modify the return value
+ # environment
+ return $error
}


#-------------------------------------------------------------------------------
diff --git a/local-exec/cauldron.conf b/local-exec/cauldron.conf
new file mode 100644
index 0000000..f71df52
--- /dev/null
+++ b/local-exec/cauldron.conf
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+# ensure a valid architecture
+: "${CAULDRON_ARCH:=x86_64}"
+
+# ensure a valid number of build jobs
+: "${CAULDRON_BUILD_JOBS:=1}"
+
+# override compression to keep the uncompressed original for debugging
+CAULDRON_CMD_COMPRESS=(xz -9 -k)
+
+:
"${CAULDRON_ENCHANT_CONFIG:=$CAULDRON_BASE/enchantment/etc/enchantment.conf}"
+: "${CAULDRON_ENCHANT_DIR:=$CAULDRON_BASE/enchantment}"
+: "${ENCHANT_CONF:=$CAULDRON_BASE/enchantment/config}"
+export ENCHANT_CONF
+
+
+# location where the default config files are installed
+# default location is /usr/share/smgl/cauldron/config
+#CAULDRON_CONF=/usr/share/smgl/cauldron/config
+: "${CAULDRON_CONF:=$CAULDRON_BASE/cauldron/config}"
+
+# path to the host system (null for normal use)
+: "${CAULDRON_HOST:=}"
+
+# path to the host cauldron library modules
+: "${CAULDRON_LIBS:=$CAULDRON_BASE/cauldron/lib}"
+
+# path to Source Mage common library modules
+: "${CAULDRON_COMMON:=$CAULDRON_BASE/lib}"
+
+# path to the host cauldron data (cleaner scripts, etc.)
+: "${CAULDRON_DATA:=$CAULDRON_BASE/cauldron/data}"
+
+# path to the host cauldron configs
+: "${CAULDRON_CONFIG:=$CAULDRON_BASE/cauldron/etc}"
+
+# temporary files generated while cauldron does its work
+: "${CAULDRON_TMP:=$CAULDRON_HOST/tmp/cauldron}"
+
+# load the architecture definition first
+. "$CAULDRON_CONF/arch/${CAULDRON_ARCH}.conf"
+
+# load the default profile, providing the default config values
+. "$CAULDRON_CONF/default.conf"
+
diff --git a/local-exec/cauldron.sh b/local-exec/cauldron.sh
new file mode 100755
index 0000000..f90363b
--- /dev/null
+++ b/local-exec/cauldron.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+
+# path to the host base library modules
+export CAULDRON_BASE="${CAULDRON_BASE:-${0%/*}/..}"
+
+export CONFIG_FILE="${0%/*}/cauldron.conf"
+export PATH="$CAULDRON_BASE/cauldron/bin:$PATH"
+
+cauldron "${@:-shell}"
diff --git a/local-exec/enchantment.conf b/local-exec/enchantment.conf
new file mode 100644
index 0000000..2badaee
--- /dev/null
+++ b/local-exec/enchantment.conf
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+# ensure a valid architecture
+: "${ENCHANT_ARCH:=x86_64}"
+
+# path to the host enchantment config files
+: "${ENCHANT_CONFIGS:=$ENCHANT_BASE/enchantment/config}"
+
+# path to the host enchantment library modules
+: "${ENCHANT_LIBS:=$ENCHANT_BASE/enchantment/lib}"
+
+# path to Source Mage common library modules
+: "${ENCHANT_COMMON:=$ENCHANT_BASE/lib}"
+
+# path to the host enchantment data (cleaner scripts, etc.)
+: "${ENCHANT_DATA:=$ENCHANT_BASE/enchantment}"
+
+# temporary files generated while enchantment does its work
+: "${ENCHANT_TMP:=$ENCHANT_HOST/tmp/enchantment}"
+
+. "$ENCHANT_BASE/enchantment/etc/enchantment.conf"
diff --git a/local-exec/enchantment.sh b/local-exec/enchantment.sh
new file mode 100755
index 0000000..510c000
--- /dev/null
+++ b/local-exec/enchantment.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+
+# path to the host base library modules
+export ENCHANT_BASE="${ENCHANT_BASE:-${0%/*}/..}"
+
+export CONFIG="${0%/*}/enchantment.conf"
+export PATH="$ENCHANT_BASE/enchantment/enchanters/shell/bin:$PATH"
+
+enchantment-shell "$@"
diff --git a/ward/TODO b/ward/TODO
index 7de4392..d7d0782 100644
--- a/ward/TODO
+++ b/ward/TODO
@@ -1,3 +1,18 @@
+add a manpage
+ ward needs some documentation to explain what it is for, what it does,
+ and how it does it
+
+find include files dynamically
+ rather than hardcode a list of include files to test against, scan for
+ sourced files in the target; this will ensure only files
+ actually sourced are checked for variable and function
+ definitions, and will also enable testing for sourcing
+ non-existent files
+ this is harder to achieve, as it will require recursively scanning
+ variable definitions to determine real paths, and in some
cases
+ will result in paths that cannot be available before an actual
+ run-time instance
+
add ISO runtime/build tests
test for all necessary runtime spells
test for all necessary install caches
diff --git a/ward/enchantment_sources b/ward/enchantment_sources
index 2e7ad35..3203d63 100644
--- a/ward/enchantment_sources
+++ b/ward/enchantment_sources
@@ -25,7 +25,7 @@ sources=(
"lib/lib.potion"
"shell/bashrc"
"shell/functions"
- "shell/bin/enchantment"
+ "shell/bin/enchantment-shell"
"modules/*/{enter,exit,potion}/*"
)

diff --git a/ward/libsource b/ward/libsource
index 1fdb618..b82563f 100644
--- a/ward/libsource
+++ b/ward/libsource
@@ -32,8 +32,8 @@ function ward_get_sources() {
# process any optional parameters
while [[ "${1:0:1}" == "-" ]]
do
- case "$1" in
- "-p")
+ case "${1#?}" in
+ "p")
path="${2%/}"
shift 2
;;
@@ -139,12 +139,12 @@ function ward_global_variables() {
# process any optional parameters
while [[ "${1:0:1}" == "-" ]]
do
- case "$1" in
- "-p")
+ case "${1#?}" in
+ "p")
fpath="${2%/}"
shift 2
;;
- "-d")
+ "d")
dpath="${2%/}"
shift 2
;;
@@ -188,23 +188,22 @@ function ward_global_variables() {
# include/source
for inc in "${defines[@]}"
do
- #eval defines=( "${defines[@]}" $(ward_descend_includes "$inc") )
defines=( "${defines[@]}" $(ward_descend_includes "$inc") )
done
- # pass the data to sort so it can sort and remove duplicates
+ # sort the data and remove duplicates
defines=(
- "$(echo ${defines[@]} | gawk '{for(i=1;i<=NF;i++){print $i}}' | sort -u)"
+ $(printf '%s\n' "${defines[@]}" | sort -u)
)

# get a list of all variables defined in the definition file(s)
for file in ${defines[@]}
do
#eval vars=( "${vars[@]}" $(grep '[A-Z][A-Z_]*[0-9]*=' "$file" | cut -d=
-f1) )
- vars=( "${vars[@]}" $(grep '[A-Z][A-Z_]*[0-9]*=' "$file" | cut -d= -f1) )
+ vars=( "${vars[@]}" $(grep '[A-Z][A-Z_]*[0-9]*[:]\?=' "$file" | cut -d=
-f1) )
done
# pass the data to sort so it can sort and remove duplicates
vars=(
- "$(echo ${vars[@]} | gawk '{for(i=1;i<=NF;i++){print $i}}' | sort -u)"
+ $(printf '%s\n' "${vars[@]}" | sort -u)
)

while [[ $# -gt 0 ]]
@@ -252,8 +251,8 @@ function ward_error_codes() {
# process any optional parameters
while [[ "${1:0:1}" == "-" ]]
do
- case "$1" in
- "-p")
+ case "${1#?}" in
+ "p")
path="${2%/}"
shift 2
;;
@@ -334,12 +333,12 @@ function ward_error_variables() {
# process any optional parameters
while [[ "${1:0:1}" == "-" ]]
do
- case "$1" in
- "-p")
+ case "${1#?}" in
+ "p")
fpath="${2%/}"
shift 2
;;
- "-d")
+ "d")
epath="${2%/}"
shift 2
;;
@@ -410,18 +409,24 @@ function ward_error_variables() {

#-------------------------------------------------------------------------------
## @param -p base path to sources (optional)
## @param -l base path to libraries (optional)
+## @param -e path to enchanter functions (optional)
+## @param -P prefix to check function names for (optional)
## @param source1 [source2 source3...] (required)
##
## Tests whether any functions used in source1 (source2, source3, etc.) are
## defined. Any functions that are used but not defined in the corresponding
## definition file are output via libcolor_warn, preceded by the file they
were
## found in via libcolor_file. Both base paths default to the current working
-## directory if not supplied.
+## directory if not supplied. Enchanter-specific functions are tested against
+## the corresponding enchanter functions file, if supplied as an argument to
the
+## -e option. If a prefix is given via -P, then only functions beginning with
+## the given prefix are checked.
##

#-------------------------------------------------------------------------------
function ward_functions() {
local fpath="."
local lpath="."
+ local epath=""
local file=""
local prefix=""
local list=""
@@ -437,15 +442,23 @@ function ward_functions() {
# process any optional parameters
while [[ "${1:0:1}" == "-" ]]
do
- case "$1" in
- "-p")
+ case "${1#?}" in
+ "p")
fpath="${2%/}"
shift 2
;;
- "-l")
+ "l")
lpath="${2%/}"
shift 2
;;
+ "e")
+ epath="${2%/}"
+ shift 2
+ ;;
+ "P")
+ prefix="${2}"
+ shift 2
+ ;;
*)
libcolor_error "error: invalid function parameter $1"
echo ""
@@ -468,6 +481,12 @@ function ward_functions() {
liberror_die $ERR_FATAL
fi

+ local az="[[:lower:]]"
+ local num="[[:digit:]]"
+ local aznum="[[:alnum:]]"
+ local az_num="[[:alnum:]_]"
+ local space="[[:space:]]"
+ local needle="^${space}*${prefix:-${az}${aznum}\+_}${az_num}\+$space\+"
while [[ $# -gt 0 ]]
do
file="$1"
@@ -478,33 +497,58 @@ function ward_functions() {

[[ -f "$file" ]] || continue

- list=($(grep -o "^[ ]*[a-z]\+_[a-z_]\+" "$file" | sed 's/^ *//' | sort
-u))
+ list=($(sed 's/^\(.*\)$/\1 /' "$file" | grep -o "$needle" | sed 's/ //g'
| sort -u))
# for each called function, check prefix by prefix
for function in "${list[@]}"
do
+ # reset the matched variable
+ matched="no"
+
# check if the function is defined somewhere in the file it came from
- grep -q "^function $function() {" "$file" && continue
+ grep -q "^function $function[ ]\?()[ ]*{" "$file" && continue

# seed the defines variable for the loop below
local mangle="$function"

# check against the prefixes, one at a time
- while $(echo $mangle | grep -q '^[a-z]\+_[a-z_]\+')
+ while $(echo $mangle | grep -q "^${az}${aznum}*_${az_num}\+")
do
prefix="${mangle%%_*}"
+
+ # adjustment for libenchantment prefixes
[[ "$prefix" == "enchant" ]] && prefix="enchantment"

+ # special checks for the common libs (liberror, libcolor)
+ case "$prefix" in
+ "libcolor" | "liberror" )
+ if [[ -f "$lpath/../../lib/$prefix" ]]
+ then
+ if grep -q "^function $function() {" "$lpath/../../lib/$prefix"
+ then
+ matched="yes"
+ break
+ fi
+ fi
+ ;;
+ esac
+
# check for the function in a library file matching the prefix
- if [[ -f "$lpath/lib$prefix" ]]
- then
- if grep -q "^function $function() {" "$lpath/lib$prefix"
+ for lib in "$lpath/lib"{,.}"$prefix"
+ do
+ if [[ -f "$lib" ]]
then
- matched="yes"
- break
+ if grep -q "^function $function() {" "$lib"
+ then
+ matched="yes"
+ break
+ fi
fi
- elif [[ -f "$lpath/lib.$prefix" ]]
+ done
+
+ # check for the function in a given enchanter function file
+ if [[ -f "${epath:+$epath/functions}" ]]
then
- if grep -q "^function $function() {" "$lpath/lib.$prefix"
+ if grep -q "^function $function() {" "$epath/functions"
then
matched="yes"
break
@@ -515,8 +559,23 @@ function ward_functions() {
mangle="${mangle#*_}"
done

+ if [[ "$matched" != "yes" ]]
+ then
+ for lib in "$lpath/lib"{.,}"${function#*_}"
+ do
+ if [[ -f "$lib" ]]
+ then
+ if grep -q "^function $function() {" "$lib"
+ then
+ matched="yes"
+ break
+ fi
+ fi
+ done
+ fi
+
# if the function isn't defined in the corresponding file, warn the
user
- if [[ -z "$matched" ]]
+ if [[ "$matched" != "yes" ]]
then
echo "$(libcolor_file $file): $(libcolor_warn $function)"
fi
diff --git a/ward/ward-all b/ward/ward-all
index 69d0991..32c69aa 100755
--- a/ward/ward-all
+++ b/ward/ward-all
@@ -19,6 +19,8 @@
WARD_PATH="$(dirname $0)"
PATH="$WARD_PATH:$PATH"

+PAGER="${PAGER:-less -R}"
+
TESTERS=(
"ward-configvars"
"ward-errorcodes"
diff --git a/ward/ward-configvars b/ward/ward-configvars
index bee762b..63f5cb2 100755
--- a/ward/ward-configvars
+++ b/ward/ward-configvars
@@ -31,9 +31,10 @@ function ward_print_usage() {
cat << EndUsage
Usage: $(basename $0) [-n]

-Calls the global_variables delinter to check whether there are error codes
used
-in the known cauldron and enchantment source files that aren't defined in the
-respective errorcodes files. If passed -n, color output is disabled.
+Calls the global_variables delinter to check whether there are configuration
+variables (global environment variables) used in the known cauldron and
+enchantment source files that aren't defined in the respective config files.
If
+passed -n, color output is disabled.
EndUsage
}

@@ -71,12 +72,12 @@ PROCESS_ENCHANTMENT="${PROCESS_ENCHANTMENT:-yes}"
if [[ "$PROCESS_CAULDRON" == "yes" ]]
then
ward_get_sources "cauldron_sources"
- cauldron="$WARD_PATH/../cauldron"
+ cauldron=$(readlink -f "$WARD_PATH/../cauldron")
c_conf="$cauldron/etc/cauldron.conf"
- CAULDRON_CONF="$cauldron/data/config"
+ CAULDRON_CONF="$cauldron/config"

# check cauldron files
- libcolor_notice "Checking cauldron config variables"
+ libcolor_notice "Checking cauldron for undefined config variables..."
echo ""
ward_global_variables -p "$cauldron" "$c_conf" "${sources[@]}" | \
grep -v '[^A-Z_]ERR_[A-Z_]*'
@@ -85,12 +86,12 @@ fi
if [[ "$PROCESS_ENCHANTMENT" == "yes" ]]
then
ward_get_sources "enchantment_sources"
- enchantment="$WARD_PATH/../enchantment"
+ enchantment=$(readlink -f "$WARD_PATH/../enchantment")
+ ENCHANT_CONFIGS="$enchantment/config"
e_conf="$enchantment/etc/enchantment.conf"
- ENCHANT_CONF="$enchantment/data/config"

# check enchantment files
- libcolor_notice "Checking enchantment config variables"
+ libcolor_notice "Checking enchantment for undefined config variables..."
echo ""
ward_global_variables -p "$enchantment" "$e_conf" "${sources[@]}" | \
grep -v '[^A-Z_]ERR_[A-Z_]*'
diff --git a/ward/ward-errorcodes b/ward/ward-errorcodes
index 11c0c2a..8877531 100755
--- a/ward/ward-errorcodes
+++ b/ward/ward-errorcodes
@@ -70,7 +70,7 @@ PROCESS_ENCHANTMENT="${PROCESS_ENCHANTMENT:-yes}"
if [[ "$PROCESS_CAULDRON" == "yes" ]]
then
ward_get_sources "cauldron_sources"
- cauldron="$WARD_PATH/../cauldron"
+ cauldron=$(readlink -f "$WARD_PATH/../cauldron")
c_codes="$cauldron/lib/errorcodes"

libcolor_notice "Checking cauldron errorcodes for internal consistency"
@@ -88,7 +88,7 @@ fi
if [[ "$PROCESS_ENCHANTMENT" == "yes" ]]
then
ward_get_sources "enchantment_sources"
- enchantment="$WARD_PATH/../enchantment"
+ enchantment=$(readlink -f "$WARD_PATH/../enchantment")
e_codes="$enchantment/lib/errorcodes"

libcolor_notice "Checking enchantment errorcodes for internal consistency"
diff --git a/ward/ward-functions b/ward/ward-functions
index f3dd185..0a035e4 100755
--- a/ward/ward-functions
+++ b/ward/ward-functions
@@ -42,7 +42,7 @@ fi

function ward_print_usage() {
cat << EndUsage
-Usage: $(basename $0) [-n]
+Usage: $(basename $0) [-n] [-p PREFIX] [cauldron | enchantment]

Calls the functions delinter to check whether there are functions called in
the
known cauldron and enchantment source files that aren't defined in the
@@ -55,13 +55,24 @@ function ward_usage() {
exit $ERR_FATAL
}

-while [[ "$#" -gt 0 ]]
+PREFIXES=()
+PREFIX=
+while [[ -n "$@" ]]
do
case "$1" in
# check if color should be disabled
"-n")
ward_color "no"
;;
+ # function name prefix to check against
+ "-p")
+ PREFIX="${1#-?}"
+ if [ -z "$PREFIX" ] ;then
+ shift
+ PREFIX="$1"
+ fi
+ PREFIXES[${#PREFIXES[@]}+1]="$PREFIX"
+ ;;
# check if the user only wants to process cauldron
"cauldron")
PROCESS_ENCHANTMENT="no"
@@ -78,29 +89,36 @@ do
shift
done

+if [[ "${#PREFIXES[@]}" -gt 0 ]]
+then
+ PREFIX=$(printf '%s\|' "${PREFIXES[@]}")
+ PREFIX="\\(${PREFIX%\\|}\\)"
+fi
+
PROCESS_CAULDRON="${PROCESS_CAULDRON:-yes}"
PROCESS_ENCHANTMENT="${PROCESS_ENCHANTMENT:-yes}"

if [[ "$PROCESS_CAULDRON" == "yes" ]]
then
ward_get_sources "cauldron_sources"
- cauldron="$WARD_PATH/../cauldron"
+ cauldron=$(readlink -f "$WARD_PATH/../cauldron")

# check cauldron files
- libcolor_notice "Checking cauldron functions"
+ libcolor_notice "Checking for undefined cauldron functions..."
echo ""
- ward_functions -p "$cauldron" -l "$cauldron/lib" "${sources[@]}"
+ ward_functions -P "$PREFIX" -p "$cauldron" -l "$cauldron/lib"
"${sources[@]}"
fi

if [[ "$PROCESS_ENCHANTMENT" == "yes" ]]
then
ward_get_sources "enchantment_sources"
- enchantment="$WARD_PATH/../enchantment"
+ enchantment=$(readlink -f "$WARD_PATH/../enchantment")
+ enchanter="shell"

# check enchantment files
- libcolor_notice "Checking enchantment functions"
+ libcolor_notice "Checking for undefined enchantment functions..."
echo ""
- ward_functions -p "$enchantment" -l "$enchantment/lib" "${sources[@]}"
+ ward_functions -P "$PREFIX" -p "$enchantment" -l "$enchantment/lib" -e
"$enchantment/$enchanter" "${sources[@]}"
fi


#-------------------------------------------------------------------------------



  • [SM-Commit] GIT changes to master cauldron by Justin Boffemmyer (bc859935247ff50842ec413e1e36ddc34796ef14), Justin Boffemmyer, 02/20/2018

Archive powered by MHonArc 2.6.24.

Top of Page