USBA(7D) Devices USBA(7D)


usba, usbillumos 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. Drivers in /kernel/drv are 32 bit drivers (x86 only). Drivers in /kernel/drv/sparcv9 or kernel/drv/amd64 are 64 bit drivers.
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
kernel/drv/[sparcv9|amd64/]ohci open host controller driver
kernel/drv/[sparcv9|amd64/]uhci universal host controller driver
kernel/drv/[sparcv9|amd64/]ehci enhanced host controller driver
kernel/drv/[sparcv9|amd64/]xhci extensible host controller driver
Client Streams Modules Function/Device
/kernel/strmod/[sparcv9|amd64/]usbkbm Keyboad
/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/[sparcv|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 name.
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.


cfgadm_usb(1M), attributes(5), ehci(7D), hid(7D), hubd(7D), ohci(7D), scsa2usb(7D), ugen(7D), uhci(7D), usb_ac(7D), usb_as(7D), usb_ia(7D), usb_mid(7D), usbprn(7D), usbsacm(7D), usbser_edge(7D), usbsksp(7D), usbsprl(7D), usbvc(7D), virtualkm(7D), xhci(7D), 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.
May 13, 2017 illumos