Skip to content

Linux Audio Configuration

Mattscreative edited this page Dec 5, 2025 · 2 revisions

Linux Audio Configuration Guide

Complete beginner-friendly guide to audio configuration on Linux, covering Arch Linux, CachyOS, and other distributions including PulseAudio, PipeWire, ALSA, device management, and troubleshooting.


Table of Contents

  1. Understanding Linux Audio
  2. PulseAudio Configuration
  3. PipeWire Configuration
  4. ALSA Configuration
  5. Audio Device Management
  6. Bluetooth Audio
  7. Microphone Configuration
  8. Troubleshooting

Understanding Linux Audio

Linux Audio Stack

Linux audio uses multiple layers:

  1. ALSA (Advanced Linux Sound Architecture)
  • Low-level audio driver
  • Direct communication with sound hardware
  • Kernel level (closest to hardware)
  1. PulseAudio or PipeWire
  • Sound server (audio manager)
  • Manages audio streams, mixing, routing
  • User level (application interface)
  1. Applications
  • Programs you use (browser, music player, etc.)
  • Produces audio
  • Application level

How it works:

Application → PulseAudio/PipeWire → ALSA → Hardware

PulseAudio vs PipeWire

PulseAudio:

  • Traditional sound server
  • Mature, stable, widely used
  • Audio mixing, routing, network audio
  • Default on most Linux distributions

PipeWire:

  • Modern replacement for PulseAudio
  • Better low latency, video support, screen sharing
  • Default on some newer distributions

Which to use:

  • PulseAudio: Stable, works everywhere, good for most users
  • PipeWire: Better for low latency, modern features, future-proof

PulseAudio Configuration

Install PulseAudio

Arch Linux / CachyOS:

# Install PulseAudio
sudo pacman -S pulseaudio pulseaudio-alsa pavucontrol

# For Bluetooth
sudo pacman -S pulseaudio-bluetooth

Debian/Ubuntu:

sudo apt install pulseaudio pavucontrol

Fedora:

sudo dnf install pulseaudio pavucontrol

Enable PulseAudio

Start PulseAudio:

# Enable user service
systemctl --user enable pulseaudio
systemctl --user start pulseaudio

# Check status
systemctl --user status pulseaudio

PulseAudio Control

GUI control:

# Open PulseAudio Volume Control
pavucontrol

PipeWire Configuration

Install PipeWire

Arch Linux / CachyOS:

# Install PipeWire
sudo pacman -S pipewire pipewire-pulse pipewire-alsa

# For JACK
sudo pacman -S pipewire-jack

Debian/Ubuntu:

sudo apt install pipewire pipewire-pulse

Fedora:

sudo dnf install pipewire pipewire-pulseaudio

Enable PipeWire

Start PipeWire:

# Enable services
systemctl --user enable pipewire pipewire-pulse
systemctl --user start pipewire pipewire-pulse

# Check status
systemctl --user status pipewire

ALSA Configuration

ALSA Basics

ALSA is the low-level audio driver.

Check ALSA:

# List sound cards
aplay -l

# Check ALSA mixer
alsamixer

ALSA Configuration

Edit config:

# Edit ALSA config
sudo vim /etc/asound.conf

Audio Device Management

List Audio Devices

Check devices:

# PulseAudio
pactl list sinks short
pactl list sources short

# PipeWire
pactl list sinks short
pactl list sources short

Set Default Device

Set default:

# Set default sink
pactl set-default-sink sink-name

# Set default source
pactl set-default-source source-name

Bluetooth Audio

Setup Bluetooth Audio

PulseAudio:

# Install Bluetooth support
sudo pacman -S pulseaudio-bluetooth

# Restart PulseAudio
pulseaudio -k && pulseaudio --start

PipeWire:

# PipeWire includes Bluetooth support
# No additional package needed

Microphone Configuration

Test Microphone

Record test:

# Install tools
sudo pacman -S alsa-utils

# Record
arecord -d 5 test.wav

# Playback
aplay test.wav

Configure Microphone

Set default:

# Set default source
pactl set-default-source source-name

# Increase volume
pactl set-source-volume source-name 100%

Troubleshooting

No Sound

Check audio:

# Check if muted
pactl list sinks | grep -i mute

# Unmute
pactl set-sink-mute sink-name false

# Increase volume
pactl set-sink-volume sink-name 100%

Audio Not Working

Check services:

# Check PulseAudio
systemctl --user status pulseaudio

# Check PipeWire
systemctl --user status pipewire

# Restart
systemctl --user restart pulseaudio

Permission Issues

Fix permissions:

# Add to audio group
sudo usermod -aG audio username

# Log out and back in

Summary

This guide covered audio configuration for Arch Linux, CachyOS, and other distributions, including PulseAudio, PipeWire, ALSA, and troubleshooting.


Next Steps


This guide covers Arch Linux, CachyOS, and other Linux distributions. For distribution-specific details, refer to your distribution's documentation.

Clone this wiki locally