Copyright (c) 2008, Sun Microsystems, Inc. All Rights Reserved
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
storage@unit-address
The scsa2usb driver also supports a ugen(4D) interface allowing raw access to the device, for example by libusb applications, bypassing the child sd(4D) or st(4D) driver. Because a libusb application might change the state of the device, you should not access the disk or tape concurrently.
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(4D) or st(4D).
This driver supports multiple LUN devices and creates a separate child device info node for each LUN. All child LUN nodes attach to sd(4D) for disks or st(4D) for tapes.
In previous releases, all USB disk storage devices were treated as removable media devices and managed by rmformat(1) and volume management software. In the current release, however, only disk storage devices with a removable bit (RMB) value of 1 are removable. (The RMB is part of the device's SCSI INQUIRY data.) See SCSI specifications T10/995D Revision 11a, T10/1236-D Revision 20 or T10/1416-D Revision 23 for more information. However, for backward compatibility, all USB disk storage devices can still be managed by rmformat(1). With or without a volume manager, you can mount, eject, hot remove and hot insert a 1394 mass 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 storage class.
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. 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:
exclude: scsa2usb
Alternatively, you can disable automatic handling of a device as described in the following subsection.
See rmmount(1) to unmount the device and eject(1) to eject the media. If the device is ejected while it is mounted, volume management software unmounts the device before ejecting it. It also might kill any active applications that are accessing the device.
Volume management software is hotplug-aware and normally mounts file systems on USB mass storage devices if the file system is recognized. Before hot removing the USB device, use eject(1) to unmount the file system. After the device is removed, a console warning, such as "The disconnected device was busy, please reconnect," might display. The warning is harmless and you can ignore it.
You can disable the automatic mounting and unmounting of removable devices by inserting a entry for a removable device in /etc/vfstab. In this entry, you must set the mount at boot field to no. See vfstab(5).
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.
Block files for disks.
Raw files for disks.
ugen(4D) nodes
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.
64-bit x86 ELF kernel module
64-bit SPARC ELF kernel module
Can be used to override specific characteristics.
ATTRIBUTE TYPE ATTRIBUTE VALUE |
Architecture SPARC, x86, PCI-based systems |
Writing Device Drivers
System Administration Guide, Volume I
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
SCSI Specification T10/995D Revision 11a \(em March 1997
SCSI Specification T10/1236-D Revision 20 \(em July 2001
SCSI Specification T10/1416-D Revision 23 \(em May 2005
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.
Another USB device has been inserted on a port that was connected to a mass-storage device. Please disconnect the USB device and reconnect the mass-storage device back into that port.
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.
A hotplug of the device is needed before it can be restored.
The following messages may be logged into the system log. They are formatted in the following manner:
<device path><scsa2usb<instance number>): message...Invalid <record> in scsa2usb.conf file entry.
An unrecognized record was specified in the scsa2usb.conf file.
An application submitted a request but did not specify a timeout.
Syncing after a panic is not supported. The filesystem may be corrupted.
An override record specified in scsa2usb.conf was applied. Examples of an override record applied to a device with vendor ID 123 and product ID 456 are:
vid=0x123 pid=0x456 reduced-cmd-support=true or vid=* reduced-cmd-support=true...meaning that the override record is applied to this device and all other USB mass storage devices.
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 to it.
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.