Copyright © 2000-2010 IBM CorporationTAPEDRV is a utility program whose primary function is to automatically update certain backup devices with the latest firmware. See Supported Backup Devices. TAPEDRV runs on Microsoft DOS and Windows® as well as Linux based platforms.
Last update: 7/07/10
Tapedrv Errors:
TAPEDRV8010
TAPEDRV8110
TAPEDRV8111
TAPEDRV8112
TAPEDRV8113
TAPEDRV8115
TAPEDRV8130
TAPEDRV8140
TAPEDRV8142
TAPEDRV8143
TAPEDRV8150
TAPEDRV8160
TAPEDRV8170
TAPEDRV8180
TAPEDRV8190
TAPEDRV8195
TAPEDRV8200
TAPEDRV8201
TAPEDRV8210
TAPEDRV8220
TAPEDRV8270
TAPEDRV8272
TAPEDRV8274
TAPEDRV8276
TAPEDRV8310
TAPEDRV8320
TAPEDRV8330
TAPEDRV8340
TAPEDRV8350
TAPEDRV8360
TAPEDRV8410
TAPEDRV8510
TAPEDRV8561
TAPEDRV8562
TAPEDRV8563
TAPEDRV8564
TAPEDRV8565
TAPEDRV8566
TAPEDRV8570
TAPEDRV8571
TAPEDRV8572
TAPEDRV8573
TAPEDRV8575
TAPEDRV8576
TAPEDRV8590
TAPEDRV8700
1.12.01 - Fix Windows TAPEDRV8310 error introduced in 1.12.00. - Add "Device Firmware Update Issues" secton to this document. 1.12.00 - Add support for CD-DVD devices at /dev/hd<X> (where <X> is a, trough r) for Linux. This change avoids the need to load ide-scsi for CD-DVD. - Remove message TAPEDRV8116, add message TAPEDRV8700. 1.11.00 - Add Panasonic UJ870A support via new "panasonic_uj8" update algorithm. - Add long option support so that a TAPEDRV command, identified by '--', may appear at any argument position. For backward compatibility '--' may be omitted for a command given as the first argument. - Add error printing of standard SCSI ASC/ASCQ messages. 1.10.01 - Fix Linux "TAPEDRV8561 ... Failed to dismount volume..." for RDX removable disk. 1.10.00 - Add "CD-DVD" peripheral device recognition. - Add Panasonic UJDA780 DVD Combo device support via new "panasonic_ujda" update algorithm. - Add identity support for improved re-finding of device after PnP re-enumeration. - Add identity command. - Add skipEject/autoReload to "prostor_rdx" update algorithm. 1.09.03 - Add RDX System Offload Processor (RSOP) support. 1.09.02 - Changed "ibm_ultrium" update algorithm:
1. Instead of using Mode 4 for bulk of firmware transfer and Mode 5 for final transfer, use Mode 6 and Mode 7.
2. Change Buffer ID from 0 to 4.
3. Remove 1MB firmware image size restriction.1.09.01 - For linux 2.6 kernels, enumerate devices via SCSI Generic (sg) data in sysfs rather than procfs. - For linux, report TAPEDRV8116 error when drive-not-found results from inaccessible SCSI Generic (sg) data in procfs or sysfs. 1.09.00 - Add text UI to avoid ncurses issues on linux. - Add UI selecton option -u {auto,text,cg}. 1.08.29 - For Gen5(DAT72), fix failure to update failure. - For Windows 2000 and later, disable TAPE test-unit-ready polling. - For linux 2.6 with HAL support, disable DISK test-unit-ready polling. - Eject GoVault cartridge after sucessful firmware update. - Modified message "TAPEDRV8575: ...Firmware update status unknown..." - On INQUIRY error after firmware update, display TAPEDRV8575 message. - For linux x86_64, alter "tapedrv" script to exec tapedrv.linux.i386, the 32-bit executable, rather than tapedrv.linux.x86_64. 1.08.28 - Add prostor_rdx update algorithm. 1.08.27 - Add Symbolic-Name change detection. - Add hp_dds update algorithm. 1.08.26 - Add USB device support. - Add recognition of Vista ATAPI devices that are no longer listed in the Registry's SCSI tree. - Add -e (exit immediately) option for Vista. 1.08.25 - Change exit codes as follows:
"Tape device(s) already up-to-date" from 3 to 0.
"No supported tape device found" from 2 to 171.- Add dual "scan for hardware changes" after firmware transfer, but before examining Inquiry data for an updated revision level. - Mark executible as needing elevated permission for Vista using the MS manifest tool (mt.exe). - Ignore OS error 1167 on final WriteBuffer for Lsi_sas driver with IBM ULTRIUM-HH3. - Add RmbDisk ([removable] Disk with RMB bit e.g., GoVault) support. - Add SAS support. - Switch Linux SCSI enumeration file from /proc/scsi/scsi to /proc/scsi/sg/device_strs. 1.08.24 - Mutiple firmware file changes. 1.08.23 - Ignore Unit Attention returned for final Write Buffer to prevent TAPEDRV8570 error on Linux with mptscsih driver. - Add support for DOS aspi320.sys's redefinition of SS_ERR from 4 to 3 to prevent TAPEDRV8310 error: Driver status 0x03. 1.08.22 - Fix incorrectly reported TAPEDRV8320 error on 3623-2LX update. 1.08.21 - Add quantum_dltvs_8k update algorithm for 59P6745 (VS160) 1.08.20 - Add adic_faststor update algorithm for 3581 1.08.19 - Add interactive device selection during autoupdate. - Add autock, list, listsim commands, and -t, and -s options. - Add "<Ctrl><L> to repaint screen" on Linux. - Fix 4-bus SCSI adapter enumeration. 1.8L - Treat "Check Condition: No Sense" as "Good" status rather than error. - Recompiled for glibc-2.2.4 (rather than glibc-2.3) 1.8k - Add exabyte_vxa algorithm 1.8j - Reset hp_ultrium final Write Buffer Offset to 0 - Increase hp_ultrium transfer segment size from 4K to 32K - Change default hp_ultrium UpdatePrepare to "Unload" only. - Add ReferenceName parameter - Add updatealg_list, updatealg_attr commands - Fix 1.8i's premature program exit on Windows XP/2003 1.8i - Add support for IBM firmware in DDS1,DDS2,DDS3 tape drives 1.8h - Add support for ReplaceVersion parameter 1.8g - Reduce ibm_library transfer segment size from 64K to 32K 1.8f - Add ibm_library algorithm 1.8e - Add support for .ini WriteBufferID parameter 1.8d - Change Write Buffer ID from 0 to 1 for hp_ultrium 1.8c - Clear data direction flags for all zero length SCSI CDB transfers 1.8b - Fix failure to update TR7 under Windows NT,2000,XP,2003 - Add Linux DDS1/DDS2 with 256K EEPROM, and TR4,TR5,TR7, update support - Add "tapedrv" script to run Linux architecture specific executables 1.8 - Add Linux support - Convert InquiryStd full string be ASCII pattern - Add ASCII pattern capability to InquiryCFR_OEM - Add DOS/Windows recognition of '-' (as well as '/') for options. 1.7 - Add redirection of firmware to LUN 0 via UpdateFlags = "Z" - Add Vendor specific ASCII Inquiry recognition via InquiryStdAscii - Add VPD recognition via VpdAscii and VpdHex - Add "tapedrv inquiry" command to dump all tape device Inquiry data. - Update pattern matching and SCSI enumeration - Change pattern escape character from caret (^) to grave accent (`) - Enable CDB logging in 32-bit (not 16-bit) mode - Optimize loading of tapedrv.ini (for floppy performance). 1.6 - 1.5 - Revised menu 1.4 - Updated firmware revisions added menu and support tools 1.3 - Fix by disabling non-zero LUN scan when LUN0 returns error 1.2 - Fix failure to update Seagate STT3401A TR7 in DOS mode 1.1 - Add non-zero LUN support (Use new /z option if LUN0 only is needed); - Add "seagate_tr7" UpdateAlgorithm (for STT3401A) - Add "quantum_dlt_8k" UpdateAlgorithm (for DLT4000) - Add UpdateFlags = "<flagcharacters>" control 1.0 - Debug version (partial non-zero LUN support) 0.9 - Fix 'tapedrv status -o' broken in v0.8; 5K DOS memory reduction 0.8a - Fix 'tapedrv status -r' broken in v0.8 0.8 - Fix for HP half-high and Win9x 3600 Library w/ 126I firmware 0.7 - Add support for device access via NT port driver 0.6 - Fixes for 3502 and 3600 Libraries and the IBM Ultrium-1 0.5 - Fix "Invalid device request reading drive c" errors during DOS mode program initialization. 0.4 - Reduce maximum DOS mode memory requirement an additional 15K. 0.3 - Reduce maximum DOS mode memory requirement by about 12K. 0.2 - Add DOS mode memory usage logging - Hide cursor after status and prompt line update - Fix command line option character case insensitivity 0.1 - Second pass 0.0 - Initial pass
tapedrv.exe executes under Microsoft DOS and Windows 95, 98, Me, NT 3.51, NT 4.0, 2000, XP, and Server 2003.
tapedrv is a shell script that selects and runs one of the Linux architecture specific executables below.
tapedrv.linux.i386 executes on Linux AMD-K6/Pentium ® (IA32).
tapedrv.linux.x86_64 executes on Linux Opteron/Xeon ® (AMD64/EM64).
tapedrv.linux.ia64 executes on Linux Itanium ® (IA64).
tapedrv.msg contains program text messages and must reside in the same directory as the tapedrv executable.
tapedrv.ini contains program configuration information and normally resides in the same directory as the tapedrv executable. Configuration information includes a list of backup device to firmware file correspondence specifications and other data.
<firmware_path> is a directory that contains firmware file images, used to update various backup device models.
tapedrv -- IBM Backup Device Firmware Update Utility - v1.12.01
usage: tapedrv command [ options ]
Commands: | |
--autoupdate | Automatically updates backup device firmware |
--autock | Simulates --autoupdate for distribution CD-ROM testing |
--autosim | Simulates --autoupdate for interactive testing |
--build | Prints TAPEDRV software build number |
--list | Lists backup device targ-unit and serial numbers |
--listsim | Simulates --list |
--status | Reports firmware version status |
--statussim | Simulates --status |
--identity | Shows identities used to relocate devices after firmware update |
--inquiry | Shows Inquiry and VPD data for backup devices |
--inick | Checks tapedrv.ini and firmware files |
--inireport | Generates a report based on the content of tapedrv.ini |
--msgck | Checks tapedrv.msg message numbers |
--updatealg_list | Prints a list of update algorithms |
--updatealg_attr | Prints a list of update algorithms and attributes |
--version | Prints TAPEDRV version |
Options: | |
-e | Exit immediately without prompting "Press any key to continue ..." on Vista. |
-g | Prints additional debug information to log |
-i <inifile> | Specifies an .ini file to override the default tapedrv.ini. |
-l [+]<logfile> | Logs messages to file. If a + prefixes <logfile> the file is opened for appending. |
-o [+]<outfile> | Directs output to a file for non-interactive commands. If a + prefixes <outfile> the file is opened for appending. |
-p <firmware_path> | Specifies the directory in which firmware files are stored (for --autoupdate, --autosim, --inick). <firmware_path> is used as prefix for filename strings given by AutoFileName parameters in tapedrv.ini. |
-r | Prints additional program recognizable output (for status). |
-s <serial> |
Selects a device with a Serial number that matches the
case sensitive string, <serial>. <serial> may contain
the wild-card characters * and ?. A list of Serial
numbers is displayed by the command: tapedrv list.
|
-t <targ-unit> |
Selects a device <targ-unit> number. A list of
Targ-Unit numbers is displayed by the command: tapedrv --list.
|
-u {auto,text,cg} |
Selects a user interface for the --autoupdate, --autosim and --autock commands. The arguments auto, text, and cg may be abbreviated. For example, -u c is the same as -u cg. auto first attempts to open a CGUI, if this fails, the TextUI is used. auto is the default for DOS/Windows. text selects a plain text user interface (TextUI). text is the default for linux. cg selects the character graphics user interface (CGUI).
|
-z | Restrict device search to LUN0 only. |
Because of memory restrictions, the --identity, --inquiry, --inick, --inireport, --msgck, --updatealg_list, and --updatealg_attr commands are unavailable in 16-bit DOS mode.
Command and option names are case sensitive.
When a command is given as the first command line argument, the -- may be omitted. Only one command is allowed.
Space between an option and its argument is optional. For example, -p /drivemic and -p/drivemic are equivalvent.
Under Windows and DOS, forward-slash option ids may be substituted for hyphens. For example, //autoupdate instead of --autoupdate, or /z instead of -z. Directory separators may be either forward or back slashes (e.g., /drivemic or \drivemic).
--autoupdate automatically updates supported backup devices with the latest firmware.
By way of example, the following command might be used to update backup devicess attached to a given computer:
tapedrv --autoupdate -p /DRIVEMICIn this example, /DRIVEMIC is the directory in which firmware files are stored.
During runtime, --autoupdate presents a character graphics display that shows a list of backup devices found on the system. Those tape devices that are marked "Out-of-date" and "Waiting" will be updated. A device marked in any other way is skipped. See --autoupdate Screen Examples
Beginning from the top of the displayed device list, and working downward, --autoupdate highlights the next device to be updated and starts a count down timer:
Update pending. Update will start in in 25 seconds.During the count down, you may choose to either quit the program by pressing <Q>, or select a different starting device by pressing the arrow keys followed by <Enter>. Once you select a device, the count down is restarted. When the count down expires and the highlighted device is marked "Out-of-date" and "Waiting", the latest firmware is transferred from a file to the device. A device marked in any other way is skipped.
After processing the final device in the list, --autoupdate displays status for a short period then exits.
In more detail, if no updatable devices are found, the initial device screen has one of the following messages in the second and third lines:
Device-in-use by another program. Will end in 10 seconds. Device needs DOS only mode update. Will end in 10 seconds. Device needs alternate method update. Will end in 10 seconds. Device inaccessible. Will end in 10 seconds. Device already up-to-date. Will end in 10 seconds. No updatable device found. Will end in 10 seconds. Press any key to end immediately. -- Backup Device List --Otherwise if one or more devices need updating, then every screen displayed before device update provides you with an opportunity to quit before updating commences. The following prompts are shown:
Update pending. Update will start in in 25 seconds. Press <Enter> to immediately update device, or <Q> to quit. -- Backup Device List -- To quit program, press <Q>. To select a different starting device, use arrow keys, then press <Enter>.
Update in progress for the highlighted device... % This will take approximately 2 minutes. Do NOT power down! -- Backup Device List --The %, in the above message, is a dynamic spinner that indicates activity. After the final update, the screen is again redrawn to show the final status. You are shown one of following messages in the second and third lines:
Device-in-use by another program. Will end in 10 seconds. Device needs DOS only mode update. Will end in 10 seconds. Device needs alternate method update. Will end in 10 seconds. Device inaccessible. Will end in 10 seconds. Update successful. Will end in 10 seconds. Device already up-to-date. Will end in 10 seconds. Update failed. Will end in 10 seconds. Press any key to end immediately. -- Backup Device List --Information that controls backup device recognition and firmware file correspondence resides in the mandatory initialization file, tapedrv.ini. For details, see tapedrv.ini Syntax.
Screen 1 gives an example of a system before update commences.
Update pending. Update will start in in 25 seconds. Press <Enter> to immediately update device, or <Q> to quit. Device Address: Controller_Number/SCSI_Device_ID.Logical_Unit_Number Current Update Targ Device Revi- Revision Unit Address Vendor Product sion State Old,New Status ---- ------- -------- ---------------- ---------------- ------------------ =>0 0/1.0 Seagate STT8000A 5.48 Out-of-date 5.48,5.51 Waiting < 1 1/0.0 IBM ULTRIUM-TD1 09A1 Out-of-date 09A1,0BN1 Waiting 2 1/1.0 IBM ULTRIUM-TD1 0BN1 Up-to-date 3 1/13.0 SEAGATE AIT 04j9 Unrecognized-device To quit program, press <Q>. To select a different starting device, use arrow keys, then press <Enter>.In Screens 1, 2, and 3, "=>...<" means "reverse video bar" and the % is a spinning indicator.
When update commences Screen 2 might look like this:
Update in progress for the highlighted device... % This will take approximately 2 minutes. Do NOT power down! Device Address: Controller_Number/SCSI_Device_ID.Logical_Unit_Number Current Update Targ Device Revi- Revision Unit Address Vendor Product sion State Old,New Status ---- ------- -------- ---------------- ---------------- ------------------ =>0 0/1.0 Seagate STT8000A 5.48 Out-of-date 5.48,5.51 Updating< 1 1/0.0 IBM ULTRIUM-TD1 09A1 Out-of-date 09A1,0BN1 Waiting 2 1/1.0 IBM ULTRIUM-TD1 0BN1 Up-to-date 3 1/13.0 SEAGATE AIT 04j9 Unrecognized-device
Screen 3 depicts the update of the second device.
Update in progress for the highlighted device... % This will take approximately 2 minutes. Do NOT power down! Device Address: Controller_Number/SCSI_Device_ID.Logical_Unit_Number Current Update Targ Device Revi- Revision Unit Address Vendor Product sion State Old,New Status ---- ------- -------- ---------------- ---------------- ------------------ 0 0/1.0 Seagate STT8000A 5.51 Up-to-date 5.48,5.51 Success =>1 1/0.0 IBM ULTRIUM-TD1 09A1 Out-of-date 09A1,0BN1 Updating< 2 1/1.0 IBM ULTRIUM-TD1 0BN1 Up-to-date 3 1/13.0 SEAGATE AIT 04j9 Unrecognized-device
Screen 4 shows a successful completion.
Update successful. Will end in 10 seconds. Press any key to end immediately. Device Address: Controller_Number/SCSI_Device_ID.Logical_Unit_Number Current Update Targ Device Revi- Revision Unit Address Vendor Product sion State Old,New Status ---- ------- -------- ---------------- ---------------- ------------------ 0 0/1.0 Seagate STT8000A 5.51 Up-to-date 5.48,5.51 Success 1 1/0.0 IBM ULTRIUM-TD1 0BN1 Up-to-date 09A1,0BN1 Success 2 1/1.0 IBM ULTRIUM-TD1 0BN1 Up-to-date 3 1/13.0 SEAGATE AIT 04j9 Unrecognized-device Update completed successfully.
Screen 5 depicts an abnormal completion.
Update failed. Will end in 10 seconds. Press any key to end immediately. Device Address: Controller_Number/SCSI_Device_ID.Logical_Unit_Number Current Update Targ Device Revi- Revision Unit Address Vendor Product sion State Old,New Status ---- ------- -------- ---------------- ---------------- ------------------ 0 0/1.0 Seagate STT8000A 5.51 Up-to-date 5.48,5.51 Success =>1 1/0.0 IBM ULTRIUM-TD1 09A1 Out-of-date 09A1,0BN1 FAIL < 2 1/1.0 IBM ULTRIUM-TD1 0BN1 Up-to-date 3 1/13.0 SEAGATE AIT 04j9 Unrecognized-device TAPEDRV8580 error: An inquiry error occurred after Flashing firmware. Firmware update status unknown.
The --autock and --autosim commands provide a means of testing both the character graphics interface and firmware file handling using simulated backup devices. A simulated backup device list is generated from [<Device_section>] data in tapedrv.ini.
Both commands are similar to --autoupdate in that inquiry strings are validated, and firmware file integrity is verified. If a log file is specified (using the -l [+]<logfile> option), then WriteBuffer commands that would be used transfer firmware to tape devices are recorded in the log file.
--autock is meant for use in verification of firmware update CD-ROMs. To speed the verification, a 2 second delay is used between simulated device updates rather than the normal delay specified by [autoupdate] UpdateDelay. So that all firmware files can be tested, simulated DOS mode only updates are performed under Windows.
--autosim is meant for interactive testing of the user interface. --autosim does not use the special conditions used by autock.
--autock and --autosim accept all --autoupdate options.
Example: tapedrv --autosim -p /drivemic
tapedrv --build displays the tapedrv executable's software build number.
Example: tapedrv --build
tapedrv --list shows a list of targ-unit and serial numbers.
By way of example, tapedrv --list might display the following output.Targ Device Unit Address [Vendor Product Revs] Type Serial Number ---- ------- -------------------------------- ---- ------------- 0 1.0/0.0 [Seagate STT3401A 310A] Tape TPT1090050 OEM Number: 000 1 2.0/1.0 [IBM ULTRIUM-TD1 12U2] Tape 6811050111 2 2.0/0.0 [HP C7200 140I] Changer US0MA00325
Targ-Unit is an arbritrary number assigned by tapedrv each time the program is run. Different invocations of tapedrv may have different Targ-Unit values. Targ-Unit values change because of dynamic system reconfiguration resulting from hot plugging and, sometimes, firmware update.
SCSI Address has the form: <controller>[.<bus>]/<target-id>.<lun>, or USB.
Serial Number gives the device's serial number as returned in Vital Product Data (VPD) page 0x80.
OEM Number is a one to three digit Quantum/Certance/Seagate specific value that identifies firmware configurations.
Targ-Unit and Serial numbers may be used in the -t <targ-unit> and/or -s <serial> options as backup device selection criteria for the --autoupdate, --list, --status, or --inquiry commands. For example: tapedrv --inquiry -t 1
Example: tapedrv --list > list.txt
tapedrv --listsim simulates the tapedrv --list command without actually accessing a backup device.
--listsim generates a backup device list from device section data in tapedrv.ini. Serial numbers are device section names.
--listsim accepts all --list options.
tapedrv --status reports firmware status. It is useful for determining which devices are "Out-of-date". Only those devices that indicate Out-of-date in the Device Firmware State field would be updated by a tapedrv --autoupdate command.
Example output for tapedrv --status:
tapedrv -- IBM Backup Device Firmware Utility - v1.12.01 Copyright (c) 2000-2005 IBM Corporation Device Address: Controller_Number/SCSI_Device_ID.Logical_Unit_Number Targ Device Revision Unit Address Vendor Product Current Update Device Firmware State ---- ------- -------- ---------------- ------- ------ --------------------- 1 0/5.0 SEAGATE DAT 04106-XXX 7270 7550 Out-of-date
More easily parsed information may be obtained using the -r option. For example, tapedrv status -r, might print the following.
##Tapedrv_status=1 tapedrv -- IBM Backup Device Firmware Utility - v1.12.01 Copyright (c) 2000-2005 IBM Corporation Device Address: Controller_Number/SCSI_Device_ID.Logical_Unit_Number Targ Device Revision Unit Address Vendor Product Current Update Device Firmware State ---- ------- -------- ---------------- ------- ------ --------------------- 0 0/5.0 SEAGATE DAT 04106-XXX 7270 7550 Out-of-date ##Device=0/5.0,Tape,SEAGATE DAT 04106-XXX,7270,7270,7550,9,Out-of-date ##FwStateUnrecognized=0 ##FwStateInaccessible=0 ##FwStateInUse=0 ##FwStateIgnored=0 ##FwStateCurrent=0 ##FwStateNewer=0 ##FwStateNeedsDOS=0 ##FwStateNeedsAlternate=0 ##FwStateOutOfDate=1
-r causes additional ## prefixed records to be added to the output stream. Each record is described below.
<device_address> has the SCSI device address.
<peripheral_type> is RmbDisk, Tape, CD-DVD, or Changer.
<inquiry_mfgr_product> always contains 24 characters which is the Inquiry data bytes 8 through 31 returned by the device. This includes the Vendor Identification field in the first 8 characters, and the Product Identification in the remaining 16 characters.
<inquiry_revision> always contains 4 characters which is the Inquiry data bytes 32 through 35, or Product Revision Level returned by the device.
<current_version> is variable in length and contains 0 through 4 characters giving the current device version.
<update_version> is variable in length and contains 0 through 4 characters giving the update version. That is, the version to which the device will be updated if out of date.
<device_firmware_state_number>
<device_firmware_state_text> Of these two fields, the first contains a positive integer value and the second the corresponding text describing the state of the device firmware. See Device Firmware States for a description of all possible values.
The above counter records are always present and follow all ##Device= records, if any. They summarize the number of devices found in each possible state. Each record corresponds to one of the states in Device Firmware States.
tapedrv --statussim simulates the tapedrv status command without actually accessing a backup device.
--statussim generates a backup device list from device section data in tapedrv.ini. An attempt is made to simulate each possible value for Device Firmware State field,
--statussim accepts all --status options.
The table below defines Device Firmware States. tapedrv --autoupdate will update only backup devices in the State 9: "Out-of-date".
Device Firmware States | ||
State | Description | tapedrv status Counter |
1 | Unrecognized-device | ##FwStateUnrecognized=<count> |
An "unrecognized-device" is a device that is unsupported. That is, a supported device type for which there is no matching device section in tapedrv.ini. | ||
2 | Inaccessible-device | ##FwStateInaccessible=<count> |
An "Inaccessible-device" is one that is recognized as being both present and supported, but cannot be accessed by the program. Under Windows NT/2000/XP/2003/Vista, an inaccessible device results when a supported device cannot be opened, using the CreateFile() system call, for a reason *other than* the "device is in use" (see state 3 Device-in-use), or the device can be opened, but an attempt to retrieve a vital device parameter fails. | ||
3 | Device-in-use | ##FwStateInUse=<count> |
A "Device-in-use" is one that is recognized as being both present
and supported, but cannot be accessed by the program because
another program is using the device. An attempt to open the
device returns one the following system errors.
Under Windows NT/2000/XP/2003/Vista either:
Under Linux:
| ||
4 | Ignored-device | ##FwStateIgnored=<count> |
An "Ignored-device" state indicates the device is recognized but a determination cannot be made as to whether the device is up-to-date. That is, the device matches a device section in tapedrv.ini but the section has either a missing or empty AutoFileVersion parameter. | ||
5 | Up-to-date | ##FwStateCurrent=<count> |
An "up-to-date" device state indicates no firmware update is necessary. The device both matches a device section, in tapedrv.ini, and matches the AutoFileVersion parameter within the section. | ||
6 | Newer-firmware | ##FwStateNewer=<count> |
A "Newer-firmware" device state means the device has firmware even more recent than the firmware required to be up-to-date. The command tapedrv --autoupdate will not update the device. That is, the device matches a device section in tapedrv.ini but has firmware that is newer than the version specified by AutoFileVersion parameter within the section. | ||
7 | Needs-DOS-mode-update | ##FwStateNeedsDOS=<count> |
A "Needs-DOS-mode-update" state indicates a device is "out-of-date"
but cannot be updated in the current operating system
environment because the maximum SCSI Write Buffer data transfer
size is of insufficient capacity to meet the requirements of
the device. Write buffer data transfer capacity may be limited
by the operating system, device driver, host bus adapter, or
a combination of these elements.
This firmware state is possible under Windows 95/98/Me/NT/2000/XP/2003/Vista. Neither DOS nor Linux reports this state. Currently this state is possible when the associated UpdateAlgorithm parameter, in tapedrv.ini is set to "seagate_dds1", "seagate_dds2_256k", or "seagate_travan". As a practical matter this applies only to:
| ||
8 | Needs-alternate-update-method | ##FwStateNeedsAlternate=<count> |
The "Needs-alternate-update-method" state indicates the device
cannot be updated by tapedrv --autoupdate, but rather needs
updating by an alternate method. Examples of alternate method
update are 1) physical return of the device to a service center
for "factory update" (perhaps ROM replacement), 2) update by a
program other than TAPEDRV.
As a practical matter, this state is not seen for all previous and the current (v1.12.01) versions of TAPEDRV. The "Needs-alternate-update-method" state is defined in case recognition is subsequently added for a device that cannot be updated by tapedrv --autoupdate. In order for a drive to be recognized as being in the "Needs- alternate-update-method" state, the device must match a device section in tapedrv.ini and have a firmware version that is out-of-date when compared to the AutoFileVersion parameter within the device section, and have an empty or missing AutoFileName parameter. | ||
9 | Out-of-date | ##FwStateOutOfDate=<count> |
An "Out-of-date" device state indicates that tapedrv --autoupdate would update the device. That is, the device matches a device section in tapedrv.ini, has firmware that is Out-of-date when compared to the AutoFileVersion parameter within the section, and has a non-empty AutoFileName parameter. |
--identity prints a list of backup device identities. An identity is used in relocation of a given backup device after firmware update. For a given device, plug-and-play processes will often change the system's devicefile name upon detecting a firmware update. An identity is constructed using the Vital Product Data (VPD) Identification (0x83) page. If VPD Identification is unavailable, then an identity is constructed using Standard Inquiry data and a Unit Serial Number when available. Because of memory restrictions, --identity is unavailable in 16-bit DOS mode.
Example: tapedrv --identity
--inquiry prints a hexdump style display of both Inquiry data and Vital Product Data, for all detected backup devices. This command is useful for examining data used to construct the InquiryStd, InquiryStdAscii, InquiryStdHex, VpdAscii, and VpdHex parameters in tapedrv.ini. Because of memory restrictions, --inquiry is unavailable in 16-bit DOS mode.
Example: tapedrv --inquiry > inquiry.txt
Using --inick reduces the likelihood of failure in the the field because of a syntax error in tapedrv.ini.
For each [<Device_Section>] listed in the [tapedrv] device<NN> list, the following parameters are checked;
Example: tapedrv --inick -p \drivemic > error.txt
--inireport generates a report based on the content of tapedrv.ini. A -k option gives a different format.
Example: tapedrv --inireport > report.txt
--msgck checks tapedrv.msg message numbers for duplicates and sequence. Because of memory restrictions, --msgck is unavailable in 16-bit DOS mode.
This utility command examines tapedrv.msg. Duplicate, out of sequence, excessively long messages, and messages for which there is no comparable number in an alternate language are reported. --msgck errors are formatted as follows:
.../tapedrv.msg(<line number>): <message number>: <error description>Where <error description> is one of the following:
- Excessive length
- Message is too long (approaching 2K in length).
- Duplicate
- Message number duplicates a previous number. Message numbers must be unique.
- Sequence
- Message number is less than previous message number. Message numbers should be in sequence.
- Warning: <N> entry message number save buffer full
- The buffer tapedrv msgck uses for saving numbers for number checking is full. tapedrv.c needs to be modified.
--updatealg_list prints a list of update algorithms.
Example: tapedrv --updatealg_list
--updatealg_attr prints a list of update algorithms and their attributes.
Example: tapedrv --updatealg_attr > upattr.txt
tapedrv.ini is a mandatory file that contains initialization information and other data. A primary function of tapedrv.ini is to specify parameters used for backup device recognition and firmware file correspondence.
A -i <inifile> command line option may be given to explicitly specify an initialization file other than tapedrv.ini. For example,
tapedrv --autoupdate -i lto.ini
When a -i <inifile> option is not given, then at initial program load, tapedrv attempts to open and read tapedrv.ini from the following places in order given: First in the current directory, then the -p <firmware_path> option, if given, and finally the directory from which tapedrv was loaded.
tapedrv.ini may be modified with any text editor. There are three types of lines in tapedrv.ini: comment, section, and parameter.
Comment lines begin with a semicolon (;). Example:
; this is a comment line
Section lines mark the beginning of a group of parameters and are enclosed in brackets ([]). For example, the following marks the start of the tapedrv global initialization section:
[tapedrv]
Parameter lines are of the form <parameter>=<value>. By way of example, the following parameter shows where a firmware file may be found:
AutoFileName = v8???000.bin
Section and parameter names are case insensitive.
string1,"string2" , string3
For most parameters, only the first string in a list is significant. Thus, for most parameters, strings beyond the first are ignored.
Each string in a list, may be an unquoted, quoted, or a combination. For unquoted strings, leading and trailing white space is stripped. White space and commas within matching quotes are preserved. Unquoted and quoted strings, between commas, are concatenated. For example, the input string text string
"a", b, " c,d" e "fg", "z",,is the same as the six comma separated string list
"a", "b", " c,defg", "z", "", ""
In order for a string to contain a literal comma (one that is not a string list separator), the comma must either appear between matching double quotes ("xx,yy") , or be escaped using a grave accent (xx`,yy). A literal double quote is represented using a grave accent (`"). A double grave accent (``) represents a literal grave accent. For example the input
a b`, c
is taken as the single string
"ab,c"
String values for InquiryStd and AutoFileName are patterns. Patterns are matched with actual strings returned by the SCSI Inquiry command or by system file directory services.
A pattern is an ASCII string that may contain the control characters: ` [ ? * {
A pattern containing control characters may be capable of matching more than one actual string. Filename patterns are case insensitive. Other patterns are case sensitive.
Control characters are described in order precedence, highest first:
` Escape, (a grave accent) disables the special meaning (if any) of the character following (if any) so that it can be matched literally rather than being taken as a pattern control. Use a double grave accent (``) to match a single grave (`). The notation "`?" says match "?" literally.
[characters] Matches a single character with any in list of characters enclosed by brackets. A pair of characters separated by a "-" additionally matches any of the characters lexically between the two. Empty brackets ([]) and any unbalanced brackets are taken literally. The notation [ac-e] matches a c d or e. The notation [-ac-e{}?*`;``] matches - a c d e { } ? * ; or `
? Matches any single character.
* Matches any string including an empty string. The notation a*?[bd-x]z says match a string beginning with a, followed by zero or more undefined characters, and ending with three characters, the first being any single character, the second being either b, or d through x, and the final being z.
{pat1,pat2} Braces enclosing at least one comma, specifies a comma separated list of patterns. Braces may be nested. A final unbalanced {, or any unbalanced }, is taken literally. The notation {a,bc} is shorthand for a, or bc. The notation a{,b{c,de},{f}}g is shorthand for ag, abcg, abdeg, or a{f}g.
When directory separators are used in filename patterns, the forward slash, /, is preferred for compatibility with both Windows and Linux. Wild cards are disallowed for logical drive names (e.g., X:), and directory separators.
The [tapedrv] section contains global initializations for tapedrv.
When ide_search_length=2, then ide0_* (the Primary IDE adapter) is searched first, ide1_* (the Secondary IDE adapter) is searched second, and ide2_* and ide3_* are ignored.
Each supported backup device has its own [<Device_Section>] In order to be used, a given [<Device_Section>] must be mentioned as a devices<NN> = <Device_Section> entry in the [tapedrv] section. A [<Device_Section>] has the following parameters:
<peripheral_type> has a string indicating which peripheral device type to match. The peripheral device type is a 5-bit binary field at Inquiry data byte 0, bits 4..0. Recognized ASCII values and binary mappings for <peripheral_type> are:
ASCII Binary RmbDisk* 0 Tape 1 CD-DVD 5 Changer 8
* For RmbDisk, the RMB (ReMovable Block device) bit in Standard Inquiry data byte 0, bit 7 must also be set.
<inquiry_string> is an ASCII Pattern string that is compared against the ASCII field of standard Inquiry data returned by the device. Where the ASCII field is 28 character contiguous field beginning at byte 8 and includes the Vendor Identification, Product Identification, and Product Revision Level fields. <inquiry_string>s are case sensitive.
An InquiryStd string template may be generated using the command tapedrv --inquiry.
InquiryStdHex is useful for identifying a Firmware Personality byte often kept in byte 41 of Inquiry data.
When the InquiryStdHex parameter is specified, all available standard Inquiry data (up to 255 bytes) is retrieved from the device. Then, the actual number data bytes read is converted into an ASCII hexadecimal string. This hex string is then used as the target of InquiryStdHex pattern matching.
InquiryStdAscii and InquiryStdHex values consists of an integer and a string separated by a ":".
<byte offset> is an integer value, in the range 0 through 254, giving the byte offset in the Inquiry data at which to begin <ascii pattern> or <hex pattern> matching. For example, 41 if we are interested in data starting at byte offset 41 of Inquiry data. This number may be expressed as decimal, hexadecimal (with an 0x prefix), or octal (with a 0 prefix). An empty <byte offset> is erroneous.
<ascii pattern> is an ASCII Pattern string that is compared against the ASCII Inquiry data returned by the device. The final character in <ascii pattern> should be a '*' when the remainder of Inquiry is not of interest. Pattern matching is case sensitive.
<hex pattern> is an ASCII Pattern string using characters from the set *?[-]{}0123456789ABCDEFabcdef. A <hex pattern> is compared against Inquiry data after the data is converted from binary to a hexadecimal ASCII string called the target string. Pattern matching begins at <byte offset> in the target string. Often the final character in <hex pattern> is an '*' when the remainder of the data is not of interest. Pattern matching is case insensitive.
For example, if a device returns the following 56 bytes of Inquiry data:
0: 01 80 02 02 33 00 00 38 51 55 41 4e 54 55 4d 20 ....3..8QUANTUM 16: 44 4c 54 37 30 30 30 20 20 20 20 20 20 20 20 20 DLT7000 32: 32 35 36 30 71 60 00 07 32 0f 01 00 00 3f 00 00 2560q`..2....?.. 48: 00 00 00 02 41 30 30 33 ....A003
The the data is converted to the following 112 character ASCII hexadecimal string (in actuality, all on one line):
"01800202330000385155414e54554d20 444c5437303030202020202020202020 3235363071600007320f0100003f0000 0000000241303033"
Using the parameter
InquiryStdHex = "41:0f*"specifies that Inquiry byte 41 must be a 0f hexadecimal. Using
InquiryStdHex = "41:[0-4]???{05,3c,99}*"specifies that byte 41 must be in the range 00 through 4f, and byte 43 must be either 05, 3c, or 99.
When these parameters are given, they cause the entire VPD page (upto 255 bytes) to be retrieved for the given VPD page number.
VpdAscii and VpdHex parameter values consists of three fields separated by colons (":").
<page number> is an integer value, in the range 0 through 255, giving the Inquiry Vital Product page number whose data is to be matched against the pattern data. This number may be expressed as decimal, hexadecimal (with an 0x prefix), or octal (with a 0 prefix). For example 193, 0xc1, and 0301 specify the same page. An empty <page number> field is erroneous.
<byte offset> is an integer value, in the range 0 through 254, giving the byte offset in the VPD data at which to begin <ascii pattern> or <hex pattern> matching. For example, 41 if we are interested in data starting at byte offset 41 of VPD data. This number may be expressed as decimal, hexadecimal (with an '0x' prefix), or octal (with a '0' prefix). An empty <byte offset> is erroneous.
<ascii pattern> is an ASCII Pattern string that is compared against the ASCII VPD returned by the device. The final character in <ascii pattern> should be a * when the remainder of VPD is not of interest. Pattern matching is case sensitive.
<hex pattern> is an ASCII Pattern string using characters from the set *?[-]{}0123456789ABCDEFabcdef. A <hex pattern> is compared against VPD after the data is converted from binary to a hexadecimal ASCII string called the target string. Pattern matching begins at <byte offset> in the target string. Often the final character in <hex pattern> is an '*' when the remainder of the data is not of interest. Pattern matching is case insensitive.
If AutoFileVersion is missing or has an empty string, than the drive is displayed as Ignored device. Any non-empty <4-character version> having less than 4-characters is right padded with ? to 4 characters.
To assure correct New version display, "?" must be used when both these conditions occur: 1) the character will not change as a result of the update, and 2) the character is not "fixed" based on the make and model. For example for a Quantum DLT4000, the first and second characters indicate the "servo code level". The servo code level is neither altered by firmware update, nor fixed for the make and model. The third and fourth characters indicate the "firmware code level" and are altered by firmware update. Thus, for the DLT4000, if AutoFileName represents version 45 firmware, then set AutoFileVersion to the string, "??45".
For example if <control> is "3210", all 4 characters of the version are compared in reverse order from right to left. If <control> is "23", than only the final 2 characters of the version are compared from left to right. The string "??23" is identical to "23" because "??" is ignored. If CompareControl is missing or has an empty <control> string, or contains no valid characters then the default value, "0123", is used.
"<algorithm>" | Backup Device |
"standard" | Standard tape or changer |
"exabyte_mammoth" | Exabyte Mammoth |
"exabyte_vxa" | Exabyte VXA-2 |
"seagate_travan" | Seagate Travan TR-4, TR-5 |
"seagate_tr7" | Seagate Travan TR-7 |
"seagate_dds1" | Seagate Piranha, Perigrine DDS-1, DDS2-2 |
"seagate_dds2_256k" | Seagate Scorpion DDS-1, DDS-2 w/ 256K EEPROM |
"seagate_dds2_512k" | Seagate Scorpion DDS-1, DDS-2 w/ 512K EEPROM |
"seagate_dds3" | Seagate DDS-3 |
"seagate_dds4" | Seagate DDS-4, DAT-72 |
"panasonic_ujda" | Panasonic UJDA780, UJDA782 |
"panasonic_uj8" | Panasonic UJ870 |
"prostor_rdx" | ProStor RDX |
"quantum_govault" | Quantum GoVault |
"quantum_dlt" | Quantum/Benchmark DLT (w/ 4KB fw transfers) |
"quantum_dlt_8k" | Quantum/Benchmark DLT (w/ 8KB fw transfers) |
"quantum_dltvs_8k" | Quantum/Benchmark DLT-VS (w/ 8KB fw transfers) |
"ibm_ultrium" | IBM Ultrium |
"ibm_library" | IBM Library |
"hp_dds" | HP DDS |
"hp_ultrium" | HP Ultrium |
"hp_library" | HP Library/Autoloader |
"adic_faststor" | ADIC Autoloader |
<flagcharacter> | Meaning |
c | Skip post firmware update inquiry verification if supported Changer is detected. |
Z | Write firmware to LUN 0 of same SCSI Device ID. |
<prep_command> | Description | Device type |
Rewind | Rewinds tape | Tape |
Unload | Unloads tape, or Dismounts, ejects disk | Tape, RmbDisk, CD-DVD |
Dismount | Dismounts filesystem | RmbDisk, CD-DVD |
InitElementStatus | Scans tape slots | Tape, Changer |
NoOp | No operation | All |
; tapedrv.ini -- tapedrv initialization ; ; ide_search_length=<number of ide channels to search> ; This parameter controls the number of IDE adapters to search ; starting with ide0_*. ; When ide_search_length=2, ide0_* (the Primary IDE adapter) is ; searched first, ide1_* (the Secondary IDE adapter) is searched ; second, and ide2_* and ide3_ are ignored. ; ide[0-3]_port=<base ide io port> ; ide[0-3]_irq=<ide interrupt request number> ; [tapedrv] magic = 0x5400 ide_search_length=2 ide0_port=0x1f0 ide0_irq=14 ide1_port=0x170 ide1_irq=15 ide2_port=0x1e8 ide2_irq=11 ide3_port=0x168 ide3_irq=10 devices00 = IBM_Ultrium-TD1_SCSI devices01 = Seagate_Scorpion-40 devices02 = EndOfDevices [autoupdate] UpdateDelay = 25 SkipDelay = 5 FinalDelay = 25 [IBM_Ultrium-TD1_SCSI] Description = "IBM Ultruim-1" InquiryStd = "Tape:IBM ULTRIUM-TD1 ????" AutoFileName = "0BN1.fmr" AutoFileVersion = "0BN1" UpdateAlgorithm = "ibm_ultrium" UpdateSeconds = 121 [Seagate_Scorpion-40] ; Switch 7 On=SEAGATE..., Off=ARCHIVE... ; Scorpion-40 and Scorpion-240 use same file Description = "Seagate Scorpion-40 DDS-4: STDx401LW" InquiryStd = "Tape:{SEAGATE DAT ,ARCHIVE Python} 06240-XXX8???" AutoFileName = "v8???000.bin" AutoFileVersion = "8160" CompareControl = "?123" UpdateAlgorithm = "seagate_dds4" UpdateSeconds = 60
tapedrv.msg contains messages used by the tapedrv program. The message file is a text file which has message entries and comments. Each message entry consists of a message number and a message string.
Message numbers are positive hexadecimal integers.
Message strings are similar to strings in the C programming language. Each message string is double quoted. Multiple quoted strings are concatenated. That is, "string1" "string2" is the same as "string1string2". With in a message string, certain escape sequences are recognized. Escape sequences begin with a Backslash (\).
Escape Sequence | Meaning |
\a | Alert (bell) |
\b | Backspace |
\f | Form feed |
\n | Newline |
\r | Carriage return |
\t | Tab |
\v | Vertical tab |
\\ | Backslash (\) |
\" | Double quote (") |
\<ooo> | <ooo> is a one through three digit octal number in the range 0 (or 000) through 377 octal (equivalent to 255 decimal) representing an ASCII code. For example, \101 is the same as the A character, and \40 or \040 is the same as the SPACE ( ) character. |
Two types of comments are recognized, the double slash (//) and the traditional C language style slash-star star-slash (/**/).
A double slash (//) opens a comment which continues until end of line. For example:
// This is a double slash comment
A slash-star star-slash (/**/) comment is opened by a slash-star (/*) and continues, possibly for several lines, until closed by a star-slash (*/). For example:
/* This is a slash-star star-slash comment */
0020 "<build_number>" must agree with the build number stored in the tapedrv executable. For example, 0020 "1067"
Each time tapedrv is invoked, it performs certain checks on the message file. The syntax of the tapedrv.msg is checked. If there is an error in syntax, one of following errors are shown:
.../tapedrv.msg(<line number>): Message file syntax error: Message number to large Unexpected end-of-file in c-string Unexpected end-of-file in comment begun on line <line number> '<character>': Unquoted charactertapedrv also checks tapedrv.msg for a special version message, message number 20, and may show one of these errors:
".../tapedrv.msg": Version message (20) not found ".../tapedrv.msg": Incorrect message file versionFor most messages, when tapedrv cannot locate a given message number, one of these errors is shown:
".../tapedrv.msg": <message_number>: Message not foundSee also msgck Command.
For DOS/Windows, tapedrv.exe contains two program images -- a 16-bit DOS program called TAPEDRV16, and a 32-bit Win32 Intel platform program called TAPEDRV32. One of the two images is selected by the OS loader at runtime.
TAPEDRV16 executes in MS-DOS, or Windows 95/98/Me when booted in MS-DOS Only mode. The Video BIOS (int 10) API is used for screen updates.
TAPEDRV32 executes in Windows 95/98/Me in Graphics (normal) mode, or Windows NT 3.51/NT 4.0/2000/XP/2003/Vista. The Win32 Console I/O API is used for screen updates.
For Linux, a platform specific executable, tapedrv.linux.<arch>. <arch> is the name of a platform architecture. For example, i386, x86_64 or ia64. The ncurses library is used for screen updates.
Early during program initialization, a device enumeration phase is executed. The enumeration phase constructs a list of backup devices. When the --autoupdate command is given, a second phase steps through the list of backup devices and updates each 'Out-of-date' device with firmware from files specified in tapedrv.ini.
TAPEDRV32, when running in Windows 95/98/Me in Graphics mode, finds and accesses both SCSI and ATAPI backup devices via %SysetmRoot%\system\WNASPI32.DLL. WNASPI32.DLL provides a 32-bit ASPI interface and should be present in all Windows 95/98/Me installations.
TAPEDRV32, when running in Windows NT 3.51/NT 4.0/2000/XP/2003- /Vista/2008/7, access both ATAPI and SCSI backup device by the OS provided SCSI Pass Through Interface (SPTI). For Windows 2000 and later, TAPEDRV scans the Plug-and-Play enumeration using the SetupDi*() API. To locate Disk/CD-DVD devices, the drive letters C: through Z: are scanned. Finally, the registry's "HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\Scsi" tree is scanned for backup devices. Backup devices may be either "Claimed", by a Disk/CD-DVD/Tape/Changer Class driver, or "Unclaimed". For unclaimed Tape/Changer devices the SPTI is via a SCSI Port driver. For each claimed backup device, SPTI is via its associated Class driver. Beginning with Windows 2000, IOCTL_STORAGE_GET_DEVICE_NUMBER, is used to weed out duplicate device detections.
tapedrv.linux finds devices using enumeration information from /proc/scsi/sg/device_strs (for 2.4 and earlier kernels), /sys/class/scsi_generic (for 2.6 and later kernels), and /dev/hd<X> (where <X> is a through r) (for 2.4 and early 2.6 kernels). The ioctls SG_IO, or CDROM_SEND_PACKET are used to update device firmware.
InquiryStd = "Tape:SEAGATE DAT 02779-XXX6???".If there is an InquiryStd match, then all other qualification parameters -- InquiryStdAscii, InquiryStdHex, VpdAscii, VpdHex, and InquiryCFR_OEM -- if present in the same [<Device_Section>], are compared with values returned by the device.
On exit, tapedrv --autoupdate returns one of the following codes, sorted by priority, from lowest to highest:
On exit, tapedrv status returns one of the following codes:
Pri-
orityExit
CodeDescription 1 0 Backup device(s) either up-to-date, or successfully updated One or more supported backup storage devices was identified, and these devices were either already up-to-date, or their firmware was successfully updated.
1 171 No supported backup device found No supported backup storage device was identified. However, an unsupported backup storage device may be present.
2 9 Bacup device is inaccessible A backup storage device was either partially or fully recognized (e.g. appears in the Windows registry or Linux /proc/scsi/sg/device_strs). However, the device is inaccessible (for a reason other than exit code 8: "device-in-use"). Typical causes for inaccessibility are either a device driver is disabled or not installed. This exit code is also reported when a device fails to open for a reason other than "device- in-use".
3 6 Backup device needs update by an alternate method One or more supported devices was found to have out-of-date firmware. However, this program is incapable of updating the device. An alternate method of update is required. Alternate methods may include update using a different program, replacement of a EEPROM, or factory update.
4 7 Backup device needs update in DOS only mode A supported device was found to have out-of-date firmware. However, this program can only update the firmware while booted in 16-bit DOS only mode. Firmware cannot be updated from either Windows 95/98/Me in graphics mode or from Windows NT/2000/XP/2003/Vista.
5 5 Operator canceled automatic update 5 8 Backup device in use by another program A supported device was either partially or fully recognized (e.g., the device appears in the Windows registry or Linux /proc/scsi/sg/device_strs). However, the device cannot be opened because as it is in use by another program.
6 1 Backup device update failure One or more supported devices were identified, and one or more of these devices required a firmware update. However, at least one device failed to be updated.
6 4 Unrecoverable error unrelated to the backup device These errors include
- Unable to open tapedrv.msg, tapedrv.ini, or firmware file
- Invalid or corrupt firmware file
- Insufficient memory
Exit
CodeDescription 0 Tape status successfully reported 4 Unrecoverable error making it impossible to report status
The following lists tapedrv errors and commentary.
TAPEDRV8010 error: "<program function>": Out of memory
Comment:
There is likely a programming error in TAPEDRV. Contact technical support.
TAPEDRV8110: No IDE adapter found.
TAPEDRV8111: The DOS ASPI Manager was not found.
TAPEDRV8112: No IDE adapter found, and the DOS ASPI Manager was not found.
Comment:
If you have an ATAPI/IDE backup device and the message says "No IDE adapter found", verify that the appropriate IDE channel is enabled in the BIOS setup. If you have a SCSI backup device and the message says DOS ASPI Manager was not found", and you are booting from floppy or hard disk, you may need to install a DOS ASPI driver for the host adapter. A line similar to the following should appear in the CONFIG.SYS that resides on the floppy or hard disk from which DOS boots:
DEVICE=<aspi driver name>
An ASPI driver is usually supplied by the manufacturer of the SCSI host adapter (controller). Consult your SCSI host adapter manual for information on the ASPI driver. The Windows 98/Me Startup Diskette is pre-configured with ASPI drivers that support popular SCSI host adapters.
TAPEDRV8113: The Windows 95/98/Me ASPI Manager was not found.
Comment:
Normally all Windows 95/98/Me installations include an ASPI Manager, thus the Windows installation may be corrupt. Try rebooting in DOS only mode. If you have a SCSI backup device, you will need to have a DOS ASPI manager driver configured. See TAPEDRV8111 comment.
TAPEDRV8115: No {ATAPI/IDE,SCSI/FC} host adapters found.
Comment:
You may need to install an ATAPI/IDE or SCSI/FibreChannel driver
for the host adapter (also called a controller) to which the
backup device is attached.
For NT 4.0, click
Start -> Settings -> Control Panel -> SCSI -> Drivers
If you see that an adapter driver is installed but not started,
then the driver is, likely, not recognizing the backup device.
In this case, check the hardware installation.
See TAPEDRV8510 comment.
For Windows, check for the existence of an ATAPI/IDE or
SCSI/FibreChannel controller in the Device Manager by right
clicking on
My Computer -> Properties
then selecting the Device Manager tab, or the Hardware tab and Device Manager button. If the controller, to which the tape device is connected, is not present, use
Start -> Settings -> Control Panel -> Add/Remove Hardware
to detect and install a driver for the controller.
TAPEDRV8130 error: [<Device Section>]: "<filepattern>":
File find error: <error description>
Pattern syntax: Missing ]
Pattern syntax: Missing }
Insufficient stack memory
File not found
Filename not unique
Comment:
These errors indicate a failure to match or locate a file during an autoupdate operation. Typical causes of these errors include:
- An incorrect AutoFileName = <filepattern> in the named device section of tapedrv.ini.
- Multiple filenames match the <filepattern>.
- An invalid value for the -p <firmware path> option on the command line.
- The firmware file is missing.
TAPEDRV8140 error: "<inquiry string>", "<firmware file>":
Firmware file open error: <system error>
TAPEDRV8142 error: "<inquiry string>", "<firmware file>":
Firmware file read error: <system error>
TAPEDRV8143 error: "<inquiry string>", "<firmware file>":
Firmware file seek error: <system error>
Comment:
Possible causes of these errors include:
- The file is missing.
- Another process has opened the file for exclusive access.
- The file does not have read permission.
- The file or filesystem is corrupt.
TAPEDRV8150 error: "<inquiry string>", "<firmware file>"(<line>):
Hexfile record error: <error description>.
TAPEDRV8160 error: "<inquiry string>", "<firmware file>"(<line>):
Hexfile syntax error: <error description>.
TAPEDRV8170 error: "<inquiry string>", "<firmware file>":
Firmware file signature invalid.
TAPEDRV8180 error: "<inquiry string>", "<firmware file>":
<n> byte firmware image size: Invalid.
TAPEDRV8190 error: "<inquiry string>", "<firmware file>":
<n> byte firmware file image size.
does not match <n> byte device requirement.
TAPEDRV8195 error: "<inquiry string>", "<firmware file>":
<n> byte firmware file image size.
Firmware file incompatible with device hardware platform.
Comment:
The firmware file may be corrupt. Obtain a new copy of the firmware file intended for your backup device model then try again.
TAPEDRV8200 error: "<inquiry string>", "<firmware file>":
Insufficient memory for <n>K transfer buffer.
TAPEDRV8201 error: "<inquiry string>", "<firmware file>":
Insufficient memory for <n>K transfer buffer (additional <m>K needed).
Comment:
If using MS-DOS, Windows 3.1x or, Windows 95/98/Me in MS-DOS only mode, you may need to remove (or comment out) unnecessary drivers and/or "terminate-and-stay-resident" (TSR) programs from CONFIG.SYS and AUTOEXEC.BAT to increase available memory for TAPEDRV.
TAPEDRV8210: "<inquiry string>", "<firmware file>":
Cannot update device's firmware in Windows 95/98/Me Graphics mode
(within a DOS Box). Reboot your system into MS-DOS only mode.
TAPEDRV8220: "<inquiry string>", "<firmware file>":
Cannot update device's firmware from Windows NT/2000/XP.
Use MS-DOS or Windows 95/98/Me in MS-DOS Only mode.
Comment:
Backup device update require a Write Buffer data transfer with transfer size that exceeds the capability of Windows. Backup device update should be successful when the system is booted in DOS mode.
TAPEDRV8270 error: "<inquiry string>": Backup device inaccessible: Device cannot be accessed via either a class driver or a SCSI port driver. A class driver cannot be accessed as there is no 'DeviceName' in the registry. Possible causes: Device driver not installed, device service disabled, or device driver failed to load.
Comment:
For a given backup device, that was found to be attached to a SCSI port, and marked as "claimed by a Windows class driver", the DeviceName, by which the class driver is accessed, can not located through an examination of the registry. To recover, use Device Manager to remove the backup device, then use Device Manager's "Scan for hardware changes" rescan for the backup device. Then try firmware update again.
TAPEDRV8272 error: "<inquiry string>": Backup device inaccessible:
"<devicefile>": Open: <additional error information>
Comment:
Some other process may be using the backup device. This includes
a backup application, diagnostic, agent, service, another
instance of the firmware update program, or some other process.
The process must be located and terminated to make the tape
device accessible.
On Windows 2000/XP/2003/Vista, for a Library, Removable Storage
Manager (RSM) may be using the Medium Changer component of the
Library. One way to stop (or start) RSM is by way of the
Service Control Manager:
- Right click "My Computer", then select Manage.
- In Management Console, open the tree Services and Applications -> Services.
- In Services, locate and right click "Removable Storage Manager", then select Start, Stop, or Restart as appropriate.
Another way to stop or start the RSM service is by way of command prompt using the NET.EXE command. For example:
C:\> net stop ntmssvc
C:\> net start ntmssvc
On Windows you may be able to locate the process using
<Ctrl><Alt><Del> to open the task manager and examining the
task list or running processes list.
On Linux, you may be able to locate the process that has the
device open using the command:
# ps -efl | fgrep <device-name>
Setting the run level to single user mode by
# telinit 1
might close any backup agent or other process that is using the backup device (and revert from a GUI to a character interface).
TAPEDRV8274 error: "<inquiry string>": Backup device inaccessible:
"<devicefile>": Get parameters: <additional error information>
TAPEDRV8276 error: "<inquiry string>": Backup device inaccessible:
"<devicefile>": SCSI Input/Output: <additional error information>
Comment:
There is likely a programming error in TAPEDRV. Contact technical support.
TAPEDRV8310 error: Backup device re-select failure:
<additional error information>
TAPEDRV8320 error: Backup re-inquiry mismatch:
Expected device identity: "<device identity>"
Got device identity "<device identity>"
TAPEDRV8330 error: Backup device is not responding:
<additional error information>
Firmware update not started.
TAPEDRV8340 error: Device communication error: Too many Unit Attentions: <additional error information> Firmware update not started.
TAPEDRV8350 error: Device communication error: Unexpected sense key:
<additional error information>
Firmware update not started.
Comment:
Verify that backup device's cables are securely connected.
See TAPEDRV8510 comment.
TAPEDRV8360 error: Timeout waiting device to become stable:
<additional error information>
Firmware update not started.
Comment:
When updating a medium changer, try inserting a tape in the
first storage slot before running update procedure.
Verify that backup device's cables are securely connected.
See TAPEDRV8510 comment.
TAPEDRV8410 error: [<device section>]: UpdateAlgorithm "<algorithm name>":
Unrecognized or missing
Comment:
The UpdateAlgorithm parameter, for the named device section in tapedrv.ini, needs to be edited.
TAPEDRV8510: A backup device was NOT found.
Comment:
Verify that backup device's cables are securely connected.
If an ATAPI/IDE backup device is being used with another device
(for example, CD-ROM) on the same IDE cable, make sure that one
is configured as master and the other as slave.
If a SCSI backup device is being used, verify that the SCSI bus is
properly terminated. Make sure the backup device's SCSI ID does not
conflict with another device on the SCSI bus.
- Shutdown and turn power off.
- Examine cables and connections.
- Power up and reboot the system.
- Try again.
If you specified a particular backup device using -t <targ-unit> and/or -s <serial> command line options, then enter the command
tapedrv --list
(without the -t or -s options) then, examine the output to verify whether the <targ-unit> and/or <serial> parameters are correct.
TAPEDRV8561 error: "<device name>" "<inquiry string>": Failed to dismount volume.
Retry firmware update after closing all windows and applications
context menu, or an eject button on the device.
that access the device.
TAPEDRV8562 error: "<device name>" "<inquiry string>": Failed to eject media.
Retry firmware update after ejecting media via
context menu, or an eject button on the device.
If eject fails, use the (paper clip) emergency eject
method documented in the device owner's manual.
Comment:
Device requires dismounting of filesystem to avoid corruption, or ejection of medium before proceeding. Take appropriate action, then retry firmware update.
TAPEDRV8563 error: <ctlr>[.<bus>]/<targid>.<lun>, "<inquiry string>":
Can't locate LUN0 with same SCSI ID
Firmware update failed.
Comment:
The firmware for this device must be loaded through LUN 0 even though the device actually exists at some non-zero LUN (with the same SCSI target ID). However, LUN 0 cannot be located.
TAPEDRV8564 error: "<inquiry string>", "<firmware file>":
image offset 0x<n>: WriteBuffer(mode=0x<n>, adrs=0x<n> length=<n>):
<additional error information>
Retry after inserting a write-enabled and password-unlocked
data cartridge.
Comment:
GoVault requires a write-enabled, and password-unlocked (if password protected) cartridge be inserted prior to firmware update.
TAPEDRV8565 error: "<inquiry string>", "<firmware file>":
image offset 0x<n>: WriteBuffer(mode=0x<n>, adrs=0x<n> length=<n>):
<additional error information>
The backup device rejected the firmware.
Try selecting a different firmware file.
TAPEDRV8566 error: "<inquiry string>", "<firmware file>":
Timeout waiting for firmware flash write operation to complete.
Firmware update status unknown.
-- For an external USB device, power-cycle the device.
-- Otherwise shutdown, power-cycle the computer and device, then reboot.
From "<tapedrv directory>", use the command, "tapedrv status" to determine
whether firmware was updated from "<xxxx>" to "<zzzz>".
TAPEDRV8570 error: "<inquiry string>", "<firmware file>":
image offset 0x<n>: WriteBuffer(mode=0x<n>, adrs=0x<n> length=<n>):
<additional error information>
An error occurred while downloading firmware.
Firmware update failed.
TAPEDRV8571 error: "<inquiry string>", "<firmware file>":
image offset 0x<n>: WriteBuffer(mode=0x<n>, adrs=0x<n> length=<n>):
<additional error information>
A device read error occurred while retrieving firmware during verification.
Firmware update failed.
TAPEDRV8572 error: "<inquiry string>", "<firmware file>":
image offset 0x<n>: WriteBuffer(mode=0x<n>, adrs=0x<n> length=<n>):
Firmware retrieved from device does not match the file during verification.
Firmware update failed.
TAPEDRV8573 error: "<inquiry string>", "<firmware file>":
RDX System Offload Processor (RSOP) image offset 0x<n>:
<additional error information>
Comment:
The backup device may have rejected the new firmware. The new firmware may be incorrect for the device.
TAPEDRV8575: "<devicefile>", "<inquiry string>":
Reopen after firmware update and bus re-scan:
<additional error information>
Firmware update status unknown.
-- For an external USB device, simply power-cycle the device.
-- Otherwise shutdown, power-cycle the computer and device, then reboot.
From "<tapedrv directory>", use the command, "tapedrv status" to determine
whether firmware was updated from "<xxxx>" to "<zzzz>".
TAPEDRV8576 error: "<devicefile>", "<inquiry string>":
Inquiry error after firmware update:
<additional error information>
Firmware update status unknown.
-- For an external USB device, simply power-cycle the device.
-- Otherwise shutdown, power-cycle the computer and device, then reboot.
From "<tapedrv directory>", use the command, "tapedrv status" to determine
whether firmware was updated from "<xxxx>" to "<zzzz>".
Comment:
Matsushita/Panasonic UJDA 780/782 on Linux 2.4 may report this error. After power-cycle, 'tapedrv status' should show the updated firmware version firmware update to be correct.
GoVault may also report this error. After power-cycle, 'tapedrv status' should show the updated firmware version to be correct.
These errors occur when either the device needs to be reset in order to respond, or a driver was not successfully reinstalled. For an external hot-pluggable device, either a device power-cycle, or a (USB/SAS/SATA) data cable plug re-insertion should start the device responding. You can try Device Manager's "Scan for hardware changes" to re-install the driver. Otherwise, power cycle the computer and attached devices, then reboot the system. Check for device response, and firmware version using the command 'tapedrv status'.
TAPEDRV8590 error: "<inquiry string>", "<firmware file>":
Old version "<xxxx>", Current version "<yyyy>", Expected new version "<zzzz>":
The version did not change to the expected.
-- For an external USB device, simply power-cycle the device.
-- Otherwise shutdown, power-cycle the computer and device, then reboot.
From "<tapedrv directory>", use the command, "tapedrv status" to determine
whether firmware was updated from "<xxxx>" to "<zzzz>".
Comment:
Possible causes include:
- The backup device rejected the new firmware (if "Old version" is the same as "Current version").
- The device may need a power cycle for the new version to take effect.
- The "Expected new version" may be incorrect because the firmware filename does not contain the correct version of the firmware.
- The expected new version (kept in an AutoFileVersion parameter in tapedrv.ini) may be incorrect.
TAPEDRV8700 WARNING:
The above device(s) need power-cycling before media access.
-- For an external USB device, simply power-cycle the device.
-- Otherwise shutdown, power-cycle the computer and device, then reboot.
Comment:
Firmware update has either selected a device mode that can only be exited by power-cycle (e.g., Panasonic UJDA), or rendered an unstable device data bus state (e.g., GoVault).
3502-R14 Library with DLT7000 Tape Drives
Inquiry string: "QUANTUM DLT7000 ????" Tape
Inquiry string: "QUANTUM Powerstor L500 ????" Medium-changer
Firmware update fails for DLT7000 Drive in a 3502-R14 Library when a tape is present in the drive. Return any tapes loaded in tape drives, to storage slots before proceeding with firmware update. If the message
"TAPEDRV8360 error: Timeout waiting device to become stable"
is seen, try inserting a tape in the first storage slot.
3600 and 8502 Libraries
Inquiry string: "HP C7200 ????" Medium-changer
Inquiry string: "HP C7145 ????" Medium-changer
Both the 3600 and 8502 libraries need to be rebooted after Library firmware is updated. On autoupdate, Tape device firmware is updated prior to Library device firmware. This order of update is meant to reduce the number of reboots. On completion of Library firmware is update, a Library power cycle as well as a host system reboot is recommended.
GoVault SATAPI/USB Removable-Disk
Inquiry string: "IBM GoVault ????" Removable-disk
Reports "TAPEDRV8575: Reopen after firmware update and bus re-scan",
or "TAPEDRV8576: Inquiry error after firmware update",
but firmware update is actually successful.After firmware update, the device needs to be power-cycled.
Firmware update success isn't be determined because either the device disappeared the system plug-and-play enumeration, or the device's Inquiry data can't be read after firmware update. After a device power-cycle, firmware update status may be determined by examining the output of the command:
tapedrv status
In the output, the "Device Firmware State" should be an "Up-to-date".
Panasonic/Matsushita UJDA 780/782 PATAPI/SATAPI CD-DVD
Inquiry string: "MATSHITADVD-ROM UJDA780 D???" CD-DVD
Reports "TAPEDRV8576 error: Inquiry error after firmware update", but firmware update is actually successful on Linux 2.4 kernels.After firmware update, the device needs to be power-cycled.
Firmware update may fail because the device's Inquiry data can't be read after firmware update. After a device power-cycle, firmware update status may be determined by examining the output of the command:
tapedrv status
In the output, the "Device Firmware State" should be an "Up-to-date".
RDX Internal USB Removable-Disk
Inquiry string: "IBM RDX 3???" Removable-disk
(The 3 in the revision identifies the RDX as an Internal USB device).
Reports "TAPEDRV8573 error" on firmware update on Linux 2.4 kernels when the firmware file contains an "RDX System Offload Processor" (RSOP) firmware image.For successful update, Linux 2.6 or Windows should be used.
Travan TR4/TR5 PATAPI Tape Drives
Inquiry string: "CONNER CTT8000-A 5???" Tape
Inquiry string: "Seagate STT8000A 5???" Tape
Inquiry string: "Seagate STT20000A 8???" Tape
Reports "TAPEDRV8201 error: Insufficient memory for 282K transfer buffer (additional 154K needed)" on later Linux 2.6 kernels (about 2.6.18 and later).
These devices need a single 288,768 byte WRITE BUFFER operation to transfer firmware. Newer kernels (about 2.6.18 and later) place a new restriction on the maximum transfer size. Somewhere in about kernel 2.6.18 a Bugzilla Bug 7026 was addressed to fix a 'cdrecord' issue by changing the sg ioctl SG_SET_RESERVED_SIZE to cap the buffer size at 131,072 (=512 * 255) bytes. Patch as857 implements the change. This change brakes firmware update for the above mentioned Travan TR4/TR5 PATAPI devices.
For successful firmware update, use a Linux kernel prior to 2.1.18, or MS-DOS. RedHat 7.2 32-bit (kernel 2.4.7-10) and Fedora Core 3 32-bit (kernel 2.6.9-1.667) are known to work.
TAPEDRV8570 error under DOS using an IPSRASPI.SYS Driver
When using the IPSRASPI.SYS DOS mode ASPI raid driver on an IBM Netfinity server, the following error was observed during firmware update of a Seagate Scorpion-24:TAPEDRV8570 error: WriteBuffer(mode=7, adrs=0x00180000 length=0) error.This error is reported when the IPSRASPI.SYS driver times out a firmware update (WriteBuffer) request before firmware update is actually completed. The firmware update actually completes successfully after the message appears.
Host adapter status 0x11This error is circumvented by increasing the timeout used by the IPSRASPI.SYS driver. IPSRASPI.SYS supports the following CONFIG.SYS line parameters.
/t:<ticks> Timeout in ticks (18.2 ticks/second) /F Load even if no device is seen SCSI scan For example, the following CONFIG.SYS line gives about a 6.4 minute timeout which is sufficient (5 minutes + 1.4 minute safety margin) for updating firmware in a Scorpion-240 loader.
DEVICE=IPSRASPI.SYS /t:7000 /FCurrently, the Seagate Scorpion-240 loader needs the longest timeout (about 5 minutes) of any supported backup device. Most ASPI drivers have an infinite timeout.
Windows 2000/XP/2003/Vista -- Before Firmware Update
If the system contains a library (also called medium changers, robots, automation units, etc.) that is managed by Removable Storage Manager (RSM). Then RSM must be stopped to permit access to the library so that out-of-date firmware may be updated.To determine whether the library is managed by RSM,
To Stop RSM:
- Right click 'My Computer' and select 'Manage'.
- In 'Computer Management', follow the tree
- - Computer Management (local)
- - Storage
- - Removable Storage
- - Physical Locations [Windows 2000]
- - Libraries [Windows XP/2003/Vista]
- Examine the icons under Physical Locations or Libraries. If an icon resembles two books (one red, the other yellow) on top of cable, then it represents a library. RSM should be stopped.
Another way to stop (or start) the RSM service is by way of command prompt using the NET.EXE command. For example:
- Right click "My Computer", then select Manage.
- In Management Console, open the tree
Services and Applications -> Services.- In Services, locate and right click "Removable Storage Manager", then select Start, Stop, or Restart as appropriate.
C:\> net stop ntmssvc
C:\> net start ntmssvcWindows 2000/XP/2003/Vista -- After Firmware Update
During firmware update, the following two system dialogs (typically, on Windows 2000 prior to Service Pack 2) may appear:If an "Unsafe Removal of Device" dialog appears, ignore and close the dialog.
- "Unsafe Removal of Device" on Windows 2000.
- "Files Needed" on Windows 2000/XP/2003.
If a "Files Needed" dialog appears asking you to supply the path to the backup device driver (.sys) file, then the currently installed backup device driver can be used by entering the path to the Windows driver directory as shown:
Files Neededthen click 'OK'.
...
Copy files from:
[ C:\Winnt\System32\Drivers ] for Windows 2000
[ C:\Windows\System32\Drivers ] for Windows XP/2003/VistaNote: On some systems, Windows may be installed in a folder other than C:\Winnt or C:\Windows. You can find the Windows directory by opening a Command prompt and typing in the command:C:\> set SystemRootWindows 2000/XP/2003/Vista Additional Information
Upon firmware update to a different version, Windows 2000/XP/2003/Vista considers the backup device to be a "new" device. When a "new" device appears, the device's class driver is removed then reinstalled.Windows may or may not automatically reinstall the driver depending on the Windows version, device type, and bus type. Thus, the firmware update program attempts to insure driver reinstallation by performing the equivalent of two Device Manager "Scan for hardware changes" operations. One "Scan" uninstalls the driver, and the other reinstalls the driver.
If an "Unsafe Removal of Device" dialog appears, Device Manager has removed the backup device as it no longer "sees" the device as being present (because it no longer sees the old firmware version). Ignore and close the dialog.
For Windows 2000 prior to SP2, a "Files Needed" dialog may appear when Windows is reinstalling the backup device driver. Typically, "Files Needed" appears only when an add-on backup device driver was installed from removable media such as CD-ROM or floppy, (rather than from an installation folder on the hard disc). To avoid "Files Needed", in the future, copy driver installation files to the hard disc, then update the driver using the files from the installation folder.
TAPEDRV works with most Linux 2.4 and 2.6 kernels. To find the kernel version, use the command: uname -rFor 2.4 and early 2.6 kernels, TAPEDRV can detect and update PATAPI/SATAPI CD-DVD devices via the IDE driver devices /dev/hda, ..., /dev/hdr.
Otherwise, TAPEDRV relies on the SCSI generic (sg) driver to access all other backup devices. By convention, the sg device file names are /dev/sg0, /dev/sg1, ...
For both 2.4 and 2.6 kernels, you can verify whether the sg driver is loaded as well as the presence of removable-disk, CD-DVD, tape (and other SCSI) devices using the command:
# cat /proc/scsi/sg/device_strsEach line in device_strs shows a device's standard Inquiry data and corresponds to a /dev/sg<N>.
PATAPI/SATAPI removable-disk not detected by TAPEDRV
If your system-board attached PATAPI/SATAPI removable-disk fails to be detected and does not appear in /proc/scsi/sg/device_strs, then possibly, system has failed to automatically load the ide-scsi driver required by these devices.
This procedure is meant for kernels that are configured to use IDE drivers (rather than the newer LIBATA drivers). For most distributions, this includes 2.4 kernels and early 2.6 kernels (about 2.6.20 and previous).
- Examine DMESG output to verify the kernel is configured with IDE drivers. For example:
# dmesg | grep ^ide ide: Assuming 33MHz PCI bus speed for PIO modes; override with idebus=xx ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 ide1 at 0x170-0x177,0x376 on irq 15If DEMSG output contains "ide" entries, then the kernel is configured with IDE drivers, and the remainder of the procedure should be successful. Otherwise, the kernel is likely using LIBATA meaning there is some other issue making it pointless to continue.
- From a Linux console, enter the following to make PATAPI/SATAPI or USB removable-disk appear as a SCSI device in /proc/scsi/sg/device_strs:
# modprobe ide-scsi # modprobe sd_mod # modprobe sg # cat /proc/scsi/sg/device_strs- If your device now appears in device_strs, update the device firmware.
PATAPI/SATAPI tape device not detected by TAPEDRV
If your system-board attached PATAPI/SATAPI tape device fails to be detected and does not appear in /proc/scsi/sg/device_strs, this procedure attempts to load the, driver stack required by TAPEDRV.
This procedure is meant for kernels that are configured to use IDE drivers (rather than the newer LIBATA drivers). For most distributions, this includes 2.4 kernels and early 2.6 kernels (about 2.6.20 and previous).
- Examine DMESG output to verify the kernel is configured with IDE drivers. For example:
# dmesg | grep ^ide ide: Assuming 33MHz PCI bus speed for PIO modes; override with idebus=xx ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 ide1 at 0x170-0x177,0x376 on irq 15If DEMSG output contains "ide" entries, then the kernel is configured with IDE drivers, and the remainder of the procedure should be successful. Otherwise, the kernel is likely using LIBATA making it pointless to continue.
- From a Linux console, enter the following to make a PATAPI/SATAPI tape device appear as a SCSI device in /proc/scsi/sg/device_strs:
# rmmod ide-tape # modprobe ide-scsi # modprobe st # modprobe sg # cat /proc/scsi/sg/device_strs- If your device now appears in device_strs, update the device firmware, then reboot to return to normal operation.
Additional Information
TAPEDRV makes use of the Linux UMOUNT and EJECT commands. UMOUNT may be used to dismount removable-disk or CD-DVD media. EJECT may be used to dismount and eject removable-disk, CD-DVD, or tape media.2.4 Kernels
More information on Linux IDE and SCSI systems related to tape and CD-DVD drivers is found by searching the internet for:
Linux 2.4 SCSI subsystem HOWTO 9.2. CDROM driver (sr or scd)
or visiting:
http://tldp.org/HOWTO/SCSI-2.4-HOWTO/sr.html
Some Linux 2.4 kernels have a known driver bug that causes SCSI error messages to be displayed during backup device detection. Normally, this does not affect the firmware update operation and can be ignored.
If firmware update shows a failed status and the console shows 'parity errors', this is usually a result of a failure to renegotiate SCSI Synchronous Data Transfer, immediately after the update completes, by either the host adapter or SCSI driver. The firmware update is not affected.
2.6 Kernels
In 2.6 kernels, the sg driver, when loaded, breaks up standard Inquiry data and creates a series of single line text files, in the sysfs, for each device found:/sys/class/scsi_generic/sg<N>/device/type -- SCSI peripheral device type number
/sys/class/scsi_generic/sg<N>/device/vendor -- Vendor string
/sys/class/scsi_generic/sg<N>/device/model -- Product string
/sys/class/scsi_generic/sg<N>/device/rev -- Revision string
For backward compatibility, the sg driver in 2.6 kernels also creates the (more easily read) procfs text file:
/proc/scsi/sg/device_strs
TAPEDRV supports the following incomplete list of backup devices. "Backup devices" includes tape drive, medium changer, removable-disk, and CD-DVD devices. Medium changers are also called loaders, libraries, and robots.
Description 60/120GB 8mm Mammoth 2 20/40GB 8mm Mammoth 1 4/8GB TR4 CTT 4/8GB TR4 STT 4/8GB TR4 Hornet 8 CTT 4/8GB TR4 IDE 10/20GB NS20 10/20GB IDE TR5 12/24GB DDS/3 4mm 20/40GB DDS/4 4mm 120/240GB DDS/4 Autoloader 20/40GB DLT4000 35/70GB DLT7000 40/80GB DLT8000 3502-108 3502-314, 3502-R14 3502-XXX Sled drive 40/80GB DLTVS 100/200GB IBM LTO Ultrium (full hight) DDS/2 512K Archive 100/200GB HH LTO 110/220GB SDLT 3600 Library picker/robot 3600 Autoloader picker/robot 20/40GB DDS/4 LC 20/40GB TR7 3607-16X 4560-SLX 3580 IBM Ultrium GoVault removable-disk RDX removable-disk UJDA 780/782 CD-DVD UJ870 CD-DVD