diff options
Diffstat (limited to 'scull')
-rwxr-xr-x | scull/SCULL~1.INI | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/scull/SCULL~1.INI b/scull/SCULL~1.INI deleted file mode 100755 index e0523ce..0000000 --- a/scull/SCULL~1.INI +++ /dev/null @@ -1,142 +0,0 @@ -#!/bin/bash -# Sample init script for the a driver module <rubini@linux.it> - -DEVICE="scull" -SECTION="misc" - -# The list of filenames and minor numbers: $PREFIX is prefixed to all names -PREFIX="scull" -FILES=" 0 0 1 1 2 2 3 3 priv 16 - pipe0 32 pipe1 33 pipe2 34 pipe3 35 - single 48 uid 64 wuid 80" - -INSMOD=/sbin/insmod; # use /sbin/modprobe if you prefer - -function device_specific_post_load () { - true; # fill at will -} -function device_specific_pre_unload () { - true; # fill at will -} - -# Everything below this line should work unchanged for any char device. -# Obviously, however, no options on the command line: either in -# /etc/${DEVICE}.conf or /etc/modules.conf (if modprobe is used) - -# Optional configuration file: format is -# owner <ownername> -# group <groupname> -# mode <modename> -# options <insmod options> -CFG=/etc/${DEVICE}.conf - -# kernel version, used to look for modules -KERNEL=`uname -r` - -#FIXME: it looks like there is no misc section. Where should it be? -MODDIR="/lib/modules/${KERNEL}/kernel/drivers/${SECTION}" -if [ ! -d $MODDIR ]; then MODDIR="/lib/modules/${KERNEL}/${SECTION}"; fi - -# Root or die -if [ "$(id -u)" != "0" ] -then - echo "You must be root to load or unload kernel modules" - exit 1 -fi - -# Read configuration file -if [ -r $CFG ]; then - OWNER=`awk "\\$1==\"owner\" {print \\$2}" $CFG` - GROUP=`awk "\\$1==\"group\" {print \\$2}" $CFG` - MODE=`awk "\\$1==\"mode\" {print \\$2}" $CFG` - # The options string may include extra blanks or only blanks - OPTIONS=`sed -n '/^options / s/options //p' $CFG` -fi - - -# Create device files -function create_files () { - cd /dev - local devlist="" - local file - while true; do - if [ $# -lt 2 ]; then break; fi - file="${DEVICE}$1" - mknod $file c $MAJOR $2 - devlist="$devlist $file" - shift 2 - done - if [ -n "$OWNER" ]; then chown $OWNER $devlist; fi - if [ -n "$GROUP" ]; then chgrp $GROUP $devlist; fi - if [ -n "$MODE" ]; then chmod $MODE $devlist; fi -} - -# Remove device files -function remove_files () { - cd /dev - local devlist="" - local file - while true; do - if [ $# -lt 2 ]; then break; fi - file="${DEVICE}$1" - devlist="$devlist $file" - shift 2 - done - rm -f $devlist -} - -# Load and create files -function load_device () { - - if [ -f $MODDIR/$DEVICE.o ]; then - devpath=$MODDIR/$DEVICE.o - else if [ -f ./$DEVICE.o ]; then - devpath=./$DEVICE.o - else - devpath=$DEVICE; # let insmod/modprobe guess - fi; fi - if [ "$devpath" != "$DEVICE" ]; then - echo -n " (loading file $devpath)" - fi - - if $INSMOD $devpath $OPTIONS; then - MAJOR=`awk "\\$2==\"$DEVICE\" {print \\$1}" /proc/devices` - remove_files $FILES - create_files $FILES - device_specific_post_load - else - echo " FAILED!" - fi -} - -# Unload and remove files -function unload_device () { - device_specific_pre_unload - /sbin/rmmod $DEVICE - remove_files $FILES -} - - -case "$1" in - start) - echo -n "Loading $DEVICE" - load_device - echo "." - ;; - stop) - echo -n "Unloading $DEVICE" - unload_device - echo "." - ;; - force-reload|restart) - echo -n "Reloading $DEVICE" - unload_device - load_device - echo "." - ;; - *) - echo "Usage: $0 {start|stop|restart|force-reload}" - exit 1 -esac - -exit 0 |