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