#!/bin/sh

### BEGIN INIT INFO
# Provides:          nvidia-kernel
# Required-Start:    mountdevsubfs
# Required-Stop:     
# Should-Start:      udev
# Default-Start:     2 3 4 5
# Default-Stop:      
# Short-Description: create NVIDIA device nodes
### END INIT INFO

PATH=/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin

# How many cards?
[ -r /etc/default/nvidia-kernel ] && . /etc/default/nvidia-kernel

# test if anything is requested
if [ -z "$NVIDIA_CARDS" ] || [ "$NVIDIA_CARDS" -lt 1 ]; then
  # Nothing to do but exit.
  exit 0
fi  
    
make_nodes () {
  if ! [ -e /dev/nvidiactl ]; then
    mknod -m 0660 /dev/nvidiactl c 195 255
    chgrp video /dev/nvidiactl
  fi
  for i in $(seq 0 $(($NVIDIA_CARDS - 1))); do
    if ! [ -e /dev/nvidia$i ]; then
      mknod -m 0660 /dev/nvidia$i c 195 $i
      chgrp video /dev/nvidia$i
    fi
  done
}
					
case "$1" in
  start|restart|reload|force-reload)
      make_nodes
      ;;

  stop) 
     :
     ;;
							    
   *)
     echo "Usage: /etc/init.d/nvidia-kernel {start|stop|restart|reload|force-reload}"
     exit 1
     ;;
esac
	        
exit 0
