Sun Microsystems Logo
Products & Services
 
Support & Training
 
 

Previous Previous     Contents     Index     Next Next

For more information on using USB mass storage devices, see the scsa2usb(7D) man page.

Troubleshooting Tips for USB Mass Storage Devices

Keep the following tips in mind if you have problems adding or removing a USB mass storage device.

  • If USB devices are added or removed when the system is down, you must perform a reconfiguration boot.

    ok boot -r

    If you have problems accessing a device that was connected while the system is running, try the following command:

    # devfsadm

  • Do not move devices around if the system has been powered down by a suspend operation. For more information, see SPARC: USB Power Management.

  • If a device has been hot removed while in use by applications and is no longer available, then stop the applications. Use the prtconf command to see whether the device node has been removed.

USB Driver Enhancements

This section describes USB driver enhancements in this Solaris release.

  • New generic USB driver (ugen) features and support - USB devices can now be accessed and manipulated by applications using standard Unix read(2) and write(2) system calls, and without writing a special kernel driver. Additional features include:

    • Applications have access to raw device data and device status.

    • Supports control, bulk, and interrupt (in and out) transfers.

    Support for ugen is only available on ports operated by the USBA 1.0 framework.

    To discover whether a port is operated by the USBA 1.0 framework, plug the device into the port. Then, issue the prtconf -D command. The prtconf -D hierarchy tree shows the device on the port, which is currently unbound to a driver, as device. Traverse up the prtconf hierarchy tree until you see an entry that has a driver with ohci, ehci, or uhci in its name. The ohci, ehci, or uhci entry represents the host controller. If the host controller driver name begins with usba10_, the devices in it's subtree are operated by the USBA 1.0 framework.

    For more information, refer to the ugen(7D) man page and the USB DDK at:

    http://developers.sun.com/solaris/developer/support/driver/usb.html

  • Digi Edgeport USB support - Provides support for several Digi Edgeport USB to serial port converter devices.

    • New devices are accessed as /dev/term/[0-9]* and /dev/cua/[0-9]*.

    • USB serial ports are usable as any other serial port would be, except that they cannot serve as a local serial console. The fact that their data is run through a USB port is transparent to the user.

    • x86 platforms - The Digi Edgeport USB serial driver is supported only on the USBA 1.0 framework. See the preceding section on ugen for information on determining how to tell which framework operates which ports.

    For more information, see usbser_edge(7D), or go to http://www.digi.com and http://www.sun.com/io.

  • Documentation and binary support for user-written kernel and userland drivers - A Solaris USB Driver Development Kit (DDK) is available, and its documentation is applicable to the Solaris 10 release. For up-to-date information on USB driver development, including information on the DDK, go to:

    http://developers.sun.com/solaris/developer/support/driver/usb.html

The EHCI and OHCI Drivers

Features of the EHCI driver include:

  • Complies with enhanced host controller interface that supports USB 2.0.

  • Supports high-speed control, bulk, and interrupt transfers.

  • Currently, there is no support for high-speed isochronous transactions. It is possible that some USB audio devices might eventually use high-speed isochronous transactions.

If there are USB 2.0 and USB 1.x devices on the system, the EHCI and OHCI drivers hand-off device control depending upon the type of device that is connected to the system.

  • The USB 2.0 PCI card has one EHCI controller and one or more OHCI controllers.

  • A USB 1.1 device is dynamically assigned to the OHCI controller when it is plugged in. A USB 2.0 device is dynamically assigned to the EHCI controller when it is plugged in.

Overview of USB Devices

Universal Serial Bus (USB) was developed by the PC industry to provide a low-cost solution for attaching peripheral devices, such as keyboards, mouse devices, and printers, to a system.

USB connectors are designed to fit only one type of cable, one way. The primary design motivation for USB was to alleviate the need for multiple connector types for different devices. This design reduces the clutter on the back panel of a system.

Devices connect to USB ports on external USB hubs, or on a root hub that is located on the computer itself. Since hubs have several ports, several branches of a device tree can stem from a hub.

This table lists specific USB devices that are supported in the Solaris environment.

USB Devices

Systems Supported

HID control on audio devices

SPARC based and x86 based systems.

Hubs

SPARC based and x86 based systems.

Keyboards and mouse devices

SPARC based and x86 based systems.

Mass storage devices

SPARC based and x86 based systems.

Supported configurations include only one keyboard and mouse. These devices must be connected to an on-board USB host controller.

Printers

SPARC based and x86 based systems.

Speakers and microphones

SPARC based and x86 based systems.

Commonly Used USB Acronyms

The following table describes the USB acronyms that are used in the Solaris environment. For a complete description of USB components and acronyms, go to http://www.usb.org.

Acronym

Definition

ugen

USB generic driver

USB

Universal Serial Bus

USBA

Universal Serial Bus Architecture (Solaris)

USBAI

USBA Client Driver Interface (Solaris)

HCD

USB host controller driver

EHCI

Enhanced Open Controller Interface

OHCI

Open Host Controller Interface

UHCI

Universal Host Controller Interface

Previous Previous     Contents     Index     Next Next