|
1 #! /bin/sh |
|
2 # You can use this script to install the device driver |
|
3 # with automatically assigned major number. |
|
4 |
|
5 # Please modify these lines according to your needs |
|
6 PATH=/sbin:/bin:/usr/bin |
|
7 module="me8100" |
|
8 device="me8100" |
|
9 group="users" |
|
10 mode="664" |
|
11 |
|
12 |
|
13 ### I hope you don't have to modify anything below this line ### |
|
14 rc_done="\033[71G\033[32mdone\033[m" |
|
15 rc_failed="\033[71G\033[31m\033[1mfailed\033[m" |
|
16 |
|
17 return=$rc_done |
|
18 |
|
19 case "$1" in |
|
20 start) |
|
21 echo -n "Starting me8100 driver " |
|
22 /sbin/insmod -f $module.o || return=$rc_failed |
|
23 rm -f /dev/${device} |
|
24 rm -f /dev/${device}_[0-3] |
|
25 major=`cat /proc/devices | awk "\\$2==\"$module\" {print \\$1}"` |
|
26 |
|
27 echo -n "with major number $major" |
|
28 |
|
29 # Make the device nodes in the dev. file system for 4 boards |
|
30 mknod /dev/${device}_0 c $major 0 |
|
31 mknod /dev/${device}_1 c $major 1 |
|
32 mknod /dev/${device}_2 c $major 2 |
|
33 mknod /dev/${device}_3 c $major 3 |
|
34 |
|
35 # Set a default link to the first dev |
|
36 ln -s /dev/${device}_0 /dev/${device} |
|
37 |
|
38 # Give appropriate group permissions |
|
39 chgrp $group /dev/${device}_? |
|
40 chmod $mode /dev/${device}_? |
|
41 |
|
42 ;; |
|
43 stop) |
|
44 echo -n "Removing me8100 driver " |
|
45 /sbin/rmmod $module |
|
46 |
|
47 # Remove the default link |
|
48 rm -f /dev/${device} |
|
49 # Remove the nodes |
|
50 rm -f /dev/${device}_[0-3] |
|
51 |
|
52 ;; |
|
53 restart) |
|
54 ## If first returns OK call the second, if first or |
|
55 ## second command fails, set echo return value. |
|
56 $0 stop && $0 start || return=$rc_failed |
|
57 ;; |
|
58 status) |
|
59 echo -e "Enty in /proc/modules is:" |
|
60 cat /proc/modules | grep $module |
|
61 echo -e "Entry in /proc/devices is:" |
|
62 cat /proc/devices | grep $module |
|
63 echo -e "Entry in /proc/interrupts is:" |
|
64 cat /proc/interrupts | grep $module |
|
65 |
|
66 ;; |
|
67 *) |
|
68 echo "Usage: $0 {start|stop|restart|status}" |
|
69 exit 1 |
|
70 ;; |
|
71 esac |
|
72 |
|
73 # Inform the caller not only verbosely and set an exit status. |
|
74 echo -e "$return" |
|
75 test "$return" = "$rc_done" || exit 1 |
|
76 exit 0 |
|
77 |
|
78 |
|
79 |