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