scsa2usb - SCSI to USB bridge driver
The scsa2usb driver is a USBA (Solaris USB architecture) compliant nexus driver that supports the USB Mass Storage Bulk Only Transport
Specification 1.0 and USB Control/Bulk/Interrupt (CBI) Transport Specification 1.0. The scsa2usb driver also supports USB storage devices
that implement CBI Transport without the interrupt completion for status (that is, Control/Bulk (CB) devices.) It supports bus-powered and
self-powered USB mass storage devices. This nexus driver is both a USB client driver and a SCSA HBA driver. As such, the scsa2usb driver
only supports storage devices that utilize the above two transports.
The scsa2usb driver also supports a ugen(7D) interface allowing raw access to the device, for example by libusb(3LIB) applications, bypass-
ing the child sd(7D) or st(7D) driver. Because a libusb application might change the state of the device, you should not access the disk or
The scsa2usb nexus driver maps SCSA target driver requests to USBA client driver requests.
The scsa2usb driver creates a child device info node for each logical unit (LUN) on the mass storage device. The standard Solaris SCSI disk
driver or tape driver is attached to those nodes. Refer to sd(7D) or st(7D).
This driver supports multiple LUN devices and creates a separate child device info node for each LUN. All child LUN nodes attach to sd(7D)
for disks or st(7D) for tapes.
All USB disk storage devices are treated as removable media devices. A USB disk storage device can be managed by rmformat(1). With or with-
out Volume Manager, you can mount, eject, hot remove and hot insert a USB disk storage device, as the following sections explain.
Some devices may be supported by the USB mass storage driver even though they do not identify themselves as compliant with the USB mass
The scsa2usb.conf file contains an attribute-override-list that lists the vendor ID, product ID, and revision for matching mass storage
devices, as well as fields for overriding the default device attributes. The entries in this list are commented out by default and may be
uncommented to enable support of particular devices.
Follow the information given in the scsa2usb.conf file to see if a particular device can be supported using the override information. Also
see http://www.sun.com/io. For example, by adding the following to the scsa2usb.conf file, many USB memory sticks and card readers might
operate more reliably:
attribute-override-list = "vid=* reduced-cmd-support=true";
Note that this override applies to all USB mass storage devices and might be inappropriate for a USB CD writer. If so, you can add an entry
for each device to the attribute override list.
If USB mass storage support is considered a security risk, this driver can be disabled in /etc/system as follows:
Alternatively, you can permanently disable vold(1M).
Using Volume Management
Disk storage devices are managed by Volume Manager. vold(1M) creates a device nickname which can be listed with eject(1). The device is
mounted using volrmmount(1) under /rmdisk/label.
See volrmmount(1) to unmount the device and eject(1) to eject the media. If the device is ejected while it is mounted, vold(1M) unmounts
the device before ejecting it. It also kills any active applications that are accessing the device.
Hot removing a disk storage device with vold(1M) active fails with a console warning. To hot remove or insert a USB disk storage device,
first stop vold(1M) by issuing the command /etc/init.d/volmgt stop. After the device has been removed or inserted, restart vold(1M) by
issuing the command /etc/init.d/volmgt start.
You can also permanently disable vold for removable devices by commenting out the rmdsk line in vold.conf. See the System Administration
Guide, Volume I and Solaris Common Desktop Environment: User's Guide for details on how to manage a removable device with CDE and Removable
Media Manager. See dtfile.1X under CDE for information on how to use Removable Media Manager.
Using mount(1M) and umount(1M)
Use mount(1M) to mount disk devices and umount(1M) to unmount disk devices. Use eject(1) to eject the media. No vold nicknames can be used.
(vold.1m is disabled.)
Removing the disk device while it is being accessed or mounted fails with a console warning. To hot remove the disk device from the system,
unmount the file system, then kill all applications accessing the device. Next, hot remove the device. A storage device can be hot inserted
at any time.
For a comprehensive listing of (non-bootable) USB mass-storage devices that are compatible with this driver, see www.sun.com/io.
Disk block special file names are located in /dev/dsk, while raw file names are located in /dev/rdsk. Tape raw file names are located in
/dev/rmt. Input/output requests to the devices must follow the same restrictions as those for SCSI disks or tapes. Refer to sd(7D) or
Refer to dkio(7I) and cdio(7I).
Refer to sd(7D) for disks or st(7D) for tapes.
The device special files for the USB mass storage device are created like those for a SCSI disk or SCSI tape. Refer to sd(7D) or st(7D).
Block files for disks.
Raw files for disks.
Raw files for tapes.
Symbolic link to the character device for the media in Zip drive 0
Symbolic link to the character device for the media in Jaz drive 0.
Symbolic link to the character device for the media in removable drive 0. This is a generic removable media device.
32-bit ELF kernel module
64-bit ELF kernel module
64-bit SPARC ELF kernel module
Can be used to override specific characteristics.
See attributes(5) for descriptions of the following attributes:
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|Architecture |SPARC, , PCI-based systems |
|Availability |SUNWusb |
cdrw(1), eject(1), rmformat(1), volrmmount(1), cfgadm_scsi(1M), cfgadm_usb(1M), fdisk(1M), mount(1M), umount(1M), vold(1M), dtfile.1X,
libusb(3LIB), scsi(4), attributes(5), ieee1394(7D)sd(7D), st(7D), ugen(7D), usba(7D), pcfs(7FS), cdio(7I), dkio(7I)
Writing Device Drivers
System Administration Guide, Volume I
Solaris Common Desktop Environment: User's Guide
Universal Serial Bus Specification 2.0
Universal Serial Bus Mass Storage Class Specification Overview 1.0
Universal Serial Bus Mass Storage Class Bulk-Only Transport Specification 1.0
Universal Serial Bus Mass Storage Class Control/Bulk/Interrupt (CBI) Transport Specification 1.0
System Administration Guide: Basic Administration
Refer to sd(7D) and st(7D).
In addition to being logged, the following messages may appear on the system console. All messages are formatted in the following manner:
Warning: <device path> (scsa2usb<instance number>): Error Message...
Cannot access <device>. Please reconnect.
There was an error in accessing the mass-storage device during reconnect. Please reconnect the device.
Device is not identical to the previous one on this port. Please disconnect and reconnect.
Another USB device has been inserted on a port that was connected to a mass-storage device. Please disconnect the USB device and recon-
nect the mass-storage device back into that port.
Disconnected device was busy, please reconnect.
Disconnection of the mass-storage device failed because the device is busy. Please reconnect the device.
Reinserted device is accessible again.
The mass-storage device that was hot-removed from its USB slot has been re-inserted to the same slot and is available for access.
Please disconnect and reconnect this device.
A hotplug of the device is needed before it can be restored.
The Zip 100 drive does not comply with Universal Serial Bus Specification 1.0 and cannot be power managed. Power Management support for Zip
100 has been disabled.
If the system panics while a UFS file system is mounted on the mass storage media, no syncing will take place for the disk mass-storage
device. (Syncing is not supported by the scsa2usb driver.) As a result, the file system on the media will not be consistent on reboot.
If a PCFS file system is mounted, no syncing is needed and the filesystem will be consistent on reboot.
If a mass-storage device is busy, system suspend cannot proceed and the system will immediately resume again.
Attempts to remove a mass-storage device from the system will fail. The failure will be logged to the console. An attempt to replace the
removed device with some other USB device will also fail. To successfully remove a USB mass-storage device you must "close" all references
An Iomega Zip 100Mb disk cannot be formatted on an Iomega Zip250 drive. See the Iomega web site at http://www.iomega.com for details.
Concurrent I/O to devices with multiple LUNs on the same device is not supported.
Some USB CD-RW devices may perform inadequately at their advertised speeds. To compensate, use USB CD-RW devices at lower speeds (2X versus
4X). See cdrw(1) for details.
This driver also supports CBI devices that do not use USB interrupt pipe for status completion.
30 August 2005 scsa2usb(7D)