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