]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blob - src/install+setup/install/probehw.sh
6fbcb5cafa8e9fb2e393acb1c727638323fa0f54
[people/teissler/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 MODULE=$(basename $(find /lib/modules -name $(echo $MODULE | sed -e 's/[_-]/*/g')* ) | cut -d. -f1 | head -1 2>/dev/null)
11 [ "${MODULE}" == "" ] && continue
12
13 if grep -Eqe "^${MODULE} " /proc/modules; then
14 continue
15 fi
16 echo -n "Loading ${MODULE}"
17 modprobe ${MODULE} >/dev/null 2>&1
18 echo " --> ecode: $?"
19 done
20
21 sleep 10
22
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
56 exit 0