SCSICTL(8) | System Manager's Manual | SCSICTL(8)

# NAME

`scsictl` — manipulate SCSI devices and busses

# SYNOPSIS

`scsictl` | device command [arg ...]

# DESCRIPTION

`scsictl` allows a user or system administrator to issue commands to and otherwise control SCSI devices and busses. It is used by specifying a device or bus to manipulate, the command to perform, and any arguments the command may require. `scsictl` determines if the specified device is an actual device or a SCSI bus automatically, and selects the appropriate command set.

For commands which `scsictl` issues a SCSI command to the device directly, any returned sense information will be decoded by `scsictl` and displayed to the standard output.

# DEVICE COMMANDS

The following commands are supported for SCSI devices:

`debug` level
  Set the debugging level for the given device; the following flags are supported:

  1
    Show scsi commands, errors, data.
  2
    Routine flow tracking.
  4
    Internal info from routine flows.
  8
    Device specific debugging.

  This option is only supported with kernels compiled with `SCSIPI_DEBUG`.

`defects` [primary] [grown] [`block`|`byte`|`physical`]
  Read the primary and/or grown defect lists from the specified device in block, byte from index, or physical sector format. The default is to return both the primary and grown defect lists in physical sector format. This command is only supported on direct access devices.
`format` [blocksize [`immediate`]]
  (Low level) format the named device. If the optional `blocksize` parameter is provided, the device geometry will be modified to use the specified `blocksize`. If this parameter is different form the Current or Default Mode Page 3 parameters, the device will update Mode Page 3 at the successful completion of the Format. Device geometry may change as a result of using a new device `blocksize`. When the optional `blocksize` parameter is specified, the Defect List on the drive will revert to the original primary defect list created at the time of manufacture if available. The drive will usually recertify itself during the Format and add any other defective blocks to the new Defect List. Some disks may not support the ability to change the blocksize and may enter a Degraded Mode when fed a Format command of this type. If this happens the standard recovery for the drive requires issuing a correct Format command, i.e. one without the blocksize parameter.

  When the `immediate` parameter is also specified, the disk is instructed to return from the format command right away. It continues to format, and every ten seconds `scsictl` issues a TEST UNIT READY command to check the associated sense data. This associated sense data has a progress indicator which indicates how far the format is progressing. Note well that most SCSI disk drives prior to a few years ago do not support this option.

`identify` [vpd]
  Identify the specified device, displaying the device's SCSI bus, target, and lun, as well as the device's vendor, product, and revision strings.

  When the optional `vpd` parameter is added, Vital Product Data that identifies the device is also queried and displayed.

`reassign` blkno ...
  Issue a “REASSIGN BLOCKS” command to the device, adding the specified blocks to the grown defect list. This command is only supported on direct access devices.
`release`
  Send a “RELEASE” command to the device to release a reservation on it.
`reserve`
  Send a “RESERVE” command to the device to place a reservation on it.
`reset`
  Reset the device. This command is only supported for devices which support the `SCIOCRESET` ioctl.
`start`
  Send a “START” command to the device. This is useful typically only for disk devices.
`stop`
  Send a “STOP” command to the device. This is useful typically only for disk devices.
`tur`
  Send a “TEST UNIT READY” command to the device. This is useful for generating current device status.
`getcache`
  Return basic cache parameters for the device.
`setcache` file ... `none`|`r`|`w`|`rw` [save]
  Set basic cache parameters for the device. The cache may be disabled (none), the read cache enabled (r), the write cache enabled (w), or both read and write cache enabled (rw). If the drive's cache parameters are savable, specifying save after the cache enable state will cause the parameters to be saved in non-volatile storage.
`flushcache`
  Explicitly flush the write cache.
`setspeed` speed
  Set the highest speed that the optical drive should use for reading data. The units are multiples of a single speed CDROM (150 KB/s). Specify 0 to use the drive's fastest speed.
`getrealloc`
  Return automatic reallocation parameters for the device.
`setrealloc` file ... `none`|`r`|`w`|`rw` [save]
  Set automatic reallocation parameters for the device. Automatic reallocation may be disabled (none), the automatic read reallocation enabled (r), the automatic write reallocation enabled (w), or both automatic read and write reallocation enabled (rw). If the drive's automatic reallocation parameters are savable, specifying save after the automatic reallocation enable state will cause the parameters to be saved in non-volatile storage.
`reportluns` file ... `normal`|`wellknown`|`all`|#
  Report Logical Units provided by the drive.
  normal
    report all but well-known logical units. This is also the default.
  wellknown
    report the well known logical units instead. E.g.,
    0xc101h
      Addressable objects
    0xc102h
      Addressable objects associations
    0xc103h
      SCSI target device identification
  all
    report all logical units.
  #
    Use the given numeric select report value (0-255).

# BUS COMMANDS

The following commands are supported for SCSI busses:

`reset`
  Reset the SCSI bus. This command is only supported if the host adapter supports the `SCBUSIORESET` ioctl.
`scan` target lun
  Scan the SCSI bus for devices. This is useful if a device was not connected or powered on when the system was booted. The target and lun arguments specify which SCSI target and lun on the bus is to be scanned. Either may be wildcarded by specifying the keyword “any” or “all”.
`detach` target lun
  Detach the specified device from the bus. Useful if a device is powered down after use. The target and lun arguments have the same meaning as for the `scan` command, and may also be wildcarded.

# NOTES

When scanning the SCSI bus, information about newly recognized devices is printed to console. No information is printed for already probed devices.

# FILES

/dev/scsibus* - for commands operating on SCSI busses

# SEE ALSO

ioctl(2), cd(4), ch(4), scsi(4), sd(4), se(4), ss(4), st(4), uk(4), atactl(8), dkctl(8)

# HISTORY

The `scsictl` command first appeared in NetBSD 1.4.

# AUTHORS

The `scsictl` command was written by Jason R. Thorpe of the Numerical Aerospace Simulation Facility, NASA Ames Research Center.

November 9, 2024 | NetBSD 11.0