fp@1732: #!/bin/sh fp@1732: fp@1732: #------------------------------------------------------------------------------ fp@1732: # fp@1732: # MSR Init Script fp@1732: # fp@1732: # $Id$ fp@1732: # fp@1732: #------------------------------------------------------------------------------ fp@1732: fp@1732: ### BEGIN INIT INFO fp@1732: # Provides: msr fp@1732: # Required-Start: $local_fs $syslog $network fp@1732: # Should-Start: $time ntp ethercat fp@1732: # Required-Stop: $local_fs $syslog $network fp@1732: # Should-Stop: $time ntp ethercat fp@1732: # Default-Start: 3 5 fp@1732: # Default-Stop: 0 1 2 6 fp@1732: # Short-Description: MSR module fp@1732: # Description: fp@1732: ### END INIT INFO fp@1732: fp@1732: #------------------------------------------------------------------------------ fp@1732: fp@1732: # fp@1732: fp@1732: NAME="MSR EtherCAT sample" fp@1732: BASE=/opt/etherlab fp@1732: MSR_SERVER=$BASE/bin/msrserv.pl fp@1732: MODULE=ec_msr_sample fp@1732: RTAI_PATH=/usr/realtime fp@1732: RTAI_MODULES="hal up" # sem math fp@1732: DEVICE=msr fp@1732: DEVMASK=664 fp@1732: GROUP=users fp@1732: fp@1732: # fp@1732: fp@1732: #------------------------------------------------------------------------------ fp@1732: fp@1732: . /etc/rc.status fp@1732: rc_reset fp@1732: fp@1732: #------------------------------------------------------------------------------ fp@1732: fp@1732: case "$1" in fp@1732: start) fp@1732: echo -n Starting $NAME" " fp@1732: fp@1732: # Insert RTAI modules fp@1732: for mod in $RTAI_MODULES; do fp@1732: if ! lsmod | grep -q "^rtai_$mod"; then fp@1732: if ! insmod $RTAI_PATH/modules/rtai_$mod.ko; then fp@1732: /bin/false fp@1732: rc_status -v fp@1732: rc_exit fp@1732: fi fp@1732: fi fp@1732: done fp@1732: fp@1732: # Insert realtime module fp@1732: if ! modprobe $MODULE; then fp@1732: /bin/false fp@1732: rc_status -v fp@1732: rc_exit fp@1732: fi fp@1732: fp@1732: #sleep 2 fp@1732: fp@1732: # Create MSR device fp@1732: MAJOR=`cat /proc/devices | awk "\\$2==\"$DEVICE\" {print \\$1}"` fp@1732: rm -f /dev/${DEVICE} fp@1732: mknod /dev/${DEVICE} c $MAJOR 0 fp@1732: chgrp $GROUP /dev/${DEVICE} fp@1732: chmod $DEVMASK /dev/${DEVICE} fp@1732: fp@1732: #sleep 1 fp@1732: fp@1732: # Start MSR-Server fp@1732: startproc $MSR_SERVER 1>/dev/null 2>/dev/null fp@1732: rc_status -v fp@1732: ;; fp@1732: fp@1732: stop) fp@1732: echo -n Shutting down $NAME" " fp@1732: fp@1732: if ! killproc $MSR_SERVER; then fp@1732: /bin/false fp@1732: rc_status -v fp@1732: rc_exit fp@1732: fi fp@1732: fp@1732: if ! /sbin/rmmod $MODULE; then fp@1732: /bin/false fp@1732: rc_status -v fp@1732: rc_exit fp@1732: fi fp@1732: fp@1732: # Remove stale nodes fp@1732: rm -f /dev/${DEVICE} /dev/${DEVICE}0 fp@1732: fp@1732: rc_status -v fp@1732: ;; fp@1732: fp@1732: restart) fp@1732: $0 stop || exit 1 fp@1732: sleep 1 fp@1732: $0 start fp@1732: fp@1732: rc_status fp@1732: ;; fp@1732: fp@1732: status) fp@1732: echo -n "Checking for MSR module: " fp@1732: /sbin/lsmod | grep -q "^$MODULE" fp@1732: rc_status -v fp@1732: fp@1732: echo -n "Checking for MSR server: " fp@1732: checkproc $MSR_SERVER fp@1732: rc_status -v fp@1732: ;; fp@1732: fp@1732: *) fp@1732: echo "Usage: $0 {start|stop|status|restart}" fp@1732: exit 1 fp@1732: ;; fp@1732: esac fp@1732: fp@1732: rc_exit