sg3_utils is a package of command line utilities for sending SCSI commands to storage devices. In some contexts it can send ATA and/or NVMe commands. The package targets the Linux 5, 4, 3, 2.6 and 2.4 kernel series. It has ports to FreeBSD, Android, Solaris, and Windows (cygwin and MinGW). There is now a dummy port for unsupported OSes (e.g. NetBSD) which will permit decoding of some SCSI command responses via the --inhex=FN option. For an overview of sg3_utils and downloads see either of these pages: https://sg.danny.cz/sg/sg3_utils.html https://doug-gilbert.github.io/sg3_utils.html The sg_ses utility (for enclosure devices) is discussed at: https://sg.danny.cz/sg/sg_ses.html A full changelog can be found at: https://sg.danny.cz/sg/p/sg3_utils.ChangeLog https://doug-gilbert.github.io/p/sg3_utils.ChangeLog This github mirror needs to be updated: https://github.com/hreinecke/sg3_utils Plus the author's own github mirror: https://github.com/doug-gilbert/sg3_utils That last mirror is up-to-date and has git tags going back to "r1.20" which is sg3_utils 1.20 released 15 years ago. Here is the top of that ChangeLog, stopping at the previous release: Changelog for released sg3_utils-1.47 [20211110] [svn: r919] - sg_rep_zones: add support for REPORT ZONE DOMAINS and REPORT REALMS in this utility - sg_raw: fix prints of NVMe NVM command names - sg_ses: fix Windows problem "No command (cdb) given" - fix crash when '-m LEN' < 252 - guard against smaller '--maxlen=' values - sg_logs: additions to Volume statistics lpage [ssc5r05c] - additions to Command duration limits statistics log page [spc6r06] - sg_vpd: fix do_hex type on some recent pages - zoned block dev char vpd: add zone alignment mode and zone starting LBA granularity [zbc2r11] - sg_read_buffer: fix --length= problem - sg_dd, sgm_dd, sgp_dd: don't close negative file descriptors - sg_dd: srand48_r() and mrand48_r() are GNU libc specific, put conditional in so non-reentrant version used otherwise - 'iflag=00,ff' places the 32 bit block address (big endian) into each block - sgp_dd: major rework, fix issue with error being ignored - new: --chkaddr which checks for block address in each block - add check for stdatomic.h presence in configure.ac - sg_xcopy: tweak CSCD identification descriptor - sg_get_elem_status: fix issue with '--maxlen=' option - add 2 depopulation revocation health attributes [sbc5r01] - transport error handling improved. To fix report of a BAD_TARGET transport error but the utility still continued. - introduce SG_LIB_TRANSPORT_ERROR [35] exit status - several utilities: override '--maxlen=LEN' when LEN is < 16 (or 4), take default (or 4) instead - scripts: 55-scsi-sg3_id.rules remove outdated rule - sg_lib: add sg_scsi_status_is_good(), sg_scsi_status_is_bad() and sg_get_zone_type_str() - pt_linux: fix verify(BytChk=0) which Linux SNTL translated to write, other SNTL cleanups - pt_linux_nvme: fix fua setting - pt: check_pt_file_handle() add return value of 5 for FreeBSD for nvme(cam) - pt: new configure option --enable-pt_dummy builds the library with sg_pt_dummy.c instead of OS specific code; for experimenting with --inhex= decoding on netbsd - pt: add Haiku OS support - gcc -fanalyzer fixes: in sg_pt_linux.c + sg_write_x.c - sg_pt_dummy.c: add list of functions that a new pt needs to define - configure.ac: tweak to accept uclinux as linux - move some hex files from examples to inhex directory - major rework of lib/sg_pt_freebsd.c; make SNTL as similar as practical to the Linux implementation - add testing/sg_take_snap - change links to http://sg.danny/cz/sg/* to https Changelog for released sg3_utils-1.46 [20210329] [svn: r891] ... Doug Gilbert