FreeBSD manual
download PDF document: snd_uaudio.4.pdf
SND_UAUDIO(4) FreeBSD Kernel Interfaces Manual SND_UAUDIO(4)
NAME
snd_uaudio - USB audio and MIDI device driver
SYNOPSIS
To compile this driver into the kernel, place the following lines in your
kernel configuration file:
device sound
device usb
device snd_uaudio
Alternatively, to load the driver as a module at boot time, place the
following line in loader.conf(5):
snd_uaudio_load="YES"
DESCRIPTION
The snd_uaudio driver provides support for USB audio class devices and
USB MIDI class devices.
A USB audio device consists of a number of components: input terminals
(e.g. USB digital input), output terminals (e.g. speakers), and a number
of units in between (e.g. volume control).
If the device supports multiple configurations, and there have been no
user-supplied values specified through the sysctl(8) interface, the
driver will select the best matching configuration supported by the
device during attach. "Best" means the configuration with the most
channels and highest quality in sample rate and sample size.
Refer to the `USB Audio Class Specification' for more information.
SYSCTL VARIABLES
The following settings can be entered at the loader(8) prompt or in
loader.conf(5) and can also be changed at runtime with the sysctl(8)
command. For a change to take effect during runtime, the device has to
be re-attached.
hw.usb.uaudio.buffer_ms
Period of audio data processed at once, in milliseconds, from 1
to 8 (default is 4). Lower values mean less latency, but this
can result in audible gaps due to frequent CPU wakeups.
hw.usb.uaudio.default_bits
Preferred sample size in bits, from 0 to 32 (default is 0). A
value of 0 sets the sample size to the maximum supported sample
size.
Set this to select a smaller sample size if the device supports
multiple sample sizes.
hw.usb.uaudio.default_channels
Preferred number of sample channels, from 0 to 64 (default is 0).
USB 1.1 devices are limited to 4 channels due to bandwidth
constraints, unless a higher value is explicitly requested. A
value of 0 sets the sample channels to the maximum supported
channel number.
Note that if VCHANs are enabled, the sample rate will be
overridden by dev.pcm.%d.[play|rec].vchanrate (see sound(4)),
which can also be used to adjust the sample rate during runtime.
If hw.usb.uaudio.default_rate is non-zero,
dev.pcm.%d.[play|rec].vchanrate will use it as its maximum
allowed value.
hw.usb.uaudio.handle_hid
Let snd_uaudio handle HID volume keys, if any (default is 1).
0 Disabled.
1 Enabled.
If usb(4) has been compiled with USB_DEBUG on, the following setting is
also available:
hw.usb.uaudio.debug
Debug output level (default is 0).
SEE ALSO
sound(4), usb(4), loader.conf(5), loader(8), sysctl(8)
USB Audio Class Specifications,
http://www.usb.org/developers/docs/devclass_docs/.
HISTORY
The snd_uaudio driver first appeared in FreeBSD 4.7.
AUTHORS
This manual page was adopted from NetBSD 1.6 and modified for FreeBSD by
Hiten Pandya <hmp@FreeBSD.org>.
BUGS
Some USB audio devices might refuse to work properly unless the sample
rate is configured the same for both recording and playback, even if only
simplex is used. See the dev.pcm.%d.[play|rec].vchanrate sysctls.
The PCM framework in FreeBSD currently does not support the full set of
USB audio mixer controls. Some mixer controls are only available as
dev.pcm.%d.mixer sysctls.
FreeBSD 14.2-RELEASE March 26, 2024 FreeBSD 14.2-RELEASE