|
| scsa2usb - SCSI to USB bridge driver |
SYNOPSIS
|
The scsa2usb driver is a USBA
(Solaris USB architecture) compliant nexus driver that supports the USB Bulk Only Mass Storage Specification 1.0 and USB Control/Bulk/Interrupt
(CBI) Transport 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 disk devices that utilize the above
two transports.
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 is attached to those nodes. Refer to sd(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).
A USB mass storage device can be managed by rmformat(1). With or without Volume Manager,
you can mount, eject, hot remove and hot insert a USB 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.
Also see http://www.sun.com/io.
Using Volume Management
|
Mass 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(1m)
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 mass storage device with vold(1M) active will fail with a console warning.
To hot remove or insert a USB 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 rmscsi 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 mount1M and umount1M
|
Use mount(1M)
to mount the device and umount(1M)
to unmount the device. Use eject(1)
to eject the media. No vold nicknames can be used. (vold.1m is disabled.)
Removing the storage device while it is being accessed or mounted will
fail with a console warning. To hot remove the storage 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_technologies/storagesolutions.html.
|
|
|
Block special file names are located in /dev/dsk;
raw file names are located in /dev/rdsk. Input/output
requests to the devices must follow the same restrictions as those for SCSI disks. Refer to sd(7D).
|
|
The device special files for the USB mass storage device are created
like those for a SCSI disk. Refer to sd(7D).
-
/dev/dsk/cntndnsn
- Block files
-
/dev/rdsk/cntndnsn
- Raw files
-
/vol/dev/aliases/zip0
- Symbolic link to the character device for the media in Zip
drive 0
-
/vol/dev/aliases/jaz0
- Symbolic link to the character device for the media in Jaz
drive 0
-
/vol/dev/aliases/rmdisk0
- Symbolic link to the character device for the media in removable
drive 0. This is a generic removable media device
-
/kernel/drv/scsa2usb
- 32-bit ELF kernel module
-
/kernel/drv/sparcv9/scsa2usb
- 64-bit ELF kernel module
-
/kernel/drv/scsa2usb.conf
- Can be used to override specific characteristics
|
|
See attributes(5)
for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Architecture | PCI-based systems |
Availability | SUNWusb, SUNWusbx |
|
|
cdrw(1), eject(1), rmformat(1), volrmmount(1), cfgadm_scsi(1M), cfgadm_usb(1M), fdisk(1M), mount(1M), umount(1M), vold(1M), dtfile.1X, scsi(4), attributes(5), sd(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 1.1
Universal Serial Bus Mass Storage Class Specification Overview
1.0
Universal Serial Bus Mass Storage Class Bulk-Only Transport
1.0
Universal Serial Bus Mass Storage Class Control/Bulk/Interrupt
(CBI) Transport 1.0
System Administration Guide: Basic Administration
http://www.sun.com/io
|
|
Refer to sd(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 <name>.
- There was an error in accessing
the mass-storage device during reconnect. Please reconnect the device.
- Device reported incorrect luns (adjusting to 1).
- The mass-storage device reported that it supports an invalid
number of LUNs. The driver has adjusted the number of LUNs supported to 1.
- Device is busy and cannot be suspended. Please close
files, unmount and eject.
- The system wide suspend failed
because the mass-storage device is busy. Close the device, unmount the file
system and eject the media before retrying the suspend.
- 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 reconnect 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.
- Syncing not supported.
- While a system
is panicking, a file system is mounted on the mass-storage media.
Syncing is not supported by scsa2usb driver.
|
|
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 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.
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.
|
| |