]>
Commit | Line | Data |
---|---|---|
35043b20 | 1 | #!/bin/sh |
35043b20 ER |
2 | # geninitrd mod: scsi |
3 | ||
4 | # it should be safe to remove scsi_mod from here, but I'm not sure... | |
5 | PRESCSIMODS="-scsi_mod unknown -sd_mod" | |
6 | ||
7 | # ??? | |
8 | ide_only_root=${ide_only_root:-no} | |
9 | ||
10 | # allow forcing loading IDE modules, likely from sysconfig/geninitrd | |
11 | ADDIDE=${ADDIDE:-no} | |
12 | ||
13 | # return true if node is scsi device | |
14 | # @param string $node device node to be examined | |
15 | # @access public | |
16 | is_scsi() { | |
17 | local node="$1" | |
18 | if [ ! -e "$node" ]; then | |
19 | warn "is_scsi(): node $node doesn't exist!" | |
20 | return 1 | |
21 | fi | |
22 | ||
23 | # TODO: more sophisticated check, not just pathname check | |
69bbedbb | 24 | if is_yes "$(echo "$node" | awk '/^\/dev\/(sd|scsi|vd)/ { print "yes"; }')"; then |
35043b20 ER |
25 | return 0 |
26 | fi | |
27 | ||
28 | return 1 | |
29 | } | |
30 | ||
31 | # find modules for $devpath | |
32 | # @param $devpath device to be examined | |
33 | # @access public | |
34 | find_modules_scsi() { | |
35 | local devpath=$1 | |
36 | ||
37 | local n | |
38 | for n in $PRESCSIMODS; do | |
39 | if [ "X$n" = "Xunknown" ]; then | |
02ba8ab7 | 40 | verbose "Finding SCSI modules using scsi_hostadapter" |
99e7251e | 41 | local mod scsimodules=$(modprobe_conf | awk '/scsi_hostadapter/ { print $3 }') |
35043b20 ER |
42 | for mod in $scsimodules; do |
43 | # for now allow scsi modules to come from anywhere. There are some | |
44 | # RAID controllers with drivers in block | |
45 | find_module "$mod" | |
46 | done | |
47 | else | |
48 | find_module "$n" | |
49 | fi | |
50 | done | |
51 | find_module "-scsi_wait_scan" | |
52 | } | |
53 | ||
54 | ||
55 | # generate initrd fragment for ide device init | |
56 | # @access public | |
57 | initrd_gen_scsi() { | |
58 | # nothing to do here | |
59 | return 0 | |
60 | } |