System Administration Guide: Devices and File Systems

Chapter 7 Using USB Devices (Overview)

This chapter provides an overview of Universal Serial Bus (USB) devices in the Solaris environment.

This is a list of the overview information in this chapter.

For step-by-step instructions on using USB devices in the Solaris environment, see Chapter 8, Using USB Devices (Tasks).

For general information about dynamic reconfiguration and hot-plugging, see Chapter 6, Dynamically Configuring Devices (Tasks).

For information on configuring USB printers, see What’s New in Printing? in System Administration Guide: Advanced Administration.

What's New in USB Devices?

The following sections describe USB device enhancements in this Solaris release.

USB Dual Framework

The USBA framework, found in the Solaris 9 12/03 release, was originally developed for USB 1.1 devices. A new framework, called USBA 1.0, was created to meet more demanding requirements of USB 2.0 devices. The framework operates USB 1.1 devices as well. This Solaris release provides both frameworks, hence the name dual framework. The purpose of the dual framework is to facilitate a smoother transition from the original framework to the newer framework. The original USBA framework operates devices connected to a system's USB 1.1 ports, while the new USBA 1.0 framework operates devices connected to a system's USB 2.0 ports. All Sun motherboard ports are USB 1.1 ports, while most PCI card ports support USB 2.0.

For specific details on the how the USB dual framework works, go to http://www.sun.com/desktop/whitepapers.html.

USB Framework Compatibility Issues

A driver written for one USB framework will not work on the other USB framework. Most Sun-supplied USB drivers provide versions for both frameworks.

Compatibility problems might occur if you attempt to plug a USB device into a port, directed by a framework that does not recognize a proper driver for that device because the driver is incompatible. When a framework tries to attach a framework-incompatible driver for a device, you will see console messages similar to the following:


The driver for device binding name is not for USBA1.0

This message will appear, for example, when a device operated by a non-Sun driver, which is compatible with USBA 1.0 framework, is plugged into a port supported by the original USBA framework. The USBA 1.0 framework recognizes the device and tries to map the correct driver, but the driver is rejected because it is incompatible with the framework operating the port.

For information on identifying your USB framework configuration, see How to Display USB Device Information (prtconf).

Solaris Support for USB Devices

The following table describes Solaris support for USB 1.1 and USB 2.0 devices:

 

Solaris 8 HW* Releases 

Solaris 9 Releases 

USB 1.1

SPARC and x86 

SPARC and x86 

USB 1.1 audio devices 

Not supported on a USB 2.0 hub 

Not supported on a USB 2.0 hub 

USB 2.0

SPARC 

SPARC and x86 (Solaris 9 4/04) 

USB 2.0 audio devices 

Not supported  

Not supported 

USB 2.0 storage devices 

Supported on a USB 2.0 hub  

Supported on a USB 2.0 hub (Solaris 9 4/04) 

*This is not the Solaris 8 releases, but the Solaris 8 HW releases, starting with the Solaris 8 HW 5/03 release. The patch number for the USB dual framework found in the Solaris 8 HW 5/03 release is 109896.


Note –

In the Solaris 9 9/04 release only, USB 1.1 devices will operate on USB 2.0 hubs that are connected to 2.0 ports.


The following table provides a summary of USB support on Sun SPARC hardware:

System Type 

Solaris Releases 

USB Device and Speed Support 

Sun Blade 100, 150, 1000, and 2000 

Solaris 9 releases, before the Solaris 9 4/04 release, and Solaris 8 releases before the Solaris HW 5/03 release 

All USB devices at 12 Mb/sec 

Sun Blade 100, 150, 1000, and 2000 

Solaris 9 4/04 and Solaris 8 HW 5/03 

USB 1.1 devices at 12 Mb/sec (connected to any USB ports) 

USB 2.0 devices at 12 Mb/sec (connected to motherboard ports) 

USB 2.0 devices at 480 Mb/sec (connected to ports on add-on PCI USB 2.0 card) 

Sun Blade 1500 and 2500 

Solaris 9 4/04 and Solaris 8 HW 5/03 

USB 1.1 devices at 12 Mb/sec (connected to any USB ports) 

USB 2.0 devices at 12 Mb/sec (connected to motherboard ports) 

USB 2.0 devices at 480 Mb/sec (connected to ports on PCI combo card) 

Other Sun SPARC PCI platforms 

Solaris 9 4/04 and Solaris 8 HW 5/03 

USB 1.1 devices at 12 Mb/sec  

USB 2.0 devices at 480 Mb/sec (connected to ports on add-on PCI USB 2.0 card) 

For information about PCI cards verified on the Solaris release, go to: http://www.sun.com/io_technologies/usb.html

Sun Microsystems platforms that provide support for USB devices include the following:

For additional USB support information, see Overview of USB Devices.

SPARC: USB 2.0 Features

This Solaris release includes the following USB 2.0 features:

For a description of USB devices and terminology, see Overview of USB Devices.

USB 2.0 Device Features and Compatibility Issues

USB 2.0 devices are defined as high-speed devices that follow the USB 2.0 specification. You can refer to the USB 2.0 specification at http://www.usb.org.

Some of the USB devices that are supported on SPARC based and x86 based systems in this Solaris release are as follows:

For a full listing of USB devices that have been verified on the Solaris release, go to:

http://www.sun.com/io_technologies/usb.html

Additional storage devices might work by modifying the scsa2usb.conf file. For more information, see the scsa2usb(7D) man page.

Solaris USB 2.0 device support includes the following features:

For more information on USB 2.0 device support, see the ehci(7D) and usba(7D) man pages.

USB 2.0 Cables

Bus-Powered Devices

Bus-powered hubs use power from the USB bus to which they are connected, to power devices connected to them. Special care must be taken to not overload these hubs, since the power these hubs offer to their downstream devices is limited.

USB Mass Storage Devices

All USB storage devices in this Solaris release are now accessed as removable media devices. This change has the following advantages:

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.

SPARC: USB Driver Enhancements

This section describes USB driver enhancements in this Solaris release.

The EHCI and OHCI Drivers

Features of the EHCI driver include:

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.

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. 

USB serial converters 

SPARC 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 

USB Bus Description

The USB specification is openly available and free of royalties. The specification defines the electrical and mechanical interfaces of the bus and the connectors.

USB employs a topology in which hubs provide attachment points for USB devices. The host controller contains the root hub, which is the origin of all USB ports in the system. For more information about hubs, see USB Host Controller and Root Hub.

Figure 7–1 USB Physical Device Hierarchy

Diagram shows a system with three active USB ports that includes
a compound device (hub and printer) and composite device (keyboard and mouse).

Figure 7–1 shows a system with three active USB ports. The first USB port connects a Zip drive. The second USB port connects an external hub, which in turn, connects a cdrw device and a composite keyboard/mouse device. As a composite device, this keyboard contains a USB controller, which operates both the keyboard and an attached mouse. The keyboard and the mouse share a common USB bus address because they are directed by the same USB controller.

Figure 7–1 also shows an example of a hub and a printer as a compound device. The hub is an external hub that is enclosed in the same casing as the printer. The printer is permanently connected to the hub. The hub and printer have separate USB bus addresses.

The device tree path name for some of the devices that are displayed in Figure 7–1 are listed in this table.

Zip drive

/pci@1f,4000/usb@5/storage@1

Keyboard

/pci@1f,4000/usb@5/hub@2/device@1/keyboard@0

Mouse

/pci@1f,4000/usb@5/hub@2/device@1/mouse@1

cdrw device

/pci@1f,4000/usb@5/hub@2/storage@3

Printer

/pci@1f,4000/usb@5/hub@3/printer@1

USB Devices and Drivers

USB devices with similar attributes and services are grouped into device classes. Each device class has a corresponding driver, one for each framework. Devices within a class are managed by the same device driver pair. However, the USB specification also allows for vendor-specific devices that are not part of a specific class.

The Human Interface Device (HID) class contains devices that are user-controlled such as keyboards, mouse devices, and joysticks. The Communication Device class contains devices that connect to a telephone, such as modems or an ISDN interface. Other device classes include the Audio, Monitor, Printer, and Storage Device classes. Each USB device contains descriptors that reflect the class of the device. A device class specifies how its members should behave in configuration and data transfer. You can obtain additional class information from http://www.usb.org.

Solaris USB Architecture (USBA)

USB devices can be represented as two levels of device tree nodes. A device node represents the entire USB device. One or more child interface nodes represent the individual USB interfaces on the device.

Driver binding is achieved by using the compatible name properties. For more information, refer to 3.2.2.1 of the IEEE 1275 USB binding and Writing Device Drivers. A driver can either bind to the entire device and control all the interfaces, or can bind to just one interface. If no vendor or class driver claims the entire device, a generic USB multi-interface driver is bound to the device-level node. This driver attempts to bind drivers to each interface by using compatible names properties, as defined in section 3.3.2.1 of the IEEE 1275 binding specification.

The Solaris USB Architecture (USBA) adheres to the USB 1.1 and USB 2.0 specifications plus Solaris driver requirements. The USBA model is similar to Sun Common SCSI Architecture (SCSA). The USBA is a thin layer that provides a generic USB transport-layer abstraction to client drivers, providing them with services that implement core generic USB functionality.

Figure 7–2 Solaris USB Architecture (USBA)

Diagram shows the relationship between client drivers, USBA framework,
host controller drivers, and the device bus.

About USB in the Solaris Environment

This section describes information you should know about USB in the Solaris environment.

USB Keyboards and Mouse Devices

Only Sun USB keyboards and mouse devices are supported. System configurations with multiple USB keyboards and mouse devices might work, but are not supported in the Solaris environment. See the following items for details.

USB Host Controller and Root Hub

A USB hub is responsible for the following:

The USB host controller has an embedded hub called the root hub. The ports that are visible at the system's back panel are the ports of the root hub. The USB host controller is responsible for the following:

USB Hub Devices

SPARC: USB Power Management

Suspending and resuming of USB devices is fully supported on SPARC systems. However, do not suspend a device that is busy and never remove a device when the system is powered off under a suspend shutdown.

The USB framework makes a best effort to power manage all devices on SPARC-based systems with power management enabled. Power managing a USB device means that the hub driver suspends the port to which the device is connected. Devices that support remote wake up can notify the system to wake up everything in the device's path, so that the device can be used. The host system could also wake up the device if an application sends an I/O to the device.

All HID (keyboard, mouse, speakers, microphones), hub, and storage devices are power-managed by default if they support remote wake up capability. A USB printer is power-managed only between two print jobs. Devices that are directed by the generic USB driver (UGEN) are power managed only when they are closed.

When power management is running to reduce power consumption, USB leaf devices are powered down first. After all devices that are connected to a hub's ports are powered down, the hub is powered down after some delay. To achieve the most efficient power management, do not cascade many hubs.

Guidelines for USB Cables

Keep the following guidelines in mind when connecting USB cables:

For more information, go to http://www.usb.org/channel/training/warning.