aboutsummaryrefslogtreecommitdiff
path: root/README.solaris
diff options
context:
space:
mode:
Diffstat (limited to 'README.solaris')
-rw-r--r--README.solaris168
1 files changed, 168 insertions, 0 deletions
diff --git a/README.solaris b/README.solaris
new file mode 100644
index 00000000..7dca2b7c
--- /dev/null
+++ b/README.solaris
@@ -0,0 +1,168 @@
+Please Note:
+>>> Up to and including sg3_utils-1.33 the Solaris code was built
+>>> and tested on an OpenSolaris VM run with VirtualBox on Ubuntu
+>>> 11.10 . Now with Ubuntu 12.04 those VMs crash immediately when
+>>> started with VirtualBox. Further, Oracle (who owns SUN and thus
+>>> Solaris) no longer supports OpenSolaris and its package
+>>> repository has been withdrawn. The author can find no generic VMs
+>>> for Oracle Solaris 11 that run on VirtualBox or VMWare. The author
+>>> is also displeased with the withdrawal of the Open Software
+>>> OS and is disinclined to build a Solaris 11 system just to
+>>> virtualize it.
+>>> So as of sg3_utils-1.34 the Solaris port is provided "as-is" without
+>>> testing on a Solaris platform.
+
+Douglas Gilbert
+13th October 2012
+
+
+
+Introduction
+============
+The Solaris port of sg3_utils contains those utilities that are
+_not_ specific to Linux.
+
+The dd variants from the sg3_utils package (e.g. sg_dd) rely on too many
+Linux idiosyncrasies to be easily ported. A new package called 'ddpt'
+contains a utility with similar functionality to sg_dd and is available
+for Solaris.
+
+Supported Utilities
+===================
+Here is a list of utilities that have been ported:
+ sg_bg_ctl
+ sg_compare_and_write
+ sg_decode_sense
+ sg_format
+ sg_get_config
+ sg_get_elem_status
+ sg_get_lba_status
+ sg_ident
+ sg_inq [dropped ATA IDENTIFY DEVICE capability]
+ sg_logs
+ sg_luns
+ sg_modes
+ sg_persist
+ sg_opcodes
+ sg_prevent
+ sg_raw
+ sg_rdac
+ sg_read_block_limts
+ sg_read_buffer
+ sg_read_long
+ sg_readcap
+ sg_reassign
+ sg_referrals
+ sg_rep_pip
+ sg_rep_zones
+ sg_requests
+ sg_rmsn
+ sg_rtpg
+ sg_safte
+ sg_sanitize
+ sg_sat_identify
+ sg_sat_phy_event
+ sg_sat_set_features
+ sg_seek
+ sg_senddiag
+ sg_ses
+ sg_start
+ sg_stpg
+ sg_stream_ctl
+ sg_sync
+ sg_turs
+ sg_unmap
+ sg_verify
+ sg_vpd
+ sg_wr_mode
+ sg_write_buffer
+ sg_write_long
+ sg_write_same
+ sg_write_verify
+ sg_write_x
+ sg_zone
+
+Most utility names are indicative of the main SCSI command
+that they execute. Some utilities are slightly higher level, for
+example sg_ses fetches SCSI Enclosure Services (SES) status pages and
+can send control pages. Each utility has a man page (placed in
+section 8). An overview of sg3_utils can be found at:
+https://sg.danny.cz/sg/sg3_utils.html .
+A copy of the "sg3_utils.html" file is in the "doc" subdirectory.
+
+
+The executables and library can be built from the source code in
+the tarball and installed with the familiar
+"./configure ; make ; make install" sequence. If this fails try
+running the "./autogen.sh" script prior to that sequence. There
+are generic instruction on configure and friend in the INSTALL file.
+
+Some man pages have examples which use Linux device names which
+hopefully will not confuse the Solaris users.
+
+Device naming
+=============
+In Solaris, SCSI device names below the '/dev' directory have a
+form like: c5t4d3s2 where the number following "c" is the controller
+(HBA) number, the number following "t" is the target number (from
+the SCSI parallel interface days) and the number following "d" is
+the LUN. Following the "s" is the slice number which is related to
+a partition and by convention "s2" is the whole disk.
+
+OpenSolaris also has a c5t4d3p2 form where the number following
+the "p" is the partition number apart from "p0" which is the whole
+disk. So a whole disk may be referred to as either:
+ - c5t4d3
+ - c5t4d3s2
+ - c5t4d3p0
+
+And these device names are duplicated in the /dev/dsk and /dev/rdsk
+directories. The former is the block device name and the latter
+is for "raw" (or char device) access which is what sg3_utils needs.
+So in OpenSolaris something of the form:
+ sg_inq /dev/rdsk/c5t4d3p0
+should work. If it doesn't add a '-vvv' option. If that is attempted
+on the /dev/dsk/c5t4d3p0 variant an inappropriate ioctl for device
+error will result.
+
+The device names within the /dev directory are typically symbolic
+links to much longer topological names in the /device directory.
+
+In Solaris cd/dvd/bd players seem to be treated as disks and so are
+found in the /dev/rdsk directory. Tape drives appear in the /dev/rmt
+directory.
+
+There is also a sgen (SCSI generic) driver which by default does not
+attach to any device. See the /kernel/drv/sgen.conf file to control
+what is attached. Any attached device will have a device name of
+the form /dev/scsi/c5t4d3 .
+
+Listing available SCSI devices in Solaris seems to be a challenge.
+"Use the 'format' command" advice works but seems a very dangerous
+way to list devices. [It does prompt again before doing any damage.]
+'devfsadm -Cv' cleans out the clutter in the /dev/rdsk directory,
+only leaving what is "live". The "cfgadm -v" command looks promising.
+
+Details
+=======
+The ported utilities listed above, all use SCSI command functions
+declared in sg_cmds_basic.h and sg_cmds_extra.h . Those SCSI command
+functions are implemented in the corresponding ".c" files. The ".c"
+files pass SCSI commands to the host operating system via an interface
+declared in sg_pt.h . There are currently five implementations of that
+interface depending on the host operating system:
+ - sg_pt_linux.c
+ - sg_pt_freebsd.c
+ - sg_pt_osf1.c [Tru64]
+ - sg_pt_solaris.c
+ - sg_pt_win32.c
+
+The sg_pt_solaris.c file uses the "uscsi" SCSI pass through mechanism. There
+seems to be no corresponding ATA pass through and recent SATA disks do not
+seem to have a SAT layer in front of them (within Solaris). If SAT is
+present (perhaps externally or within a HBA) then that would allow SATA
+disks to accept SCSI commands including the SCSI ATA PASS THROUGH commands.
+
+
+Douglas Gilbert
+5th June 2020