#!/bin/sh module="pci_avnet" dev0="av_sram_" dev1="av_flash_" dev2="av_ctrlreg_" dev3="av_led_" all="*" mode="777" numboards=$(lspci | grep -c 'Xilinx') echo ${numboards} numboard=$(( $numboards - 1 )) echo ${numboard} # 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=$(awk "\$2==\"$module\" {print \$1}" /proc/devices) echo ${major} rm -f /dev/${dev0}${all} rm -f /dev/${dev1}${all} rm -f /dev/${dev2}${all} rm -f /dev/${dev3}${all} i=0 while [ $i -le $numboard ]; do mknod /dev/${dev0}$i c $major $((0 + $(($i * 4)))) echo minor = $((0 + $(($i * 4)))) mknod /dev/${dev1}$i c $major $((1 + $(($i * 4)))) echo minor = $((1 + $(($i * 4)))) mknod /dev/${dev2}$i c $major $((2 + $(($i * 4)))) echo minor = $((2 + $(($i * 4)))) mknod /dev/${dev3}$i c $major $((3 + $(($i * 4)))) echo minor = $((3 + $(($i * 4)))) chgrp $group /dev/${dev0}$i chgrp $group /dev/${dev1}$i chgrp $group /dev/${dev2}$i chgrp $group /dev/${dev3}$i chmod $mode /dev/${dev0}$i chmod $mode /dev/${dev1}$i chmod $mode /dev/${dev2}$i chmod $mode /dev/${dev3}$i i=$(($i + 1)) done