www.pudn.com > linux-ldd3.rar > short_load, change:2005-02-01,size:1657b


#!/bin/sh
module="short"
device="short"
mode="664"

# Group: since distributions do it differently, look for wheel or use staff
if grep '^staff:' /etc/group > /dev/null; then
    group="staff"
else
    group="wheel"
fi


# invoke insmod with all arguments we got
# and use a pathname, as newer modutils don't look in . by default
/sbin/insmod ./$module.ko $* || exit 1

major=`cat /proc/devices | awk "\\$2==\"$module\" {print \\$1}"`

# Create 8 entry points, as SHORT_NR_PORTS is 8 by default
rm -f /dev/${device}[0-7]
mknod /dev/${device}0 c $major 0
mknod /dev/${device}1 c $major 1
mknod /dev/${device}2 c $major 2
mknod /dev/${device}3 c $major 3
mknod /dev/${device}4 c $major 4
mknod /dev/${device}5 c $major 5
mknod /dev/${device}6 c $major 6
mknod /dev/${device}7 c $major 7

rm -f /dev/${device}[0-3][ps]
mknod /dev/${device}0p c $major 16
mknod /dev/${device}1p c $major 17
mknod /dev/${device}2p c $major 18
mknod /dev/${device}3p c $major 19
mknod /dev/${device}4p c $major 20
mknod /dev/${device}5p c $major 21
mknod /dev/${device}6p c $major 22
mknod /dev/${device}7p c $major 23

mknod /dev/${device}0s c $major 32
mknod /dev/${device}1s c $major 33
mknod /dev/${device}2s c $major 34
mknod /dev/${device}3s c $major 35
mknod /dev/${device}4s c $major 36
mknod /dev/${device}5s c $major 37
mknod /dev/${device}6s c $major 38
mknod /dev/${device}7s c $major 39

rm -f /dev/${device}int /dev/${device}print
mknod /dev/${device}int  c $major 128
mknod /dev/${device}print  c $major 129

chgrp $group /dev/${device}[0-7] /dev/${device}[0-7][ps] /dev/${device}int
chmod $mode  /dev/${device}[0-7] /dev/${device}[0-7][ps] /dev/${device}int