Exabyte and AIX

Mike Grenier mike at atc.SP.Unisys.COM
Wed Jun 19 04:08:29 AEST 1991


I've been trying to get the Exabyte 8200 and 8500 tapes drives to work
under AIX Rev 3.003 on an RS6000/320.  IBM claims to support the
Exabyte 8200 as their 8mm tape drive (see IBM Item No. IXZL8) but I've
been unable to get it to work.

I have no problem doing a mkdev from within smit and making the 8200
available but the scsi driver seems to mess up.  When doing an
open/read system calls, the driver issues a Reserve UNIT scsi command
which the Exabyte does not understand resulting in the failure.

I don't understand how IBM can claim to support this device unless it
has modified firmware running in the Exabyte which understands the
commands. The driver would not need to issue this since it is the 
only initiator.
   
  On a different front, configuring the 8500 was an interesting
challenge (mainly due to the rather poor documentation) in modifing
the various ODM database classes - namely PdAt, PdDv, and the NLS
catalog. Once done, I was able to do a:
     'mkdev -c tape -s scsi -t exa8500 -p scsi0 -w 20' to make /dev/rmt1
available on scsi target 2.

   However, when doing an open and a read system call, the kernel will
issue a Mode Sense command to figure out the block size of the tape
that was inserted. Unfortunately, it issues the command asking for
vendor speific parameters and it asks for more bytes than the Exabyte
can give resulting in a illegal argument status from the device. I can
not find anyway to modify the mode sense command that AIX executes.
Why would AIX want to see the vedor specific parameters anyway?

I sure wish System V Release 4 was available for this machine. Even a
decent customer rep would be helpful (He thought it was a SMIT problem!)

    -Mike Grenier         612-456-7869
     mike at sp.unisys.com

SCSI Bus Analyzer traces follow.

----cut----
#!/bin/sh
# This is a shell archive (shar 3.32)
# made 06/18/1991 17:40 UTC by mike at atc
# Source directory /usr3/mike
#
# existing files WILL be overwritten
#
# This shar contains:
# length  mode       name
# ------ ---------- ------------------------------------------
#   2545 -rw-rw-r-- session.8200
#   2532 -rw-rw-r-- session.8500
#
if touch 2>&1 | fgrep 'amc' > /dev/null
 then TOUCH=touch
 else TOUCH=true
fi
# ============= session.8200 ==============
echo "x - extracting session.8200 (Text)"
sed 's/^X//' << 'SHAR_EOF' > session.8200 &&
X
XProblem trace of an Exabyte 8200 on an IBM RS6000/320
Xrunning AIX 3.003
X
XTrace of the command 'od -c /dev/rmt1' where /dev/rmt1 has been 
Xdefined using 'mkdev -c tape -s scsi -t 8mm -p scsi0 -w 20'.
XThe 'od' command will fail with 'Can not access a device'.
X
XI can not understand how IBM claims to support this device! 
X(see IBM Item No IXZL8)
X
XText in curly braces below are my comments.
X    -Mike Grenier   mike at sp.unisys.com
X
X> display trace memory   [in structured format]
X
Xenter starting addr(Hex): 
X0038:  Bus free
X003A:     Arbitration /80 
X003B:     Arbitration w.ATN /84  { 84 is bit encoded for initiator (bit 7) and scsi target 2}
X003D:     Select w.ATN /84 
X0040:        Message-Out/C0(Identify) 
X0041:        Command /00(Test_U_Rdy) 00 00 00 00 00 
X0047:        Status  /00 
X0048:        Message-In /00  
X0049:  Bus free
X004B:     Arbitration /80 
X004C:     Arbitration w.ATN /84 
X004E:     Select w.ATN /84 
X0051:        Message-Out/C0(Identify) 
X0052:        Command /16(Resv_Unit) 00 00 00 00 00 
X0058:        Status  /02      {<---- THIS IS THE FAILURE, The 8200 does not support the Reserve Unit command!}
X0059:        Message-In /00  
X005A:  Bus free
X005C:     Arbitration /80 
X005D:     Arbitration w.ATN /84 
X005F:     Select w.ATN /84 
X0061:        Message-Out w.ATN /C0(Identify) 
X0062:        Message-Out w.ATN /01(Ext_Msg) 
X0063:  **AE/07  <<< Not recognized !     
X0065:                   /08(Length) 
X0066:        Command /03(Req_Sen) 00 00 00 FF 00 
X006C:           Data-In /70 00 45 00 00 00 00 12 00 00 00 00 00 00 00 00  { Sense Key indicates Illegal Request}
X007C:                    00 00 00 01 00 00 00 22 FC 21 
X0086:        Status  /00 
X0087:        Message-In /00(Modify_Dat_Ptr) 
X0088:  Bus free
X008A:     Arbitration /80 
X008B:     Arbitration w.ATN /84 
X008D:     Select w.ATN /84 
X0090:        Message-Out/C0(Identify) 
X0091:        Command /17(Rels_Unit) 00 00 00 00 00 
X0097:        Status  /02 
X0098:        Message-In /00  
X0099:  Bus free
X009B:     Arbitration /80 
X009C:     Arbitration w.ATN /84 
X009E:     Select w.ATN /84 
X00A0:        Message-Out w.ATN /C0(Identify) 
X00A1:        Message-Out w.ATN /01(Ext_Msg) 
X00A2:  **AE/07  <<< Not recognized !     
X00A4:                   /08(Length) 
X00A5:        Command /03(Req_Sen) 00 00 00 FF 00 
X00AB:           Data-In /70 00 45 00 00 00 00 12 00 00 00 00 00 00 00 00 
X00BB:                    00 00 00 01 00 00 00 22 FC 21 
X00C5:        Status  /00 
X00C6:        Message-In /00(Modify_Dat_Ptr) 
X00C7:  Bus free
X---- end of recording ----
SHAR_EOF
$TOUCH -am 0618124091 session.8200 &&
chmod 0664 session.8200 ||
echo "restore of session.8200 failed"
set `wc -c session.8200`;Wc_c=$1
if test "$Wc_c" != "2545"; then
	echo original size 2545, current size $Wc_c
fi
# ============= session.8500 ==============
echo "x - extracting session.8500 (Text)"
sed 's/^X//' << 'SHAR_EOF' > session.8500 &&
X
XProblem trace of an Exabyte 8500 on an IBM RS6000/320
Xrunning AIX 3.003
X
XTrace of the command 'od -c /dev/rmt1' where /dev/rmt1 has been 
Xdefined using 'mkdev -c tape -s scsi -t exa8500 -p scsi0 -w 20'.
XThe 'od' command will fail with 'Illegal argument'. Device type
X'exa8500' was created in the ODM classes PdAt and PdDv (and of course
Xthe NLS catalog).
X
XText in curly braces below are my comments.
X    -Mike Grenier   mike at sp.unisys.com
X
X0650:  Bus free
X0652:     Arbitration /80 
X0653:     Arbitration w.ATN /84 
X0655:     Select w.ATN /84 
X0658:        Message-Out/C0(Identify) 
X0659:        Command /00(Test_U_Rdy) 00 00 00 00 00 
X065F:        Status  /00 
X0660:        Message-In /00  
X0661:  Bus free
X0663:     Arbitration /80 
X0664:     Arbitration w.ATN /84 
X0666:     Select w.ATN /84 
X0669:        Message-Out/C0(Identify) 
X066A:        Command /16(Resv_Unit) 00 00 00 00 00 
X0670:        Status  /00 
X0671:        Message-In /00  
X0672:  Bus free
X0674:     Arbitration /80 
X0675:     Arbitration w.ATN /84 
X0677:     Select w.ATN /84 
X067A:        Message-Out/C0(Identify) 
X067B:        Command /1A(Mode_Sense) 10 00 00 12 00 
X0681:        Status  /02   {<***** THIS IS THE FAILURE, the 12 in the above 
X               mode sense command is incorrect - it should have been 11 if vendor specific
X               parameters are really needed.}
X0682:        Message-In /00  
X0683:  Bus free
X0685:     Arbitration /80 
X0686:     Arbitration w.ATN /84 
X0688:     Select w.ATN /84 
X068A:        Message-Out w.ATN /C0(Identify) 
X068B:        Message-Out w.ATN /01(Ext_Msg) 
X068C:                          /03(Length) 
X068D:                          /01(Synchr_Dat_Tx_Req) 
X068E:                          /32(Tx_Period=32Hex*4 nsec)
X0690:                          /0C
X0691:        Message-In /01(Ext_Msg) 
X0692:                   /03(Length) 
X0693:                   /01(Synchr_Dat_Tx_Req) 
X0694:                   /7D(Tx_Period=7DHex*4 nsec)
X0695:                   /0C
X0696:        Command /03(Req_Sen) 00 00 00 FF 00 
X069C:           Data-In /70 00 45 00 00 00 00 15 00 00 00 00 24 00 00 00   {** Sense key reports Illegal request}
X06AC:                    00 00 00 01 00 00 00 45 F8 40 00 00 7F 
X06B9:        Status  /00 
X06BA:        Message-In /00  
X06BB:  Bus free
X06BD:     Arbitration /80 
X06BE:     Arbitration w.ATN /84 
X06C0:     Select w.ATN /84 
X06C3:        Message-Out/C0(Identify) 
X06C4:        Command /17(Rels_Unit) 00 00 00 00 00 
X06CA:        Status  /00 
X06CB:        Message-In /00  
X06CC:  Bus free
SHAR_EOF
$TOUCH -am 0618123991 session.8500 &&
chmod 0664 session.8500 ||
echo "restore of session.8500 failed"
set `wc -c session.8500`;Wc_c=$1
if test "$Wc_c" != "2532"; then
	echo original size 2532, current size $Wc_c
fi
exit 0



More information about the Comp.unix.aix mailing list