Sophie

Sophie

distrib > Mandriva > current > i586 > media > non-free-backports-src > by-pkgid > e9745984212caabb616d729563920c27 > files > 3

nvidia-cuda-toolkit-3.2.16-1mdv2010.1.src.rpm

#!/bin/sh
# ---------------------------------------------------------------
# chkconfig: 345 80 20
# description: Startup/shutdown script for nVidia CUDA
# ---------------------------------------------------------------

# Source function library.
. /etc/init.d/functions

DRIVER=nvidia
RETVAL=0

# Create /dev nodes for nvidia devices
function createnodes() {
   # Count the number of NVIDIA controllers found.
   N3D=`/usr/bin/lspci | grep -i NVIDIA | grep "3D controller" | wc -l`
   NVGA=`/usr/bin/lspci | grep -i NVIDIA | grep "VGA compatible controller" | wc -l`

   N=`expr $N3D + $NVGA - 1`
   for i in `seq 0 $N`; do
       if ! [ -c /dev/nvidia$i ]; then
	   mknod -m 666 /dev/nvidia$i c 195 $i
       else
	   chmod 666 /dev/nvidia$i
       fi
       RETVAL=$?
       [ "$RETVAL" = 0 ] || exit $RETVAL
   done

   if ! [ -c /dev/nvidiactl ]; then
       mknod -m 666 /dev/nvidiactl c 195 255
   else
       chmod 666 /dev/nvidiactl
   fi
   RETVAL=$?
   [ "$RETVAL" = 0 ] || exit $RETVAL
}

# Remove /dev nodes for nvidia devices
function removenodes() {
   rm -f /dev/nvidia*
}

# Start daemon
function start() {
   echo -n $"Loading $DRIVER kernel module: "
   modprobe $DRIVER && success || failure
   RETVAL=$?
   echo
   [ "$RETVAL" = 0 ] || exit $RETVAL

   echo -n $"Initializing CUDA /dev entries: "
   createnodes && success || failure
   RETVAL=$?
   echo
   [ "$RETVAL" = 0 ] || exit $RETVAL
}

# Stop daemon
function stop() {
   echo -n $"Unloading $DRIVER kernel module: "
   rmmod -f $DRIVER && success || failure
   RETVAL=$?
   echo
   [ "$RETVAL" = 0 ] || exit $RETVAL

   echo -n $"Removing CUDA /dev entries: "
   removenodes && success || failure
   RETVAL=$?
   echo
   [ "$RETVAL" = 0 ] || exit $RETVAL
}

# See how we were called
case "$1" in
   start)
       start
      ;;
   stop)
       stop
      ;;
   restart)
       stop
       start
      ;;
   *)
       echo $"Usage: $0 {start|stop|restart}"
       RETVAL=1
esac
exit $RETVAL