2.11BSD/sys/OTHERS/ht/ht_fix
From wucs!root Sat Mar 8 07:50:44 1986
Date: Fri, 7 Mar 86 14:53:51 est
From: adiron!root (AdironVax)
To: wucs!seismo!keith
Subject: ht.c
Keith - after some studying of the driver I think we have found the
problem. The minor device numbers in the /dev/MAKE script are incorrect
and cause the wrong unit to be selected. The driver seems to be working
fine. However it is noted in the source that ht.c only supports one
controller. Therfore it looks like one should never set NHT to be > 1.
The MAKE script does the following:
WRONG RIGHT
name major minor minor
mt0 9 0 0 unit0
mt1 9 64 64 unit0
mt2 9 2 1 unit1
mt3 9 66 65 unit1
nmt0 9 128 128 unit0
nmt1 9 192 192 unit0
nmt2 9 130 129 unit1
nmt3 9 194 193 unit1
.. and similar permutations for rmt_ and nrmt_ (major = 17).
The change to MAKE seems simple enough:
ht*|ut*)
umask 0 ; unit=`expr $i : '..\(.*\)'`
case $i in
ut*) blk=3; chr=12;;
ht*) blk=9; chr=17;;
esac
case $unit in
0|1|2|3|4|5|6|7)
name=`expr $unit '*' 2` ; one=`expr $name + 1`
norew=`expr $unit + 128` ; hidens=`expr $unit + 64`
norewhidens=`expr $unit + 192`
mknod mt$name b $blk $unit
mknod mt$one b $blk $hidens
mknod nmt$name b $blk $norew
mknod nmt$one b $blk $norewhidens
mknod rmt$name c $chr $unit
mknod rmt$one c $chr $hidens
mknod nrmt$name c $chr $norew
mknod nrmt$one c $chr $norewhidens
umask 77
;;
*)
echo bad unit for tape in: $1
;;
esac
;;
It is nice to be sending you a fix for a change - tish