Sophie

Sophie

distrib > Mageia > 5 > i586 > media > nonfree-release > by-pkgid > 941cc377641daddce316fdd7c2796243 > files > 1

nvidia-cuda-toolkit-6.5.14-6.mga5.nonfree.i586.rpm

#!/bin/sh
# ---------------------------------------------------------------
# chkconfig: 345 80 20
# description: Startup/shutdown script for nVidia CUDA
# ---------------------------------------------------------------
### BEGIN INIT INFO
# Provides: nvidia
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: Startup/shutdown script for NVIDIA CUDA
# Description: This script loads a driver and creates device
#              nodes for CUDA capable devices.
### END INIT INFO

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

DRIVER=nvidia-current
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() {
   gprintf "Loading %s kernel module: " "$DRIVER"
   modprobe $DRIVER && success || failure
   RETVAL=$?
   echo
   [ "$RETVAL" = 0 ] || exit $RETVAL

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

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

   gprintf "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
      ;;
   *)
       gprintf "Usage: %s {start|stop|restart}\n" "$0"
       RETVAL=1
esac
exit $RETVAL