Arch Linux Audio Configuration - ryzendew/Linux-Tips-and-Tricks GitHub Wiki
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
- Understanding Audio Systems
- PulseAudio Setup
- PipeWire Setup
- ALSA Configuration
- Audio Device Management
- Bluetooth Audio
- Troubleshooting
Understanding Audio Systems
Audio Stack
Linux audio layers:
- ALSA: Low-level audio driver
- PulseAudio/PipeWire: Audio server
- 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:
- Audio systems - ALSA, PulseAudio, PipeWire
- PulseAudio - Traditional audio server
- PipeWire - Modern audio system
- ALSA - Low-level audio
- Device management - Switch devices
- Bluetooth audio - Wireless audio
- Troubleshooting - Common issues
Key Takeaways:
- PulseAudio is traditional choice
- PipeWire is modern replacement
- ALSA is low-level driver
- Use
pavucontrolfor GUI control - Check
alsamixerfor hardware control
Next Steps
- Arch Linux Graphics Drivers - GPU setup
- Arch Linux Hardware Configuration - More hardware
- ArchWiki PulseAudio: https://wiki.archlinux.org/title/PulseAudio
- ArchWiki PipeWire: https://wiki.archlinux.org/title/PipeWire
This guide is based on the ArchWiki. For the most up-to-date information, always refer to the official ArchWiki.