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
1
vote
1 answer

SCSI 'VERIFY' equivalent for NVMe

How to translate plain vanilla scsi verify to NVME? i.e. verify in SCSI with only st lba and verification length provided and all other fields as 0 (so no data transfer). How to achieve the same in NVMe?
Parzival
  • 585
  • 2
  • 12
1
vote
2 answers

SCSI commands in BadUSB

I had read the source code of phison (about badusb, python file). But I cannot understand what command the program send to SCSI device. After reading about SCSI commands, I still cannot find opcode begin with "06h" (there exist a similar opcode…
Schweik7
  • 11
  • 1
1
vote
1 answer

ESXi: Convert a pvscsi drive to a scsi drive

I have a machine on my ESXi server that has a PVSCSI disk. I'd like to convert it to a SCSI disk. Is there a command line that does that?
Ram Rachum
  • 84,019
  • 84
  • 236
  • 374
1
vote
3 answers

Java scsi access

I'd like to port a Linux C program to Java. This program controls a camera which is connected to the PC with a USB cable. The C code uses Linux SCSI Generic (sg). Sample code from the C program: #include ... static int…
asalamon74
  • 6,120
  • 9
  • 46
  • 60
1
vote
1 answer

How send a specific command to a scsi device in Linux?

I'm actually working on a fingerprint reader (FP reader) which I plug in USB. This FP reader is also plug on a stm32f4 board. If I understand correctly, the FP reader contains a really small database FP templates. To modify those templates, we plug…
Missu
  • 505
  • 3
  • 15
1
vote
1 answer

read and write scsi devices file from linux , like sdb,sdc

I want to write my own tag on the device file (scsi file sdb, sdc...) on Linux. I use linux C open(), read(), write() functions on /dev/sdb file, write my key in this file. But when usb disk device Unplug from computer and plug again, in /dev/sdb's…
张优传
  • 11
  • 1
1
vote
0 answers

How to map /dev/sg2 to /dev/sdb

My server has been added a new hard disk. But the system does not recognize the hard disk. fdisk result: # fdisk -l Disk /dev/sda: 73.3 GB, 73283928064 bytes 255 heads, 63 sectors/track, 8909 cylinders Units = cylinders of 16065 * 512 = 8225280…
Mistruster
  • 11
  • 3
1
vote
4 answers

issuing hard drive commands with java

Does anyone know of a way to issue commands to a hard drive within Java? Does Java even support this kind of hardware interaction? For example, if I have a SCSI hard drive that I would like to inquiry, is there a pre-existing Java method to do this,…
troyal
  • 2,499
  • 6
  • 25
  • 28
1
vote
1 answer

How to code read buffer scsi command?

I used libaums to access private partition of my custom USB. Now I want to know how to read the Hidden area of my USB. To access the hidden area, I know the sector range of hidden address for my USB, and also the vendor specific command (or opcode)…
nani
  • 389
  • 9
  • 32
1
vote
2 answers

SCSI to NVME Translation

We are developing an application to manage NVME Devices in Windows 10. We are not supposed to use our own driver to talk to drives, so for sending most of the commands, we have to rely on whatever is available from Windows 10. For commands like…
Ravi
  • 41
  • 5
1
vote
1 answer

USB as a host Data Transfer problems for SCSI READ command

I am implementing USB as a host using OHCI. And using SCSI to read a mass storage device. All my control transfers run successfully. I have done all the initialization using Control Transfers however I am facing problem with Data Transfers. I am…
Anurag
  • 651
  • 4
  • 18
1
vote
0 answers

SCSI read(10) reads out weird values- USB pendrive

I am implementing USB as a host using OHCI to read the files stored in the Flashdrive. To read I implement the read(10) command in SCSI. The Logical Block address being the sector number. The following is an image of the command I send for read(10)…
Anurag
  • 651
  • 4
  • 18
1
vote
1 answer

Get Device max links speed with scsi cmd

I am looking for a scsi command that I can use to get device max link capability. Can I use scsi MODE SENSE (page 19) to read the phy descriptors and get the link speed? But how is it different than max link speed and negotiated linkspeed?
rain
  • 363
  • 6
  • 15
1
vote
0 answers

ioctl(SG_IO) works, write/read pair does not

I am trying to execute scsi inquiry command. I managed to do it with: device_ = open(device_path, O_RDWR|O_NONBLOCK); ... if (ioctl(device, SG_IO, &io_hdr) < 0) { int err = errno; cerr << "Inquiry SG_IO ioctl error. Errno: " << err << …
1
vote
1 answer

Windows SCSI ReadCapacity16 in D

I'm attempting to send a scsi ReadCapacity16 (0x9E) to a volume on Windows using D. The CDBs are to spec and my ReadCapacity16 works on Linux and scsi Inquiries work on Windows. Only the not-inquiry calls on Windows fail to work with an "incorrect…
ljdelight
  • 486
  • 4
  • 13