aboutsummaryrefslogtreecommitdiff
path: root/hwdetect
diff options
context:
space:
mode:
authorAndreas Radke <andyrtr@archlinux.org>2006-12-10 21:21:20 +0000
committerAndreas Radke <andyrtr@archlinux.org>2006-12-10 21:21:20 +0000
commit9a73b01bb6ea96b81b9ed887f8808b47b4fc5f19 (patch)
tree8f31ac94817e631f8174b8c3d77ad92eef222376 /hwdetect
parent3fcefcf13b87883216dd5331b2aed84db473de04 (diff)
downloadinitscripts-9a73b01bb6ea96b81b9ed887f8808b47b4fc5f19.tar.xz
cuurent x86_64 updated
Diffstat (limited to 'hwdetect')
-rwxr-xr-xhwdetect223
1 files changed, 59 insertions, 164 deletions
diff --git a/hwdetect b/hwdetect
index 1506904..64b3fa9 100755
--- a/hwdetect
+++ b/hwdetect
@@ -8,7 +8,6 @@ usage () {
echo ""
echo " Options:"
echo " --kernel_version= use kernel version (no autodetect)"
- echo " --ide-legacy use old ide modules instead of pata"
echo " --load-modules load all detected modules"
echo " --unload-modules unload all detected modules"
echo " --show-modules show all detected modules"
@@ -20,26 +19,20 @@ usage () {
echo " --show-usb show USB modules"
echo " --show-fw show FIREWIRE modules"
echo " --show-net show NETWORK modules"
- echo " --show-input show INPUT modules"
- echo " --show-irda show IRDA modules"
echo " --show-isdn show ISDN modules"
echo " --show-pcmcia show PCMCIA modules"
echo " --show-sound show SOUND modules"
echo " --show-video show VIDEO modules"
echo " --show-other show OTHER modules"
echo ""
- echo " For /etc/mkinitcpio.conf use:"
- echo " --hostcontroller show MODULES= for all hostcontrollers"
- echo " --vmware add BusLogic to MODULES for vmware"
- echo ""
- echo " --hooks show HOOKS="
- echo " --raid add raid to HOOKS="
- echo " --encrypt add encrypt to HOOKS="
- echo " --lvm2 add lvm2 to HOOKS="
+ echo " For /etc/mkinitrd.conf use:"
+ echo " --ide show detected HOSTCONTROLLER_IDE"
+ echo " --scsi show detected HOSTCONTROLLER_SCSI"
+ echo " --sata show detected HOSTCONTROLLER_SATA"
+ echo " --usb show detected HOSTCONTROLER_USB"
echo ""
echo " For /etc/rc.conf use:"
- echo " --net show network MODULES"
- echo " --modules show all detected MODULES"
+ echo " --modules show detected MODULES"
echo ""
exit 1
}
@@ -59,24 +52,9 @@ if [ "$KERNEL_VERSION" == "" ]; then
KERNEL_VERSION="`uname -r`"
fi
-# IDE/PATA switch
-[ "$(echo $* | grep '\-ide-legacy')" ] && IDE_LEGACY=1
-
-# raid switch
-[ "$(echo $* | grep '\-raid')" ] && RAID=1
-
-# encrypt switch
-[ "$(echo $* | grep '\-encrypt')" ] && ENCRYPT=1
-
-# lvm2 switch
-[ "$(echo $* | grep '\-lvm2')" ] && LVM2=1
-
-# vmware switch
-[ "$(echo $* | grep '\-vmware')" ] && VMWARE=1
-
# checking /sys
-if ! [ -d /sys/ ]; then
- echo "/sys/ is not present -- mount /sys first" >&2
+if ! [ -d /sys/devices ]; then
+ echo "/sys/devices is not present -- mount /sys first" >&2
exit 1
fi
@@ -86,7 +64,7 @@ fi
: >/tmp/moduleslist
# find pci aliases
-aliases=`find /sys/ -noleaf -name modalias -exec cat {} +`
+aliases=`find /sys/devices/ -noleaf -name modalias -exec cat {} +`
# check for empty aliases
if [ "$aliases" == "" ]; then
@@ -98,13 +76,13 @@ fi
modprobe -a --set-version=$KERNEL_VERSION --show-depends $aliases >> /tmp/modules-plain 2>/dev/null
# fix evdev detection
-#if [ "`echo $aliases | grep 'serio:ty06pr*[id]*[ex]*'`" ]; then
-# modprobe -i --set-version=$KERNEL_VERSION --show-depends evdev >> /tmp/modules-plain 2>/dev/null
-#fi
+if [ "`echo $aliases | grep 'serio:ty06pr*[id]*[ex]*'`" ]; then
+ modprobe -i --set-version=$KERNEL_VERSION --show-depends evdev >> /tmp/modules-plain 2>/dev/null
+fi
# fix Intel536ep detection
-#if [ "`echo $aliases | grep 'pci:v00008086d00001040sv000016BEsd00001040bc07sc80i00'`" ]; then
-# modprobe -i --set-version=$KERNEL_VERSION --show-depends Intel536 >> /tmp/modules-plain 2>/dev/null
-#fi
+if [ "`echo $aliases | grep 'pci:v00008086d00001040sv000016BEsd00001040bc07sc80i00'`" ]; then
+ modprobe -i --set-version=$KERNEL_VERSION --show-depends Intel536 >> /tmp/modules-plain 2>/dev/null
+fi
# find PNP devices like parports, soundcards etc.
# (workaround for rtc, pcspkr, irtty-sir and analog are included)
@@ -127,42 +105,37 @@ if [ "`find /sys/devices -noleaf -name 'id' | grep /pnp`" ]; then
fi
# IDE disks/cdroms/floppy/tape
-#if [ "`find /proc/ide -noleaf -name 'media'`" ]; then
-# for i in $(cat `find /proc/ide -noleaf -name "media"`); do
-# case $i in
-# cdrom) modprobe -i --set-version=$KERNEL_VERSION --show-depends ide-cd >> /tmp/modules-plain 2>/dev/null ;;
-# floppy) modprobe -i --set-version=$KERNEL_VERSION --show-depends ide-floppy >> /tmp/modules-plain 2>/dev/null ;;
-# disk) modprobe -i --set-version=$KERNEL_VERSION --show-depends ide-disk >> /tmp/modules-plain 2>/dev/null ;;
-# tape) modprobe -i --set-version=$KERNEL_VERSION --show-depends ide-tape >> /tmp/modules-plain 2>/dev/null ;;
-# esac
-# done
-#fi
+if [ "`find /proc/ide -noleaf -name 'media'`" ]; then
+ for i in $(cat `find /proc/ide -noleaf -name "media"`); do
+ case $i in
+ cdrom) modprobe -i --set-version=$KERNEL_VERSION --show-depends ide-cd >> /tmp/modules-plain 2>/dev/null ;;
+ floppy) modprobe -i --set-version=$KERNEL_VERSION --show-depends ide-floppy >> /tmp/modules-plain 2>/dev/null ;;
+ disk) modprobe -i --set-version=$KERNEL_VERSION --show-depends ide-disk >> /tmp/modules-plain 2>/dev/null ;;
+ tape) modprobe -i --set-version=$KERNEL_VERSION --show-depends ide-tape >> /tmp/modules-plain 2>/dev/null ;;
+ esac
+ done
+fi
# SCSI disks/cdroms/tapes/generic devices
if [ "`find /sys/devices -noleaf -name 'type'`" ]; then
for i in $(cat `find /sys/devices -noleaf -name "type"`); do
- case $i in (4|5) modprobe -i --set-version=$KERNEL_VERSION --show-depends sr-mod >> /tmp/modules-plain 2>/dev/null ;; esac
- case $i in (2|3|6|8|9) modprobe -i --set-version=$KERNEL_VERSION --show-depends sg >> /tmp/modules-plain 2>/dev/null ;; esac
+ case $i in (3|4|5) modprobe -i --set-version=$KERNEL_VERSION --show-depends sr-mod >> /tmp/modules-plain 2>/dev/null ;; esac
+ case $i in (2|3|5|6|8|9) modprobe -i --set-version=$KERNEL_VERSION --show-depends sg >> /tmp/modules-plain 2>/dev/null ;; esac
case $i in (0|7|14) modprobe -i --set-version=$KERNEL_VERSION --show-depends sd-mod >> /tmp/modules-plain 2>/dev/null ;; esac
case $i in (1) modprobe -i --set-version=$KERNEL_VERSION --show-depends st >> /tmp/modules-plain 2>/dev/null ;; esac
done
fi
-# add Buslogic for vmware
-if [ "$VMWARE" = "1" ]; then
- modprobe -i --set-version=$KERNEL_VERSION --show-depends BusLogic >> /tmp/modules-plain 2>/dev/null
-fi
-
# Firewire disks/cdroms/network
-#if [ "`grep 'ohci1394' /tmp/modules-plain`" ]; then
-# modprobe -i --set-version=$KERNEL_VERSION --show-depends sbp2 >> /tmp/modules-plain 2>/dev/null
-# modprobe -i --set-version=$KERNEL_VERSION --show-depends eth1394 >> /tmp/modules-plain 2>/dev/null
-#fi
+if [ "`grep 'ohci1394' /tmp/modules-plain`" ]; then
+ modprobe -i --set-version=$KERNEL_VERSION --show-depends sbp2 >> /tmp/modules-plain 2>/dev/null
+ modprobe -i --set-version=$KERNEL_VERSION --show-depends eth1394 >> /tmp/modules-plain 2>/dev/null
+fi
# Modem devices
-#case $i in (Intel536|Intel537|ltmodem|ltserial|slamr|slusb) \
-# grep "$i" /tmp/modules-plain && modprobe -i --set-version=$KERNEL_VERSION --show-depends ppp-generic >> /tmp/modules-plain 2>/dev/null ;; \
-# esac
+case $i in (Intel536|Intel537|ltmodem|ltserial|slamr|slusb) \
+ grep "$i" /tmp/modules-plain && modprobe -i --set-version=$KERNEL_VERSION --show-depends ppp-generic >> /tmp/modules-plain 2>/dev/null ;; \
+ esac
# Parport modules
if [ "`grep 'parport' /tmp/modules-plain`" ]; then
@@ -179,29 +152,22 @@ if [ "`grep 'snd-seq' /tmp/modules-plain`" ]; then
fi
# USB modules
-#if [ "`grep 'usb/' /tmp/modules-plain`" ]; then
-# modprobe -i --set-version=$KERNEL_VERSION --show-depends usbhid >> /tmp/modules-plain 2>/dev/null
-# modprobe -i --set-version=$KERNEL_VERSION --show-depends usb-storage >> /tmp/modules-plain 2>/dev/null
-# modprobe -i --set-version=$KERNEL_VERSION --show-depends usblp >> /tmp/modules-plain 2>/dev/null
-#fi
-
+if [ "`grep 'usb/' /tmp/modules-plain`" ]; then
+ modprobe -i --set-version=$KERNEL_VERSION --show-depends usbhid >> /tmp/modules-plain 2>/dev/null
+ modprobe -i --set-version=$KERNEL_VERSION --show-depends usb-storage >> /tmp/modules-plain 2>/dev/null
+ modprobe -i --set-version=$KERNEL_VERSION --show-depends usblp >> /tmp/modules-plain 2>/dev/null
+fi
sort -u /tmp/modules-plain >> /tmp/modules-stripped
# OTHER modules loading first for speed up!
-grep -v "ide/" /tmp/modules-stripped | grep -v "scsi/" | grep -v "ata/" | \
+grep -v "ide/" /tmp/modules-stripped | grep -v "scsi/" | grep -v "ata" | \
grep -v "net/" | grep -v "pcmcia/" | grep -v "usb/" | \
grep -v "ieee1394/" >> /tmp/modules-sorted
# make a correct order for the modules, internal devices have priority!
-# only use old ide modules if boot parameter 'ide-legacy' is given
-if [ "$IDE_LEGACY" = "1" ]; then
- grep "ide/" /tmp/modules-stripped >> /tmp/modules-sorted
-else
- grep "ata/pata" /tmp/modules-stripped >> /tmp/modules-sorted
- grep "ata/ata_generic" /tmp/modules-stripped >> /tmp/modules-sorted
-fi
-grep "scsi/" /tmp/modules-stripped | grep -v "sd_mod" | grep -v "sr_mod" | grep -v "/sg.ko" | grep -v "/st.ko" >> /tmp/modules-sorted
-grep "ata/" /tmp/modules-stripped| grep -v "pata" | grep -v "ata_generic" | grep -v "libata" >> /tmp/modules-sorted
+grep "ide/" /tmp/modules-stripped >> /tmp/modules-sorted
+grep "scsi/" /tmp/modules-stripped | grep -v "sata" | grep -v "libata" | grep -v "ata_piix" >> /tmp/modules-sorted
+grep "ata" /tmp/modules-stripped | grep -v "eata" >> /tmp/modules-sorted
grep "net/" /tmp/modules-stripped | grep -v "wireless/" | grep -v "usb/" >> /tmp/modules-sorted
grep "wireless/" /tmp/modules-stripped >> /tmp/modules-sorted
grep "pcmcia/" /tmp/modules-stripped >> /tmp/modules-sorted
@@ -213,17 +179,9 @@ grep "usbhid" /tmp/modules-stripped >> /tmp/modules-sorted
grep "usb/" /tmp/modules-stripped | grep -v "usb-storage" | grep -v "usbhid" | grep -v "usblp" >> /tmp/modules-sorted
grep "ieee1394/" /tmp/modules-stripped >> /tmp/modules-sorted
-# add scsi device modules at the end
-grep "sd_mod" /tmp/modules-stripped >> /tmp/modules-sorted
-grep "sr_mod" /tmp/modules-stripped >> /tmp/modules-sorted
-grep "/st.ko" /tmp/modules-stripped >> /tmp/modules-sorted
-grep "/sg.ko" /tmp/modules-stripped >> /tmp/modules-sorted
-
-
sed -ne "s#^insmod.*/\(.*\)\.ko.*#\1#p" /tmp/modules-sorted >> /tmp/moduleslist
# delete modules that are blacklisted
-BLACKLIST="${BLACKLIST} $(echo ${disablemodules} | sed 's|-|_|g' | sed 's|,| |g')"
for i in $BLACKLIST; do
[ "$i" ] || continue
sed -i -e "/^$i$/d" /tmp/moduleslist
@@ -268,13 +226,6 @@ showlist2() {
echo ""
}
-showlist3() {
- cat=$1 ; shift
- [ $# -gt 0 ] || return
- for i in $*; do echo -n "$i "; done
- echo ""
-}
-
# starting different actions
while [ $# -gt 0 ]; do
case $1 in
@@ -295,19 +246,16 @@ while [ $# -gt 0 ]; do
--show-modules)
showlist "AGP " `listmods agp/`
showlist "IDE " `listmods ide/`
- showlist "PATA " `listmods ata/pata` `listmods ata/ata_generic`
- showlist "SCSI " `listmods scsi/` `listmods message/fusion/` `listmods drivers/block/ nbd pktcdvd sx8 floppy`
- showlist "SATA " `listmods ata/ pata ata_generic` `listmods drivers/block/sx8`
- showlist "USB " `listmods usb/ usb/input`
+ showlist "SCSI " `listmods scsi/ sata ata_piix libata` `listmods message/fusion/` `listmods drivers/block/ nbd pktcdvd sx8`
+ showlist "SATA " `listmods ata eata` `listmods drivers/block/sx8`
+ showlist "USB " `listmods usb/`
showlist "FW " `listmods ieee1394/`
- showlist "NET " `listmods net/ irda/`
- showlist "INPUT " `listmods input/`
- showlist "IRDA " `listmods irda/`
+ showlist "NET " `listmods net/`
showlist "ISDN " `listmods isdn/`
showlist "PCMCIA " `listmods pcmcia/`
showlist "SOUND " `listmods sound/`
showlist "VIDEO " `listmods video/`
- showlist "OTHER " `listmods modules/ agp/ ide/ scsi/ ata/ usb/ ieee1394 net/ isdn/ input/ irda/ pcmcia/ sound/ video/ `
+ showlist "OTHER " `listmods modules/ agp/ ide/ scsi/ sata usb/ ieee1394 net/ isdn/ pcmcia/ sound/ video/`
;;
--show-modules-order)
@@ -316,75 +264,22 @@ while [ $# -gt 0 ]; do
--show-agp) showlist "AGP " `listmods agp/` ;;
--show-ide) showlist "IDE " `listmods ide/` ;;
- --show-pata) showlist "PATA " `listmods ata/pata` `listmods ata/ata_generic`;;
- --show-scsi) showlist "SCSI " `listmods scsi/` `listmods message/fusion/` `listmods drivers/block/ nbd pktcdvd sx8 floppy`;;
- --show-sata) showlist "SATA " `listmods ata/ pata ata_generic` `listmods drivers/block/sx8` ;;
- --show-usb) showlist "USB " `listmods usb/ usb/input` ;;
+ --show-scsi) showlist "SCSI " `listmods scsi/ sata ata_piix libata` `listmods message/fusion/` `listmods drivers/block/ nbd pktcdvd sx8`;;
+ --show-sata) showlist "SATA " `listmods ata eata` `listmods drivers/block/sx8` ;;
+ --show-usb) showlist "USB " `listmods usb/` ;;
--show-fw) showlist "FW " `listmods ieee1394/` ;;
- --show-net) showlist "NET " `listmods net/ irda/` ;;
- --show-input) showlist "INPUT " `listmods input/` ;;
- --show-irda) showlist "IRDA " `listmods irda/` ;;
+ --show-net) showlist "NET " `listmods net/` ;;
--show-isdn) showlist "ISDN " `listmods isdn/` ;;
--show-pcmcia) showlist "PCMCIA " `listmods pcmcia/` ;;
--show-sound) showlist "SOUND " `listmods sound/` ;;
--show-video) showlist "VIDEO " `listmods video/` ;;
- --show-other) showlist "OTHER " `listmods .ko agp/ ide/ scsi/ ata/ usb/ ieee1394 net/ isdn/ input/ irda/ pcmcia/ sound/ video` ;;
- --hostcontroller) showlist2 "MODULES" \"`listmods ide/pci` `listmods ata/pata` `listmods ata/ata_generic` `listmods scsi/ /sg.ko /st.ko sr_mod sd_mod` `listmods message/fusion/` `listmods drivers/block/ nbd pktcdvd sx8 floppy` `listmods ata/ pata ata_generic` `listmods drivers/block/sx8`\" | sed -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g'
- ;;
- --net) if [ "$(showlist2 "MODULES" \(`listmods drivers/net/ irda ppp_generic slhc` `listmods drivers/usb/net/`\) | sed -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g' | grep '8139cp')" ] ; then
- if [ "$(dmesg | grep '"8139too"')" ]; then
- showlist2 "MODULES" \(`listmods drivers/net/ irda ppp_generic slhc` `listmods drivers/usb/net/`\) | sed -e 's/8139cp//g' -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g'
- else
- showlist2 "MODULES" \(`listmods drivers/net/ irda ppp_generic slhc` `listmods drivers/usb/net/`\) | sed -e 's/8139too//g' -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g'
- fi
- else
- showlist2 "MODULES" \(`listmods drivers/net/ irda ppp_generic slhc` `listmods drivers/usb/net/`\) | sed -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g'
- fi
- ;;
- --modules) showlist2 "MODULES" \(`listmods modules/`\) | sed -e 's/(\ /(/g' -e 's/\ )/)/g' -e 's/\ \ /\ /g'
- ;;
- --hooks)
- START_HOOKS="base udev autodetect ide pata scsi sata raid usbinput keymap encrypt lvm2 filesystems"
- # remove the ones that don't exist on the system
- for i in ${START_HOOKS}; do
- if ! [ -e "/lib/initcpio/install/$i" ]; then
- START_HOOKS=$(echo $START_HOOKS | sed -e "s/${i}//g")
- fi
- done
- # ide/pata check
- if [ "${IDE_LEGACY}" = "1" ]; then
- START_HOOKS=$(echo $START_HOOKS | sed -e "s/pata//g")
- else
- START_HOOKS=$(echo $START_HOOKS | sed -e "s/ide//g")
- fi
- # usbinput, check for usbhid
- if ! [ "$(cat /proc/modules | grep usbhid)" ]; then
- START_HOOKS=$(echo $START_HOOKS | sed -e "s/usbinput//g")
- fi
- # keymap, check rc.conf for KEYMAP="us"
- if [ "$(grep '^KEYMAP="us"' /etc/rc.conf)" ]; then
- START_HOOKS=$(echo $START_HOOKS | sed -e "s/keymap//g")
- fi
- ### TODO raid, check for presence of md devices in /dev
- #if ! [ "$(ls /dev/md* > /dev/null 2>&1 )" ]; then
- # START_HOOKS=$(echo $START_HOOKS | sed -e "s/raid//g")
- #fi
- if ! [ "$RAID" = "1" ] ; then
- START_HOOKS=$(echo $START_HOOKS | sed -e "s/raid//g")
- fi
- ### TODO lvm2, encrypt check
- # encrypt, check for presence of mapper/root
- #if ! [ "$(ls /dev/mapper/root > /dev/null 2>&1 )" ]; then
- # START_HOOKS=$(echo $START_HOOKS | sed -e "s/encrypt//g")
- #fi
- if ! [ "$ENCRYPT" = "1" ] ; then
- START_HOOKS=$(echo $START_HOOKS | sed -e "s/encrypt//g")
- fi
- if ! [ "$LVM2" = "1" ]; then
- START_HOOKS=$(echo $START_HOOKS | sed -e "s/lvm2//g")
- fi
- echo "HOOKS=\"$START_HOOKS\"" | sed -e 's/"\ /"/g' -e 's/\ "/"/g' -e 's/\ \ /\ /g'
- ;;
+ --show-other) showlist "OTHER " `listmods .ko agp/ ide/ scsi/ sata usb/ ieee1394 net/ isdn/ pcmcia/ sound/ video` ;;
+
+ --ide) showlist "HOSTCONTROLLER_IDE" `listmods ide/pci` ;;
+ --scsi) showlist "HOSTCONTROLLER_SCSI" `listmods scsi/ sata ata_piix libata` `listmods message/fusion/` `listmods drivers/block/ nbd pktcdvd sx8`;;
+ --sata) showlist "HOSTCONTROLLER_SATA" `listmods ata eata libata` `listmods drivers/block/sx8` ;;
+ --usb) showlist "HOSTCONTROLLER_USB" `listmods usb/host` "" ;;
+ --modules) showlist2 "MODULES" \(`listmods modules/`\)
esac
shift
done