#!/bin/bash
#
# chkconfig: 345 96 35
# description: ipmi is used to load and unload the IMB driver."
#


#remove driver function to remove imb driver
rem_drv()
{
	if [ "`/sbin/lsmod | grep imb`" != "" ]
        then
           /sbin/rmmod imb

           if [ -c /dev/imb ] 
           then
              rm -f /dev/imb
           fi
        fi
}

#add driver function to add imb driver
add_drv()
{
	if [ "`/sbin/lsmod | grep imb`" != "" ]
        then
           rem_drv
        fi
/sbin/insmod /usr/local/ism/driver/imb 2>&1 >>/dev/null

#        /sbin/insmod /usr/local/ism/driver/imb 2>&1 | tee /usr/local/ism/driver/errlog
	if [ "`/sbin/lsmod | grep imb`" = "" ]
        then
           cat /usr/local/ism/driver/errlog >> /var/log/messages 
           rm /usr/local/ism/driver/errlog
           echo "IPMI: IMB driver cannot start, possibly due to kernel version mismatch."
           exit 1
        fi
        maj=`cat /proc/devices | awk '/imb/{print $1}'`
            
        if [ -c /dev/imb ] 
        then
           rm -f /dev/imb
           /bin/mknod /dev/imb c $maj 0
        else
           /bin/mknod /dev/imb c $maj 0
        fi
}



case "$1" in 
"start")
        add_drv
	;;
"stop")
        rem_drv
	;;
*)
	echo ipmi:Unknown Argument $arg
	echo Usage:ipmi [start/stop]
	exit 1
	;;
esac
