summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--init1
-rw-r--r--install/autodetect13
2 files changed, 12 insertions, 2 deletions
diff --git a/init b/init
index 30a4b32..8d7742b 100644
--- a/init
+++ b/init
@@ -20,6 +20,7 @@ for cmd in $CMDLINE; do
case "$cmd" in
[0123456Ss]) export runlevel="$cmd" ;;
single) export runlevel="S" ;; #some people use 'single'
+ *.*) ;; #do nothing if it contains a dot
*=*) export "${cmd}" ;;
*) export "${cmd}=y" ;;
esac
diff --git a/install/autodetect b/install/autodetect
index 8bcae91..a338d3b 100644
--- a/install/autodetect
+++ b/install/autodetect
@@ -6,8 +6,17 @@ install ()
#blegh, we'll let /tmp clean itself up
AUTODETECT="$(auto_modules -e '/scsi/' -e '/block' -e '/fusion/' \
-e '/usb/' -e '/ide/' -e '/ieee1394/' -e '/cdrom' \
- -e '/net/' -e '/pcmcia')
- $(cat /proc/filesystems | grep -v nodev) "
+ -e '/net/' -e '/pcmcia')"
+
+ #Filesystem detection, use sysfs instead of /proc
+ for blk in $(ls /sys/block/*/*/dev | cut -d/ -f5); do
+ eval $(/usr/lib/klibc/bin/fstype < /dev/${blk})
+ for mod in $(find "${MODULEDIR}" -type f -name "${FSTYPE}.ko"); do
+ if [ "x${mod}" != "x" ]; then
+ AUTODETECT="${AUTODETECT} ${mod}"
+ fi
+ done
+ done
if [ -e /sbin/mdadm ]; then
if [ $UID -eq 0 -o "$(groups | grep disk)" != "" ]; then