USBA(7D) Devices USBA(7D)

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 http://www.usb.org.

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 http://illumos.org/books/wdd. 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 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.
January 10, 2020 illumos