]> rtime.felk.cvut.cz Git - socketcan-devel.git/blob - etc/can_if
5c5c7bd901f31f06e4673ffdb4516ed02caeeb22
[socketcan-devel.git] / etc / can_if
1 #!/bin/sh
2
3 # Low Level CAN Framework
4 # Copyright (c) 2005 Volkswagen Group Electronic Research
5 #
6 # $Id$
7 #
8 # Simple script to start CAN and VCAN interfaces
9 #
10 # Exit if ifconfig is not installed
11 test -x /sbin/ifconfig || exit 0
12
13 # On some systems the automatic module loading via
14 # /etc/modules.conf is quite slow. To ensure the immediately 
15 # availability of specific modules you can define critical
16 # modules in the PROBE variable. E.g. PROBE="can-tp20"
17
18 # Exit if modprobe is not installed
19 test -x /sbin/modprobe || exit 0
20
21 CAN_IF="can0 can1"
22 VCAN_IF="vcan0 vcan1 vcan2 vcan3"
23 PROBE="vcan"
24 CREATE_VCANS=4
25
26 if [ $CREATE_VCANS -gt 0 ] ; then
27         # Exit if vcan tool is not installed
28         test -x /sbin/vcan || exit 0
29 fi
30
31 case "$1" in
32     start|force-reload)
33         if [ -n "$PROBE" ] ; then
34             echo -n "Extra probing CAN modules:"
35             for MODULE in $PROBE; do
36                 /sbin/modprobe $MODULE
37                 echo -n " "$MODULE
38             done
39             echo "."
40         fi
41         if [ $CREATE_VCANS -gt 0 ] ; then
42             echo -n "Creating "$CREATE_VCANS" virtual CAN interfaces: "
43             for IF in `seq 1 $CREATE_VCANS`; do
44                 /sbin/vcan create
45                 echo -n "."
46             done
47             echo " done."
48         fi
49         if [ -n "$CAN_IF" ] ; then
50             echo -n "Enabling CAN interfaces:"
51             for IF in $CAN_IF; do
52                 /sbin/ifconfig $IF up
53                 echo -n " "$IF
54             done
55             echo "."
56         fi
57         if [ -n "$VCAN_IF" ] ; then
58             echo -n "Enabling virtual CAN interfaces:"
59             for IF in $VCAN_IF; do
60                 /sbin/ifconfig $IF up
61                 echo -n " "$IF
62             done
63             echo "."
64         fi
65         ;;
66     restart|reload)
67         if [ -n "$CAN_IF" ] ; then
68             echo -n "Restarting CAN interfaces:"
69             for IF in $CAN_IF; do
70                 /sbin/ifconfig $IF down
71                 /sbin/ifconfig $IF up
72                 echo -n " "$IF
73             done
74             echo "."
75         fi
76         if [ -n "$VCAN_IF" ] ; then
77             echo -n "Restarting virtual CAN interfaces:"
78             for IF in $VCAN_IF; do
79                 /sbin/ifconfig $IF down
80                 /sbin/ifconfig $IF up
81                 echo -n " "$IF
82             done
83             echo "."
84         fi
85         ;;
86     stop)
87         if [ -n "$CAN_IF" ] ; then
88             echo -n "Shutting down CAN interfaces:"
89             for IF in $CAN_IF; do
90                 /sbin/ifconfig $IF down
91                 echo -n " "$IF
92             done
93             echo "."
94         fi
95         if [ -n "$VCAN_IF" ] ; then
96             echo -n "Shutting down virtual CAN interfaces:"
97             for IF in $VCAN_IF; do
98                 /sbin/ifconfig $IF down
99                 echo -n " "$IF
100             done
101             echo "."
102         fi
103         ;;
104     *)
105         echo "Usage: /etc/init.d/can_if {start|stop|restart|reload|force-reload}"
106         exit 1
107 esac
108
109 exit 0