Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Feb 1997 01:00:53 +0100 (MET)
From:      Peter Mutsaers <plm@xs4all.nl>
To:        John-Mark Gurney <gurney_j@resnet.uoregon.edu>
Cc:        freebsd-bugs@freefall.freebsd.org
Subject:   Re: kern/2698: scsi tape driver problem
Message-ID:  <199702110000.BAA00374@plm.xs4all.nl>
In-Reply-To: <Pine.BSF.3.95q.970210124628.24299G-100000@hydrogen.nike.efn.org>
References:  <199702101950.LAA20963@freefall.freebsd.org> <Pine.BSF.3.95q.970210124628.24299G-100000@hydrogen.nike.efn.org>

next in thread | previous in thread | raw e-mail | index | archive | help
>> On Mon, 10 Feb 1997 12:49:37 -0800 (PST), John-Mark Gurney
>> <jmg@nike.efn.org> said:

    JG> modify /usr/src/sys/scsi/scsiconf.c so that an entry like the "WANGTEK",
    JG> "5525ES*"

    JG> but have it be something like:
    JG> {
    JG> 	..., ..., ..., "DEC", "TZK10", "00B3",
    JG> 	...
    JG> }

    JG> then recompile your kernel and see what happens...  hope this works...
    JG> ttyl..

I did this. The result is that mt -f /dev/rst0 status now reports the
correct densities:

/sys/scsi# mt -f /dev/rst0 status 
Present Mode:   Density = QIC-150      Blocksize = 512 bytes
---------available modes---------
Mode 0:         Density = 0x00         Blocksize variable
Mode 1:         Density = QIC-320      Blocksize variable
Mode 2:         Density = QIC-150      Blocksize variable
Mode 3:         Density = QIC-120      Blocksize variable

instead of those X3.--- density codes (whatevery they are).

Note that at first for mode 2 blocksize 512 was shown, but after some
actions this changed into variable. Strange.

Indeed, as Joerg Wunsch said, the QIC 150 tape seems to write variable blocks
instead of 512 byte blocks. (525MB tapes are always variable blocks. I
have no problems at all with them).

I can check this as follows:

/sys/scsi# restore tf /dev/rst0  
st0: block wrong size, 64 blocks residual
tape read error: Input/output error

but using rst0.1 (act as if QIC 320, whatever that is, which is
supposed to have variable blocksize:

/sys/scsi# restore tf /dev/rst0.1
Dump   date: Tue Feb 11 00:38:03 1997
Dumped from: the epoch
Level 0 dump of /var on plm.xs4all.nl:/dev/sd1f
Label: none
^Crestore interrupted, continue? [yn] 

At least I have a workaround for now.

I do know that indeed I've had problems in the past with reading QIC
150 tapes under Linux, when written under FreeBSD.

I've never encountered such problems under Linux however. I cannot
check the behaviour under Linux anymore however since I've removed
that from my system. But I think indeed I got error messages under
Linux when reading QIC 150 tapes written by FreeBSD, indicating that
the blocksize didn't match.

Probably Linux tried to read 512 byte blocks from the device. I
remember that even experimenting with 'dd if=/dev/st0 bs=10k' didn't
help. Which is logical, since 10k to the block device /dev/st0 still
results internally into reading 512 byte blocks.

-- 
Peter Mutsaers  |  Abcoude (Utrecht), |  Trust is a good quality
plm@xs4all.nl   |  the Netherlands    |  for other people to have



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199702110000.BAA00374>