OPENSEACHEST_PASSTHROUGHTEST(1)

πŸ“¦
version 26.03.2 Β· 4 versions
, in nixpkgs unstable, ubuntu stonking

πŸ’– openSeaChest_PassthroughTest(1) β€” User Commands πŸ’–

okay so you opened the man page for openSeaChest_PassthroughTest and honestly? iconic choice. this is the drive utility bestie. let's get into it πŸ’…


🌸 NAME 🌸

openSeaChest_PassthroughTest β€” the manual page for openSeaChest_PassthroughTest, no cap

==========================================================================================

✨ DESCRIPTION ✨

==========================================================================================

it's giving very official, because it is. here's the tea:

  • openSeaChest_PassthroughTest β€” openSeaChest drive utilities β€” NVMe Enabled
  • Copyright (c) 2014-2026 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
  • openSeaChest_PassthroughTest Version: 26.03.2 X86_64 Build Date: May 18 2026 Today: 20260605T144116 User: current user
==========================================================================================

πŸ¦‹ Usage πŸ¦‹

openSeaChest_PassthroughTest [-d <sg_device>] {arguments} {options}

πŸ“ Examples πŸ“

openSeaChest_PassthroughTest --scan
openSeaChest_PassthroughTest -d /dev/sg<#> -i
openSeaChest_PassthroughTest -d /dev/sg<#> --SATInfo
openSeaChest_PassthroughTest -d /dev/sg<#> --llInfo

so, typical use of this test tool usually means running it twice, bestie. like a little two-act play:

  1. openSeaChest_PassthroughTest -d /dev/sg<#> --runPTTest --ptDriveHint ata --ptTypeHint sat

Either reboot or power cycle the adapter between runs.

  1. openSeaChest_PassthroughTest -d /dev/sg<#> --runPTTest --ptDriveHint ata --ptTypeHint sat --enableHangCmdsTest all

Logs from each run should be collected to share with the openSeaChest developers. yes, all of them. they want the receipts 🧾

πŸŽ€ Return codes πŸŽ€

Generic/Common exit codes, aka "what did the tool just tell me":

  • 0 = No Error Found
  • 1 = Error in command line options
  • 2 = Invalid Device Handle or Missing Device Handle
  • 3 = Operation Failure
  • 4 = Operation not supported
  • 5 = Operation Aborted
  • 6 = File Path Not Found
  • 7 = Cannot Open File
  • 8 = File Already Exists
  • 9 = Need Elevated Privileges
  • 10 = Not enough resources
  • 11 = Error Writing File
  • 12 = Device not found when opening handle.
  • 13 = Device not opened. Handle is busy.
  • 14 = Insecure Directory to read or write file
  • Anything else = unknown error

πŸ‘‘ Utility Options πŸ‘‘

--csmiIgnorePort (Obsolete)

This option is obsolete and will be removed in future versions. she's retired, respect her legacy 🫢

--csmiUsePort (Obsolete)

This option is obsolete and will be removed in future versions.

--csmiVerbose (Obsolete)

This option is obsolete and will be removed in future versions.

--echoCommandLine

Echo the command line entered into the utility on the screen. so you can see exactly what you typed. slay.

--enableLegacyUSBPassthrough

⚠️ only use this option on old USB or IEEE1394 (Firewire) products that do not otherwise work with the tool.

This option will enable a trial and error method that attempts sending various ATA Identify commands through vendor specific means. Because of this, certain products that may respond in unintended ways since they may interpret these commands differently than the bridge chip the command was designed for. lowkey risky, highkey sometimes necessary 😭

--forceATA

Using this option will force the current drive to be treated as a ATA drive. Only ATA commands will be used to talk to the drive.

--forceATADMA (SATA Only)

Using this option will force the tool to issue SAT commands to ATA device using the protocol set to DMA whenever possible (on DMA commands). This option can be combined with --forceATA

--forceATAPIO (SATA Only)

Using this option will force the tool to issue PIO commands to ATA device when possible. This option can be combined with --forceATA

--forceATAUDMA (SATA Only)

Using this option will force the tool to issue SAT commands to ATA device using the protocol set to UDMA whenever possible (on DMA commands). This option can be combined with --forceATA

--forceSCSI

Using this option will force the current drive to be treated as a SCSI drive. Only SCSI commands will be used to talk to the drive.

-h, --help

Show utility options and example usage (this output you see now).

Please report bugs/suggestions to seaboard@seagate.com. Include the output of --version information in the email. do it, they're begging you πŸ’–

--license

Display the Seagate End User License Agreement (EULA).

--modelMatch [model Number]

Use this option to run on all drives matching the provided model number. This option will provide a closest match although an exact match is preferred. Ex: ST500 will match ST500LM0001

--noBanner

Use this option to suppress the text banner that displays each time openSeaChest is run.

--onlyFW [firmware revision]

Use this option to run on all drives matching the provided firmware revision. This option will only do an exact match. no vibes-based matching here, bestie ✨

--onlySeagate

Use this option to match only Seagate drives for the options provided

-q, --quiet

Run openSeaChest_PassthroughTest in quiet mode. This is the same as -v 0 or --verbose 0

-v [0-4], --verbose [0 | 1 | 2 | 3 | 4]

Show verbose information. Verbosity levels are:

  • 0 - quiet
  • 1 - default
  • 2 - command descriptions
  • 3 - command descriptions and values
  • 4 - command descriptions, values, and data buffers

Example: -v 3 or --verbose 3

-V, --version

Show openSeaChest_PassthroughTest version and copyright information & exit


🌈 Utility Arguments 🌈

-d, --device [deviceHandle | all]

Use this option with most commands to specify the device handle on which to perform an operation. Example: /dev/sg<#>

CSMI device handles can be specified as <error<#><#><#>>

To run across all devices detected in the system, use the "all" argument instead of a device handle. Example: -d all

NOTE: The "all" argument is handled by running the specified options on each drive detected in the OS sequentially. For parallel operations, please use a script opening a separate instance for each device handle. (yes, one drive at a time, she's monogamous πŸ’…)

-F, --scanFlags [option list]

Use this option to control the output from scan with the options listed below. Multiple options can be combined.

  • ata - show only ATA (SATA) devices
  • usb - show only USB devices
  • scsi - show only SCSI (SAS) devices
  • nvme - show only NVMe devices
  • interfaceATA - show devices on an ATA interface
  • interfaceUSB - show devices on a USB interface
  • interfaceSCSI - show devices on a SCSI or SAS interface
  • interfaceNVME = show devices on an NVMe interface
  • sd - show sd device handles
  • sgtosd - show the sd and sg device handle mapping
  • ignoreCSMI - do not scan for any CSMI devices
  • allowDuplicates - allow drives with both CSMI and PD handles to show up multiple times in the list

-i, --deviceInfo

Show information and features for the storage device

--llInfo

Dump low-level information about the device to assist with debugging. it's giving unfiltered 🫣

-s, --scan

Scan the system and list all storage devices with logical /dev/sg<#> assignments. Shows model, serial and firmware numbers.

πŸ’€ If your device is not listed on a scan immediately after booting, then wait 10 seconds and run it again.

-S, --Scan

This option is the same as --scan or -s, however it will also perform a low level rescan to pick up other devices. This low level rescan may wake devices from low power states and may cause the OS to re-enumerate them. Use this option when a device is plugged in and not discovered in a normal scan.

NOTE: A low-level rescan may not be available on all interfaces or all OSs. The low-level rescan is not guaranteed to find additional devices in the system when the device is unable to come to a ready state.

--SATInfo

Displays SATA device information on any interface using both SCSI Inquiry / VPD / Log reported data (translated according to SAT) and the ATA Identify / Log reported data. double the data, double the slay πŸ’–

--testUnitReady

Issues a SCSI Test Unit Ready command and displays the status. If the drive is not ready, the sense key, asc, ascq, and fru will be displayed and a human readable translation from the SPC spec will be displayed if one is available.

--fastDiscovery

Use this option to issue a fast scan on the specified drive. zoom zoom πŸ¦‹

--ptDriveHint [ata | nvme]

This option passes a hint to the software that the device being tested is an ATA or NVMe drive so it can appropriately test it. This option is most useful when also using --ptTypeHint

--ptTypeHint [sat | legacyATA]

Add this option if the device being tested is likely to support one of the supported passthrough types. This hints to the software to perform additional testing for these passthroughs if no other support is apparent.

  • sat - device supports SAT ATA-passthrough commands (12 or 16 byte)
  • legacyATA - device supports a legacy vendor unique method to passthrough ATA commands. You must also specify --enableLegacyATAPTTest in order for these commands to be tested.

--disablePassthroughTesting

Disables all ATA passthrough testing. Device will only be tested with SCSI commands from SPC and SBC specifications.

--enableLegacyATAPTTest

Add this option to the command line to allow sending legacy passthrough CDBs from old USB adapters or drivers. By default these are off since these operation codes may perform unintended actions on devices that don't actually support passthrough.

For example: There is a USB thumbdrive that receives one of these and bricks immediately. 😭

Only add this to the command line if you understand and have high confidence that the device you are testing is likely to support one of these passthroughs. Most of these devices will have been created prior to 2006 when the SAT spec was added for a standardized passthrough. so like... know what you're doing, bestie. fr fr.

--enableHangCmdsTest [all | zlr | sctgpl | rrTdir]

(…and this is where part 1 runs out of page β€” the rest of this option's story continues in the next part, so hold that thought πŸ’œ)

There are some commands that are known to make certain translators just… hang the second they receive them, and this option covers a few of the known ones for a few devices. πŸ’€ This one has to be enabled manually if you want a more complete test β€” but for real, if it hangs, the device could cause problems.

Each of these tests has its own specific hack/quirk attached to it, so if the device hangs, then it has to get added to the list for higher compatibility. And ngl, not all hangs will be able to be detected by the software! 😭

Put this option on the command line multiple times to add different combinations of tests.

The combos you can throw at it:

  • all β€” run all known commands that may cause hangs
  • zlr β€” do SCSI read commands with zero transfer length
  • sctgpl β€” try reading the SCT status log with a GPL read log ext command
  • rrTdir β€” in the SAT return response information protocol, run it without setting the tdir bit as the spec allows

  • --forceRetest β€” use this to force the utility to retest this device if it reports that it is already known. This is lowkey handy when you're testing multiple devices that use the same chip and are identified, or when you're trying to troubleshoot compatibility on another OS. πŸ”
  • --runPTTest β€” this one performs the passthrough test. The passthrough test is an attempt to figure out quirks or hacks with different translators so the device can be more compatible with the rest of the openSeaChest software. The default test is done using only what can be determined about the device from the SCSI reported data. Attempting to passthrough ATA or NVMe commands may not be done depending on how the device reports. Using the other options can help tell this software to test for other behavior. ✨

The other options to control the test are as follows:

  • --ptDriveHint
  • --ptTypeHint
  • --disablePassthroughTesting
  • --enableLegacyATAPTTest
  • --enableHangCmdsTest
  • --forceRetest

Okay and when you actually fire this thing up, the little banner it waves at you looks a whole lot like this πŸ‘‡

openSeaChest_PassthroughTest - openSeaChest drive utilities - NVMe Enabled
Copyright (c) 2014-2026 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
openSeaChest_PassthroughTest Version: 26.03.2 X86_64
Build Date: May 18 2026
Today: 20260605T144116
User: current user

And then the full receipts, version-info style:

==========================================================================================
Version Info for openSeaChest_PassthroughTest:

     Utility Version: 26.03.2
     opensea-common Version: 6.1.0
     opensea-transport Version: 10.3.0
     opensea-operations Version: 9.4.0
     Build Date: May 18 2026
     Compiled Architecture: X86_64
     Detected Endianness: Little Endian
     Compiler Used: GCC
     Compiler Version: 14.2.0
     Operating System Type: Linux
     Operating System Version: 6.6.114-1
     Operating System Name: Ubuntu 24.04.4 LTS

✨ SEE ALSO ✨

The full documentation for openSeaChest_PassthroughTest is maintained as a Texinfo manual. If the info and openSeaChest_PassthroughTest programs are properly installed at your site, then this command:

info openSeaChest_PassthroughTest

should give you access to the complete manual. πŸ“–


And that's a wrap bestie, you ate the whole page πŸ’… the source is openSeaChest_PassthroughTest, version 26.03.2, and it's dated June 2026 β€” go forth and passthrough responsibly 🫢

πŸ“¦ where this page comes from