]>
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 | ||
ee78a5ef MT |
17 | if [ $# -eq 0 ]; then |
18 | exit 0 | |
19 | fi | |
20 | ||
21 | ## If the autodetection fails we will try to load every module... | |
22 | ## Do this only when we want... | |
23 | ||
24 | for i in a b c d e f g; do | |
25 | if [ ! -e /dev/sd$i ]; then | |
26 | DEVICE="/dev/sd$i" | |
27 | echo "Checking for: $DEVICE" | |
28 | break | |
29 | fi | |
30 | done | |
31 | ||
32 | for MODULE in $(ls /lib/modules/*/kernel/drivers/scsi); do | |
33 | MODULE=`basename $MODULE | awk -F. '{ print $1 }'` | |
34 | ||
35 | echo -n "Probing for $MODULE" | |
36 | modprobe $MODULE >/dev/null 2>&1 | |
37 | RETVAL=$? | |
38 | echo " --> ecode: $RETVAL" | |
39 | if [ "$RETVAL" -eq "0" ]; then | |
40 | sleep 3 | |
41 | if [ -e "$DEVICE" ]; then | |
42 | break | |
43 | fi | |
44 | fi | |
45 | ||
46 | done | |
47 | ||
48 | sleep 5 | |
49 | ||
72d80898 | 50 | exit 0 |