summaryrefslogtreecommitdiffstats
path: root/hooks/modload
diff options
context:
space:
mode:
authorAaron Griffin <aaron@archlinux.org>2006-05-03 04:02:53 +0200
committerAaron Griffin <aaron@archlinux.org>2006-05-03 04:02:53 +0200
commitad1050964eabbbc00547e8c6c91d8a7c3f13598f (patch)
tree79962456d502bbbb8a072568f31bd18e99b85099 /hooks/modload
parent66f28ea341f293cbddd30242f9ea03673d4674d2 (diff)
downloadmkinitcpio-ad1050964eabbbc00547e8c6c91d8a7c3f13598f.tar.gz
mkinitcpio-ad1050964eabbbc00547e8c6c91d8a7c3f13598f.tar.xz
Merged autodetect changes from tpowa.
Removed older subsystem specific scripts, replaced then with 'modload' just to keep the option in place. git-svn-id: http://projects.archlinux.org/svn/initramfs/mkinitcpio@43 880c04e9-e011-0410-abf7-b926e227c9cd
Diffstat (limited to 'hooks/modload')
-rw-r--r--hooks/modload48
1 files changed, 48 insertions, 0 deletions
diff --git a/hooks/modload b/hooks/modload
new file mode 100644
index 0000000..6cf4037
--- /dev/null
+++ b/hooks/modload
@@ -0,0 +1,48 @@
+# vim:set ft=sh:
+run_hook ()
+{
+ msg ":: Begin manual module load"
+ if [ -e "/sys/bus/pci/" ]; then
+ msg -n "Loading pci bus modules..."
+ /bin/modprobe -a -q $(/bin/cat /sys/bus/pci/devices/*/modalias) >/dev/null 2>&1
+ msg "done."
+ fi
+
+ if [ -e "/sys/bus/ide/devices/" ]; then
+ msg -n "Loading ide modules..."
+ /bin/modprobe -q -a $(/bin/cat /sys/bus/ide/devices/*/modalias) >/dev/null 2>&1
+ msg "done"
+ fi
+
+ if [ -e "/sys/bus/scsi/devices/" ]; then
+ msg -n "Loading scsi modules..."
+ for d in /sys/bus/scsi/devices/*; do
+ if [ -e "${d}/type" ]; then
+ read m < "${d}/type"
+ case "$m" in
+ 0) /bin/modprobe -q sd_mod 2>&1 >/dev/null ;;
+ # this below is take from the Arch udev rules
+ 1) read vendor < "${d}/vendor"
+ if [ "${vendor}" = "Onstream" ]; then
+ read model < "${d}/model"
+ case "$model" in
+ ADR*) /bin/modprobe -q st >/dev/null 2>&1;;
+ *) /bin/modprobe -q osst >/dev/null 2>&1;;
+ esac
+ else
+ /bin/modprobe -q st >/dev/null 2>&1
+ fi
+ ;;
+ 2|3) /bin/modprobe -q sg >/dev/null 2>&1;;
+ 4|5) /bin/modprobe -q sr_mod >/dev/null 2>&1;;
+ 6) /bin/modprobe -q sg >/dev/null 2>&1;;
+ 7) /bin/modprobe -q sd_mod >/dev/null 2>&1;;
+ 8|9) /bin/modprobe -q sg >/dev/null 2>&1;;
+ 14) /bin/modprobe -q sd_mod >/dev/null 2>&1;;
+ esac
+ fi
+ done
+ msg "done."
+ fi
+ msg ":: End manual module load"
+}