usba, usb - illumos USB Architecture (USBA)


USB provides a low-cost means for attaching peripheral devices, including
mass-storage devices, keyboards, mice, and printers, to a system. For
complete information on the USB architecture, visit the USB website at

USBA supports 126 hot-pluggable USB devices per USB bus. The maximum data
transfer rate is 5 Gbits (SuperSpeed USB 3.0), 480 Mbits (high speed USB
2.0), 12 Mbits (full speed USB 1.x), or 1.5 Mbits (low speed USB 1.x).

USBA adheres to the Universal Serial Bus 3.0 specification and provides a
transport layer abstraction to USB client drivers.

For information on how to write USB client drivers, see Writing Device
Drivers. For the latest information on writing USB drivers, visit For a complete list of USBA interfaces, see
Intro(9F) or Intro(9S).

Devices without a driver may be able to leverage libusb.


Listed below are drivers and modules which either utilize or are utilized
by USBA.

Client Driver Function/Device

/kernel/drv/[sparcv9|amd64]/hid HID class
/kernel/drv/[sparcv9|amd64]/hubd hub class
/kernel/drv/[sparcv9|amd64]/scsa2usb mass storage class
/kernel/drv/[sparcv9|amd64]/usbprn printer class
/kernel/drv/[sparcv9|amd64]/usb_as audio streaming class
/kernel/drv/[sparcv9|amd64]/usb_ac audio control class
/kernel/drv/[sparcv9|amd64]/usbvc video class
/kernel/drv/[sparcv9|amd64]/usb_mid multi-interface device
/kernel/drv/[sparcv9|amd64]/usb_ia interface-association driver
/kernel/drv/[sparcv9|amd64]/usbser_edge Edgeport USB to serial port
/kernel/drv/[sparcv9|amd64]/usbsksp Keyspan USB to serial port
/kernel/drv/[sparcv9|amd64]/usbsprl pl2303 USB to serial port
/kernel/drv/[sparcv9|amd64]/usbsacm CDC ACM class to serial port
/kernel/drv/[sparcv9|amd64]/ugen generic USB driver

Client Streams Modules Function/Device

/kernel/strmod/[sparcv9|amd64]/usbkbm Keyboard
/kernel/strmod/[sparcv9|amd64]/usbms Mouse
/kernel/strmod/[sparcv9|amd64]/usb_ah Audio HID

Host Controller Interface Drivers Device

/kernel/drv/amd64/xhci Extensible HCI
/kernel/drv/[sparcv9|amd64]/ehci Enhanced HCI
/kernel/drv/[sparcv9|amd64]/ohci Open HCI
/kernel/drv/[sparcv9|amd64]/uhci Universal HCI


The messages described below may appear on the system console as well as
being logged. All messages are formatted in the following manner:

WARNING: Error message...

no driver found for device <device_name> (interface <number> node
name=<node_name>) The installed software does not contain a
supported driver for this hardware. <number> is the interface
number. <name> is either the device path name or the device

Draining callbacks timed out!
An internal error occurred. Please reboot your system. If this
problem persists, contact your system vendor.

The following messages may be logged into the system log. They are
formatted in the following manner:

<device path><usba<instance number>): message...

Incorrect USB driver version for <n.m>.
Driver is incompatible with USBA framework.


ehci(4D), hid(4D), hubd(4D), ohci(4D), scsa2usb(4D), ugen(4D), uhci(4D),
usb_ac(4D), usb_as(4D), usb_ia(4D), usb_mid(4D), usbprn(4D), usbsacm(4D),
usbser_edge(4D), usbsksp(4D), usbsprl(4D), usbvc(4D), virtualkm(4D),
xhci(4D), attributes(7), cfgadm_usb(8), Intro(9F), Intro(9S)

Writing Device Drivers.

Universal Serial Bus Specification 3.0.

Interface Association Descriptor Engineering Change Notice (ECN).

System Administration Guide: Basic Administration.


Booting from USB mass-storage devices is not supported on SPARC, but is
supported on X86.

OmniOS January 10, 2020 OmniOS