3 messages in org.freebsd.freebsd-hardwareUPDATE: Re: Problems with HP T4000s t...
FromSent OnAttachments
Andrew MacIntyreDec 25, 1996 6:33 pm 
Doug WhiteDec 26, 1996 3:28 pm 
Andrew MacIntyreDec 29, 1996 4:30 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:UPDATE: Re: Problems with HP T4000s tape driveActions...
From:Andrew MacIntyre (andy@bullseye.apana.org.au)
Date:Dec 29, 1996 4:30:08 am
List:org.freebsd.freebsd-hardware

I have succeeded in getting this device to work (AFAICT), and now have a backup of the system. Don't yet know whether what I think went on to the tape is what will come off it though ... :-|

Two parts to the solution:-

a) patch st.c and scsi_tape.h to treat the reported density code (0x45) as a QIC_3095, and behave the same as a QIC_3080 (based on 2.1.5's st.c/scsi_tape.h).

b) update the drive's FLASH ROM to firmware v1.06. Fortunately, HP has posted the updated firmware on their web/ftp site and provide a DOS utility to install it (requires ASPI drivers).

Item a) on its own made little difference, however item b) really clicked things together!

There are two wrinkles left to irritate me. The first is that the drive is being reported as being empty on bootup, when it does contain a tape. It seems to me that this might a timing issue, as the drive is fiddle-farting around while the probe is under way. I guess I should try extending the settling time from 15s to 30-45s and see if it has any effect.

The other wrinkle is that the driver is reporting an unrecognised SCSI command. If someone recognises it as a "quirk" from the following transcript (SCSI_DEBUG enabled, date/time removed for brevity), could they please let me know so that I can deal with it (from memory, this was triggered by an "mt status").

TIA and all the best for the new year.

---8<---<8---8<--- bullseye /kernel: st0(ncr0:4:0): scsi_cmd bullseye /kernel: st0(ncr0:4:0): scsi_done bullseye /kernel: st0(ncr0:4:0): command: 0,0,0,0,0,0-[0 bytes] bullseye /kernel: code70 valid0 seg0 key6 ili0 eom0 fmark0 bullseye /kernel: info: 0 0 0 0 followed by 16 extra bytes bullseye /kernel: extra: 0 0 0 0 28 0 0 0 0 0 1 12 0 0 0 0 bullseye /kernel: st0(ncr0:4:0): calling private err_handler() bullseye /kernel: st0(ncr0:4:0): private err_handler() returned -1 bullseye /kernel: st0(ncr0:4:0): calling private start() bullseye /kernel: st0(ncr0:4:0): ststart st0(ncr0:4:0): scsi_cmd bullseye /kernel: st0(ncr0:4:0): scsi_done bullseye /kernel: st0(ncr0:4:0): command: 0,0,0,0,0,0-[0 bytes] bullseye /kernel: st0(ncr0:4:0): calling private start() bullseye /kernel: st0(ncr0:4:0): ststart st0(ncr0:4:0): mounting bullseye /kernel: st0(ncr0:4:0): scsi_cmd bullseye /kernel: st0(ncr0:4:0): scsi_done bullseye /kernel: st0(ncr0:4:0): command: 1b,0,0,0,1,0-[0 bytes] bullseye /kernel: st0(ncr0:4:0): calling private start() bullseye /kernel: st0(ncr0:4:0): ststart st0(ncr0:4:0): scsi_cmd bullseye /kernel: st0(ncr0:4:0): scsi_done bullseye /kernel: st0(ncr0:4:0): command: 0,0,0,0,0,0-[0 bytes] bullseye /kernel: st0(ncr0:4:0): calling private start() bullseye /kernel: st0(ncr0:4:0): ststart st0(ncr0:4:0): scsi_cmd bullseye /kernel: st0(ncr0:4:0): scsi_done bullseye /kernel: st0(ncr0:4:0): command: 5,0,0,0,0,0-[6 bytes] bullseye /kernel: ------------------------------ bullseye /kernel: 000: 00 00 02 00 02 00 bullseye /kernel: ------------------------------ bullseye /kernel: st0(ncr0:4:0): calling private start() bullseye /kernel: st0(ncr0:4:0): ststart st0(ncr0:4:0): scsi_cmd bullseye /kernel: st0(ncr0:4:0): scsi_done bullseye /kernel: st0(ncr0:4:0): command: 1a,0,0,0,c,0-[12 bytes] bullseye /kernel: ------------------------------ bullseye /kernel: 000: 0b b6 10 08 45 00 00 00 00 00 02 00 bullseye /kernel: ------------------------------ bullseye /kernel: st0(ncr0:4:0): calling private start() bullseye /kernel: st0(ncr0:4:0): ststart st0(ncr0:4:0): starting block mode
decision bullseye /kernel: st0(ncr0:4:0): scsi_cmd bullseye /kernel: st0(ncr0:4:0): scsi_done bullseye /kernel: st0(ncr0:4:0): command: 15,0,0,0,c,0-[12 bytes] bullseye /kernel: ------------------------------ bullseye /kernel: 000: 00 00 10 08 45 00 00 00 00 00 02 00 bullseye /kernel: ------------------------------ bullseye /kernel: st0(ncr0:4:0): calling private start() bullseye /kernel: st0(ncr0:4:0): ststart st0(ncr0:4:0): scsi_cmd bullseye /kernel: st0(ncr0:4:0): scsi_done bullseye /kernel: st0(ncr0:4:0): command: 1e,0,0,0,1,0-[0 bytes] bullseye /kernel: code70 valid0 seg0 key5 ili0 eom0 fmark0 bullseye /kernel: info: 0 0 0 0 followed by 16 extra bytes bullseye /kernel: extra: 0 0 0 0 20 0 0 0 0 0 1 5 0 0 0 0 bullseye /kernel: st0(ncr0:4:0): calling private err_handler() bullseye /kernel: st0(ncr0:4:0): private err_handler() returned -1 bullseye /kernel: st0(ncr0:4:0): ILLEGAL REQUEST asc:20,0 Invalid command
operation code bullseye /kernel: st0(ncr0:4:0): calling private start() bullseye /kernel: st0(ncr0:4:0): ststart st0(ncr0:4:0): Open complete bullseye /kernel: st0(ncr0:4:0): stopen: dev=0xe01 (unit 0) result 0 bullseye /kernel: st0(ncr0:4:0): [ioctl: get status] bullseye /kernel: st0(ncr0:4:0): stclose: Closing device ---8<---8<---8<---