Oracle USB Devices Driver

As with other bus-based subsystems in Oracle Linux, a USB device driver registers its driver object with the USB subsystem. It can then use vendor and device identifiers to determine if the USB hardware is present. The implementation of USB device drivers is likely to differ in many respects between Linux and UNIX operating systems, with most differences arising from the functions that the driver uses to handle USB requests, the structures that are used to represent USB driver methods.

The device is a spirometer that doesn't have USB drivers for Windows 10 but works well in Windows 7. The vendor ID is not in the USB ID Repository. The vendor ID is 0ae0 and the product ID is 4000. I have Oracle Virtual Box installed on my Windows 8 system. I run Windows XP in the Virtual box and occasionally have trouble with it loading my USB thumb drive. The only thing I have found that works it to remove the thumb drive and plug it into a different USB port.

This chapter provides an overview of Universal Serial Bus (USB) devicesin the Oracle Solaris OS.

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

For recent information about USB devices, go to the following site:

For general information about USB devices, go to the following site:

For step-by-step instructions on using USB devices in the Oracle Solaris OS,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 System Administration Guide: Printing.

The following section describes new USB features in the Solaris release.

For a complete listing of new Solarisfeatures and a description of Solaris releases, see Oracle Solaris 10 9/10 What’s New.

EHCI Isochronous Transfer Support

Solaris 10 8/07: USB EHCIhost controller driver provides isochronous transfer support for USB 2.0 orhigh-speed isochronous devices. For more information, see usb_isoc_request(9S).

Support for CDC ACM Devices

Solaris 10 8/07:Supportfor CDC ACM devices is provided in this release. For more information, see USB Driver Enhancements.

Changed USB Device Hotpluggable Behavior

Drivers scotland. Solaris 10 6/06: This feature information hasbeen revised in the Solaris10 11/06 release.

This Solaris release introduces a new device attribute, hotpluggable, to identify those devices that can be connected or disconnectedwithout rebooting the system and configured or unconfigured automaticallywithout user intervention. All USB and 1394 devices are identified as hotpluggabledevices to gain those benefits described in Using USB Mass Storage Devices. In addition, non-removable media USB and1394 devices are no longer identified as removable-media devices and no longerhave a removable-media attribute.

The changes are primarily made at the kernel level to improve supportfor non-removable media USB and 1394 devices, and improve the performancefor those devices. However, theses changes do not impact the use of thesedevices. For example, the responsibility of mounting and unmounting thesedevices is controlled by vold. From a user's perspective, the only visible changes arethe hotpluggable and removable-media attributes of a device.

For more information, see USB and 1394 (FireWire) Support Enhancements.

Oracle Solaris ZFS Support on USB Devices

You can create and mount ZFS file systems on USB mass storage devices.For information about using USB mass storage devices, see Using USB Mass Storage Devices.

For information about creating and mounting ZFS file systems, see zfs(1M) and zpool(1M).

Support for Prolific and Keyspan Serial Adapters

Solaris 10 6/06: Previously, this feature was incorrectlyidentified as available in the Solaris 10 1/06 release. This feature is availablestarting in the Solaris 10 6/06 release.

USB Power Budgeting

Solaris 10 6/06: This Solaris release includespower budgeting of USB devices to better manage the power that is distributedto USB devices. Power budget control helps prevent over-current conditionsfrom occurring and generally makes using USB devices safer. For more informationabout Solaris USB power budgeting limitations, see Bus-Powered Devices.

x86: Support for USB CDs and DVDs in GRUB-BasedBooting

Solaris 10 1/06: You can use the followingUSB features in the GRUB-based booting environment:

  • Installing from USB CD or DVD drives

  • Booting from USB storage devices. You must install the Solarisrelease on the USB drive before you can boot from it.

For more information about GRUB-based booting, see Chapter 9, Shutting Down and Booting a System (Overview), in System Administration Guide: Basic Administration.

USB Virtual Keyboard and Mouse Support

Solaris 10 1/06: USB virtual keyboard andmouse support enables you to hook up multiple keyboards and multiple mice,where the set of keyboards or mice behave as one virtual keyboard or mouse.This means that the input of each physical device is coalesced into a singleinput stream. For example, if you type SHIFT on one keyboard and A on another,the character echoed is an uppercase A.

Also supported is the ability to add a USB keyboard or mouse to a laptopand have these devices work as one device with the laptop's PS/2 keyboardand pad.

In addition, support for barcode readers is provided by the virtualkeyboard and mouse feature.

For more information, refer to virtualkm(7D).

USB

vold Provides Awareness of Hot-PluggedUSB Devices

Solaris 10 1/06: The removable media manager(vold) is now hotplug aware. There is no need to restartthis daemon to mount a USB mass storage device that has been hot-inserted.However, for some devices, it might still be necessary to manually mount thedevices as vold is not always successful. In the case where vold fails to automatically mount a USB device, stop vold,like this:


For information about manually mounting a USB mass storage device, see How to Mount or Unmount a USB Mass Storage Device Without vold Running.

Use the following table to identify Solaris support information forspecific USB 1.1 and USB 2.0 devices.

USB Device

Solaris 8 HW 5/03 and Later Releases

Solaris 9 Releases

Solaris 10 Releases

General USB 1.1 device support

SPARC and x86

SPARC and x86

SPARC and x86

General USB 2.0 device support

SPARC only

SPARC and x86 (Solaris 9 4/04)

SPARC and x86

Specific USB 1.1 and USB 2.0 device support

audio devices (See notes below.)

USB 1.1 only:

Not supported on a USB 2.0 hub

USB 1.1 only:

Not supported on a USB 2.0 hub

USB 1.1 only:

Supported on a USB 2.0 hub

generic USB driver (ugen(7D))

SPARC only

SPARC and x86

SPARC and x86

hid devices (keyboard and mouse devices, hid(7D))

SPARC and x86

SPARC and x86

SPARC and x86

hubs (hubd(7D))

SPARC and x86

SPARC and x86

SPARC and x86

printers

SPARC and x86

SPARC and x86

SPARC and x86

serial devices (Edgeport (usbser_edge(7D)), Prolific (usbsprl(7D)), Keyspan (usbsksp(7D))

SPARC and x86

SPARC and x86

SPARC and x86

storage devices (scsa2usb(7D))

SPARC and x86

SPARC and x86

SPARC and x86

user-space USB device management library (libusb(3LIB))

Not supported

Not supported

SPARC and x86

Notes:

  • Only USB 1.x audio devices are supported. No USB 2.0 audiodevices are supported.

  • A USB 1.x audio device that is connected to a USB 2.0 hub,which is connected to a USB 2.0 port, can be used in the Solaris 10 releases only. For more information, see usb_ac(7D) and usb_as(7D).

  • Devices that are not supported by a USB driver might have libusb applications such as gphoto2, gtkam,and pilotlink. For more information, refer to /usr/sfw/share/doc/libusb/libusb.txt.

  • Solaris 8 and Solaris 9 releases –For USB dual framework issues, refer to the following site:

For task information associated with mass storage devices, see Chapter 8, Using USB Devices (Tasks).

For more information about ugen, see USB Driver Enhancements.

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

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

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

For more information, see usba(7D) orgo to the following site:

Commonly Used USB Acronyms

The following table describes the USB acronyms that are used inthe Oracle Solaris OS. For a complete description of USB components and acronyms,go to:

Acronym

Definition

For More Information

UGEN

USB generic driver

USB

Universal Serial Bus

USBA

Universal Serial Bus Architecture (Solaris)

USBAI

USBA Client Driver Interface (Solaris)

N/A

HCD

USB host controller driver

N/A

EHCI

Enhanced Host 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 thebus and the connectors.

USB employs a topology in which hubs provideattachment 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 abouthubs, see USB Host Controller and Hubs.

Figure 7–1 USB Physical Device Hierarchy

Figure 7–1 showsa system with three active USB ports. The first USB port connects a USB memorystick. The second USB port connects an external hub, which in turn, connectsa cdrw device and a composite keyboard/mouse device. As a compositedevice, this keyboard contains a USB controller, which operatesboth the keyboard and an attached mouse. The keyboard and the mouse sharea 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 compounddevice. The hub is an external hub that is enclosed in the samecasing as the printer. The printer is permanently connected to the hub. Thehub and printer have separate USB bus addresses.

The device tree path name for some of the devices that are displayedin Figure 7–1 arelisted here.

Memory stick

/[email protected],4000/[email protected]/[email protected]

Keyboard

/[email protected],4000/[email protected]/[email protected]/[email protected]/[email protected]

Mouse

/[email protected],4000/[email protected]/[email protected]/[email protected]/[email protected]

cdrw device

/[email protected],4000/[email protected]/[email protected]/[email protected]

Printer

/[email protected],4000/[email protected]/[email protected]/[email protected]

USB Devices and Drivers

USB devices with similar attributes and services are grouped intodevice classes. Each device class has a corresponding driver. Deviceswithin a class are managed by the same device driver pair. However, the USBspecification also allows for vendor-specific devices that are not part ofa specific class.

The Human Interface Device (HID) class contains devices that are user-controlledsuch as the following devices:

  • Keyboards

  • Mouse devices

  • Joysticks

The Communication Device class includes the following devices:

  • Modems

  • Ethernet adapters

Other device classes include the following classes:

Oracle Usb Devices Driver Win 7

  • Audio

  • Monitor

  • Printer

  • Storage Device

Each USB device contains descriptors that reflect the class of the device.A device class specifies how its members should behave in configuration anddata transfer. You can obtain additional class information from:

For more information about USB devices supported in the Solaris release,see usb(7D).

USB Driver Enhancements

The following USB driver enhancements are included.

  • USB CDC ACM device support – The acm driver can work with devices that are compliant with the USBCommunication Class Device specification's Abstract Control Model and somePCMCIA cards that have modem capabilities.

    The pppd daemoncan access these devices through the /dev/term/[0~9]*entries. For more information, see pppd(1M).

    For more information, see usbsacm(7D).

  • Generic USB driver – USBdevices can now be accessed and manipulated by applications using standard UNIX read(2) and write(2) system calls, andwithout writing a special kernel driver. Additional features include:

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

    • The driver supports control, bulk, and interrupt (in and out)transfers.

    Starting in the Solaris 10 6/06 release, the ugen driverno longer needs to bind explicitly to a device. By default, usb_mid bindsto devices that lack a class driver and exports a ugen interfacethat works with libusb. For example, you can plug in aUSB camera that is not a mass-storage device and use a libusb applicationto access it. In addition, both scsa2usb and usbprn driversexport ugen interfaces and libusb applicationscan be used on these classes of devices directly.

    For more information, refer to ugen(7D).

  • USB serial driver support

    • Digi Edgeport USB support – The Edgeport USB driveronly works with Edgeport devices and not with other USB serial 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 wouldbe, except that they cannot serve as a local serial console. The fact thattheir data is run through a USB port is transparent to the user.

      For more information, see usbser_edge(7D), or go to the following sites:

    • Keyspan – The Keyspan USB serial driver only works withKeyspan devices, which currently supports the USA-19HS and USA-49WLC models.

      For more information, see usbsksp(7D).

    • Prolific – The Prolific USB serial driver only workswith devices based on the PL2303 chipset.

      For more information,see usbsprl(7D).

    For more information about the USB to serial devices support, go tothe following site:

  • Documentation and binary support foruser-written kernel and userland drivers – For up-to-dateinformation on USB driver development, go to:

    • Intro(7), Intro(9F), and Intro(9S)

The EHCI, OHCI, and UHCI Drivers

Features of the EHCI driver include:

  • Complies with enhanced host controller interface that supportsUSB 2.0.

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

  • The USB 2.0 chip has one EHCI controller and one or more OHCIor UHCI controllers.

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

Use the prtconf command output to identify whetheryour system supports USB 1.1 or USB 2.0 devices. For example:


If your prtconf output identifies an EHCI controller,your system supports USB 2.0 devices.

If your prtconf output identifies an OHCI or UHCIcontroller, your system supports USB 1.1 devices.

Solaris USB Architecture (USBA)

USB devices can be representedas two levels of device tree nodes. A device node represents the entire USB device. One or more child interface nodesrepresent 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 theentire device, a generic USB multi-interface driver is bound to the device-levelnode. This driver attempts to bind drivers to each interface by using compatiblenames 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.0specifications and is part of the Solaris Device Driver Interface (DDI).The USBA model is similar to Sun Common SCSI Architecture (SCSA). As the followingfigure shows, the USBA is a thin layer that provides a generic USB transport-layerabstraction to client drivers, providing them with services that implementcore generic USB functionality.

Figure 7–2 Solaris USB Architecture (USBA)

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

USB 2.0 Features

The following USB 2.0 features are included:

Oracle Usb Devices Driver Vga

  • Better performance –Increased data throughput for devices connected to USB 2.0 controllers, upto 40 times faster than USB 1.1 devices.

    Youcan take advantage of the high-speed USB protocol when accessing high-speedUSB devices, such as DVDs and hard disks.

  • Backward Compatibility –Compatibility with 1.0 and 1.1 devices and drivers so that you can use thesame cables, connectors, and software interfaces.

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

USB 2.0 Device Features and CompatibilityIssues

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

To identify the speed of your USB device in the Solaris 10 releases,check the /var/adm/messages file for messages similarto the following:


Here are some of the USB devices that are supported in this Solarisrelease:

  • Mass storage devices, such as CD-RWs, hard disks, DVDs, digitalcameras, diskettes, tape drives, memory sticks, and multi-format card readers

  • Keyboards and mouse devices

  • Audio devices, such as speakers and microphones

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

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

Solaris USB 2.0 device support includes the following features:

  • Increased USB bus speed from 12 MB/sec to 480 MB/sec. Thisincrease means devices that support the USB 2.0 specification can run significantlyfaster than their USB 1.1 counterparts, when they are connected to a USB 2.0port.

    A USB 2.0 port might be one of the following possibilities:

    • A port on a USB 2.0 PCI card

    • A port on a USB 2.0 hub that is connected to USB 2.0 port

    • A port on a SPARC or x86 computer motherboard

    A USB 2.0 PCI card might be needed for older SPARC platforms.

  • For a list of USB 2.0 PCI cards that have been verified forthe Solaris release, go to:

  • USB 1.1 devices work as they have in the past, even if youhave both USB 1.1 and USB 2.0 devices on the same system.

  • While USB 2.0 devices operate on a USB 1.x port, their performanceis significantly better when they are connected to a USB 2.0 port.

  • A USB 2.0 host controller has one high-speed Enhanced HostController Interface (EHCI) and one or more OpenHCI Host Controller Interface(OHCI) or Universal Host Controller Interface (UHCI) embedded controllers.Devices connected to a USB 2.0 port are dynamically assigned to either anEHCI or OHCI controller, depending on whether they support USB 2.0.

    Note –

    USB 2.0 storage devices that are connected to a port on a USB2.0 PCI card, and that were used with a prior Solaris release in the samehardware configuration, can change device names after upgrading to this release.This change occurs because these devices are now seen as USB 2.0 devices andare taken over by the EHCI controller. The controller number, w in /dev/[r]dsk/cwtxdysz, is changedfor these devices.

    Also note that the speed of a USB device islimited to what the parent port can support. For example, if a USB 2.0 externalhub is followed by a USB 1.x hub and a USB 2.0 device downstream, devicesthat are connected to the USB 2.0 external hub run at full speed and not highspeed.

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

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 overloadthese hubs, because the power these hubs offer to their downstream devicesis limited.

Starting in the Solaris10 6/06 release, power budgeting is implemented for USB devices. This featurehas the following limitations:

Oracle Usb Devices Driver Updater

  • Cascading two bus-powered hubs is prohibited.

  • Each bus-powered hub is allowed a maximum of 100 mA only foreach port.

  • Only self-powered or low bus-powered devices are allowed toconnect to a bus-powered hub. High bus-powered devices are denied the connection.Some hubs or devices can report a false power source, such that the connectionmight be unpredictable.

USB Keyboards and Mouse Devices

Keep the following issues in mind when usingUSB keyboards and mouse devices:

  • Do not move the keyboard and mouse during areboot or at the ok prompt on a SPARC system. You can movethe keyboard and mouse to another hub at any time after asystem reboot. After you plug in a keyboard and mouse, they are fully functionalagain.

  • The keys just to the left of the keypad might not functionon some third-party USB keyboards.

  • SPARC – Keep thefollowing issues in mind when using USB keyboards and mouse devices on SPARCsystems:

    • The power key on a USB keyboard behaves differently than thepower key on the Sun type 5 keyboard. On a USB keyboard, you can suspend orshut down the system by using the SUSPEND/SHUTDOWN key. However, you cannotuse that key to power up the system.

    • Before the boot process finishes, the OpenBoot PROM (OBP)limits keyboard and mouse devices to the motherboard root hub ports only.

    • USB keyboard and mouse devices cannot be used simultaneouslywith Sun Type 3, 4, or 5 keyboards on legacy SPARC systems, such as the Ultra80.

  • For information about multiple keyboard and mouse device support,see virtualkm(7D).

USB Wheel Mouse Support

Starting in the Solaris 9 9/04 release, the following wheel mouse featuresare supported:

  • Support for more than 3 buttons is available on USB or PS/2mouse devices.

  • Wheel mouse scrolling is available on a USB or PS/2 mousedevice. This support means that rolling the wheel on a USB or a PS/2 mouseresults in a scroll in the application or window under mouse focus. StarOffice, Firefox, and GNOME applications support wheel mouse scrolling. However, other applications might not support wheel mouse scrolling.

USB Host Controller and Hubs

A USB hub is responsible for the following:

  • Monitoring the insertion or removal of a device on its ports

  • Power managing individual devices on its ports

  • Controlling power to its ports

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

  • Directing the USB bus. Individual devices cannot arbitratefor the bus.

  • Polling the devices by using a polling interval that is determinedby the device. The device is assumed to have sufficient buffering to accountfor the time between the polls.

  • Sending data between the USB host controller and its attacheddevices. Peer-to-peer communication is not supported.

USB Hub Devices

  • Do not cascade hubs beyond four levels on either SPARC basedsystems or x86 based systems. On SPARC systems, the OpenBoot PROMcannot reliably probe beyond four levels of devices.

  • Do not plug a bus-powered hub into another bus-powered hubin a cascading style. A bus-powered hub does not have its own power supply.

  • Do not connect a device that requires a large amount of powerto a bus-powered hub. These devices might be denied connection to bus-poweredhubs or might drain the hub of power for other devices. An example of sucha device is a USB diskette device.

SPARC: USB Power Management

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

The USB framework makes a best effort to power manage all devices onSPARC based systems with power management enabled. Power managing a USB devicemeans that the hub driver suspends the port to which the device is connected.Devices that support remote wake up can notify the systemto 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/Oto the device.

All HID devices (keyboard, mouse, hub, and storage devices), hub devices,and storage devices are power managed by default if they support remote wake-upcapability. A USB printer is power managed only between two print jobs. Devicesthat are managed by the generic USB driver (UGEN) are power managed only whenthey are closed.

When power management is running to reduce power consumption,USB leaf devices are powered down first. After all devices that are connectedto 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.

For information about using the SUSPEND/SHUTDOWN key on SPARC systems,see USB Keyboards and Mouse Devices.

Guidelines for USB Cables

Oracle Usb Devices Drivers

Keep the following guidelines in mind when connecting USB cables:

  • Always use USB 2.0 compliant, fully rated (480Mbit/sec) 20/28 AWG cables for connecting USB 2.0 devices.

  • The maximum cable length that is supported is 5 meters.

  • Do not use cable extenders. For best results, use a self-poweredhub to extend cable length.

For more information, go to: