#!/bin/sh # # Copyright (c) GPC mbH, Lengenfeld, Germany # Author: Andrae Behrens # date: 01/10/2010 # # init script for ProfiBus MultiSlave card SST-PBMS-PCI # . /etc/rc.status rc_reset MODDIR="./" DEVICE="pbms" DEVCNT="pbms_card_count" MODULE=${MODDIR}${DEVICE}".ko" # Check for missing binary if [ ! -r ${MODULE} ]; then echo -n >&2 "driver file ${MODULE} is not installed. " rc_status -s exit 5 fi case "$1" in start) echo -n "Staring driver pbms for SST-PBMS-PCI " /sbin/insmod ${MODULE} 2>/dev/null || rc_failed 1 rm -f /dev/${DEVICE}[0-9]* major=`cat /proc/devices | awk "\\$2==\"${DEVICE}\" {print \\$1}"` if [ "$major" == "" ]; then echo -n >&2 "${DEVICE} not loaded" rc_status -s exit 6 fi minor=0 count=`cat /proc/${DEVICE} | awk "\\$1==\"${DEVCNT}\" {print \\$2}"` if [ "$count" -eq 0 ]; then echo -n >&2 "${DEVICE} could not found any card" elif [ "$count" -eq 1 ]; then echo -n "with 1 card " else echo -n "with $count cards " fi while [ $minor -lt $count ] do mknod /dev/${DEVICE}${minor} c ${major} ${minor} chmod -f ugo+rw /dev/${DEVICE}${minor} minor=`expr $minor + 1` done rc_status -v ;; stop) echo -n "Shutting down driver pbms for SST-PBMS-PCI " /sbin/rmmod ${DEVICE} 2>/dev/null || rc_failed 1 rc_status -v ;; restart) $0 stop $0 start rc_status ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac