Skip to Content.
Sympa Menu

sm-commit - [SM-Commit] BZR Change 2 to cauldron-devel cauldron by Karsten Behrmann <BearPerson@sourcemage.org>

sm-commit AT lists.ibiblio.org

Subject: Source Mage code commit list

List archive

Chronological Thread  
  • From: bzr AT mail.sourcemage.org
  • To: sm-commit AT lists.ibiblio.org
  • Subject: [SM-Commit] BZR Change 2 to cauldron-devel cauldron by Karsten Behrmann <BearPerson AT sourcemage.org>
  • Date: Sat, 15 Apr 2006 12:45:19 -0500

------------------------------------------------------------
revno: 2
committer: Karsten Behrmann <BearPerson AT sourcemage.org>
branch nick: devel
timestamp: Sun 2006-04-02 17:18:08 +0200
message:
Populate devel

=== added file 'MAINTAINER'
--- /dev/null
+++ MAINTAINER
@@ -0,0 +1,2 @@
+Cauldron Team
+cauldron AT sourcemage.org

=== added file 'README'
--- /dev/null
+++ README
@@ -0,0 +1,5 @@
+This directory contains the *development* version of ISO, installer and
+general cauldron tools.
+
+Trigger a release by running misc/release.sh
+Devel releases need not be logged in the ChangeLog

=== added directory 'doc'
=== added file 'doc/README'
--- /dev/null
+++ doc/README
@@ -0,0 +1,2 @@
+* All docs needed for installer creation/hacking, and ISO generation
+* General prospecting may go in there too

=== added file 'doc/README-usage'
--- /dev/null
+++ doc/README-usage
@@ -0,0 +1,51 @@
+This file should be a quick reference how to use the scripts.
+
+==========Building the chroot==========
+(See the end of this document for instruction how to build the chroot
manually)
+FIXME: verify this works
+- take care that //sgl/misc/chrootgen is on your disk somewhere
+- run chrootgen/src/main/chrootgen.sh --chroot_dir /opt/chroot \
+ --config_dir chrootgen/data/iso-spells/test/x86/test recreate
+
+==========Inserting isogen scripts==========
+- sync to //sgl/cauldron/proj/proj2
+- (optionally) create or change /etc/smgl-mkiso.conf on the host system
+ (outside of the chroot)
+ (See file isogen-config in this same dir for more info)
+- run proj2/iso/generation-scripts/mkprep /opt/chroot/root/p4
+
+==========Building cache tarballs==========
+- chroot to /opt/chroot
+- cd /root/p4/generation-scripts
+- run ./listparse (only needed once every time after running "mkprep")
+- run ./caster $( cat ../data/list.reqd )
+- run ./caster $( cat ../data/list.all )
+(Messages of spells with "log changed" are interesting for QA, but not fatal
+errors)
+- Alternatively to the last three commands, you can just run ./first_build
+
+==========Generating the ISO==========
+- chroot to /opt/chroot
+- cd /root/p4/generation-scripts
+- run ./mk-smgl-iso
+The ISO should end up in /opt/chroot/smgl-<foo>.iso .
+
+==========END==========
+
+Addendum: short steps to build the CHROOT (manually)
+
+- run "sorcery", go to options
+- select the architecture optimizations menu
+- then select "strip" and "tiny" as optimizations
+- exit options
+- go to the bottom of the main menu, "install root"
+- set INSTALL_ROOT to some directory, say /opt/chroot
+- set STATE_ROOT to the same thing
+- exit sorcery
+- mkdir -p /opt/chroot
+- cast basesystem
+- answer defaults to all
+- * Note : for x86_64 do Shall the dynamic linker install to /lib (not
/lib64) (lib64 purge part 2 of 2)? [Y]
+
+NOTE: chrootgen.sh will do all this for you, including answering the
questions
+right if you use the right configset.

=== added file 'doc/chroot-howto'
--- /dev/null
+++ doc/chroot-howto
@@ -0,0 +1,110 @@
+Making a chroot, run-down of my regular routines (BearPerson)
+
+This is just a quick writeup of the regular procedures that I
+use or used to use when making chroots. None of this is set
+in stone, very little of it made for permanent documentation.
+
+=== preliminary ===
+
+--- It takes a chroot to make a chroot ---
+Well, not really, but I've found it helpful to use one of our
+running chroots to make a new chroot from, since they tend to
+be more up-to-date than the main system, and have less libraries
+that may mess us up.
+
+So, let's go:
+p4 sync, as usual
+
+I usually do:
+cp ~isofactory/p4stuff/chrootgen/src/main/chrootgen.sh /opt/chroot
+cp -a ~isofactory/p4stuff/chrootgen/data/iso-spells/stable-rc/x86
/opt/chroot/new-config
+
+now edit /opt/chroot/new-config/config/etc/sorcery/local/config
+to include LEAPFORWARD_URL and (optionally) PROMPT_DELAY
+on ilmy, also edit
/opt/chroot/new-config/config/etc/sorcery/local/compile_config
+to include MAKE_NJOBS=3
+
+=== generating ===
+
+switch screen to inside-chroot (or chroot into the chroot)
+cd /
+[scribe add grimoire_for_chroot] (if it isn't in there yet)
+./chrootgen.sh --chroot_dir /new-chroot --config_dir /new-config
--backup_dir /tmp/backup_configs recreate
+[scribe del grimoire_for_chroot]
+
+That should more or less do it, go back out of the chroot
+mv /opt/chroot/new-chroot /opt/stable-root (or whatever we want to call it)
+
+=== extra files ==
+
+now, the chroot still doesn't have the crucial /etc files,
+nor does it have /dev or /proc, and no sorcery.
+
+What I usually do is (outside of the chroot)
+cp -av --reply=no ~isofactory/p4stuff/stable/iso/skeleton/etc/*
/opt/stable-root/etc
+cp -av ~isofactory/p4stuff/stable/iso/skeleton/etc/shadow
/opt/stable-root/etc
+cp /etc/resolv.conf /opt/stable-root/etc
+
+This will copy all files that aren't in there yet.
+shadow is in there already, but needs to be overwritten by the populated
+version.
+
+This has several problems:
+* It creates /etc/inittab 'cause a buggy init.d spell didn't install it,
+ so it becomes an alien and isn't installed to the ISO-installed system
+* Same for several others
+
+Solution a)
+carefully look at the list of files that the cp copies and delete
+anything that isn't system-critical, especially the inittab
+
+Solution b)
+(later, when we have sorcery inside the chroot)
+do "gaze alien" inside and remove anything that looks like it ought to
+belong to a spell
+
+=== /dev, /proc and /var/spool/sorcery ===
+I usually don't bind mount /dev, I do
+cd /opt/stable-root/dev
+/var/lib/sorcery/codex/*/smgl/init.d/MAKEDEV generic-nopty
+
+mount proc -t proc /opt/stable-root/proc
+mkdir -p /opt/stable-root/var/spool/sorcery
+mount --bind /var/spool/sorcery /opt/stable-root/var/spool/sorcery
+
+=== sorcery and a grimoire ===
+
+~isofactory/p4stuff/stable/iso/generation-scripts/mkprep
/opt/stable-root/root/p4
+
+<inside chroot>
+cd /root
+tar -xjf sorcery-stable.tar.bz2
+cd sorcery
+./install
+cd ..
+rm -r sorcery/
+scribe add stable
+
+That ought to be that...
+
+=== making caches ===
+
+<inside chroot>
+cd /root/p4/generation-scripts
+./first_build
+
+=== misc ===
+
+To update stuff in the chroot, remove
+/opt/stable-root/root/sorcery-stable.tar.bz2 and
+/opt/stable-root/root/stable.tar.bz2
+re-run mkprep
+chroot in, run
+sorcery update
+scribe update
+cd /root/p4/generation-scripts
+./listparse
+./caster $(cat ../data/list.reqd ../data/list.all)
+
+to force rebuild of a spell, do
+./caster -c $spell

=== added directory 'doc/installer'
=== added file 'doc/installer/datafiles.list'
--- /dev/null
+++ doc/installer/datafiles.list
@@ -0,0 +1,96 @@
+This is a list of files that the installer uses and requires to exist on the
ISO
+(files within [] are used, but not strictly required)
+In this file, * is to be understood as a wildcard meaning that all files
+in the preceding path get used, while @ refers only to the files mentioned in
+the description.
+
+$DATA_DIR/directories
+ list of directories to create on the installed system,
+ in addition to smgl-fhs.
+
+[$DATA_DIR/install.guide]
+ the install guide to print for "Installation and help notes"
+
+$DATA_DIR/modules/*
+ the installer modules
+
+$DATA_DIR/symlinks
+ list of symlinks to create (format "$link $target")
+
+$DATA_DIR/templates/@
+ Files playing template for on-the-fly generated files
+ Currently used:
+ - patterns (files specifying which "macro" to replace with what
+ bootloader.patterns: patterns in the bootloader configs
+ nls.patterns: patterns in the editor, locale etc. files
+ - files used as templates:
+ fstab.first: file prepended to the "meaty" section of fstab
+ fstab.last: appended to the end of fstab
+ editor.sh: file to set $EDITOR
+ lc.sh: sets $LANG
+ grub.conf: raw grub config (becomes menu.lst)
+ lilo.conf: raw lilo config
+ yaboot.conf.last: the last few lines of the yaboot conf, the rest is
+ auto-generated.
+
+$STATE_DIR/conflicts
+ lines of the form $SPELL;$SPELL2
+ meaning when $SPELL is cast, $SPELL2 cannot get cast anymore (conflicting)
+
+$STATE_DIR/optionalSpellList
+ list of optional spells and descriptions. format:
+ "spell" "short description" "off"
+ note that they are set in quotes, have to escape special chars,
+ and that the last field is "off".
+
+[$STATE_DIR/version]
+ defines installer and sorcery/grimoire versions
+
+/boot/config-*
+ the ISO kernel config (ONE file)
+
+[/etc/sorcery/dialogrc]
+ stolen dialogrc from sorcery for nice colors (sorcery installs this)
+
+/etc/sourcemage_version
+ file to specify installer version and to identify CD to the initrd
+
+/etc/sysconfig/*
+ the sysconfig files that could have to get changed during the install.
+ They are:
+ keymap
+ devices
+ facilities (for the logging facility)
+
+/etc/@
+ real aliens to install:
+ passwd, group, shadow, ld.so.conf, issue, modules, modules.conf
+ nsswitch.conf, shells
+
+/sbin/MAKEDEV
+ the MAKEDEV script to make a static /dev
+
+/var/cache/sorcery/sorcery-$SORCERY_VERSION.tar.bz2
+ a copy of sorcery
+
+/var/lib/sorcery/codex/$GRIMOIRE_VERSION.tar.bz2
+ a copy of the grimoire to use
+
+/var/state/sorcery/depends
+ a /v/s/s/depends file covering every optional and required spell,
+ such as would be created by casting every spell and
+ dispel --no-reap-depends'ing it again.
+
+/var/state/sorcery/packages
+ a /v/s/s/packages covering every optional and required spell,
+ even those conflicting with each other. You need to create this one
+ manually/through a script. Sorcery provides no way to get this, why should
it.
+
+/var/spool/sorcery/linux-2.6.12.tar.bz2
+ for example, the tarball for the main kernel release
+
+/var/spool/sorcery/patch-2.6.12.3.bz2
+ another example, the patch up to the real version
+
+[/var/spool/sorcery/*]
+ sources to install to the system

=== added file 'doc/installer/depends.list'
--- /dev/null
+++ doc/installer/depends.list
@@ -0,0 +1,93 @@
+ listing of the depends used in the installer
+ please specify:
+ name
+ isOptional?
+ function
+ contents (if it has any)
+ set by
+ used by (if practicable)
+
+name : basic_system
+optional: no
+function: specify that we have a basic shell and core tools installed
+set by : special:basics (casted by newinstall:in_start)
+used by : nothing
+
+name : compile_system
+optional: no
+function: specify that we have basic build utilities (enough to build a
kernel)
+set by : special:compile_env (by newinstall:in_start)
+used by : nothing
+
+name : dev_format
+optional: no
+function: specify selected /dev format
+contents: udev|static|devfs
+set by : optionalSpell
+used by : nothing
+
+name : disk
+optional: no
+function: specify that we have partitioned the disk and finished
+set by : disk_structure_screen()
+used by : none that I know of
+
+name : disk-boot
+optional: yes
+function: carry device name, specify if we have a seperate /boot partition
+contents: device name of /boot partition
+set by : mount filesystems
+used by : bootloader config (get target part)
+
+name : disk-root
+optional: no
+function: carry device name of /, specify we have a fs mounted there
+contents: device name of /
+set by : mount filesystems
+used by : bootloader config (get target part)
+
+name : disk-swap
+optional: yes
+function: carry device name of swap part, specify if we have swap
+contents: device name or "file"
+set by : mount filesystems
+used by : nothing (except swapfile prompting)
+
+name : final_install
+optional: no
+function: specify that the install is almost finished: all the spells
installed
+set by : newinstall
+used by : none
+
+name : first_install
+optional: no
+function: specify that we have set up the target to be installed into
+set by : newinstall
+used by : nothing
+
+name : install_caches
+optional: yes
+function: specify that the caches have been copied onto the system
+set by : casting special:caches
+used by : prompting to copy caches
+
+name : network
+optional: no
+function: specify that networking is configured
+contents: on (network up); off (down); none (no networking available)
+set by : network
+used by : nothing
+
+name : syslog
+optional: pretty much
+function: specify system logger selected
+contents: name of logging service
+set by : syslog
+used by : nothing
+
+name : timezone
+optional: no
+function: specify time zone selected
+contents: path to time zone file
+set by : timezone
+used by : nothing

=== added file 'doc/installer/globals.list'
--- /dev/null
+++ doc/installer/globals.list
@@ -0,0 +1,110 @@
+ listing of globals used in the installer
+ Please specify:
+ name
+ contents
+ set by
+ used by (if sensible)
+
+name : ARCH
+function: specify architecture the ISO is for
+contents: i386, i486(can we call those x86?), x86_64, ppc
+set by : initialization, possibly config file (put in by template in isogen)
+used by : many
+
+name : CONFIRM
+function: toggle if user wants to see confirmation dialogs
+contents: any non-empty string for on
+set by : main menu I think
+used by : confirm() - this function is used in places where it should
+ ALWAYS be seen... this "feature" ought to be trashed for now
+
+name : DATA_DIR
+function: directory for static data (the one in p4)
+contents: I think I'll make it /usr/share/installer
+set by : initialization
+used by : subroutines using data, sourcing modules
+
+name : DEBUG
+function: toggle if we are in debug mode
+contents: any non-empty string
+set by : main menu
+used by : a whole bunch of stuff
+
+name : DEPENDS_DIR
+function: specify directory to save depends in
+contents: /tmp/installer_depends
+set by : initialization
+used by : depends functions
+
+name : DIALOG
+function: array containing the dialog command and its args
+contents: dialog --backtitle ... --stdout --trim
+set by : initialization
+used by : DO NOT USE. Use run_dialog instead.
+
+name : EDITOR
+function: specify editor to use for edits during install
+contents: nano, elvis or jed
+set by : NLS menu
+used by : mostly bootloader
+
+name : FINALFILES
+function: Specify a directory for files that'll get copied onto the system
+ at the very end of the install (mostly useful for /etc files)
+contents: /tmp/finalfiles
+set by : initialization
+used by : everything that writes /etc files basically
+
+name : INSTALLER_DEBUG
+function: specify debug file for the installer
+contents: /tmp/installer_debug
+set by : initialization
+used by : debug_log() and the places where it's still used manually
+
+name : LANG
+function: specify language for multi-lang programs
+contents: standard locale name
+set by : nativeLanguageSupport
+used by : external programs with locales
+
+name : SI_QUEUE_DIR
+function: directory for spell queues (semi-private)
+contents: /tmp/spellinstall
+set by : spellinstaller, initialization
+used by : the si_ functions
+
+name : SI_SPELL_QUEUE
+function: file for the regular queue (semi-private)
+contents: /tmp/spellinstall/queue
+set by : spellinstaller, initialization
+used by : the si_ functions
+
+name : STATE_DIR
+function: directory for data created at ISO-creation-time (pre-gen lists)
+contents: probably /var/lib/installer
+set by : initialization
+used by : depends functions
+
+name : TARGET
+function: specify where to install to
+contents: usually /mnt/root
+set by : initialization
+used by : everywhere
+
+name : TEMPLATE_DIR
+function: specify a directory for the templates for e.g. fstab
+contents: /usr/share/smgl.install/templates probably
+set by : initialization
+used by : basically all calls to run_templates and in disk structure
+
+name : TMP_DR
+function: specify temp dir
+contents: /tmp
+set by : initialization
+used by : TODO: everywhere /tmp is referenced
+
+name : INSTALLER_VERSION
+function: specify installer's version
+contents: e.g. 0.9.5-test2
+set by : $STATE_DIR/version
+used by : only creation of /etc/release

=== added directory 'doc/isogen'
=== added file 'doc/isogen-config'
--- /dev/null
+++ doc/isogen-config
@@ -0,0 +1,42 @@
+This is the documentation of the file /etc/smgl-isogen.conf .
+This is meant to be a per-host configuration file to override the settings
+set by default in the perforce version. It is plain bash code.
+It is to be on the host system, the same tree as the perforce mirror is in,
+not the chroot.
+
+The following variables are common to be defined (defaults in []):
+
+ISO_BRANCH [devel]
+ An internal variable to specify the ISO branch (devel, test, rc, stable)
+ Used only in pattern decisions
+
+ARCH [i486-pc-linux-gnu]
+ A variable to specify what architecture the cache tarballs are built for
+ (specifying the name to look for)
+
+ISO_ARCH [x86]
+ A variable to change the internal behavior of the scripts, building an ISO
+ for a different architecture. Currently known are x86, ppc, and x86_64.
+ Currently supported is only x86, but we're working on it.
+
+SVERSION [stable]
+ This variable globally specifies what sorcery the chroot should be using as
+ well as what grimoire the ISO should install (those should not differ)
+
+GVERSION [test]
+ This variable specifies the grimoire version to use. Rest same as SVERSION.
+
+KVERSION [2.6]
+ This variable is meant as a switch for building kernels for different ISOs.
+ It does nothing yet, though.
+
+KERNEL_VERSION [2.6.12.5, changing rapidly]
+ Specifies what kernel version to use for the ISO and which one the ISO
should
+ install as well. We don't support any patches but maintenance patches.
+
+ISO_VERSION [devel-YYYYMMDDHH]
+ Version string for the ISO. Appears in various files and in the ISO name.
+
+IGNORE_FATAL [yes]
+ Specifies whether the ISO should try to continue on grave errors
+ (e.g. caches for spells that should be on the ISO not found)

=== added file 'doc/isogen/config-files'
--- /dev/null
+++ doc/isogen/config-files
@@ -0,0 +1,52 @@
+==============================initrd.dirs===============================
+This file specifies all directories that need to exist on the initrd.
+Note that directories implied in initrd.files are created automatically.
+
+Also note that the smgl-fhs directories are NOT automatically on the initrd.
+
+==============================initrd.files==============================
+The purpose of this file is to specify files that need to be copied
+from the parent system onto the initrd. Format is a plain newline-seperated
+list, no comments allowed.
+
+When specifying plain files, use a full path. However, when you specify
+a binary such as "bash" or "grep", just put the binary name.
+
+Lines with no leading '/' will trigger a mechanism to find the binary
+and install all libraries it links against.
+
+==============================initrd.kernel=============================
+In this file, specify directories (or even individual modules) of the
+kernel that need to be copied onto the initrd. all other modules stay off
+it.
+
+Paths are relative to /lib/modules/$KERNEL_VERSION/kernel .
+
+==============================initrd.patch==============================
+If this file exists, it will be passed into "patch" to patch files in the
+initrd.
+
+==============================initrd.command============================
+If this file exists, its contents will be run by bash just before the
+initrd is finally built into a file.
+
+=================================iso.dirs===============================
+The same as initrd.dirs
+
+=================================iso.packages===========================
+This file contains commands to flexibly install spells to the ISO.
+Commands are:
+add_default_include pattern
+add_default_exclude pattern
+unpack spell
+begin_unpack spell
+end_unpack spell
+iso_include pattern
+iso_exclude pattern
+For details, see <FIXME: insert link here>
+
+========================install-list/optional-list======================
+These are the lists of spells the installer should install in any case
+or install when the user chooses to, respectively.
+Their real location is $SKELETON/usr/share/smgl.install/
+

=== added file 'doc/known_issues'
--- /dev/null
+++ doc/known_issues
@@ -0,0 +1,28 @@
+ Problem | Reason | Solution
+=========================|==========================|==========================
+errors involving | |
+/dev/std{err,out} during | /proc not mounted | mount proc
+casts | |
+-------------------------|--------------------------|--------------------------
+Spell caches not found, | dependencies missing in | manually caster -c the
+but caster doesn't | list.all | spell
+update it automatically | (fixed in devel) |
+-------------------------|--------------------------|--------------------------
+Spells getting dispelled | spell not in | cast spell, (not
caster)
+by caster, but they are | p4/data/list.reqd | rm ../data/list.reqd
+needed (e.g. linux) | ( intelligent in devel) | ./listparse
+-------------------------|--------------------------|--------------------------
+Initrd fails with weird | |
+messages, nothing in | Mostly unknown | Regenerate ISO
+/dev | |
+-------------------------|--------------------------|--------------------------
+ | No free loop device | free up loop devices:
+ Initrd empty | during generation | losetup -d /dev/loop0
+ | | repeat for loop{1-8}
+-------------------------|--------------------------|--------------------------
+No linux sources on ISO | spool not mounted during | mount --bind
+ | generation | /var/spool/sorcery
again
+-------------------------|--------------------------|--------------------------
+Installed system doesn't | /etc/inittab is an alien | <chroot> rm
/etc/inittab
+boot, no /etc/inittab | | and ./caster -c init.d
+-------------------------|--------------------------|--------------------------

=== added directory 'iso'
=== added file 'iso/README'
--- /dev/null
+++ iso/README
@@ -0,0 +1,1 @@
+Everything ISO

=== added directory 'iso/data'
=== added file 'iso/data/README'
=== added file 'iso/data/config-2.4'
--- /dev/null
+++ iso/data/config-2.4
@@ -0,0 +1,1793 @@
+#
+# Automatically generated by make menuconfig: don't edit
+#
+CONFIG_X86=y
+# CONFIG_SBUS is not set
+CONFIG_UID16=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODVERSIONS=y
+CONFIG_KMOD=y
+
+#
+# Processor type and features
+#
+CONFIG_M386=y
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+# CONFIG_M686 is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MELAN is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP2 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_X86_CMPXCHG is not set
+# CONFIG_X86_XADD is not set
+CONFIG_X86_L1_CACHE_SHIFT=4
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
+CONFIG_X86_PPRO_FENCE=y
+# CONFIG_X86_F00F_WORKS_OK is not set
+CONFIG_X86_MCE=y
+CONFIG_TOSHIBA=m
+CONFIG_I8K=m
+CONFIG_MICROCODE=m
+CONFIG_X86_MSR=m
+CONFIG_X86_CPUID=m
+# CONFIG_EDD is not set
+CONFIG_NOHIGHMEM=y
+# CONFIG_HIGHMEM4G is not set
+# CONFIG_HIGHMEM64G is not set
+# CONFIG_HIGHMEM is not set
+CONFIG_MATH_EMULATION=y
+CONFIG_MTRR=y
+# CONFIG_SMP is not set
+# CONFIG_X86_UP_APIC is not set
+# CONFIG_X86_UP_IOAPIC is not set
+# CONFIG_X86_TSC_DISABLE is not set
+
+#
+# General setup
+#
+CONFIG_NET=y
+CONFIG_PCI=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GODIRECT is not set
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_DIRECT=y
+CONFIG_ISA=y
+CONFIG_PCI_NAMES=y
+CONFIG_EISA=y
+CONFIG_MCA=y
+CONFIG_HOTPLUG=y
+
+#
+# PCMCIA/CardBus support
+#
+# CONFIG_PCMCIA is not set
+
+#
+# PCI Hotplug Support
+#
+# CONFIG_HOTPLUG_PCI is not set
+# CONFIG_HOTPLUG_PCI_COMPAQ is not set
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+# CONFIG_HOTPLUG_PCI_ACPI is not set
+# CONFIG_HOTPLUG_PCI_SHPC is not set
+# CONFIG_HOTPLUG_PCI_SHPC_POLL_EVENT_MODE is not set
+# CONFIG_HOTPLUG_PCI_PCIE is not set
+# CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set
+CONFIG_SYSVIPC=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+CONFIG_BINFMT_AOUT=m
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_MISC=m
+# CONFIG_OOM_KILLER is not set
+CONFIG_PM=y
+CONFIG_APM=m
+# CONFIG_APM_IGNORE_USER_SUSPEND is not set
+CONFIG_APM_DO_ENABLE=y
+# CONFIG_APM_CPU_IDLE is not set
+CONFIG_APM_DISPLAY_BLANK=y
+CONFIG_APM_RTC_IS_GMT=y
+CONFIG_APM_ALLOW_INTS=y
+CONFIG_APM_REAL_MODE_POWER_OFF=y
+
+#
+# ACPI Support
+#
+CONFIG_ACPI=y
+CONFIG_ACPI_BOOT=y
+CONFIG_ACPI_BUS=y
+CONFIG_ACPI_INTERPRETER=y
+CONFIG_ACPI_EC=y
+CONFIG_ACPI_POWER=y
+CONFIG_ACPI_PCI=y
+CONFIG_ACPI_MMCONFIG=y
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_SYSTEM=y
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_THERMAL=m
+CONFIG_ACPI_ASUS=m
+CONFIG_ACPI_TOSHIBA=m
+# CONFIG_ACPI_DEBUG is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=m
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_PARTITIONS=m
+CONFIG_MTD_CONCAT=m
+CONFIG_MTD_REDBOOT_PARTS=m
+CONFIG_MTD_CMDLINE_PARTS=m
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_FTL=m
+CONFIG_NFTL=m
+# CONFIG_NFTL_RW 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_CFI_B1=y
+CONFIG_MTD_CFI_B2=y
+CONFIG_MTD_CFI_B4=y
+CONFIG_MTD_CFI_B8=y
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+CONFIG_MTD_CFI_I4=y
+CONFIG_MTD_CFI_I8=y
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_ROM=m
+CONFIG_MTD_ABSENT=m
+CONFIG_MTD_OBSOLETE_CHIPS=y
+CONFIG_MTD_AMDSTD=m
+CONFIG_MTD_SHARP=m
+CONFIG_MTD_JEDEC=m
+
+#
+# Mapping drivers for chip access
+#
+CONFIG_MTD_PHYSMAP=m
+CONFIG_MTD_PHYSMAP_START=8000000
+CONFIG_MTD_PHYSMAP_LEN=4000000
+CONFIG_MTD_PHYSMAP_BUSWIDTH=2
+CONFIG_MTD_PNC2000=m
+CONFIG_MTD_SC520CDP=m
+CONFIG_MTD_NETSC520=m
+CONFIG_MTD_SBC_GXX=m
+CONFIG_MTD_ELAN_104NC=m
+CONFIG_MTD_DILNETPC=m
+CONFIG_MTD_DILNETPC_BOOTSIZE=80000
+CONFIG_MTD_MIXMEM=m
+CONFIG_MTD_OCTAGON=m
+CONFIG_MTD_VMAX=m
+CONFIG_MTD_SCx200_DOCFLASH=m
+CONFIG_MTD_L440GX=m
+CONFIG_MTD_AMD76XROM=m
+CONFIG_MTD_ICH2ROM=m
+CONFIG_MTD_NETtel=m
+CONFIG_MTD_SCB2_FLASH=m
+CONFIG_MTD_PCI=m
+# CONFIG_MTD_PCMCIA is not set
+
+#
+# Self-contained MTD device drivers
+#
+CONFIG_MTD_PMC551=m
+CONFIG_MTD_PMC551_BUGFIX=y
+CONFIG_MTD_PMC551_DEBUG=y
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTD_BLKMTD=m
+CONFIG_MTD_DOC1000=m
+CONFIG_MTD_DOC2000=m
+CONFIG_MTD_DOC2001=m
+CONFIG_MTD_DOCPROBE=m
+CONFIG_MTD_DOCPROBE_ADVANCED=y
+CONFIG_MTD_DOCPROBE_ADDRESS=0
+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
+
+#
+# Parallel port support
+#
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_PC_CML1=m
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+# CONFIG_PARPORT_PC_PCMCIA is not set
+# CONFIG_PARPORT_AMIGA is not set
+# CONFIG_PARPORT_MFC3 is not set
+# CONFIG_PARPORT_ATARI is not set
+# CONFIG_PARPORT_GSC is not set
+# CONFIG_PARPORT_SUNBPP is not set
+# CONFIG_PARPORT_IP22 is not set
+CONFIG_PARPORT_OTHER=y
+CONFIG_PARPORT_1284=y
+
+#
+# Plug and Play configuration
+#
+CONFIG_PNP=y
+CONFIG_ISAPNP=y
+
+#
+# Block devices
+#
+CONFIG_BLK_DEV_FD=y
+CONFIG_BLK_DEV_PS2=m
+CONFIG_BLK_DEV_XD=m
+CONFIG_PARIDE=m
+CONFIG_PARIDE_PARPORT=m
+CONFIG_PARIDE_PD=m
+CONFIG_PARIDE_PCD=m
+CONFIG_PARIDE_PF=m
+CONFIG_PARIDE_PT=m
+CONFIG_PARIDE_PG=m
+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_CISS_MONITOR_THREAD=y
+CONFIG_BLK_DEV_DAC960=m
+CONFIG_BLK_DEV_UMEM=m
+CONFIG_BLK_DEV_SX8=m
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_BLK_STATS=y
+
+#
+# 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_RAID5=y
+CONFIG_MD_MULTIPATH=y
+CONFIG_BLK_DEV_LVM=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+# CONFIG_NETLINK_DEV is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_FILTER=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+# CONFIG_IP_ROUTE_FWMARK is not set
+CONFIG_IP_ROUTE_NAT=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_TOS=y
+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_INET_ECN=y
+CONFIG_SYN_COOKIES=y
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_AMANDA=m
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_IRC=m
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_LIMIT=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_UNCLEAN=m
+CONFIG_IP_NF_MATCH_OWNER=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_MIRROR=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_NAT_AMANDA=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_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_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+CONFIG_IP_NF_COMPAT_IPCHAINS=m
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_COMPAT_IPFWADM=m
+CONFIG_IP_NF_NAT_NEEDED=y
+
+#
+# IP: Virtual Server Configuration
+#
+CONFIG_IP_VS=m
+CONFIG_IP_VS_DEBUG=y
+CONFIG_IP_VS_TAB_BITS=12
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=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
+CONFIG_IP_VS_FTP=m
+CONFIG_IPV6=m
+
+#
+# IPv6: Netfilter Configuration
+#
+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_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_MARK=m
+CONFIG_KHTTPD=m
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+# CONFIG_SCTP_HMAC_SHA1 is not set
+CONFIG_SCTP_HMAC_MD5=y
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+# CONFIG_ATM_LANE is not set
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_VLAN_8021Q=m
+CONFIG_IPX=m
+CONFIG_IPX_INTERN=y
+CONFIG_ATALK=m
+
+#
+# Appletalk devices
+#
+CONFIG_DEV_APPLETALK=y
+CONFIG_LTPC=m
+CONFIG_COPS=m
+CONFIG_COPS_DAYNA=y
+CONFIG_COPS_TANGENT=y
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP_DECAP=y
+CONFIG_DECNET=m
+CONFIG_DECNET_SIOCGIFCONF=y
+CONFIG_DECNET_ROUTER=y
+# CONFIG_DECNET_ROUTE_FWMARK is not set
+CONFIG_BRIDGE=m
+CONFIG_X25=m
+CONFIG_LAPB=m
+CONFIG_LLC=y
+CONFIG_NET_DIVERT=y
+CONFIG_ECONET=m
+CONFIG_ECONET_AUNUDP=y
+CONFIG_ECONET_NATIVE=y
+CONFIG_WAN_ROUTER=m
+# CONFIG_NET_FASTROUTE is not set
+CONFIG_NET_HW_FLOWCONTROL=y
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+
+#
+# Telephony Support
+#
+CONFIG_PHONE=m
+CONFIG_PHONE_IXJ=m
+# CONFIG_PHONE_IXJ_PCMCIA is not set
+
+#
+# ATA/IDE/MFM/RLL support
+#
+CONFIG_IDE=y
+
+#
+# IDE, ATA and ATAPI Block devices
+#
+CONFIG_BLK_DEV_IDE=y
+# CONFIG_BLK_DEV_HD_IDE is not set
+# CONFIG_BLK_DEV_HD is not set
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=y
+CONFIG_IDEDISK_MULTI_MODE=y
+# CONFIG_IDEDISK_STROKE is not set
+# CONFIG_BLK_DEV_IDECS is not set
+# CONFIG_BLK_DEV_DELKIN is not set
+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
+CONFIG_BLK_DEV_CMD640=y
+CONFIG_BLK_DEV_CMD640_ENHANCED=y
+CONFIG_BLK_DEV_ISAPNP=y
+CONFIG_BLK_DEV_IDEPCI=y
+CONFIG_BLK_DEV_GENERIC=y
+CONFIG_IDEPCI_SHARE_IRQ=y
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+CONFIG_IDEDMA_ONLYDISK=y
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_PCI_WIP is not set
+CONFIG_BLK_DEV_ADMA100=y
+CONFIG_BLK_DEV_AEC62XX=y
+CONFIG_BLK_DEV_ALI15X3=y
+# CONFIG_WDC_ALI15X3 is not set
+CONFIG_BLK_DEV_AMD74XX=y
+# CONFIG_AMD74XX_OVERRIDE is not set
+CONFIG_BLK_DEV_ATIIXP=y
+CONFIG_BLK_DEV_CMD64X=y
+CONFIG_BLK_DEV_TRIFLEX=y
+CONFIG_BLK_DEV_CY82C693=y
+CONFIG_BLK_DEV_CS5530=y
+CONFIG_BLK_DEV_HPT34X=y
+# CONFIG_HPT34X_AUTODMA is not set
+CONFIG_BLK_DEV_HPT366=y
+CONFIG_BLK_DEV_PIIX=y
+CONFIG_BLK_DEV_NS87415=y
+CONFIG_BLK_DEV_OPTI621=y
+CONFIG_BLK_DEV_PDC202XX_OLD=y
+CONFIG_PDC202XX_BURST=y
+CONFIG_BLK_DEV_PDC202XX_NEW=y
+CONFIG_PDC202XX_FORCE=y
+CONFIG_BLK_DEV_RZ1000=y
+CONFIG_BLK_DEV_SC1200=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_CHIPSETS=y
+CONFIG_BLK_DEV_4DRIVES=y
+CONFIG_BLK_DEV_ALI14XX=y
+CONFIG_BLK_DEV_DTC2278=y
+CONFIG_BLK_DEV_HT6560B=y
+CONFIG_BLK_DEV_PDC4030=y
+CONFIG_BLK_DEV_QD65XX=y
+CONFIG_BLK_DEV_UMC8672=y
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_IDEDMA_IVB is not set
+# CONFIG_DMA_NONPCI is not set
+CONFIG_BLK_DEV_PDC202XX=y
+CONFIG_BLK_DEV_ATARAID=m
+CONFIG_BLK_DEV_ATARAID_PDC=m
+CONFIG_BLK_DEV_ATARAID_HPT=m
+CONFIG_BLK_DEV_ATARAID_MEDLEY=m
+CONFIG_BLK_DEV_ATARAID_SII=m
+
+#
+# SCSI support
+#
+CONFIG_SCSI=y
+CONFIG_BLK_DEV_SD=y
+CONFIG_SD_EXTRA_DEVS=40
+CONFIG_CHR_DEV_ST=y
+CONFIG_CHR_DEV_OSST=y
+CONFIG_BLK_DEV_SR=y
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_SR_EXTRA_DEVS=2
+CONFIG_CHR_DEV_SG=y
+CONFIG_SCSI_DEBUG_QUEUES=y
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI low-level drivers
+#
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_7000FASST=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AHA152X=m
+CONFIG_SCSI_AHA1542=m
+CONFIG_SCSI_AHA1740=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=253
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+# CONFIG_AIC7XXX_PROBE_EISA_VL is not set
+# CONFIG_AIC7XXX_BUILD_FIRMWARE 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_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_BUILD_FIRMWARE is not set
+# 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_AIC7XXX_OLD=m
+# CONFIG_AIC7XXX_OLD_TCQ_ON_BY_DEFAULT is not set
+CONFIG_AIC7XXX_OLD_CMDS_PER_DEVICE=8
+# CONFIG_AIC7XXX_OLD_PROC_STATS is not set
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_IN2000=m
+CONFIG_SCSI_AM53C974=m
+CONFIG_SCSI_MEGARAID=m
+CONFIG_SCSI_MEGARAID2=m
+CONFIG_SCSI_SATA=y
+# CONFIG_SCSI_SATA_AHCI is not set
+CONFIG_SCSI_SATA_SVW=m
+CONFIG_SCSI_ATA_PIIX=m
+CONFIG_SCSI_SATA_NV=m
+CONFIG_SCSI_SATA_PROMISE=m
+CONFIG_SCSI_SATA_SX4=m
+CONFIG_SCSI_SATA_SIL=m
+CONFIG_SCSI_SATA_SIS=m
+CONFIG_SCSI_SATA_ULI=m
+CONFIG_SCSI_SATA_VIA=m
+CONFIG_SCSI_SATA_VITESSE=m
+CONFIG_SCSI_BUSLOGIC=m
+# CONFIG_SCSI_OMIT_FLASHPOINT is not set
+CONFIG_SCSI_CPQFCTS=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_DTC3280=m
+CONFIG_SCSI_EATA=m
+# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
+# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_EATA_DMA=m
+CONFIG_SCSI_EATA_PIO=m
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_FD_MCS=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_GENERIC_NCR5380=m
+CONFIG_SCSI_GENERIC_NCR53C400=y
+CONFIG_SCSI_G_NCR5380_PORT=y
+# CONFIG_SCSI_G_NCR5380_MEM is not set
+CONFIG_SCSI_IBMMCA=m
+CONFIG_IBMMCA_SCSI_ORDER_STANDARD=y
+CONFIG_IBMMCA_SCSI_DEV_RESET=y
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_NCR53C406A=m
+CONFIG_SCSI_NCR_D700=m
+CONFIG_53C700_IO_MAPPED=y
+CONFIG_SCSI_NCR53C7xx=m
+# CONFIG_SCSI_NCR53C7xx_sync is not set
+# CONFIG_SCSI_NCR53C7xx_FAST is not set
+# CONFIG_SCSI_NCR53C7xx_DISCONNECT is not set
+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_IOMAPPED is not set
+CONFIG_SCSI_NCR53C8XX=m
+CONFIG_SCSI_SYM53C8XX=m
+CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=4
+CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
+CONFIG_SCSI_NCR53C8XX_SYNC=20
+# CONFIG_SCSI_NCR53C8XX_PROFILE is not set
+# CONFIG_SCSI_NCR53C8XX_IOMAPPED is not set
+# CONFIG_SCSI_NCR53C8XX_PQS_PDS is not set
+# CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT is not set
+CONFIG_SCSI_MCA_53C9X=m
+CONFIG_SCSI_PAS16=m
+CONFIG_SCSI_PCI2000=m
+CONFIG_SCSI_PCI2220I=m
+CONFIG_SCSI_PSI240I=m
+CONFIG_SCSI_QLOGIC_FAS=m
+CONFIG_SCSI_QLOGIC_ISP=m
+CONFIG_SCSI_QLOGIC_FC=m
+# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_SEAGATE=m
+CONFIG_SCSI_SIM710=m
+CONFIG_SCSI_SYM53C416=m
+CONFIG_SCSI_DC390T=m
+# CONFIG_SCSI_DC390T_NOGENSUPP is not set
+CONFIG_SCSI_T128=m
+CONFIG_SCSI_U14_34F=m
+# CONFIG_SCSI_U14_34F_LINKED_COMMANDS is not set
+CONFIG_SCSI_U14_34F_MAX_TAGS=8
+CONFIG_SCSI_ULTRASTOR=m
+CONFIG_SCSI_NSP32=m
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+# CONFIG_FUSION_BOOT is not set
+# CONFIG_FUSION_ISENSE is not set
+# CONFIG_FUSION_CTL is not set
+# CONFIG_FUSION_LAN is not set
+
+#
+# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+#
+CONFIG_IEEE1394=m
+CONFIG_IEEE1394_PCILYNX=m
+CONFIG_IEEE1394_OHCI1394=m
+CONFIG_IEEE1394_VIDEO1394=m
+CONFIG_IEEE1394_SBP2=m
+CONFIG_IEEE1394_SBP2_PHYS_DMA=y
+CONFIG_IEEE1394_ETH1394=m
+CONFIG_IEEE1394_DV1394=m
+CONFIG_IEEE1394_RAWIO=m
+CONFIG_IEEE1394_CMP=m
+CONFIG_IEEE1394_AMDTP=m
+CONFIG_IEEE1394_VERBOSEDEBUG=y
+CONFIG_IEEE1394_OUI_DB=y
+
+#
+# I2O device support
+#
+CONFIG_I2O=y
+CONFIG_I2O_PCI=y
+CONFIG_I2O_BLOCK=y
+CONFIG_I2O_LAN=y
+CONFIG_I2O_SCSI=y
+CONFIG_I2O_PROC=y
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+CONFIG_ARCNET=m
+CONFIG_ARCNET_1201=m
+CONFIG_ARCNET_1051=m
+CONFIG_ARCNET_RAW=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
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+CONFIG_ETHERTAP=m
+CONFIG_NET_SB1000=m
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+# CONFIG_SUNLANCE is not set
+CONFIG_HAPPYMEAL=m
+# CONFIG_SUNBMAC is not set
+# CONFIG_SUNQE is not set
+CONFIG_SUNGEM=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
+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_SKMC=m
+CONFIG_NE2_MCA=m
+CONFIG_IBMLANA=m
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_AC3200=m
+CONFIG_APRICOT=m
+CONFIG_B44=m
+CONFIG_CS89x0=m
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+CONFIG_TULIP_MMIO=y
+CONFIG_DE4X5=m
+CONFIG_DGRS=m
+CONFIG_DM9102=m
+CONFIG_EEPRO100=m
+# CONFIG_EEPRO100_PIO is not set
+CONFIG_E100=m
+CONFIG_LNE390=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_FORCEDETH=m
+CONFIG_NE3210=m
+CONFIG_ES3210=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+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 is not set
+CONFIG_WINBOND_840=m
+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 is not set
+# CONFIG_MYRI_SBUS is not set
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+CONFIG_SK98LIN=m
+CONFIG_TIGON3=m
+CONFIG_FDDI=y
+CONFIG_DEFXX=m
+CONFIG_SKFP=m
+CONFIG_HIPPI=y
+CONFIG_ROADRUNNER=m
+# CONFIG_ROADRUNNER_LARGE_RINGS 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
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+CONFIG_STRIP=m
+CONFIG_WAVELAN=m
+CONFIG_ARLAN=m
+CONFIG_AIRONET4500=m
+CONFIG_AIRONET4500_NONCS=m
+CONFIG_AIRONET4500_PNP=y
+CONFIG_AIRONET4500_PCI=y
+CONFIG_AIRONET4500_ISA=y
+CONFIG_AIRONET4500_I365=y
+CONFIG_AIRONET4500_PROC=m
+CONFIG_AIRO=m
+CONFIG_HERMES=m
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PRISM54=m
+CONFIG_NET_WIRELESS=y
+
+#
+# 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_TMSISA=m
+CONFIG_ABYSS=m
+CONFIG_MADGEMC=m
+CONFIG_SMCTR=m
+CONFIG_NET_FC=y
+CONFIG_IPHASE5526=m
+CONFIG_RCPCI=m
+CONFIG_SHAPER=m
+
+#
+# Wan interfaces
+#
+CONFIG_WAN=y
+CONFIG_HOSTESS_SV11=m
+CONFIG_COSA=m
+CONFIG_COMX=y
+CONFIG_COMX_HW_COMX=m
+CONFIG_COMX_HW_LOCOMX=m
+CONFIG_COMX_HW_MIXCOM=m
+CONFIG_COMX_HW_MUNICH=m
+CONFIG_COMX_PROTO_PPP=m
+CONFIG_COMX_PROTO_LAPB=m
+CONFIG_COMX_PROTO_FR=m
+CONFIG_DSCC4=m
+CONFIG_DSCC4_PCISYNC=y
+CONFIG_DSCC4_PCI_RST=y
+CONFIG_LANMEDIA=m
+CONFIG_ATI_XX20=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_PC300=m
+CONFIG_PC300_MLPPP=y
+CONFIG_FARSYNC=m
+CONFIG_N2=m
+CONFIG_C101=m
+CONFIG_DLCI=m
+CONFIG_DLCI_COUNT=24
+CONFIG_DLCI_MAX=8
+CONFIG_SDLA=m
+CONFIG_WAN_ROUTER_DRIVERS=y
+CONFIG_VENDOR_SANGOMA=m
+CONFIG_WANPIPE_CHDLC=y
+CONFIG_WANPIPE_FR=y
+CONFIG_WANPIPE_X25=y
+CONFIG_WANPIPE_PPP=y
+CONFIG_WANPIPE_MULTPPP=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_ZATM_EXACT_TS 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 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_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
+
+#
+# Amateur Radio support
+#
+# CONFIG_HAMRADIO is not set
+
+#
+# IrDA (infrared) support
+#
+CONFIG_IRDA=m
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_ULTRA=y
+# CONFIG_IRDA_CACHE_LAST_LSAP is not set
+# CONFIG_IRDA_FAST_RR is not set
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+CONFIG_IRTTY_SIR=m
+CONFIG_IRPORT_SIR=m
+CONFIG_DONGLE=y
+CONFIG_ESI_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_LITELINK_DONGLE=m
+CONFIG_MCP2120_DONGLE=m
+CONFIG_OLD_BELKIN_DONGLE=m
+CONFIG_ACT200L_DONGLE=m
+CONFIG_MA600_DONGLE=m
+CONFIG_USB_IRDA=m
+CONFIG_NSC_FIR=m
+CONFIG_WINBOND_FIR=m
+CONFIG_TOSHIBA_OLD=m
+CONFIG_TOSHIBA_FIR=m
+CONFIG_SMC_IRCC_FIR=m
+CONFIG_ALI_FIR=m
+CONFIG_VLSI_FIR=m
+CONFIG_VIA_IRCC_FIR=m
+
+#
+# ISDN subsystem
+#
+CONFIG_ISDN=m
+CONFIG_ISDN_BOOL=y
+CONFIG_ISDN_PPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=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
+
+#
+# Passive ISDN cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+CONFIG_ISDN_HISAX=y
+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
+CONFIG_HISAX_16_0=y
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_AVM_A1=y
+CONFIG_HISAX_IX1MICROR2=y
+CONFIG_HISAX_ASUSCOM=y
+CONFIG_HISAX_TELEINT=y
+CONFIG_HISAX_HFCS=y
+CONFIG_HISAX_SPORTSTER=y
+CONFIG_HISAX_MIC=y
+CONFIG_HISAX_ISURF=y
+CONFIG_HISAX_HSTSAPHIR=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=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=y
+# CONFIG_HISAX_SEDLBAUER_CS is not set
+# CONFIG_HISAX_ELSA_CS is not set
+# CONFIG_HISAX_AVM_A1_CS is not set
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+CONFIG_USB_AUERISDN=m
+
+#
+# Active ISDN cards
+#
+CONFIG_ISDN_DRV_ICN=m
+CONFIG_ISDN_DRV_PCBIT=m
+CONFIG_ISDN_DRV_SC=m
+CONFIG_ISDN_DRV_ACT2000=m
+CONFIG_ISDN_DRV_EICON=y
+CONFIG_ISDN_DRV_EICON_DIVAS=m
+CONFIG_ISDN_DRV_EICON_OLD=m
+CONFIG_ISDN_DRV_EICON_PCI=y
+CONFIG_ISDN_DRV_EICON_ISA=y
+CONFIG_ISDN_DRV_TPAM=m
+CONFIG_ISDN_CAPI=m
+# CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON is not set
+# CONFIG_ISDN_CAPI_MIDDLEWARE is not set
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+CONFIG_ISDN_DRV_AVMB1_B1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_T1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+# CONFIG_ISDN_DRV_AVMB1_AVM_CS is not set
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+
+#
+# Old CD-ROM drivers (not SCSI, not IDE)
+#
+CONFIG_CD_NO_IDESCSI=y
+CONFIG_AZTCD=m
+CONFIG_GSCD=m
+CONFIG_SBPCD=m
+CONFIG_MCD=m
+CONFIG_MCD_IRQ=11
+CONFIG_MCD_BASE=300
+CONFIG_MCDX=m
+CONFIG_OPTCD=m
+CONFIG_CM206=m
+CONFIG_SJCD=m
+CONFIG_ISP16_CDI=m
+CONFIG_CDU31A=m
+CONFIG_CDU535=m
+
+#
+# Input core support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_KEYBDEV=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=y
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_UINPUT=y
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_SERIAL=m
+# CONFIG_SERIAL_EXTENDED is not set
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_COMPUTONE is not set
+# CONFIG_ROCKETPORT is not set
+# CONFIG_CYCLADES is not set
+# CONFIG_DIGIEPCA is not set
+# CONFIG_DIGI is not set
+# CONFIG_ESPSERIAL is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_ISI is not set
+# CONFIG_SYNCLINK is not set
+# CONFIG_SYNCLINKMP is not set
+CONFIG_N_HDLC=m
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_SX is not set
+# CONFIG_RIO is not set
+# CONFIG_STALDRV is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX98_PTY_COUNT=256
+CONFIG_PRINTER=m
+CONFIG_LP_CONSOLE=y
+CONFIG_PPDEV=m
+CONFIG_TIPAR=m
+
+#
+# I2C support
+#
+CONFIG_I2C=m
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_PHILIPSPAR=m
+CONFIG_I2C_ELV=m
+CONFIG_I2C_VELLEMAN=m
+# CONFIG_SCx200_I2C is not set
+CONFIG_SCx200_ACB=m
+CONFIG_I2C_ALGOPCF=m
+CONFIG_I2C_ELEKTOR=m
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_PROC=m
+
+#
+# Mice
+#
+CONFIG_BUSMOUSE=m
+CONFIG_ATIXL_BUSMOUSE=m
+CONFIG_LOGIBUSMOUSE=m
+CONFIG_MS_BUSMOUSE=m
+CONFIG_MOUSE=y
+CONFIG_PSMOUSE=y
+CONFIG_82C710_MOUSE=m
+CONFIG_PC110_PAD=m
+CONFIG_MK712_MOUSE=m
+
+#
+# Joysticks
+#
+CONFIG_INPUT_GAMEPORT=m
+CONFIG_INPUT_NS558=m
+CONFIG_INPUT_LIGHTNING=m
+CONFIG_INPUT_PCIGAME=m
+CONFIG_INPUT_CS461X=m
+CONFIG_INPUT_EMU10K1=m
+CONFIG_INPUT_SERIO=m
+CONFIG_INPUT_SERPORT=m
+CONFIG_INPUT_ANALOG=m
+CONFIG_INPUT_A3D=m
+CONFIG_INPUT_ADI=m
+CONFIG_INPUT_COBRA=m
+CONFIG_INPUT_GF2K=m
+CONFIG_INPUT_GRIP=m
+CONFIG_INPUT_INTERACT=m
+CONFIG_INPUT_TMDC=m
+CONFIG_INPUT_SIDEWINDER=m
+CONFIG_INPUT_IFORCE_USB=m
+CONFIG_INPUT_IFORCE_232=m
+CONFIG_INPUT_WARRIOR=m
+CONFIG_INPUT_MAGELLAN=m
+CONFIG_INPUT_SPACEORB=m
+CONFIG_INPUT_SPACEBALL=m
+CONFIG_INPUT_STINGER=m
+CONFIG_INPUT_DB9=m
+CONFIG_INPUT_GAMECON=m
+CONFIG_INPUT_TURBOGRAFX=m
+# CONFIG_QIC02_TAPE is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_IPMI_PANIC_EVENT is not set
+# CONFIG_IPMI_DEVICE_INTERFACE is not set
+# CONFIG_IPMI_KCS is not set
+# CONFIG_IPMI_WATCHDOG is not set
+
+#
+# Watchdog Cards
+#
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_SC520_WDT=m
+CONFIG_PCWATCHDOG=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_IB700_WDT=m
+CONFIG_WAFER_WDT=m
+CONFIG_I810_TCO=m
+CONFIG_MIXCOMWD=m
+CONFIG_60XX_WDT=m
+CONFIG_SC1200_WDT=m
+CONFIG_SCx200_WDT=m
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_W83877F_WDT=m
+CONFIG_WDT=m
+CONFIG_WDTPCI=m
+CONFIG_WDT_501=y
+CONFIG_WDT_501_FAN=y
+CONFIG_MACHZ_WDT=m
+CONFIG_SCx200=m
+CONFIG_SCx200_GPIO=m
+CONFIG_AMD_RNG=m
+CONFIG_INTEL_RNG=m
+CONFIG_HW_RANDOM=m
+CONFIG_AMD_PM768=m
+CONFIG_NVRAM=m
+CONFIG_RTC=m
+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
+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
+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_INTEL=y
+CONFIG_AGP_I810=y
+CONFIG_AGP_VIA=y
+CONFIG_AGP_AMD=y
+CONFIG_AGP_AMD_K8=y
+CONFIG_AGP_SIS=y
+CONFIG_AGP_ALI=y
+CONFIG_AGP_SWORKS=y
+CONFIG_AGP_NVIDIA=y
+CONFIG_AGP_ATI=y
+
+#
+# Direct Rendering Manager (XFree86 DRI support)
+#
+CONFIG_DRM=y
+# CONFIG_DRM_OLD is not set
+CONFIG_DRM_NEW=y
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_GAMMA=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_I810=m
+CONFIG_DRM_I810_XFREE_41=y
+CONFIG_DRM_I830=m
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+CONFIG_MWAVE=m
+CONFIG_OBMOUSE=m
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# File systems
+#
+# CONFIG_QUOTA is not set
+# CONFIG_QFMT_V2 is not set
+# CONFIG_AUTOFS_FS is not set
+CONFIG_AUTOFS4_FS=m
+CONFIG_REISERFS_FS=y
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+# CONFIG_ADFS_FS is not set
+# CONFIG_ADFS_FS_RW is not set
+# CONFIG_AFFS_FS is not set
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+CONFIG_EXT3_FS=y
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_UMSDOS_FS=m
+CONFIG_VFAT_FS=m
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+CONFIG_CRAMFS=m
+CONFIG_TMPFS=y
+CONFIG_RAMFS=y
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_JFS_FS=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_STATISTICS=y
+CONFIG_MINIX_FS=m
+# CONFIG_VXFS_FS is not set
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_RW is not set
+# CONFIG_HPFS_FS is not set
+CONFIG_PROC_FS=y
+CONFIG_DEVFS_FS=y
+CONFIG_DEVFS_MOUNT=y
+# CONFIG_DEVFS_DEBUG is not set
+CONFIG_DEVPTS_FS=y
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX4FS_RW is not set
+CONFIG_ROMFS_FS=m
+CONFIG_EXT2_FS=y
+CONFIG_SYSV_FS=m
+CONFIG_UDF_FS=m
+# CONFIG_UDF_RW is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_UFS_FS_WRITE is not set
+CONFIG_XFS_FS=y
+CONFIG_XFS_QUOTA=y
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_TRACE is not set
+# CONFIG_XFS_DEBUG is not set
+
+#
+# Network File Systems
+#
+CONFIG_CODA_FS=m
+CONFIG_INTERMEZZO_FS=m
+CONFIG_NFS_FS=m
+CONFIG_NFS_V3=y
+# CONFIG_NFS_DIRECTIO is not set
+# CONFIG_ROOT_NFS is not set
+CONFIG_NFSD=m
+CONFIG_NFSD_V3=y
+# CONFIG_NFSD_TCP is not set
+CONFIG_SUNRPC=m
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_SMB_FS=m
+CONFIG_SMB_NLS_DEFAULT=y
+CONFIG_SMB_NLS_REMOTE="cp437"
+CONFIG_SMB_UNIX=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_ZISOFS_FS=y
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_SMB_NLS=y
+CONFIG_NLS=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=y
+CONFIG_NLS_CODEPAGE_775=y
+CONFIG_NLS_CODEPAGE_850=y
+CONFIG_NLS_CODEPAGE_852=y
+CONFIG_NLS_CODEPAGE_855=y
+CONFIG_NLS_CODEPAGE_857=y
+CONFIG_NLS_CODEPAGE_860=y
+CONFIG_NLS_CODEPAGE_861=y
+CONFIG_NLS_CODEPAGE_862=y
+CONFIG_NLS_CODEPAGE_863=y
+CONFIG_NLS_CODEPAGE_864=y
+CONFIG_NLS_CODEPAGE_865=y
+CONFIG_NLS_CODEPAGE_866=y
+CONFIG_NLS_CODEPAGE_869=y
+CONFIG_NLS_CODEPAGE_936=y
+CONFIG_NLS_CODEPAGE_950=y
+CONFIG_NLS_CODEPAGE_932=y
+CONFIG_NLS_CODEPAGE_949=y
+CONFIG_NLS_CODEPAGE_874=y
+CONFIG_NLS_ISO8859_8=y
+CONFIG_NLS_CODEPAGE_1250=y
+CONFIG_NLS_CODEPAGE_1251=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=y
+CONFIG_NLS_ISO8859_3=y
+CONFIG_NLS_ISO8859_4=y
+CONFIG_NLS_ISO8859_5=y
+CONFIG_NLS_ISO8859_6=y
+CONFIG_NLS_ISO8859_7=y
+CONFIG_NLS_ISO8859_9=y
+CONFIG_NLS_ISO8859_13=y
+CONFIG_NLS_ISO8859_14=y
+CONFIG_NLS_ISO8859_15=y
+CONFIG_NLS_KOI8_R=y
+CONFIG_NLS_KOI8_U=y
+CONFIG_NLS_UTF8=y
+
+#
+# Console drivers
+#
+CONFIG_VGA_CONSOLE=y
+CONFIG_VIDEO_SELECT=y
+# CONFIG_MDA_CONSOLE is not set
+
+#
+# Frame-buffer support
+#
+# CONFIG_FB is not set
+
+#
+# Sound
+#
+CONFIG_SOUND=m
+CONFIG_SOUND_ALI5455=m
+CONFIG_SOUND_ALI5455_CODECSPDIFOUT_PCMOUTSHARE=y
+CONFIG_SOUND_ALI5455_CODECSPDIFOUT_CODECINDEPENDENTDMA=y
+CONFIG_SOUND_ALI5455_CONTROLLERSPDIFOUT_PCMOUTSHARE=y
+CONFIG_SOUND_ALI5455_CONTROLLERSPDIFOUT_CONTROLLERINDEPENDENTDMA=y
+CONFIG_SOUND_BT878=m
+CONFIG_SOUND_CMPCI=m
+CONFIG_SOUND_CMPCI_FM=y
+CONFIG_SOUND_CMPCI_FMIO=388
+CONFIG_SOUND_CMPCI_FMIO=388
+CONFIG_SOUND_CMPCI_MIDI=y
+CONFIG_SOUND_CMPCI_MPUIO=330
+CONFIG_SOUND_CMPCI_JOYSTICK=y
+CONFIG_SOUND_CMPCI_CM8738=y
+CONFIG_SOUND_CMPCI_SPDIFINVERSE=y
+CONFIG_SOUND_CMPCI_SPDIFLOOP=y
+CONFIG_SOUND_CMPCI_SPEAKERS=2
+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_FORTE=m
+CONFIG_SOUND_ICH=m
+CONFIG_SOUND_RME96XX=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_PAS_JOYSTICK is not set
+CONFIG_SOUND_PSS=m
+CONFIG_PSS_MIXER=y
+# CONFIG_PSS_HAVE_BOOT is not set
+CONFIG_SOUND_SB=m
+CONFIG_SOUND_AWE32_SYNTH=m
+CONFIG_SOUND_KAHLUA=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=0
+CONFIG_AEDSP16_SBPRO=y
+CONFIG_AEDSP16_MPU401=y
+CONFIG_SOUND_TVMIXER=m
+CONFIG_SOUND_AD1980=m
+CONFIG_SOUND_WM97XX=m
+
+#
+# USB support
+#
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_BANDWIDTH is not set
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_UHCI=y
+# CONFIG_USB_UHCI_ALT is not set
+CONFIG_USB_OHCI=y
+CONFIG_USB_SL811HS_ALT=y
+CONFIG_USB_SL811HS=y
+CONFIG_USB_AUDIO=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_MIDI=m
+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_HP8200e=y
+CONFIG_USB_STORAGE_SDDR09=y
+CONFIG_USB_STORAGE_SDDR55=y
+CONFIG_USB_STORAGE_JUMPSHOT=y
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_HID=y
+CONFIG_USB_HIDINPUT=y
+CONFIG_USB_HIDDEV=y
+CONFIG_USB_AIPTEK=m
+CONFIG_USB_WACOM=m
+CONFIG_USB_KBTAB=m
+CONFIG_USB_POWERMATE=m
+CONFIG_USB_DC2XX=m
+CONFIG_USB_MDC800=m
+CONFIG_USB_SCANNER=m
+CONFIG_USB_MICROTEK=m
+CONFIG_USB_HPUSBSCSI=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_CATC=m
+CONFIG_USB_CDCETHER=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_USS720=m
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+CONFIG_USB_RIO500=m
+CONFIG_USB_AUERSWALD=m
+CONFIG_USB_TIGL=m
+CONFIG_USB_BRLVGER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_SPEEDTOUCH=m
+
+#
+# Support for USB gadgets
+#
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_NET2280=y
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_CONTROLLER is not set
+CONFIG_USB_NET2280=y
+CONFIG_USB_GADGET_CONTROLLER=y
+CONFIG_USB_GADGET_DUALSPEED=y
+CONFIG_USB_ZERO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+CONFIG_USB_FILE_STORAGE=m
+CONFIG_USB_FILE_STORAGE_TEST=y
+
+#
+# Bluetooth support
+#
+CONFIG_BLUEZ=m
+CONFIG_BLUEZ_L2CAP=m
+CONFIG_BLUEZ_SCO=m
+CONFIG_BLUEZ_RFCOMM=m
+CONFIG_BLUEZ_RFCOMM_TTY=y
+CONFIG_BLUEZ_BNEP=m
+CONFIG_BLUEZ_BNEP_MC_FILTER=y
+CONFIG_BLUEZ_BNEP_PROTO_FILTER=y
+CONFIG_BLUEZ_CMTP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BLUEZ_HCIUSB=m
+CONFIG_BLUEZ_HCIUSB_SCO=y
+CONFIG_BLUEZ_HCIUART=m
+CONFIG_BLUEZ_HCIUART_H4=y
+CONFIG_BLUEZ_HCIUART_BCSP=y
+CONFIG_BLUEZ_HCIUART_BCSP_TXCRC=y
+CONFIG_BLUEZ_HCIBFUSB=m
+# CONFIG_BLUEZ_HCIDTL1 is not set
+# CONFIG_BLUEZ_HCIBT3C is not set
+# CONFIG_BLUEZ_HCIBLUECARD is not set
+# CONFIG_BLUEZ_HCIBTUART is not set
+CONFIG_BLUEZ_HCIVHCI=m
+
+#
+# Kernel hacking
+#
+# CONFIG_DEBUG_KERNEL is not set
+CONFIG_LOG_BUF_SHIFT=0
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Library routines
+#
+CONFIG_CRC32=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_FW_LOADER=y

=== added file 'iso/data/config-2.6'
--- /dev/null
+++ iso/data/config-2.6
@@ -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

=== added file 'iso/data/config-2.6.ppc'
--- /dev/null
+++ iso/data/config-2.6.ppc
@@ -0,0 +1,2274 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.12
+# Thu Dec 8 03:50:17 2005
+#
+CONFIG_MMU=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_HAVE_DEC_LOCK=y
+CONFIG_PPC=y
+CONFIG_PPC32=y
+CONFIG_GENERIC_NVRAM=y
+CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=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_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+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_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=y
+CONFIG_OBSOLETE_MODPARM=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# Processor
+#
+CONFIG_6xx=y
+# CONFIG_40x is not set
+# CONFIG_44x is not set
+# CONFIG_POWER3 is not set
+# CONFIG_POWER4 is not set
+# CONFIG_8xx is not set
+# CONFIG_E500 is not set
+CONFIG_PPC_FPU=y
+CONFIG_ALTIVEC=y
+CONFIG_TAU=y
+# CONFIG_TAU_INT is not set
+# CONFIG_TAU_AVERAGE is not set
+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 is not set
+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 is not set
+CONFIG_CPU_FREQ_PMAC=y
+CONFIG_PPC601_SYNC_FIX=y
+CONFIG_PM=y
+CONFIG_PPC_STD_MMU=y
+
+#
+# Platform options
+#
+CONFIG_PPC_MULTIPLATFORM=y
+# CONFIG_APUS is not set
+# CONFIG_KATANA is not set
+# CONFIG_WILLOW is not set
+# CONFIG_CPCI690 is not set
+# CONFIG_PCORE is not set
+# CONFIG_POWERPMC250 is not set
+# CONFIG_CHESTNUT is not set
+# CONFIG_SPRUCE is not set
+# CONFIG_HDPU is not set
+# CONFIG_EV64260 is not set
+# CONFIG_LOPEC is not set
+# CONFIG_MCPN765 is not set
+# CONFIG_MVME5100 is not set
+# CONFIG_PPLUS is not set
+# CONFIG_PRPMC750 is not set
+# CONFIG_PRPMC800 is not set
+# CONFIG_SANDPOINT is not set
+# CONFIG_RADSTONE_PPC7D is not set
+# CONFIG_ADIR is not set
+# CONFIG_K2 is not set
+# CONFIG_PAL4 is not set
+# CONFIG_GEMINI is not set
+# CONFIG_EST8260 is not set
+# CONFIG_SBC82xx is not set
+# CONFIG_SBS8260 is not set
+# CONFIG_RPX8260 is not set
+# CONFIG_TQM8260 is not set
+# CONFIG_ADS8272 is not set
+# CONFIG_PQ2FADS is not set
+# CONFIG_LITE5200 is not set
+# CONFIG_MPC834x_SYS is not set
+CONFIG_PPC_CHRP=y
+CONFIG_PPC_PMAC=y
+CONFIG_PPC_PREP=y
+CONFIG_PPC_OF=y
+CONFIG_PPCBUG_NVRAM=y
+# CONFIG_SMP is not set
+# CONFIG_PREEMPT is not set
+CONFIG_HIGHMEM=y
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_MISC=m
+CONFIG_PROC_DEVICETREE=y
+CONFIG_PREP_RESIDUAL=y
+CONFIG_PROC_PREPRESIDUAL=y
+# CONFIG_CMDLINE_BOOL is not set
+# CONFIG_PM_DEBUG is not set
+# CONFIG_SOFTWARE_SUSPEND is not set
+CONFIG_ISA_DMA_API=y
+
+#
+# Bus options
+#
+# CONFIG_ISA is not set
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_LEGACY_PROC=y
+CONFIG_PCI_NAMES=y
+# CONFIG_PCI_DEBUG is not set
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+CONFIG_PCCARD=m
+# CONFIG_PCMCIA_DEBUG is not set
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_TCIC=m
+CONFIG_PCCARD_NONSTATIC=m
+
+#
+# Advanced setup
+#
+# CONFIG_ADVANCED_OPTIONS is not set
+
+#
+# Default settings for advanced configuration options are used
+#
+CONFIG_HIGHMEM_START=0xfe000000
+CONFIG_LOWMEM_SIZE=0x30000000
+CONFIG_KERNEL_START=0xc0000000
+CONFIG_TASK_SIZE=0x80000000
+CONFIG_BOOT_LOAD=0x00800000
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_DEBUG_DRIVER is not set
+
+#
+# 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 is not set
+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 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_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
+# CONFIG_MTD_XIP is not set
+
+#
+# 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_PCI=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=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTD_BLKMTD=m
+CONFIG_MTD_BLOCK2MTD=m
+
+#
+# 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 is not set
+CONFIG_MTD_DOCPROBE_ADDRESS=0
+
+#
+# NAND Flash Device Drivers
+#
+CONFIG_MTD_NAND=m
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+CONFIG_MTD_NAND_IDS=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
+
+#
+# Parallel port support
+#
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+# CONFIG_PARPORT_SERIAL is not set
+# CONFIG_PARPORT_PC_FIFO is not set
+# CONFIG_PARPORT_PC_SUPERIO is not set
+# CONFIG_PARPORT_PC_PCMCIA is not set
+CONFIG_PARPORT_NOT_PC=y
+# CONFIG_PARPORT_GSC is not set
+# CONFIG_PARPORT_1284 is not set
+
+#
+# Plug and Play support
+#
+
+#
+# Block devices
+#
+CONFIG_BLK_DEV_FD=m
+CONFIG_MAC_FLOPPY=m
+# CONFIG_PARIDE is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# 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 is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+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 is not set
+
+#
+# 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_IDEDISK=y
+CONFIG_IDEDISK_MULTI_MODE=y
+# CONFIG_BLK_DEV_IDECS is not set
+CONFIG_BLK_DEV_IDECD=y
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_BLK_DEV_IDEFLOPPY is not set
+CONFIG_BLK_DEV_IDESCSI=m
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=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 is not set
+CONFIG_BLK_DEV_SL82C105=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 is not set
+CONFIG_BLK_DEV_CMD64X=y
+CONFIG_BLK_DEV_TRIFLEX=y
+CONFIG_BLK_DEV_CY82C693=y
+# CONFIG_BLK_DEV_CS5520 is not set
+CONFIG_BLK_DEV_CS5530=y
+CONFIG_BLK_DEV_HPT34X=y
+# CONFIG_HPT34X_AUTODMA is not set
+CONFIG_BLK_DEV_HPT366=y
+CONFIG_BLK_DEV_SC1200=y
+CONFIG_BLK_DEV_PIIX=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_SLC90E66=y
+CONFIG_BLK_DEV_TRM290=y
+CONFIG_BLK_DEV_VIA82CXXX=y
+CONFIG_BLK_DEV_IDE_PMAC=y
+CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
+CONFIG_BLK_DEV_IDEDMA_PMAC=y
+CONFIG_BLK_DEV_IDE_PMAC_BLINK=y
+# CONFIG_IDE_ARM is not set
+CONFIG_BLK_DEV_IDEDMA=y
+# CONFIG_IDEDMA_IVB is not set
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI device support
+#
+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
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+CONFIG_SCSI_MULTI_LUN=y
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+
+#
+# SCSI Transport Attributes
+#
+CONFIG_SCSI_SPI_ATTRS=y
+CONFIG_SCSI_FC_ATTRS=y
+CONFIG_SCSI_ISCSI_ATTRS=y
+
+#
+# SCSI low-level drivers
+#
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+CONFIG_AIC7XXX_DEBUG_ENABLE=y
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC7XXX_OLD=m
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_ENABLE_RD_STRM is not set
+CONFIG_AIC79XX_DEBUG_ENABLE=y
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_SCSI_SATA=y
+CONFIG_SCSI_SATA_AHCI=m
+CONFIG_SCSI_SATA_SVW=m
+CONFIG_SCSI_ATA_PIIX=m
+CONFIG_SCSI_SATA_NV=m
+CONFIG_SCSI_SATA_PROMISE=m
+CONFIG_SCSI_SATA_QSTOR=m
+CONFIG_SCSI_SATA_SX4=m
+CONFIG_SCSI_SATA_SIL=m
+CONFIG_SCSI_SATA_SIS=m
+CONFIG_SCSI_SATA_ULI=m
+CONFIG_SCSI_SATA_VIA=m
+CONFIG_SCSI_SATA_VITESSE=m
+CONFIG_SCSI_BUSLOGIC=m
+# CONFIG_SCSI_OMIT_FLASHPOINT is not set
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_EATA=m
+# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
+# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=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 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+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_IOMAPPED is not set
+CONFIG_SCSI_IPR=m
+# CONFIG_SCSI_IPR_TRACE is not set
+# CONFIG_SCSI_IPR_DUMP is not set
+CONFIG_SCSI_QLOGIC_FC=m
+# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLOGIC_1280_1040=y
+CONFIG_SCSI_QLA2XXX=y
+CONFIG_SCSI_QLA21XX=m
+CONFIG_SCSI_QLA22XX=m
+CONFIG_SCSI_QLA2300=m
+CONFIG_SCSI_QLA2322=m
+CONFIG_SCSI_QLA6312=m
+CONFIG_SCSI_LPFC=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DC390T=m
+CONFIG_SCSI_NSP32=m
+CONFIG_SCSI_DEBUG=m
+CONFIG_SCSI_MESH=m
+CONFIG_SCSI_MESH_SYNC_RATE=5
+CONFIG_SCSI_MESH_RESET_DELAY_MS=4000
+CONFIG_SCSI_MAC53C94=m
+
+#
+# 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
+
+#
+# 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=m
+CONFIG_MD_RAID5=y
+CONFIG_MD_RAID6=m
+CONFIG_MD_MULTIPATH=y
+CONFIG_MD_FAULTY=y
+CONFIG_BLK_DEV_DM=y
+CONFIG_DM_CRYPT=y
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_ZERO=m
+# CONFIG_DM_MULTIPATH is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+CONFIG_IEEE1394=m
+
+#
+# Subsystem Options
+#
+# CONFIG_IEEE1394_VERBOSEDEBUG is not set
+# CONFIG_IEEE1394_OUI_DB is not set
+CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y
+CONFIG_IEEE1394_CONFIG_ROM_IP1394=y
+
+#
+# Device Drivers
+#
+CONFIG_IEEE1394_PCILYNX=m
+CONFIG_IEEE1394_OHCI1394=m
+
+#
+# Protocol Drivers
+#
+CONFIG_IEEE1394_VIDEO1394=m
+CONFIG_IEEE1394_SBP2=m
+# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
+CONFIG_IEEE1394_ETH1394=m
+CONFIG_IEEE1394_DV1394=m
+CONFIG_IEEE1394_RAWIO=m
+CONFIG_IEEE1394_CMP=m
+CONFIG_IEEE1394_AMDTP=m
+
+#
+# I2O device support
+#
+# CONFIG_I2O is not set
+
+#
+# Macintosh device drivers
+#
+CONFIG_ADB=y
+CONFIG_ADB_CUDA=y
+CONFIG_ADB_PMU=y
+# CONFIG_PMAC_PBOOK is not set
+CONFIG_PMAC_BACKLIGHT=y
+CONFIG_ADB_MACIO=y
+CONFIG_INPUT_ADBHID=y
+CONFIG_MAC_EMUMOUSEBTN=y
+CONFIG_THERM_WINDTUNNEL=m
+CONFIG_THERM_ADT746X=m
+CONFIG_ANSLCD=m
+
+#
+# Networking support
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=m
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+CONFIG_NET_KEY=m
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=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 is not set
+CONFIG_IP_MROUTE=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_TUNNEL=m
+CONFIG_IP_TCPDIAG=m
+CONFIG_IP_TCPDIAG_IPV6=y
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+# CONFIG_IPV6_PRIVACY is not set
+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 is not set
+CONFIG_BRIDGE_NETFILTER=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_CT_PROTO_SCTP=m
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_IRC=m
+CONFIG_IP_NF_TFTP=m
+CONFIG_IP_NF_AMANDA=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 is not set
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_REALM=m
+CONFIG_IP_NF_MATCH_SCTP=m
+CONFIG_IP_NF_MATCH_COMMENT=m
+CONFIG_IP_NF_MATCH_HASHLIMIT=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_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_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_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 is not set
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_MARK=m
+CONFIG_IP6_NF_RAW=m
+
+#
+# DECnet: Netfilter Configuration
+#
+# CONFIG_DECNET_NF_GRABULATOR is not set
+
+#
+# Bridge: Netfilter Configuration
+#
+# CONFIG_BRIDGE_NF_EBTABLES is not set
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+# CONFIG_SCTP_HMAC_SHA1 is not set
+CONFIG_SCTP_HMAC_MD5=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_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 is not set
+CONFIG_ATALK=m
+# CONFIG_DEV_APPLETALK is not set
+CONFIG_X25=m
+CONFIG_LAPB=m
+# CONFIG_NET_DIVERT is not set
+CONFIG_ECONET=m
+# CONFIG_ECONET_AUNUDP is not set
+# CONFIG_ECONET_NATIVE is not set
+CONFIG_WAN_ROUTER=m
+
+#
+# QoS and/or fair queueing
+#
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CLK_JIFFIES=y
+# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
+# CONFIG_NET_SCH_CLK_CPU is not set
+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_RED=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_INGRESS=m
+# CONFIG_NET_QOS is not set
+# CONFIG_NET_CLS is not set
+CONFIG_NET_CLS_ROUTE=y
+
+#
+# Network testing
+#
+CONFIG_NET_PKTGEN=m
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_RX is not set
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+# CONFIG_HAMRADIO is not set
+CONFIG_IRDA=m
+
+#
+# IrDA protocols
+#
+# CONFIG_IRLAN is not set
+# CONFIG_IRNET is not set
+# CONFIG_IRCOMM is not set
+# CONFIG_IRDA_ULTRA is not set
+
+#
+# IrDA options
+#
+# CONFIG_IRDA_CACHE_LAST_LSAP is not set
+# CONFIG_IRDA_FAST_RR is not set
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+# CONFIG_IRTTY_SIR is not set
+
+#
+# Dongle support
+#
+
+#
+# Old SIR device drivers
+#
+# CONFIG_IRPORT_SIR is not set
+
+#
+# Old Serial dongle support
+#
+
+#
+# FIR device drivers
+#
+# CONFIG_USB_IRDA is not set
+# CONFIG_SIGMATEL_FIR is not set
+# CONFIG_NSC_FIR is not set
+# CONFIG_WINBOND_FIR is not set
+# CONFIG_TOSHIBA_FIR is not set
+# CONFIG_SMC_IRCC_FIR is not set
+# CONFIG_ALI_FIR is not set
+# CONFIG_VLSI_FIR is not set
+# CONFIG_VIA_FIR is not set
+CONFIG_BT=m
+# CONFIG_BT_L2CAP is not set
+# CONFIG_BT_SCO is not set
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_BT_HCIUSB is not set
+# CONFIG_BT_HCIUART is not set
+# CONFIG_BT_HCIBCM203X is not set
+# CONFIG_BT_HCIBPA10X is not set
+# CONFIG_BT_HCIBFUSB is not set
+# CONFIG_BT_HCIDTL1 is not set
+# CONFIG_BT_HCIBT3C is not set
+# CONFIG_BT_HCIBLUECARD is not set
+# CONFIG_BT_HCIBTUART is not set
+# CONFIG_BT_HCIVHCI is not set
+CONFIG_NETDEVICES=y
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+
+#
+# ARCnet devices
+#
+CONFIG_ARCNET=m
+CONFIG_ARCNET_1201=m
+CONFIG_ARCNET_1051=m
+CONFIG_ARCNET_RAW=m
+CONFIG_ARCNET_CAP=m
+# CONFIG_ARCNET_COM90xx is not set
+CONFIG_ARCNET_COM90xxIO=m
+# CONFIG_ARCNET_RIM_I is not set
+CONFIG_ARCNET_COM20020=m
+CONFIG_ARCNET_COM20020_PCI=m
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=m
+CONFIG_MACE=m
+# CONFIG_MACE_AAUI_PORT is not set
+CONFIG_BMAC=m
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+
+#
+# Tulip family network device support
+#
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+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_PCMCIA_XIRCOM=m
+CONFIG_PCMCIA_XIRTULIP=m
+# CONFIG_HP100 is not set
+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 is not set
+CONFIG_B44=m
+CONFIG_FORCEDETH=m
+CONFIG_DGRS=m
+CONFIG_EEPRO100=m
+CONFIG_E100=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+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 is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_DL2K=m
+CONFIG_E1000=m
+# CONFIG_E1000_NAPI is not set
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+# CONFIG_R8169_NAPI is not set
+# CONFIG_R8169_VLAN is not set
+CONFIG_SK98LIN=m
+CONFIG_VIA_VELOCITY=m
+CONFIG_TIGON3=m
+# CONFIG_BNX2 is not set
+# CONFIG_MV643XX_ETH is not set
+
+#
+# Ethernet (10000 Mbit)
+#
+CONFIG_IXGB=m
+# CONFIG_IXGB_NAPI is not set
+CONFIG_S2IO=m
+# CONFIG_S2IO_NAPI is not set
+# CONFIG_2BUFF_MODE is not set
+
+#
+# Token Ring devices
+#
+CONFIG_TR=y
+CONFIG_IBMOL=m
+CONFIG_IBMLS=m
+CONFIG_3C359=m
+CONFIG_TMS380TR=m
+CONFIG_TMSPCI=m
+CONFIG_ABYSS=m
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+
+#
+# Obsolete Wireless cards support (pre-802.11)
+#
+CONFIG_STRIP=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_HERMES=m
+CONFIG_APPLE_AIRPORT=m
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_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_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_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_DSCC4=m
+# CONFIG_DSCC4_PCISYNC is not set
+# CONFIG_DSCC4_PCI_RST is not set
+CONFIG_LANMEDIA=m
+CONFIG_SYNCLINK_SYNCPPP=m
+CONFIG_HDLC=m
+# CONFIG_HDLC_RAW is not set
+# CONFIG_HDLC_RAW_ETH is not set
+# CONFIG_HDLC_CISCO is not set
+# CONFIG_HDLC_FR is not set
+# CONFIG_HDLC_PPP is not set
+# CONFIG_HDLC_X25 is not set
+CONFIG_PCI200SYN=m
+CONFIG_WANXL=m
+CONFIG_PC300=m
+
+#
+# Cyclades-PC300 MLPPP support is disabled.
+#
+
+#
+# Refer to the file README.mlppp, provided by PC300 package.
+#
+CONFIG_FARSYNC=m
+CONFIG_DLCI=m
+CONFIG_DLCI_COUNT=24
+CONFIG_DLCI_MAX=8
+# CONFIG_WAN_ROUTER_DRIVERS is not set
+CONFIG_LAPBETHER=m
+CONFIG_X25_ASY=m
+
+#
+# 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 is not set
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+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_MAYBE=m
+# CONFIG_ATM_FORE200E_PCA is not set
+CONFIG_ATM_HE=m
+# CONFIG_ATM_HE_USE_SUNI is not set
+# 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 is not set
+# CONFIG_SLIP_SMART is not set
+# CONFIG_SLIP_MODE_SLIP6 is not set
+# CONFIG_NET_FC is not set
+CONFIG_SHAPER=m
+CONFIG_NETCONSOLE=m
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+
+#
+# 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=m
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_SUNKBD=m
+CONFIG_KEYBOARD_LKKBD=m
+CONFIG_KEYBOARD_XTKBD=m
+CONFIG_KEYBOARD_NEWTON=m
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=y
+CONFIG_MOUSE_SERIAL=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 is not set
+# CONFIG_JOYSTICK_IFORCE_232 is not set
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_STINGER=m
+# CONFIG_JOYSTICK_TWIDJOY is not set
+CONFIG_JOYSTICK_DB9=m
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_GUNZE=m
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_UINPUT=m
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=m
+CONFIG_SERIO_SERPORT=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_VORTEX is not set
+CONFIG_GAMEPORT_FM801=m
+# CONFIG_GAMEPORT_CS461X is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_COMPUTONE is not set
+# CONFIG_ROCKETPORT is not set
+# CONFIG_CYCLADES is not set
+# CONFIG_DIGIEPCA is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_ISI is not set
+# CONFIG_SYNCLINK is not set
+# CONFIG_SYNCLINKMP is not set
+CONFIG_N_HDLC=m
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_SX is not set
+# CONFIG_RIO is not set
+# CONFIG_STALDRV is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=m
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=m
+CONFIG_SERIAL_PMACZILOG=m
+# CONFIG_SERIAL_JSM is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+# CONFIG_PRINTER is not set
+# CONFIG_PPDEV is not set
+# CONFIG_TIPAR is not set
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+CONFIG_NVRAM=y
+CONFIG_GEN_RTC=y
+# CONFIG_GEN_RTC_X is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+CONFIG_AGP=m
+CONFIG_AGP_UNINORTH=m
+# CONFIG_DRM is not set
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM 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_HYDRA=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_I810=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_ISA=m
+CONFIG_I2C_KEYWEST=m
+CONFIG_I2C_MPC=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_PROSAVAGE=m
+CONFIG_I2C_SAVAGE4=m
+CONFIG_SCx200_ACB=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_STUB=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_VOODOO3=m
+CONFIG_I2C_PCA_ISA=m
+
+#
+# Hardware Sensors Chip support
+#
+CONFIG_I2C_SENSOR=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_FSCHER=m
+# CONFIG_SENSORS_FSCPOS is not set
+CONFIG_SENSORS_GL518SM=m
+# CONFIG_SENSORS_GL520SM is not set
+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 is not set
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_SMSC47B397=m
+# CONFIG_SENSORS_SIS5595 is not set
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83627HF=m
+
+#
+# Other I2C Chip support
+#
+# CONFIG_SENSORS_DS1337 is not set
+CONFIG_SENSORS_EEPROM=m
+CONFIG_SENSORS_PCF8574=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_RTC8564=m
+# CONFIG_SENSORS_M41T00 is not set
+# 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
+
+#
+# Misc devices
+#
+
+#
+# Multimedia devices
+#
+CONFIG_VIDEO_DEV=m
+
+#
+# Video For Linux
+#
+
+#
+# Video Adapters
+#
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BWQCAM=m
+CONFIG_VIDEO_CQCAM=m
+CONFIG_VIDEO_CPIA=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_SAA7134=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_OVCAMCHIP=m
+
+#
+# Radio Adapters
+#
+CONFIG_RADIO_GEMTEK_PCI=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_MAESTRO=m
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_VIDEO_VIDEOBUF=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEO_BUF=m
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_IR=m
+CONFIG_VIDEO_TVEEPROM=m
+
+#
+# Graphics support
+#
+CONFIG_FB=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_SOFT_CURSOR=y
+CONFIG_FB_MACMODES=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+CONFIG_FB_CIRRUS=y
+CONFIG_FB_PM2=y
+# CONFIG_FB_PM2_FIFO_DISCONNECT is not set
+CONFIG_FB_CYBER2000=y
+CONFIG_FB_OF=y
+CONFIG_FB_CONTROL=y
+CONFIG_FB_PLATINUM=y
+CONFIG_FB_VALKYRIE=y
+CONFIG_FB_CT65550=y
+CONFIG_FB_ASILIANT=y
+CONFIG_FB_IMSTT=y
+CONFIG_FB_VGA16=y
+CONFIG_FB_NVIDIA=y
+CONFIG_FB_RIVA=y
+CONFIG_FB_RIVA_I2C=y
+# CONFIG_FB_RIVA_DEBUG is not set
+CONFIG_FB_MATROX=y
+CONFIG_FB_MATROX_MILLENIUM=y
+CONFIG_FB_MATROX_MYSTIQUE=y
+CONFIG_FB_MATROX_G=y
+CONFIG_FB_MATROX_I2C=y
+# CONFIG_FB_MATROX_MAVEN is not set
+# CONFIG_FB_MATROX_MULTIHEAD is not set
+CONFIG_FB_RADEON_OLD=y
+CONFIG_FB_RADEON=y
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RADEON_DEBUG=y
+CONFIG_FB_ATY128=y
+CONFIG_FB_ATY=y
+CONFIG_FB_ATY_CT=y
+# CONFIG_FB_ATY_GENERIC_LCD is not set
+# CONFIG_FB_ATY_XL_INIT is not set
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_SAVAGE=y
+CONFIG_FB_SAVAGE_I2C=y
+# CONFIG_FB_SAVAGE_ACCEL is not set
+CONFIG_FB_SIS=y
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_NEOMAGIC=y
+CONFIG_FB_KYRO=y
+CONFIG_FB_3DFX=y
+# CONFIG_FB_3DFX_ACCEL is not set
+CONFIG_FB_VOODOO1=y
+CONFIG_FB_TRIDENT=y
+# CONFIG_FB_TRIDENT_ACCEL is not set
+CONFIG_FB_S1D13XXX=y
+# CONFIG_FB_VIRTUAL is not set
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_FONT_6x11=y
+CONFIG_FONT_PEARL_8x8=y
+CONFIG_FONT_ACORN_8x8=y
+CONFIG_FONT_MINI_4x6=y
+CONFIG_FONT_SUN8x16=y
+CONFIG_FONT_SUN12x22=y
+
+#
+# Logo configuration
+#
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=m
+CONFIG_BACKLIGHT_DEVICE=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_DEVICE=y
+
+#
+# Sound
+#
+CONFIG_SOUND=m
+CONFIG_DMASOUND_PMAC=m
+CONFIG_DMASOUND=m
+
+#
+# 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_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_DUMMY=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+
+#
+# PCI devices
+#
+CONFIG_SND_AC97_CODEC=m
+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 is not set
+# CONFIG_SND_EMU10K1X is not set
+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_TRIDENT=m
+CONFIG_SND_YMFPCI=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 is not set
+
+#
+# ALSA PowerMac devices
+#
+CONFIG_SND_POWERMAC=m
+
+#
+# USB devices
+#
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_USX2Y=m
+
+#
+# PCMCIA devices
+#
+
+#
+# Open Sound System
+#
+CONFIG_SOUND_PRIME=m
+CONFIG_SOUND_BT878=m
+CONFIG_SOUND_CMPCI=m
+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 is not set
+# CONFIG_SOUND_DMAP is not set
+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 is not set
+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 is not set
+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 is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# 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_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 is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_AUDIO=m
+
+#
+# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem
+#
+CONFIG_USB_MIDI=m
+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 is not set
+CONFIG_USB_STORAGE_SDDR09=y
+CONFIG_USB_STORAGE_SDDR55=y
+CONFIG_USB_STORAGE_JUMPSHOT=y
+
+#
+# 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_KBTAB=m
+CONFIG_USB_POWERMATE=m
+CONFIG_USB_MTOUCH=m
+CONFIG_USB_EGALAX=m
+CONFIG_USB_XPAD=m
+CONFIG_USB_ATI_REMOTE=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 is not set
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+
+#
+# USB Host-to-Host Cables
+#
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_GENESYS=y
+CONFIG_USB_NET1080=y
+CONFIG_USB_PL2301=y
+CONFIG_USB_KC2190=y
+
+#
+# Intelligent USB Devices/Gadgets
+#
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_ZAURUS=y
+CONFIG_USB_CDCETHER=y
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_AX8817X=y
+# CONFIG_USB_ZD1201 is not set
+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 is not set
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+# CONFIG_USB_SERIAL_CP2101 is not set
+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=m
+# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set
+# CONFIG_USB_SERIAL_KLSI is not set
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_PL2303=m
+# CONFIG_USB_SERIAL_HP4X is not set
+# CONFIG_USB_SERIAL_SAFE is not set
+CONFIG_USB_SERIAL_TI=m
+# CONFIG_USB_SERIAL_CYBERJACK is not set
+CONFIG_USB_SERIAL_XIRCOM=m
+# CONFIG_USB_SERIAL_OPTION is not set
+# CONFIG_USB_SERIAL_OMNINET is not set
+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 is not set
+CONFIG_USB_TEST=m
+
+#
+# USB ATM/DSL drivers
+#
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+CONFIG_MMC=m
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_BLOCK=m
+# CONFIG_MMC_WBSD is not set
+
+#
+# InfiniBand support
+#
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_MTHCA=m
+# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
+CONFIG_INFINIBAND_IPOIB=m
+# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+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=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=y
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_STATISTICS=y
+CONFIG_FS_POSIX_ACL=y
+
+#
+# XFS support
+#
+CONFIG_XFS_FS=y
+CONFIG_XFS_EXPORT=y
+CONFIG_XFS_RT=y
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_SECURITY=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_MINIX_FS=m
+CONFIG_ROMFS_FS=m
+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
+
+#
+# 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=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+# CONFIG_NTFS_RW is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_SYSFS=y
+# CONFIG_DEVFS_FS is not set
+CONFIG_DEVPTS_FS_XATTR=y
+CONFIG_DEVPTS_FS_SECURITY=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_XATTR=y
+CONFIG_TMPFS_SECURITY=y
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+
+#
+# Miscellaneous filesystems
+#
+CONFIG_ADFS_FS=m
+# CONFIG_ADFS_FS_RW is not set
+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_NAND is not set
+# CONFIG_JFFS2_FS_NOR_ECC is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_CRAMFS=y
+CONFIG_VXFS_FS=m
+CONFIG_HPFS_FS=m
+CONFIG_QNX4FS_FS=m
+CONFIG_SYSV_FS=m
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=m
+CONFIG_NFS_V3=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_DIRECTIO is not set
+CONFIG_NFSD=m
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_TCP=y
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_RPCSEC_GSS_SPKM3=m
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_EXPERIMENTAL is not set
+CONFIG_NCP_FS=m
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+# CONFIG_NCPFS_NFS_NS is not set
+# CONFIG_NCPFS_OS2_NS is not set
+# CONFIG_NCPFS_SMALLDOS is not set
+CONFIG_NCPFS_NLS=y
+# CONFIG_NCPFS_EXTRAS is not set
+CONFIG_CODA_FS=m
+# CONFIG_CODA_FS_OLD_API is not set
+CONFIG_AFS_FS=m
+CONFIG_RXRPC=m
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_ACORN_PARTITION=y
+CONFIG_ACORN_PARTITION_CUMANA=y
+# CONFIG_ACORN_PARTITION_EESOX is not set
+CONFIG_ACORN_PARTITION_ICS=y
+# CONFIG_ACORN_PARTITION_ADFS is not set
+# CONFIG_ACORN_PARTITION_POWERTEC is not set
+CONFIG_ACORN_PARTITION_RISCIX=y
+CONFIG_OSF_PARTITION=y
+CONFIG_AMIGA_PARTITION=y
+CONFIG_ATARI_PARTITION=y
+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=y
+CONFIG_ULTRIX_PARTITION=y
+CONFIG_SUN_PARTITION=y
+# CONFIG_EFI_PARTITION is not set
+
+#
+# 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=m
+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
+
+#
+# Library routines
+#
+CONFIG_CRC_CCITT=m
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_REED_SOLOMON=m
+CONFIG_REED_SOLOMON_DEC16=y
+
+#
+# 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=16
+# 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_HIGHMEM is not set
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_XMON is not set
+# CONFIG_BDI_SWITCH is not set
+CONFIG_BOOTX_TEXT=y
+
+#
+# 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 is not set
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_AES=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=m
+
+#
+# Hardware crypto devices
+#

=== added file 'iso/data/initrd.dirs'
--- /dev/null
+++ iso/data/initrd.dirs
@@ -0,0 +1,9 @@
+/bin
+/dev
+/etc
+/mnt/cdrom
+/mnt/floppy
+/proc
+/sbin
+/sys
+/tmp

=== added file 'iso/data/initrd.files'
--- /dev/null
+++ iso/data/initrd.files
@@ -0,0 +1,22 @@
+basename
+bash
+chroot
+cp
+rm
+ls
+find
+mknod
+mkdir
+mount
+umount
+uname
+modprobe
+modprobe.old
+insmod.old
+rmmod
+lsmod
+pivot_root
+dialog
+grep
+/bin/sh
+/usr/share/terminfo/l/linux

=== added file 'iso/data/initrd.kernel'
--- /dev/null
+++ iso/data/initrd.kernel
@@ -0,0 +1,7 @@
+drivers/acpi
+drivers/base
+drivers/cdrom
+drivers/ide
+drivers/ieee1394
+drivers/scsi
+drivers/usb

=== added symlink 'iso/data/install-list'
=== target is '../skeleton/usr/share/smgl.install/install-list'
=== added file 'iso/data/internal_version'
--- /dev/null
+++ iso/data/internal_version
@@ -0,0 +1,1 @@
+2005120721

=== added file 'iso/data/iso.command'
--- /dev/null
+++ iso/data/iso.command
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+# Silly hack because perforce doesn't like the pathname
+mv $ISO_DIR/etc/init.d/runlevels/tmpfs.sh \
+ $ISO_DIR/etc/init.d/runlevels/%DEV/tmpfs.sh
+
+touch ${ISO_DIR}/etc/modules.devfsd # can't generate those on the fly,
+touch ${ISO_DIR}/etc/modules.conf # just make sure they exist
+touch ${ISO_DIR}/etc/modules
+touch ${ISO_DIR}/etc/modprobe.devfsd # HACK
+touch ${ISO_DIR}/etc/modprobe.conf
+touch ${ISO_DIR}/lib/modules/${KERNEL_VERSION}/modules.dep
+
+# just-in-time replacing of templates
+
+function isocmd_gversion() {
+ local GDIR
+ GDIR=$(sed -n 's/^[^#]*GRIMOIRE_DIR\[0\]=//p' /etc/sorcery/local/grimoire)
+ echo -n "${GDIR##*/} grimoire"
+ if [[ -e $GDIR/GRIMOIRE_VERSION ]] ;then
+ echo -n ", version "
+ head -n 1 $GDIR/GRIMOIRE_VERSION
+ else
+ echo ""
+ fi
+}
+
+if [[ -d $ISO_DIR/isolinux ]] ;then
+ sed -i "s/@INITRD_SIZE@/$(cat $STATE_DIR/initrd.size)/g" \
+ $ISO_DIR/isolinux/isolinux.cfg
+ sed -i "s/@GRIMOIRE_VERSION@/$(isocmd_gversion)/g" \
+ $ISO_DIR/isolinux/isolinux.msg
+elif [[ -d $ISO_DIR/yaboot ]] ;then
+ sed -i "s/@INITRD_SIZE@/$(cat $STATE_DIR/initrd.size)/g" \
+ $ISO_DIR/yaboot/yaboot.conf
+ sed -i "s/@GRIMOIRE_VERSION@/$(isocmd_gversion)/g" \
+ $ISO_DIR/yaboot/yaboot.msg
+else
+ echo "WARNING: Unable to store initrd size and grimoire version:" >&2
+ echo " Unknown bootloader." >&2
+ false
+fi

=== added file 'iso/data/iso.dirs'
--- /dev/null
+++ iso/data/iso.dirs
@@ -0,0 +1,29 @@
+/boot
+/dev
+/dev/mapper
+/dev/pts
+/dev/shm
+/etc
+/etc/sysconfig
+/etc/installerdata
+/initrd
+/mnt
+/mnt/cdrom
+/mnt/mnt
+/mnt/root
+/proc
+/root
+/sbin
+/sys
+/tmp
+/var
+/var/run
+/var/log
+/var/lock
+/var/lock/lvm
+/var/lib
+/var/lib/nfs
+/var/cache/sorcery
+/var/lib/sorcery/codex
+/var/spool/sorcery
+/var/state/sorcery

=== added file 'iso/data/iso.mkfscommand'
--- /dev/null
+++ iso/data/iso.mkfscommand
@@ -0,0 +1,1 @@
+mkisofs -quiet -R -b isolinux/isolinux.bin -c isolinux/boot.cat
-no-emul-boot -boot-load-size 4 -boot-info-table -o $1 $2

=== added file 'iso/data/iso.mkfscommand.ppc'
--- /dev/null
+++ iso/data/iso.mkfscommand.ppc
@@ -0,0 +1,1 @@
+mkisofs -q -hfs -part -map ${STATE_DIR}/map.hfs -hfs-bless $2/yaboot
-no-desktop -R -o $1 $2

=== added file 'iso/data/iso.packages'
--- /dev/null
+++ iso/data/iso.packages
@@ -0,0 +1,126 @@
+add_default_exclude /etc/init.d # if not specified otherwise
+add_default_exclude /usr/doc
+#add_default_exclude /usr/info
+#add_default_exclude /usr/man
+#add_default_exclude /usr/share/info
+add_default_exclude /usr/share/doc
+#add_default_exclude /usr/share/man
+add_default_exclude /usr/include
+add_default_exclude '/var/*/sorcery'
+unpack smgl-fhs
+begin_unpack bash
+ cp --parents -a /etc/profile* $UNPACK_DIR
+ # more-or-less elegant FINAL workaround
+end_unpack #bash
+unpack bzip2
+unpack console-data
+unpack console-tools
+unpack coreutils
+unpack cpio
+#unpack devfsd -- ouch.
+unpack device-mapper
+unpack dhcpcd # Really needed on the ISO itself?
+unpack dialog
+unpack diffutils # Ditto
+unpack e2fsprogs
+unpack eject
+unpack elvis
+unpack file
+unpack findutils
+begin_unpack g++
+ iso_include '/usr/lib/libstdc++*' # For groff
+ iso_exclude '*'
+end_unpack
+unpack gawk
+begin_unpack gcc
+ iso_include '/usr/lib/libgcc*'
+ iso_include '/usr/bin/gcc' # For use_gcc in arch selection
+ iso_exclude '*'
+end_unpack
+unpack gdbm
+unpack gettext
+unpack glibc
+unpack grep
+unpack groff #dependency of man
+unpack gzip
+begin_unpack hotplug
+ iso_include '/etc/init.d' # overriding the default
+end_unpack hotplug
+__SMGL_TEMPLATE_ONLY_ppc__unpack hfsutils
+unpack iana-etc
+begin_unpack init.d
+ iso_include '/etc/init.d' # overriding the default
+ iso_exclude /etc/shutdown.conf
+end_unpack
+unpack jed
+unpack jfsutils
+#unpack kbd
+unpack less
+unpack libpcap # For what?
+begin_unpack linux
+ iso_include_as '/boot/vmlinu*-*' /boot/linux
+ iso_exclude '/boot/vmlinu*'
+end_unpack
+unpack lvm
+unpack lshw
+__SMGL_TEMPLATE_ONLY_ppc__unpack mac-fdisk
+unpack make # Who needs this?
+unpack man
+unpack mdadm
+__SMGL_TEMPLATE_ONLY_ppc__unpack mktemp
+unpack module-init-tools
+unpack nano
+unpack ncurses
+unpack netconf
+unpack netkit-base
+unpack netkit-ping
+unpack net-tools
+unpack nfs-utils
+begin_unpack openssh
+ iso_exclude '/etc/ssh/*key*'
+end_unpack openssh
+unpack openssl
+unpack patch
+unpack pciutils
+unpack pcmcia-cs
+__SMGL_TEMPLATE_NOT_ppc__unpack parted
+unpack popt
+unpack portmap
+unpack ppp
+unpack procinfo
+unpack procps
+unpack raidtools
+unpack readline
+unpack reiserfsprogs
+unpack rpmunpack
+unpack rp-pppoe
+unpack sed
+unpack shadow
+begin_unpack simpleinit-msb
+ iso_include_as /sbin/shutdown /sbin/real.shutdown
+ iso_exclude /sbin/shutdown
+end_unpack simpleinit-msb
+unpack slang
+unpack smgl-archspecs
+unpack sysfsutils
+unpack tar
+unpack tcp_wrappers
+unpack tdb
+unpack texinfo
+#unpack udev -- double ouch
+unpack unzip
+unpack util-linux
+unpack wget
+unpack which
+unpack wireless_tools
+unpack xfsprogs
+unpack xinetd
+unpack zlib
+unpack hdparm
+__SMGL_TEMPLATE_NOT_ppc__begin_unpack syslinux
+__SMGL_TEMPLATE_NOT_ppc__ iso_include_as /usr/lib/syslinux/isolinux.bin
/isolinux/isolinux.bin
+__SMGL_TEMPLATE_NOT_ppc__ iso_exclude '*'
+__SMGL_TEMPLATE_NOT_ppc__end_unpack
+__SMGL_TEMPLATE_ONLY_ppc__begin_unpack yaboot
+__SMGL_TEMPLATE_ONLY_ppc__ iso_include_as /usr/lib/yaboot/yaboot
/yaboot/yaboot
+__SMGL_TEMPLATE_ONLY_ppc__end_unpack

=== added symlink 'iso/data/linux.p'
=== target is '../skeleton/etc/sorcery/local/depends/linux.p'
=== added file 'iso/data/map.hfs'
--- /dev/null
+++ iso/data/map.hfs
@@ -0,0 +1,14 @@
+# Example filename mapping file
+#
+# EXTN XLate CREATOR TYPE Comment
+.hqx Ascii 'BnHx' 'TEXT' "BinHex file"
+.mov Raw 'TVOD' 'MooV' "QuickTime Movie"
+.tif Raw '8BIM' 'TIFF' "Photoshop TIFF image"
+.doc Raw 'MSWD' 'WDBN' "Word file"
+.bin Raw 'ddsk' 'DDim' "Floppy or ramdisk image"
+.img Raw 'ddsk' 'DDim' "Floppy or ramdisk image"
+.b Raw 'UNIX' 'tbxi' "bootstrap"
+.conf Raw 'UNIX' 'conf' "bootstrap"
+yaboot Raw 'UNIX' 'boot' "bootstrap"
+vmlinux Raw 'UNIX' 'boot' "bootstrap"
+* Ascii 'ttxt' 'TEXT' "Text file"

=== added symlink 'iso/data/optional-list'
=== target is '../skeleton/usr/share/smgl.install/optional-list'
=== added file 'iso/data/smgl.genspells'
--- /dev/null
+++ iso/data/smgl.genspells
@@ -0,0 +1,3 @@
+cdrtools
+which
+linux

=== added file 'iso/data/smgl.multi'
--- /dev/null
+++ iso/data/smgl.multi
@@ -0,0 +1,6 @@
+$SKELETON/etc/sorcery/local/depends/linux.p $ISO_ARCH
+$SKELETON/etc/sorcery/local/config $ISO_ARCH
+$SKELETON/isolinux $ISO_ARCH
+$SKELETON/yaboot $ISO_ARCH
+$STATE_DIR/iso.mkfscommand $ISO_ARCH
+$STATE_DIR/config-2.6 $ISO_ARCH

=== added file 'iso/data/smgl.patterns'
--- /dev/null
+++ iso/data/smgl.patterns
@@ -0,0 +1,7 @@
+__SMGL_TEMPLATE_ISO_VERSION__/${ISO_VERSION}
+__SMGL_TEMPLATE_ISO_ARCH__/${ARCH}
+__SORCERY_VERSION__/$SVERSION
+__GRIMOIRE_VERSION__/$GVERSION
+__KERNEL_VERSION__/$KERNEL_VERSION
+__KERNEL_SOURCE_VERSION__/$KERNEL_MVERSION
+__KERNEL_PATCHES__/$KERNEL_PATCHES

=== added file 'iso/data/smgl.templated'
--- /dev/null
+++ iso/data/smgl.templated
@@ -0,0 +1,12 @@
+${SKELETON}/etc/issue
+${SKELETON}/etc/sorcery/local/depends/linux.p
+${SKELETON}/etc/sorcery/local/grimoire
+${SKELETON}/etc/sourcemage_version
+${SKELETON}/isolinux/isolinux.cfg
+${SKELETON}/isolinux/isolinux.msg
+${SKELETON}/usr/share/smgl.install/install-list
+${SKELETON}/usr/share/smgl.install/optional-list
+${SKELETON}/var/lib/smgl.install/version
+__SMGL_TEMPLATE_ONLY_ppc__${SKELETON}/yaboot/yaboot.conf
+__SMGL_TEMPLATE_ONLY_ppc__${SKELETON}/yaboot/yaboot.msg
+${STATE_DIR}/iso.packages

=== added directory 'iso/generation-scripts'
=== added file 'iso/generation-scripts/README'
--- /dev/null
+++ iso/generation-scripts/README
@@ -0,0 +1,1 @@
+Scripts we use for creating an ISO

=== added file 'iso/generation-scripts/autoupdate.sh'
--- /dev/null
+++ iso/generation-scripts/autoupdate.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+# Script to automatically update the chroot and generate a new ISO
+# This part to be ran inside the chroot
+sorcery system-update
+[[ -e caster ]] ||
+ cd ${0%/*}
+./caster -c basesystem # to get all cruft dispelled
+./caster $(cat ../data/list.{reqd,all})
+if [[ $ISOGEN_LOGFILE ]] ;then
+ ./mk-smgl-iso &>$ISOGEN_LOGFILE
+else
+ ./mk-smgl-iso
+fi

=== added file 'iso/generation-scripts/caster'
--- /dev/null
+++ iso/generation-scripts/caster
@@ -0,0 +1,199 @@
+#!/bin/bash
+# Handy little wrapper script for creating cache tarballs
+
+# If anything is needed to be run before every cast
+function prepare_cast()
+{
+# rm $(find /etc -not -type d | grep -v -f ~/etcexcluded)
+ true
+}
+
+function pre_workaround()
+{
+# The place for workarounds needed before a spell so it casts nicely.
+ case $1 in
+ "irssi"|"grub"|"lshw"|"parted"|"syslinux"|"syslog-ng"|"uptimed")
+ cast g++ # The ole autoconf workaround
+ ;;
+ "linux")
+ cp $STATE_DIR/linux.p $DEPENDS_CONFIG/linux.p
+ cp $STATE_DIR/config-$KVERSION /etc/sorcery/local/kernel.config
+ rm -f /usr/src/linux-*/.spell-config.p
+ ;; #We want to use our preset kernel version and config
+ "openssh")
+ rm -rf /etc/ssh
+ ;; # The dir is protected by sorcery, it won't reap it by itself
+ esac
+ true
+}
+
+function post_workaround()
+{
+ true
+}
+
+# Attempts to fetch an install log, either from sorcery or from the cache.
+# Needs the sorcery environment and codex_set_current_spell done before it
+function try_get_install_log() {
+ local rclog=/tmp/install_log_rc.$$
+ local rc
+ {
+ gaze install $SPELL ||
+ tar -xjOf ${INSTALL_CACHE}/${SPELL}-${VERSION}-${HOST}.tar${EXTENSION} \
+ --occurrence ${INSTALL_LOGS#/}/$SPELL-$VERSION ||
+ # try without leading / first
+ tar -xjOf ${INSTALL_CACHE}/${SPELL}-${VERSION}-${HOST}.tar${EXTENSION} \
+ --occurrence $INSTALL_LOGS/$SPELL-$VERSION
+ echo $? >$rclog
+ # This is a subshell. We can't just set a variable.
+ # Exit code of a pipe is the exit code of the last command, here: "sort".
+ } 2>/dev/null | grep -v "$TABLET_PATH" | grep -v "does not exist" | sort
+ rc=$(cat $rclog)
+ rm -f $rclog
+ return $rc
+}
+
+function filter_dirs() {
+ local line
+ while read line ;do
+ test -d "$line" ||
+ echo "$line"
+ done
+}
+
+function needs_updating() {
+ local TMPTABDIR=/tmp/tabletstuff.$$
+ mkdir -p $TMPTABDIR
+ tar -C $TMPTABDIR -xjOf "$1" --occurrence \
+ 'var/state/sorcery/tablet/*/*/updated' \
+ 'var/state/sorcery/tablet/*/*/patchlevel' \
+ 'var/state/sorcery/tablet/*/*/security_patch'
+ popd
+ CACHE_UPDATED=$(cat $TMPTABDIR/var/state/sorcery/tablet/*/*/updated)
+ CACHE_PATCHLEVEL=$(cat $TMPTABDIR/var/state/sorcery/tablet/*/*/patchlevel)
+ CACHE_SECPATCH=$(cat
$TMPTABDIR/var/state/sorcery/tablet/*/*/security_patch)
+ rm -rf $TMPTABDIR
+ [[ ${UPDATED:-0} > ${CACHE_UPDATED:-0} ]] && return 0
+ [[ ${PATCHLEVEL:-0} > ${CACHE_PATCHLEVEL:-0} ]] && return 0
+ [[ ${SECURITY_PATCH:-0} > ${CACHE_SECPATCH:-0} ]] && return 0
+ return 1
+}
+
+if [ "$1" == "-c" ] ;then
+ RECAST="-c"
+ shift
+fi
+mkdir -p ~/broken-logs
+mkdir -p /tmp # Just to be sure
+. /etc/sorcery/config
+. ${0%/*}/config
+
+# sanity check
+if ! [ -e $STATE_DIR/list.reqd ] ;then
+ ${0%/*}/listparse
+fi
+
+SUCCESS_LIST=/tmp/spell.success.$$
+FAIL_LIST=/tmp/spell.fail.$$
+CHANGE_LIST=/tmp/spell.change.$$
+rm -f $SUCCESS_LIST $FAIL_LIST $CHANGE_LIST
+for spell in "$@" ; do
+ codex_set_current_spell_by_name $spell
+ cachefile=${INSTALL_CACHE}/${SPELL}-${VERSION}-${HOST}.tar${EXTENSION}
+
+ if ! test -e $cachefile || [ $RECAST ] || needs_updating $cachefile ;then
+
+ rm -f /tmp/old-install-log /tmp/tmp-install-log
+ try_get_install_log >/tmp/tmp-install-log || rm /tmp/tmp-install-log
+
+ prepare_cast
+ pre_workaround $spell
+ cast --deps $spell
+ rm -f $cachefile
+ cast -c $spell
+ rc=$?
+ post_workaround $spell
+ if ! test -e $cachefile ;then # ARCHIVE=off
+ if [[ $rc == 0 ]] && gaze install $spell >/dev/null ;then
+ message "Forcing generation of cache"
+ pushd / >/dev/null
+ # This is how current sorcery makes caches (not quite intentional)
+ gaze install-full $spell | sed 's:^/::' |
+ tar --no-recursion -cjPf $cachefile -T -
+ popd >/dev/null
+ fi
+ fi
+
+ [ -e /tmp/tmp-install-log] &&
+ cat /tmp/tmp-install-log | filter_dirs >/tmp/old-install-log
+ # filter_dirs only once all the dirs referenced exist
+
+ gaze install $spell >/tmp/tmp-install-log &&
+ cat /tmp/tmp-install-log | filter_dirs >/tmp/new-install-log &&
+ # again, preserving exit status from gaze install
+ if [ -e /tmp/old-install-log ] &&
+ ! diff /tmp/old-install-log /tmp/new-install-log >/dev/null ;then
+ message "OOPS... Spell ${SPELL_COLOR}${SPELL}${DEFAULT_COLOR} \
+install log suddenly changed..."
+ datestr=$(date +%s)
+ cp /tmp/old-install-log ~/broken-logs/${SPELL}-${datestr}-pre
+ cp /tmp/new-install-log ~/broken-logs/${SPELL}-${datestr}-post
+ echo "$SPELL" >>$CHANGE_LIST
+ elif [[ $rc == 0 ]] ;then
+ echo "$SPELL" >>$SUCCESS_LIST
+ else
+ echo "$SPELL" >>$FAIL_LIST
+ fi ||
+ echo "$SPELL" >>$FAIL_LIST # when the gaze install failed
+ rm -f /tmp/new-install-log
+
+ SUP_SPELLS=$(
+ { cat /var/state/sorcery/packages | cut -d: -f1
+ cat $STATE_DIR/list.reqd $STATE_DIR/list.reqd ; } |
+ sort | uniq -u)
+ if [ $( echo "$SUP_SPELLS" | wc -l ) -gt 10 ] ;then
+ message "${QUERY_COLOR}Whoops! Cleanup wants me to dispel the
following\
+spells:${DEFAULT_COLOR}${SPELL_COLOR}"
+ echo "$SUP_SPELLS" |column
+ message -n "$DEFAULT_COLOR"
+ if query "Continue anyway?" n ;then
+ exit 3
+ fi
+ fi
+ if [ -n "$SUP_SPELLS" ] ;then
+ dispel --no-reap-depends $SUP_SPELLS
+ fi
+ fi
+done
+
+if [ -s $SUCCESS_LIST ] ;then
+ message "${MESSAGE_COLOR}Spells installed successfully:"
+ message "------------------------------${SPELL_COLOR}"
+ column $SUCCESS_LIST
+ message "$DEFAULT_COLOR"
+fi
+if [ -s $CHANGE_LIST ] ;then
+ message "${MESSAGE_COLOR}Spells whose install log changed:"
+ message "------------------------------${QUERY_COLOR}"
+ column $CHANGE_LIST
+ message "$DEFAULT_COLOR"
+fi
+if [ -s $FAIL_LIST ] ;then
+ message "${MESSAGE_COLOR}Spells that failed to cast:"
+ message "------------------------------${PROBLEM_COLOR}"
+ column $FAIL_LIST
+ message "$DEFAULT_COLOR"
+fi
+
+if [[ $ISOGEN_LOGFILE ]] ;then
+ echo "===== begin caster report ====="
+ echo "Successful spells:"
+ column -c 72 $SUCCESS_LIST
+ echo "install log changed:"
+ column -c 72 $CHANGE_LIST
+ echo "failed to cast:"
+ column -c 72 $FAIL_LIST
+ echo "===== end caster report ====="
+fi >$ISOGEN_LOGFILE
+
+rm -f $SUCCESS_LIST $FAIL_LIST $CHANGE_LIST

=== added file 'iso/generation-scripts/config'
--- /dev/null
+++ iso/generation-scripts/config
@@ -0,0 +1,34 @@
+#!/bin/bash
+SCRIPTDIR=${0%/*}
+if [[ "${SCRIPTDIR:0:1}" != "/" ]] ;then
+ SCRIPTDIR=$(pwd)/$SCRIPTDIR # turn into absolute path
+fi
+# all paths should be absolute
+CACHE_DIR=/var/cache/sorcery
+STATE_DIR=$SCRIPTDIR/../data
+SKELETON=$SCRIPTDIR/../skeleton
+
+ISO_BRANCH=${ISO_BRANCH:-devel}
+ARCH=${ARCH:-i486-pc-linux-gnu}
+ISO_ARCH=${ISO_ARCH:-x86}
+ # generic i386 and family
+SVERSION=${SVERSION:-test}
+GVERSION=${GVERSION:-test}
+KVERSION=${KVERSION:-"2.6"}
+KERNEL_VERSION=${KERNEL_VERSION:-2.6.14.2}
+if [[ $KERNEL_VERSION == *.*.*.* ]] ;then
+ KERNEL_MVERSION=${KERNEL_MVERSION:-${KERNEL_VERSION%.*}}
+ KERNEL_PATCHES=${KERNEL_PATCHES:-"patch-$KERNEL_VERSION"}
+else
+ KERNEL_MVERSION=${KERNEL_MVERSION:-$KERNEL_VERSION}
+ # leave KERNEL_PATCHES unset if unset, otherwise don't change.
+fi
+ISO_VERSION=${ISO_VERSION:-$ISO_BRANCH-$(cat $STATE_DIR/internal_version)}
+ISO_FILENAME="smgl-${ISO_VERSION%%-*}-$ISO_ARCH-$KERNEL_VERSION-nptl-${ISO_VERSION#*-}.iso"
+IGNORE_FATAL=${IGNORE_FATAL:-yes}
+
+INITRDROOT=${INITRDROOT:-/theinitrd}
+ISO_DIR=${ISO_DIR:-/iso-root} # kept around for easy debugging
+
+ISO_STATE_DIR=$ISO_DIR/var/lib/smgl.install
+. $SCRIPTDIR/misc

=== added file 'iso/generation-scripts/first_build'
--- /dev/null
+++ iso/generation-scripts/first_build
@@ -0,0 +1,4 @@
+#!/bin/bash
+. ${0%/*}/config
+${0%/*}/listparse
+${0%/*}/caster -c $( cat $STATE_DIR/list.reqd $STATE_DIR/list.all )

=== added file 'iso/generation-scripts/listparse'
--- /dev/null
+++ iso/generation-scripts/listparse
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+# Generates list of all spells which we need caches for as well as
+# a list of all spells that should not be dispelled from the chroot
+# (all others are). They are stored in $STATE_DIR==../data
+
+. ${0%/*}/config
+
+# Adds known dependencies to the spell list $1
+# Code stolen from mkiso
+function add_dependencies() {
+ local NUM_LINES=0
+ while [ "$NUM_LINES" != "$(wc -l $1)" ] ;do
+
+ NUM_LINES=$(wc -l $1)
+ # When nothing here sees new spells, stop.
+
+ local spell
+ while read spell ;do
+ grep "^$spell:[^:]*:on" /var/state/sorcery/depends
+ done <$1 >/tmp/moredeps
+ cat /tmp/moredeps | cut -d: -f2 | sed 's/(.*$//' >/tmp/morespells
+ # The sed kills (BOOTLOADER) etc.
+
+ mv $1 /tmp/oldspells
+ cat /tmp/oldspells /tmp/morespells | sort -u >$1
+ rm -f /tmp/oldspells /tmp/morespells /tmp/moredeps
+
+ done # repeat until number of lines does not change anymore
+}
+
+if ! [ -e $STATE_DIR/list.reqd ] ;then
+ echo "basesystem" >$STATE_DIR/list.reqd
+ echo "linux" >>$STATE_DIR/list.reqd
+fi
+
+cat $STATE_DIR/iso.packages |
+grep "unpack " | grep -v "end_unpack" |
+sed "s/\(begin_\)\?unpack //" >/tmp/iso-list
+cat /tmp/iso-list $STATE_DIR/install-list $STATE_DIR/optional-list |
+ sed -e 's/#.*$//' -e 's/[[:blank:]]*$//' | grep -v "^$" |
+ sort -u >$STATE_DIR/list.all
+rm /tmp/iso-list
+
+add_dependencies $STATE_DIR/list.reqd
+add_dependencies $STATE_DIR/list.all

=== added file 'iso/generation-scripts/misc'
--- /dev/null
+++ iso/generation-scripts/misc
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+output_warning()
+{
+ echo $1 1>&2
+}
+
+fatal_warning()
+{
+ echo $1 1>&2
+ [ "$IGNORE_FATAL" == "yes" ] ||
+ exit 1;
+}

=== added file 'iso/generation-scripts/mk-smgl-iso'
--- /dev/null
+++ iso/generation-scripts/mk-smgl-iso
@@ -0,0 +1,8 @@
+#!/bin/bash
+. ${0%/*}/config
+echo "checking for spells required for the generation process..."
+while read -u 3 spell ; do
+ gaze installed $spell || cast $spell
+done 3<$STATE_DIR/smgl.genspells
+./mkinitrd
+./mkiso

=== added file 'iso/generation-scripts/mkinitrd'
--- /dev/null
+++ iso/generation-scripts/mkinitrd
@@ -0,0 +1,116 @@
+#!/bin/bash
+
+#---------------------------------------------------------------------
+## @param full path of binary to check
+## @Stdout libraries with full path
+## echos all libs that the given file is linked against (not ld-linux)
+#---------------------------------------------------------------------
+function libscan() {
+ ldd "$1" 2> /dev/null |
+ cut -d'>' -f2 |
+ cut -d' ' -f2 |
+ grep '^/'
+}
+
+#---------------------------------------------------------------------
+## Tries to find the given binary and copy it and its required libs
+## onto the initrd at the same paths they are in the parent system.
+#---------------------------------------------------------------------
+function install_prog() {
+ local prog progpath
+ for prog in $* ;do
+ progpath=$( which $prog ) &&
+ cp --parents -f $progpath $INITRDROOT &&
+ cp --parents -f $( libscan $progpath ) $INITRDROOT
+ done
+}
+
+
+#---------------------------------------------------------------------
+## @param path to initrd directory
+## @param path to store gzip-compressed initrd image
+## @Description
+## This function creates a loopback-mountable filesystem from the
+## given initrd and passes it through gzip compression
+#---------------------------------------------------------------------
+function mk_initrd_file() {
+ local initrd_size tmp_file tmp_mountdir
+ initrd_size=$(du -ks ${INITRDROOT} | cut -d$'\t' -f1)
+ initrd_size="$(( initrd_size / 5 + initrd_size ))" # add 20% to allow for
e2fs
+ tmp_file="/tmp/initrd.$$"
+ tmp_mountdir="/tmp/initrdmpoint.$$"
+
+ rm -rf $tmp_file $tmp_mountdir
+ dd if=/dev/zero of=$tmp_file bs=1024 count=$initrd_size
+ mke2fs -q -b 1024 -i 1024 -F $tmp_file
+
+ mkdir -p $tmp_mountdir
+ mount $tmp_file $tmp_mountdir -o loop
+ cp -a $1/* $tmp_mountdir
+ umount -d $tmp_mountdir
+
+ gzip -c $tmp_file >$2
+
+ # Store size for inclusion in bootloader configs
+ echo "${initrd_size}" >${2%.gz}.size
+
+ rm -rf $tmp_file $tmp_mountdir
+ echo "initrd is compressed $(du -ks $2 | cut -d$'\t' -f1)K, uncompressed
${initrd_size}K."
+}
+
+. ${0%/*}/config
+OLDWD=$(pwd)
+
+rm -rf $INITRDROOT
+mkdir -p $INITRDROOT
+
+while read line ; do
+ mkdir -p ${INITRDROOT}/${line}
+done <${STATE_DIR}/initrd.dirs
+
+while read line ; do
+ if [[ ${line:0:1} == '/' ]] ;then
+ cp -a --parents ${line} ${INITRDROOT}
+ else
+ install_prog $line
+ fi
+done <${STATE_DIR}/initrd.files
+cp --parents /lib/ld-2.* $INITRDROOT
+# the ld-linux symlink is made by ldconfig later
+
+pushd $INITRDROOT/dev >/dev/null
+ $SKELETON/sbin/MAKEDEV generic-nopty
+popd >/dev/null
+
+pushd /lib/modules/${KERNEL_VERSION}/kernel >/dev/null
+ mkdir -p ${INITRDROOT}/lib/modules/${KERNEL_VERSION}/kernel
+ while read line ; do
+ cp -pr --parents ./${line}
${INITRDROOT}/lib/modules/${KERNEL_VERSION}/kernel
+# 2>/dev/null #no error if what we're copying isn't in the kernel
+ # remove this when you're making an official ISO - we are.
+ done <${STATE_DIR}/initrd.kernel
+popd >/dev/null
+cp -dp --parents /lib/modules/$KERNEL_VERSION/* $INITRDROOT 2>/dev/null
+# modules.*map etc. ; /dev/null to omit "is a directory" warning for modules/
+
+cp -af ${SKELETON}/initrd/* ${INITRDROOT}
+
+[ -e ${STATE_DIR}/initrd.patch ] &&
+ patch -d ${INITRDROOT} -p0 <${STATE_DIR}/initrd.patch
+
+cp /sbin/ldconfig ${INITRDROOT}
+chroot ${INITRDROOT} /ldconfig
+rm ${INITRDROOT}/ldconfig
+
+# Backwards-compatible with 2.4 with .old files
+cp /sbin/depmod /sbin/depmod.old ${INITRDROOT}
+chroot ${INITRDROOT} /depmod ${KERNEL_VERSION}
+rm -f ${INITRDROOT}/depmod ${INITRDROOT}/depmod.old
+
+[ -x ${STATE_DIR}/initrd.command ] &&
+ . ${STATE_DIR}/initrd.command
+
+# The initrd is complete now.
+
+mk_initrd_file $INITRDROOT $STATE_DIR/initrd.gz
+rm -rf ${INITRDROOT}

=== added file 'iso/generation-scripts/mkiso'
--- /dev/null
+++ iso/generation-scripts/mkiso
@@ -0,0 +1,396 @@
+#!/bin/bash
+
+#=====================================================================
+## BEGIN of functions called from iso.packages
+#=====================================================================
+
+#---------------------------------------------------------------------
+## @param file pattern to include by default
+## Adds the given pattern to the list of default includes
+#---------------------------------------------------------------------
+function add_default_include() {
+ DEF_INCLUDE[${#DEF_INCLUDE[*]}]="$1"
+}
+
+#---------------------------------------------------------------------
+## @param file pattern to exclude by default
+## Adds the given pattern to the list of default excludes
+#---------------------------------------------------------------------
+function add_default_exclude() {
+ DEF_EXCLUDE[${#DEF_EXCLUDE[*]}]="$1"
+}
+
+#---------------------------------------------------------------------
+## @params spell to unpack
+## @Description
+## This is the main unpacking function to use when installing stuff
+## onto the ISO. Specify the spell name and the spell will be
+## automatically unpacked to the ISO with default excludes and
+## includes honored.
+#---------------------------------------------------------------------
+function unpack() {
+ begin_unpack "$1"
+ end_unpack "$1"
+}
+
+#---------------------------------------------------------------------
+## @param spell to unpack
+## @Description
+## This function unpacks the given spell to a temporary location to
+## prepare for its installation.
+#---------------------------------------------------------------------
+function begin_unpack() {
+ local file
+ if [ -e $UNPACK_DIR ] ;then
+ output_warning "An old unpack failed. Flushing the toilet."
+ rm -rf $UNPACK_DIR
+ fi
+ mkdir $UNPACK_DIR
+ copy_fromver $1 ${UNPACK_DIR} &&
+ echo $1 >${TMP_DIR}/unpack_successful ||
+ echo "unpacking \"$1\" failed."
+}
+
+#---------------------------------------------------------------------
+## @param spell to install to ISO
+## @Description
+## Processes default includes and excludes, then copies what is left
+## to the ISO root. Cleans up afterwards.
+#---------------------------------------------------------------------
+function end_unpack() {
+ local entry
+ for entry in "${DEF_INCLUDE[@]}" ;do
+ iso_include "$entry"
+ done
+ for entry in "${DEF_EXCLUDE[@]}" ;do
+ iso_exclude "$entry"
+ done
+
+ if [ -e ${TMP_DIR}/unpack_successful ] ;then
+ if ! cp -au ${UNPACK_DIR}/* ${ISO_DIR} 2>/dev/null ;then
+ echo -n "nothing to be done for "
+ cat ${TMP_DIR}/unpack_successful
+ fi
+ rm ${TMP_DIR}/unpack_successful
+ else
+ fatal_warning "The unpack failed. Can't install to ISO"
+ fi
+ rm -rf ${UNPACK_DIR}
+}
+
+#---------------------------------------------------------------------
+## @param shell pattern to include
+## This function includes the given shell pattern to the ISO.
+## This means that all files installed by the spell that match the
+## given pattern will not be touched by later excludes.
+#---------------------------------------------------------------------
+function iso_include() {
+ pushd ${UNPACK_DIR} >/dev/null
+ eval "cp --parents -a ./$1 ${ISO_DIR}"
+ popd >/dev/null
+}
+
+#---------------------------------------------------------------------
+## @param path to include
+## @param path to include as
+## This function includes the given file/dir at the given location,
+## effectively renaming it. Note that the file will still be
+## installed to the original location too unless you exclude it.
+#---------------------------------------------------------------------
+function iso_include_as() {
+ eval "mkdir -p $ISO_DIR/${2%/*}"
+ eval "cp -a $UNPACK_DIR/$1 $ISO_DIR/$2"
+}
+
+#---------------------------------------------------------------------
+## @param shell pattern to exclude
+## This function excludes the given shell pattern to the ISO.
+## This means that the files installed by the spell that match the
+## given pattern will not get onto the ISO.
+#---------------------------------------------------------------------
+function iso_exclude() {
+ eval "rm -rf ${UNPACK_DIR}/$1"
+}
+
+#=====================================================================
+## END of functions called from iso.packages
+#=====================================================================
+
+#---------------------------------------------------------------------
+## @param spell to unpack
+## @param location to unpack to
+## @Description
+## Attempts to find and unpack the binary cache of the given spell
+#---------------------------------------------------------------------
+function copy_fromver() {
+ if [ -e $CACHE_DIR/$1-$(get_ver_from_codex $1)-$ARCH.tar.bz2 ] ;then
+ tar -xjf $CACHE_DIR/$1-$(get_ver_from_codex $1)-$ARCH.tar.bz2 -C $2
+ else
+ copy_fromlog "$@"
+ fi
+}
+
+#---------------------------------------------------------------------
+## @param spell to unpack
+## @param location to copy to
+## @Description
+## Attempts to copy the binary cache of the given spell to the given
+## location.
+#---------------------------------------------------------------------
+function package_fromver() {
+ if [ -e $CACHE_DIR/$1-$(get_ver_from_codex $1)-$ARCH.tar.bz2 ] ;then
+ cp $CACHE_DIR/$1-$(get_ver_from_codex $1)-$ARCH.tar.bz2 $2
+ else
+ package_fromlog "$@"
+ fi
+}
+
+#---------------------------------------------------------------------
+## @param spell name
+## Gets the current grimoire version of the given spell
+#---------------------------------------------------------------------
+function get_ver_from_codex() {
+ (
+ . /etc/sorcery/config
+ codex_set_current_spell_by_name $1
+ echo $VERSION
+ )
+}
+
+#---------------------------------------------------------------------
+## @param spell name
+## @param location to copy to
+## As a fallback to copy_fromver, copy all files mentioned in the
+## install log to the given location.
+#---------------------------------------------------------------------
+function copy_fromlog() {
+ if gaze install $1 >/dev/null ;then
+ output_warning "Using installed files for $1."
+ gaze install $1 |
+ xargs cp -dp --parents --target-directory $2 2>/dev/null
+ # NOT -r !!! we don't want to copy all of /usr/share/man if our spell
+ # happens to be the first one to create it
+ else
+ fatal_warning "No way to copy $1: no trace of it could be found."
+ return 1
+ fi
+}
+
+#---------------------------------------------------------------------
+## @param spell name
+## @param location to create the archive in
+## Fallback to package_fromver, create a binary cache from all files
+## mentioned in the install log.
+#---------------------------------------------------------------------
+function package_fromlog() {
+ if gaze install $1 >/dev/null;then
+ output_warning "Using installed files for $1."
+ gaze install $1 |
+ tar --no-recursion -cjf "$2/$1-ISO-$ARCH.tar.bz2" -T -
+ else
+ fatal_warning "No way to install $1: no trace of it could be found."
+ return 1
+ fi
+}
+
+#---------------------------------------------------------------------
+## @Description
+## This function is the chaos container for all the complicated code
+## needed to set up the environment and the variable files that the
+## installer wants generated.
+##
+## It copies the grimoire and sorcery packages and the linux sources
+##
+## It also generates the list of descriptions for the optional spell
+## list.
+##
+## Finally, it creates the packages and the conflicts file.
+#---------------------------------------------------------------------
+function create_statefiles() {
+ cp ${STATE_DIR}/../../$GVERSION.tar.bz2 ${ISO_DIR}/var/lib/sorcery/codex
+ cp ${STATE_DIR}/../../sorcery-$SVERSION.tar.bz2
${ISO_DIR}/var/cache/sorcery
+ pushd /var/spool/sorcery >/dev/null
+ cp $( summon -p source linux) ${ISO_DIR}/var/spool/sorcery
+ popd >/dev/null
+
+ echo "Pre-generating optional spell list..."
+ (
+ . /etc/sorcery/config
+
+ cat ${STATE_DIR}/optional-list | sed -e 's/#.*$//' -e
's/[[:blank:]]*$//' |
+ grep -v '^$' >$TMP_DIR/optlist
+ while read spell ; do
+ codex_set_current_spell_by_name $spell >/dev/null
+ echo "\"$spell\" \"$VERSION\" \"off\" \"$SHORT\""
+ done <$TMP_DIR/optlist >${ISO_STATE_DIR}/optionalSpellList
+ rm -f $TMP_DIR/optlist
+
+ function conflicts() { #redefinition
+ echo "$SPELL:$1"
+ }
+ while read spell ; do
+ codex_set_current_spell_by_name $spell >/dev/null
+ echo "$SPELL:$(date +%Y%m%d):installed:$VERSION" \
+ >>$ISO_DIR/var/state/sorcery/packages
+ # We cannot use the host system's /var/state/sorcery/packages,
+ # as it does not have all the spells on the ISO installed at once
+
+ [ -x $SPELL_DIRECTORY/CONFLICTS ] &&
+ . $SPELL_DIRECTORY/CONFLICTS
>>$ISO_DIR/var/lib/smgl.install/conflicts
+
+ done <$TMP_DIR/allspells
+ # $TMP_DIR/allspells has been generated just before we copied cache files
+ )
+
+ cat $TMP_DIR/alldeps >>$ISO_DIR/var/state/sorcery/depends
+
+ echo "generating other pre-made lists..."
+ pushd $ISO_DIR >/dev/null
+
+ local file line
+
+ find usr/share/keymaps -type f -not -path '*/include/*' |
+ sed -e 's@^usr/share/keymaps/@@' -e 's@\.k\?map\.gz@@' |
+ sort |
+ while read line ;do #SUBSHELL
+ echo "${line##*/}" #keymap name
+ echo "${line%/*}" #path leading up to it, e.g. "qwerty"
+ done >>$ISO_STATE_DIR/keyMapList
+
+ for file in usr/share/consolefonts/*.gz ;do
+ echo "${file##*/}"
+ gunzip -c "$file" | file - | sed 's/^.*, \?//' # font dimensions
+ done >>$ISO_STATE_DIR/fontList
+
+ for file in usr/share/i18n/locales/* ;do
+ title=$(grep "^title" "$file" | cut -d '"' -f 2)
+ if [ -n "$title" ] ;then
+ echo "${file##*/}"
+ echo "$title"
+ fi
+ done >>$ISO_STATE_DIR/languageList
+
+ find usr/share/zoneinfo -mindepth 1 -type d -printf '/%h:%f:Directory\n' \
+ >>$ISO_STATE_DIR/timeZoneList
+ find usr/share/zoneinfo -type f |
+ while read line ;do #SUBSHELL
+ echo "/${line%/*}:${line##*/}:$(TZ="$ISO_DIR/$line" date +%z)"
+ done >>$ISO_STATE_DIR/timeZoneList
+
+ popd >/dev/null
+}
+
+#---------------------------------------------------------------------
+## @Description
+## This function creates a list of all spells that could get installed
+## by the ISO, as specified by install-list and optional-list.
+##
+## It also tracks dependencies and automatically adds dependencies to
+## the list too. It then prunes the depends file down to the parts
+## relevant for us and stores it.
+##
+## The list of spells is stored in $TMP_DIR/allspells, all depends
+## go into $TMP_DIR/alldeps
+#---------------------------------------------------------------------
+function generate_sufficient_spells_list() {
+ cat ${STATE_DIR}/optional-list ${STATE_DIR}/install-list |
+ filter_comments >$TMP_DIR/allspells
+ NUM_LINES=0
+ > $TMP_DIR/alldeps
+ while [ "$NUM_LINES" != "$(wc -l $TMP_DIR/allspells)" ] ;do
+ NUM_LINES=$(wc -l $TMP_DIR/allspells)
+ # When nothing here sees new spells, stop.
+ # The last run will include their depends info
+ local spell
+ while read spell ;do
+ grep "^$spell:[^:]*:on" /var/state/sorcery/depends
+ done <$TMP_DIR/allspells >$TMP_DIR/moredeps
+ cat $TMP_DIR/moredeps | cut -d: -f2 | sed 's/(.*$//' >$TMP_DIR/morespells
+ # The sed kills (BOOTLOADER) etc.
+ mv $TMP_DIR/alldeps $TMP_DIR/olddeps
+ cat $TMP_DIR/olddeps $TMP_DIR/moredeps | sort -u >$TMP_DIR/alldeps
+ rm -f $TMP_DIR/olddeps $TMP_DIR/moredeps
+
+ mv $TMP_DIR/allspells $TMP_DIR/oldspells
+ cat $TMP_DIR/oldspells $TMP_DIR/morespells | sort -u >$TMP_DIR/allspells
+ rm -f $TMP_DIR/oldspells $TMP_DIR/morespells
+
+ done # repeat until number of lines does not change anymore
+}
+
+#---------------------------------------------------------------------
+## @stdin stream of text with comments
+## @stdout same stream with comments, trailing whitespace and empty lines
stripped.
+## Note that you cannot escape a hash mark.
+#---------------------------------------------------------------------
+function filter_comments() {
+ sed -e 's/#.*$//' -e 's/[[:blank:]]*$//' | grep -v '^$'
+}
+
+. ${0%/*}/config
+
+rm -rf ${ISO_DIR}
+mkdir -p $ISO_DIR
+TMP_DIR="/tmp/mkiso.$$"
+UNPACK_DIR="${TMP_DIR}/unpack"
+rm -rf $TMP_DIR
+mkdir -m700 $TMP_DIR
+declare -a DEF_INCLUDE
+declare -a DEF_EXCLUDE
+
+echo "Creating ISO file structure..."
+
+while read line ; do
+ mkdir -p ${ISO_DIR}/${line}
+done <${STATE_DIR}/iso.dirs
+
+. ${STATE_DIR}/iso.packages
+
+pushd $ISO_DIR/dev >/dev/null
+ $SKELETON/sbin/MAKEDEV generic-nopty md
+ mknod initctl p
+popd >/dev/null
+
+cp ${STATE_DIR}/initrd.gz $ISO_DIR/boot/initrd.gz
+
+echo "Copying cache tarballs..."
+
+generate_sufficient_spells_list
+while read spell ; do
+ package_fromver $spell ${ISO_DIR}/var/cache/sorcery/
+done <${TMP_DIR}/allspells
+
+pushd $SKELETON >/dev/null
+cp -af --parents $(find * -maxdepth 0 ! -name initrd) $ISO_DIR
+popd >/dev/null
+
+[ -e ${STATE_DIR}/iso.patch ] &&
+ patch -d $ISO_DIR -p0 ${STATE_DIR}/iso.patch
+
+cp /sbin/ldconfig ${ISO_DIR}
+chroot ${ISO_DIR} /ldconfig
+rm ${ISO_DIR}/ldconfig
+
+cp /sbin/depmod /sbin/depmod.old ${ISO_DIR}
+chroot ${ISO_DIR} /depmod $KERNEL_VERSION
+rm ${ISO_DIR}/depmod ${ISO_DIR}/depmod.old
+
+# symlinks would be pointing to ${INSTALL_ROOT} if we used that feature
+# have to run after ldconfig so everything finds its libs
+mkdir ${ISO_DIR}/tmpsorcery
+tar -C ${ISO_DIR}/tmpsorcery -xjf
${STATE_DIR}/../../sorcery-$SVERSION.tar.bz2
+chroot ${ISO_DIR} sh -c "cd /tmpsorcery/sorcery ; ./install"
+rm -r ${ISO_DIR}/tmpsorcery
+
+echo "Generating installer-related files"
+create_statefiles
+
+[ -e ${STATE_DIR}/iso.command ] &&
+ . ${STATE_DIR}/iso.command
+
+rm -r ${TMP_DIR}
+
+# all ready
+echo "generating ISO, outputting to /$ISO_FILENAME"
+# ISO ends up in the / directory of the chroot
+. ${STATE_DIR}/iso.mkfscommand /$ISO_FILENAME $ISO_DIR

=== added file 'iso/generation-scripts/mkprep'
--- /dev/null
+++ iso/generation-scripts/mkprep
@@ -0,0 +1,113 @@
+#!/bin/bash
+SCRIPTDIR=${0%/*}
+[ -e /etc/smgl-isogen.conf ] && . /etc/smgl-isogen.conf
+. $SCRIPTDIR/config
+
+if [ $# -lt 1 ] || [[ "$1" == "/" ]] ;then
+ echo "usage: $0 <path_to_p4_in_chroot>"
+ exit 1
+fi
+
+if [[ ${1: -8} != "/root/p4" ]] ;then
+ echo "WARNING! The parameter of this script ($1) is supposed to be"
+ echo "the directory where the scripts should be copied to. The recommended"
+ echo "location is /root/p4 inside the chroot."
+ echo "This directory will be rm -r'ed."
+ echo ""
+ read -t 10 -p "Do you still want to continue? [n]" -n 1 SANITY
+ echo
+ [[ "$SANITY" == "y" ]] || exit 2
+fi
+
+function choose_multi()
+{
+ local basicname foundname tempname
+ if [[ -z $1 ]] ;then
+ echo "choose_multi called on no file!"
+ return 1
+ fi # Things get really evil otherwise
+ basicname="$1"
+ tempname="$1"
+ shift
+ while [ $# -gt 0 ] ;do
+ tempname="${tempname}.$1"
+ [[ -L "$tempname" ]] || [[ -e "$tempname" ]] && foundname="$tempname"
+ # Symlinks into nowhere need to be caught too
+ shift
+ done
+ if [[ "$foundname" ]] ;then
+ rm -rf "$basicname"
+ mv "$foundname" "$basicname"
+ fi
+ rm -rf "$basicname".*
+ if [[ "$(readlink $basicname)" == "no/../op" ]] ;then
+ rm -f "$basicname"
+ fi
+}
+
+function process_templates()
+{
+ local pattern
+ local line
+ [[ -e "$1" ]] || return #Files not existing throws ugly errors here...
+ cp "$1" ${TMP_DIR}/tmp.template
+ while read line ; do
+ eval pattern="$line"
+ sed -i "s/$pattern/g" ${TMP_DIR}/tmp.template
+ done <${STATE_DIR}/smgl.patterns
+ cat ${TMP_DIR}/tmp.template |
+ grep -v "^__SMGL_TEMPLATE_NOT_${ISO_ARCH}__" |
+ grep -v "^__SMGL_TEMPLATE_NOT_${ISO_BRANCH}__" |
+ sed 's/^__SMGL_TEMPLATE_NOT_[^_]*__//' |
+ sed "s/^__SMGL_TEMPLATE_ONLY_${ISO_ARCH}__//" |
+ sed "s/^__SMGL_TEMPLATE_ONLY_${ISO_BRANCH}__//" |
+ grep -v "^__SMGL_TEMPLATE_ONLY_[^_]*__" >"$1"
+ rm ${TMP_DIR}/tmp.template
+}
+
+rm -rf $1
+mkdir -p $1
+cp -a --no-preserve=ownership $SCRIPTDIR/../* $1
+
+# redefine
+STATE_DIR=$1/data
+SKELETON=$1/skeleton
+SCRIPTS=$1/generation-scripts
+
+cp -a --no-preserve=ownership $SCRIPTDIR/../../ChangeLog $SKELETON
+{
+ cat /etc/smgl-isogen.conf 2>/dev/null
+ echo "ISO_VERSION=$ISO_VERSION"
+ # Set ISO version to version of copy
+ # (avoiding different $(date)'s for templates->files and the .iso file)
+ cat $SCRIPTDIR/config
+} >$SCRIPTS/config
+
+choose_multi $STATE_DIR/smgl.multi $ISO_ARCH
+choose_multi $STATE_DIR/smgl.templated $ISO_ARCH
+choose_multi $STATE_DIR/smgl.patterns $ISO_ARCH
+process_templates $STATE_DIR/smgl.multi
+process_templates $STATE_DIR/smgl.templated
+
+while read line ;do
+ eval choose_multi $line
+ # so $SKELETON etc. get a chance to expand
+done <$STATE_DIR/smgl.multi
+
+while read line ;do
+ eval help="$line"
+ process_templates "$help"
+done <$STATE_DIR/smgl.templated
+
+#if ! [ -e ${STATE_DIR}/linux-ISO.tar.bz2 ] ;then
+# echo "Missing a linux tarball for the ISO, generating one"
+# gaze install linux | tar --no-recursion -cjf
${STATE_DIR}/linux-ISO.tar.bz2 -T -
+#fi
+if ! [ -e $1/../$GVERSION.tar.bz2 ] ;then
+ echo "Missing grimoire tarball, fetching..."
+ wget -O $1/../$GVERSION.tar.bz2
"http://codex.sourcemage.org/$GVERSION.tar.bz2";
+fi
+if ! [ -e $1/../sorcery-$SVERSION.tar.bz2 ] ;then
+ echo "Missing sorcery tarball, getting..."
+ wget -O $1/../sorcery-$SVERSION.tar.bz2
"http://download.sourcemage.org/sorcery/sorcery-$SVERSION.tar.bz2";
+fi

=== added file 'iso/generation-scripts/nightlybuild.sh'
--- /dev/null
+++ iso/generation-scripts/nightlybuild.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+LOGFILE="$(pwd)/isogen-log.$(date +%Y%m%d%H)"
+[[ -e mkprep ]] ||
+ cd ${0%/*}
+
+if ! [[ $1 ]] ;then
+ echo "syntax: $0 /path/to/chroot"
+ exit 1
+fi
+
+if ! [[ -x $1/usr/sbin/sorcery ]] ;then
+ echo "error: $1 must be a working chroot"
+ exit 1
+fi
+
+exec 17>$LOGFILE
+export ISOGEN_LOGFILE=/dev/fd/17
+
+./sanitize_chroot.sh $1
+
+export ISO_VERSION="smgl-nightly"
+. /etc/smgl-isogen.conf
+. config
+
+rm -f $1/root/sorcery-$SVERSION.tar.bz2
+rm -f $1/root/$GVERSION.tar.bz2
+./mkprep $1/root/p4 1>&17 2>&17
+
+chroot $1 /root/p4/generation-scripts/autoupdate.sh

=== added file 'iso/generation-scripts/sanitize_chroot.sh'
--- /dev/null
+++ iso/generation-scripts/sanitize_chroot.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+[[ -e $1/proc/cpuinfo ]] ||
+ mount -t proc proc $1/proc
+
+mount | grep -q $1/var/spool/sorcery ||
+ mount --bind /var/spool/sorcery $1/var/spool/sorcery
+
+[[ -e $1/dev/console ]] ||
+ mount --bind /dev $1/dev

=== added directory 'iso/skeleton'
=== added file 'iso/skeleton/CONTRIB'
--- /dev/null
+++ iso/skeleton/CONTRIB
@@ -0,0 +1,32 @@
+===========================================================
+Credits for the Source Mage GNU/Linux ISO.
+Karsten Behrmann <BearPerson AT sourcemage.org> (2004-)
+
+Kevin Dahan <unet AT sourcemage.org> (2003-)
+
+He Who Does Not Wish To Be Named (2004)
+ * Cranked out a good lot of good ISOs
+special thanks for:
+ Terrorizing our wiki and mailing list for months
+
+David Kowis <dkowis AT shlrm.org> (2005-)
+
+Benoit Papillault <benoit.papillault AT free.fr> (2003-)
+
+Kyle Sallee (2001-2002)
+ * Starting sorcerer
+special thanks for:
+ pulling the plug on us
+
+Laurent Wandrebeck <low AT sourcemage.org> (2003-2004)
+
+Seth Woolley <seth AT tautology.org> (2003)
+
+===========================================================
+This list does not claim to be complete, we solely wish
+to give those credit who deserve/claim it so we can get
+rid of credits in other annoying places.
+
+If you do or do not wish to be mentioned in this file,
+please tell the ISO team about it (we'll usually be
+reachable under iso AT sourcemage.org).

=== added directory 'iso/skeleton/bin'
=== added file 'iso/skeleton/bin/login-shell.sh'
--- /dev/null
+++ iso/skeleton/bin/login-shell.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+export HOME=/root
+export SHELL
+cd /
+exec /bin/bash -l

=== added directory 'iso/skeleton/boot'
=== added file 'iso/skeleton/boot/boot.bmp'
--- /dev/null
+++ iso/skeleton/boot/boot.bmp
@@ -0,0 +1,240 @@
+BM@:v(???9?
+?
+???LJL?LDF?
+ ???dfd?464|~|$&$???(???Z?????)!) ????
?????? ???????))????))??????"?)??,???)!????))????? )?)
????????
????)!??) ????? ?????? ???
????))???))?????))-?????)!?????))???????)
?????????????)!)??) ????? -???? ???
????))???))????????? ?????)!?????))??????.)
???????????)!? ?)?????? ?????? ???
?????)???)???????????-??????)!???????)????????)?
???????
?????????)???? ????????
????)????)?????????????)??????)???????)!)?
??????? ???-??????!???h ???  !????!?????????
?????????a
?
+??? ???!???
?!??????)!?????
+?? ??
+?)  ?????
+
???????????????
+? ??N
???x?? ??? ????????????
?)?
?))?)?????????????? x
???? ?? ????)
+????)*?? ? ????))??)?!?????????? v
???? ??? ????) ????) ?* ?
!????))?*)?????))?????v
??? ?????????) ?????) ??* ? ???)?*)?!????))?????v
??? ???)?????
+)????*) ? ?,???))?????)??????v
??a?????????)!?? ? ????????

????? ??6 ???? ???
?
????8?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????H?M@??J?
+??@"M????H??
+????????"?????P??
*?????"?????P!?*???AA??"?????P!?*???????"?????P!?*???!!???"?????4??*???!!?"?????H?*???????"?????*?*????
?"?????P!H
+*&???????"?????>!?!? b?m???
??????P?@????-?? ???????
+?*@*?J?@???"?????0?
?L??
??6???????????6???????????????????`???\?dDFh???$?hf?hf?hf?f?hf?h?hf?hf?h????f?hf?hf
+d??>?Fh?hf?hf?hf?hf?hf?h????fN ?
+?hd?
+DhD ??FdN??f?dN??hL?N?*???.@? .?b
?```D?```???N?*? ?,??d?"??",?hd?"? ?,???*
+??,?`?L"*
+?\",???N?????????????????? ??)? ?)?L???????`?????
??hN*???fL*? ?""??
+?,Hd???
+????n???@?<???????? ? ??)? ?)??????H??n"?D?

+???@*?
+??L..`????D
????????)?
?? ??? ?)??)???????n*???
+????-?
+*??B??H?N*?D
????????)??? ? )? ????)?
??"???????-
+??-??
+?$????H??@D
????????)??? ? )? ?)??)? ??
+???l??-?
+?,-??
+?$??
+?Hn-?
+
+
????4???)? ? )? ?)???????$??L??!@
+?,-??
+?.f?
+
?F??
+
????4????? ?? ? )? ?)??)?
+???$??L??? ?"-??`
+A.f??
+
?D?? D
?" ?????)??? ? )? ????)????&??L?"? -?????
+?f??
+??- D
?????????)?
+? ? )? ???)???$??L?"? ?????? 
+?d??A???D
?????????)?
+M? ??)? ?????????????L?"? A??????
+
?D-??,??* ?????)???)?
+??I? , $??L?*? ??????
+
??-??,??(?????)???)?
+???? )??&??L?*? 
??????
+
"???,-?( ?(? ?.B,?????""??,?$??L?? 
?????
+
???,-`!???? ????L?? 
+????????"????*???L??? 
+?????*"?????"???L??? 
?????(?"?"????
+
+??,H??L???  ?????( ?,? ?????
????`??L????????(
+??? ??????
,??H??L????????(
+??? ??????
??DDfh????L??@??????(
??? ??????
+
?h??L??????"?(??? ??????
?H??L????"??&??? ??????
?@??L?!??"??&?,?? ??????
?H??L????"- &-.?? ??????
?@??L?A??,-?&?$?? ??????
?H??L???,*?&???? ?"????
?@??L???,*???????? ?????
?H??L?
??,?
+??? ????
??Dff??L?
+??$?
+?
+??? ?????
,???F???L??
+??.?? ?
+ ???? ????
?????`??L????$?? ?*
+???? ????
+??,F??L?? ??.???
+
+?H?? ????"???L????.???
+
?F?? ????*????L????.L????
+
???? ????????L????$L????
+?f?? ?????$??L????&L????
+A.h?? ?????$???L???
+?$n?`???
+?.?? ??????&???L???
+?$n-????
+?$??? ??????$??L?
+???
+?&n- ? 
+?&???  ?D???$??L?
+?A?
+?$?-???
+????? ?? ??d???$???L?
+??
+?$d??a?
+???? ""? ?,?d???&???L?
+??
+?$???`
+??? ??? ??h???????L?
?
+?&??? ????
+ ??dN?
+H`??*????L??
+?
+?$??
 ????
+ ?????
+?f???"???L??
+
+?
+?&???

+?H??
+ ???*?
+"?d??
+??,H??L??
?
+?$???
+
+?@??
+ ???* ? ??.d??
????????L? 
 ?
+?&?B?
?h?? ??"?D??
,???f???L??
+?
+?$b?  ???? ???????
??df????L?
+?
+?$?L? ?`?? ?"?????
?H???L??
+?$l? ?.?? ?"????
?@??L?!
+?$l? -.??? ?"????
?H??L?? ?$?n??? ?$?? ??????
?@??L??` ?&?-?? ????? ?"????
?H??L???? ?$?- ? ??B? ?"?
+????
+
?@????L??  ?$-?  ?B? ?"?
+ ?N??
??DFh`???L??? ?$????? ?b? ???
+ ????
,????`??L? ??? ?&????  ??L? ?"?
+
+????
????,F???L?
+??? ?$??
+?@l???
+
+?D??
+??"???L?
+?*? ?$?
+?H???
+
?d??.`??L?
?* ?$???
?@n?
+
?d??
+.`??L?
?? ?&???
?`-???
+M.d??
????L???? ?$B????-??
+-$d??
?`??L??,?? ?$B??.`??&
+?????
?H??L??.?? ?$?L??.??$ ?????
?@??L??.?? ?&?l??$?L?$
+?O???
?H??L??$L? ?$l??$n- " -.????
?@??L???L??$??`????? ?????
?H??L??n??$??-???L?????????
?@??l?
+?n-@?&?- ?
+n*??.F?-?
?h??l? ??-?????? ??
+???????fN*?
+????n* ?H???*???  ?H n??@???FFN*?
+.`??n" .`?? ???? .`
+?L*?@-?s?DDN??.`???????hL*??,@N*????c
? Pdww?
B??#?DN???wr????n?-w|ff?"?wr??d??w }?"?F
?P??w$?????wz,?DDdDD?"??w~H???fN7w?Xd?w{8?Kw
+>?F`? ?P??w?
+wr???Ddd??""?7w6`???? ??;???
+?h? ?P??ww""?????DDdFD
+???f;?8??;???P?P ?P
+? ?FFD3FD FDD`;?0???0??0[?? ?P
+?????4DDFFDd DF;?0????;??;?? ?P
+?
+?FDddFDF_;?0??
+??U ?? ??[
+?? ??;
+?? ?P
+??DdDdD
+N?;?0??
+???
+?? ?P ? ?P ? ?P
+??DdDdDDdDFDDC?;?0??
+?0
+?? ?? ?? ?? ? ?P
+??ddDdDDdFDFD??; ?30??
+?0
+?? ? ?P ? ?? ?P
+??hDdDF D
+;?;
+????[
+?0
+?? ? ?P ? ?P ?P
+??dDFDdDFDFDdD;?;
+????[
+?0
+?? ? ?P ? ?P ?P
+?
+?DdDd DFD d;?;
+????[
+?0
+?? ? ?0 ? ?P ?P
+?TD FDFDddDDFDE??P;
+????[
+?0
+?? ? ?0 ? ?P ?P??DdDdDDFDFD [??P;
+????[
+?0?
+?? ? ?0 ? ?P ?P??dDdDDFDdD?P;
+????[
+?0;
+?? ? ?0 ? ?P ?P?TDDdD
+dDDFFDe?P;
+?????
+3P ?? ? ?0 ? ?P ?P??
+D
+FDDFFDFD??P;
+????; ?? ? ?0 ? ?P ?P?TFDdDdDFD
+dFDD;?P;
+????[?0 ? ?0 ? ?P ? P???F
+D dDDdDdDC3P;
+?????0 ? ?0 ? ?P ?
+P???DdDFDDdDFDFF ;
+??3????? ? ?0 ? ?P
?"_[??4DDdDFDdDFDDFD@ ;????;?? ? ?0 ?
?P?Td Dd
+DdD` ;????[?? ? ?0 ? ?P?DDFDDdFD
FFDdDD;?????? ? ?0 ? ?P??D
dDDFDdDFH;????;?? ? ?0 ?
?P??DFDdD dDDdD`;?????? ? ?0 ?
?P??D
+dDdDFDddND;????[?P ? ?0 ?
?P?4DdDDdDFDDFD?O U?;??????
+ ? ?0 ? ?P??DDd
+DdDFDND? ?P;??????  ? ?0 ? ?P ?
+3???FDdFDdDNDDdD ?P; ?35?? ???  ? ?0 ?
?P ?P??DDFDN??dDDh ?P;
+??????P ? ?0 ? ?P ?&P??dFD?DdFD???FDh
?P;
+????[ ?? ? ?0 ? ?P ?P??D??D?DF?
?P;
+????[
+?? ? ?0 ? ?P ?&P??DDN??FDdN?DDf ?P;
+????;
+??[
+?0 ? ?0 ? ?P ?P??FDn?D?DX ?P;
+????;
+?0[
+?0 ? ?0 ? ?P ?&P??DDN?FFDdNDFN? ?P;
+????;
+?0[
+?0 ? ?P ? ?P ?P??DD? D dD[? ??;
+????;
+?0[
+?0 ? ?P ? ?P ?&P??dD?DdDFDdD??? ?;
+????;
+?0[
+?0 ? ?P ? ?P ?P??DF?DDdD C??? ?;
+????[
+?0[
+?P ?P ?? ? ?P ?P??DFDdL;???
+??;????[
+??;
+?P ?P ? ? ?P ?
+3???FD
+FDdD;??
+??;???? ?3 ?? ??;
+?? ? ?P?4DdDL
+?3;
+??;???? ?[?? ?
?P??DFDdDFDFC??;?????? ?0 ?
?P?4DFD;?0;???????? ? ?P?
?33<DF
+DdD[??;????[?0[?? ?
?P?<???DNDDFFDdD???;??????
+?P ? ?P??
+??dDN`[??;???????P [?? ? ?P?<??
DdFF;?0;????S ??PS ?5
+ 3 3P
+3,?DdDDdDDN`; ??
+S3??35?3P:????FDD?D?
S35???T?fN?DD????Z
+?DFD`?
?^?$?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
\ No newline at end of file

=== added directory 'iso/skeleton/etc'
=== added file 'iso/skeleton/etc/fstab'
--- /dev/null
+++ iso/skeleton/etc/fstab
@@ -0,0 +1,9 @@
+proc /proc proc defaults 0 0
+tmpfs /dev/shm tmpfs defaults 0 0
+tmpfs /dev/mapper tmpfs defaults 0 0
+devpts /dev/pts devpts defaults 0 0
+tmpfs /var/lock tmpfs defaults 0 0
+tmpfs /var/log tmpfs defaults 0 0
+tmpfs /var/run tmpfs defaults 0 0
+tmpfs /tmp tmpfs defaults 0 0
+sysfs /sys sysfs defaults 0 0

=== added file 'iso/skeleton/etc/group'
--- /dev/null
+++ iso/skeleton/etc/group
@@ -0,0 +1,18 @@
+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:

=== added file 'iso/skeleton/etc/hostname'
--- /dev/null
+++ iso/skeleton/etc/hostname
@@ -0,0 +1,1 @@
+smgl-install

=== added directory 'iso/skeleton/etc/init.d'
=== added directory 'iso/skeleton/etc/init.d/runlevels'
=== added file 'iso/skeleton/etc/init.d/runlevels/tmpfs.sh'
--- /dev/null
+++ iso/skeleton/etc/init.d/runlevels/tmpfs.sh
@@ -0,0 +1,48 @@
+#!/bin/sh
+
+PROGRAM=/bin/false
+RUNLEVEL=DEV
+ESSENTIAL=yes
+
+. /etc/init.d/smgl_init
+. /etc/sysconfig/init
+
+start()
+{
+ { >/etc/writable ; } 2>/dev/null && return 0
+ # If it's already writable, do nothing.
+
+ required_executable /bin/mount
+ required_executable /bin/mkdir
+ required_executable /bin/cp
+
+ echo "Mounting tmpfs..."
+ /bin/mount -t tmpfs tmpfs /tmp
+ evaluate_retval
+
+ for i in etc root var/log var/lib/nfs ;do
+ echo "setting up a writeable /$i..."
+ /bin/mkdir -p /tmp/$i &&
+ /bin/cp -a --parents /$i /tmp &&
+ /bin/mount --bind /tmp/$i /$i
+ evaluate_retval
+ done
+
+ /bin/mount proc -t proc /proc
+}
+
+stop()
+{
+ exit 0
+}
+
+restart() { exit 3; }
+reload() { exit 3; }
+force_reload() { exit 3; }
+status() { exit 3; }
+
+usage()
+{
+ echo "Usage: $0 {start|stop}"
+ echo "Warning: Do not run this script manually!"
+}

=== added file 'iso/skeleton/etc/inittab'
--- /dev/null
+++ iso/skeleton/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 /usr/sbin/installer.sh /dev/tty1 9600
+tty2:linux:/sbin/agetty -n -l /usr/sbin/bg-install.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 /usr/bin/installer-help.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

=== added file 'iso/skeleton/etc/issue'
--- /dev/null
+++ iso/skeleton/etc/issue
@@ -0,0 +1,2 @@
+Welcome to \l of \n on \d
+Running Source Mage GNU/\s, kernel \r on \m

=== added file 'iso/skeleton/etc/ld.so.conf'
--- /dev/null
+++ iso/skeleton/etc/ld.so.conf
@@ -0,0 +1,2 @@
+/lib
+/usr/lib

=== added symlink 'iso/skeleton/etc/mtab'
=== target is '/proc/mounts'
=== added file 'iso/skeleton/etc/nsswitch.conf'
--- /dev/null
+++ iso/skeleton/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
+

=== added file 'iso/skeleton/etc/passwd'
--- /dev/null
+++ iso/skeleton/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

=== added file 'iso/skeleton/etc/shadow'
--- /dev/null
+++ iso/skeleton/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:::

=== added file 'iso/skeleton/etc/shells'
--- /dev/null
+++ iso/skeleton/etc/shells
@@ -0,0 +1,2 @@
+/bin/sh
+/bin/bash

=== added file 'iso/skeleton/etc/shutdown.conf'
--- /dev/null
+++ iso/skeleton/etc/shutdown.conf
@@ -0,0 +1,2 @@
+# Custom SMGL ISO file to enable some weird magic to eject the CD on reboot
+HALT_ACTION = /sbin/dummy-halt.sh

=== added directory 'iso/skeleton/etc/sorcery'
=== added directory 'iso/skeleton/etc/sorcery/local'
=== added file 'iso/skeleton/etc/sorcery/local/config'
--- /dev/null
+++ iso/skeleton/etc/sorcery/local/config
@@ -0,0 +1,3 @@
+ GPG_VERIFY_SORCERY="on"
+ GPG_VERIFY_GRIMOIRE="on"
+ ARCHITECTURE="i486"

=== added file 'iso/skeleton/etc/sorcery/local/config.ppc'
--- /dev/null
+++ iso/skeleton/etc/sorcery/local/config.ppc
@@ -0,0 +1,3 @@
+ GPG_VERIFY_SORCERY="on"
+ GPG_VERIFY_GRIMOIRE="on"
+ ARCHITECTURE="g3"

=== added directory 'iso/skeleton/etc/sorcery/local/depends'
=== added file 'iso/skeleton/etc/sorcery/local/depends/linux.p'
--- /dev/null
+++ iso/skeleton/etc/sorcery/local/depends/linux.p
@@ -0,0 +1,10 @@
+kernel_arch="i386"
+mode="newktree"
+reconf="false"
+kver="__KERNEL_SOURCE_VERSION__"
+patches="__KERNEL_PATCHES__ "
+selected_patches="__KERNEL_PATCHES__ "
+CONFIG_RESTORE="/etc/sorcery/local/kernel.config"
+MAKEMODE="oldconfig"
+UPDATE_BL="n"
+CONFIG_KERNEL="n"

=== added file 'iso/skeleton/etc/sorcery/local/depends/linux.p.ppc'
--- /dev/null
+++ iso/skeleton/etc/sorcery/local/depends/linux.p.ppc
@@ -0,0 +1,10 @@
+kernel_arch="ppc"
+mode="newktree"
+reconf="false"
+kver="__KERNEL_SOURCE_VERSION__"
+patches="__KERNEL_PATCHES__ "
+selected_patches="__KERNEL_PATCHES__ "
+CONFIG_RESTORE="/etc/sorcery/local/kernel.config"
+MAKEMODE="oldconfig"
+UPDATE_BL="n"
+CONFIG_KERNEL="n"

=== added file 'iso/skeleton/etc/sorcery/local/grimoire'
--- /dev/null
+++ iso/skeleton/etc/sorcery/local/grimoire
@@ -0,0 +1,1 @@
+GRIMOIRE_DIR[0]=/var/lib/sorcery/codex/__GRIMOIRE_VERSION__

=== added file 'iso/skeleton/etc/sourcemage_version'
--- /dev/null
+++ iso/skeleton/etc/sourcemage_version
@@ -0,0 +1,1 @@
+Source Mage GNU/Linux __SMGL_TEMPLATE_ISO_VERSION__
__SMGL_TEMPLATE_ISO_ARCH__

=== added directory 'iso/skeleton/etc/sysconfig'
=== added file 'iso/skeleton/etc/sysconfig/devices'
--- /dev/null
+++ iso/skeleton/etc/sysconfig/devices
@@ -0,0 +1,2 @@
+# type of device management, "static", "devfs" or "udev"
+DEVICES=static

=== added file 'iso/skeleton/etc/sysconfig/facilities'
--- /dev/null
+++ iso/skeleton/etc/sysconfig/facilities
@@ -0,0 +1,21 @@
+root_fs=mountroot.sh
+
+modules=modutils
+
+network=network
+
+syslog=
+
+local_fs=mountall.sh
+
+remote_fs=smgl-default-remote-fs
+
+identd=
+
+portmap=
+
+# sendmail, postfix
+mta=
+
+# xdm, gdm, ...
+display_manager=

=== added directory 'iso/skeleton/initrd'
=== added directory 'iso/skeleton/initrd/etc'
=== added file 'iso/skeleton/initrd/etc/fstab'
=== added file 'iso/skeleton/initrd/etc/ld.so.conf'
--- /dev/null
+++ iso/skeleton/initrd/etc/ld.so.conf
@@ -0,0 +1,1 @@
+/lib

=== added directory 'iso/skeleton/initrd/sbin'
=== added symlink 'iso/skeleton/initrd/sbin/init'
=== target is 'smgl.init'
=== added file 'iso/skeleton/initrd/sbin/smgl.init'
--- /dev/null
+++ iso/skeleton/initrd/sbin/smgl.init
@@ -0,0 +1,318 @@
+#!/bin/bash
+
+shell() {
+ echo "Press CTRL-D or type exit to return"
+ /bin/bash
+}
+
+show_modules() {
+ for ITEM in "$1"/* ;do
+ echo ${ITEM%%*/}
+ if [[ -d "${ITEM}" ]] ;then
+ echo "Directory"
+ else
+ echo "Module"
+ fi
+ done
+}
+
+input_module_parameters() {
+ "${DIALOG[@]}" --nocancel --inputbox \
+ "You can optionally enter module parameters" 0 60
+}
+
+# returns when the user is done loading modules
+
+load_module() {
+
+ if [ -n "$1" ]; then
+ while true ;do
+ MODULE=$("${DIALOG[@]}" \
+ --title "Module Menu" --cancel-label "back" \
+ --menu "Please select a module to load:" 15 60 0 \
+ $(show_modules "$1"))
+
+ # if the user hit the <Cancel> button, we return.
+ [ -n "${MODULE}" ] ||
+ return -1;
+
+ if [ -d "$1/${MODULE}" ] ;then
+ #the user selected a directory, we display a new menu
+ load_module "$1/${MODULE}"
+ elif [ -f "$1/${MODULE}" ]; then
+ # he selected a file, load that menu
+ # remove .o (2.4 kernels) or .ko (2.6 kernels) extension.
+ MODULE=${MODULE%.o} &&
+ MODULE=${MODULE%.ko} &&
+ PARAMETERS=$(input_module_parameters) &&
+ echo "Running modprobe ${MODULE} ${PARAMETERS}" &&
+ if modprobe "${MODULE}" $PARAMETERS ;then
+ read -p "Success. Press enter..."
+ else
+ read -p "Failure. Press enter..."
+ fi
+ fi
+ done
+
+ else
+ MODULE_DIR="/lib/modules/${KERNEL}/kernel"
+
+ if [ ! -d "${MODULE_DIR}" ]; then
+ "${DIALOG[@]}" --msgbox "Unable to find any modules" 6 60
+ return -1;
+ fi
+ load_module "${MODULE_DIR}"
+ fi
+}
+
+test_cdrom() {
+ local found=false
+ mount -n -r -t iso9660 $1 $MOUNT 2>/dev/null
+ if [ -f $ID ] ;then
+ found=true
+ fi
+ umount -n $MOUNT 2>/dev/null
+ $found
+}
+
+# at the end SMGL_CD is defined to the device where the SMGL CD is found
+# or else SMGL_CD is undefined
+
+scan_cdroms() {
+
+ unset SMGL_CD
+
+ for handler in /proc/*/*/media ;do
+ if grep -q 'cdrom' $handler ;then
+ handler=${handler%/media}
+ device=/dev/${handler##*/}
+
+ test_cdrom $device &&
+ {
+ SMGL_CD=$device
+ return
+ }
+ fi
+ done
+
+ echo "Trying harder to find the SMGL CD..."
+ # 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
+
+ [ -b /dev/$name ] ||
+ mknod /dev/$name b $major $minor
+
+ test_cdrom /dev/$name &&
+ {
+ SMGL_CD=/dev/$name
+ return
+ }
+
+ done </proc/partitions
+}
+
+
+toggle_hotplug() {
+ [[ "$HOTPLUG_ACTION" == "enable" ]] &&
+ HOTPLUG_ACTION="disable" ||
+ HOTPLUG_ACTION="enable"
+}
+
+show_filesystems() {
+
+ for FILESYSTEM in `grep -v nodev /proc/filesystems`;
+ do
+
+ echo "${FILESYSTEM}"
+ echo filesystem
+
+ done
+
+}
+
+
+select_root() {
+
+ FILESYSTEMS=`show_filesystems` &&
+
+ NEW_ROOT=`"${DIALOG[@]}" --inputbox \
+ "Please enter the root device." \
+ 8 60 \
+ "${ROOT}"` &&
+
+ NEW_VFSTYPE=`"${DIALOG[@]}" --menu \
+ "Please select a file system." \
+ 7 60 0 \
+ $FILESYSTEMS` &&
+
+ NEW_OPTIONS=`"${DIALOG[@]}" --inputbox \
+ "Please enter mounting options" \
+ 8 60 \
+ "${OPTIONS}"` &&
+
+ ROOT="${NEW_ROOT}" &&
+ VFSTYPE="${NEW_VFSTYPE}" &&
+ OPTIONS="${NEW_OPTIONS}"
+
+}
+
+main_menu() {
+
+ HOTPLUG_ACTION="disable"
+ # NOTE: this is the opposite of the status of the toggle
+
+ while true;
+ do
+
+ M_HELP="Select modules to load"
+ S_HELP="Shell out for a moment"
+ H_HELP="toggle if the ISO runs hotplug"
+ R_HELP="Choose the device to be mounted as /"
+ D_HELP="Continue the normal boot process"
+
+ scan_cdroms
+
+ if [ -z "$SMGL_CD" ] &&
+ [ -z "$ROOT" ]; then
+
+ HELP="Load the correct low level SCSI driver kernel module
+ to be able to detect and read the SCSI CDROM."
+
+ DEFAULT_ITEM="M"
+
+ elif [ -z "$ROOT" ]; then
+
+ HELP="The Source Mage GNU/Linux Install/Rescue CDROM is
+ detected on $SMGL_CD"
+
+ DEFAULT_ITEM="D"
+
+ else
+
+ HELP="You have selected to mount $ROOT as the root file
+ system."
+
+ DEFAULT_ITEM="D"
+
+ fi
+
+ COMMAND=`"${DIALOG[@]}" --title "Initrd Menu" \
+ --nocancel \
+ --item-help \
+ --default-item "$DEFAULT_ITEM" \
+ --menu \
+ "$HELP" \
+ 8 60 0 \
+ "M" "Load modules " "$M_HELP" \
+ "S" "Shell " "$S_HELP" \
+ "H" "$HOTPLUG_ACTION hotplug" "$H_HELP" \
+ "R" "Choose root device (For rescue mode)"
"$R_HELP" \
+ "D" "Continue booting " "$D_HELP"`
+
+ case $COMMAND in
+ M) load_module ;;
+ S) shell ;;
+ H) toggle_hotplug ;;
+ R) select_root ;;
+ D) return ;;
+ esac
+
+ done
+}
+
+
+main() {
+
+ while true ;do
+
+ main_menu
+ if [ -z $ROOT ] && [ -z $SMGL_CD ] ;then
+ # height is 6 lines :
+ # 1 line for drawing a top line
+ # 1 line for a blank line
+ # 1 line of text
+ # 1 line for drawing a line
+ # 1 line for <OK> button
+ # 1 line for drawing a bottom line
+ "${DIALOG[@]}" --msgbox "Unable to boot without a root." 6 60
+ continue
+ fi
+
+ ROOT=${ROOT:-$SMGL_CD}
+ VFSTYPE=${VFSTYPE:-iso9660}
+ OPTIONS=${OPTIONS:-"defaults,ro"}
+
+ mount -n -t $VFSTYPE -o $OPTIONS $ROOT $MOUNT ||
+ {
+ "${DIALOG[@]}" --msgbox "Unable to mount $ROOT as $VFSTYPE." 6 60
+ continue
+ }
+
+ if [ ! -x $MOUNT/sbin/init ]; then
+ "${DIALOG[@]}" --msgbox "Unable to locate /sbin/init on $ROOT." 6 60
+ umount -n $MOUNT
+ continue
+ fi
+
+ umount -n /proc
+
+ # setup writable /etc /root and nfs stat dir if ISO is ROOT
+ if [ -f $ID ] ;then
+ /bin/mount -t $VFSTYPE -o $OPTIONS $ROOT $MOUNT/mnt/cdrom
+ cd $MOUNT/mnt/cdrom
+ for i in etc root var/log var/lib/nfs ;do
+ echo "Setting up writable /$i for install"
+ /bin/mount -t tmpfs tmpfs $MOUNT/$i
+ $MOUNT/bin/cp -a --parents $i $MOUNT
+ done
+ cd $MOUNT
+ /bin/umount $MOUNT/mnt/cdrom
+
+ # Installer needs this to do its "eject CD" magic
+ echo "$ROOT" >$MOUNT/etc/cddev
+ fi
+
+ if [[ "$HOTPLUG_ACTION" == "enable" ]] ;then
+ # Menu entry was "enable", so it was set to disabled
+ $MOUNT/bin/chmod a-x $MOUNT/etc/init.d/runlevels/%S/hotplug
+ fi
+
+ cd $MOUNT
+
+ if [ -d initrd ]; then
+ pivot_root . initrd
+ else
+ pivot_root . mnt
+ fi
+
+ echo "Running /sbin/init $@"
+
+# if the new root filesystem uses devfs, /dev/console should not exist
+ if [ ! -e dev/console ]; then
+ mount -n -t devfs devfs dev
+ fi
+
+ mount -n -t proc proc proc
+
+ exec chroot . /sbin/init "$@" <dev/console >dev/console 2>&1
+
+ done
+
+}
+
+# here is the real start of this shell script
+
+export PATH=/bin:/usr/bin:/sbin:/usr/sbin
+
+DIALOG=( "dialog" "--trim" "--stdout" \
+ "--backtitle" "Source Mage GNU/Linux initrd" )
+
+mount -n -t proc proc /proc
+
+KERNEL=`uname -r`
+ MOUNT=/mnt/cdrom
+ ID=$MOUNT/etc/sourcemage_version
+
+main "$@"

=== added directory 'iso/skeleton/isolinux'
=== added symlink 'iso/skeleton/isolinux.ppc'
=== target is 'no/../op'
=== added file 'iso/skeleton/isolinux/f1.txt'
--- /dev/null
+++ iso/skeleton/isolinux/f1.txt
@@ -0,0 +1,10 @@
+Configuring the Linux frame buffer device
+-----------------------------------------
+
+ All VESA Video Modes:
+
+ Bits 640x480 800x600 1024x768 1280x1024 1600x1200
+ 8 769 771 773 775 796
+ 16 785 788 791 794 798
+ 32 786 789 792 795 799
+

=== added file 'iso/skeleton/isolinux/isolinux.cfg'
--- /dev/null
+++ iso/skeleton/isolinux/isolinux.cfg
@@ -0,0 +1,28 @@
+default install
+display isolinux.msg
+prompt 1
+f1 f1.txt
+f2 f2.txt
+f3 f3.txt
+f4 f4.txt
+f5 f5.txt
+f6 f6.txt
+f7 f7.txt
+f8 f8.txt
+f9 f9.txt
+
+label install
+__SMGL_TEMPLATE_NOT_x86__ kernel /boot/linux
+__SMGL_TEMPLATE_NOT_x86__ append vga=785 initrd=/boot/initrd.gz
ramdisk_size=@INITRD_SIZE@ root=/dev/ram0 rw
+
+__SMGL_TEMPLATE_NOT_x86__label lowres
+ kernel /boot/linux
+ append initrd=/boot/initrd.gz ramdisk_size=@INITRD_SIZE@ root=/dev/ram0
rw
+
+label linux
+ kernel /boot/linux
+ append root=you-need-to-set-root rw
+
+label initrd
+ kernel /boot/linux
+ append initrd=/boot/initrd.gz ramdisk_size=@INITRD_SIZE@
root=you-need-a-set-root rw

=== added file 'iso/skeleton/isolinux/isolinux.msg'
--- /dev/null
+++ iso/skeleton/isolinux/isolinux.msg
@@ -0,0 +1,22 @@
+ SMGL-__SMGL_TEMPLATE_ISO_VERSION__ by the Source Mage GNU/Linux team
0e<www.sourcemage.org>07
+This ISO made using @GRIMOIRE_VERSION@.
+
+09Welcome07 to 04Source Mage GNU/Linux07
+Copyright (C) 2000-2001 by Kyle Sallee
+Copyright (C) 2002-2005 by Source Magers <www.sourcemage.org>
+All Rights Reserved
+
+Source Mage is distributed under the terms of the GNU General Public License
+Version 2 Please see 01http://www.gnu.org/copyleft/gpl.html07 for the GNU
GPL
+
+Download Source Mage GNU/Linux and documentation from
+01http://www.sourcemage.org07
+
+* To install Source Mage GNU/Linux right now, just press 02enter07. If
+ you need special kernel parameters, just type 02install07 followed by
+ kernel parameters, like "acpi=off" for instance.
+
+* Thank you for trying a testing version. Remember, you can get help on IRC
+ on irc.freenode.net, channel #sourcemage-cauldron or #sourcemage.
+ If you find any bugs, please go to bugs.sourcemage.org and report them, we
+ absolutely love feedback.

=== added directory 'iso/skeleton/sbin'
=== added file 'iso/skeleton/sbin/MAKEDEV'
--- /dev/null
+++ iso/skeleton/sbin/MAKEDEV
@@ -0,0 +1,1320 @@
+#!/bin/bash
+
+MAKEDEV_VERSION=1.7
+
+# This script is originally taken from Slackware 7.1 and modified for
+# the Linux From Scratch Project (http://www.linuxfromscratch.org/) by
+# Marc Heerdink <marc_heerdink AT softhome.net>
+#
+# Versions 1.1 onwards modified for LFS by Mark Hymers
+# <markh AT linuxfromscratch.org>
+
+#
+# Changelog
+#
+
+# Version 1.1
+# -- Modified script so sg devices were created properly. They were
+# being created as block devices instead of the proper character
+# ones.
+
+# Version 1.2
+# -- Added new generic-nopty option for those using /dev/pts to
+# avoid creating pty[p-za-e][0-9a-f] and tty[p-za-e][0-9a-f]
+# -- Changed generic option to create hda-hdh instead of just
+# hda-hdd
+# -- Changed MAXVT to only create 32 VTs by default instead of 63
+
+# Version 1.3
+# -- Changed creation of framebuffer devices (fb0-fb7) to 29,[0-7]
+# instead of the old 0,32,etc. sequence. Support for the old
+# sequence will be removed in the 2.5 series.
+# -- Fixed typo in smpte* device creation (they were being created
+# as smtpe instead of smpte...)
+
+# Version 1.4
+# -- Applied Matthias Benkmann's new patch to allow MAKEDEV to be used
+# even when glibc isn't installed by manually resolving
+# user and group names to ids if chown name.group doesn't work.
+
+# Version 1.5
+# -- Changed the symlink /dev/ram --> /dev/ram1 to /dev/ram --> /dev/ram0
+
+# Version 1.6
+# -- Removed the "update" target as we don't use it and it means
+# that MAKEDEV doesn't need proc mounted to work.
+# -- Make the -V option work properly
+# -- Add long (GNU-style) options and add the -h|--help option.
+# -- When we fallback to parsing /etc/{passwd,group}, make sure the
+# files actually exist first!
+# -- Change !#/bin/sh to #!/bin/bash as it doesn't run on all shells which
+# may be installed as /bin/sh
+
+# Version 1.7
+# -- Give vcs a fallback major number (7) as the /proc processing code
+# has been removed.
+
+
+# Kernel version 2.4.9 (2.4.x series)
+
+# These are the device classes. Each device falls in it's own class. The
+# parameters to the chmod and chown commands for a specific class are
+# defined here. The permissions will be changed immediately after the
+# device is created.
+
+ public="root root 0666"
+ private="root root 0600"
+ system="root sys 0660"
+ kmem="root kmem 0640"
+ tty="root tty 0666"
+ cons="root tty 0622"
+ vcs="root root 0600"
+ dialout="root ppp 0660"
+ mouse="root root 0660"
+ printer="root lp 0660"
+ floppy="root floppy 0660"
+ disk="root disk 0660"
+ scsi="root disk 0660"
+ cdrom="root disk 0660"
+ tape="root tape 0660"
+ audio="root audio 0660"
+ video="root root 0660"
+ ibcs2="root root 0666"
+ scanner="root root 0666"
+ coda="root root 0600"
+ ipsec="root root 0200"
+readable="root root 0444"
+
+# Maximum number of Virtual Terminals to create.
+MAXVT=32
+
+# Default major numbers.
+major_ide0=3
+major_ide1=22
+major_ide2=33
+major_ide3=34
+
+major_sd=8
+major_sr=11
+major_sg=21
+
+major_md=9
+major_lp=6
+major_loop=7
+
+procfs=/proc
+
+opt_v=
+opt_d=
+opt_n=
+opt_H=
+opt_V=
+
+while [ "$#" -ge "1" ]; do
+ case $1 in
+ --) shift; break ;;
+ -v|--verbose) shift; opt_v=1 ;;
+ -d|--delete) shift; opt_d=1 ;;
+ -n|--null) shift; opt_n=1; opt_v=1 ;;
+ -V|--version) shift; opt_V=1 ;;
+ -h|--help) shift; opt_h=1 ;;
+ -*) echo "$0: unknown flag \"$1\"" >&2;
exit 1 ;;
+ *) break ;;
+ esac
+done
+
+if [ "$opt_V" ]; then
+ echo "MAKEDEV-$MAKEDEV_VERSION"
+ echo
+ echo "Based on the MAKEDEV script from Slackware 7.1"
+ echo "Originally modified for the LinuxFromScratch Project"
+ echo "(http://www.linuxfromscratch.org/)"
+ echo "by Marc Heerdink <marc_heerdink AT softhome.net>"
+ echo
+ echo "Maintained for LinuxFromScratch from Version 1.1 onwards"
+ echo "by Mark Hymers <markh AT linuxfromscratch.org>"
+ echo
+ echo "Please report all problems to the maintainer"
+ exit 0
+fi
+
+if [ "$opt_h" ]; then
+ echo "Usage: MAKEDEV [OPTION] DEVICE|DEVICE-GROUP"
+ echo "Create device files for use in Linux"
+ echo
+
+ echo "-d, --delete delete specified devices"
+ echo "-h, --help display this help and exit"
+ echo "-n, --null don't perform the action, just print what would
be done"
+ echo "-V, --version display version information and exit"
+ echo "-v, --verbose be more verbose in the output "
+ echo
+
+ echo "Devices can be specified individually or as a group. Examples:"
+ echo "generic creates most generally required devices"
+ echo "generic-nopty as generic but no pty's created (for use with
devpts"
+ echo
+ echo "Please report bugs to the maintainer (see --version option)"
+ exit 0
+fi
+
+opts="${opt_n:+-n} ${opt_v:+-v} ${opt_d:+-d}"
+
+#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
+
+# Test if groups and users are resolved automatically and install functions
to
+# resolve manually if not - By Matthias Benkmann
+
+if [ "`id -gn root 2>/dev/null`" != "root" ]; then
+ echo 1>&2 'NOTICE: Resolving user/group names manually using
/etc/group and /etc/passwd'
+
+ if [ -f /etc/passwd ]; then
+ getuser()
+ {
+ line=`grep ^$1: /etc/passwd` || { echo $1 ; return 1 ;}
+ echo "$line" | cut -f 3 -d :
+ }
+ else
+ echo "/etc/passwd does not exist - please create it!"
+ exit 1
+ fi
+
+ if [ -f /etc/group ]; then
+ getgid()
+ {
+ line=`grep ^$1: /etc/group` || { echo $1 ; return 1 ;}
+ echo "$line" | cut -f 3 -d :
+ }
+ else
+ echo "/etc/group does not exist - please create it!"
+ exit 1
+ fi
+else
+ getuser() { echo $1 ;}
+ getgid() { echo $1 ;}
+fi
+
+makedev () {
+ if [ "$opt_v" ]; then
+ if [ "$opt_d" ]; then
+ echo "delete $1"
+ else
+ echo "create $1 $2 $3 $4 $5:$6 $7"
+ fi
+ fi
+ if [ ! "$opt_n" ]; then
+ if [ "$opt_d" ]; then
+ rm -f $1
+ else
+ rm -f $1-
+ mknod $1- $2 $3 $4 &&
+ chown `getuser $5`:`getgid $6` $1- &&
+ chmod $7 $1- &&
+ mv $1- $1
+ fi
+ fi
+}
+
+symlink () {
+ if [ "$opt_v" ]; then
+ if [ "$opt_d" ]; then
+ echo "delete $1"
+ else
+ echo "create $1 -> $2"
+ fi
+ fi
+ [ ! "$opt_n" ] && rm -f $1 &&
+ [ ! "$opt_d" ] && ln -s $2 $1
+}
+
+math () {
+ eval echo "\$(($*))"
+}
+
+index () {
+ eval "I=\${1%$2*}"
+ eval echo "\${#I}"
+}
+
+suffix () {
+ eval echo "\${1#$2}"
+}
+
+strip () {
+ eval echo "\${1% $2 *} \${1#* $2 }"
+}
+
+first () {
+ eval echo "\${1:0:1}"
+}
+
+second () {
+ eval echo "\${1:1:1}"
+}
+
+#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
+
+Major () {
+ device=$2
+ if [ "$opt_d" ]; then
+ echo -1
+ else
+ eval echo \${major_$1:-\${device:?\"unknown major number for
$1\"}}
+ fi
+}
+
+cvt () {
+ while [ "$#" -ne "0" ]; do
+ case "$1" in
+ mem|tty|ttyp|cua|cub) ;;
+ hd) (for d in a b c d e f g h ; do
+ echo -n hd$d " "
+ done) ; echo
+ ;;
+ ide0) echo hda hdb ;;
+ ide1) echo hdc hdd ;;
+ ide2) echo hde hdf ;;
+ ide3) echo hdg hdh ;;
+ sd) echo sda sdb sdc sdd ;;
+ sg) echo sg ;;
+ sr) echo scd0 ;;
+ st) echo st0 ;;
+ xd) echo xda xdb ;;
+ ad) echo ada adb ;;
+ fd) echo fd0 fd1 ;;
+ lp) echo lp ;;
+ mt) echo ftape ;;
+ loop) echo loop ;;
+ md) echo md ;;
+ ibcs2) echo ibcs2 ;;
+ tpqic02) echo qic ;;
+ sound) echo audio ;;
+ logiscan) echo logiscan ;;
+ ac4096) echo ac4096 ;;
+ hw) echo helloworld ;;
+ sbpcd | sbpcd[123]) echo $1 ;;
+ joystick) echo js ;;
+ apm_bios) echo apm ;;
+ dcf) echo dcf ;;
+ aztcd) echo aztcd ;;
+ pcmcia) ;; # taken care of by its own driver
+ ttyC) echo cyclades ;;
+ isdn) echo isdnmodem isdnbri dcbri ;;
+ vcs) ;;
+ pty) echo pty ;;
+ misc) echo misc ;;
+ fb) echo fb ;;
+ netlink) echo netlink ;;
+ hamradio) echo hamradio ;;
+ snd) ;;
+ ptm) ;;
+ pts) ;;
+ ttyS) echo ttyS0 ttyS1 ttyS2 ttyS3 ;;
+ *) echo "$0: don't know what \"$1\" is" >&2 ;;
+ esac
+ shift
+ done
+}
+
+for arg; do
+ case $arg in
+ generic|generic-nopty)
+ $0 $opts std
+ $0 $opts fd
+ if [ $arg = "generic" ]; then $0 $opts pty; fi;
+ if [ $arg = "generic-nopty" ]; then $0 $opts ptmx; fi;
+ $0 $opts console
+ $0 $opts ttyS0 ttyS1 ttyS2 ttyS3
+ $0 $opts lp
+ $0 $opts parport
+ $0 $opts busmice
+ $0 $opts fb
+ $0 $opts ram
+ $0 $opts loop
+ $0 $opts fd0 fd1
+ $0 $opts hda hdb hdc hdd hde hdf hdg hdh
+ $0 $opts sda sdb sdc sdd
+ $0 $opts sg0 sg1 sg2 sg3
+ $0 $opts scd0 scd1 scd2 scd3
+ $0 $opts audio
+ $0 $opts rtc
+ $0 $opts ppp
+ ;;
+ std)
+ makedev mem c 1 1 $kmem
+ makedev kmem c 1 2 $kmem
+ makedev null c 1 3 $public
+ makedev port c 1 4 $kmem
+ makedev zero c 1 5 $public
+ symlink core $procfs/kcore
+ makedev full c 1 7 $public
+ makedev random c 1 8 $readable
+ makedev urandom c 1 9 $readable
+ makedev aio c 1 10 $readable
+ makedev tty c 5 0 $tty
+ ;;
+ ram)
+ for i in 0 1 2 3; do
+ makedev ram$i b 1 $i $disk
+ done
+ ln -sf ram0 ram
+ ;;
+ console)
+ major=`Major vcs 7`
+ makedev tty0 c 4 0 $cons
+ makedev console c 5 1 $cons
+ [ "$major" ] && makedev vcs0 c $major 0 $vcs
+ [ "$major" ] && makedev vcsa c $major 128 $vcs
+
+ line=1
+ while [ $line -le $MAXVT -a $line -le 63 ]; do
+ makedev tty$line c 4 $line $tty
+ [ "$major" ] && makedev vcs$line c $major $line $vcs
+ [ "$major" ] && makedev vcsa$line c $major `math
$line + 128` $vcs
+ line=`math $line + 1`
+ done
+ ;;
+ fd)
+ symlink fd $procfs/self/fd
+ symlink stdin fd/0
+ symlink stdout fd/1
+ symlink stderr fd/2
+ ;;
+ fd[0-7])
+ major=`Major fd 2` || continue
+ base=`suffix $arg fd`
+ if [ $base -ge 4 ]
+ then
+ base=`math $base + 124`
+ fi
+ makedev ${arg} b $major $base $floppy
+ makedev ${arg}d360 b $major `math $base + 4` $floppy
+ makedev ${arg}h1200 b $major `math $base + 8` $floppy
+ makedev ${arg}u360 b $major `math $base + 12` $floppy
+ makedev ${arg}u720 b $major `math $base + 16` $floppy
+ makedev ${arg}h360 b $major `math $base + 20` $floppy
+ makedev ${arg}h720 b $major `math $base + 24` $floppy
+ makedev ${arg}u1440 b $major `math $base + 28` $floppy
+ makedev ${arg}u2880 b $major `math $base + 32` $floppy
+ makedev ${arg}CompaQ b $major `math $base + 36` $floppy
+ makedev ${arg}h1440 b $major `math $base + 40` $floppy
+ makedev ${arg}u1680 b $major `math $base + 44` $floppy
+ makedev ${arg}h410 b $major `math $base + 48` $floppy
+ makedev ${arg}u820 b $major `math $base + 52` $floppy
+ makedev ${arg}h1476 b $major `math $base + 56` $floppy
+ makedev ${arg}u1722 b $major `math $base + 60` $floppy
+ makedev ${arg}h420 b $major `math $base + 64` $floppy
+ makedev ${arg}u830 b $major `math $base + 68` $floppy
+ makedev ${arg}h1494 b $major `math $base + 72` $floppy
+ makedev ${arg}u1743 b $major `math $base + 76` $floppy
+ makedev ${arg}h880 b $major `math $base + 80` $floppy
+ makedev ${arg}u1040 b $major `math $base + 84` $floppy
+ makedev ${arg}u1120 b $major `math $base + 88` $floppy
+ makedev ${arg}h1600 b $major `math $base + 92` $floppy
+ makedev ${arg}u1760 b $major `math $base + 96` $floppy
+ makedev ${arg}u1920 b $major `math $base + 100` $floppy
+ makedev ${arg}u3200 b $major `math $base + 104` $floppy
+ makedev ${arg}u3520 b $major `math $base + 108` $floppy
+ makedev ${arg}u3840 b $major `math $base + 112` $floppy
+ makedev ${arg}u1840 b $major `math $base + 116` $floppy
+ makedev ${arg}u800 b $major `math $base + 120` $floppy
+ makedev ${arg}u1600 b $major `math $base + 124` $floppy
+ ;;
+ hamradio)
+ $0 scc
+ $0 bc
+ ;;
+ scc)
+ for unit in 0 1 2 3 4 5 6 7
+ do
+ makedev scc$unit c 34 $unit $system
+ done
+ ;;
+ bc)
+ for unit in 0 1 2 3
+ do
+ makedev bc$unit c 51 $unit $system
+ done
+ ;;
+ nvram)
+ makedev nvram c 10 144 $kmem
+ ;;
+ tty[1-9]|tty[1-5][0-9]|tty[6][0-3])
+ line=`suffix $arg tty`
+ makedev tty$line c 4 $line $tty
+ ;;
+ ttyS[0-9]|ttyS[1-5][0-9]|ttyS[6][0-3])
+ line=`suffix $arg ttyS`
+ minor=`math 64 + $line`
+ makedev ttyS$line c 4 $minor $dialout
+ ;;
+ pty[a-ep-z])
+ bank=`suffix $arg pty`
+ base=`index pqrstuvwxyzabcde $bank`
+ base=`math $base \* 16`
+ for i in 0 1 2 3 4 5 6 7 8 9 a b c d e f
+ do
+ j=`index 0123456789abcdef $i`
+ makedev pty$bank$i c 2 `math $base + $j` $tty
+ makedev tty$bank$i c 3 `math $base + $j` $tty
+ done
+ ;;
+ pty)
+ ptysufs=""
+ for i in p q r s t u v w x y z a b c d e
+ do
+ ptysufs="$ptysufs pty$i"
+ done
+ $0 $opts $ptysufs ptmx
+ ;;
+ ptmx)
+ # master pty multiplexer for 2.1 kernels
+ makedev ptmx c 5 2 $tty
+ ;;
+ cyclades|ttyC)
+ major1=`Major ttyC 19` || continue
+ #major2=`Major cub 20` || continue
+ for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 \
+ 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
+ do
+ makedev ttyC$i c $major1 $i $tty
+ #makedev cub$i c $major2 $i $dialout
+ done
+ ;;
+ stallion|ttyE)
+ major1=`Major ttyE 24` || continue
+ #major2=`Major cue 25` || continue
+ majorc=28
+ minor=0
+ until [ $minor -gt 256 ]
+ do
+ makedev ttyE$minor c $major1 $minor $dialout
+ #makedev cue$minor c $major2 $minor $dialout
+ minor=`math minor + 1`
+ done
+ for i in 0 1 2 3
+ do
+ makedev staliomem$i c $majorc $i $private
+ done
+ ;;
+ chase|ttyH)
+ major1=`Major ttyH 17` || continue
+ #major2=`Major cuh 18` || continue
+ minor=0
+ until [ $minor -gt 16 ] # tell me if 16 is wrong
+ do
+ makedev ttyH$minor c $major1 $minor $dialout
+ #makedev cuh$minor c $major2 $minor $dialout
+ minor=`math minor + 1`
+ done
+ ;;
+ rocketport|ttyR)
+ major1=`Major ttyR 46` || continue
+ #major2=`Major cur 47` || continue
+ minor=0
+ until [ $minor -gt 64 ] # tell me if 64 is wrong
+ do
+ makedev ttyR$minor c $major1 $minor $dialout
+ #makedev cur$minor c $major2 $minor $dialout
+ minor=`math minor + 1`
+ done
+ ;;
+ ttyV)
+ major1=`Major ttyV 105` || continue
+ #major2=`Major cuv 106` || continue
+ minor=0
+ until [ $minor -gt 16 ] # tell me if 16 is wrong
+ do
+ makedev ttyV$minor c $major1 $minor $dialout
+ #makedev cuv$minor c $major2 $minor $dialout
+ minor=`math minor + 1`
+ done
+ ;;
+ digi|ttyD)
+ major1=`Major ttyD 22` || continue
+ #major2=`Major cud 23` || continue
+ minor=0
+ until [ $minor -gt 16 ] # tell me if 16 is wrong
+ do
+ makedev ttyD$minor c $major1 $minor $dialout
+ #makedev cud$minor c $major2 $minor $dialout
+ minor=`math minor + 1`
+ done
+ ;;
+ specialix|ttyX)
+ major1=`Major ttyX 32` || continue
+ #major2=`Major cux 33` || continue
+ minor=0
+ until [ $minor -gt 16 ] # tell me if 16 is wrong
+ do
+ makedev ttyX$minor c $major1 $minor $dialout
+ #makedev cux$minor c $major2 $minor $dialout
+ minor=`math minor + 1`
+ done
+ ;;
+ specialixIO8|ttyW)
+ major1=`Major ttyW 75` || continue
+ #major2=`Major cuw 76` || continue
+ minor=0
+ until [ $minor -gt 16 ] # tell me if 16 is wrong
+ do
+ makedev ttyW$minor c $major1 $minor $dialout
+ #makedev cuw$minor c $major2 $minor $dialout
+ minor=`math minor + 1`
+ done
+ ;;
+ PAM|ttyM)
+ major1=`Major ttyM 79` || continue
+ #major2=`Major cum 80` || continue
+ minor=0
+ until [ $minor -gt 16 ] # tell me if 16 is wrong
+ do
+ makedev ttyM$minor c $major1 $minor $dialout
+ #makedev cum$minor c $major2 $minor $dialout
+ minor=`math minor + 1`
+ done
+ ;;
+ riscom|ttyL)
+ major=`Major ttyL 48` || continue
+ minor=0
+ until [ $minor -gt 16 ] # tell me if 16 is wrong
+ do
+ makedev ttyL$minor c $major $minor $dialout
+ minor=`math minor + 1`
+ done
+ ;;
+ computone|ttyF)
+ major=`Major ttyF 71` || continue
+ #major2=`Major cuf 72` || continue
+ minor=0
+ until [ $minor -gt 255 ]
+ do
+ makedev ttyF$minor c $major $minor $dialout
+ #makedev cuf$minor c $major2 $minor $dialout
+ minor=`math minor + 1`
+ done
+ major=73
+ for i in 0 4 8 12
+ do
+ makedev ip2ipl$i c $major $i $private
+ makedev ip2stat$i c $major `math $i + 1` $private
+ done
+ ;;
+ ESP|ttyP)
+ major=`Major ttyP 57` || continue
+ #major2=`Major cup 58` || continue
+ minor=0
+ until [ $minor -gt 4 ] # tell me if 4 is wrong
+ do
+ makedev ttyP$minor c $major $minor $dialout
+ #makedev cup$minor c $major2 $minor $dialout
+ minor=`math minor + 1`
+ done
+ ;;
+ COMX|comx)
+ major=`Major comx 88` || continue
+ minor=0
+ until [ $minor -gt 4 ] # tell me if 4 is wrong
+ do
+ makedev comx$minor c $major $minor $private
+ minor=`math minor + 1`
+ done
+ ;;
+ isdnmodem|ttyI)
+ major1=`Major ttyI 43` || continue
+ #major2=`Major cui 44` || continue
+ minor=0
+ until [ $minor -gt 63 ]
+ do
+ makedev ttyI$minor c $major1 $minor $dialout
+ #makedev cui$minor c $major2 $minor $dialout
+ minor=`math minor + 1`
+ done
+ ;;
+ isdnbri)
+ major=45
+ minor=0
+ until [ $minor -gt 63 ]
+ do
+ makedev isdn$minor c $major $minor $private
+ makedev isdnctrl$minor c $major `math $minor + 64`
$private
+ makedev ippp$minor c $major `math $minor + 128`
$private
+ minor=`math minor + 1`
+ done
+ makedev isdninfo c $major 255 $private
+ ;;
+ dcbri)
+ major=52
+ for i in 0 1 2 3
+ do
+ makedev dcbri$i c $major $i $private
+ done
+ ;;
+ capi)
+ major=68
+ makedev capi20 c $major 0 $private
+ for i in 0 1 2 3 4 5 6 7 8 9
+ do
+ makedev capi20.0$i c $major `math $i + 1` $private
+ done
+ for i in 10 11 12 13 14 15 16 17 18 19
+ do
+ makedev capi20.$i c $major `math $i + 1` $private
+ done
+ ;;
+ fb)
+ for i in 0 1 2 3 4 5 6 7
+ do
+ makedev fb$i c 29 $i $cons
+ done
+ ;;
+ netlink)
+ makedev route c 36 0 $coda
+ makedev skip c 36 1 $coda
+ makedev fwmonitor c 36 3 $coda
+ ;;
+ lp|par)
+ major=`Major lp 6` || continue
+ makedev lp0 c $major 0 $printer
+ makedev lp1 c $major 1 $printer
+ makedev lp2 c $major 2 $printer
+ makedev lp3 c $major 3 $printer
+ ;;
+ parport)
+ major=`Major parport 99` || continue
+ makedev ${arg}0 c $major 0 $printer
+ makedev ${arg}1 c $major 1 $printer
+ makedev ${arg}2 c $major 2 $printer
+ makedev ${arg}3 c $major 3 $printer
+ ;;
+ slm)
+ major=`Major slm 28` || continue
+ for i in 0 1 2 3
+ do
+ makedev slm c $major $i $printer
+ done
+ ;;
+ busmice)
+ major=`Major mouse 10` || continue
+ makedev logibm c $major 0 $mouse
+ makedev psaux c $major 1 $mouse
+ makedev inportbm c $major 2 $mouse
+ makedev atibm c $major 3 $mouse
+ makedev jbm c $major 4 $mouse
+ ;;
+ misc)
+ major=`Major mouse 10` || continue
+ makedev logibm c $major 0 $mouse
+ makedev psaux c $major 1 $mouse
+ makedev inportbm c $major 2 $mouse
+ makedev atibm c $major 3 $mouse
+ makedev jbm c $major 4 $mouse
+ makedev amigamouse c $major 4 $mouse
+ makedev atarimouse c $major 5 $mouse
+ makedev sunmouse c $major 6 $mouse
+ makedev amigamouse1 c $major 7 $mouse
+ makedev smouse c $major 8 $mouse
+ makedev pc110pad c $major 9 $mouse
+ makedev adbmouse c $major 10 $mouse
+ makedev beep c $major 128 $mouse
+ makedev modreq c $major 129 $mouse
+ makedev watchdog c $major 130 $mouse
+ makedev temperature c $major 131 $mouse
+ makedev hwtrap c $major 132 $mouse
+ makedev exttrp c $major 133 $mouse
+ makedev apm_bios c $major 134 $mouse
+ makedev rtc c $major 135 $mouse
+ makedev openprom c $major 139 $mouse
+ makedev relay8 c $major 140 $mouse
+ makedev relay16 c $major 141 $mouse
+ makedev msr c $major 142 $mouse
+ makedev pciconf c $major 143 $mouse
+ makedev nvram c $major 144 $mouse
+ makedev hfmodem c $major 145 $mouse
+ makedev led c $major 151 $mouse
+ makedev mergemem c $major 153 $mouse
+ makedev pmu c $major 154 $mouse
+ ;;
+ rtc)
+ major=`Major mouse 10` || continue
+ makedev rtc c $major 135 $mouse
+ ;;
+ joystick)
+ major=`Major Joystick` || continue
+ makedev js0 c 15 0 $mouse
+ makedev js1 c 15 1 $mouse
+ makedev djs0 c 15 128 $mouse
+ makedev djs1 c 15 129 $mouse
+ ;;
+ ed[a-b])
+ major=`Major ed 36` || continue
+ unit=`suffix $arg ed`
+ base=`index ab $unit`
+ base=`math $base \* 64`
+ makedev ed$unit b $major $base $disk
+ for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19
20
+ do
+ makedev ed$unit$part b $major `math $base + $part`
$disk
+ done
+ ;;
+ hd[a-b])
+ major=`Major ide0 3`
+ unit=`suffix $arg hd`
+ base=`index ab $unit`
+ base=`math $base \* 64`
+ makedev hd$unit b $major $base $disk
+ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
+ do
+ makedev hd$unit$part b $major `math $base + $part`
$disk
+ done
+ ;;
+ hd[c-d])
+ major=`Major ide1 22` || continue
+ unit=`suffix $arg hd`
+ base=`index cd $unit`
+ base=`math $base \* 64`
+ makedev hd$unit b $major $base $disk
+ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
+ do
+ makedev hd$unit$part b $major `expr $base + $part`
$disk
+ done
+ ;;
+ hd[e-f])
+ major=`Major ide2 33` || continue
+ unit=`suffix $arg hd`
+ base=`index ef $unit`
+ base=`math $base \* 64`
+ makedev hd$unit b $major $base $disk
+ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
+ do
+ makedev hd$unit$part b $major `expr $base + $part`
$disk
+ done
+ ;;
+ hd[g-h])
+ major=`Major ide3 34` || continue
+ unit=`suffix $arg hd`
+ base=`index gh $unit`
+ base=`math $base \* 64`
+ makedev hd$unit b $major $base $disk
+ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
+ do
+ makedev hd$unit$part b $major `expr $base + $part`
$disk
+ done
+ ;;
+ hd[i-j])
+ major=`Major ide4 56` || continue
+ unit=`suffix $arg hd`
+ base=`index gh $unit`
+ base=`math $base \* 64`
+ makedev hd$unit b $major $base $disk
+ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
+ do
+ makedev hd$unit$part b $major `expr $base + $part`
$disk
+ done
+ ;;
+ hd[k-l])
+ major=`Major ide4 57` || continue
+ unit=`suffix $arg hd`
+ base=`index gh $unit`
+ base=`math $base \* 64`
+ makedev hd$unit b $major $base $disk
+ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
+ do
+ makedev hd$unit$part b $major `expr $base + $part`
$disk
+ done
+ ;;
+ ht)
+ major=`Major ht0 37` || continue
+ makedev ht0 c $major 0 $tape
+ makedev ht1 c $major 1 $tape
+ makedev nht0 c $major 128 $tape
+ makedev nht1 c $major 129 $tape
+ ;;
+ pt)
+ major=`Major pt 96` || continue
+ for i in 0 1 2 3
+ do
+ makedev pt$i c $major $i $tape
+ makedev npt$i c $major `math $i + 128` $tape
+ done
+ ;;
+ xd[a-d])
+ major=`Major xd 13` || continue
+ unit=`suffix $arg xd`
+ base=`index abcd $unit`
+ base=`math $base \* 64`
+ makedev xd$unit b $major $base $disk
+ for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19
20
+ do
+ makedev xd$unit$part b $major `expr $base + $part`
$disk
+ done
+ ;;
+ sd[a-z])
+ major=`Major sd 8` || continue
+ unit=`suffix $arg sd`
+ base=`index abcdefghijklmnopqrstuvwxyz $unit`
+ base=`math $base \* 16`
+ if [ $base -lt 256 ]; then
+ major=8
+ else
+ major=65
+ base=`math $base \- 256`
+ fi
+ makedev sd$unit b $major $base $disk
+ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ do
+ minor=`expr $base + $part`
+ makedev sd$unit$part b $major $minor $disk
+ done
+ ;;
+ sd[a-d][a-z])
+ unit=`suffix $arg sd`
+ unitmaj=`first $unit`
+ unitmin=`second $unit`
+ basemaj=`index Xabcd $unitmaj`
+ basemin=`index abcdefghijklmnopqrstuvwxyz $unitmin`
+ basemaj=`math $basemaj \* 416`
+ basemin=`math $basemin \* 16`
+ base=`math $basemaj + $basemin`
+ basemaj=`math $base / 256`
+ base=`math $base % 256`
+ major=`math basemaj \+ 64`
+ if [ $major -gt 71 ]; then
+ echo "$0: don't know how to make device \"$arg\"" >&2
+ exit 0
+ fi
+ makedev sd$unit b $major $base $disk
+ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ do
+ minor=`expr $base + $part`
+ makedev sd$unit$part b $major $minor $disk
+ done
+ ;;
+ ad[a-p])
+ major=`Major ad 28` || continue
+ unit=`suffix $arg ad`
+ base=`index abcdefghijklmnop $unit`
+ base=`math $base \* 16`
+ makedev ad$unit b $major $base $disk
+ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ do
+ minor=`expr $base + $part`
+ makedev ad$unit$part b $major $minor $disk
+ done
+ ;;
+ dac960)
+ [ -d rd ] || {
+ mkdir rd
+ chown root.root rd
+ chmod 755 rd
+ }
+ for ctr in 0 1 2 3 4 5 6 7
+ do
+ major=`math 48 + $ctr`
+ minor=0
+ for ld in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 \
+ 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
+ do
+ makedev rd/c${ctr}d${ld} b $major $minor $disk
+ minor=`math minor + 1`
+ for part in 1 2 3 4 5 6 7
+ do
+ makedev rd/c${ctr}d${ld}p$part b $major $minor
$disk
+ minor=`math minor + 1`
+ done
+ done
+ done
+ ;;
+ ida)
+ [ -d ida ] || {
+ mkdir ida
+ chown root.root ida
+ chmod 755 ida
+ }
+ for ctr in 0 1 2 # 3 4 5 6 7
+ do
+ major=`math 72 + $ctr`
+ minor=0
+ for ld in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ do
+ makedev ida/c${ctr}d${ld} b $major $minor $disk
+ minor=`math minor + 1`
+ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ do
+ makedev ida/c${ctr}d${ld}p$part b $major $minor
$disk
+ minor=`math minor + 1`
+ done
+ done
+ done
+ ;;
+ rom)
+ major=`Major rom 31`
+ for i in 0 1 2 3 4 5 6 7
+ do
+ makedev rom$i b $major $i $disk
+ makedev rrom$i b $major `math $i +8` $disk
+ makedev flash$i b $major `math $i +16` $disk
+ makedev rflash$i b $major `math $i +24` $disk
+ done
+ ;;
+ nb)
+ major=`Major nbd 43` || continue
+ minor=0
+ while [ $minor -lt 128 ] ; do
+ makedev nb$minor b $major $minor $disk
+ minor=`math $minor + 1`
+ done
+ ;;
+ loop)
+ major=`Major loop` || continue
+ for part in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ do
+ makedev loop$part b $major $part $disk
+ done
+ ;;
+ md)
+ major=`Major md` || continue
+ for part in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ do
+ makedev md$part b $major $part $disk
+ done
+ ;;
+ st[0-7])
+ major=`Major st 9`
+ unit=`suffix $arg st`
+ makedev st${unit} c $major $unit $tape
+ makedev nst${unit} c $major `math 128 + $unit` $tape
+
+ makedev st${unit}l c $major `math 32 + $unit` $tape
+ makedev nst${unit}l c $major `math 160 + $unit` $tape
+
+ makedev st${unit}m c $major `math 64 + $unit` $tape
+ makedev nst${unit}m c $major `math 192 + $unit` $tape
+
+ makedev st${unit}a c $major `math 96 + $unit` $tape
+ makedev nst${unit}a c $major `math 224 + $unit` $tape
+ ;;
+ qic)
+ major=`Major tpqic02 12`
+ makedev ntpqic11 c $major 2 $tape
+ makedev tpqic11 c $major 3 $tape
+ makedev ntpqic24 c $major 4 $tape
+ makedev tpqic24 c $major 5 $tape
+ makedev ntpqic120 c $major 6 $tape
+ makedev tpqic120 c $major 7 $tape
+ makedev ntpqic150 c $major 8 $tape
+ makedev tpqic150 c $major 9 $tape
+ makedev rmt8 c $major 6 $tape
+ makedev rmt16 c $major 8 $tape
+ makedev tape-d c $major 136 $tape
+ makedev tape-reset c $major 255 $tape
+ major=`Major qft 27`
+ for i in 0 1 2 3
+ do
+ makedev qft$i c $major $i $tape
+ makedev nqft$i c $major `math $i + 4` $tape
+ makedev zqft$i c $major `math $i + 16` $tape
+ makedev nzqft$i c $major `math $i + 20` $tape
+ makedev rawqft$i c $major `math $i + 32` $tape
+ makedev nrawqft$i c $major `math $i + 36` $tape
+ done
+ ;;
+ ftape)
+ major=`Major mt 27` || continue
+ for unit in 0 1 2 3
+ do
+ makedev rft$unit c $major $unit $tape
+ makedev nrft$unit c $major `math $unit + 4` $tape
+ done
+ symlink ftape rft0
+ symlink nftape nrft0
+ ;;
+ scd|scd-all)
+ major=`Major sr 11` || continue
+ for unit in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+ do
+ makedev scd$unit b $major $unit $cdrom
+ done
+ ;;
+ cfs0)
+ makedev cfs0 c 67 0 $coda
+ ;;
+ scd[0-9]|scd[0-1][0-9])
+ major=`Major sr 11` || continue
+ unit=`suffix $arg scd`
+ makedev scd$unit b $major $unit $cdrom
+ ;;
+ ttyI[0-9]|ttyI[1-5][0-9]|ttyI[6][0-3])
+ major=43
+ unit=`suffix $arg ttyI`
+ makedev ttyI$unit c $major $unit $dialout
+ ;;
+ ippp[0-9]|ippp[1-5][0-9]|ippp[6][0-3])
+ major=45
+ unit=`suffix $arg ippp`
+ minor=`math $unit + 128`
+ makedev ippp$unit c $major $minor $dialout
+ ;;
+ isdn[0-9]|isdn[1-5][0-9]|isdn[6][0-3])
+ major=45
+ unit=`suffix $arg isdn`
+ minor=`math $unit + 0`
+ makedev isdn$unit c $major $minor $dialout
+ ;;
+ isdnctrl[0-9]|isdnctrl[1-5][0-9]|isdnctrl[6][0-3])
+ major=45
+ unit=`suffix $arg isdnctrl`
+ minor=`math $unit + 64`
+ makedev isdnctrl$unit c $major $minor $dialout
+ ;;
+ isdninfo)
+ makedev isdninfo c 45 255 $dialout
+ ;;
+ isdn-tty)
+ major=43
+ for unit in 0 1 2 3 4 5 6 7
+ do
+ makedev ttyI$unit c $major $unit $dialout
+ done
+ ;;
+ isdn-ippp)
+ major=45
+ for unit in 0 1 2 3 4 5 6 7
+ do
+ makedev ippp$unit c $major `math $unit + 128` $dialout
+ done
+ ;;
+ isdn-io)
+ for unit in 0 1 2 3 4 5 6 7
+ do
+ makedev isdn$unit c 45 $unit $dialout
+ makedev isdnctrl$unit c 45 `math $unit + 64` $dialout
+ makedev ippp$unit c 45 `math $unit + 128` $dialout
+ done
+ makedev isdninfo c 45 255 $dialout
+ ;;
+ sonycd)
+ major=`Major cdu31a` || continue
+ makedev $arg b $major 0 $cdrom
+ ;;
+ mcd)
+ major=`Major mcd 23` || continue
+ makedev $arg b $major 0 $cdrom
+ ;;
+ mcdx)
+ major=`Major mcdx 20` || continue
+ makedev $arg b $major 0 $cdrom
+ ;;
+ cdu535)
+ makedev $arg b 24 0 $cdrom
+ ;;
+ lmscd)
+ makedev $arg b 24 0 $cdrom
+ ;;
+ sbpcd|sbpcd[123])
+ major=`Major $arg` || continue
+ base=`suffix ${arg}0 sbpcd`
+ # base=`expr ${arg}0 : "sbpcd\(.\)"`
+ for minor in 0 1 2 3
+ do
+ # XXX
+ unit=`expr substr 0123456789abcdef \( $base \* 4 +
$minor + 1 \) 1`
+ makedev sbpcd$unit b $major $minor $cdrom
+ done
+ [ $arg = sbpcd ] && symlink $arg ${arg}0
+ ;;
+ aztcd)
+ major=`Major $arg` || continue
+ makedev ${arg}0 b $major 0 $cdrom
+ ;;
+ bpcd)
+ makedev $arg b 41 0 $cdrom
+ ;;
+ optcd)
+ makedev $arg b 17 0 $cdrom
+ ;;
+ sjcd)
+ makedev $arg b 18 0 $cdrom
+ ;;
+ cfs|coda)
+ makedev cfs0 c 67 0 $private
+ ;;
+ xfs|arla)
+ makedev xfs0 c 103 0 $private
+ ;;
+ logiscan)
+ major=`Major logiscan` || continue
+ makedev $arg c $major 0 $scanner
+ ;;
+ m105scan)
+ major=`Major m105` || continue
+ makedev $arg c $major 0 $scanner
+ ;;
+ ac4096)
+ major=`Major ac4096` || continue
+ makedev $arg c $major 0 $scanner
+ ;;
+ audio)
+ major=`Major sound 14`
+ makedev mixer c $major 0 $audio
+ makedev sequencer c $major 1 $audio
+ makedev midi00 c $major 2 $audio
+ makedev dsp c $major 3 $audio
+ makedev audio c $major 4 $audio
+ makedev sndstat c $major 6 $audio
+ makedev sequencer2 c $major 8 $audio
+ makedev mixer1 c $major 16 $audio
+ makedev patmgr0 c $major 17 $audio
+ makedev midi01 c $major 18 $audio
+ makedev dsp1 c $major 19 $audio
+ makedev audio1 c $major 20 $audio
+ makedev patmgr1 c $major 33 $audio
+ makedev midi02 c $major 34 $audio
+ makedev midi03 c $major 50 $audio
+ major=31
+ makedev mpu401data c $major 0 $audio
+ makedev mpu401stat c $major 1 $audio
+ major=35
+ for i in 0 1 2 3
+ do
+ makedev midi$i c $major $i $audio
+ makedev rmidi$i c $major `math $i + 64` $audio
+ makedev smpte$i c $major `math $i + 128` $audio
+ done
+ ;;
+ pcaudio)
+ major=`Major pcsp` || continue
+ makedev pcmixer c $major 0 $audio
+ makedev pcsp c $major 3 $audio
+ makedev pcaudio c $major 4 $audio
+ ;;
+ video|video4linux|v4l|radio)
+ # video4linux api includes radio, teletext, etc.
+ major=`Major video 81` || continue
+ minor=0
+ until [ $minor -gt 63 ]
+ do
+ makedev video$minor c $major $minor $video
+ makedev radio$minor c $major `math $minor + 64` $video
+ minor=`math $minor + 1`
+ done
+ minor=0
+ until [ $minor -gt 31 ]
+ do
+ makedev vtx$minor c $major `math $minor + 192` $video
+ makedev vbi$minor c $major `math $minor + 224` $video
+ minor=`math $minor + 1`
+ done
+ symlink video video0
+ major=82
+ minor=0
+ until [ $minor -gt 1 ]
+ do
+ makedev winradio$minor c $major $minor $video
+ minor=`math $minor + 1`
+ done
+ major=83
+ makedev vtx c $major 0 $video
+ makedev vttuner c $major 16 $video
+ ;;
+ i2c)
+ major=`Major i2c 89` || continue
+ minor=0
+ until [ $minor -gt 1 ]; do
+ makedev i2c-$minor c $major $minor $private
+ minor=`math $minor + 1`
+ done
+ ;;
+ tlk)
+ major=102
+ minor=0
+ until [ $minor -gt 3 ] # tell me if 3 is wrong...
+ do
+ makedev tlk$minor c $major $minor $video
+ minor=`math $minor + 1`
+ done
+ ;;
+ srnd)
+ makedev srnd0 c 110 0 $video
+ makedev srnd1 c 110 1 $video
+ ;;
+ fgrab)
+ makedev mmetfgrab c 40 0 $video
+ makedev wvisfgrab c 26 0 $video
+ for i in 0 1 # more?
+ do
+ makedev iscc$i c 93 $i $video
+ makedev isccctl$i c 93 `math $i + 128` $video
+ done
+ for i in 0 1 # more?
+ do
+ makedev dcxx$i c 94 $i $video
+ done
+ ;;
+ sg|sg-all)
+ major=`Major sg 21`
+ for unit in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ do
+ makedev sg$unit c $major $unit $scsi
+ done
+ ;;
+ sg[0-9]|sg[0-1][0-9])
+ major=`Major sg 11` || continue
+ unit=`suffix $arg sg`
+ makedev sg$unit c $major $unit $cdrom
+ ;;
+ pg)
+ major=`Major pg 97`
+ for unit in 0 1 2 3
+ do
+ makedev pg$unit c $major $unit $scsi
+ done
+ ;;
+ ibcs2)
+ major=`Major ibcs2` || continue
+ makedev socksys c $major 0 $ibcs2
+ symlink nfsd socksys
+ makedev spx c $major 1 $ibcs2
+ symlink X0R null
+ ;;
+ enskip)
+ major=64
+ makedev enskip c $major 0 $private
+ ;;
+ ipfilt*)
+ major=95
+ makedev ipl c $major 0 $private
+ makedev ipnat c $major 1 $private
+ makedev ipstate c $major 2 $private
+ makedev ipauth c $major 3 $private
+ ;;
+ qng)
+ makedev qng c 77 0 $private
+ ;;
+ apm)
+ makedev apm_bios c 10 134 $system
+ ;;
+ dcf)
+ major=`Major dcf` || continue
+ makedev $arg c $major 0 $system
+ ;;
+ helloworld)
+ major=`Major hw` || continue
+ makedev helloworld c $major 0 $public
+ ;;
+ ipsec)
+ # For the Free S/WAN (http://www.xs4all.nl/~freeswan/)
+ # implementation of IPSEC
+ makedev ipsec c 36 10 $ipsec
+ ;;
+ ppp)
+ makedev ppp c 108 0 $dialout
+ ;;
+ *)
+ echo "$0: don't know how to make device \"$arg\"" >&2
+ exit 1
+ ;;
+ esac
+done
+
+exit 0

=== added file 'iso/skeleton/sbin/dummy-halt.sh'
--- /dev/null
+++ iso/skeleton/sbin/dummy-halt.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+function saveinfo() {
+ echo "$ROOTDEV" >/proc/rootdev
+ echo "$ACTION" >/proc/action
+ echo "$CDDEV" >/proc/cddev
+ exit 0
+}
+
+exec >/dev/console
+exec 2>/dev/console
+echo "Press enter to eject the CD..."
+# print it here so we know this part of the script is ready
+trap saveinfo SIGUSR1
+sleep 1h
+return 1

=== added file 'iso/skeleton/sbin/shutdown'
--- /dev/null
+++ iso/skeleton/sbin/shutdown
@@ -0,0 +1,46 @@
+#!/bin/bash
+if [[ $$ != 1 ]] ;then # You wanted the real shutdown I think
+ exec -a "$0" /sbin/real.shutdown "$@"
+ # Preserve 'being called as /sbin/reboot' too
+fi
+exec </dev/console
+exec >/dev/console
+exec 2>/dev/console
+mount tmpfs -n -t tmpfs /proc
+read
+# The prompt is displayed by the other script
+kill -SIGUSR1 -1
+ROOTDEV=$(cat /proc/rootdev)
+ACTION=$(cat /proc/action)
+CDDEV=$(cat /proc/cddev)
+if [[ $ACTION == "reboot" ]] ;then
+ mount -t proc proc /tmp
+ sync
+ echo 's' >/tmp/sysrq-trigger
+ >/proc/mounts
+ /usr/bin/eject $CDDEV
+ #Wants to unmount / first (and fails) if it sees the real /proc/mounts
+ read -p "Please remove the CD and press enter..."
+ echo 'b' >/tmp/sysrq-trigger
+ exit 1 #Never reached
+elif [[ $ACTION == "pivot_root" ]] ;then
+ umount /proc
+ mount -n $ROOTDEV /mnt/root
+ cd /mnt/root
+
+ if [[ -d mnt/cdrom ]] ;then
+ pivot_root . mnt/cdrom
+ elif [[ -d media/cdrom ]] ;then
+ pivot_root . media/cdrom
+ else
+ pivot_root . mnt
+ fi
+
+ [[ -e dev/console ]] || mount -n -t devfs devfs dev # mount devfs if needed
+
+ exec chroot . /sbin/init <dev/console >dev/console 2>dev/console
+ exit 1 #Never reached
+else
+ echo "I don't know what '$ACTION' is, so I'll just give you a shell..."
+ exec /bin/bash
+fi

=== added directory 'iso/skeleton/usr'
=== added directory 'iso/skeleton/usr/bin'
=== added file 'iso/skeleton/usr/bin/installer-help.sh'
--- /dev/null
+++ iso/skeleton/usr/bin/installer-help.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+export HOME=/root
+export SHELL
+cd /
+exec /bin/bash -l

=== added directory 'iso/skeleton/usr/sbin'
=== added file 'iso/skeleton/usr/sbin/bg-install.sh'
--- /dev/null
+++ iso/skeleton/usr/sbin/bg-install.sh
@@ -0,0 +1,75 @@
+#!/bin/bash
+DATA_DIR=/usr/share/smgl.install
+MODULE_DIR=$DATA_DIR/modules
+TEMPLATE_DIR=$DATA_DIR/templates
+STATE_DIR=/var/lib/smgl.install
+
+TMP_DIR=/tmp
+DEPENDS_DIR=$TMP_DIR/installer_depends
+FINALFILES=$TMP_DIR/finalfiles
+INSTALLER_DEBUG=$TMP_DIR/installer_debug
+
+export DIALOGRC=/etc/sorcery/dialogrc # yoohoo! sorcery color scheme!
+
+export PATH="/bin:/usr/bin:/sbin:/usr/sbin"
+export HOME="/root"
+
+[ -z $ARCH ] && ARCH=`uname -m`
+[ -z $TARGET ] && TARGET=/mnt/root
+
+for inst_MODULE in $MODULE_DIR/* ;do
+ . $inst_MODULE #This has to be a global :/
+done
+
+function cleanup() {
+ unlock_resource SI_HP_QUEUE
+ unlock_resource SI_SPELL_QUEUE
+ exit 1
+}
+
+function main() {
+ # Sleep until we get stuff to do
+ echo "Waiting for installation to begin..."
+ wait_depends install_start
+
+ local spell
+ local idle=false
+ # Work through queues
+ while true ;do
+ if test -e $SI_QUEUE_DIR/debug ;then # waits debugging mode
+ echo "Waiting for installer to need a spell"
+ while ! test -e $SI_QUEUE_DIR/force_run ;do
+ sleep 1
+ done
+ fi
+ si_pop &&
+ idle=false ||
+ {
+ if ! $idle ;then
+ echo "nothing to do"
+ idle=true
+ fi
+ sleep 2
+ }
+ rm -f $SI_QUEUE_DIR/force_run
+ done
+}
+
+if [ -f $STATE_DIR/version ]; then
+ . $STATE_DIR/version
+else
+ INSTALLER_VERSION=inofficial-debug
+ SORCERY_VERSION=stable #wild guess
+ GRIMOIRE_VERSION=stable
+ KERNEL_VERSION=$(uname -r)
+fi
+
+trap "true" INT QUIT
+trap cleanup TERM
+
+# Give the main installer a while to start up the environment
+sleep 10
+# Give resources to main installer whenever it needs them
+renice 19 $$
+# Start the main loop
+main

=== added file 'iso/skeleton/usr/sbin/fancy-useradd.sh'
--- /dev/null
+++ iso/skeleton/usr/sbin/fancy-useradd.sh
@@ -0,0 +1,95 @@
+#!/bin/bash
+
+TARGET=${1:-/}
+
+DESC_FILE=/usr/share/smgl.install/group-descriptions
+
+Username="changeme"
+FullName="John Example"
+Home="/home/changeme"
+Shell="/bin/bash"
+Group="users"
+DEF="Username"
+
+function set_var() {
+ WHAT="$2"
+ shift 2
+ case $WHAT in
+ Username)
+ [[ $Home == "/home/$Username" ]] && Home="/home/$*"
+ ;;
+ esac
+ eval "$WHAT=\$*"
+ DEF=$WHAT
+}
+
+function get_settings() {
+ while true ;do
+ HELP="Please set basic options for the user.
+ Note that the username may not contain special characters
+ or spaces."
+ INPUT=$(dialog --backtitle "SMGL fancy user add tool" \
+ --stdout --extra-label "Change" \
+ --default-item "$DEF" --trim \
+ --inputmenu "$HELP" 20 60 10 \
+ "Username" "$Username" \
+ "FullName" "$FullName" \
+ "Home" "$Home" \
+ "Shell" "$Shell" \
+ "Group" "$Group" )
+ RC=$?
+ case $RC in
+ 255) return 1 ;;
+ 1) return 1 ;;
+ 0) return 0 ;;
+ 3) set_var $INPUT ;;
+ *) echo "Weird things are happening!" ; return 1 ;;
+ esac
+ done
+}
+
+function get_groups() {
+ Moregroups=${Moregroups:-$Group}
+ i=0
+ while read j ;do
+ GNAME=${j%%:*}
+ GNUM=${j%:*}
+ GNUM=${GNUM##*:}
+ GROUPSES[i++]="$GNAME"
+ GROUPSES[i++]="$GNUM"
+ [[ $Moregroups =~ '(^|,)'$GNAME'(,|$)' ]] &&
+ GROUPSES[i++]="on" ||
+ GROUPSES[i++]="off"
+ if grep -q "^$GNAME:" $DESC_FILE ;then
+ GROUPSES[i++]="$(sed -n "s/^$GNAME://p" $DESC_FILE)"
+ else
+ GROUPSES[i++]="No description available."
+ fi
+ done <$TARGET/etc/group
+
+ HELP="Select any groups that the new user should be part of.
+ Usually, less is better here."
+ # We use extra-button so that the changed groups are saved anyway
+ groups=$(dialog --backtitle "SMGL fancy user add tool" \
+ --stdout --single-quoted \
+ --no-cancel --extra-button \
+ --extra-label "Back" \
+ --item-help \
+ --checklist "$HELP" 0 0 0 \
+ "${GROUPSES[@]}" )
+ rc=$?
+ Moregroups=$(echo $groups | tr ' ' ',')
+ return $rc
+}
+
+get_settings &&
+while ! get_groups ;do # Allow a "back" button
+ get_settings || exit 1
+done
+
+[[ -e "$TARGET$Home" ]] || HOMEMADE="-m"
+
+chroot $TARGET groupadd -f "$Group" #Create group if it doesn't exist yet
+
+chroot $TARGET useradd -c "$FullName" -d "$Home" -g "$Group" -G $Moregroups
$HOMEMADE -s "$Shell" "$Username"
+chroot $TARGET passwd "$Username"

=== added file 'iso/skeleton/usr/sbin/installer.sh'
--- /dev/null
+++ iso/skeleton/usr/sbin/installer.sh
@@ -0,0 +1,464 @@
+#!/bin/bash
+########################################################################
+# Copyright (c) 2005 Source Mage GNU/Linux Team <www.sourcemage.org> #
+########################################################################
+# #
+# This program 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 program 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 program; if not, write to the Free Software #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, #
+# MA 02111-1307 USA #
+# #
+########################################################################
+# This is a menu driven process of #
+# installing from the Source Mage GNU/Linux ISO #
+# #
+########################################################################
+
+# Files that should be provided for this installer to work:
+# ${DATA_DIR}/directories - Directories to force create (newinstall)
+# ${STATE_DIR}/optionalSpellList - list of optional spells with description
+# (optionalSpell)
+
+# ------------------ GLOBAL Variables ----------------------------------
+# DATA_DIR: dir containing static data
+# STATE_DIR: dir containing pre-generated lists etc.
+# DEPENDS_DIR: internal directory for depends
+# FINALFILES: Directory containing e.g. /etc files that should be copied
+# on when all is done (to prevent getting overwritten by spell files)
+# TARGET: Directory to install to
+
+DATA_DIR=/usr/share/smgl.install
+MODULE_DIR=$DATA_DIR/modules
+TEMPLATE_DIR=$DATA_DIR/templates
+STATE_DIR=/var/lib/smgl.install
+
+TMP_DIR=/tmp
+DEPENDS_DIR=$TMP_DIR/installer_depends
+FINALFILES=$TMP_DIR/finalfiles
+INSTALLER_DEBUG=$TMP_DIR/installer_debug
+
+# Color definitions
+COLOR_next_required="\Zb\Z7" # bright white
+COLOR_required="\Z4" # blue
+COLOR_optional="\Zb\Z2" # bright green
+COLOR_reconfigure="\Z2" # green
+COLOR_not_possible="\Zb\Z0" # grey
+COLOR_misc="\Zn" # black
+# ---------------END GLOBAL Variables ----------------------------------
+
+#source all the modules to load everything...
+#TODO: perhaps source things only when needed?
+for inst_MODULE in $MODULE_DIR/* ;do
+ . $inst_MODULE #This has to be a global :/
+done
+
+#introduction: don't remember ever seeing this do anything...
+# SECTION: MISC
+intro_screen() {
+
+ local MSG="The purpose of Source Mage GNU/Linux is to return
+control to System Administrators that the wizards and
+maintainers of modern distributions have steadily
+chipped away."
+
+ run_dialog --title "Welcome to Source Mage GNU/Linux" \
+ --msgbox "${MSG}" 0 0
+
+ local MSG="Source Mage GNU/Linux empowers System Administrators
+to choose:
+
+ the architecture that programs are compiled for, the
+ dependencies a program is compiled with, compiler
+ optimizations, and compile time options.
+
+And it provides the conveniences of:
+
+ command line and menu driven package management,
+ ASCII configuration and data files, FHS 2.2
+ compliant filesystem hierarchy, parallel simpleinit
+ and networking."
+
+ run_dialog --cr-wrap \
+ --title "The Benefits of Source Mage GNU/Linux" \
+ --msgbox "${MSG}" 0 0
+
+ run_dialog --cr-wrap \
+ --title "About this installer" \
+ --msgbox \
+"This installer is developed by the Source Mage
+Cauldron team. Feedback is very welcome under
+bugs.sourcemage.org, or on IRC on irc.freenode.net,
+channel #sourcemage-cauldron.
+
+This installer installs spells in the background,
+you can view progress on tty2 if you want (press
+ALT+F2 or ALT+RightArrow).
+
+There's a help file accessible from the main menu
+on this installer, or on tty6 (ALT-F6 or
+ALT+LeftArrow).
+We hope you'll enjoy using our installer! ;-)" 0 0
+
+ return 0
+}
+
+
+
+#goodbye: the finishing function. Copy the debug log if theres a certain
+# file in the /tmp dir. then ask to reboot.
+# SECTION: ???
+final_screen() {
+
+ # This is the place for release-note bigass warnings
+ run_dialog --cr-wrap --msgbox \
+"Once you have booted your new system, it's recommmended to:
+* ensure that networking is up
+* run \"sorcery update\" to update the sorcery scripts
+* run \"scribe update\" to update the spell lists
+* configure sorcery (run \"sorcery\", go to Options)
+* run \"sorcery rebuild\" to build everything with your
+ chosen optimizations" 0 0
+
+ # copy the install-debug log
+ if [ -d ${TARGET}/var/log ] && [ -s $INSTALLER_DEBUG ] ;then
+ cp $INSTALLER_DEBUG ${TARGET}/var/log/SMGL-$INSTALLER_VERSION-install.log
+ if grep -q 'ERROR' $INSTALLER_DEBUG ;then
+ display_message \
+"There appear to have been errors during \
+the install. In order to help debugging them, \
+could you please somehow mail the file
+/var/log/SMGL-$INSTALLER_VERSION-install.log
+(on the installed system) \
+to iso AT sourcemage.org? Please include \
+\"[ISO debugging log]\" in the e-mail subject."
+ fi
+ fi
+ if check_dependency disk-root && confirm \
+ "Do you want to boot into your new system directly? (experimental)"\
+ --defaultno ;then
+ export ACTION="pivot_root"
+ export ROOTDEV=$(get_dependency disk-root)
+ else
+ export ACTION="reboot"
+ if [[ -e /etc/cddev ]] ;then
+ CDDEV=$(</etc/cddev)
+ else
+ CDDEV=$(cat /proc/cmdline | sed 's/.*root=//' | cut -d' ' -f1)
+ fi
+ export CDDEV
+ fi
+
+ exec shutdown -h -q now # -h because that one calls halt_action
+}
+
+# shells out
+# SECTION: MISC
+shell() {
+
+ echo "Press CTRL-D or type exit to return to the installer"
+ /bin/login-shell.sh
+
+}
+
+#displays the intallation help file
+# SECTION: MISC
+display_install_help() {
+
+ run_dialog --cr-wrap --textbox $DATA_DIR/install.guide 0 0
+ return 0
+}
+
+# resets every variable and restarts the installation
+# SECTION: MISC
+reset_installer() {
+# unset all these
+#common
+ unset EDITOR
+ unset LANG
+
+ # first unmount already mounted filesystems
+ local mounted_part
+ for mounted_part in `mount | awk ' { print $3}' | grep /mnt/root | sort -r`
+ do umount -f $mounted_part 2>/dev/null
+ done
+ swapoff -a
+
+ # then when unmounted, stop raid arrays
+ for RDEV in `grep raiddev /etc/raidtab | awk '{print $2}'`;
+ do raidstop $RDEV
+ done
+
+ # now remove raid temporary files so the restart works on all partitions
+ rm -f /tmp/raid*
+ rm -f /etc/raidtab
+ rm -f /tmp/fstab
+ # add restart to installer-debug log if it exists
+ debug_log "main" 0 "Resetting installer"
+
+ # reset depends stuff
+ rm -f $DEPENDS_DIR/*
+
+ rm -rf $FINALFILES/*
+ cp --parents /etc/sysconfig/* ${FINALFILES}
+
+ # reset spellinstaller stuff
+ rm -rf $SI_QUEUE_DIR
+}
+
+#displays the installer menu
+display_install_menu() {
+
+# TODO: move kernel down a bit, since configuring now happens inside
+# the "select" step
+
+ main_move_on "init"
+
+ while true ;do
+
+ local ICOMMAND
+ local MENU_DESCRIPTION="Here are the steps for the install. [*] denotes
an optional step.
+All other steps are required. Entries should be followed in the order in
+which they appear."
+ ICOMMAND=$(run_dialog --colors \
+ --title "Source Mage GNU/Linux installer" \
+ --nocancel --default-item $CURRENT_MAIN \
+ --item-help --menu "$MENU_DESCRIPTION" \
+ 0 0 0 \
+ "A" "${COLOR_MAIN_INTRO}[*]Introduction" \
+ "Read about the advantages of using Source Mage GNU/Linux" \
+ "?" "${COLOR_MAIN_HELP}[*]Installation and help notes" \
+ "A help text on the installer" \
+ "B" "${COLOR_MAIN_NLS}[*]Pre-installation defaults settings" \
+ "Select default language, keymap, font and editor" \
+ "C" "${COLOR_MAIN_DISK}Disk Structure" \
+ "Partition, format, and mount your disk" \
+ "D" "${COLOR_MAIN_START}Start Installation" \
+ "Start everything, no going back to mounting now" \
+ "E" "${COLOR_MAIN_TIME}[*]Select Timezone" \
+ "Select this box's timezone" \
+ "F" "${COLOR_MAIN_ARCH}[*]Architecture Optimizations" \
+ "Select Architecture and Optimizations" \
+ "G" "${COLOR_MAIN_KERNEL}Select Linux Kernel" \
+ "Determine wether to compile or install the default kernel" \
+ "H" "${COLOR_MAIN_LOG}[*]Configure Log System" \
+ "Select a daemon for system logging, or none!" \
+ "I" "${COLOR_MAIN_BOOT}Configure Bootloader" \
+ "Configure a bootloader for this box" \
+ "J" "${COLOR_MAIN_NET}Configure Networking" \
+ "Configure this box's network" \
+ "K" "${COLOR_MAIN_MISC}Misc. Configuration" \
+ "Select some extra spells to install and configure a bit." \
+ "L" "${COLOR_MAIN_FINISH}Install Source Mage GNU/Linux" \
+ "Install all left to be done" \
+ "M" "${COLOR_MAIN_SERVICES}[*]Choose Services to Run at Boot
(expert)" \
+ "Select which services to start at boot" \
+ "X" "${COLOR_MAIN_DONE}Done" \
+ "Exit! Done! Finito!" \
+ "S" "${COLOR_MAIN_SHELL}[*]Shell" \
+ "Shell out perhaps to load modules" \
+ "R" "${COLOR_MAIN_RESTART}[*]Restart Installation" \
+ "Resets everything and begins installation again" \
+ "Z" "${COLOR_MAIN_DEBUG}[*]Debug Menu" \
+ "Change debugging settings" )
+
+ [[ -z $ICOMMAND ]] && continue
+
+ case $ICOMMAND in
+ A) intro_screen ;;
+ B) nls_screen ;;
+ C) disk_structure_screen ;;
+ D) setup_target ;;
+ E) timezone_screen ;;
+ F) arch_screen ;;
+ G) kernel_screen ;;
+ H) logger_screen ;;
+ I) bootloader_screen ;;
+ J) network_screen ;;
+ K) optional_screen ;;
+ L) install_screen ;;
+ M) services_screen ;; # Yes, works on the installed files and does
+# nothing else, so has to be run after target is fully set up.
+ X) final_screen ;;
+ S) shell ;;
+ R) reset_installer ;;
+ Z) debug_screen ;;
+ ?) display_install_help ;;
+ esac
+
+ RETURNVALUE=$?
+
+ if [[ $RETURNVALUE == 0 ]]; then
+ #movin on!
+ main_move_on "$ICOMMAND"
+ else
+ debug_log "main" 1 "Failed to run menu entry $ICOMMAND"
+ echo "Detecting an error, not moving forward in the menu." >&2
+ debug_enter "main" 2
+ fi
+
+ done
+}
+
+# Runs whatever wheels need to be run to mark the given step
+# as done and move on to the next one
+main_move_on() {
+ case $1 in
+ "init")
+ CURRENT_MAIN="B"
+ main_colorize misc INTRO HELP
+ main_colorize next_required DISK
+ main_colorize optional NLS
+ # FIXME: This is not technically correct, some of those
+ # steps are already possible thanks to $FINALFILES.
+ main_colorize not_possible START TIME ARCH KERNEL LOG BOOT NET
+ main_colorize not_possible MISC FINISH SERVICES
+ main_colorize required DONE
+ main_colorize misc SHELL RESTART DEBUG
+ ;;
+ A) CURRENT_MAIN="B" ;;
+ B)
+ CURRENT_MAIN="C"
+ main_colorize reconfigure NLS
+ ;;
+ C)
+ CURRENT_MAIN="D"
+ main_colorize reconfigure DISK
+ main_colorize next_required START
+ main_colorize optional TIME ARCH LOG
+ ;;
+ D)
+ CURRENT_MAIN="E"
+ main_colorize not_possible START DISK
+ main_colorize next_required KERNEL
+ main_colorize required NET
+ ;;
+ E)
+ CURRENT_MAIN="F"
+ main_colorize reconfigure TIME
+ ;;
+ F)
+ CURRENT_MAIN="G"
+ main_colorize reconfigure ARCH
+ ;;
+ G)
+ CURRENT_MAIN="H"
+ main_colorize reconfigure KERNEL
+ main_colorize next_required BOOT
+ ;;
+ H)
+ CURRENT_MAIN="I"
+ main_colorize reconfigure LOG
+ ;;
+ I)
+ CURRENT_MAIN="J"
+ main_colorize next_required NET
+ main_colorize reconfigure BOOT
+ ;;
+ J)
+ CURRENT_MAIN="K"
+ main_colorize next_required MISC
+ main_colorize reconfigure NET
+ ;;
+ K)
+ CURRENT_MAIN="L"
+ main_colorize next_required FINISH
+ main_colorize reconfigure MISC
+ ;;
+ L)
+ CURRENT_MAIN="X"
+ main_colorize not_possible NLS TIME ARCH KERNEL LOG BOOT NET MISC
FINISH
+ main_colorize next_required DONE
+ main_colorize reconfigure SERVICES;;
+ M) CURRENT_MAIN="X" ;;
+ X) true ;; #huh, wtf? You're supposed to just have rebooted the box...
+ R) CURRENT_MAIN="B" ;; #reset the installer
+ *) `dialog --infobox "HOLY CRAPOLA got $1 for a menu item" 10 60; sleep
2`;;
+ esac
+}
+
+# @args $1 color to set steps to
+# @args $* steps to colorize
+main_colorize() {
+ local color_name="COLOR_$1"
+ local step
+ shift
+ for step in "$@" ;do
+ eval "COLOR_MAIN_$step=\$$color_name"
+ done
+}
+
+# sets up the system for the install process
+# SECTION: INSTALLER
+main() {
+
+ export PATH="/bin:/usr/bin:/sbin:/usr/sbin"
+ export HOME="/root"
+
+# mount /proc (needed later for /proc/partitions for instance)
+
+ mount -t proc proc /proc
+
+# mount /dev (is it needed)
+# mount -t devfs devfs /dev
+
+ [ -z $ARCH ] && ARCH=`uname -m`
+
+# TARGET is the mount point where Source Mage will be installed it
+# should be defined before running this script or it will default to
+# /mnt/root. Since this script is intended to run from a CDROM (ie
+# read-only filesystem), the directory must already exists.
+
+ [ -z $TARGET ] && TARGET=/mnt/root
+
+# check for TARGET
+ if [ ! -d "${TARGET}" ]; then
+ echo "TARGET=${TARGET} is not an existing directory."
+ exit 1
+ fi
+
+ mkdir -p $DEPENDS_DIR $FINALFILES
+ cp --parents /etc/sysconfig/* ${FINALFILES}
+
+ if [[ "$1" == "-e" ]] ;then
+ return # to just fetch environment
+ fi
+
+ init_debug
+
+ display_install_menu
+
+}
+
+#
+# this script really starts here
+#
+
+# do some initial config things
+# TODO: add these to a function
+if [ -f $STATE_DIR/version ]; then
+ . $STATE_DIR/version
+else
+ INSTALLER_VERSION=inofficial-debug
+ SORCERY_VERSION=stable #wild guess
+ GRIMOIRE_VERSION=stable
+ KERNEL_VERSION=$(uname -r)
+fi
+
+echo "INSTALLER (RE)STARTING" 1>&2
+
+export DIALOGRC=/etc/sorcery/dialogrc # yoohoo! sorcery color scheme!
+
+trap "true" INT QUIT
+
+# start the installation process
+main "$@"

=== added directory 'iso/skeleton/usr/share'
=== added directory 'iso/skeleton/usr/share/smgl.install'
=== added file 'iso/skeleton/usr/share/smgl.install/default_debug'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/default_debug
@@ -0,0 +1,1 @@
+2

=== added file
'iso/skeleton/usr/share/smgl.install/default_debug_spellinstall'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/default_debug_spellinstall
@@ -0,0 +1,1 @@
+3

=== added file 'iso/skeleton/usr/share/smgl.install/deps-optional'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/deps-optional
@@ -0,0 +1,7 @@
+keymap# Set to defkeymap automatically if unset
+font
+lang
+editor
+architecture# Copy sorcery default config anyway
+timezone# Set to UTC by default
+syslog

=== added file 'iso/skeleton/usr/share/smgl.install/deps-required'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/deps-required
@@ -0,0 +1,6 @@
+disk# Partition disks
+install_start# Initial installation
+linux# Kernel install
+bootloader# Bootloader installed
+network# Set up network (or at least seen hints for "none")
+dev_format# /dev set up

=== added file 'iso/skeleton/usr/share/smgl.install/directories'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/directories
@@ -0,0 +1,41 @@
+# Extra directories to create during install.
+# Syntax:
+# /path [mode [owner [group]]]
+# Only lines prefixed with a '#' /as first char/ are ignored
+# No empty lines, no comments starting in the middle of a line
+#
+# WORKAROUND until smgl-fhs remembers about these
+# maybe it's excludes cutting us though
+/dev
+/dev/pts
+/dev/shm
+/home
+/proc
+/root 0700
+/sys
+/tmp 1777
+/usr/src
+/var/cache
+/var/cache/fonts
+/var/cache/man
+/var/cache/www
+/var/run
+/var/lock
+/var/log
+/var/spool
+/var/spool/lpd
+/var/spool/mail 3775 root mail
+/var/spool/mqueue
+/var/spool/news
+/var/spool/rwho
+/var/spool/uucp
+/var/state
+/var/tmp 1777
+/var/yp
+# </WORKAROUND>
+/etc/skel
+/etc/sorcery/local
+/mnt/cdrom
+/mnt/floppy
+/usr/games
+/var/lib/sorcery/codex

=== added file 'iso/skeleton/usr/share/smgl.install/group-descriptions'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/group-descriptions
@@ -0,0 +1,17 @@
+root:Root group. Normal users shouldn't be in here.
+daemon:Daemon group. Legacy group for userspace daemons
+bin:Bin group. Legacy group for programs
+tty:Can print text to any terminal (static /dev only)
+disk:can do raw reads of disks (WARNING: This means they can read all files)
+lp:can access printers (static /dev only)
+mail:can read/write any user's mail spool. NOT for normal users.
+kmem:can read kernel memory (static /dev only)
+ppp:can read/write modems and serial ports on the system (only static /dev)
+scsi:can do raw reads of scsi disks (WARNING: can read all files) (udev only)
+cdrom:can raw read cdroms (udev only)
+floppy:can do raw access to floppy disks
+audio:can access audio devices
+video:can access video4linux devices (udev only)
+wheel:can run administrator commands
+burning:can access CD writers (udev and cdrtools)
+users:generic group for all users on the system

=== added file 'iso/skeleton/usr/share/smgl.install/install-list'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/install-list
@@ -0,0 +1,14 @@
+smgl-fhs
+basesystem
+rpmunpack
+util-linux
+#kbd
+console-data
+console-tools
+netkit-base
+netkit-ping
+sorcery-pubkeys
+__SMGL_TEMPLATE_ONLY_ppc__mac-fdisk
+__SMGL_TEMPLATE_ONLY_ppc__yaboot
+__SMGL_TEMPLATE_ONLY_ppc__hfsutils
+__SMGL_TEMPLATE_ONLY_ppc__mktemp

=== added file 'iso/skeleton/usr/share/smgl.install/install.guide'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/install.guide
@@ -0,0 +1,738 @@
+= About this Installation Help Guide
+
+This file is located at
+/usr/share/smgl.install/install.guide on the install disk,
+in case you want to copy it to another computer and/or
+print it out. See the end for authors and copyright
+notice.
+
+= How to navigate this document
+
+Use the up and down arrows to scroll, and page up and
+page down keys to scroll quickly. Use the / key to
+search for text. Hit enter to exit.
+
+= How to navigate the Installer
+
+The Source Mage installer uses the `dialog' program to
+accept user input.
+
+Generally in dialog, escape means cancel and enter
+means ok.
+
+The dialog program supports the following basic widget
+types that we use:
+
+-- textbox
+
+This is the widget that you see here. It supports
+arrow keys, page-up, page-down, home, end, and many vi
+navigation keys.
+
+-- menu
+
+This widget merely presents a list of choices. To the
+left of each choice is a hot-key that moves you to that
+menu item quickly. If there are more menu options than
+the screen can fit, the arrow keys can be used to
+reveal more menu items and (+) graphics will show you
+that more items are available. To select an item that's
+highlighted, press enter. To leave the menu, press
+cancel. Cancelling a submenu often means "I'm done." in
+this installer.
+
+-- checklist
+
+The checklist widget allows one to turn on and off
+items in a list. Similar to the menu widget, the
+checklist also has [ ] or [X] boxes for off and on,
+respectively. To toggle the state of each item, use the
+space bar. When finished, press enter.
+
+-- msgbox
+
+The msgbox merely lets you know something, and you
+acknowledge it by hitting enter to select ok.
+
+-- inputbox
+
+The inputbox allows you to enter a free string of text
+into a box. When you press enter, the text in the box
+is accepted by the program.
+
+-- yesno
+
+The yesno box allows you to say yes or no to a query.
+Press Y or N to respond, or highlight the appropriate
+response with the left and right arrow keys and select
+the highlighted response with the enter key.
+
+= How to install Source Mage
+
+Essentially, to install Source Mage from this program,
+you insert the installation disk into your computer,
+you boot it up so that the installation disk is booted
+(sometimes requiring one to set the CDROM boot urder
+before other media in the bios or using a cdrom boot
+floppy), and you see the initrd menu where you can load
+special kernel modules for different scsi devices,
+etc. if needed. Most people can just skip that menu by
+selecting `Continue'.
+
+Once you continue from the initrd menu, the main
+install script is executed. Most people will follow the
+basic guided menus during installation, but at any
+point the user may `shell out' with the shell menu and
+perform special install steps if they so desire, or
+they may disable the guided menu to gain more
+flexibility with the install process.
+
+To learn more about each step in the Install Menu, read
+the next section.
+
+When you are done with the Install Menu, you simply
+reboot the computer without the install disk in the
+drive, and enter the user `root' and password you
+selected during install. Do not forget this password,
+as you will be asked for it to gain access to your
+machine each time you use it.
+
+If you don't already have your network setup, you can
+use the `netconf' tool to configure your networking
+now. Once you get online, you should update your box to
+the latest stable Source Mage. To do that, merely type
+`sorcery system-update' and hit enter. After your
+system is updated, type `sorcery rebuild` to recompile
+your system to your optimizations.
+
+After that, you may create an unprivileged user with
+`adduser', `cast' an irc program such as `irssi', and
+use `lynx' if needed to browse the wiki.sourcemage.org
+website to get help. Linux uses two types of manuals,
+for the most part: `man' and `info' pages. Type `man
+adduser' for example to read the manual for adduser.
+Most command-line programs will come with man pages
+rather than info docs, although many gnu utilities will
+have more extensive info documentation available.
+
+Check out `man sorcery', `man cast', `man dispel', `man
+gaze', and `man scribe' to learn more about the sorcery
+package manager for Source Mage.
+
+= Install Menu Items
+
+-- Restart Installation
+
+This unmounts all mounted harddrives, deletes any
+temporary files, unsets all the variables already set
+by the installer allowing you to begin the installation
+again without having to reboot.
+
+-- Introduction
+
+This is merely an introduction screen for Source Mage.
+
+-- Installation Help
+
+This is just a reader for this text file.
+
+-- Native Language Support
+
+All of these options have sane defaults for many
+people. KEYMAP, LANG and EDITOR now show selected types
+in the item-help at the bottom of the screen.
+
+-- -- Font
+
+This is where you may select a preferred console font.
+
+-- -- Keymap
+
+This is where you may select a preferred console
+keymap.
+
+-- -- Lang
+
+This is where you may select a preferred console
+language. Sorcery is currently English-only, but many
+other programs support many different languages.
+
+-- -- Editor
+
+Nano is the default editor, but you may select elvis
+(vi-like) and jed as alternatives. Jed is like emacs,
+and nano is like pico.
+
+-- Partition Drive
+
+In this menu, you'll first be asked which disk you want
+to partition. Second, you'll be able to select from
+one of three partitioning programs available: cfdisk,
+fdisk, and parted. Note that since Source Mage uses the
+device filesystem, we no longer use the /dev/hda,
+/dev/sda formats for discs, but instead use the long
+unified namespace, such as
+/dev/discs/{disc0|disk1|...}/{disc|part1|part2|...} .
+
+Source Mage requires at least a root (/) partition. The
+Linux filesystem structure consists of a root mount
+point, and nestable subdirectories (folders in
+Windows-speak). Partitions in addition to the root
+mount point are mounted on any subdirectory at any
+depth of the root directory.
+
+See `man hier' for more information about the Linux
+filesystem hierarchy.
+
+Directories are separated by the `/' character.
+
+Most people create a / and /boot partition. If you use
+a filesystem that lilo recognizes, you don't need a
+separate /boot partition, grub will run from xfs,
+reiserfs or ext[2,3]. Additionally, many create
+partitions specifically for /var, /usr, sometimes
+/var/log and even /var/spool/sorcery.
+
+If you create a separate /boot partition, it should be
+at least enough to handle however many kernels you may
+want to boot from. I suggest at least 100 MB for Source
+Mage, but it's possible to get away with something as
+small as 10 MB.
+
+When creating partitions, it's also a good idea to allocate a swap
+partition. Swap is where memory goes when you run out of more expensive
+physical RAM. Source Mage recommends at least 1 GB of memory (RAM +
+swap). Most people create a swap partition twice the size of their total
+physical RAM. Instead of a swap partition, it is also possible to create
+a swap file later, although, swap partitions are preferred. If no swap
+partition is detected when the image transfer is about to begin, you will
+be prompted to create a swapfile instead.
+
+Linux uses partition type 83. Linux swap uses partition
+type 82. RAID and Volume Managed types may have
+different values, like fd for Linux raid autodetect and
+8E for Linux LVM. Specific details of advanced
+partitioning schemes are beyond the scope of this
+install guide. But there is now software RAID support
+in the installer, that will automatically change the
+partition type of RAID partitions to fd so the kernel
+can autodetect and initialise them upon boot.
+
+A brief description of each partitioning program
+follows:
+
+-- -- cfdisk
+
+`cfdisk' is a curses-based disk partition table
+manipulator.
+
+To learn more about how to use cfdisk, shell out and
+type `man cfdisk'. cfdisk is suggested for most normal
+installations and new users. See the discussion above
+on what partitions to create.
+
+-- -- fdisk
+
+`fdisk' is an interactive command-based disk partition
+table manipulator.
+
+To learn more about how to use fdisk, shell out and
+type `man fdisk'. fdisk is suggested for more advanced
+users.
+
+-- -- parted
+
+`parted' is an interactive command-based partition
+manipulator, that can edit not just tables, but it can
+resize many partitions as well.
+
+To learn more about how to use parted, shell out and
+type `man parted' and `info parted`. Try: `info parted
+"File Systems" "Supported File Systems"' to see a table
+of supported File Systems. The most useful feature of
+parted is to resize an existing partition to a smaller
+partition to give you more room for a Source Mage
+partition, if you are an existing Windows 9x user.
+
+-- [Optionally} Make a Raid device
+
+This menu guides you through a simple RAID setup.
+
+-- -- RAID partition selection Menu
+
+Use the checklist to choose which partitions to assign
+to this array.
+
+-- -- RAID level selection Menu
+
+Choose the level for your Raid Array.
+
+Linear - Combine the hard disk partitions by simply
+appending one to the other.
+
+RAID 0 - Combine the hard disk partitions into one
+logical device in such a fashion as to fill them up
+evenly, one chunk here and one chunk there. This will
+increase the throughput rate if the partitions reside
+on distinct disks.
+
+RAID 1 - A RAID-1 set consists of several disk drives
+which are exact copies of each other. In the event of a
+mirror failure, the RAID driver will continue to use
+the operational mirrors in the set, providing an error
+free MD (multiple device) to the higher levels of the
+kernel. In a set with N drives, the available space is
+the capacity of a single drive, and the set protects
+against a failure of (N - 1) drives. RAID 1 is the only
+raid level that grub and lilo can boot from.
+
+RAID 4/5 - A RAID-4/5 set of N drives with a capacity
+of C MB per drive provides the capacity of C * (N - 1)
+MB, and protects against a failure of a single
+drive. For a given sector (row) number, (N - 1) drives
+contain data sectors, and one drive contains the parity
+protection. For a RAID-4 set, the parity blocks are
+present on a single drive, while a RAID-5 set
+distributes the parity across the drives in one of the
+available parity distribution methods.
+
+RAID 6 - This is possible by manually editing the
+raidtab file next but there is not official support for
+it because it is too experimental.
+
+-- -- Edit the raidtab before initialising the arrays ?
+
+A chance is offered for experienced users to edit the
+raidtab and allocate disks as spare, change parity
+options or change chunk-size. Leaving the default
+options will work for everyone.
+
+-- -- Make and start the RAID arrays now ?
+
+This is the point of no return. Confirming will rewrite
+your partitions tables so RAID partitions are of type
+fd (raid autodetect), and then initialise the arrays
+outlined in the raidtab file. THIS WILL DESTROY ALL
+DATA ON THESE PARTITIONS.
+
+-- Mount Filesystems
+
+After you have created your partitions and have at
+least a root partition ready to be mounted, you must
+mount your partitions. This menu will ask you for what
+partition to mount and what filesystem to mount it
+with. The currently supported filesystems are ext2,
+ext3, reiserfs, swap, xfs, and jfs. The following is a
+list of supported filesystems and a description of
+each:
+
+-- -- ext2
+
+ext2 was originally released in January 1993. Written
+by R'emy Card, Theodore Ts'o and Stephen Tweedie, it
+was a major rewrite of the Extended Filesystem. It is
+currently still (April 2001) the predominant filesystem
+in use by Linux. There are also implementations
+available for NetBSD, FreeBSD, the GNU HURD, Windows
+95/98/NT, OS/2 and RISC OS.
+
+ext2 shares many properties with traditional Unix
+filesystems. It has the concepts of blocks, inodes and
+directories. It has space in the specification for
+Access Control Lists (ACLs), fragments, undeletion and
+compression though these are not yet implemented (some
+are available as separate patches). There is also a
+versioning mechanism to allow new features (such as
+journalling) to be added in a maximally compatible
+manner.
+
+-- -- ext3
+
+ext3 is a journalling version of ext2. Journalling
+avoids the need for long `fsck's (filesystem checks) on
+dirty (uncleanly mounted) disks, and ensures that the
+file system can be quickly brought to a consistent
+state, even across power cuts to the system. You can
+choose either data=writeback or
+data=ordered. data=writeback ensures filesystem
+integrity but not data integrity. data=ordered is
+designed for complete data integrity.
+
+-- -- reiserfs
+
+# Generally higher performance for all file sizes
+# Wastes less space: no static inode space allocation,
+ small files packed together
+# Much higher performance for large directories, even
+ compared to other balanced tree filesystems
+# Commitment to introducing plug-ins in the next major
+ release: we don't lock the users out of the source
+ code, you can easily invent your own types of files
+ and directories, and share them with the world
+# Technical foundation has now been laid for
+ systematically introducing the best features of
+ database and keyword systems into the filesystem
+ where all applications in the OS can use them.
+# Reduces the need for namespace fragmentation in the
+ operating system: see Future Vision
+
+ReiserFS does meta-data journaling, enabling fast crash
+recovery without the expense of full data
+journaling. There is a (separate) patch from Chris
+Mason that implements full data journaling for ReiserFS
+v3.
+
+Note: Full data journaling is considered by many to be
+a good way to achieve file data integrity across system
+crashes. However, although file data may appear to be
+consistent from the kernel point of view, since there
+is no API exported to the userspace to control
+transactions, we may end-up in a situation where the
+application makes 2 write requests (as part of one
+logical transaction) but only one of these gets
+journaled before the system crashes. From the
+application point of view, we may then end up with
+inconsistent data in the file.
+
+Such issues should be addressed with the upcoming
+ReiserFS v.4 release. Such an API will be exported to
+userspace and all programs that need transactions will
+be able to use it.
+
+See http://www.namesys.com/ for more information. This
+information was taken from the namesys.com website.
+
+-- -- swap
+
+This is the Linux swap partition type. Swaps may be
+given priority numbers on mount to round-robin swap
+across multiple hard drives:
+
+Swap pages are allocated from areas in priority order,
+highest priority first. For areas with different
+priorities, a higher-priority area is exhausted before
+using a lower-priority area. If two or more areas have
+the same priority, and it is the highest priority
+available, pages are allocated on a round-robin basis
+between them. (from `man 2 swapon')
+
+-- -- xfs
+
+XFS is a journalling filesystem developed by SGI and
+used in SGI's IRIX operating system. It is now also
+available under GPL for linux. It is extremely
+scalable, using btrees extensively to support large
+and/or sparse files, and extremely large
+directories. The journalling capability means no more
+waiting for fsck's or worrying about meta-data
+corruption.
+
+ Q: Does LILO work with XFS?
+
+This depends on where you install LILO. For MBR
+installation: Yes. For root partitions: No, because the
+XFS superblock goes where LILO would be installed. This
+is to maintain compatibility with the Irix on-disk
+format. This will not be changed. Putting the
+Superblock on the swap partition is reported to work
+but not guaranteed. (from
+http://oss.sgi.com/projects/xfs/faq.html#whatisxfs )
+
+Grub works with XFS natively. XFS can also be made a
+root partition as long as lilo is installed to the MBR
+or some other location. Use the Linux native type 83
+for the partition type when creating an XFS partition.
+
+-- -- jfs
+
+IBM's journaled file system technology, currently used
+in IBM enterprise servers, is designed for
+high-throughput server environments, key to running
+intranet and other high-performance e-business file
+servers. IBM is contributing this technology to the
+Linux open source community with the hope that some or
+all of it will be useful in bringing the best of
+journaling capabilities to the Linux operating system.
+
+The Journaled File System (JFS) provides a log-based,
+byte-level file system that was developed for
+transaction-oriented, high performance
+systems. Scalable and robust, its advantage over
+non-journaled file systems is its quick restart
+capability: JFS can restore a file system to a
+consistent state in a matter of seconds or minutes.
+
+While tailored primarily for the high throughput and
+reliability requirements of servers (from single
+processor systems to advanced multi-processor and
+clustered systems), JFS is also applicable to client
+configurations where performance and reliability are
+desired.
+
+-- [Optionally] Make Swapfile
+
+To setup a swap file, it is necessary to create that
+file before initializing it with mkswap , e.g. using a
+command like
+
+# dd if=/dev/zero of=swapfile bs=1024 count=65536
+
+Note that a swap file must not contain any holes (so,
+using cp(1) to create the file is not acceptable).
+
+(from `man swapon')
+
+Our installer handles this work for you. You just have
+to provide a name and size in MB. Swapfile generation
+is now optional, it is only included in the unguided
+menu, but it will be prompted for if no swap exists
+prior to transfering Source Mage to the hard drive, but
+may still be cancelled as either a swap partition or a
+swapfile are optional.
+
+-- Select Timezone
+
+This is where you select your timezone for the system
+locale. Most of the United States uses something under
+the US directory, such as US/Pacific.
+
+Setting this correctly makes your computer keep local
+time and it knows when to switch for daylight savings
+changes.
+
+-- Architecture Optimize
+
+The first menu is the Build system selection. You
+should select the one closest to your processor type
+but not above it. For IBM/Intel-clones, i386 is the
+safest bet if you're not sure. Shelling out and typing
+`cat /proc/cpuinfo' should give you a safe clue to
+operate from as a base.
+
+The second menu is the compiler optimization menu. The
+defaults are speedy, combreloc, and strip.
+
+The following is a list of the available options and
+what they do:
+
+-- speedy +size ++speed
+
+Speedy sets -O3 optimizations to compilation. This
+increases the size of generated binaries, but gives you
+an increase in speed while taking a longer time to
+compile.
+
+-- risky +speed
+
+Risky adds -ffast-math -funroll-loops, and may violate
+ANSI or IEEE rules, causing incorrect code to be
+produced in some programs.
+
+-- combreloc ++speed
+
+combreloc adds -z combreloc to the compiler. This is
+needed for prelinking and speeds up library loading.
+
+combreloc sorts the cached relocations to speed up
+their access and can dramatically reduce the load time
+spent in the dynamic linker particularly for large
+programs with lots of relocations such as qt/kde.
+
+If you want even more relocation tuning, check out the
+prelink spell when you're done installing. There may be
+a patch in sorcery for native support of prelink in the
+future.
+
+-- tiny -size
+
+tiny adds -Os to the compiler flags.
+
+tiny optimizes for size. -Os enables all -O2
+optimizations that do not typically increase code
+size. It also performs further optimizations designed
+to reduce code size.
+
+-Os disables the following optimization flags:
+--falign-functions falign-jumps -falign-loops
+--falign-labels -freorder-blocks fprefetch-loop-arrays
+
+If you use multiple -O options, with or without level
+numbers, the last such option is the one that is
+effective.
+
+(from `man gcc')
+
+If you use small, there's no point in doing speedy. The
+last one (small) will override speedy. Small does many
+-O2 optimizations anyways.
+
+-- strip --size
+
+strip removes all symbol table and relocation
+information from the executable. It makes it quite a
+bit smaller of an executable, at the cost of making it
+difficult to debug the program. In Source Mage we don't
+care as much about that because we can always turn off
+strip and recompile the affected program or its
+dependencies. It might be good to have one box without
+strip enabled if you tend to send lots of bug reports
+just incase finding the problem entails recompiling a
+lot of dependent libraries.
+
+-- Make jobs Menu
+
+Here is where you select how many make jobs you want to
+run in parallel. Number of CPUs + 1 is a good place to
+start.
+
+-- Install/Configure Linux Kernel
+
+This is no longer an optional stage. The two choices
+are :
+
+i) configure, compile, install a hardware-specific
+kernel of the same version on the ISO.
+
+OR
+
+ii) simply copy the default kernel from the ISO into
+the new system. Most Source Mage users build their own
+kernels. I tend to know what my hardware is before I
+install something, and then compile the kernel with
+just what I have built in and use zero modules. This is
+nice because if I ever break the init system (and
+module-init-tools' modutils startup script), I'm not
+doing things by hand. On the other hand, you may be
+making a general install to be used on many machines,
+or you have varying hardware needs and modules are
+quite nice to have around.
+
+Because the installer now sets up networking before
+installing, you can now download extra patches or even
+a different kernel version if you wish. You need to let
+the installer start your network after configuring it,
+and then you may select any kernel options.
+
+-- Configure Log System
+
+Three loggers are available to choose from, or you may
+choose not to install one at all. Which logger to use
+is a personal choice, but in case you find the one you
+choose here to be lacking, don't worry, you can cast
+another from within Source Mage later on. This will
+dispel the first one for you automatically.
+
+-- Configure bootloader (lilo/grub for x86 or yaboot
+ for ppc)
+
+For x86, you may choose grub or lilo.
+
+Both defaults to installing to the boot sector of the
+partition that /boot is on, but you will be offered to
+install to the MBR if you want. The MBR option will
+NOT install to the MBR of the primary drive on your
+system, it WILL install to the MBR of the drive Source
+Mage is being installed onto. If you are installing
+Source Mage onto a primary drive that shares with
+another OS or linux distribution you should think
+carefully before writing to the MBR, you will likely
+lose the ability to boot your other partitions (until
+you fix the problem that is).
+
+-- Configure Networking
+
+After changing the hostname of your machine, choose
+ethernet, ppp or rp-pppoe connection. You will get
+asked if you need pcmcia-cs, dhcpcd or wireless_tools
+for that connection, choose what you need and then
+configure your connection.
+
+The configuration tools are simple to understand, so
+aren't detailed here. All three connection types will
+offer to start that connection for you (for use during
+install) and if started, it will allow you to download
+kernel patches or sources for compiling a custom
+kernel.
+
+-- Select optional spells to install
+
+Here a sorcery generated list will offer a choice of
+common tools, programs and libraries to install. Each
+spell has a short description of it's purpose, some of
+the choices might have been already chosen in another
+stage of the installer (or not chosen, as the case may
+be), that doesn't mean your previous choice won't be
+installed, it just means you have a chance to install
+some spells the installer knows aren't necessary for
+the actual running of your initial system.
+
+Nothing in this list conflicts with anything else in
+the installer or the list, so choose as many or as few
+as you want.
+
+-- Transfer Source Mage
+
+Previously, when starting to configure timezones, a
+background process installed sorcery, the stable
+grimoire, the sources for kernel and related spells,
+some configuration files for your new system and a few
+libraries and binaries so this transfer stage can
+complete.
+
+The installer now transfers the individual tarballs you
+configured from /var/cache/sorcery onto the root
+install. This must be done after all the filesystems
+are mounted so that, for example, /usr stuff goes onto
+the separate /usr filesystem, if you so chose to do
+that, and doesn't get hidden when /usr is mounted.
+
+-- Oops, I really need to compile a custom kernel
+
+Use this item to change your mind and compile a custom
+kernel for your hardware.
+
+-- Reconfigure bootloader (grub/lilo/yaboot)
+
+Use this item if you changed your mind and now want the
+bootloader installed to the MBR (doesn't work the other
+way, once installed to MBR, it can't be removed, only
+overwritten by some other bootloader),
+
+OR
+
+Use this item to change the configuration file.
+
+eg. to pass vga=791 for a 1024x768 16-bit colour
+ framebuffer console at boot OR special kernel
+ parameters like hdx=remap63 (for OnTrack ide
+ controller)
+
+-- Choose services to run at boot
+
+A simple menu to toggle services on or off. Only a few
+services are essential and init won't let you turn them
+off so you can safely choose to do what ever you want,
+no problems.
+
+-- Done
+-- Shell
+-- Restart Installation
+-- Disable/Enable Guided Menu
+-- Toggle Confirm
+
+= Post-Install
+
+bash-completion and Source Mage command-line utilities.
+
+= Authors
+
+Initial version written (mostly compiled) by Seth
+ Woolley <seth AT tautology.org>
+Additions for 0.9.2 ISO by Hamish Greig
+ <hgreig AT bigpond.net.au>
+More additions for 2004-04-12 ISO by Hamish Greig
+ <hgreig AT bigpond.net.au>
+
+= Copyright (C) 2003-2004 The Source Mage Team.
+Released under the GNU Free Documentation License, with
+no immutable sections.

=== added file 'iso/skeleton/usr/share/smgl.install/kernel.help'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/kernel.help
@@ -0,0 +1,39 @@
+On the following screen you will configure Linus Torvalds' Linux Kernel.
+
+The kernel will be bootable if you select the appropriate BUILT IN
+support for your SCSI or EIDE hardware and the correct SCSI low-level
+driver or IDE chipset support.
+
+Also compile support for the following:
+
+CONFIG_DEVFS_FS . . . /dev file system support (EXPERIMENTAL)
+ and
+CONFIG_DEVFS_MOUNT . . . Automatically mount at boot
+ -We no longer rely on these as static /dev entries are made by
+the installer. It is still recommended for 2.4 series kernels, but not
+for 2.6.X kernels.
+
+2.4.X users wishing NOT to use devfs will need to edit their fstab,
+inittab and/or lilo.conf manually, there is currently no automatic
+conversion of these files, and the installer presumes devfs is wanted for
+2.4.X series.
+
+CONFIG_TMPFS . . . Virtual memory file system support (former shm fs)
+
+CONFIG_RAMFS . . .
+ and
+CONFIG_HOTPLUG . . .
+are requirements for using the udev system with the 2.6.X kernel.
+
+The .config from this (currently running) kernel is located at
+/boot/config-* or /etc/sorcery/local/ISO-kernel.config (depending
+if we are talking about the ISO or the fresh system) and can be loaded
+via the menuconfig menu.
+Be prepared though, it builds *everything* possible, and takes a long
+time. Starting from scratch will most likely be a more time efficient
+option.
+
+Kernel compilation normally takes between 5 and 30 minutes, but the
+full-featured ISO .config will take considerably longer.
+( almost 3 hours on a pII/300)
+

=== added directory 'iso/skeleton/usr/share/smgl.install/modules'
=== added file 'iso/skeleton/usr/share/smgl.install/modules/10common'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/modules/10common
@@ -0,0 +1,221 @@
+#!/bin/bash
+
+LOCK_DIR=/tmp/lock-dir
+
+# 10 so it gets sources first, fwiw
+#this file contains all the functions that might be needed by other
+# modules
+#common functions
+
+# wrapper for dialog, should eventually replace the ugly ${DIALOG[*]}
+function run_dialog() {
+ debug_sleep "pre-dialog"
+ debug_log "dialog" 3 "run_dialog called with the following arguments:" "$@"
+
+ dialog --backtitle "Source Mage GNU/Linux Installer v.
${INSTALLER_VERSION}" \
+ --stdout --cr-wrap "$@"
+
+ local rc=$?
+ [[ $rc == 255 ]] && debug_log "ERROR" -1 "run_dialog failed, params:" "$@"
+ return $rc
+}
+
+# explode(): split up a string into an array at a given delimiter
+# (stolen from sorcery's libmisc)
+# $1: string to explode
+# $2: string to cut at
+# $3: name of the array to put the result into
+#
+# Note: The array you want the fields put into must be
+# declared before you call this function.
+# EXAMPLE
+#
+# my_array=()
+# explode "a_string_to_explode" "_" "my_array"
+# echo my_array[*]
+#
+# Produces "a" "string" "to" "explode".
+#
+# also comes in handy as
+# explode "$(list_parts)" $'\n' "LIST_PARTS"
+#---------------------------------------------------------------------
+function explode()
+{ # $1==string to explode, $2==delimiter, $3==name of array to put it in
+
+ [[ "$3" ]] || return 1
+ local l=$1
+ local i=0
+ while [[ $l ]]; do
+ local result=${l%%$2*}
+ l=${l#"$result"}
+ l=${l#$2}
+ eval "$3[$i]=\"$result\""
+ let i++
+ done
+ # this adds an empty array element at the end if the line ended in $2
+ local lc=${1//\*$2/true}
+ if [ "$lc" = "true" ]; then
+ eval "$3[$i]=\"\""
+ fi
+}
+
+#inputbox: creates a simple input box based off the two passed parameters
+function inputbox() {
+
+ run_dialog --nocancel --inputbox "$1" \
+ 0 0 "$2"
+
+}
+
+#chroot_cmd: Creates a chrooted environment
+# usage: chroot_cmd cmd args...
+function chroot_cmd() {
+
+ debug_log "chroot_cmd" 3 "chroot_cmd called with the following arguments:"
"$@"
+
+ chroot "${TARGET}" "$@"
+
+}
+
+#confirm: displays a confirm dialog
+#basically "do you want to ... <yes> <no>"
+#$1 is the question, the other args can be options to dialog
+# SECTION: MISC
+function confirm() {
+
+ local query="$1"
+ shift
+ run_dialog "$@" --yesno "$query" 0 0
+
+}
+
+# Displays a dialog menu for the given entries, and remembers the last
answer.
+# When the same menu is ran again, it re-uses the answer as default.
+# Args:
+# $1: internal identifier (for remembering)
+# $2: menu title
+# $3: additional options (e.g. --item-help) - no quoting possible
+# $4: menu text
+# $5: initial default selection
+# $*: menu items
+function memory_menu() {
+ local ID="$1"
+ local TITLE="$2"
+ local OPTS="$3"
+ local TEXT="$4"
+ local DEF="$5"
+ shift 5
+ local USEDEF="$(get_dependency "remember_$ID" 2>/dev/null)"
+ USEDEF="${USEDEF:-"$DEF"}"
+ local ANSWER
+ ANSWER=$(run_dialog --title "$TITLE" $OPTS \
+ --default-item "$USEDEF" \
+ --menu "$TEXT" 0 0 0 \
+ "$@") &&
+ fill_dependency "remember_$ID" "$ANSWER" &&
+ echo "$ANSWER"
+}
+
+# displays a message
+function display_message() {
+ run_dialog --msgbox "$1" 0 0
+}
+
+#adding some functions for dependency management
+# $1: Dependency to fill
+# $2: [Optional] extra info to save
+# should always return success
+function fill_dependency() {
+ mkdir -p $DEPENDS_DIR
+ echo "${2:-fill}" >>${DEPENDS_DIR}/$1
+}
+
+# Returns the extra info saved with a dependency (only the latest)
+# $1: Dependency to check
+# stdout: the info
+function get_dependency() {
+ tail -n 1 ${DEPENDS_DIR}/$1
+}
+
+#looks through the depends file to see if your requested key exists
+# $1: Dependency to check
+# $2: [Optional] extra info to check for (regex)
+# Returns 0 on found, 1 on not fulfilled, 2 on extra info not found
+function check_dependency() {
+ if [ -e ${DEPENDS_DIR}/$1 ] ;then
+ if grep -q "$2" ${DEPENDS_DIR}/$1 ;then
+ return 0; # if $2 is not given, "" matches anything
+ else
+ return 2;
+ fi
+ else
+ return 1;
+ fi
+}
+
+
+#ask the user if should continue, if yes, write the depends and note that
it's
+# at user's own risk
+# otherwise fall out to the main menu?
+# $1 is depends key
+function need_dependency() {
+ check_dependency $1 ||
+ {
+ confirm "The selected step needs $1 to be done first.
+Do you want to continue anyway and skip $1?" --defaultno &&
+ fill_dependency $1 force
+ }
+}
+
+# Ask the user if he wants to do this yet,
+# it's physically possible but rarely done in that order
+function want_dependency() {
+ check_dependency $1 ||
+ confirm "Normally, $1 is done before this step. Continue anyway?"
+}
+
+# Blocks until specified stuff is fulfilled
+function wait_depends() {
+ while ! check_dependency "$@" ;do
+ sleep 10
+ done
+}
+
+# Lock specified resource
+# waits until specified resource is not locked, then locks it
+# $1: resource to lock
+function lock_resource() {
+ mkdir -p $LOCK_DIR
+ while [ -e $LOCK_DIR/$1 ] ;do
+ sleep 1
+ done
+ echo $$ >$LOCK_DIR/$1
+}
+
+# Unlock specified resource
+# $1: resource to unlock
+function unlock_resource() {
+ rm -f $LOCK_DIR/$1
+}
+
+#dkowis discovered dialog's progress bar!
+# Stdin is each element new line seperated
+# $1 is the total amount
+# $2 is the title
+# $3 is the Initial text to display in the dialog
+# $4 is the optional prefix "Doing $LINE..."
+function progress_bar() {
+ local COUNT=0
+ local LINE
+ local PCT
+ while read LINE; do
+ (( COUNT++ ))
+ PCT=$(( $COUNT * 100 / ${1} ))
+ if [ "${4}" != "" ]; then
+ echo "XXX"
+ echo "${4} $LINE..."
+ echo "XXX"
+ fi
+ echo $PCT
+ done | run_dialog --title "${2}" --gauge "${3}" 10 70 0
+}

=== added file 'iso/skeleton/usr/share/smgl.install/modules/30spellinstall'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/modules/30spellinstall
@@ -0,0 +1,324 @@
+#!/bin/bash
+# Contains the spell installation functions, as specified on sourcemage.org
+# backgrounding version
+
+# NEEDS: a /var/state/sorcery/depends containing all depends between
+# spells that could be installed
+# a /var/state/sorcery/packages containing all spells that could
+# get installed and their versions
+# /var/state/smgl.install/conflicts containing lines of the form
+# spell;conflicts_with
+
+# --------------public----------------------
+
+SI_QUEUE_DIR=/tmp/spellinstall
+SI_SPELL_QUEUE=$SI_QUEUE_DIR/queue
+SI_CONFLICTS=$SI_QUEUE_DIR/conflicts
+SI_INSTALLING=$SI_QUEUE_DIR/installing
+
+
+# Marks a spell for installation. Does not install it.
+# args: the spells
+si_queue() {
+ mkdir -p ${SI_QUEUE_DIR}
+ >$SI_QUEUE_DIR/tmpqueue
+ >$SI_QUEUE_DIR/tmpqueue.unloop
+
+ recursively_make_queue $SI_QUEUE_DIR/tmpqueue "$@"
+
+ si_run_conflicts $(cat $SI_QUEUE_DIR/tmpqueue)
+
+ lock_resource SI_SPELL_QUEUE
+ # Resource is called SI_SPELL_QUEUE, not $SI_SPELL_QUEUE
+ cat $SI_QUEUE_DIR/tmpqueue >>${SI_SPELL_QUEUE}
+ unlock_resource SI_SPELL_QUEUE
+
+ rm -f $SI_QUEUE_DIR/tmpqueue $SI_QUEUE_DIR/tmpqueue.unloop
+}
+
+# inserts a spell and its dependencies at the top of the spell queue
+# args: the spells to install
+si_queue_now() {
+ mkdir -p ${SI_QUEUE_DIR}
+ >$SI_QUEUE_DIR/tmpqueue
+ >$SI_QUEUE_DIR/tmpqueue.unloop
+
+ recursively_make_queue $SI_QUEUE_DIR/tmpqueue "$@"
+
+ si_run_conflicts $(cat $SI_QUEUE_DIR/tmpqueue)
+
+ lock_resource SI_SPELL_QUEUE
+ cat $SI_SPELL_QUEUE >>$SI_QUEUE_DIR/tmpqueue # The other way around here
+ mv $SI_QUEUE_DIR/tmpqueue $SI_SPELL_QUEUE
+ unlock_resource SI_SPELL_QUEUE
+
+ rm -f $SI_QUEUE_DIR/tmpqueue.unloop
+}
+
+# marks a spell for installation and does not return until it is installed
+# args: the spells to install
+si_wait() {
+ si_queue_now "$@"
+ local spell
+ for spell in "$@" ;do
+ si_query $spell
+ while [[ $? != 3 ]] ;do
+ echo -en '\r\033[2K'
+ echo -n "waiting for $spell... (now installing $(cat $SI_INSTALLING))"
+ test -e $SI_QUEUE_DIR/debug && touch $SI_QUEUE_DIR/force_run
+ sleep 1
+ si_query $spell
+ done
+ echo -en '\r\033[2K'
+ echo "done with $spell."
+ done
+ true
+}
+
+# Returns 1 if the spell is queued, 2 if it is getting installed,
+# 3 if it is installed, 10 if it would conflict with a queued/installed spell
+# 0 (true) otherwise
+# $1: the spell
+si_query() {
+ touch $SI_INSTALLING $SI_SPELL_QUEUE $SI_CONFLICTS
+
+ if si_get_fake_spell "$1" ;then
+ return 3
+ elif grep -q "^$1:" ${TARGET}/var/state/sorcery/packages ;then
+ return 3
+ elif grep -q "^$1$" $SI_INSTALLING ;then
+ return 2
+ elif grep -q "^$1$" $SI_SPELL_QUEUE ;then
+ return 1
+ elif grep -q "^$1$" $SI_CONFLICTS ;then
+ return 10
+ else
+ return 0
+ fi
+}
+
+# Casts all spells remaining in the queue
+# no arguments
+si_flush() {
+ echo "Waiting for all spells left to complete..."
+ while [ -s $SI_SPELL_QUEUE ] ;do
+ test -e $SI_QUEUE_DIR/debug && touch $SI_QUEUE_DIR/force_run
+ echo -en '\r\033[2K'
+ echo -n "installing $(cat $SI_INSTALLING)..."
+ sleep 1
+ done
+}
+
+# Casts top of queue and removes it
+# no arguments
+si_pop() {
+ if test -s $SI_SPELL_QUEUE ;then
+ spell=$(head -n 1 $SI_SPELL_QUEUE)
+ si_install_spell "$spell" ||
+ debug_log "ERROR" -1 "Failed to install $spell"
+ lock_resource SI_SPELL_QUEUE
+ sed -i "/^$spell$/d" $SI_SPELL_QUEUE
+ unlock_resource SI_SPELL_QUEUE
+ return 0
+ else
+ return 1
+ fi
+}
+
+# --------------private-------------------
+
+# Cycles down the dependency tree, puts the spell and its dependencies
+# sorted dependency-first into a file
+# args: $1: filename to put the queue in
+# Internally uses $1.unloop as file to check for loops - make sure
+# it exists and is empty before calling
+recursively_make_queue() {
+ local spell
+ local queue=$1
+ shift
+ for spell in "$@" ;do
+ if ! grep -q "^$spell$" $queue.unloop ;then
+ echo "$spell" >>$queue.unloop
+ # No spell gets handled twice, => no infinite loops on circular deps
+ recursively_make_queue $queue $( si_get_dependencies $spell )
+ echo "$spell" >>$queue
+ fi
+ done
+}
+
+# Our own conflicts handling.
+# Quite cheap, but ought to do its job.
+# $1: spell to check conflicts of.
+# Appends any conflicts found to the end of $SI_CONFLICTS.
+
+function si_run_conflicts() {
+ local spell
+ for spell in "$@" ;do
+ grep "^$spell:" $STATE_DIR/conflicts |
+ cut -d':' -f2 >>$SI_CONFLICTS
+ done
+}
+
+# Cheapo checking dependencies.
+# Echos any spells that $1 directly depends on
+
+si_get_dependencies() {
+ grep "^$1:[^:]*:on:" /var/state/sorcery/depends |
+ cut -d: -f2 |
+ sed 's/(.*$//' # cut j2sdk-bin(JAVA) to j2sdk-bin
+}
+
+# If we want any (backgrounded) action filed like a spell.
+# Fake spells should be calles "Iso.<name>",
+# we hope no real spell has the same name.
+
+# Returns true when $1 is a fake spell
+si_is_fake_spell() {
+ [[ "$1" == Iso.* ]]
+}
+
+# Return true when the given fake spell is "installed"
+si_get_fake_spell() {
+ case $1 in
+ "Iso.Caches")
+ check_dependency install_caches
+ ;;
+ "Iso.Basics")
+ check_dependency basic_system
+ ;;
+ "Iso.Compile_env")
+ check_dependency compile_system
+ ;;
+ Iso.*)
+ return 0
+ ;;
+ *)
+ return 1
+ ;;
+ esac
+}
+
+si_run_fake_spell() {
+ debug_log "spellinstall" 2 "installing fake spell $1"
+ case $1 in
+ "Iso.Caches")
+ local TOTALFILES=`ls -1 /var/cache/sorcery | wc -l`
+ local file
+ for file in /var/cache/sorcery/* ; do
+ # Sacrifice some performance for prettiness ;-)
+ cp --parents $file ${TARGET}
+ echo $file
+ done |
+ progress_bar $TOTALFILES "Installing Source Caches..." \
+ "Installing Source Cache" "Installing"
+ fill_dependency install_caches
+ ;;
+ "Iso.Basics")
+ fill_dependency basic_system
+ ;;
+ "Iso.Compile_env")
+ check_dependency compile_system ||
+ try_run -q chroot_cmd scribe reindex
+ fill_dependency compile_system
+ ;;
+ Iso.*)
+ return 0
+ ;;
+ *)
+ return 1
+ ;;
+ esac
+}
+
+# Theses functions solely exists to quickfix spells that don't work properly
+# $1: spell to install
+si_pre_workaround() {
+ case $1 in
+ "example")
+ try_run -q cp ${TARGET}/etc/passwd /tmp/backuppass
+ ;;
+ esac
+}
+
+si_post_workaround() {
+ case $1 in
+ "bash")
+ try_run -q cp --parents -a /etc/profile* $TARGET
+ ;;
+ "example")
+ try_run -q cp /tmp/backuppass ${TARGET}/etc/passwd
+ try_run -q chroot_cmd mk_example_key
+ ;;
+ "openssh")
+ try_run -q chroot_cmd \
+ useradd -u 111 -g nogroup -d /var/run/sshd -s /bin/false
sshd
+ try_run -q rm -f ${TARGET}/etc/ssh/*host*
+ try_run -q chroot_cmd \
+ ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N ""
+ try_run -q chroot_cmd \
+ ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ""
+ try_run -q chroot_cmd \
+ ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ""
+ ;;
+ "gnupg")
+ try_run -q mkdir -p -m 700 $TARGET/root/.gnupg
+ ;;
+"netkit-base")
+ try_run -q sed -i \
+ "s/^127.0.0.1.*/127.0.0.1 localhost $(cat
/etc/hostname)/" \
+ $TARGET/etc/hosts
+ ;;
+ esac
+}
+
+# $1: the spell to install
+si_install_spell() {
+
+ debug_log "spellinstall" 2 "considering to install $1"
+
+ if si_is_fake_spell $1 ;then
+ echo "$1" >$SI_INSTALLING
+ si_run_fake_spell $1
+ local rc=$?
+ >$SI_INSTALLING # Clear file
+ return $rc #nothing left to do
+ fi
+
+ if grep -q "^$1:" ${TARGET}/var/state/sorcery/packages ;then
+ debug_log "spellinstall" 3 "discarding $1 as already installed"
+ return 0 #already installed
+ fi
+
+ echo "Installing $1..." >&2
+ debug_log "spellinstall" 2 "starting install of $1"
+ echo "$1" >$SI_INSTALLING
+
+ # TODO: The backgrounded version should be locking now,
+ # and logging the current spell
+ debug_log "spellinstall" 3 "running pre_workaround for $1"
+ si_pre_workaround $1 &&
+
+ local VERSION=$(grep "^$1:" /var/state/sorcery/packages | cut -d: -f4) &&
+ if [ -z $VERSION ] ;then
+ echo "The spell $1 does not seem to be on this CD!?" >&2
+ debug_log "ERROR" -1 "Not finding spell $1"
+ return 1
+ fi &&
+ # TODO: I don't like using *'s
+ debug_log "spellinstall" 3 "installing files for $1" &&
+ try_run -q tar -xjp -C ${TARGET} -f \
+ /var/cache/sorcery/$1-${VERSION}-*.tar.bz2 &&
+ if [[ "$1" != "smgl-fhs" ]] ;then
+ debug_log "spellinstall" 3 "ldconfig for $1" &&
+ try_run -q chroot_cmd /sbin/ldconfig
+ fi &&
+
+ try_run -q echo "$1:$(date +%Y%m%d):installed:${VERSION}" \
+ >>${TARGET}/var/state/sorcery/packages &&
+
+ debug_log "spellinstall" 3 "post_workaround for $1" &&
+ si_post_workaround $1 &&
+
+ debug_log "spellinstall" 1 "successfully installed $1" &&
+ >$SI_INSTALLING # Clear file
+}

=== added file 'iso/skeleton/usr/share/smgl.install/modules/architecture'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/modules/architecture
@@ -0,0 +1,34 @@
+#!/bin/bash
+# file for architecture optimizations
+
+function arch_screen() {
+
+ want_dependency disk &&
+ want_dependency install_start ||
+ return 1
+
+ if confirm "do you want to configure make jobs and distcc? (advanced)" \
+ --defaultno ;then
+ export CONFIG_DISTCC=yes
+ fi
+
+ (
+ exit() {
+ true
+ }
+ . /usr/sbin/sorcery -v >/dev/null
+ optimize_architecture
+ [[ $CONFIG_DISTCC ]] && parallel_compilation_menu
+ )
+
+ unset CONFIG_DISTCC
+ cp --parents -a /etc/sorcery/local/config $FINALFILES
+ cp --parents -a /etc/sorcery/local/compile_config $FINALFILES
+
+ fill_dependency "architecture" "manual"
+}
+
+function architecture_auto() {
+ cp --parents -a /etc/sorcery/local/config $FINALFILES
+ cp --parents -a /etc/sorcery/local/compile_config $FINALFILES
+}

=== added file 'iso/skeleton/usr/share/smgl.install/modules/bootloader'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/modules/bootloader
@@ -0,0 +1,249 @@
+#!/bin/bash
+
+# Note: In this file, we use dependencies to carry information
+# as a more elegant alternative to global variables.
+# But we also have to carry variables into run_template.
+# Fortunately, a local variable in bash is accessible in all
+# function we call from that function. Not quite elegant, but it works.
+
+#bootloader stuff
+function bootloader_screen() {
+ need_dependency disk &&
+ need_dependency install_start &&
+ need_dependency linux &&
+ si_wait linux &&
+ config_bootloader
+}
+
+# usage: create_etc_mtab
+
+# this functions creates a valid $TARGET/etc/mtab file that will make
+# df work in a chroot. This is usefull for yabootconfig, lilo and
+# grub-install for instance, if they are run in chroot.
+
+create_etc_mtab() {
+
+ # replace $TARGET followed by zero or more /, by /
+
+ cat /proc/mounts | grep " ${TARGET}" |
+ sed -e "s:${TARGET}/*:/:g" > "${TARGET}/etc/mtab"
+
+}
+
+bl_choose_loader() {
+# TODO: Auto-generate this
+ if [ "$ARCH" == "ppc" ] ;then
+ echo "yaboot" # We don't have any choice, why bother do display a menu?
+ else
+ memory_menu bootloader "Bootloader selection menu" "--item-help"
\
+ "Please select the bootloader you wish to use to boot your SMGL
system" \
+ "lilo"
\
+ "lilo" "The LInux LOader"
\
+ "lilo has been the standard-issue bootloader for many people for quite
long" \
+ "grub" "GNU GRUB Multiboot boot loader"
\
+ "GRUB is a dynamic, interactive bootloader - liked by some, hated by
others"
+ fi #TODO: make these more neutral
+}
+
+bl_choose_target() {
+ local QUESTION
+ if check_dependency disk-boot ;then # we have a seperate /boot partition
+ QUESTION="Do You want to install the boot loader to the
+Master Boot Record of the disk that /boot is on
+or to the Boot Record of the /boot partition?"
+ if run_dialog --yes-label "MBR" --no-label "Partition" \
+ --yesno "$QUESTION" 0 0 ;then
+ get_dependency disk-boot |
+ sed -e 's/part[0-9]*$/disc/' -e 's/[0-9]*$//'
+ # partX -> disc conversion for devfs, hdaX -> hda otherwise
+ else
+ get_dependency disk-boot
+ fi # this is the command that outputs the target to
+ else
+ QUESTION="Do You want to install the boot loader to the
+Master Boot Record of the disk that / is on
+or to the Boot Record of the / partition?"
+ if run_dialog --yes-label "MBR" --no-label "Partition" \
+ --yesno "$QUESTION" 0 0 ;then
+ get_dependency disk-root |
+ sed -e 's/part[0-9]*$/disc/' -e 's/[0-9]*$//'
+ # partX -> disc conversion for devfs, hdaX -> hda otherwise
+ else
+ get_dependency disk-root
+ fi
+ fi
+}
+
+config_bootloader() {
+
+ local BOOTLOADER TARGET_DEV # The device to install the loader to
+ BOOTLOADER=`bl_choose_loader` &&
+
+ # there is no MBR choice on ppc machines
+
+ if [ "${ARCH}" == "ppc" ]; then
+ TARGET_DEV=""
+ else
+ TARGET_DEV=$(bl_choose_target)
+ fi &&
+
+ si_wait $BOOTLOADER &&
+
+ bl_${BOOTLOADER}_config $TARGET_DEV &&
+ bl_${BOOTLOADER}_install $TARGET_DEV &&
+
+ fill_dependency bootloader $BOOTLOADER
+
+}
+
+# -----------------GRUB-------------------------
+bl_grub_config() {
+
+ mkdir -p "${TARGET}/boot/grub"
+
+# Variables needed for the grub template:
+ local BL_BOOTLOC
+ local BL_KVERSION
+ local BL_ROOTDEV
+
+
+# Okay, let's try to find how grub calls the /boot partition.
+# Add a file that will very likely be uniquely there, and let grub search
for it
+ local GRUB_DUMMY_FILE="grub.$RANDOM.findfile"
+ touch ${TARGET}/boot/$GRUB_DUMMY_FILE &&
+ # special thanks to the grub spell for some ideas boldly stolen here
+ if check_dependency disk-boot ;then # seperate part for /boot
+ BL_BOOTLOC="$( echo "find /${GRUB_DUMMY_FILE}" |
+ chroot_cmd grub --no-floppy --batch |
+ grep -A 1 "^grub>" | head -n 2 | tail -n 1)"
+ else
+ BL_BOOTLOC="$( echo "find /boot/${GRUB_DUMMY_FILE}" |
+ chroot_cmd grub --no-floppy --batch |
+ grep -A 1 "^grub>" | head -n 2 | tail -n 1)/boot"
+ fi &&
+ rm -f ${TARGET}/boot/$GRUB_DUMMY_FILE &&
+
+ BL_KVERSION=$KERNEL_VERSION &&
+
+ BL_ROOTDEV=$( get_dependency disk-root ) &&
+
+ run_template $TEMPLATE_DIR/grub.conf $TEMPLATE_DIR/bootloader.patterns \
+ >${TARGET}/boot/grub/menu.lst &&
+
+ if confirm "Do you want to edit /boot/grub/menu.lst?" --defaultno ;then
+ ${EDITOR:-nano} "${TARGET}/boot/grub/menu.lst"
+ fi
+}
+
+bl_grub_install() {
+
+ # get boot record
+
+ # install grub (it is a shell script using df, and thus /etc/mtab to
+ # locate file)
+
+ create_etc_mtab &&
+ try_run -e "installing grub" chroot_cmd grub-install --no-floppy "$1"
+
+ debug_enter "bootloader" 2
+
+}
+
+#-------------LILO----------------------
+
+bl_lilo_config() {
+
+ # this one is easy
+ local BL_KVERSION
+ local BL_ROOTDEV
+ local BL_TARGET
+
+ BL_KVERSION=$KERNEL_VERSION &&
+
+ BL_ROOTDEV=$(get_dependency disk-root) &&
+
+ BL_TARGET=$1 &&
+
+ # copy boot.bmp
+ cp -a /boot/boot.bmp "${TARGET}/boot/boot.bmp" &&
+
+ # create a configuration file
+ mkdir -p "${TARGET}/etc" &&
+ run_template $TEMPLATE_DIR/lilo.conf $TEMPLATE_DIR/bootloader.patterns \
+ >${TARGET}/etc/lilo.conf &&
+
+ if confirm "Do you want to edit /etc/lilo.conf?" --defaultno ;then
+ ${EDITOR:-nano} "${TARGET}/etc/lilo.conf"
+ fi
+
+}
+
+bl_lilo_install() {
+
+ try_run -e "installing lilo" chroot_cmd lilo -v
+
+ debug_enter "bootloader" 2
+
+}
+
+#-----------YABOOT-------------------
+# TODO: Have someone who knows yaboot look over this
+
+bl_yaboot_config() {
+
+ # yaboot workarounds
+ # It also wants /etc/fstab to exist for whatever reason
+ cp $FINALFILES/etc/fstab $TARGET/etc/fstab
+ # Its tools expect sysfs somewhere, mount it
+ mkdir $TARGET/sys
+ mount sysfs -t sysfs $TARGET/sys
+ # yabootconfig uses df, which needs /etc/mtab
+ create_etc_mtab
+ # hfsutils are required to install yaboot
+ si_wait hfsutils
+
+ local BL_BOOTLOC
+ local BL_KVERSION
+
+ yabootconfig -t "${TARGET}" --noinstall -q ||
+ {
+ echo "Yabootconfig failed to run ($?). This is a semi-known problem."
+ echo "If this still occurs, please report it to BearPerson on IRC"
+ press_enter
+ } >&2
+
+ # remove the default image section written by yabootconfig
+ # which are the last 3 lines of /etc/yaboot.conf
+
+ head -n -3 "${TARGET}/etc/yaboot.conf" > /tmp/yaboot.conf &&
+ cp /tmp/yaboot.conf "${TARGET}/etc/yaboot.conf" &&
+
+# TODO: Check if this needs fixed up like grub
+ if check_dependency disk-boot; then
+ BL_BOOTLOC=""
+ else
+ BL_BOOTLOC="/boot"
+ fi &&
+
+ BL_KVERSION=$KERNEL_VERSION &&
+
+ # _append_ our own image section
+
+ run_template $TEMPLATE_DIR/yaboot.conf.last
$TEMPLATE_DIR/bootloader.patterns \
+ >>${TARGET}/etc/yaboot.conf &&
+
+ if confirm "Do you want to edit /etc/yaboot.conf?" --defaultno ;then
+ ${EDITOR:-nano} "${TARGET}/etc/yaboot.conf"
+ fi
+}
+
+bl_yaboot_install() {
+
+ # we use --nonvram since we don't have nvsetenv installed
+
+ try_run -e "creating the bootstrap partition" chroot_cmd mkofboot
+ try_run -e "installing yaboot" chroot_cmd ybin --nonvram
+
+ debug_enter "bootloader" 2
+
+}

=== added file 'iso/skeleton/usr/share/smgl.install/modules/debug'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/modules/debug
@@ -0,0 +1,183 @@
+#!/bin/bash
+# Debug levels ought to be:
+# 3: verbose debugging
+# 2: debugging info
+# 1: info about e.g. what gets installed
+# 0: status of the installer itself
+#-1: errors (use function "ERROR")
+
+DEBUG_DIR=/tmp/debug_dir
+function init_debug() {
+ mkdir -p $DEBUG_DIR
+ for DBG_file in $DATA_DIR/default_debug* ;do
+ cp $DBG_file $DEBUG_DIR/${DBG_file##*/default_}
+ done
+}
+
+# Main menu to configure debugging
+function debug_screen() {
+ local DBGCOMMAND
+ DBGCOMMAND=$(run_dialog \
+ --title "Debugging menu" \
+ --item-help \
+ --menu "Select the debugging level you want to change.
+Higher numbers mean more debugging." \
+ 0 0 0 \
+ "A" "debug dialog parameters" \
+ "Log all parameters that dialog is called with" \
+ "B" "debug chroot'ed commands" \
+ "Log all parameters of all commands run inside the chroot" \
+ "C" "show all command outputs" \
+ "Make all programs, regardless of exit status, explicitly show output" \
+ "D" "sleep before dialogs" \
+ "Sleep a bit before placing a dialog window, so you can read error
messages" \
+ "L" "lazy bg-installer" \
+ "spell installer waits for menu to need a spell before it does
something" \
+ "O" "other debugging" \
+ "Manually enter a component and debug level") &&
+ case $DBGCOMMAND in
+ A) echo 3 >$DEBUG_DIR/debug_dialog ;;
+ B) echo 3 >$DEBUG_DIR/debug_chroot_cmd ;;
+ C) echo 3 >$DEBUG_DIR/debug_tryrun ;;
+ D) echo 2 >$DEBUG_DIR/debug_pre-dialog ;;
+ L) touch $SI_QUEUE_DIR/debug ;;
+ O) debug_menu_manual ;;
+ esac
+}
+
+function debug_menu_manual() {
+ local component=$(inputbox \
+ "Enter the name of the component for which
+you want to set the debug level" \
+ "diskStructure")
+
+ local level=$(cat $DEBUG_DIR/debug)
+ [ -e $DEBUG_DIR/debug_$component ] &&
+ level=$(cat $DEBUG_DIR/debug_$component)
+
+ level=$(inputbox \
+ "Please set the new debug level for $component" \
+ $level) &&
+ echo $level >$DEBUG_DIR/debug_$component
+}
+
+# Runs a command, captures its output, displays it nicely if it fails.
+# If the command is a pipe, you'll need eval. Let's hope that won't happen.
+# Possible parameters:
+# -e "string": specify your own failure message
+# -nc: (no-capture) don't redirect output
+# -q: do not prompt user or print error, just log
+function try_run() {
+ local error_message
+ local capture=true
+ local quiet=false
+ local capfile=$TMP_DIR/debug.out.$$
+ local rc
+ debug_log "tryrun" 3 "Argument list before parameter parsing:" "$@"
+ while [[ "$1" == -* ]] ;do
+ case "$1" in
+ "-e") error_message="$2"
+ shift 2
+ ;;
+ "-nc") capture=false
+ echo "<not captured>" >$capfile
+ shift
+ ;;
+ "-q") quiet=true
+ shift
+ ;;
+ *) debug_log "ERROR" -1 "Unknown parameter to try_run: $1"
+ shift
+ ;;
+ esac
+ done
+ debug_log "tryrun" 3 "Command to run:" "$@"
+ error_message=${error_message:-"Running $1 failed."}
+ if $capture ;then
+ set -o pipefail
+ "$@" 2>&1 | tee $capfile
+ rc=$?
+ set +o pipefail
+ if [[ $rc != 0 ]] || debug_is_on "tryrun" 3 ;then
+ $quiet ||
+ run_dialog --title "$error_message" --cr-wrap --msgbox \
+ "The failed command (exit code $rc) was:
+$*
+The (error) output was:
+$(cat $capfile)" 0 0
+ fi
+ else
+ "$@"
+ rc=$?
+ if [[ $rc != 0 ]] || debug_is_on "tryrun" 3 && ! $quiet ;then
+ echo "$error_message"
+ echo "The return code was $rc. The command was:"
+ echo "$*"
+ debug_enter "ERROR" -1
+ fi >&2
+ fi
+ if [[ $rc != 0 ]] ;then
+ debug_log "ERROR" -1 "$1 failed (rc=$rc)" "$@" "error:" "$(cat $capfile)"
+ else
+ debug_log "tryrun" 3 "$1 executed successfully, the full command was" \
+ "$@" "Output was" "$(cat $capfile)"
+ fi
+ return $rc
+}
+
+# Params:
+# $1: component
+# $2: debug level
+# Returns 1 when debugging is enabled
+function debug_is_on() {
+ local func=$1
+ local priority=${2:-2} # Default to 2
+ if [ -e $DEBUG_DIR/debug_$func ] ;then
+ [ $(cat $DEBUG_DIR/debug_$func) -ge $priority ]
+ else
+ [ $(cat $DEBUG_DIR/debug) -ge $priority ]
+ fi
+}
+
+# Sleeps for given time
+# Usage:
+# debug_sleep <component> time
+function debug_sleep() {
+ debug_is_on "$1" &&
+ sleep ${2:-5}
+ true
+}
+
+# display a single line and wait for the user to press enter
+# $1: component, $2: debug level
+function debug_enter() {
+ debug_is_on "$1" $2 &&
+ read -p "Press enter..."
+ true
+}
+
+# Logs given text
+# Usage:
+# debug_log <component> <log at debug level> <string[s] to log>
+# e.g. debug_log "diskStructure" 3 "Chosen device $DEV"
+function debug_log() {
+ local func=$1
+ local priority=$2
+ shift 2
+ debug_is_on "$func" $priority || return 0
+ lock_resource INSTALLER_DEBUG
+ if [ $# == 1 ] ;then
+ echo "$(date +%H:%M:%S) ${func}($$)@$priority: $*" >>${INSTALLER_DEBUG}
+ elif [ $# -gt 1 ] ;then
+ local var
+ echo "$(date +%H:%M:%S) ${func}($$)@$priority: <several vars>"
>>$INSTALLER_DEBUG
+ for var in "$@" ;do
+ echo "> $var" >>$INSTALLER_DEBUG
+ done
+ else
+ echo "$(date +%H:%M:%S) ERROR($$)@-1: debug_log called incorrectly:" \
+ "\"$func\" \"$priority\"" >>$INSTALLER_DEBUG
+ fi
+ unlock_resource INSTALLER_DEBUG
+ true
+}

=== added file 'iso/skeleton/usr/share/smgl.install/modules/diskStructure'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/modules/diskStructure
@@ -0,0 +1,539 @@
+#!/bin/bash
+
+# TODO: give all those functions an unique prefix
+
+# a submenu for Disk structure
+# Partitioning
+# mounting - RAID
+
+# ---------------- main menu ----------------------
+
+function disk_structure_screen() {
+ # do things here to display the menu items for setting up disks
+
+ if check_dependency install_start ;then
+ # Whoops! We already have stuff starting to install
+ confirm "WARNING! Data is already being installed to the
+partition structure you have set up. Very bad things
+happen when you mount new partitions on top of them.
+It is *highly* recommended that you choose
+\"restart installer\" from the main menu if you have to
+repartition, and start from scratch.
+continue?" --defaultno ||
+ return 1
+ fi
+
+ local ICOMMAND="A" # always default to previous selection
+ local DONE=false
+ while ! $DONE ;do
+
+ local TEXT="Please create at least a root partition.
+There currently is a bug with grub on xfs, so
+you can't install grub to an xfs / without a seperate
+non-xfs /boot partition."
+ ICOMMAND=`run_dialog \
+ --ok-label "Select" \
+ --title "Disk structure menu" \
+ --default-item $ICOMMAND \
+ --item-help \
+ --menu "$TEXT" \
+ 0 0 0 \
+ "A" "[*]Partition Disks" "Create partitions on your drives" \
+ "B" "[*]Make MD RAID Devices" "Create RAID devices using mdadm" \
+ "C" "Format/mount filesystems and swap" "Format and mount your
partitions" \
+ "D" "Done" "We're all done here, let's get on with it" ` ||
+ return 1 #return with a failure if canceled
+
+ case $ICOMMAND in
+ A)
+ fdisc_menu # do the partitioning
+ ;; # maybe partitions are already created
+ B)
+ create_md_device # Make ourselves some MD devices!
+ ;;
+ C)
+ while mount_menu ;do true ;done # do the mounting until user quits
+ ;;
+ D)
+ if need_dependency disk-root; then
+ DONE=true
+ fi
+ ;;
+ esac
+ done
+
+#check for swap partition!
+ if ! check_dependency disk-swap; then
+ if confirm "Do you want to make a swapfile? (swap == virtual memory)
+You have no dedicated swap partition."; then
+ mk_swap_file
+ fi
+ fi
+ rm -f $FINALFILES/etc/fstab
+ cat $TEMPLATE_DIR/fstab.first /tmp/fstab $TEMPLATE_DIR/fstab.last \
+ >$FINALFILES/etc/fstab
+ fill_dependency disk
+
+ return 0 # When we've reached this point, always return success.
+
+}
+
+# ------------ partitioning part --------------------------
+
+list_discs() {
+
+ # sfdisk reads /proc/partitions for discs so it is the same as cat
+ # /proc/partitions but better output
+
+ # however, sfdisk -s outputs an error messages on ppc about
+ # unrecognized msdos partitions. we ignore it with 2>/dev/null
+
+ # TODO: sanitize devfs partition names
+
+ local DISK
+
+ sfdisk -s 2>/dev/null | grep '^/dev' | cut -d : -f1 |
+ while read DISK; do #WARNING: This is a subshell.
+ # a cdrom has no geometry allowing us to remove it from the list
+ if ! sfdisk -qg "${DISK}" | grep -q "cannot get geometry"; then
+ echo "${DISK}"
+ echo "Size $( sfdisk -sq "${DISK}" )"
+ fi
+ done
+
+}
+
+select_disc() {
+
+ local -a LIST_DISCS
+ explode "$(list_discs)" $'\n' "LIST_DISCS"
+
+ local DISC
+
+ debug_log "diskStructure" 3 "Disk list:" "${LIST_DISCS[@]}"
+
+ if [[ ${#LIST_DISCS[@]} == 0 ]] ;then
+ display_message "No discs could be found.
+You may need to load more modules (shell out, use modprobe)"
+ return 1
+ fi
+
+ run_dialog \
+ --title "Disk Selection Menu" \
+ --menu "Please select a disk to partition. Sizes are in blocks." \
+ 0 0 0 \
+ "${LIST_DISCS[@]}" # 2 entries per disk - name and size
+
+}
+
+fdisc_menu() {
+
+ local DISC PROG
+ DISC=`select_disc` &&
+ if [ "$ARCH" = "ppc" ]; then
+ display_message "Remember you need to create a bootstrap partition first
+(type 'b' at the prompt)."
+ debug_log "diskStructure" 2 "Running mac-fdisk on $DISC"
+ mac-fdisk "$DISC"
+ else
+ PROG=`memory_menu "fdisc_tool" "Partitioning Menu" "" \
+ "Please choose the program for partitioning $DISC" "cfdisk" \
+ "cfdisk" "Menu-driven partitioning program. Easy to use." \
+ "fdisk" "Text-based. A little harder to use, more features" \
+ "parted" "Text-based. Many features, such as moving partitions" ` &&
+
+ debug_log "diskStructure" 2 "Running $PROG on $DISC"
+ try_run -nc ${PROG} "${DISC}"
+ fi
+}
+
+# --------------------- NEW RAID STUFF ----------------------
+
+dsr_show_warning() {
+ run_dialog --title "WARNING!" \
+ --msgbox "If you plan on mounting the device you're about to create as
+/ (the root), you need to ensure that you make the
+partition types \"Linux raid autodetect\" (ID 0xFD).
+Otherwise your system will not boot!" 0 0
+}
+
+dsr_device_name() {
+ run_dialog --title "Multiple Disk Device Name" \
+ --inputbox "Enter the fully qualified device name (ex /dev/md0)" 0 0 \
+ "/dev/md0"
+}
+
+dsr_raid_level_menu() {
+ memory_menu "raidlevel" "Select RAID level" "" \
+ "Select a RAID level" "1" \
+ "0" "Striping" \
+ "1" "Mirroring" \
+ "4" "Independent Data disks with shared Parity disk" \
+ "5" "Independent data disks with distributed parity" \
+ "6" "Independent data disks with dual distributed parity"
+# "3" "Parallel transfer with parity" off \
+# "2" "Hamming code ECC" off \
+}
+
+dsr_choose_partitions() {
+ LIST_PARTS=()
+ # Use sed to append an "off" line to every entry
+ explode "$(list_parts | sed 's/^\(Size: .*\)$/\1\noff/')" $'\n' \
+ LIST_PARTS
+
+ if [[ ${#LIST_PARTS[@]} == 0 ]] ;then
+ display_message "No partitions could be found. In order to avoid
+warnings about broken partition tables on bootup,
+it is recommended that you partition even the drives
+that you want to use in a RAID as a whole (into one
+big partition).
+You may need to load more modules (shell out, use modprobe)
+or partition your disks."
+ return 1
+ fi
+
+
+ run_dialog --title "Select partitons to create a RAID device from" \
+ --separate-output \
+ --checklist "Mark partitions to be made into the RAID array" 0 0 0 \
+ "${LIST_PARTS[@]}" |
+ sed 's:^[[:space:]]*:/dev/:g'
+ # If anyone knows how that whitespace creeps in there, I owe him a beer
(Bear)
+}
+
+# Arguments:
+# $1: name of md device to create
+# $2: raid level
+# $3: newline-seperated list of devices
+# $4: count of selected partitions
+dsr_sanity_check() {
+ local ERROR_FILE=/tmp/raid-errors.$$
+ rm -f $ERROR_FILE
+
+ debug_log "diskStructure" 2 "Checking RAID settings: DEVICE=$1, LEVEL=$2"
+ debug_log "diskStructure" 2 "Generating from $4 partitions: $3"
+
+ #verify raid level device count
+ local COUNT_CHECK=0
+ case $2 in
+ 0|1) COUNT_CHECK=2
+ ;;
+ 2|3|4|5) COUNT_CHECK=3
+ ;;
+ 6) COUNT_CHECK=4
+ ;;
+ esac
+
+ #ensure they entered a device!
+ if [ "$1" = "" ] ; then
+ echo "You must specify a device to create!" >>$ERROR_FILE
+ fi
+
+ if [ $4 -lt $COUNT_CHECK ] ; then
+ echo "RAID level $2 must have at least $COUNT_CHECK devices" \
+ >>$ERROR_FILE
+ fi
+
+ #verify selected devices are block devices
+ local DEVICES
+ for DEVICES in $1 $3 ; do
+ if [ ! -b "$DEVICES" ] ; then
+ echo "$DEVICES is not a block device!" >>$ERROR_FILE
+ fi
+ done
+
+ if [ -e $ERROR_FILE ] ;then
+ run_dialog --title "Failed to create MD device" --textbox \
+ $ERROR_FILE 0 0
+ return 1
+ fi
+}
+
+dsr_make_raid_config() {
+ #generate the mdadm.conf
+ echo 'DEVICE /dev/hd*[0-9] /dev/sd*[0-9]' > $FINALFILES/etc/mdadm.conf
+ mdadm --detail --scan >> $FINALFILES/etc/mdadm.conf
+ mdadm --detail --scan -v >/tmp/md-devices
+ # Store devices used for partition selection
+}
+
+create_md_device() {
+ local DEVICE_NAME LEVEL PARTS P_COUNT
+ dsr_show_warning &&
+ DEVICE_NAME=`dsr_device_name` &&
+ LEVEL=`dsr_raid_level_menu` &&
+ PARTS="`dsr_choose_partitions`" &&
+ P_COUNT=`echo $PARTS | wc -w` &&
+
+ dsr_sanity_check "$DEVICE_NAME" "$LEVEL" "$PARTS" "$P_COUNT" &&
+ try_run mdadm --create $DEVICE_NAME --level=$LEVEL --raid-devices=$P_COUNT
$PARTS &&
+ dsr_make_raid_config &&
+ debug_log "diskStructure" 1 "Successfully generated $DEVICE_NAME." &&
+ si_queue mdadm
+}
+
+# ---------------- formatting and mounting ------------------
+
+mnt_get_part_type() {
+ if [[ $1 == md* ]] ;then
+ echo -n "RAID "
+ mdadm --detail --brief /dev/$1 |
+ sed 's/^.*\(level.*\)UUID.*$/\1/'
+ else
+ if [[ $ARCH == "ppc" ]] ;then
+ mac-fdisk -l | grep "^/dev/$1[[:space:]]" |
+ sed 's/^.* //'
+ else
+ sfdisk -lq 2>/dev/null | # Bug in sfdisk makes it not honor -q
+ grep "^/dev/$1[[:space:]]" | sed 's/^.* //'
+ fi
+ fi
+}
+
+list_parts() {
+ local PARTITION SIZE
+ touch /tmp/fstab
+ touch /tmp/md-devices
+ # grepping a non-existant file gives an error
+ cat /proc/partitions | awk '$3 !~ /^1$/ {print $4 " " $3}' | grep -v ram |
+ grep -v disc | grep -v name | grep '^[^ ]*[0-9]' |
+ while read PARTITION SIZE ;do #SUBSHELL!
+ if [[ -n "$PARTITION" ]] && ! grep -q "^/dev/$PARTITION " /tmp/fstab
&&
+ ! grep -q "devices=\([^,]*,\)*/dev/$PARTITION\(,\|$\)"
/tmp/md-devices
+ then # don't do nil strings, partitions we mounted already, RAID parts
+ echo "$PARTITION"
+ echo "Size: $(( SIZE / 1024 ))MB Type: \
+$(mnt_get_part_type $PARTITION | tr '\n' ' ')"
+ # Be very paranoid about getting exactly one line out of this
+ fi
+ done
+}
+
+get_part() {
+
+ LIST_PARTS=()
+ explode "$(list_parts)" $'\n' LIST_PARTS
+
+ debug_log "diskStructure" 3 "Partition list:" "${LIST_PARTS[@]}"
+
+ if [[ ${#LIST_PARTS[@]} == 0 ]] ;then
+ display_message "No partitions could be found. Either all are
+already mounted, or none are available.
+You may need to load more modules (shell out, use modprobe)
+or partition your disks."
+ return 1
+ fi
+
+ run_dialog \
+ --title "Partition Selection Menu" \
+ --cancel-label "Done" \
+ --menu "Select a partition to mount." \
+ 0 0 0 \
+ "${LIST_PARTS[@]}"
+
+}
+
+get_filesystem() {
+
+ memory_menu "filesystem" "Filesystem Selection Menu" "" \
+ "Please select what filesystem to use for $1" "ext2" \
+ "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"
+
+}
+
+get_mount_point() {
+
+ if ! check_dependency disk-root ;then
+ display_message "Automatically choosing / as first mount point"
+ echo "/"
+ elif [ "$2" == "swap" ]; then
+ echo "none"
+ else
+ local -a MOUNT_POINTS
+ MOUNT_POINTS=(
+ # Mark for how long texts can get: over here v"
+ "/boot" "Put boot-relevant stuff somewhere special for old BIOS'es"
+ "/home" "Give users their own partition so they can't fill / up"
+ "/root" "For the paranoid: extra HD space for recovery when / is full"
+ "/usr" "Used to seperate system programs from the bulk of the data"
+"/usr/share" "Contains architecture-independent data, such as data files"
+ "/var" "Guarantees that logs or source caches can't fill /"
+ "other" "own custom mount point (forbidden: /etc, /bin, /sbin, /lib)" )
+
+ # Filter already-mounted partitions
+ local partnum=$(( ${#MOUNT_POINTS[@]} / 2 ))
+ local i
+ for((i=0;i<partnum;i++)) ;do
+ # literal tabs:
+ if grep -q " ${MOUNT_POINTS[2*i]} " /tmp/fstab ;then
+ unset MOUNT_POINTS[2*i] MOUNT_POINTS[2*i+1]
+ # Luckily, this doesn't move the other entries down
+ fi
+ done
+
+ local MPOINT
+ MPOINT=$(run_dialog --title "Mount point selection" \
+ --menu "Please select where to mount $1 (type $2)" \
+ 0 0 0 \
+ "${MOUNT_POINTS[@]}") &&
+ if [[ "$MPOINT" == "other" ]] ;then
+ inputbox "Please choose where to mount $1 (type $2)" "/"
+ else
+ echo "$MPOINT"
+ fi
+ fi
+}
+
+get_mkfs_cmd() {
+ if $3 ;then # check for errors
+ case $1 in
+ ext2) echo "mke2fs -c $2" ;;
+ ext3) echo "mke2fs -c -j $2" ;;
+ reiserfs) echo "badblocks -o /tmp/badblocks $2 ; mkreiserfs -B
/tmp/badblocks $2" ;;
+ xfs) echo "mkfs.xfs -f $2" ;; # no badblocks handling
+ jfs) echo "mkfs.jfs -c $2" ;;
+ swap) echo "mkswap -c $2" ;;
+ *) false ;;
+ esac
+ else
+ case $1 in
+ ext2) echo "mke2fs $2" ;;
+ ext3) echo "mke2fs -j $2" ;;
+ reiserfs) echo "mkreiserfs $2" ;;
+ xfs) echo "mkfs.xfs -f $2" ;; #ignore existing partition
+ jfs) echo "mkfs.jfs $2" ;;
+ swap) echo "mkswap $2" ;;
+ *) false ;;
+ esac
+ fi
+}
+
+# Returns the spell needed to provide support for given fs
+get_fs_spell() {
+ case $1 in
+# e2fsprogs is installed anyway, it includes fsck
+ reiserfs) echo "reiserfsprogs" ;;
+ xfs) echo "xfsprogs" ;;
+ jfs) echo "jfsutils" ;;
+ esac
+}
+
+get_mount_opts() {
+
+ case $1 in
+ reiserfs) echo "defaults,notail,noatime" ;;
+ swap) echo "defaults" ;;
+ *) echo "defaults,noatime" ;;
+ esac
+}
+
+mount_fsys() {
+
+ local MPOINT="${TARGET}$3"
+ case $2 in
+ swap)
+ #TODO: would anyone ever not want swap turned on during install?
+ swapon "$1" &&
+ fill_dependency disk-swap $1 ||
+ echo "Activating swap failed. This is non-fatal. Continuing
anyway."
+ true
+ ;;
+ *)
+ mkdir -p $MPOINT &&
+ try_run -e "Mointing $1 as $2 to $MPOINT failed." \
+ mount -t $2 -o "$4" "$1" "$MPOINT" &&
+ case $3 in
+ /)
+ fill_dependency disk-root $1
+ ;;
+ /boot)
+ fill_dependency disk-boot $1
+ ;;
+ *) true ;;
+ esac &&
+ debug_log "diskStructure" 1 "Nicely mounted $1 as $2 to $MPOINT" ||
+ {
+ return 1
+ }
+ ;;
+ esac
+}
+
+get_fstab_opts() {
+
+ case $2 in
+ /) echo "$(get_mount_opts $1) 0 1" ;;
+ *) echo "$(get_mount_opts $1) 0 2" ;;
+ esac
+
+}
+
+make_fstab_line() {
+ # TODO: this is a hack
+ echo "$1 $3 $2 $4"
+}
+
+mount_menu() {
+ if ! check_dependency disk-root ;then
+ display_message "Please first mount the partition that will be /
+then mount \"up the tree\" (/usr before /usr/share)"
+ fi
+
+# TODO: make this code look nicer at least... maybe add some ribbons
+
+ local CHECK PART FSYS MPOINT MKFSCMD QUESTION MNT_OPTS FSTAB_OPTS
+
+ CHECK=false
+ PART=/dev/`get_part` &&
+ FSYS=`get_filesystem $PART` &&
+ MPOINT=`get_mount_point $PART $FSYS` &&
+ if confirm "Do you want to check $PART for errors?" --defaultno ;then
+ CHECK=true
+ fi &&
+ if confirm "Do you want to format $PART?" ;then
+ MKFSCMD=`get_mkfs_cmd $FSYS $PART $CHECK` &&
+ QUESTION="This is the command to create the filesystem,
+as far as I can figure it out.
+If you want to change anything, you can now.
+If you don't know what to do, just hit OK." &&
+ MKFSCMD=$( inputbox "$QUESTION" "${MKFSCMD}" ) &&
+ if [[ $FSYS == jfs ]] ;then # mkfs.jfs doesn't line-buffer its output
+ eval "try_run -nc $MKFSCMD"
+ else
+ eval "try_run $MKFSCMD"
+ fi ||
+ return 1
+ elif $CHECK ;then
+ badblocks $PART
+ fi &&
+ MNT_OPTS=`get_mount_opts $FSYS $MPOINT` &&
+ mount_fsys $PART $FSYS $MPOINT "$MNT_OPTS" &&
+ FSTAB_OPTS=`get_fstab_opts $FSYS $MPOINT` &&
+ make_fstab_line $PART $FSYS $MPOINT "$FSTAB_OPTS" >>/tmp/fstab &&
+ si_queue $( get_fs_spell $FSYS )
+ # And this spell should not get installed before disks are done and basic
+ # stuff is there
+}
+
+mk_swap_file() {
+
+ local DEVICE SWAPFILE SIZE
+ DEVICE=`inputbox "Where should the swapfile go?" "/.swapfile"` &&
+ SWAPFILE="$TARGET$DEVICE" &&
+ SIZE=`inputbox "How big do you want it to be? (in MB)" "1024"` &&
+
+ if confirm "Okay. Swapfile at $DEVICE, size $SIZE. That right, boss?" ;then
+ dd if=/dev/zero of=$SWAPFILE bs=1M count=$SIZE &&
+ try_run mkswap $SWAPFILE &&
+ chmod 000 $SWAPFILE &&
+ try_run swapon $SWAPFILE &&
+ make_fstab_line $DEVICE "swap" "swap" "defaults\t0 2" >>/tmp/fstab &&
+ fill_dependency disk-swap file||
+ press_enter "diskStructure" 0
+ fi
+}

=== added file 'iso/skeleton/usr/share/smgl.install/modules/installation'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/modules/installation
@@ -0,0 +1,152 @@
+#!/bin/bash
+
+# requires: /etc/sorcery/local/depends/linux - file to specify linux version
to build in the system
+
+function setup_target() {
+ in_start
+}
+
+function install_screen() {
+ local depcy
+ while read depcy ;do
+ need_dependency ${depcy%%\#*} ||
+ {
+ echo "Not all dependencies fulfilled, refusing to finish install"
+ return 1
+ }
+ done <$DATA_DIR/deps-required
+
+ # Check for optional dependencies and run ${name}_auto if needed
+ while read depcy ;do
+ depcy=${depcy%%\#*} # Strips trailing spaces
+ check_dependency "$depcy" ||
+ ! declare -F "${depcy}_auto" >/dev/null || # Skip if function is
undefined
+ ${depcy}_auto
+ done <$DATA_DIR/deps-optional
+
+ in_finish
+}
+
+# This one returns a nice list of libraries that a binary is linked against,
+# perfect for feeding into cp. Thanks to Seth for this one!
+in_libscan() {
+ ldd "$1" 2> /dev/null |
+ cut -d'>' -f2 |
+ cut -d' ' -f2 |
+ grep '^/'
+ echo /lib/ld-2.* # change this on glibc major version bumps.
+ # included so we always have something for cp to copy
+}
+
+in_install_prog() {
+ local prog progpath
+ for prog in $* ;do
+ progpath=$( which $prog ) &&
+ cp --parents -f $progpath $TARGET &&
+ cp --parents -f $( in_libscan $progpath ) $TARGET
+ done
+}
+
+in_start() {
+
+ echo "Starting installation of smgl to disk"
+ mkdir -p ${TARGET} #Though, when this one doesn't exist, we're in trouble
+
+ mkdir -p $TARGET/var/state/sorcery
+ >$TARGET/var/state/sorcery/packages #start with no spells installed
+
+ # Set up directories
+ si_install_spell smgl-fhs
+
+ local dirctry perms owner group
+ while read dirctry perms owner group ;do
+ if [[ "${dirctry:0:1}" != "#" ]] ;then #ignore comment lines
+ install -d -o ${owner:-root} -g ${group:-root} -m ${perms:-0755} \
+ ${TARGET}/$dirctry
+ fi
+ done <${DATA_DIR}/directories
+
+ local symtarget
+ while read dirctry symtarget ;do
+ if [[ "${dirctry:0:1}" != "#" ]] ;then #ignore comment lines
+ ln -sf $dirctry ${TARGET}/$symtarget
+ fi
+ done <${DATA_DIR}/symlinks
+
+ # do /proc and /dev - lazy
+ try_run mount --rbind /dev ${TARGET}/dev
+ try_run mount -t proc proc $TARGET/proc
+
+ # Install sorcery
+ echo "Installing the sorcery package manager"
+ pushd /tmp >/dev/null &&
+ tar -xjf /var/cache/sorcery/sorcery-$SORCERY_VERSION.tar.bz2 &&
+ cd sorcery &&
+ try_run -e "installing sorcery" ./install ${TARGET} &&
+ popd >/dev/null &&
+ rm -rf /tmp/sorcery &&
+
+ # Copy sources
+ echo "Installing base sources and package lists"
+ try_run cp --parents -f /var/spool/sorcery/* ${TARGET} &&
+
+ # Install grimoires
+ mkdir -p ${TARGET}/var/lib/sorcery/codex &&
+ try_run tar -xjf /var/lib/sorcery/codex/$GRIMOIRE_VERSION.tar.bz2 \
+ -C ${TARGET}/var/lib/sorcery/codex &&
+ echo "GRIMOIRE_DIR[0]=/var/lib/sorcery/codex/$GRIMOIRE_VERSION" \
+ >${TARGET}/etc/sorcery/local/grimoire
+ echo "FROM_URL=http://codex.sourcemage.org/$GRIMOIRE_VERSION.tar.bz2"; \
+ >$TARGET/var/lib/sorcery/codex/$GRIMOIRE_VERSION/GRIMOIRE
+ cut -d: -f2 /var/state/sorcery/packages | tail -n 1 \
+ >$TARGET/var/state/sorcery/$GRIMOIRE_VERSION.lastupdate
+ # Store date for ChangeLog, we hope the /v/s/s/packages date is reasonably
+ # close to ISO creation date (it currently is equal -Bear, 2005-12-03)
+
+ # Install alien config files
+ try_run cp --parents -f \
+
/etc/{passwd,group,shadow,ld.so.conf,issue,modules,modules.conf,nsswitch.conf,shells}
\
+ ${TARGET}
+ try_run chmod 0400 $TARGET/etc/shadow
+ try_run chown root:root $TARGET/etc/shadow
+
+ # Install binaries that may be needed (for whatever it's worth,
+ # we'll be waiting for the basesystem to be there for most purposes
anyway)
+ in_install_prog bash ldconfig bzip2 tar
+
+ chroot_cmd ldconfig
+
+ si_queue basesystem
+ si_queue_now Iso.Compile_env #make, gcc etc
+ si_queue_now Iso.Basics #This one ends up first
+
+ si_queue $( cat $DATA_DIR/install-list | sed 's/#.*$//' |
+ grep -v '^[[:blank:]]*$' )
+
+ fill_dependency install_start
+}
+
+in_finish() {
+ # Wait for instalations to finish
+ si_flush
+ # Install /etc files
+ pushd ${FINALFILES} >/dev/null
+ cp --parents -r -f * $TARGET
+ popd >/dev/null
+
+ # TODO: install bootloader - here?
+ cp /etc/sourcemage_version ${TARGET}/etc/sourcemage-release
+ echo "Installed from CD using installer v. $INSTALLER_VERSION on $(date)" \
+ >>${TARGET}/etc/sourcemage-release
+ ln -sf sourcemage-release ${TARGET}/etc/release
+ run_dialog --msgbox "The system and all the configuration you have selected
+have been installed. The only thing left to do is to enter
+the password for the root account." 0 0
+ try_run -e "password for root" chroot_cmd passwd root
+ if confirm "It is highly recommended to create and use a regular
+(non-root) user account for all work, and only su to root
+when neccessary. Do you want to create an user now?" ;then
+ /usr/sbin/fancy-useradd.sh $TARGET
+ fi
+ fill_dependency install_finish
+}

=== added file 'iso/skeleton/usr/share/smgl.install/modules/kernel'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/modules/kernel
@@ -0,0 +1,134 @@
+#!/bin/bash
+
+kernel_screen() {
+
+ need_dependency disk &&
+ need_dependency install_start &&
+
+ debug_log "kernel" 3 "Entering kernel selection screen"
+
+ # Sanity check the system date,
+ # gnupg fails when the kernel signing key will be created in the future
+ touch -d "now + 1 week" $TMP_DIR/timetest
+ if [[ $TMP_DIR/timetest -ot /bin/bash ]] ;then
+ confirm "Your system date appears to be set wrong.
+This might cause the following signature check
+on the linux kernel sources to fail.
+
+You can fix this by switching to another terminal
+and entering something like
+date -d \"2005-12-24 20:30:00\".
+If you do this, answer \"no\" to this query.
+
+Alternatively, I can just set the system time to
+the time this ISO was created. Should I do this now?" --defaultno &&
+ date -s "$(date -r /bin/bash)"
+ fi
+
+ if run_dialog --yes-label "copy" --no-label "compile" \
+ --yesno \
+"Would you like to configure and compile a custom kernel,
+or install/copy the precompiled kernel from the ISO?
+The precompiled kernel is highly modular to support almost
+any hardware we might encounter, the custom kernel needs
+some work to do all the config, but will be smaller.
+Special hardware may also require a custom kernel." 0 0 ;then
+ kn_copy_kernel
+ else
+ kn_compile_kernel
+ fi || {
+ debug_log "ERROR" -1 "Failed to install the kernel"
+ return 1
+ }
+
+}
+
+kn_copy_kernel() {
+
+ echo "Waiting for the tools needed for kernel installation to install..."
+ debug_log "kernel" 2 "Starting kernel copy"
+ si_wait Iso.Compile_env gnupg
+
+ # install the config used for this kernel
+ cp -f /boot/config-$KERNEL_VERSION
${TARGET}/etc/sorcery/local/kernel.config
+
+ cp --parents /etc/sorcery/local/depends/linux.p $TARGET
+
+ touch $TARGET/etc/sorcery/local/makefile.patches
+
+ echo "Setting up kernel source tree... (needed by some compiles)"
+
+ debug_log "kernel" 3 "Starting cast of kernel"
+ export PROMPT_DELAY=0
+ export INTERNAL_ISO_VAR="yes"
+ chroot_cmd cast -c linux
+ local rc=$? # We want the following statements to execute on fail and
success
+
+ unset PROMPT_DELAY
+ unset INTERNAL_ISO_VAR
+ rm -f $TARGET/etc/sorcery/local/depends/linux.p \
+ ${TARGET}/etc/sorcery/local/kernel.config \
+ ${TARGET}/usr/src/linux*/.spell-config.p
+ # We don't want the linux spell to pick up our borked config
+
+ (( rc )) && return $rc # If linux cast failed, fail out now
+
+ sed -i '/^linux:/d' $TARGET/var/state/sorcery/packages &&
+ # we don't want the spellinstaller to think it is already installed
+
+ debug_log "kernel" 3 "Starting si install of kernel" &&
+ si_queue_now linux &&
+ # install the meat after the linux spell has done its thing
+
+ fill_dependency linux copy &&
+ debug_log "kernel" 1 "copied pre-made kernel"
+}
+
+kn_compile_kernel() {
+
+ run_dialog --cr-wrap --textbox ${DATA_DIR}/kernel.help 0 0
+
+ echo "Waiting for the tools needed for kernel installation to install..."
+ debug_log "kernel" 2 "Starting kernel compile"
+ si_wait Iso.Compile_env gnupg
+
+ cp --parents /etc/sorcery/local/depends/linux.p $TARGET
+
+ if run_dialog --yes-label "ISO" --no-label "default" --yesno \
+ "Do you want to start with the ISO's kernel config?
+It does support a lot of hardware with modules, on the other
+hand it will be large and take a long time to build.
+Alternatively, I can just use the linux defaults." 0 0 \
+ ;then
+ # install the config used for this kernel
+ debug_log "kernel" 1 "using ISO config"
+ cp -f /boot/config-$KERNEL_VERSION
${TARGET}/etc/sorcery/local/kernel.config
+ else
+ # make linux spell use the linux default config
+ debug_log "kernel" 1 "using default config"
+ ln -s /usr/src/linux/arch/i386/defconfig \
+ ${TARGET}/etc/sorcery/local/kernel.config
+ # The target of this link does not exist yet, but will at the time the
+ # link is resolved by the linux spell
+ fi
+
+ try_run sed -i -e 's/^MAKEMODE=.*/MAKEMODE="menuconfig"/' \
+ -e 's/^CONFIG_KERNEL=.*/CONFIG_KERNEL="y"/' \
+ $TARGET/etc/sorcery/local/depends/linux.p
+
+ touch $TARGET/etc/sorcery/local/makefile.patches
+
+ debug_log "kernel" 3 "casting kernel..."
+ chroot_cmd cast -c linux
+ local rc=$?
+
+ rm -f $TARGET/etc/sorcery/local/depends/linux.p \
+ ${TARGET}/etc/sorcery/local/kernel.config \
+ ${TARGET}/usr/src/linux*/.spell-config.p
+ # We don't want the linux spell to pick up our borked config
+
+ (( rc )) && return $rc
+
+ fill_dependency linux compile &&
+ debug_log "kernel" 1 "compiled custom kernel"
+}

=== added file
'iso/skeleton/usr/share/smgl.install/modules/nativeLanguageSupport'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/modules/nativeLanguageSupport
@@ -0,0 +1,178 @@
+#!/bin/bash
+# this is the module for native language support
+
+#native language support screen
+nls_screen() {
+
+ local FONT_HELP KEYMAP_HELP LANG_HELP EDITOR_HELP
+
+ local COMMAND
+
+ mkdir -p ${FINALFILES}/etc/profile.d
+
+ while true ;do
+
+ local curkeymap
+ check_dependency keymap &&
+ curkeymap=$(get_dependency keymap) ||
+ curkeymap="unset"
+
+ FONT_HELP="Select a new default console font."
+ KEYMAP_HELP="Select a new default keyboard mapping. (is $curkeymap)"
+ LANG_HELP="Select a new default language. (currently is \"$LANG\")"
+ EDITOR_HELP="Select a new default editor."
+ COMMAND=`run_dialog --cancel-label "Continue" \
+ --ok-label "Select" \
+ --title "Native Language Support Menu" \
+ --item-help \
+ --menu "Select options to customize your SMGL install" \
+ 0 0 0 \
+ "Font" "Font Menu " "$FONT_HELP" \
+ "Keymap" "Keymap Menu " "$KEYMAP_HELP" \
+ "Lang" "Language Menu " "$LANG_HELP" \
+ "Editor" "Editor Menu " "$EDITOR_HELP"` ||
+ return 0
+
+ case $COMMAND in
+ Keymap) keymap_menu ;;
+ Font) font_menu ;;
+ Lang) lang_menu ;;
+ Editor) editor_menu ;;
+ esac
+ done
+
+}
+
+keymap_menu() {
+
+ local KEYMAP
+ declare -a KEYMAPS
+ get_keymaps &&
+
+ KEYMAP=$(memory_menu "KEYMAP" "Keymap Selection Menu" \
+ "" "Please select your preferred keymapping." \
+ "defkeymap" "${KEYMAPS[@]}") &&
+
+ unset KEYMAPS &&
+
+ debug_log "NLS" 1 "Chose keymapping $KEYMAP" &&
+ try_run loadkeys $KEYMAP &&
+ fill_dependency keymap $KEYMAP &&
+ sed -i "s/^KEYMAP=.*$/KEYMAP=$KEYMAP/" ${FINALFILES}/etc/sysconfig/keymap
+
+}
+
+keymap_auto() {
+ sed -i "s/^KEYMAP=.*$/KEYMAP=defkeymap/" ${FINALFILES}/etc/sysconfig/keymap
+}
+
+font_menu() {
+
+ local FONT
+ declare -a FONTS
+ get_consolefonts &&
+
+ FONT=$(memory_menu "FONT" "Console Font Selection Menu" \
+ "" "Please select your preferred console fonts." \
+ "default8x16" "${FONTS[@]}" ) &&
+
+ debug_log "NLS" 1 "Chose console font $FONT" &&
+
+ try_run consolechars -f $FONT &&
+ fill_dependency font $FONT &&
+
+ sed -i "s/^CONSOLECHARS_ARGS=.*$/CONSOLECHARS_ARGS=\"-f $FONT\"/" \
+ ${FINALFILES}/etc/sysconfig/keymap &&
+
+ unset FONTS
+}
+
+lang_menu() {
+
+ local HELP="While sorcery is entirely in English it is possible to
+change the languages of many other programs. Please
+select your preferred language."
+
+ declare -a LANGS
+ get_languages &&
+
+ LANG=$(memory_menu "LANG" "Language Selection Menu" \
+ "" "$HELP" "POSIX" "${LANGS[@]}" ) &&
+ export LANG &&
+ fill_dependency lang $LANG &&
+
+ run_template $TEMPLATE_DIR/lc.sh $TEMPLATE_DIR/nls.patterns \
+ >${FINALFILES}/etc/profile.d/lc.sh &&
+ unset LANGS &&
+
+ debug_log "NLS" 1 "Chose LANG=$LANG"
+}
+
+editor_menu() {
+
+ local ELVIS_DSC="elvis is a clone of the ex/vi text editor"
+ local JED_DSC="jed is an editor with emulation for emacs, EDT, and
Wordstar"
+ local NANO_DSC="nano is an enchanced free pico clone"
+ local VIM_DSC="VIM is an improved version of vi"
+ local REAL_ED
+
+ local HELP="The Install/Rescue disc provides three easy to use
+editors, elvis, nano, and jed. Due to the limited
+size of the CD, vim and emacs can not be used during
+installation. However, you can select vim, which still
+uses elvis during the install, vim on the final system."
+
+ REAL_ED=$(memory_menu "editor" "Select your preferred editor" \
+ "--item-help" "$HELP" "nano" \
+ "nano" "a pico clone" "$NANO_DSC" \
+ "jed" "Powerful editor" "$JED_DSC" \
+ "elvis" "A vi clone" "$ELVIS_DSC" \
+ "vim" "VI IMproved" "$VIM_DSC" ) &&
+
+ # REAL_ED is the editor that will be installed on the new system
+ # EDITOR is the editor used throughout the install process
+
+ if [ "${REAL_ED}" = "vim" ]; then
+ export EDITOR="elvis"
+ else
+ export EDITOR=$REAL_ED
+ fi &&
+
+ debug_log "NLS" 1 "chose $REAL_ED as EDITOR" &&
+
+ si_queue $REAL_ED &&
+ fill_dependency editor $REAL_ED &&
+
+ run_template $TEMPLATE_DIR/editor.sh $TEMPLATE_DIR/nls.patterns \
+ >${FINALFILES}/etc/profile.d/editor.sh
+}
+
+get_keymaps() {
+
+ local idx=0
+ local line
+ while read line ; do
+ KEYMAPS[idx++]=$line
+ done <$STATE_DIR/keyMapList
+
+}
+
+get_consolefonts() {
+
+ local idx=0
+ local line
+ while read line ; do
+ FONTS[idx++]=$line
+ done <$STATE_DIR/fontList
+
+}
+
+get_languages() {
+
+ local idx=0
+ local line
+ while read line ; do
+ LANGS[idx++]=$line
+ done <$STATE_DIR/languageList
+
+}

=== added file 'iso/skeleton/usr/share/smgl.install/modules/network'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/modules/network
@@ -0,0 +1,168 @@
+#!/bin/bash
+
+#network stuff
+function network_screen() {
+ need_dependency disk &&
+ need_dependency install_start &&
+ nw_main
+}
+
+nw_ethernet() {
+
+# To be considered: Do these need to be here? We have the optional spell
menu,
+# after all. Maybe semi-intelligently queue those needed? (as in "wlan0" or
+# "MODE=dynamic")
+ si_queue $(run_dialog --single-quoted --checklist \
+ "Here is a list of spells you may need. Select those wanted."
\
+ 0 0 0
\
+ "dhcpcd" "DHCP is a protocol to automatically get IP and routing info"
"off" \
+ "pcmcia-cs" "Drivers for PCMCIA or PC Card support"
"off" \
+ "wireless_tools" "Tools to configure wireless connections"
"off" \
+ "ndiswrapper" "support for wireless cards with win-only drivers"
"off" )
+
+ # configure netconf on the CD (requires a writable /etc) and next
+ # copy the configuration to the target.
+
+ netconf &&
+ cp -af --parents /etc/sysconfig/network "${TARGET}" &&
+ debug_log "network" 2 "Running netconf" &&
+
+ #TODO make this more intelligent! not quite right question
+ if confirm "Do you want to start networking now?"; then
+
+ local ETHDEV
+ pushd /etc/sysconfig/network >/dev/null
+ for ETHDEV in *.dev ;do
+ try_run ifup ${ETHDEV%.dev}
+ done &&
+
+ cp -f /etc/resolv.conf ${TARGET}/etc/resolv.conf &&
+ debug_log "network" 1 "starting ethernet interfaces" &&
+ fill_dependency network on ||
+ fill_dependency network off
+ # Okay, we configured it, couldn't start it - mark it as configured
anyway
+
+ popd >/dev/null
+ else
+ debug_log "network" 1 "declined to start ethernet interface"
+ fill_dependency network off
+ fi
+}
+
+nw_ppp() {
+
+ si_queue $(run_dialog --single-quoted --checklist \
+ "Here is a list of spells you may need. Select those wanted."
\
+ 0 0 0
\
+ "dhcpcd" "DHCP is a protocol to automatically get IP and routing info"
"off" \
+ "pcmcia-cs" "Drivers for PCMCIA or PC Card support"
"off" \
+ "wireless_tools" "Tools to configure wireless connections"
"off" \
+ "ndiswrapper" "support for wireless cards with win-only drivers"
"off" \
+ "rp-pppoe" "Roaring Penguin for PPP-over-Ethernet, common for DSL"
"off" )
+ # TODO: Check why PPPoE is here
+
+ local USERNAME PASSWORD NUMBER PORT
+ USERNAME=`inputbox "Please enter your ISP username"` &&
+ PASSWORD=`inputbox "Please enter your ISP password"` &&
+ NUMBER=`inputbox "Enter ISP phone number without dashes, spaces and
parenthesis" "5555555"` &&
+ PORT=`inputbox "Enter serial port device (ttyS0 is the first COM
port)" "/dev/ttyS0"` &&
+
+ sed -i $'s\a5555555\a'"$NUMBER"$'\a' /etc/ppp/chat/isp &&
+ sed -i $'s\a: username\a'": $USERNAME"$'\a' /etc/ppp/chat/isp &&
+ sed -i $'s\aqpassword\a'"q$PASSWORD"$'\a' /etc/ppp/chat/isp &&
+ sed -i $'s\a/dev/modem\a'"$PORT"$'\a' /etc/ppp/peers/isp &&
+ cp --parents /etc/ppp/{peers,chat}/isp $FINALFILES &&
+
+
+ if confirm "Should a connection be started now?"; then
+ try_run pon isp &&
+ cp -f /etc/resolv.conf ${TARGET}/etc &&
+ debug_log "network" 1 "starting ppp interface" &&
+ fill_dependency network on ||
+ fill_dependency network off
+ else
+ debug_log "network" 1 "declined to start ppp interface"
+ fill_dependency network off
+ fi
+
+}
+
+nw_pppoe() {
+# FIXME: This is complete bunk. Where does this ever install the settings to
the final system?
+# Need to have someone who knows adsl-setup look over this (Bear,
2005-05-21)
+
+ si_queue $(run_dialog --single-quoted --checklist \
+ "Here is a list of spells you may need. Select those wanted."
\
+ 0 0 0
\
+ "dhcpcd" "DHCP is a protocol to automatically get IP and routing info"
"off" \
+ "pcmcia-cs" "Drivers for PCMCIA or PC Card support"
"off" \
+ "wireless_tools" "Tools to configure wireless connections"
"off" \
+ "ndiswrapper" "support for wireless cards with win-only drivers"
"off" )
+
+ adsl-setup &&
+ debug_log "network" 2 "Setting up adsl via adsl-setup" &&
+
+ if confirm "Start that interface now ?"; then
+ try_run adsl-start &&
+ cp -f /etc/resolv.conf ${TARGET}/etc &&
+ debug_log "network" 1 "starting adsl interface" &&
+ fill_dependency network on ||
+ fill_dependency network off
+ else
+ debug_log "network" 1 "declined to start adsl interface"
+ fill_dependency network off
+ fi
+
+
+}
+
+nw_none() {
+ run_dialog --msgbox "Source Mage is a source-based distribution
+trying to stay pretty up-to-date with the newest versions.
+This CD is not intended to be just installed as a static
+system, but rather as a starting point for a system
+that should be regularly updated. It is advised that you
+get sorcery and grimoire updates regularly and download
+the package sources. Please check the sorcery manpage for a
+description on how to do this manually." 0 0
+ fill_dependency network none
+}
+
+nw_main() {
+
+ # netconf complains without this directory, just create it
+ mkdir -p /etc/sysconfig/network
+ mkdir -p ${TARGET}/etc/sysconfig/network
+
+ # get a hostname (remove /etc/hostname to force reconfigure)
+ rm -f /etc/hostname
+ netconf --check_hostname
+
+ debug_log "network" 2 "hostname is `cat /etc/hostname`"
+
+ cp -f /etc/hostname ${TARGET}/etc/hostname
+
+ local COMMAND
+
+ COMMAND=$(memory_menu network "Networking Setup" "--nocancel"
\
+ "Please select the way this box will connect to the internet"
\
+ "Ethernet"
\
+ "Ethernet" "By plain network, using e.g. a gateway"
\
+ "PPP" "Point-to-Point Protocol is used for modem connections"
\
+ "PPPoE" "PPP over Ethernet, usually used for A-DSL and similar"
\
+ "None" "No internet connection available")
&&
+
+ case $COMMAND in
+ Ethernet) nw_ethernet ;;
+ PPP) nw_ppp ;;
+ PPPoE) nw_pppoe ;;
+ None) nw_none ;;
+ esac &&
+
+ # reset hostname to user specified
+ hostname $(cat /etc/hostname)
+ [[ -e $TARGET/etc/hosts ]] && # If netkit-base installed it yet
+ sed -i "s/^127.0.0.1.*/127.0.0.1 localhost $(cat
/etc/hostname)/" \
+ $TARGET/etc/hosts
+ true
+}

=== added file 'iso/skeleton/usr/share/smgl.install/modules/optionalSpell'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/modules/optionalSpell
@@ -0,0 +1,108 @@
+#!/bin/bash
+
+#uses files:
+# /var/installer/data/optionalSpellList
+# Expected format (one spell per line):
+# "spell" "version" "off" "short description with \" quoted"
+# /tmp/prunedOptionalList
+
+# optional spell stuff
+function optional_screen() {
+
+ need_dependency disk &&
+ need_dependency install_start &&
+ need_dependency linux &&
+ need_dependency bootloader &&
+ need_dependency network ||
+ {
+ echo "Declining to do final configuration due to missing dependencies..."
+ return 1
+ }
+
+ if ! check_dependency dev_format ||
+ confirm "Do you want to reconfigure /dev?" --defaultno ;then
+ opt_choose_dev
+ fi
+
+ #prune the optional list
+ opt_prune_list
+
+ #display the pruned list
+ # TODO: add spell's version as description and description as item help
+ local SPELLS=$( eval "run_dialog --single-quoted --item-help \
+ --title 'Optional Spells' --checklist 'Select optional spells to
install' \
+ 0 0 0 $(cat /tmp/prunedOptionalList)" )
+
+ #queue up the spells to install
+ si_queue $SPELLS
+
+ #ask about installing the caches
+ if ! check_dependency install_caches && # Don't ask again
+ confirm "Install extra cache files? Makes it easier to install a
program you forgot
+without having to get out the ISO again. (recommended)" ;then
+ si_queue Iso.Caches
+ fi
+ rm -f /tmp/prunedOptionalList
+
+}
+
+#prunes the list of optional spells
+# removing those that are already installed
+function opt_prune_list() {
+ local LINE
+ rm -f /tmp/prunedOptionalList
+
+ while read LINE ;do #SUBSHELL!
+ local SPELL=$( echo ${LINE} | cut -d'"' -f 2 )
+ if si_query ${SPELL} ;then
+ echo "${LINE}"
+ fi
+ done < ${STATE_DIR}/optionalSpellList | sort | #let's make this one long
line,
+ tr $'\n' ' ' > /tmp/prunedOptionalList # eval doesn't like line breaks
+}
+
+function opt_choose_dev() {
+ local DEVSYST
+ local DEVROOT
+ DEVSYST=$( run_dialog --single-quoted --title 'choose /dev system' \
+ --item-help \
+ --menu "Select the system you want to manage your /dev directory" \
+ 0 0 0 \
+ "udev" "udev dynamically creates device nodes in userspace" \
+ "udev has a daemon to create nodes in /dev as the devices get
recognized" \
+ "static" "static device nodes in the filesystem tree" \
+ "does not require any daemons, but has every device known to linux in
/dev" ) &&
+# "devfs" "dynamic device nodes in a virtual file system" \
+# "devfs is a mountable kernel space file system used in the 2.4
kernel" ) &&
+ if umount $TARGET/dev 2>/dev/null ;then
+ DEVROOT=$TARGET/dev
+ else
+ mount --bind $TARGET /mnt/mnt
+ DEVROOT=/mnt/mnt/dev
+ fi &&
+ case $DEVSYST in
+ # WORKAROUND: For some reason, it seems we can't unmount $TARGET/dev.
+ "udev")
+ si_queue udev
+ pushd $DEVROOT >/dev/null
+ try_run /sbin/MAKEDEV std console fd
+ try_run mknod initctl p
+ popd >/dev/null
+ fill_dependency dev_format udev
+ ;;
+ "static")
+ cp /sbin/MAKEDEV $DEVROOT/MAKEDEV
+ pushd $DEVROOT >/dev/null
+ try_run ./MAKEDEV generic-nopty md
+ try_run mknod initctl p
+ popd >/dev/null
+ fill_dependency dev_format static
+ ;;
+# "devfs")
+# si_queue devfsd
+# fill_dependency dev_format devfs
+# ;;
+ esac
+ [[ $DEVROOT == /mnt/mnt/dev ]] && umount /mnt/mnt
+ sed -i "s/^DEVICES=.*$/DEVICES=$DEVSYST/"
${FINALFILES}/etc/sysconfig/devices
+}

=== added file 'iso/skeleton/usr/share/smgl.install/modules/patterns'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/modules/patterns
@@ -0,0 +1,40 @@
+#!/bin/bash
+# Small library for template file handling.
+# This eliminates the need for nasty <<EOF constructs
+# even when some values have to be manually filled in.
+#
+# This routine takes the file and replaces the given patterns
+# (in regular use). Patterns are specified in a pattern file
+# as e.g. /__KVERSION__/$KERN_VER/
+# one pattern per line, no leading/trailing junk (a g is appended
automatically)
+
+# Patterns will be passed through an eval in double quotes.
+# This means any double quotes in the pattern or replacement have to be
+# escaped. On the other hand, this allows us to use bash variables at all.
+# In essence, specify patterns as you would stuff in "".
+
+# No standard patterns are defined at all.
+# If you need to escape certain sequences, either re-design your
+# patterns or add a /__NO_OP__// replacement that you can use to split
+# up stuff that would otherwise match.
+
+# $1: file to be printed
+# $2: file containing patterns
+# This function returns the final file to stdout
+function run_template()
+{
+ local RANDNAME="$TMP_DIR/template.$RANDOM"
+ local pattern
+ while [ -e $RANDNAME ] ;do
+ echo "Warning: template file $RANDNAME already exists" >&2
+ RANDNAME="$TMP_DIR/template.$RANDOM"
+ done
+ cat "$1" >$RANDNAME # no cp, so /dev/stdin etc. work
+ while read pattern ;do
+ eval "sed -i -e \"s${pattern}g\" $RANDNAME"
+ # we need an eval so that $vars in the pattern get expanded
+ done <$2
+ cat $RANDNAME
+ rm -f $RANDNAME
+ return 0
+}

=== added file 'iso/skeleton/usr/share/smgl.install/modules/services'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/modules/services
@@ -0,0 +1,75 @@
+#!/bin/bash
+
+#optional services
+function services_screen() {
+ need_dependency install_finish ||
+ return 1
+ local SCRIPTLIST=()
+ sv_get_scripts
+ sv_choose_scripts &&
+ sv_enable_scripts
+}
+
+# Function to find all installed init scripts
+# alternately stores the name of the script, description, and on|off
+sv_get_scripts() {
+ local i=0
+ local line
+
+ find ${TARGET}/etc/init.d/runlevels/ -mindepth 2 \
+ -not -name 'runlevel.config' >$TMP_DIR/iscripts.list.$$
+
+ >$TMP_DIR/prevenabled-scripts
+ >$TMP_DIR/prevdisabled-scripts
+
+ while read line ;do
+ SCRIPTLIST[i++]="${line##*/}"
+ local helper=${line##*%}
+ SCRIPTLIST[i++]="Runlevel ${helper%%/*}" # extract stuff between % and /
+ if test -x $line ;then
+ SCRIPTLIST[i++]="on"
+ echo "${line##*/}" >>$TMP_DIR/prevenabled-scripts
+ else
+ SCRIPTLIST[i++]="off"
+ echo "${line##*/}" >>$TMP_DIR/prevdisabled-scripts
+ fi
+ done <$TMP_DIR/iscripts.list.$$ #Can't use a pipe, we'd get a subshell
+ rm -f $TMP_DIR/iscripts.list.$$
+}
+
+sv_choose_scripts() {
+ local HELP="This is the list of all init scripts on the system.
+An X means they are enabled (usually for a good reason)"
+ local SCRIPTS
+
+ SCRIPTS=$(run_dialog --title "Select init scripts to be run at boot time" \
+ --single-quoted --checklist "$HELP" 0 0 0 \
+ "${SCRIPTLIST[@]}") &&
+ echo $SCRIPTS | tr ' ' $'\n' >$TMP_DIR/enabled-scripts &&
+ # dialog gives us a space-seperated list
+
+ find ${TARGET}/etc/init.d/runlevels/ -mindepth 2 \
+ -not -name 'runlevel.config' | sed 's:^.*/::' >$TMP_DIR/all-scripts &&
+ cat $TMP_DIR/all-scripts $TMP_DIR/enabled-scripts |
+ sort | uniq -u >$TMP_DIR/disabled-scripts &&
+ # filter out only lines appearing exactly once
+ # All lines appearing only once must be in all- but not in enabled-
+ rm -f $TMP_DIR/all-scripts
+}
+
+sv_enable_scripts() {
+ local line
+
+ while read line ;do
+ grep -q "^$line$" $TMP_DIR/prevenabled-scripts || # no already-enabled
ones
+ try_run -e "enabling init script failed" chroot_cmd telinit bootenable \
+ "$line" <&2 # we hope stderr is the terminal
+ done <$TMP_DIR/enabled-scripts
+ while read line ;do
+ grep -q "^$line$" $TMP_DIR/prevdisabled-scripts ||
+ try_run -e "disabling init script failed" chroot_cmd telinit bootdisable
\
+ "$line" <&2
+ done <$TMP_DIR/disabled-scripts
+ rm -f $TMP_DIR/enabled-scripts $TMP_DIR/disabled-scripts
+ rm -f $TMP_DIR/prevenabled-scripts $TMP_DIR/prevdisabled-scripts
+}

=== added file 'iso/skeleton/usr/share/smgl.install/modules/syslog'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/modules/syslog
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+#module for syslog stuff
+function logger_screen() {
+ need_dependency disk &&
+ need_dependency install_start &&
+ syslog
+}
+
+syslog() {
+
+ local logger
+ logger=$(memory_menu logger "Please select your system logger" \
+ "--item-help" "Pick one of the 3 loggers available" "none" \
+ "sysklogd" "standard system logging daemon" \
+"This version of syslogd is similar to the standard Berkeley product." \
+ "syslog-ng" "new logging daemon with some more features" \
+ "syslog-ng, as the name shows, is a syslogd replacement." \
+ "metalog" "a modern replacement for the loggers" \
+ "metalog has many features and allows high configurability" \
+ "none" "no logger" \
+ "don't want/need a system logger") &&
+ debug_log "syslog" 1 "Chose \"$logger\" as system logger" &&
+ fill_dependency syslog $logger &&
+ if [[ $logger == "none" ]] ;then return 0 ;fi &&
+ si_queue $logger &&
+ try_run sed -i "s/^syslog=.*$/syslog=$(slg_get_initscript_name $logger)/" \
+ ${FINALFILES}/etc/sysconfig/facilities
+}
+
+function slg_get_initscript_name() {
+ case "$1" in
+ "sysklogd") echo "sysklogd" ;;
+ "syslog-ng") echo "syslog-ng" ;;
+ "metalog") echo "smgl-metalog" ;;
+ esac
+}

=== added file 'iso/skeleton/usr/share/smgl.install/modules/timezone'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/modules/timezone
@@ -0,0 +1,74 @@
+#!/bin/bash
+
+#timezone selection stuff
+
+function timezone_screen() {
+ need_dependency disk &&
+ need_dependency install_start &&
+ tz_menu
+}
+
+function timezone_auto() {
+ debug_log "timezone" 1 "selected UTC as timezone since none was configured"
+ ln -sf /usr/share/zoneinfo/UTC $FINALFILES/etc/localtime
+}
+
+tz_menu() {
+
+ local selectedTZ="/usr/share/zoneinfo"
+
+ while [ -d $selectedTZ ] ;do
+ if [[ "$selectedTZ" == "/usr/share/zoneinfo" ]] ;then
+ local answer
+ answer=$( run_dialog --title "Time Zone Selection Menu" \
+ --menu "Select a timezone or a directory to look in" \
+ 0 0 0 $(tz_show $selectedTZ) ) ||
+ return 1 # fail out when the dialog is aborted
+ selectedTZ="$selectedTZ/$answer"
+ else # Don't show ".." if we're at top level
+ local answer
+ answer=$( run_dialog --title "Time Zone Selection Menu" \
+ --menu "Select timezone or directory (we're in $selectedTZ)" \
+ 0 0 0 ".." "Up one level" $(tz_show $selectedTZ) ) ||
+ return 1
+ if [[ "$answer" == ".." ]] ;then
+ selectedTZ=${selectedTZ%/*}
+ else
+ selectedTZ=$selectedTZ/$answer
+ fi
+ fi
+ done
+
+ if ! [ -f "$selectedTZ" ]; then
+ debug_log "timezone" 0 "got invalid time zone $selectedTZ"
+ return 2 # This should _never_ happen
+ fi
+ # if we've reached this point, we probably have a valid time zone
+ debug_log "timezone" 1 "selected time zone $selectedTZ"
+
+ # configure the local time zone
+ try_run ln -sf "$selectedTZ" "${FINALFILES}/etc/localtime"
+ # and /etc/ is writable now too
+ try_run ln -sf "$selectedTZ" /etc/localtime
+ fill_dependency timezone "$selectedTZ"
+
+ if run_dialog \
+ --title "UTC/GMT or local time" \
+ --yes-label "local" \
+ --no-label "UTC/GMT" \
+ --yesno "Should the hardware clock store time in UTC/GMT
+or in local time? In UTC/GMT it doesn't have
+to be reset for daylight savings time, but it messes up
+broken OS's like MS Windows." \
+ 0 0 ;then
+ debug_log "timezone" 1 "selected local time in hwclock"
+ try_run sed -i 's/^UTC=.*$/UTC=no/' ${FINALFILES}/etc/sysconfig/hwclock
+ else
+ debug_log "timezone" 1 "selected UTC/GMT in hwclock"
+ try_run sed -i 's/^UTC=.*$/UTC=yes/' ${FINALFILES}/etc/sysconfig/hwclock
+ fi
+}
+
+tz_show() {
+ grep "^$1:" $STATE_DIR/timeZoneList | cut -d: -f2-3 | tr : ' '
+}

=== added file 'iso/skeleton/usr/share/smgl.install/optional-list'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/optional-list
@@ -0,0 +1,61 @@
+udev
+__SMGL_TEMPLATE_NOT_ppc__##ndiswrapper
+sysfsutils
+ccache
+distcc
+screen
+procinfo
+pciutils
+lshw
+uptimed
+ethstatus
+#nmap
+which
+mdadm
+cvs
+hotplug
+xinetd
+nfs-utils
+openssh
+openssl
+portmap
+tcp_wrappers
+groff
+man
+man-pages
+mutt
+irssi
+links
+minicom
+pkgconfig
+vim
+elvis
+jed
+nano
+hdparm
+reiserfsprogs
+xfsprogs
+jfsutils
+raidtools
+lvm
+bison
+device-mapper
+dhcpcd
+flex
+m4
+__SMGL_TEMPLATE_NOT_ppc__nasm
+ppp
+rp-pppoe
+slang
+wireless_tools
+pcmcia-cs
+__SMGL_TEMPLATE_NOT_ppc__lilo
+__SMGL_TEMPLATE_NOT_ppc__grub
+sysklogd
+syslog-ng
+metalog
+linux
+e2fsprogs
+g++
+libtool
+__SMGL_TEMPLATE_ONLY_ppc__yaboot

=== added file 'iso/skeleton/usr/share/smgl.install/symlinks'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/symlinks
@@ -0,0 +1,2 @@
+/dev/null /root/.bash_history
+share/man /usr/man

=== added directory 'iso/skeleton/usr/share/smgl.install/templates'
=== added file
'iso/skeleton/usr/share/smgl.install/templates/bootloader.patterns'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/templates/bootloader.patterns
@@ -0,0 +1,4 @@
+=__BOOTLOC__=$BL_BOOTLOC=
+=__KVER__=$BL_KVERSION=
+=__ROOT__=$BL_ROOTDEV=
+=__TARGET__=$BL_TARGET=

=== added file 'iso/skeleton/usr/share/smgl.install/templates/editor.sh'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/templates/editor.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+# Generated by the installer
+# Check if set, if not, set it. In every case, export it
+if [[ -z "$EDITOR" ]] ;then
+ EDITOR=__EDITOR__
+fi
+export EDITOR

=== added file 'iso/skeleton/usr/share/smgl.install/templates/fstab.first'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/templates/fstab.first
@@ -0,0 +1,26 @@
+# /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
+
+#
+# We do no longer use tmpfs since it wasted memory instead of disk space
+#
+#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
+
+# enable this to get POSIX shared memory support (needed for a few apps)
+#tmpfs /dev/shm tmpfs defaults 0 0
+
+# Virtual memory swap file
+# If you need it then create it with the following commands
+# dd if=/dev/zero of=/swapfile bs=1M count=1024
+# mkswap /swapfile
+# chmod 000 /swapfile
+# Then uncomment the line below.
+#/swapfile none swap defaults 0 0

=== added file 'iso/skeleton/usr/share/smgl.install/templates/fstab.last'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/templates/fstab.last
@@ -0,0 +1,8 @@
+# Uncomment the following lines for FHS 2.3-compliant mount points
+# Create directories if needed
+#/dev/fd0 /media/floppy auto defaults,noauto,users
+#/dev/cdrom /media/cdrom auto defaults,noauto,ro,users
+#
+# If you like FHS 2.2-style mount points instead, use those lines:
+#/dev/fd0 /mnt/floppy auto defaults,noauto,users
+#/dev/cdrom /mnt/cdrom auto defaults,noauto,users

=== added file 'iso/skeleton/usr/share/smgl.install/templates/grub.conf'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/templates/grub.conf
@@ -0,0 +1,28 @@
+#
+# /boot/grub/menu.lst generated by the Source Mage GNU/Linux installer
+#
+
+# Boot automatically after 30 secs.
+timeout 10
+
+# By default, boot the first entry.
+default 0
+
+# Fallback to the second entry.
+fallback 1
+
+# use LBA
+lba32
+
+# Splashimage, provides a nice image for the background
+splashimage __BOOTLOC__/grub/images/smgl-splash.xpm.gz
+
+# defines menu foreground/background, highlight foreground/background
+color black/light-gray white/red
+
+title Source Mage GNU/Linux
+kernel __BOOTLOC__/vmlinuz root=__ROOT__ ro
+
+title Source Mage GNU/Linux __KVER__
+kernel __BOOTLOC__/vmlinuz-__KVER__ root=__ROOT__ ro
+

=== added file 'iso/skeleton/usr/share/smgl.install/templates/lc.sh'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/templates/lc.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+# Generated by the installer
+# Check if set, if not, set it. In every case, export it
+if [[ -z "$LANG" ]] ;then
+ LANG=__LANG__
+fi
+export LANG

=== added file 'iso/skeleton/usr/share/smgl.install/templates/lilo.conf'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/templates/lilo.conf
@@ -0,0 +1,17 @@
+boot=__TARGET__
+root=__ROOT__
+
+prompt
+# lba32
+delay=128
+timeout=128
+install=boot-bmp.b
+bitmap=/boot/boot.bmp
+bmp-table=227p,233p,1,7
+bmp-colors=13,0,,11,0,13
+bmp-timer=76,30,11,0
+map=/boot/map
+
+image=/boot/vmlinuz-__KVER__
+ label=linux-__KVER__
+ read-only

=== added file 'iso/skeleton/usr/share/smgl.install/templates/nls.patterns'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/templates/nls.patterns
@@ -0,0 +1,2 @@
+/__LANG__/$LANG/
+/__EDITOR__/$REAL_ED/

=== added file
'iso/skeleton/usr/share/smgl.install/templates/yaboot.conf.last'
--- /dev/null
+++ iso/skeleton/usr/share/smgl.install/templates/yaboot.conf.last
@@ -0,0 +1,4 @@
+image=__BOOTLOC__/vmlinux-__KVER__
+ label=linux-__KVER__
+ read-only
+

=== added directory 'iso/skeleton/var'
=== added directory 'iso/skeleton/var/lib'
=== added directory 'iso/skeleton/var/lib/smgl.install'
=== added file 'iso/skeleton/var/lib/smgl.install/version'
--- /dev/null
+++ iso/skeleton/var/lib/smgl.install/version
@@ -0,0 +1,4 @@
+INSTALLER_VERSION=__SMGL_TEMPLATE_ISO_VERSION__
+SORCERY_VERSION=__SORCERY_VERSION__
+GRIMOIRE_VERSION=__GRIMOIRE_VERSION__
+KERNEL_VERSION=__KERNEL_VERSION__

=== added directory 'iso/skeleton/var/state'
=== added directory 'iso/skeleton/var/state/sorcery'
=== added file 'iso/skeleton/var/state/sorcery/depends'
--- /dev/null
+++ iso/skeleton/var/state/sorcery/depends
@@ -0,0 +1,21 @@
+Iso.Basics:bash:on:required::
+Iso.Basics:dialog:on:required::
+Iso.Basics:coreutils:on:required::
+Iso.Basics:file:on:required::
+Iso.Basics:findutils:on:required::
+Iso.Basics:gawk:on:required::
+Iso.Basics:glibc:on:required::
+Iso.Basics:grep:on:required::
+Iso.Basics:sed:on:required::
+Iso.Basics:util-linux:on:required::
+Iso.Compile_env:Iso.Basics:on:required::
+Iso.Compile_env:binutils:on:required::
+Iso.Compile_env:bzip2:on:required::
+Iso.Compile_env:diffutils:on:required::
+Iso.Compile_env:gcc:on:required::
+Iso.Compile_env:gzip:on:required::
+Iso.Compile_env:installwatch:on:required::
+Iso.Compile_env:make:on:required::
+Iso.Compile_env:patch:on:required::
+Iso.Compile_env:tar:on:required::
+Iso.Compile_env:zlib:on:required::

=== added directory 'iso/skeleton/yaboot.ppc'
=== added file 'iso/skeleton/yaboot.ppc/ofboot.b'
--- /dev/null
+++ iso/skeleton/yaboot.ppc/ofboot.b
@@ -0,0 +1,13 @@
+<CHRP-BOOT>
+<COMPATIBLE>
+MacRISC MacRISC3 MacRISC4
+</COMPATIBLE>
+<DESCRIPTION>
+SourceMage GNU/Linux PPC first stage CDROM bootloader
+</DESCRIPTION>
+<BOOT-SCRIPT>
+" screen" output
+load-base release-load-area
+boot cd:,\yaboot\yaboot
+</BOOT-SCRIPT>
+</CHRP-BOOT>

=== added file 'iso/skeleton/yaboot.ppc/yaboot.conf'
--- /dev/null
+++ iso/skeleton/yaboot.ppc/yaboot.conf
@@ -0,0 +1,28 @@
+# This yaboot.conf is for CD booting SourceMage GNU/Linux PPC
+
+device=cd:
+default=install
+
+message=/yaboot/yaboot.msg
+
+bgcolor=blue
+fgcolor=white
+
+image=/boot/linux
+ label=install
+ initrd=/boot/initrd.gz
+ append="ramdisk_size=@INITRD_SIZE@ rw"
+ root=/dev/ram0
+ read-only
+
+image=/boot/linux
+ label=linux
+ root=you-need-to-set-root
+ read-only
+
+image=/boot/linux
+ label=initrd
+ initrd=/boot/initrd.gz
+ append="ramdisk_size=@INITRD_SIZE@ rw"
+ root=you-need-to-set-root
+ read-only

=== added file 'iso/skeleton/yaboot.ppc/yaboot.msg'
--- /dev/null
+++ iso/skeleton/yaboot.ppc/yaboot.msg
@@ -0,0 +1,22 @@
+SMGL-__SMGL_TEMPLATE_ISO_VERSION__ by the Source Mage GNU/Linux team
<www.sourcemage.org>
+This ISO made using @GRIMOIRE_VERSION@.
+
+Welcome to Source Mage GNU/Linux
+Copyright (C) 2000-2001 by Kyle Sallee
+Copyright (C) 2002-2005 by Source Magers <www.sourcemage.org>
+All Rights Reserved
+
+Source Mage is distributed under the terms of the GNU General Public License
+Version 2 Please see http://www.gnu.org/copyleft/gpl.html for the GNU GPL
+
+Download Source Mage GNU/Linux and documentation from
+http://www.sourcemage.org
+
+* To install Source Mage GNU/Linux right now, just press 'enter'. If
+ you need special kernel parameters, just type 'install' followed by
+ kernel parameters, like "acpi=off" for instance.
+
+* Thank you for trying a testing version. Remember, you can get help on IRC
+ on irc.freenode.net, channel #sourcemage-cauldron or #sourcemage.
+ If you find any bugs, please go to bugs.sourcemage.org and report them, we
+ absolutely love feedback.

=== added directory 'misc'
=== added file 'misc/excluded'
--- /dev/null
+++ misc/excluded
@@ -0,0 +1,9 @@
+^boot/
+^etc/sorcery/local/
+^iso-root
+^lib/modules/
+^root/
+^tmp/
+^usr/src/
+^var/cache/sorcery
+^var/spool/sorcery

=== added file 'misc/release.sh'
--- /dev/null
+++ misc/release.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+p4 edit $(readlink -f ${0%/*}/../iso/data/internal_version)
+# p4 can't cope with foo/../bar
+date -u +%Y%m%d%H >${0%/*}/../iso/data/internal_version




  • [SM-Commit] BZR Change 2 to cauldron-devel cauldron by Karsten Behrmann <BearPerson AT sourcemage.org>, bzr, 04/15/2006

Archive powered by MHonArc 2.6.24.

Top of Page