From Fedora Project Wiki

Revision as of 12:54, 12 February 2021 by Lruzicka (talk | contribs)

ALSA backend

This test case tests that ALSA works as a sound backend and that various frontends can be used to communicate with it.

Setup

  1. This test case should be performed on a bare machine.
  2. The computer must be equipped with a sound device.
  3. Install a desktop version of Fedora 34 (or later).
  4. Log in as a common user.
  5. Make sure the alsa-utils package is installed.
  6. Connect your speakers (headphoned) to your computer’s sound device.
  7. Keep an audio file at hand (wav).

How to test

  1. List the sound devices known to ALSA.

    $ aplay -l

    or (for more details)

    $ aplay -L

    Identify the ones that represent the logical (default, pipewire) or a physical device (sysdefault:CARD=USB, sysdefault:CARD=PCH )

  2. Play the audio file (wav) over the default device.

    $ aplay -D sysdefault <audiofile>

  3. Play the audio file (wav) over a selected ALSA device.

    $ aplay -D hw:X <audiofile>

  4. Play the audio file (wav) over the pipewire device.

    $ aplay -D pipewire <audiofile>

  5. Play the audio file (wav) over the physical device.

    $ aplay -D sysdefault:CARD=USB <audiofile>[1]

  6. Repeat the above step for all physical devices.

  7. Run alsamixer and try setting the volume for a physical device use while playing some audio.

Expected results

  1. aplay -L lists physical and logical devices on the system.
  2. Audio is playing through the default system device.
  3. Audio is playing through the selected physical device.
  4. Audio is playing through the default PipeWire device.
  5. Audio is playing through the selected physical device.
  6. Audio is playing through the selected physical device (of applicable).
  7. Volume levels can be adjusted for physical devices using alsamixer[2]

Footnotes

  1. The device identifier might differ on your machine.

  2. This is valid for devices that support software volume adjusting. USB cards often use dedicated hardware knobs to do it and they cannot be controlled programmatically.