equal
deleted
inserted
replaced
31 # |
31 # |
32 # vim: expandtab sw=4 tw=78 |
32 # vim: expandtab sw=4 tw=78 |
33 # |
33 # |
34 #------------------------------------------------------------------------------ |
34 #------------------------------------------------------------------------------ |
35 |
35 |
|
36 LSMOD=/sbin/lsmod |
36 MODPROBE=/sbin/modprobe |
37 MODPROBE=/sbin/modprobe |
37 RMMOD=/sbin/rmmod |
38 RMMOD=/sbin/rmmod |
38 MODINFO=/sbin/modinfo |
39 MODINFO=/sbin/modinfo |
39 |
40 |
40 ETHERCAT=@prefix@/bin/ethercat |
41 ETHERCAT=@prefix@/bin/ethercat |
105 ECMODULE=ec_${MODULE} |
106 ECMODULE=ec_${MODULE} |
106 if ! ${MODINFO} ${ECMODULE} > /dev/null; then |
107 if ! ${MODINFO} ${ECMODULE} > /dev/null; then |
107 continue # ec_* module not found |
108 continue # ec_* module not found |
108 fi |
109 fi |
109 |
110 |
110 if [ ${MODULE} != "generic" ]; then |
111 if [ ${MODULE} != "generic" -a ${MODULE} != "ccat" ]; then |
111 # try to unload standard module |
112 # try to unload standard module |
112 if lsmod | grep "^${MODULE} " > /dev/null; then |
113 if ${LSMOD} | grep "^${MODULE} " > /dev/null; then |
113 if ! ${RMMOD} ${MODULE}; then |
114 if ! ${RMMOD} ${MODULE}; then |
114 ${RMMOD} ${LOADED_MODULES} |
115 ${RMMOD} ${LOADED_MODULES} |
115 exit 1 |
116 exit 1 |
116 fi |
117 fi |
117 fi |
118 fi |
118 fi |
119 fi |
119 |
120 |
120 if ! ${MODPROBE} ${MODPROBE_FLAGS} ${ECMODULE}; then |
121 if ! ${MODPROBE} ${MODPROBE_FLAGS} ${ECMODULE}; then |
121 if [ ${MODULE} != "generic" ]; then |
122 if [ ${MODULE} != "generic" -a ${MODULE} != "ccat" ]; then |
122 ${MODPROBE} ${MODPROBE_FLAGS} ${MODULE} # try to restore |
123 ${MODPROBE} ${MODPROBE_FLAGS} ${MODULE} # try to restore |
123 fi |
124 fi |
124 ${RMMOD} ${LOADED_MODULES} |
125 ${RMMOD} ${LOADED_MODULES} |
125 exit 1 |
126 exit 1 |
126 fi |
127 fi |
135 |
136 |
136 stop) |
137 stop) |
137 # unload EtherCAT device modules |
138 # unload EtherCAT device modules |
138 for MODULE in ${DEVICE_MODULES} master; do |
139 for MODULE in ${DEVICE_MODULES} master; do |
139 ECMODULE=ec_${MODULE} |
140 ECMODULE=ec_${MODULE} |
140 if ! lsmod | grep -q "^${ECMODULE} "; then |
141 if ! ${LSMOD} | grep -q "^${ECMODULE} "; then |
141 continue # ec_* module not loaded |
142 continue # ec_* module not loaded |
142 fi |
143 fi |
143 if ! ${RMMOD} ${ECMODULE}; then |
144 if ! ${RMMOD} ${ECMODULE}; then |
144 exit 1 |
145 exit 1 |
145 fi; |
146 fi; |
147 |
148 |
148 sleep 1 |
149 sleep 1 |
149 |
150 |
150 # load standard modules again |
151 # load standard modules again |
151 for MODULE in ${DEVICE_MODULES}; do |
152 for MODULE in ${DEVICE_MODULES}; do |
152 if [ ${MODULE} == "generic" ]; then |
153 if [ ${MODULE} == "generic" -o ${MODULE} == "ccat" ]; then |
153 continue |
154 continue |
154 fi |
155 fi |
155 ${MODPROBE} ${MODPROBE_FLAGS} ${MODULE} |
156 ${MODPROBE} ${MODPROBE_FLAGS} ${MODULE} |
156 done |
157 done |
157 |
158 |