Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
193 changes: 88 additions & 105 deletions content/audio.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
---
title: Audio Troubleshooting
title: Audio Troubleshooting Guide
description: >
Here is how to fix several common audio issues with your computer.
keywords:
- audio
- dummy output
- alsa
- pulseaudio
- pulse audio
- audio
- dummy output
- alsa
- pulseaudio
- pulse audio
- pipewire
- pipe wire
- wireplumber
- wire plumber

facebookImage: /_social/article
twitterImage: /_social/article
Expand All @@ -17,65 +21,97 @@ section: software-troubleshooting
tableOfContents: true
---

Sound settings or packages related to the sound system can become corrupt or broken. Many times, deleting the configuration files, reinstalling the sound-related packages, and restarting the audio software can help. These commands can also help fix the <u>Sound</u> settings showing "Dummy Output" as the audio output.
If your system has no sound, distorted sound, or missing input/output devices, this guide will walk you through verifying hardware, reloading drivers, and resetting audio services for Pop!_OS 22.04 and Pop!_OS 24.04.

## Reset Audio Software (server)
## Verify if the Correct Device is Selected

If the system is not playing audio, first try restarting the audio daemon:
If the system is not playing any audio, you can confirm the selected device from the system's Settings app.

| PulseAudio | PipeWire |
| :--------- | :-------|
| Ubuntu pre-22.10 and Pop!\_OS pre-22.04 | Ubuntu 22.10+ and Pop!\_OS 22.04+ |
| `systemctl --user restart pulseaudio` | `systemctl --user restart wireplumber pipewire pipewire-pulse` |
| `rm -r ~/.config/pulse` | `rm -r ~/.config/pulse` |
| `pulseaudio -k` | |
Access the Sound page of Settings by opening the Launcher (by default, press <kbd>Super</kbd>) and searching for Sound:

This set of commands first restarts the sound daemon and removes the user's configuration for PulseAudio. On systems still using PulseAudio as a server, it restarts the PulseAudio server, which will create new default audio configuration files.
![COSMIC Launcher search for Sound](images/audio/Launcher-Sound.png)

On the Sound page of Settings, the selected Input and Output Device will be displayed:

![Sound Settings](images/audio/Sound-Settings.png)

## Verify Audio Devices Detected by the System

Below is a set of commands to display information about your audio device.

List all detected output audio devices:

```
aplay -l
```

List all detected input audio devices:

```
arecord -l
```

List the current sound cards:

```
cat /proc/asound/cards
```

List loaded drivers and available kernel modules for each PCI audio device:

```
sudo lspci -k | grep -A 3 -i audio
```

Your audio devices should appear in these lists. If not, there may be a driver issue.

## Restart the Audio Daemon

If the system is not playing audio, try restarting the audio daemon:

```
systemctl --user restart wireplumber pipewire pipewire-pulse
rm -r ~/.config/pulse
```

This set of commands restarts the <u>PipeWire audio server</u> and its associated services for the current user. This also removes the <u>PulseAudio</u> configuration and will create new default audio configuration files.

## Check the PulseAudio Controls

The program <u>PulseAudio Volume Control</u> is helpful in figuring out which program is producing audio, where that audio is being routed, what the default input/output devices are, and what the volume levels are set to. It can be installed using the Pop!\_Shop, or with this command:
The program <u>PulseAudio Volume Control</u> is helpful to figure out which programs are producing audio, where that audio is being routed, what the default input/output devices are, and what the volume levels are set to. It can be installed using the Pop!_Shop or COSMIC Store:

![PulseAudio Volume Control shown in the COSMIC Store](images/audio/pavucontrol-in-cosmic-store.png)

...or with this command:

```
sudo apt install pavucontrol
```

Once installed, open the <u>PulseAudio Volume Control</u> app in the Activities or Applications menu, or run `pavucontrol` in a terminal.
Once installed, open the PulseAudio Volume Control app in the Activities or Applications menu, or run `pavucontrol` in a terminal.

The "Playback" tab will show a list of applications that are currently playing audio. The volume for each application can be individually controlled.

![Playback tab](/images/audio/pavucontrol-playback.png)
![Playback tab in PulseAudio Volume Control](images/audio/pavucontrol-playback-tab.png)

Similarly, the "Recording" tab will show a list of applications that are currently recording audio.

![Recording tab](/images/audio/pavucontrol-recording.png)
![Recording tab in PulseAudio Volume Control](images/audio/pavucontrol-recording-tab.png)

The "Output Devices" tab shows a list of output devices, and an indicator of what's being played out of each device. The green checkmark being selected indicates a device is the default output device.

![Output tab](/images/audio/pavucontrol-output.png)
![Output devices tab in PulseAudio Volume Control](images/audio/pavucontrol-output-devices-tab.png)

The "Input Devices" tab shows a similar list for input devices.

![Input tab](/images/audio/pavucontrol-input.png)
![Input devices tab in PulseAudio Volume Control](images/audio/pavucontrol-input-devices-tab.png)

Under "Configuration," each sound card should be listed.

![Configuration tab](/images/audio/pavucontrol-configuration.png)
![Configuration tab in PulseAudio Volume Control](images/audio/pavucontrol-configuration-tab.png)

## Troubleshooting ALSA

PulseAudio sits on top of ALSA. If PulseAudio is not seeing any input/output devices, check what playback devices ALSA is detecting:

```
aplay -l
```

Or, check what recording devices ALSA is detecting:

```
arecord -l
```

A device may be muted in the ALSA mixer, which will override any PulseAudio volume settings. You can open the ALSA mixer with this command:

```
Expand All @@ -84,34 +120,24 @@ alsamixer

You can navigate between the different volume meters using the left and right arrow keys. Each meter can be adjusted using the up and down arrow keys. An "MM" at the bottom of a meter indicates that meter is muted. If the PulseAudio Volume Control shows that sound is playing, but you don't hear any sound, try unmuting all of the volume meters in alsamixer by pressing the <kbd>M</kbd> key while each meter is selected.

![alsamixer](/images/audio/alsamixer-main.png)
![ALSAMixer](images/audio/ALSA-Mixer.png)

If your system has more than one sound card (for example, an Intel sound card and an NVIDIA sound card in switchable-graphics systems), you can switch between them by pressing F6.

![alsamixer's sound card selection](/images/audio/alsamixer-soundcard.png)

## Check if Hardware is Detected

If ALSA doesn't list a sound card, it may not be physically detected by the system at all. If the Linux kernel sees a sound card, it will show up in your `lspci` output. This command will list every sound card your system detects, and show the driver being used for each one:

```
lspci -v | grep -A6 Audio
```

If the output from that command is blank, then your system isn't detecting any sound cards (which could indicate a hardware issue.)
![ALSAMixer select soundcard](images/audio/ALSA-Mixer-soundcard.png)

## Other Useful Commands

This command will reinstall ALSA and some of the other core audio packages:

```
sudo apt install --reinstall alsa-base alsa-utils linux-sound-base libasound2
sudo apt reinstall alsa-base alsa-utils linux-sound-base libasound2
```

This command will reinstall the PulseAudio packages:

```
sudo apt install --reinstall libpulse0 libpulsedsp pulseaudio pulseaudio-module-bluetooth pulseaudio-utils
sudo apt reinstall libpulse0 libpulsedsp pulseaudio pulseaudio-module-bluetooth pulseaudio-utils
```

This command will reinstall the PipeWire packages:
Expand Down Expand Up @@ -144,79 +170,36 @@ If you would like to monitor PipeWire, run:
pw-top
```

## Configuration Tweaks

Some particular problems may be solved by tweaks to ALSA or PulseAudio configuration. Clearing the current settings for Pipewire or PulseAudio may allow the defaults to be used again. To revert to defaults and clear any current saved settings run the following commands:

```
rm -r ~/.config/pulse/*
rm -r ~/.local/state/wireplumber/*
```
## Installing Sound Open Firmware Binaries

**NOTE:** When running those commands you may see messages similar to this: `rm: cannot remove '/home/ckw/.config/pulse/*': No such file or directory` those are safe to ignore as the file simply does not exist.
This firmware package is essential for proper audio functionality on systems using Intel audio hardware that relies on Sound Open Firmware. It's installed by default, but could be accidentally removed by other package operations.

### Audio crackling or hardware clicking
To install, run the commands:

If you hear audio crackling (especially when you start or stop playing audio), your audio card may be going to sleep too often. This is known to happen on some versions of the [Serval WS](/articles/serval-dac/) and some [Thunderbolt docks](https://github.com/system76/docs/issues/491).

#### Prevent Crackling with PipeWire/WirePlumber

For Pop!_OS 22.04 and newer (and other distributions using PipeWire with WirePlumber), these two commands will disable this behavior and restart PipeWire:

```bash
sudo sed -i 's/--\["session.suspend-timeout-seconds"\] = 5/\["session.suspend-timeout-seconds"\] = 0/' /usr/share/wireplumber/main.lua.d/50-alsa-config.lua
systemctl restart --user pipewire.service
```

This change can be undone using these commands:

```bash
sudo sed -i 's/\["session.suspend-timeout-seconds"\] = 0/--\["session.suspend-timeout-seconds"\] = 5/' /usr/share/wireplumber/main.lua.d/50-alsa-config.lua
systemctl restart --user pipewire.service
```

#### Prevent Crackling with PulseAudio

For older versions of Pop!_OS or distributions using PulseAudio without PipeWire, these two commands will disable this behavior and restart PulseAudio:

```bash
sudo sed -i 's/load-module module-suspend-on-idle/#load-module module-suspend-on-idle/' /etc/pulse/default.pa
pulseaudio -k
```

This change can be undone using these commands:

```bash
sudo sed -i 's/#load-module module-suspend-on-idle/load-module module-suspend-on-idle/' /etc/pulse/default.pa
pulseaudio -k
sudo apt update
sudo apt install firmware-sof-signed
```

### PCI/internal sound card not detected (dummy output)
## Installing ALSA Firmware Loaders

With hardware that uses the `snd_hda_intel` kernel module, rare [bugs](https://bugs.launchpad.net/ubuntu/+source/linux-oem-osp1/+bug/1864061) can cause the sound card to not be detected. If you're having this issue, try running these commands to force the usage of a specific audio driver:
This package provides firmware files that may be necessary for certain sound cards to function correctly with the Advanced Linux Sound Architecture (ALSA).

```
echo "options snd-hda-intel dmic_detect=0" | sudo tee -a /etc/modprobe.d/alsa-base.conf
echo "blacklist snd_soc_skl" | sudo tee -a /etc/modprobe.d/blacklist.conf
```

Reboot after making the changes. If this doesn't solve the issue, undo the changes using these commands:
To install, run the commands:

```
sudo sed -i 's/options snd-hda-intel dmic_detect=0//' /etc/modprobe.d/alsa-base.conf
sudo sed -i 's/blacklist snd_soc_skl//' /etc/modprobe.d/blacklist.conf
sudo apt update
sudo apt install alsa-firmware-loaders
```

Then reboot again.

## Gather Information for Support

The `alsa-info` command will gather a number of outputs, including some of the above-listed outputs, and package them so they can be shared easily. In a terminal, run the command:
The 'alsa-info' command will gather a number of outputs, including some of the above-listed outputs, and package them so they can be shared easily. In a terminal, run the command:

```
alsa-info
```

When the script is finished gathering information, type <kbd>y</kbd> and press Enter to upload your output to the ALSA website, then send the link to Support.
When the script is finished gathering information, type <kbd>y</kbd> and press <kbd>Enter</kbd> to upload your output to the ALSA website, then send the link to Support.

![alsa-info](/images/audio/alsa-info.png)
![ALSA-info](images/audio/alsa-info.png)
16 changes: 15 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,19 @@
"postcss": "^8.4.29",
"shiki": "^0.9.3",
"unist-util-visit": "^2.0.3"
}
},
"description": "The docs system is powered by [NuxtJS][1] with [`@nuxtjs/content`][2],\r [tailwindcss][3], and some other packages. It uses Markdown in the `/content/`\r folder to render every article. If you don't know what Markdown is (or need a\r refresher), take a minute to look over [the basics][4].",
"main": ".eslintrc.js",
"repository": {
"type": "git",
"url": "git+https://github.com/system76/docs.git"
},
"keywords": [],
"author": "",
"license": "ISC",
"type": "commonjs",
"bugs": {
"url": "https://github.com/system76/docs/issues"
},
"homepage": "https://github.com/system76/docs#readme"
}
Binary file added static/images/audio/ALSA-Mixer-soundcard.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/images/audio/ALSA-Mixer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/images/audio/Launcher-Sound.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/images/audio/Sound-Settings.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified static/images/audio/alsa-info.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/images/audio/alsa_audio_5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed static/images/audio/alsamixer-main.png
Binary file not shown.
Binary file removed static/images/audio/alsamixer-soundcard.png
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed static/images/audio/pavucontrol-configuration.png
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed static/images/audio/pavucontrol-input.png
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed static/images/audio/pavucontrol-output.png
Binary file not shown.
Binary file added static/images/audio/pavucontrol-playback-tab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed static/images/audio/pavucontrol-playback.png
Binary file not shown.
Binary file added static/images/audio/pavucontrol-recording-tab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed static/images/audio/pavucontrol-recording.png
Binary file not shown.