summaryrefslogtreecommitdiffstats
path: root/hooks/modload
blob: 6cf403704ab4d45bfd369562a1a28996ec5a0b24 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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"
}