Skip to content

Arch Linux Audio Configuration

Mattscreative edited this page Dec 5, 2025 · 2 revisions

Arch Linux Audio Configuration Guide

Complete beginner-friendly guide to configuring audio on Arch Linux, including PulseAudio, PipeWire, ALSA, and audio troubleshooting.


Table of Contents

  1. Understanding Audio Systems
  2. PulseAudio Setup
  3. PipeWire Setup
  4. ALSA Configuration
  5. Audio Device Management
  6. Bluetooth Audio
  7. Troubleshooting

Understanding Audio Systems

Audio Stack

Linux audio layers:

  1. ALSA: Low-level audio driver
  2. PulseAudio/PipeWire: Audio server
  3. Applications: Use audio server

Audio Systems

Available systems:

  • PulseAudio: Traditional audio server
  • PipeWire: Modern replacement
  • ALSA: Direct hardware access

PulseAudio Setup

Install PulseAudio

Install PulseAudio:

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

# For Bluetooth
sudo pacman -S pulseaudio-bluetooth

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

# Or from terminal
pulseaudio -k && pulseaudio --start

Configure PulseAudio

Edit config:

# User config
vim ~/.config/pulse/default.pa

# System config
sudo vim /etc/pulse/default.pa

Common settings:

# Set default sink
set-default-sink alsa_output.pci-0000_00_1f.3.analog-stereo

# Set default source
set-default-source alsa_input.pci-0000_00_1f.3.analog-stereo

PipeWire Setup

Install PipeWire

Install PipeWire:

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

# For Bluetooth
sudo pacman -S pipewire-pulse pipewire-alsa

Enable PipeWire

Start PipeWire:

# Enable services
systemctl --user enable pipewire pipewire-pulse pipewire-media-session

# Start services
systemctl --user start pipewire pipewire-pulse pipewire-media-session

# Check status
systemctl --user status pipewire

PipeWire Control

GUI control:

# Install control tools
sudo pacman -S wireplumber helvum

# Open control
helvum

Migrate from PulseAudio

Switch to PipeWire:

# Stop PulseAudio
systemctl --user stop pulseaudio
systemctl --user disable pulseaudio

# Start PipeWire
systemctl --user enable pipewire pipewire-pulse
systemctl --user start pipewire pipewire-pulse

ALSA Configuration

ALSA Basics

ALSA (Advanced Linux Sound Architecture):

# Install ALSA
sudo pacman -S alsa-utils alsa-firmware

# Test sound
speaker-test -c 2

# List devices
aplay -l

ALSA Mixer

Control volume:

# Open ALSA mixer
alsamixer

# Or use amixer
amixer set Master 50%

ALSA Configuration

Edit ALSA config:

# User config
vim ~/.asoundrc

# System config
sudo vim /etc/asound.conf

Example config:

pcm.!default {
    type hw
    card 0
}

ctl.!default {
    type hw
    card 0
}

Audio Device Management

List Audio Devices

Check available devices:

# List PulseAudio sinks
pactl list short sinks

# List PulseAudio sources
pactl list short sources

# List ALSA devices
aplay -l
arecord -l

Set Default Device

Configure default:

# Set default sink (PulseAudio)
pactl set-default-sink sink-name

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

Switch Audio Device

Change device:

# List sinks
pactl list sinks short

# Set default
pactl set-default-sink 1

# Move application
pactl move-sink-input input-index sink-name

Bluetooth Audio

Install Bluetooth

Setup Bluetooth:

# Install Bluetooth
sudo pacman -S bluez bluez-utils

# Enable service
sudo systemctl enable bluetooth
sudo systemctl start bluetooth

Connect Bluetooth Audio

Pair device:

# Start Bluetooth
bluetoothctl

# Scan for devices
scan on

# Pair device
pair MAC-ADDRESS

# Connect
connect MAC-ADDRESS

# Trust device
trust MAC-ADDRESS

PulseAudio Bluetooth

Enable Bluetooth support:

# Install Bluetooth module
sudo pacman -S pulseaudio-bluetooth

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

PipeWire Bluetooth

Bluetooth with PipeWire:

# Install support
sudo pacman -S pipewire-pulse

# Restart PipeWire
systemctl --user restart pipewire pipewire-pulse

Troubleshooting

No Sound

Check audio system:

# Check if PulseAudio running
pulseaudio --check -v

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

# Check ALSA
alsamixer

Audio Device Not Detected

Check hardware:

# List PCI audio devices
lspci | grep Audio

# Check kernel modules
lsmod | grep snd

# Load module
sudo modprobe snd-hda-intel

Volume Too Low

Increase volume:

# ALSA mixer
alsamixer

# Or use amixer
amixer set Master 100%
amixer set PCM 100%

Audio Cracking/Popping

Fix audio issues:

# Edit PulseAudio config
vim ~/.config/pulse/daemon.conf

Add:

default-sample-rate = 48000
avoid-resampling = yes

Restart:

pulseaudio -k && pulseaudio --start

Microphone Not Working

Check microphone:

# List sources
pactl list sources short

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

# Test recording
arecord -d 5 test.wav
aplay test.wav

Summary

This guide covered:

  1. Audio systems - ALSA, PulseAudio, PipeWire
  2. PulseAudio - Traditional audio server
  3. PipeWire - Modern audio system
  4. ALSA - Low-level audio
  5. Device management - Switch devices
  6. Bluetooth audio - Wireless audio
  7. Troubleshooting - Common issues

Key Takeaways:

  • PulseAudio is traditional choice
  • PipeWire is modern replacement
  • ALSA is low-level driver
  • Use pavucontrol for GUI control
  • Check alsamixer for hardware control

Next Steps


This guide is based on the ArchWiki. For the most up-to-date information, always refer to the official ArchWiki.

Clone this wiki locally