|
Packit Service |
a9274b |
=========
|
|
Packit Service |
a9274b |
alsaucm
|
|
Packit Service |
a9274b |
=========
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
---------------------
|
|
Packit Service |
a9274b |
ALSA Use Case Manager
|
|
Packit Service |
a9274b |
---------------------
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
:Author: Antonio Ospite <ao2@ao2.it>
|
|
Packit Service |
a9274b |
:Date: 2016-09-22
|
|
Packit Service |
a9274b |
:Copyright: GPLv2+
|
|
Packit Service |
a9274b |
:Manual section: 1
|
|
Packit Service |
a9274b |
:Manual group: General Commands Manual
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
SYNOPSIS
|
|
Packit Service |
a9274b |
========
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
*alsaucm* <options> [command]
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
DESCRIPTION
|
|
Packit Service |
a9274b |
===========
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
alsaucm (ALSA Use Case Manager) is a program to use the ALSA `Use Case
|
|
Packit Service |
a9274b |
Interface`_ from the command line.
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
On complex sound cards, setting up audio routes is not trivial and mixer
|
|
Packit Service |
a9274b |
settings can conflict one another preventing the audio card to work at all.
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
The ALSA Use Case Manager is a mechanism for controlling complex audio
|
|
Packit Service |
a9274b |
hardware establishing a relationship between hardware configurations and
|
|
Packit Service |
a9274b |
meaningful use cases that the end-user can relate with.
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
The use case manager can also be used to switch between use cases when
|
|
Packit Service |
a9274b |
necessary, in a consistent way.
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
At a lower level, the use case manager works by configuring the sound card
|
|
Packit Service |
a9274b |
ALSA kcontrols to change the hardware digital and analog audio routing to
|
|
Packit Service |
a9274b |
match the requested device use case.
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
The use case manager kcontrol configurations are stored in easy to modify text
|
|
Packit Service |
a9274b |
files. An audio use case can be defined by a **verb** and **device** parameter.
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
The verb describes the use case action i.e. a phone call, listening to music,
|
|
Packit Service |
a9274b |
recording a conversation etc. The device describes the physical audio capture
|
|
Packit Service |
a9274b |
and playback hardware i.e. headphones, phone handset, bluetooth headset, etc.
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
OPTIONS
|
|
Packit Service |
a9274b |
=======
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
Available options:
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
**-h**, **--help**
|
|
Packit Service |
a9274b |
this help
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
**-c**, **--card** `NAME`
|
|
Packit Service |
a9274b |
open card NAME
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
**-i**, **--interactive**
|
|
Packit Service |
a9274b |
interactive mode
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
**-b**, **--batch** `FILE`
|
|
Packit Service |
a9274b |
batch mode (use ``'-'`` for the stdin input)
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
**-n**, **--no-open**
|
|
Packit Service |
a9274b |
do not open first card found
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
Available commands:
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
``open`` `NAME`
|
|
Packit Service |
a9274b |
open card NAME.
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
valid names are sound card names as listed in ``/usr/share/alsa/ucm``.
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
``reset``
|
|
Packit Service |
a9274b |
reset sound card to default state.
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
``reload``
|
|
Packit Service |
a9274b |
reload configuration.
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
``listcards``
|
|
Packit Service |
a9274b |
list available cards.
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
``list`` `IDENTIFIER`
|
|
Packit Service |
a9274b |
list command, for items returning two entries (value+comment).
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
the value of the `IDENTIFIER` argument can can be:
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
- ``_verbs`` - get verb list (in pair verb+comment)
|
|
Packit Service |
a9274b |
- ``_devices[/{verb}]`` - get list of supported devices (in pair device+comment)
|
|
Packit Service |
a9274b |
- ``_modifiers[/{verb}]`` - get list of supported modifiers (in pair modifier+comment)
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
The forms without the trailing ``/{verb}`` are valid only after a specific
|
|
Packit Service |
a9274b |
verb has been set.
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
``list1`` `IDENTIFIER`
|
|
Packit Service |
a9274b |
list command, for lists returning one item per entry.
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
the value of the `IDENTIFIER` argument can vary depending on the context,
|
|
Packit Service |
a9274b |
it can be:
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
- ``TQ[/{verb}]`` - get list of Tone Quality identifiers
|
|
Packit Service |
a9274b |
- ``_enadevs`` - get list of enabled devices
|
|
Packit Service |
a9274b |
- ``_enamods`` - get list of enabled modifiers
|
|
Packit Service |
a9274b |
- ``_supporteddevs/{modifier}|{device}[/{verb}]`` - list of supported devices
|
|
Packit Service |
a9274b |
- ``_conflictingdevs/{modifier}|{device}[/{verb}]`` - list of conflicting devices
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
``get`` `IDENTIFIER`
|
|
Packit Service |
a9274b |
get string value.
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
the value of the `IDENTIFIER` argument can can be:
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
- ``_verb`` - return current verb
|
|
Packit Service |
a9274b |
- ``[=]{NAME}[/[{modifier}|{/device}][/{verb}]]`` (For valid NAMEs look at the
|
|
Packit Service |
a9274b |
ALSA `Use Case Interface`_)
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
``geti`` `IDENTIFIER`
|
|
Packit Service |
a9274b |
get integer value.
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
the value of the `IDENTIFIER` argument can can be:
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
- ``_devstatus/{device}``
|
|
Packit Service |
a9274b |
- ``_modtstaus/{device}``
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
``set`` `IDENTIFIER` `VALUE`
|
|
Packit Service |
a9274b |
set string value
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
The value of the `IDENTIFIER` argument can can be:
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
- ``_verb`` - set the verb to `VALUE`
|
|
Packit Service |
a9274b |
- ``_enadev`` - enable the device specified by `VALUE`
|
|
Packit Service |
a9274b |
- ``_disdev`` - disable the device specified by `VALUE`
|
|
Packit Service |
a9274b |
- ``_swdev/{old_device}`` - switche device:
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
- disable `old_device` and then enable the device specified by
|
|
Packit Service |
a9274b |
`VALUE`
|
|
Packit Service |
a9274b |
- if no device was enabled just return
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
- ``_enamod`` - enable the modifier specified by `VALUE`
|
|
Packit Service |
a9274b |
- ``_dismod`` - disable the modifier specified by `VALUE`
|
|
Packit Service |
a9274b |
- ``_swmod/{old_modifier}`` - switch modifier:
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
- disable `old_modifier` and then enable the modifier specified by
|
|
Packit Service |
a9274b |
`VALUE`
|
|
Packit Service |
a9274b |
- if no modifier was enabled just return
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
Note that the identifiers referring to devices and modifiers are valid
|
|
Packit Service |
a9274b |
only after setting a verb.
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
``h``, ``help``
|
|
Packit Service |
a9274b |
help
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
``q``, ``quit``
|
|
Packit Service |
a9274b |
quit
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
FILES
|
|
Packit Service |
a9274b |
=====
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
The master use case files for each supported sound card are in ``/usr/share/alsa/ucm``.
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
For example, the master use case file for the `Pandaboard` card is in
|
|
Packit Service |
a9274b |
``/usr/share/alsa/ucm/PandaBoard/PandaBoard.conf``, this file lists all the
|
|
Packit Service |
a9274b |
supported use cases, e.g.
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
::
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
SectionUseCase."HiFi" {
|
|
Packit Service |
a9274b |
File "hifi"
|
|
Packit Service |
a9274b |
Comment "Play HiFi quality Music."
|
|
Packit Service |
a9274b |
}
|
|
Packit Service |
a9274b |
...
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
Each use case defines a _verb, which is described in the file specified in
|
|
Packit Service |
a9274b |
the ``File`` directive, like above.
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
The ``HiFi`` verb above is described in
|
|
Packit Service |
a9274b |
``/usr/share/alsa/ucm/PandaBoard/hifi``.
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
For more details on the syntax of UCM files, see the alsa-lib source code:
|
|
Packit Service |
a9274b |
http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/ucm/parser.c
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
EXAMPLES OF USE
|
|
Packit Service |
a9274b |
===============
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
Some commands, like for instance ``list _devices``,
|
|
Packit Service |
a9274b |
can only work after setting a ``_verb`` in the **same execution**, for
|
|
Packit Service |
a9274b |
instance this sequence doesn't work:
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
::
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
# alsaucm -c bytcr-rt5640 set _verb HiFi
|
|
Packit Service |
a9274b |
# alsaucm -c bytcr-rt5640 list _devices
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
However this command does:
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
::
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
# alsaucm -n -b - <
|
|
Packit Service |
a9274b |
open bytcr-rt5640
|
|
Packit Service |
a9274b |
set _verb HiFi
|
|
Packit Service |
a9274b |
list _devices
|
|
Packit Service |
a9274b |
EOM
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
An example of setting the `Speaker` device for the `HiFi` verb of the
|
|
Packit Service |
a9274b |
`bytcr-rt5640` card:
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
::
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
# alsaucm -n -b - <
|
|
Packit Service |
a9274b |
open bytcr-rt5640
|
|
Packit Service |
a9274b |
reset
|
|
Packit Service |
a9274b |
set _verb HiFi
|
|
Packit Service |
a9274b |
set _enadev Speaker
|
|
Packit Service |
a9274b |
EOM
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
SEE ALSO
|
|
Packit Service |
a9274b |
========
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
* Use Case Interface: http://www.alsa-project.org/alsa-doc/alsa-lib/group__ucm.html
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
.. _Use Case Interface: http://www.alsa-project.org/alsa-doc/alsa-lib/group__ucm.html
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
BUGS
|
|
Packit Service |
a9274b |
====
|
|
Packit Service |
a9274b |
|
|
Packit Service |
a9274b |
None known.
|