usb_ac - USB audio control driver
The usb_ac driver is a USBA (Solaris USB Architecture) com-
pliant client driver that supports the USB Audio Class 1.0
The audio control driver is a USB class driver and offers
functionality similar to the audiocs (sun4u) and audiots
(Sun Blade 100) drivers which use the Solaris audio mixer
framework (mixer(7I)). Unlike the audiocs and audiots
drivers, the USB audio device may have play-only or record-
Drivers corresponding to other USB audio interfaces on the
device, including the usb_as(7D) audio streaming driver or
the hid(7D) driver, are plumbed under the USB audio control
driver and do not directly interface with user applications.
The usb_ac driver supports USB audio class compliant devices
with a feature unit. For a list of recommended devices,
This interface is described in the mixer(7I) and audio(7I)
Applications that open /dev/audio may use the AUDIO_GETDEV
ioctl() to determine which audio device is being used. The
USB audio driver returns the string "USB Audio" in the name
field of the audio_device structure. The version field
displays the version number and the config field displays
the string "external."
The USB audio device provides support for an external
speaker and microphone.
Audio Mixer Mode
Use the /kernel/drv/usb_ac.conf (original USBA framework)
and /kernel/drv/usba10_usb_ac.conf (USBA 1.0 framework) con-
figuration files to configure the USB audio driver. These
files determine whether the audio mixer is enabled or dis-
abled. See the mixer(7I) manual page for details. You can
change the audio mixer mode at any time by using the mix-
erctl(1) or sdtaudiocontrol(1) applications.
Audio Data Formats
The USB audio device supports the audio data formats shown
below. Please note that at a minimum, the device must sup-
port a sampling frequency of 44100 Hz or 48000 Hz. In the
table below, mode "M" indicates that mixer mode is enabled,
while "C" indicates that mixer mode is disabled or in compa-
Sample Rate Encoding Precision Channels Mode
8000 Hz u-Law or A-Law 8 1 or 2 M and C
9600 Hz u-Law or A-Law 8 1 or 2 M and C
11025 Hz u-law or A-law 8 1 or 2 M and C
16000 Hz u-law or A-law 8 1 or 2 M and C
18900 Hz u-law or A-law 8 1 or 2 M and C
22050 Hz u-law or A-law 8 1 or 2 M and C
32000 Hz u-law or A-law 8 1 or 2 M and C
33075 Hz u-law or A-law 8 1 or 2 M and C
37800 Hz u-law or A-law 8 1 or 2 M and C
44100 Hz u-law or A-law 8 1 or 2 M and C
48000 Hz u-law or A-law 8 1 or 2 M and C
8000 Hz linear 8 or 16 1 or 2 M and C
9600 Hz linear 8 or 16 1 or 2 M and C
11025 Hz linear 8 or 16 1 or 2 M and C
16000 Hz linear 8 or 16 1 or 2 M and C
18900 Hz linear 8 or 16 1 or 2 M and C
22050 Hz linear 8 or 16 1 or 2 M and C
32000 Hz linear 8 or 16 1 or 2 M and C
33075 Hz linear 8 or 16 1 or 2 M and C
37800 Hz linear 8 or 16 1 or 2 M and C
44100 Hz linear 8 or 16 1 or 2 M and C
48000 Hz linear 8 or 16 1 or 2 M and C
Audio Status Change Notification
As described in the audio(7I) and mixer(7I) man pages, it
is possible to request asynchronous notification of changes
in the state of an audio device.
If a device is hot-removed while it is active, all subse-
quent opens will return EIO. All other errors are defined in
the audio(7I) man page.
32 bit ELF kernel module for original USBA framework.*
64 bit ELF kernel module for original USBA framework.*
usb_ac audio driver configuration file.
32 bit ELF kernel module for USBA 1.0 framework.*
64 bit ELF kernel module for USBA 1.0 framework.*
usba10_usb_ac audio driver configuration file.
Symlink to the system's primary audio device, not
necessarily a USB audio device.
/dev/audio control device.
Represents the audio devices on the system and is not
necessarily a USB audio device.
/dev/sound audio control device.
*Please see www.sun.com/desktop/whitepapers.html for more
information regarding USB dual framework implementation,
USBA 1.0, and USB 2.0
See attributes(5) for descriptions of the following attri-
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
| Architecture | PCI-based systems |
| Availability | SUNWusb (All architectures)|
| | SUNWusbx (SPARC only) |
| Stability level | Evolving |
mixerctl(1), cfgadm_usb(1M), ioctl(2), attributes(5),
hid(7D), usba(7D), usb_as(7D), audio(7I), mixer(7I),
Writing Device Drivers
Universal Serial Bus Specification 2.0
Universal Serial Bus Device Class Definition for Audio Dev-
ices, Release 1.0
System Administration: Basic Administration
In addition to being logged, the following messages may
appear on the system console. All messages are formatted in
the following manner:
Warning: <device path> (usb_ac<instance num>): Error Message...
Warning: <device path> (usba10_usb_ac<instance num>):
Failure to plumb audio streams drivers.
The usb audio streaming driver or the hid driver could
not be plumbed under the audio control driver and the
device is not usable.
Device was disconnected while open. Data may have been lost.
The device was hot-removed or powered off while it was
open and a possible data transfer was in progress. The
job was aborted.
Cannot access device. Please reconnect <name>.
There was an error in accessing the device during
reconnect. Please reconnect the device.
disconnect and reconnect.
Device is not identical to the previous one on this port. Please
A USB audio device was hot-removed while open. A new
device was hot-inserted which is not identical to the
original USB audio device. Please disconnect the new
USB device and reconnect the original device to the
Busy device has been reconnected.
A device that was hot-removed from a USB port has been
The USB audio device will be power managed if the device is
USB audio devices do not have line out or port control.
If a USB audio device is hot-removed while active, it prints
a console warning message requesting you to put the device
back in the same port and informing you that there may be
data loss. Hot-removal of an active audio device is strongly
Close all applications before hot-removing or hot-inserting
a device. If an application is open when a device is hot-
removed, inserting the device in a different port will
create new /dev/sound links but /dev/audio will not be
affected. Hotplugging an active device is not recommended.
On slower IA machines and with higher frequency sample
rates, you may encounter some audio quality problems.
To make a USB audio device the primary audio device (for
example: /dev/audio), close all audio applications, discon-
nect all USB audio devices, modunload all other audio
drivers and then simply reconnect the USB audio device. This
will cause /dev/audio to point to the USB audio /dev/sound
Most Solaris audio applications and 3rd party audio applica-
tions available on Solaris work well with USB audio devices.
For details of the application behavior with USB audio dev-
ices, visit www.sun.com/io.
Man(1) output converted with