--- mkinitrd-5.0.17/mkinitrd.ark 2009-01-06 00:46:39.447820331 +0100 +++ mkinitrd-5.0.17/mkinitrd 2009-01-06 00:52:10.780827249 +0100 @@ -53,7 +53,7 @@ force="" verbose="" img_vers="" builtins="" -modulefile=/etc/modprobe.conf +modulefiles="/etc/modprobe.conf /etc/modprobe.d/*" splash="" resolution="1024x768-16@60" rc=0 @@ -555,7 +555,6 @@ if [ $UID != 0 ]; then fi vecho "Creating initramfs" -modulefile=/etc/modprobe.conf # find a temporary directory which doesn't use tmpfs TMPDIR="" @@ -616,48 +615,37 @@ if [ -n "$withusb" -a "x$PROBE" == "xyes fi if [ -n "$forcescsi" -o -z "$noscsi" -a "x$PROBE" == "xyes" ]; then - if [ ! -f $modulefile ]; then - modulefile=/etc/modprobe.conf - fi + scsimodules=`cat $modulefiles 2>/dev/null |grep "alias[[:space:]]\+scsi_hostadapter" | grep -v '^[ ]*#' | LC_ALL=C sort -u | awk '{ print $3 }'` - if [ -f $modulefile ]; then - scsimodules=`grep "alias[[:space:]]\+scsi_hostadapter" $modulefile | grep -v '^[ ]*#' | LC_ALL=C sort -u | awk '{ print $3 }'` + if [ -n "$scsimodules" ]; then + for n in $PRESCSIMODS; do + findmodule $n + done - if [ -n "$scsimodules" ]; then - for n in $PRESCSIMODS; do - findmodule $n - done - - for n in $scsimodules; do - # for now allow scsi modules to come from anywhere. There are some - # RAID controllers with drivers in block/ - findmodule $n - done - fi + for n in $scsimodules; do + # for now allow scsi modules to come from anywhere. There are some + # RAID controllers with drivers in block/ + findmodule $n + done fi fi if [ -z "$nosata" ]; then - if [ ! -f $modulefile ]; then - modulefile=/etc/modprobe.conf - fi - if [ -f $modulefile ]; then - satamodules="`cat /sys/class/scsi_host/*/proc_name 2>/dev/null |grep -E '(ata|ahci)' |uniq`" - if [ -z "$satamodules" ]; then - # Try the legacy (2.4.x) way - satamodules="`ls /proc/scsi/ 2>/dev/null |grep ata`" - fi - if [ -n "$satamodules" ]; then - if echo $satamodules |grep -q ahci; then - findmodule libahci - fi - for n in $PRESATAMODS; do - findmodule $n - done - for n in $satamodules; do - findmodule $n - done - fi + satamodules="`cat /sys/class/scsi_host/*/proc_name 2>/dev/null |grep -E '(ata|ahci)' |uniq`" + if [ -z "$satamodules" ]; then + # Try the legacy (2.4.x) way + satamodules="`ls /proc/scsi/ 2>/dev/null |grep ata`" + fi + if [ -n "$satamodules" ]; then + if echo $satamodules |grep -q ahci; then + findmodule libahci + fi + for n in $PRESATAMODS; do + findmodule $n + done + for n in $satamodules; do + findmodule $n + done fi fi @@ -674,7 +662,7 @@ if [ -z "$noide" ]; then fi if [ -n "$needusb" -a "x$PROBE" == "xyes" ]; then - drivers=$(awk '/^alias[[:space:]]+usb-controller[0-9]*[[:space:]]+/ { print $3}' < $modulefile) + drivers=$(cat $modulefiles 2>/dev/null |awk '/^alias[[:space:]]+usb-controller[0-9]*[[:space:]]+/ { print $3}') if [ -n "$drivers" ]; then for driver in $drivers; do findmodule $driver @@ -1036,7 +1024,7 @@ for MODULE in $MODULES; do module=`echo $MODULE | sed "s|.*/||" | sed "s/.k\?o$//"` fullmodule=`echo $MODULE | sed "s|.*/||"` - options=`sed -n -e "s/^options[ ][ ]*$module[ ][ ]*//p" $modulefile 2>/dev/null` + options=`cat $modulefiles 2>/dev/null |sed -n -e "s/^options[ ][ ]*$module[ ][ ]*//p"` if [ "$module" = "usb-storage" ]; then emit "if nousb nousb"