]>
Commit | Line | Data |
---|---|---|
72d80898 MT |
1 | #!/bin/sh |
2 | ||
ee78a5ef MT |
3 | echo "Detecting Hardware..." |
4 | for MODULE in $(kudzu -qps -t 30 | grep driver: | cut -d ' ' -f 2 | sort | uniq); do | |
72d80898 MT |
5 | if [ "${MODULE}" = "unknown" ] || \ |
6 | [ "${MODULE}" = "ignore" ]; then | |
7 | continue | |
8 | fi | |
9 | if grep -Eqe "^${MODULE} " /proc/modules; then | |
10 | continue | |
11 | fi | |
ee78a5ef MT |
12 | echo -n "Loading ${MODULE}" |
13 | modprobe ${MODULE} >/dev/null 2>&1 | |
14 | echo " --> ecode: $?" | |
72d80898 MT |
15 | done |
16 | ||
51f3b7f5 MT |
17 | sleep 10 |
18 | ||
ee78a5ef MT |
19 | if [ $# -eq 0 ]; then |
20 | exit 0 | |
21 | fi | |
22 | ||
23 | ## If the autodetection fails we will try to load every module... | |
24 | ## Do this only when we want... | |
25 | ||
26 | for i in a b c d e f g; do | |
27 | if [ ! -e /dev/sd$i ]; then | |
28 | DEVICE="/dev/sd$i" | |
29 | echo "Checking for: $DEVICE" | |
30 | break | |
31 | fi | |
32 | done | |
33 | ||
34 | for MODULE in $(ls /lib/modules/*/kernel/drivers/scsi); do | |
35 | MODULE=`basename $MODULE | awk -F. '{ print $1 }'` | |
36 | ||
37 | echo -n "Probing for $MODULE" | |
38 | modprobe $MODULE >/dev/null 2>&1 | |
39 | RETVAL=$? | |
40 | echo " --> ecode: $RETVAL" | |
41 | if [ "$RETVAL" -eq "0" ]; then | |
42 | sleep 3 | |
43 | if [ -e "$DEVICE" ]; then | |
44 | break | |
45 | fi | |
46 | fi | |
47 | ||
48 | done | |
49 | ||
50 | sleep 5 | |
51 | ||
72d80898 | 52 | exit 0 |