usb_ac(7D) Devices usb_ac(7D)NAMEusb_ac - USB audio control driver
SYNOPSIS
sound-control@unit-address
DESCRIPTION
The usb_ac driver is a USBA (Solaris USB Architecture) compliant client
driver that supports the USB Audio Class 1.0 specification.
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-only capability.
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, visit: www.sun.com/io.
API
This interface is described in the mixer(7I) and audio(7I) man pages.
Driver Versions
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
The configuration file /kernel/drv/usb_ac.conf is used to configure the
USB audio driver and determines whether the audio mixer is enabled or
disabled. See the mixer(7I) manual page for details. You can change the
audio mixer mode at any time by using the mixerctl(1) or sdtaudiocon‐
trol(1) applications.
Audio Data Formats
The USB audio device supports 8-bit μ-law and A-law, 8-bit linear and
16-bit linear encodings in mono and stereo. With the mixer enabled, a
continuous range of sample rates from 8000 to 48000 Hz is supported.
With the mixer disabled, the following sample rates are supported:
8000, 9600, 11025, 16000, 18900, 22050, 32000, 33075, 37800, 4410, and
48000 Hz if the device supports these frequencies.
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.
ERRORS
If a device is hot-removed while it is active, all subsequent opens
will return EIO. All other errors are defined in the audio(7I) man
page.
FILES
/kernel/drv/usb_ac
32-bit x86 ELF kernel module
/kernel/drv/amd64/usb_ac
64-bit x86 ELF kernel module
/kernel/drv/sparcv9/usb_ac
64-bit SPARC ELF kernel module.
/kernel/drv/usb_ac.conf
USB audio driver configuration file.
/dev/audio
Symlink to the system's primary audio device, not necessarily a USB
audio device.
/dev/audioctl
/dev/audio control device.
/dev/sound/[0-N]
Represents the audio devices on the system and is not necessarily a
USB audio device.
/dev/sound/[0-N]ctl
/dev/sound audio control device.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
┌─────────────────────────────┬──────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼──────────────────────────────┤
│Architecture │SPARC, x86, PCI-based systems │
├─────────────────────────────┼──────────────────────────────┤
│Availability │SUNWusb │
├─────────────────────────────┼──────────────────────────────┤
│Stability level │Evolving │
└─────────────────────────────┴──────────────────────────────┘
SEE ALSOmixerctl(1), cfgadm_usb(1M), ioctl(2), attributes(5), hid(7D),
usba(7D), usb_as(7D), audio(7I), mixer(7I), streamio(7I), usb_ah(7M)
Writing Device Drivers
Universal Serial Bus Specification 1.0 and 1.1
Universal Serial Bus Device Class Definition for Audio Devices, Release
1.0
System Administration: Basic Administration
http://www.sun.com/io
DIAGNOSTICS
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...
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.
Device is not identical to the previous one on this port. Please dis‐
connect and reconnect.
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 USB device and reconnect the device
to the same port.
Busy device has been reconnected.
A device that was hot-removed from a USB port has been re-inserted
again.
The following messages may be logged into the system log. They are for‐
matted in the following manner:
<device path><usb_ac>): message...
Unit topology too complex, giving up.
The device has too many units in a topology that is too complex for
this driver.
Mixer registration failed.
usb_ac was unable to register with the Solaris Audio framework's
mixer and the device cannot be supported.
More than 2 streaming interfaces (play and/or record) currently not
supported.
The device has more interfaces than usb_ac can handle.
NOTES
Upon the initial open() of the audio device, the driver resets the data
format of the device to the default state of 8-bit, 8Khz, mono u-Law
data. If the device is already open and a different audio format is
set, this will not be possible on some devices. With the exception of
some devices that only support a limited number of sample rates, audio
applications should explicitly set the encoding characteristics to
match the audio data requirements rather than depend on the default
configuration.
The USB audio device will be power managed if the device is idle.
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 discouraged.
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, disconnect all USB audio
devices and then simply reconnect the USB audio device. This causes
/dev/audio to point to the USB audio /dev/usb/audio entry.
Most Solaris audio applications and 3rd party audio applications avail‐
able on Solaris work well with USB audio devices. For details of the
application behavior with USB audio devices, visit www.sun.com/io.
SunOS 5.10 1 Dec 2005 usb_ac(7D)