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
0
votes
1 answer

no uevents triggered when disc inserted to USB dvd drive

Any reason why no uevents are triggered whenever I insert a disc to my USB dvd rom drive? I do get uevents whenever I connect and disconnect the drive to the computer. Currently running a custom linux 3.0.35 kernel.
philipdotdev
  • 381
  • 3
  • 13
0
votes
2 answers

Tape Drive Directory Path on Windows 8.1

I have developed an application in Linux which invokes a DDS tape drive. In Linux I use a path to call the tape drive which is /dev/st0 The application is written in Java and it uses JNI to call its native function I am trying to run my application…
QGA
  • 3,114
  • 7
  • 39
  • 62
0
votes
0 answers

How to send SCSI Mode Select command with Caching Mode Page (08h) to disable CD-ROM caching?

For some purposes I want CD-ROM drive always read sectors from medium (disc) not retrieve them from cache (volatile or non-volatile). I know I should use Caching Mode Page (08h). Sending other SCSI command such as 28h (READ CD) or BBh (SET CD SPEED)…
0
votes
1 answer

sending various scsi commands through a single function

I have been playing around with scsi command and I can send some basic commands like different inquirys and such. I have been using this example to to generate my inquiry. I am working on making this example work with different scsi…
user2882307
0
votes
1 answer

How to fetch "Track Information" from a CD with DeviceIOControl()?

I am trying to use DeviceIoControl() with SCSI_PASS_THROUGH_DIRECT, in order to fetch TRACK_INFO. this code "works" but it comes back by setting ScsiStatus to 2. There seems to be conflicting documentation on the size of the "track" data field. the…
0
votes
1 answer

Linux low level driver - how to receive multiple commands for a device

I had written a linux scsi low level driver for cdrom. Am able to receive commands one by one from application and am testing it using sg3-utils. Now I want to receive more than one command while serving the first one.? for this I tried changing…
rameshrgtvl
  • 243
  • 2
  • 16
0
votes
3 answers

scsi inquiry commands to get serial and model information

I have problems getting serial and model information from SCSI drives via an inquiry. My inquiry always returns empty strings. Here is a quick and dirty code of the inquiry which should at least output the entire return of the inquiry. The output…
user2882307
0
votes
0 answers

obtaining scsi(including SAS and FC) hardisk model and serial number

I have recently been playing around with some hard drive stuff. Now what I want to do is print out the model and serial number of harddisk. Sata drives are very easy with ioctl. scsi on the other hand I have to send an inquiry command. I found a…
user2882307
0
votes
1 answer

Program to shoot SCSI Reservations & Release towards EMC Clariion (On Linux)

I am trying to write a program to shoot SCSI Reservations & Release towards EMC Clariion (On Linux), I have done the same on solaris with Sun StoreEdge using the mhd library in solaris but unable to find such interface in linux with EMC. My program…
Ankit Tripathi
  • 374
  • 1
  • 8
0
votes
1 answer

Occasional OSX kernel panic in RetrieveINQUIRYData()

I have a SCSI driver which calls IOSCSIPrimaryCommandsDevice::RetrieveINQUIRYData() as part of the startup process. Sometimes, after unplugging, ejecting, re-inserting and generally abusing the device during testing, a kernel panic occurs in…
Inductiveload
  • 6,094
  • 4
  • 29
  • 55
0
votes
1 answer

Regarding SCSI READ Command

I am trying to get Maximum LBA of the disk using SCSI Read Capacity Command. I have created 10 byte CDB as follows ccb->cam_flags = NO_DATA; ccb->cdb[0] = READ_CAPACITY; /* 0x25 SCSI Opcode for Read Capacity Command */ ccb->cdb[1] =…
arun
  • 41
  • 1
  • 6
0
votes
1 answer

SCSI Inquiry Data

I am new to SCSI Programming and hence sorry for asking basic question. I sent SCSI Inquiry command to a Tape Device through 6 byte CDB ccb = (Exec_IO_CCB *)( buffer + header_size ); ccb->ccb_length = sizeof(Exec_IO_CCB); ccb->cam_opcode =…
arun
  • 41
  • 1
  • 6
0
votes
1 answer

Difference between NVMe queuing interface and PCIe queuing interface

Can any please let me know the difference between the two. Please provoide relavent links if any .
0
votes
1 answer

SCSI generic write() thread safe?

I've got an application that at a high level performs SCSI READ10 and WRITE10 operations simultaneously. When they reach the lower-levels of my code they call write() followed by read() on /dev/sgXX. I'm getting very strange results on devices…
wlformyd
  • 237
  • 2
  • 12
0
votes
2 answers

Way to get SCSI disk names in Linux C++ application

In my Linux C++ application I want to get names of all SCSI disks which are present on the system. e.g. /dev/sda, /dev/sdb, ... and so on. Currently I am getting it from the file /proc/scsi/sg/devices output using below code: host chan SCSI…
SwapG
  • 93
  • 1
  • 6