Questions tagged [scsi]

Small Computer System Interface (SCSI, pronounced skuz-ee) is a set of parallel interface standards developed by the American National Standards Institute (ANSI) for physically connecting and transferring data between computers and peripheral devices(like printers, disk drives, scanners and other). It is a fast bus and supported by all major operating systems.

Small Computer System Interface (SCSI, pronounced skuz-ee) is a set of standards for physically connecting and transferring data between computers and peripheral devices. The official name of the SCSI standard is: ANSI X3.131.

The SCSI standards define commands, protocols, and electrical and optical interfaces. SCSI uses a low-voltage differential (LVD) bus, a method where data is transmitted by comparing the difference in voltage between a pair of wires. SCSI is most commonly used for hard disks and tape drives, but it can connect a wide range of other devices, including scanners and CD drives.

Some important features:

  • SCSI is capable of supporting eight devices, or sixteen devices with Wide SCSI.
  • The latest version, 16-bit Ultra-640 (Fast-320) SCSI has a 640 MBps transfer speed.
  • SCSI standards are generally backward-compatible.

Common SCSI components:

  • Initiator - it issues requests for service by the SCSI device and receives responses.
  • Target - A SCSI target is typically a physical storage device like a hard-disk or a storage array
  • Service delivery subsystem - it allows communication to occur between the initiator and the target

The SCSI subsystem has a 3 level architecture with the "upper" level being closest to the user/kernel interface while the "lower" level is closest to the hardware.

For more info: http://en.wikipedia.org/wiki/SCSI

181 questions
4
votes
1 answer

SPTI/SCSI operations from a Windows 7 application

I need some help regarding a security problem in updating some Windows software for communicating with a non-storage SCSI device. The original software was written for Windows XP as a DLL, and talked with the device via Adaptec's ASPI API. ASPI…
Bob Murphy
  • 5,814
  • 2
  • 32
  • 35
3
votes
1 answer

How to distinguish USB and (S)ATA device in the kernel scsi_device structure?

According to the kernel structure struct scsi_device used by SCSI drivers (kernel 2.6.23): http://lxr.linux.no/linux+v2.6.23/include/scsi/scsi_device.h#L49 Is there a reliable method to differentiate if the device is an USB device or a ATA device ?
Arnaud G
  • 139
  • 1
  • 1
  • 4
3
votes
0 answers

How to write a SCSI Command (WriteAtomic,Read16) in Golang?

Working in Golang / Ubuntu Environment Facing Issues in these areas func exec_ioctl(hdr *SgIoHdr) error { f, err := os.Open("dev/sg1") //The Status returned by err is always 3 if err != nil { return err } if err := Ioctl(uintptr(f.Fd()),…
3
votes
1 answer

USB (SCSI) firmware development - how to handle removable media

I'm developing a USB mass storage device. I got the device basically working (it's too slow, but that's another conversation). What isn't working as well as I'd like is handling device removal - not from the USB end, but the USB device presenting…
nsayer
  • 16,925
  • 3
  • 33
  • 51
3
votes
1 answer

How does a rescan LUN on Linux works

We can issue a host bus scan on Linux host to get the /dev/sd* devices on host. The scan is issued using this command : echo "- - -" > /sys/class/scsi_host/host0/scan Can someone please tell me the flow of events in the Linux userspace/kernel code…
K_K
  • 759
  • 9
  • 18
3
votes
3 answers

SCSI additional sense codes meaning?

I'm developing a SCSI target software (and I'm new to SCSI) and I need to return correct sense data to tell initiator, that its request didn't go through because data were protected from writing. I'm looking at the piece of table from T10.org,…
HEKTO
  • 3,876
  • 2
  • 24
  • 45
3
votes
1 answer

Vendor-specific SCSI commands reference for optical drives

I'm looking for references of vendor-specific SCSI commands. I'm mostly concerned about the following ones : 0xD4 0xD5 0xD8 Based on what I know already, those commands are some "special" read commands used on some Plextor drives. However, I was…
Daniel Kamil Kozar
  • 18,476
  • 5
  • 50
  • 64
2
votes
2 answers

Linux 2.6.18 SCSI SPIN and SPOUT SG_IO ioctl's to a sg LTO5 device

I am trying to take advantage of hardware encryption of LTO5 devices using ioctl's in my fuse file system. It should be quite simple, setup a io_hdr with a cdb: 0xB5, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00 and provide the…
gjpc
  • 1,428
  • 14
  • 21
2
votes
3 answers

iSCSI Packet Header

Does iSCSI introduce any layers (other than the TCP-headers themselves) on top of the SCSI packet? Are there any reference manuals for iSCSI other than the RFC itself? I need this information for controlling a RF-receiver over a Paralan…
Nordlöw
  • 11,838
  • 10
  • 52
  • 99
2
votes
2 answers

Sending a specific SCSI command to a SCSI device in Mac OS X

Is it possible to do some Inquiry requests to SCSI driver?
user663896
2
votes
1 answer

When should I use REQ_OP_FLUSH in a kernel blockdev driver? (Do REQ_OP_FLUSH bio's flush dirty RAID controller caches?)

When should I use REQ_OP_FLUSH in my kernel blockdev driver, and what is the expected behavior of the hardware that receives the REQ_OP_FLUSH (or equivalent SCSI cmd)? In the Linux kernel, when a struct bio is flagged as REQ_OP_FLUSH is passed to a…
KJ7LNW
  • 1,437
  • 5
  • 11
2
votes
0 answers

How to send SCSI command to USB mass storage using Swift on macOS?

I am creating a macOS app that will update the firmware of a USB mass storage device. There are only two steps to do this, copy the files to the storage device (done with this) and send a reboot command to the device using SCSI command sets. I've…
2
votes
0 answers

Android Device act as Client FAT32 mass storage to Windows Host

Is it possible to make an android application that would allow for a computer running windows to be connected to the Android via USB and for the Windows machine to believe that the android is a FAT32 storage device? What I know so far: 1. The…
Wondering
  • 21
  • 2
2
votes
0 answers

Does QueryDosDevice and IOCTL_STORAGE_GET_DEVICE_NUM treat LUNs as separate devices?

Can someone confirm whether QueryDosDevice() and IOCTL_STORAGE_GET_DEVICE_NUMBER considers LUNs on the same physical USB storage device as a single device, or is each LUN considered as a separate device? For example, if I have a USB thumb drive that…
2
votes
1 answer

How to emulate SCSI device

Let's sketch the picture. Windows provides SCSI port (bus) driver. Driver creates FDO for bus (FILE_DEVICE_BUS_EXTENDER) and PDO for each device connected to bus (FILE_DEVICE_MASS_STORAGE). We "connect" mass storage devices to bus device inside PnP…
igntec
  • 1,006
  • 10
  • 24
1
2
3
12 13