summaryrefslogtreecommitdiffstats
path: root/hooks/sata
diff options
context:
space:
mode:
authorAaron Griffin <aaron@archlinux.org>2006-04-22 01:00:28 +0200
committerAaron Griffin <aaron@archlinux.org>2006-04-22 01:00:28 +0200
commitea20a441f8fecc9fa84e0e1f12c4b71bf436f872 (patch)
tree1f2ff1cec1b0629f4ba5639729c9438bcdaf7d44 /hooks/sata
parentacc783c8af5514083e542fe7d91be6a1c5920ad7 (diff)
downloadmkinitcpio-ea20a441f8fecc9fa84e0e1f12c4b71bf436f872.tar.gz
mkinitcpio-ea20a441f8fecc9fa84e0e1f12c4b71bf436f872.tar.xz
Hook updates and changes...
git-svn-id: http://projects.archlinux.org/svn/initramfs/mkinitcpio@7 880c04e9-e011-0410-abf7-b926e227c9cd
Diffstat (limited to 'hooks/sata')
-rw-r--r--hooks/sata34
1 files changed, 34 insertions, 0 deletions
diff --git a/hooks/sata b/hooks/sata
new file mode 100644
index 0000000..fb6ed90
--- /dev/null
+++ b/hooks/sata
@@ -0,0 +1,34 @@
+# vim: set ft=sh:
+run_hook ()
+{
+ 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
+}