script/ethercatctl.in
changeset 2589 2b9c78543663
parent 2190 3fe304fea395
equal deleted inserted replaced
2415:af21f0bdc7c9 2589:2b9c78543663
    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