Generic SCSI & RAID Devices Driver Download For Windows



The SCSI Generic driver (sg) is one of the four “high level” SCSI device drivers along with sd, st and sr (disk, tape and CDROM respectively). Sg is more generalized (but lower level) than its siblings and tends to be used on SCSI devices that don’t fit into the already serviced categories. The generic SCSI feature gives the guest operating system direct access to SCSI devices that are connected to the host system, including scanners, tape drives, and other data storage devices. A virtual machine can use the generic SCSI driver to run any SCSI device that is supported by the guest operating system. Configuring Generic SCSI Devices. JMICRON TECH SCSI DISK DEVICE WINDOWS 10 DRIVER DOWNLOAD. Register product warranty. Windows device manager, easeus data recovery wizard, sata quickport pro. Live chat receive, command line interface, storage executive graphical user interface. How to fix windows 7 and raid solved. Riatech ultra slim. Scsi disk device. Microsoft agent microsoft employee.

Various open source projects provide support for directly manipulating SCSIdevices. The lsscsi command line tool and the sg3_utils library andutilities collection are among the most widely used and they are available aspre-compiled packages with most Linux® distributions.

lsscsi has the capability to indicate if a device is a ZBC host managed zonedblock device, and the sg3_utils collection gained ZBC support with version1.42.

lsscsi

The lsscsicommand lists information about the SCSI devices connected to a Linux system.lsscsi is generally available as a package with most Linux distributions. Forinstance, on Fedora® Linux,lssci can be installed using the following command.

The name of the package may differ between distributions. Please refer to thedistribution documentation to find out the correct package name.

Identifying Host Managed Disks

Executing lsscsi will list the disks that are managed using the kernel SCSIsubsystem. This always includes SATA disks directly connected to a SATA port onthe system mainboard or to a SATA PCIe adapter.

The second column of the default output indicates the device type. Forhost managed disks, the type name is zbc. For regular disks, it is disk.Older versions of lsscsi may directly list the numerical value of the devicetype. In the case of host managed disks, the value displayed is 0x14.

Adding the option -g will output the SCSI Generic node file path associatedwith a device. This is useful when using libzbc or any of thesg3_utils command line tools.

Disks Interface and Transport

The third column of the output is the disk vendor ID. For ATA disks, this isalways ATA even for ATA disks connected to a SAS host-bus-adapter (HBA). Thetransport used to communicate with the disk can be more precisely discoveredusing the -t option.

Generic

The Driver Update Tool – is a utility that contains more than 27 million official drivers for all hardware, including scsi & raid devices drivers. This utility was recognized by many users all over the world as a modern, convenient alternative to manual updating of the drivers and also received a high rating from known computer publications. May 03, 2002 This HOWTO describes the SCSI Generic driver (sg) found in the Linux 2.4 production series of kernels. It focuses on the the interface and characteristics of the driver that application writers may need to know. The driver's theory of operations is covered and some brief examples are included.

sg3_utils

The sg3_utilsproject provides a library and a collection of command line tools that directlysend SCSI commands to a SCSI device using the kernel SCSI generic driver.

The SCSI generic driver (sg driver) is generally enabled by default on mostdistributions. The following command allows checking if the sg driver moduleis already loaded.

If this command output is empty, the sg driver should be loaded.

These commands will work only if the sg driver was compiled as a loadablekernel module. In case of error, to verify if the sg driver was insteadcompiled as part of the kernel, the following command can be used.

Since all disks in Linux are exposed as SCSI devices, including all ATAdrives, these utilities can be used to manage both SCSI ZBC disks and SATA ZACdisks. For SATA disks connected to SATA ports (e.g. an AHCI adapter), thekernel SCSI subsystem translates SCSI commands to ATA commands.

sg3_utils includes three command line tools that are specific to ZBC disks.

Utility NameMain SCSI Command InvokedDescription
sg_rep_zonesREPORT ZONESGet a ZBC disk zone information
sg_reset_wpRESET WRITE POINTERReset one or all zones of a ZBC disk
sg_zoneCLOSE ZONE, FINISH ZONE, OPEN ZONESends one of these commands to the given ZBC device

Caution

The help output of the commands below uses the term LBA. In thiscontext, the term LBA refers to a 512 bytes sector size regardless ofthe logical and physical block size of the disk.

sg_rep_zone

Executing the command with the --help option gives a simple usage explanation.

Below is an example of the sg_rep_zone utility output.

Note

The block device file path or the device SCSI Generic node file path canboth be used to specify a disk.

It is possible to start a zone report at a specific zone by using the--start option. For instance, to obtain the zone information starting at thefirst sequential zone of the disk (LBA 34340864), the following commandcan be used.

sg_reset_wp

The command usage is as follows.

Resetting all sequential write zones of the disk can be done using the --alloption.

A single sequential zone write pointer can be reset using the --zone option.

Specifying the zone ID (zone start LBA) of a conventional zone results inan error.

Reseting the write pointer of an empty sequential write zone has no effectand does not result in an error.

sg_zone

The command usage is as follows.

The following example command sequence illustrates sg_zone and sg_reset_wpeffects on condition of a zone as reported with sg_rep_zone. At first, thebeginning sequential zone on the disk is explicitly open from empty condition.Then, the zone is transitioned to full condition using the zone finish commandand, finally, reset again to return to empty condition.

News

[2021-02-03] lsscsi-0.32beta, see lsscsi page.

[2021-01-25] Updated sg version 4 driver. See the sg_v40page, this driver is in development

[2021-01-20] pre-release (beta) of sg3_utils-1.46 (revision873). See sg3_utils page.

[2020-12-01] Updated scsi_debug pagefor lk 5.8, 5.9 and 5.10 additions

[2020-04-24] early beta of ddpt-0.97 (revision378). Can use SNTL from sg3_utils library

[2020-03-19] release of smp_utils version 0.99 . See smp_utilspage

[2020-03-03] release of ddpt version 0.96 . See ddptpage.

[2020-03-03] release of sdparm version 1.11 . See sdparmpage

[2020-03-02] release of sg3_utils version 1.45 . See sg3_utilspage.

[2020-02-20] lsscsi-0.31 released,see lsscsi page.


The author's various SCSI related packages are now mirrored ongithub.com . The primaryrepositories remain in subversion on the author's equipment. Thesg3_utils and lsscsipackages are mirrored on Hannes Reinecke's site at github :https://github.com/hreinecke/sg3_utilsin the master (default) branch. The author continues to trackprogress with a subversion revision number which is a sequentialnumber currently at 841 for sg3_utils. The github sg3_utils package'sChangeLogfile shows where the mirror is 'at' and currently that isrevision 841 dated 20200210, several commits behind the author'srepository. The other sg3_utils git branches may be of interest tousers and relate to Hannes' work at SUSE Labs. Most work in thoseother branches will be merged into the master branch in time. Alsofound at that location is the lsscsimirror. Both packages may have later versions on this site (astarballs in the Downloads section of the links given above). So itmight be worthwhile to check both locations.
The authoralso has a github account at https://github.com/doug-gilbertwhich has mirrors for the sdparm, ddptand smp_utils packages and alternativemirrors for sg3_utils and lsscsi. Since sdparm and ddpt depend on alibrary from sg3_utils, a partial package called sg3_utils_lib isalso there. sg3_utils_lib only contains the lib/and include/ sub-directories from thesg3_utils package. Currently sg3_utils_lib corresponds to version 844of the author's sg3_utils subversion repository and the sdparm andddpt packages assume that revision. So it is better to build sdparmand ddpt with sg3_utils_lib than with Hannes' sg3_utilsrepository.
So, for example to build sdparm, clone thegithub sdparm and sg3_utils_lib repositories to the build machine;then from sg3_utils_lib clone, copy the include/and lib/ directories with those names andcontents over to the sdparm clone, under the main directory. So thatmain directory should end up at least containing thesesub-directories: src/, doc/,lib/ and include/.The sdparm package should be then ready to build. IMO, contrary tomuch online propaganda, git is not better in all respects thansubversion, especially for non-distributed development. In this casethe author uses subversion's 'externals' feature to includethe library sub-tree of sg3_utils in the source trees of sdparm andddpt. There is no exact parallel to this feature in git.
Packageswill still have major releases done through this site. For example,that will be release 1.46 for sg3_utils . The release will havesource tarballs and Debian and Redhat packages for Linux. There willalso be a tarball of Windows executable(s) typically built withMinGW. Also there is an attempt to publicise the releases on relatednewsgroups (e.g. Note that the subversion revision number stopsincreasing in the ChangeLog once a release has been made, and a newparagraph will appear at the top of the ChangeLog when revisions arecommitted for the next release.

Introduction

The Linux sg driver is a upper level SCSI subsystem device driverthat is used primarily to handle devices _not_ covered by the otherupper level drivers: sd (disks), st (tapes) and sr (CDROMs and DVDs).The sg driver is used for enclosure management, cd writers,applications that read cd audio digitally and scanners. Sg can alsobe used for less usual tasks performed on disks, tapes and cdroms. Sgis a character device driver which, in some contexts, gives itadvantages over block device drivers such as sd and sr. The interfaceof sg is at the level of SCSI command requests and their associatedresponses.
The term SCSI has several meaning depending onthe context. This leads to confusion. One practical way of definingit today is everything that the T10 INCITS committee controls, seewww.t10.org . Probably the mostsuccinct overview is this standards architecture page. For practical purposes a 'SCSI device' in Linux is anydevice that uses the Linux SCSI subsystem and this often includesSATA disks.
From about Linux kernel 2.6.24, there is analternate SCSI pass-through driver called 'bsg' (block SCSIgeneric driver). The bsg driver has device names of the form/dev/bsg/0:1:2:3 and supports the SG_IO ioctl with the sg version 3interface. The bsg driver also supports the sg version 4 interfacewhich at this time the sg driver does not. Amongst other improvementsthe sg version 4 interface supports SCSI bidirectional commands. Allrecent 'sg' user space packages (i.e. sg3_utils, sdparm,ddpt and smp_utils) work equally well on both sg and bsg devicenames.

Background

The original driver was written by Lawrence Foard in 1992 andremained unchanged for several years. In August 1998 Heiko Eissfeldtand Joerg Schilling started working on enhancements to this driver.Soon after, the author became involved and these efforts culminatedin a new sg driver being placed in Linux kernel 2.2.6 which wasreleased on 16th April 1999. It contains the first major upgrade tothe SCSI generic packet device driver ('sg') since 1992.This new driver has a super-set of the original interface and thesemantics of the implementation are very similar. Hence it offers ahigh degree of backward compatibility with the original driver.

The major reason for introducing a new sg driver into the 2.2series of kernels was the problem that the original device driver washaving finding memory. This driver improves the situation by usingscatter gather, memory above the 16 MBytes level and memory from thescsi dma pool as appropriate. Other drivers were affected by thesememory problems (especially those associated with ISA hardware). Inkernel 2.2.10 H.J. Lu introduced a new kernel memory allocator thatalleviated many of these memory problems.

Windows

On 4th January 2001 the Linux 2.4.0 kernel was introduced and itcontained the 'version 3' sg driver that is describedbelow.

On 17th December 2003 the Linux 2.6.0 kernel was introduced and italso contained the 'version 3' sg driver that is describedbelow. The SG_IO ioctl was implemented in the block layer and inseveral other 'char' SCSI drivers (e.g. the st driver fortapes). Hence many programs can use primary device nodes (e.g./dev/hdd for an ATAPI cd/dvd writer) to send SCSI command via theSG_IO ioctl. The sg driver still permits a clean pass throughinterface to all devices that use the Linux SCSI subsystem.

Generic Scsi & Raid Devices Driver Download For Windows 8.1

Features

The following enhancements have been added (in lk 2.2.6): scattergather, command queueing, per file descriptor sequencing (was perdevice) and asynchronous notification. Scatter gather allows largebuffers (previously limited to 128 KB on i386) to be used. Scattergather is also a lot more 'kernel friendly'. The originaldriver used a single large buffer which made it impossible to run 2or more sg-based applications at the same time. With the new driver abuffer is reserved for each file descriptor guaranteeing that atleast that buffer size will be available for each request on the filedescriptor. A user may request a larger buffer size on any particularrequest but runs the (usually remote) risk of an out of memory(ENOMEM) error.

A 'version 3' sg driver was introduced in Linux kernel2.4.0 . It adds a new interface that allows more control over SCSIcommands and returns more information about their performance. Thisdriver is present in Linux kernel 2.4.0 . A separate version withreduced capabilities is available for the 2.2 series kernels.Features include: a simplified SG_IO ioctl, larger sense buffer,residual DMA count, 16 byte (or longer) commands, direct IO support,command duration timing and a 'proc_fs' interface.Naturally it is backward compatible with applications based on the sginterface in the lk 2.2 series and earlier.
In the lk 2.6series the SG_IO ioctl has been replicated (with a slightly reducedfeature set) in the block subsystem. This allows the SG_IO ioctl tobe used on block devices such as /dev/sda and /dev/scd0. In lk 2.6.6the SG_IO ioctl became available in the st upper level SCSI subsystemdriver (for tapes). See the sg_io page.

Generic scsi & raid devices driver download for windows xp

SG device driverdownloads

What

The following table summarizes the different versions of the sgdevice driver that are available. If you wish to use one of thesetarballs then untar it in /usr/src/linux (or wherever the top of yourkernel tree is). As a precaution you may wish to copy the filesinclude/scsi/sg.h and drivers/scsi/sg.c to other names. This willfacilitate reversing the patch if required. For information about thedifferences between versions see the history section at the top ofthe include/scsi/sg.h file.

Table 1. sgdevice drivers

Sg driver
version+tarball

Notes

sg version 3.0.19

sg version 3 backported to lk 2.2

sg version 1.5.01

sg version 1 (original) ported to lk 2.4

documentation and notes

bug fix

bug fix, found in lk 2.4.23->26

version found in lk 2.4.28

version found in lk 2.4.29,30,31,32

driver found in 2.6.11

driver found in 2.6.13

driver found in 2.6.16

driver found in 2.6.18

proposed additions including scatter_elem_sz attribute


For the Linux kernel 2.2 series, the current production version of the sg driver is 2.1.39 . All sg drivers forthe 2.2 series of kernels (including the original) areinterchangeable (but see final section on this page about Red Hat 6.2and Mandrake 7.1). So, for example, sg22orig.tgz can be put in lk2.2.17 while, on the other hand, sg2140.tgz can be put in lk 2.2.0 .

For the Linux kernel 2.4 series, the current production version ofsg is 3.1.25 (in lk 2.4.23->32).

For the Linux kernel 2.6 series, the current production version ofsg is 3.5.34 .

Older versions can be obtained from thisdirectory. A sub directory called 'original' contains theoriginal driver (i.e. prior to linux kernel 2.2.6) and its HOWTOdocument.

Utilities: sg3_utilsand sg_utils

These packages contain multiple utilities, all with command lineinterfaces. They send one one more SCSI commands to the nominateddevice and output the response including error reports if the commandfailed. The name of the SCSI command executed is typically reflectedin the name of the utility; for example: 'sg_inq' sends aSCSI INQUIRY command and decodes its response. These utilities wereoriginally written for the Linux operating system. In sg3_utilsversion 1.19 a subset of the utilities were ported to FreeBSD andTru64; in version 1.22 a similar subset of the utilities were portedto Windows; and in version 1.24 a Solaris port was added.
Themost recent package is called sg3_utils and it uses the sg'version 3' interface (sometimes known as the SG_IOinterface) in linux. This interface is in lk 2.4.0 and laterkernels, including the lk 2.6, 3 and 4 series. All new features arebeing added into sg3_utils(i.e. it is still being actively developed). Many of the utilities in sg3_utils(versions >= 1.02) can be used directly on block devices (e.g.sg_inq /dev/sda) in the lk 2.6 series. The sg_dd utility is at a slightly higherlevel issuing SCSI READ and WRITE commands to copy data, mimickingthe Unix dd command. See the sg3_utilspackage page for more details.

The older (and original) package is called sg_utils and ituses the sg version 2 interface found linux kernel version 2.2.6 andonward. Over half of those utilities will also work on the originalsg device driver (at least back to the lk 2.0 series). If required,'make common' will produce the subset that will work on thewhole lk 2.x series. Since the sg 'version 3' device driverstill maintains the original interface, the sg_utils package willcontinue to work in the lk 2.4 and lk 2.6 series . This package isnow in maintenance mode, only bugs will be fixed. See this pagefor more details.

The latest versions, packaged intarballs, source, binary rpms and debian packages are given in thefollowing table. They contain README and CHANGELOG files and manpages. The tarball contains a 'spec' file forbuilding rpms and a debian directory containing build information. Here is the most recently released sg3_utils CHANGELOG.


Table 2.sg3_utils/sg_utils tarballs and packages


tarballs

rpm source rpms

i386 rpm binaries

debian packages

sg3_utils
check News
section above
for betas

sg3_utils-1.45.tgz
sg3_utils-1.45.tar.xz



sg3-utils_1.45-0.1_amd64.deb
libsgutils2-2_1.45-0.1_amd64.deb

sg_utils



See the sg3_utils page for morepackages (e.g. 64 bit versions of Debian, Redhat and Windows binarypackages) plus older versions.

Sg related pages

Following are some links to related pages on this site:

  • Full sg version 3 documentation for lk 2.4 series is now available. It is in DocBook format (html rendering): sg_v3_ho.html (ps, pdf and text renderings also in same directory). This document is also available as LDP's SCSI-Generic-HOWTO Here is documentation specific to the sg_io ioctl, especially in the lk 2.6 series.

  • Older Sg version 3 documentation for lk 2.4 series (now superseded by the DocBook version above)

  • lsscsi command for the lk 2.6 series. Lists SCSI devices or SCSI hosts.

  • sdparm utility to view and change mode pages, view VPD pages and send commands (for lk 2.6 and 2.4 series)

  • ddpt utility which is dd-like which is able to access SCSI devices at the SCSI command level

  • sg3_utils package of utilities that send SCSI commands

  • smp_utils package of utilities for Serial Attached SCSI (SAS) SMP functions

  • the tools page contains information about many scsi/storage packages from various sources

  • Some notes about the 'version 3' sg driver found in the lk 2.4 series (including mmap notes).

  • scsi_debug LLD (adapter) driver for simulating lots of disks and doing tests in the lk 2.6 and lk 3 series. Here is the scsi_debug driver for the lk 2.4 series.

  • scsi_ses LLD (adapter) driver for simulating an enclosure services (SES) device.

  • Timings for direct and indirect IO (as used by sg); these are old and should be updated

  • Some fast copy options for disks (including raw devices)

  • devfs and SCSI in lk 2.3.46 and the lk 2.4 series. Devfs has been replaced by udev and hotplug in the lk 2.6 series

  • description of the Linux SCSI subsystem in the lk 2.4 series. There is a single page html rendering: SCSI-2.4-HOWTO.html plus ps, pdf and text renderings in the same directory. This document has become the LDP's SCSI-2.4-HOWTO . The version on this site may be more recent.

  • linux 2.6 series SCSI mid to lower level API document can be found in the Documentation/scsi/scsi_mid_low_api.txt file in the kernel source tree.

  • smartmontools for SCSI article .

  • Abridged and longer documentation for sg driver in lk 2.2 series (describes sg version 2.1.39)

  • A FAQ including current project status, bug fixes and other useful patches

External references

Here are some useful links to related information held at othersites:

Generic scsi & raid devices driver download for windows xp
  • www.t10.org is a very important site for SCSI related information. It contains SCSI 2 and 3 draft standards.

  • every wonder what all those acronyms mean and how they relate, see this diagram at t10.org .

  • www.scsita.org is the SCSI Trade Association. There is an interesting tutorial on Serial Attached SCSI (SAS) there.

  • www.andante.org/scsi.html is Eric Youngdale's site. Eric is primarily responsible for the Linux SCSI architecture and its mid-level implementation in the 2.2 and 2.4 series of kernels

  • Kurt Garloff has several pages with Linux SCSI themes (including the scsidev, scsiinfo and rescan-scsi-bus programs).

  • The Scsi Command Utility (scu) is quite comprehensive and is ported to several OSes including Linux. Its home page can be found here .

  • The newsgroup linux-scsi@vger.kernel.org is the appropriate place to discuss Linux SCSI related issues.

  • The MAINTAINERS source file in the top level of the linux kernel source tree contains up to date information about who maintains what and where information can be found. Links to SCSI adapter information are also in that file. SCSI documentation within the kernel source has been moved to the Documentation/scsi directory in the lk 2.6 series.

DouglasGilbert can be emailed at that address.
Last updated: 3rdFebruary 2021, 12:00 [UTC-5]

Jmicron Generic Scsi Disk Device