Tape Drives: Identifing Non-Standard Tape Drives under IRIX 6.5

From Nekochan
Revision as of 16:20, 23 November 2007 by Recondas (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Non-Standard Tape Drives under IRIX 6.5.x

If you attempt to use a tape drive that is not specifically defined, IRIX identifies it as an "unkown" tape drive, and many of the features specific to the drive (such as hardware compression) may not work. The drive will have to be correctly identified by IRIX to function as intended. As an example of that process a drive not defined in IRIX, a DEC TZ89 DLT drive, will be added to the list of defined drives.

The DEC TZ89 is a DLT tape drive with the same mechanism and capacity (35/70GB) as the Quantum DLT7000, but the firmware in the DEC drive provides an identification string that is unknown to IRIX. Tape devices are defined in the file /var/sysgen/master.d/scsi. That file contains a number of tape drive entries, including a 'generic' DEC THZxx definition:

   /* DEC THZxx DLT drive */
   <   { DECDLT, TPDLT, 0, 7, "", "DLT7000", 0, 0,
       {0x1B /*7000*/, 0x1B /*7000c*/, 0x1A /*4000*/, 0x1A /*4000c*/ },
        MTCAN_BSF|MTCAN_BSR|MTCAN_APPEND|MTCAN_SPEOD |
          MTCAN_CHKRDY|MTCAN_VAR| MTCAN_SETSZ|MTCAN_SILI|MTCAN_SEEK|
            MTCAN_SYNC|MTCAN_CHTYPEANY|MTCAN_COMPRESS|MTCAN_SETDEN,
        20, 8*60, 20*60, 5*60, 3*3600, 4096, 64*1024,
        tpsc_dlt7000_dens_count, tpsc_dlt7000_hwg_dens_names, tpsc_dlt7000_alias_dens_names,
        {0}, 0, 0, 0,
        0, (u_char *)0 },

Even though the entry specifically mentions the DEC TZxx drive, it won't work without modification. The tape drive definition entry is divided into a number of data fields, with each data field being separated by a comma. Also note that the first line, /* DEC THZxx DLT drive */ is an comment and is not read by IRIX, so the data fields begin on the second line.


Editing the Tape Drive Identification Files

This definition file is generic because the fifth field " " is blank (the "quotes" don't count). So DECDLT is the first field, TPDLT, is the second. The third and fourth fields (0 and 7) must contain the respective numeric value for the (number of) characters in the fifth and sixth fields. As a result, the third field is currently a "0" because the fifth field is blank (the " " is a place holder), and the fourth field is "7", representing the number of characters contained in the sixth field, DLT7000.

To make the generic tape drive definition work, obtain the information required by data fields specific to your drive. Open a shell with root privileges, change to the /dev directory and run the ./MAKEDEV tape command:

    # cd /dev
      ./MAKEDEV tape

Then run mt status. The example DEC TZ89 returned:

    % mt status
            Controller: SCSI
            Device: DEC: TZ89   
            Status: 0x200
            Drive type: unknown
            Media : Not READY

The "Device" line returned by mt status is the information the tape drive firmware reports to IRIX. This information, DEC and TZ89, will need to be inserted into the fifth and sixth fields of the generic definition file so that IRIX will recognize the drive.

Once those values are inserted into the fifth and sixth fields, the third and fourth fields will need to be edited to match the number of characters inserted in the fifth and sixth fields. In this example, DEC is three characters, so the third field is changed to a 3. TZ89 is four characters, so the fourth field becomes a 4.

Next - Make a copy of /var/sysgen/master.d/scsi and put it in a safe place!

Edit /var/sysgen/master.d/scsi (as root), and replace the fifth and sixth fields as noted above, and modify the third and fourth fields to reflect the correct number of characters you entered in the fifth and sixth fields.

In my example, the changed line now reads:

      { DECDLT, TPDLT, 3, 4, "DEC", "TZ89", 0, 0,

as opposed to the original:

      { DECDLT, TPDLT, 0, 7, "", "DLT7000", 0, 0,

Save and close /var/sysgen/master.d/scsi. Reconfigure and rebuild the kernel with the autoconfig command and reboot.


Verification

Once rebooted repeat ./MAKEDEV tape command. The formerly non-standard TZ89 will now appear to IRIX as a DLT drive and have a "DLT" desktop icon. When queried by mt status the "Drive type" now reads "DLT" instead of "unknown":

     % mt status
             Controller: SCSI
             Device: DEC: TZ89     
             Status: 0x200
             Drive type: DLT
             Media : READY

Variations on this same process could be used for other types of tape drives. Find a something reasonably close in the table in /var/sysgen/master.d/scsi and take it from there.


External Links

SGI TechPubs Library: IRIX Admin: Peripheral Devices Chapter 4: Tape Drives