diff options
-rw-r--r-- | hooks/filesystems | 2 | ||||
-rw-r--r-- | hooks/raid | 6 | ||||
-rw-r--r-- | hooks/usb | 2 | ||||
-rw-r--r-- | init | 4 | ||||
-rw-r--r-- | install/filesystems | 2 | ||||
-rw-r--r-- | install/ide | 6 | ||||
-rw-r--r-- | install/raid | 16 | ||||
-rw-r--r-- | install/sata | 5 | ||||
-rw-r--r-- | install/scsi | 4 | ||||
-rw-r--r-- | install/usb | 3 | ||||
-rw-r--r-- | mkinitcpio.conf | 54 |
11 files changed, 78 insertions, 26 deletions
diff --git a/hooks/filesystems b/hooks/filesystems index c676832..0990b4c 100644 --- a/hooks/filesystems +++ b/hooks/filesystems @@ -9,7 +9,7 @@ run_hook () msg "Attempting to create root device '${root}'" dev_t=$( /bin/parseblock "${root}" ) if [ "x${dev_t}" != "x" ]; then - /bin/mknod "${root}" b ${dev_t} + /bin/mknod "${root}" b ${dev_t} >/dev/null 2>&1 eval $( /bin/fstype < "${root}" ) else FSTYPE="unknown" @@ -1,7 +1,7 @@ # vim: set ft=sh: -# kinit handles md/raid assembly we just need modules run_hook () { - #TODO - /bin/modprobe -aq raid0 raid1 raid2 raid5 raid6 + #TODO scan for these somehow... + /bin/modprobe -aq raid0 raid1 raid2 raid5 raid6 >/dev/null 2>&1 + /bin/mdassemble ${md} ${raid} } @@ -3,5 +3,7 @@ run_hook () { msg -n "Loading usb modules..." /bin/modprobe -aq $(/bin/cat /sys/bus/usb/devices/*/modalias) >/dev/null 2>&1 + #allow 'usbdelay' on the kernel param line + /bin/sleep ${usbdelay:-5} msg "done." } @@ -3,7 +3,7 @@ msg () { [ "${quiet}" != "y" ] && echo $@; } err () { echo "ERROR: $@"; } -msg ":: Begin Initramfs" +msg ":: Loading Initramfs" /bin/mount -t sysfs none /sys /bin/mount -t proc none /proc @@ -64,5 +64,5 @@ if [ "${break}" = "y" ]; then fi # Optimize fs type loop for mounting rootfs -msg ":: End Initramfs - control passing to kinit" +msg ":: Initramfs Completed - control passing to kinit" exec /bin/kinit rootfstype=${FSTYPE} $CMDLINE < /dev/console > /dev/console diff --git a/install/filesystems b/install/filesystems index c012d1b..1da1f13 100644 --- a/install/filesystems +++ b/install/filesystems @@ -2,7 +2,7 @@ install () { - MODULES=" $(all_modules '/kernel/fs') " + MODULES=" $(all_modules '/kernel/fs' | grep -v "nls") " BINARIES="" FILES="" SCRIPT="filesystems" diff --git a/install/ide b/install/ide index cd9625a..bbd1ef5 100644 --- a/install/ide +++ b/install/ide @@ -2,11 +2,7 @@ install () { - MODULES="" - for m in $(all_modules "/ide/"); - do - MODULES="$MODULES $(basename $m)" - done + MODULES=" $(all_modules "/ide/" | grep -v "legacy") "; BINARIES="" FILES="" SCRIPT="ide" diff --git a/install/raid b/install/raid index 6f3c90a..84339c5 100644 --- a/install/raid +++ b/install/raid @@ -6,12 +6,24 @@ install () BINARIES="" FILES="" SCRIPT="raid" + add_file "/usr/lib/klibc/bin/mdassemble" "/bin/mdassemble" } help () { cat<<HELPEOF - This hook loads the necessary modules for an raid root device. - Detection will take place at runtime. + This hook loads the necessary modules for an raid root device, + and assemble the raid device when run. + + Supported Kernel Parameters: + * raid=noautodetect : This setting is only effective if set to + noautodetect. When set to noautodetect, the md= parameter is used. + * md= ::: TODO ::: md=0,/dev/sda3,/dev/sda4 + + Important Note: kinit handles raid assembly by itself. If you + do not need to run any additional hooks on the assembled array + (i.e. LVM, encrypted root, etc), it is recommended that you + let kinit handle the assembly. You will still need to load + the proper raid* modules via the MODULES setting. HELPEOF } diff --git a/install/sata b/install/sata index 3c33376..708e3ff 100644 --- a/install/sata +++ b/install/sata @@ -2,10 +2,7 @@ install () { - MODULES=" $(all_modules "scsi/.*ata") " - for m in $MODULES; do - [ "$m" == "ata_piix" ] && MODULES="$MODULES piix" - done + MODULES=" $(all_modules "scsi/.*ata") sx8 ahci pdc_adma sd_mod sr_mod piix" BINARIES="" FILES="" SCRIPT="sata" diff --git a/install/scsi b/install/scsi index 3e6fa2f..6e822c1 100644 --- a/install/scsi +++ b/install/scsi @@ -2,8 +2,8 @@ install () { - MODULES=" $(all_modules "/scsi/" | grep -v "ata") - $(all_modules "/block/") + MODULES=" $(all_modules "/scsi/" | grep -ve "imm" -e "pdc_adma" -e "ahci" -e "ata" -e "pcmcia" -e "ide") + $(all_modules "/block/" | grep -v "sx8") $(all_modules "/fusion/")" BINARIES="" FILES="" diff --git a/install/usb b/install/usb index b7d1de8..4d53e8f 100644 --- a/install/usb +++ b/install/usb @@ -2,7 +2,8 @@ install () { - MODULES=" $(all_modules "/usb/") usb_storage usbhid" + MODULES=" $(all_modules "/usb/" | grep -ve "_cs" -e "sl1811-hcd" -e "isp116x-hcd") + usb_storage usbhid sd_mod sr_mod " BINARIES="" FILES="" SCRIPT="usb" diff --git a/mkinitcpio.conf b/mkinitcpio.conf index d248a6c..65b2ffa 100644 --- a/mkinitcpio.conf +++ b/mkinitcpio.conf @@ -1,8 +1,52 @@ # vim:set ft=sh -#MODULES="piix ide_disk reiserfs" -BINARIES="fbxine" + +# MODULES +# The following modules are loaded before any boot hooks are +# run. Advanced users may wish to specify all system modules +# in this array. For instance: +# MODULES="piix ide_disk reiserfs" +MODULES="" + +# BINARIES +# This setting includes, into the CPIO image, and additional +# binaries a given user may wish. This is run first, so may +# be used to override the actual binaries used in a given hook. +# (Existing files are NOT overwritten is already added) +# BINARIES are dependancy parsed, so you may safely ignore libraries +BINARIES="" + +# FILES +# This setting is similar to BINARIES above, however, files are added +# as-is and are not parsed in anyway. This is useful for config files. +# Some users may wish to include modprobe.conf for custom module options, +# like so: +# FILES="/etc/modprobe.conf" FILES="" -HOOKS="base autodetect" -# raid dm ide" -#HOOKS="base" +# HOOKS +# This is the most important setting in this file. The HOOKS control the +# modules and scripts added to the image, and what happens at boot time. +# Order is important, and it is recommended that you do not change the +# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for +# help on a given hook. +# 'base' is _required_ unless you know precisely what you are doing. +# Examples: +# This setup specifies all modules in the MODULES setting above. +# No raid, lvm, or encrypted root is needed. +# HOOKS="base" +# +# This setup will autodetect all modules for your system and should +# work as a sane default +# HOOKS="base ide scsi sata usb filesystems autodetect" +# +# This setup will generate a 'full' image which supports most systems. +# No autodetection is done. +# HOOKS="base ide scsi sata usb filesystems" +# +# This setup assembles an ide raid array with an encrypted root FS. +# Note: See 'mkinitcpio -H raid' for more information on raid devices. +# HOOKS="base ide raid encrypt" +# +# This setup loads an LVM volume group on a usb device. +# HOOKS="base usb lvm" +HOOKS="base ide scsi sata usb filesystems autodetect" |