-
-
Notifications
You must be signed in to change notification settings - Fork 1
Arch Linux Audio Configuration
Complete beginner-friendly guide to configuring audio on Arch Linux, including PulseAudio, PipeWire, ALSA, and audio troubleshooting.
- Understanding Audio Systems
- PulseAudio Setup
- PipeWire Setup
- ALSA Configuration
- Audio Device Management
- Bluetooth Audio
- Troubleshooting
Linux audio layers:
- ALSA: Low-level audio driver
- PulseAudio/PipeWire: Audio server
- Applications: Use audio server
Available systems:
- PulseAudio: Traditional audio server
- PipeWire: Modern replacement
- ALSA: Direct hardware access
Install PulseAudio:
# Install PulseAudio
sudo pacman -S pulseaudio pulseaudio-alsa pavucontrol
# For Bluetooth
sudo pacman -S pulseaudio-bluetoothStart PulseAudio:
# Enable user service
systemctl --user enable pulseaudio
systemctl --user start pulseaudio
# Check status
systemctl --user status pulseaudioGUI control:
# Open PulseAudio Volume Control
pavucontrol
# Or from terminal
pulseaudio -k && pulseaudio --startEdit config:
# User config
vim ~/.config/pulse/default.pa
# System config
sudo vim /etc/pulse/default.paCommon 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
Install PipeWire:
# Install PipeWire
sudo pacman -S pipewire pipewire-pulse pipewire-alsa pipewire-jack
# For Bluetooth
sudo pacman -S pipewire-pulse pipewire-alsaStart 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 pipewireGUI control:
# Install control tools
sudo pacman -S wireplumber helvum
# Open control
helvumSwitch 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-pulseALSA (Advanced Linux Sound Architecture):
# Install ALSA
sudo pacman -S alsa-utils alsa-firmware
# Test sound
speaker-test -c 2
# List devices
aplay -lControl volume:
# Open ALSA mixer
alsamixer
# Or use amixer
amixer set Master 50%Edit ALSA config:
# User config
vim ~/.asoundrc
# System config
sudo vim /etc/asound.confExample config:
pcm.!default {
type hw
card 0
}
ctl.!default {
type hw
card 0
}
Check available devices:
# List PulseAudio sinks
pactl list short sinks
# List PulseAudio sources
pactl list short sources
# List ALSA devices
aplay -l
arecord -lConfigure default:
# Set default sink (PulseAudio)
pactl set-default-sink sink-name
# Set default source
pactl set-default-source source-nameChange device:
# List sinks
pactl list sinks short
# Set default
pactl set-default-sink 1
# Move application
pactl move-sink-input input-index sink-nameSetup Bluetooth:
# Install Bluetooth
sudo pacman -S bluez bluez-utils
# Enable service
sudo systemctl enable bluetooth
sudo systemctl start bluetoothPair device:
# Start Bluetooth
bluetoothctl
# Scan for devices
scan on
# Pair device
pair MAC-ADDRESS
# Connect
connect MAC-ADDRESS
# Trust device
trust MAC-ADDRESSEnable Bluetooth support:
# Install Bluetooth module
sudo pacman -S pulseaudio-bluetooth
# Restart PulseAudio
pulseaudio -k && pulseaudio --startBluetooth with PipeWire:
# Install support
sudo pacman -S pipewire-pulse
# Restart PipeWire
systemctl --user restart pipewire pipewire-pulseCheck audio system:
# Check if PulseAudio running
pulseaudio --check -v
# Restart PulseAudio
pulseaudio -k && pulseaudio --start
# Check ALSA
alsamixerCheck hardware:
# List PCI audio devices
lspci | grep Audio
# Check kernel modules
lsmod | grep snd
# Load module
sudo modprobe snd-hda-intelIncrease volume:
# ALSA mixer
alsamixer
# Or use amixer
amixer set Master 100%
amixer set PCM 100%Fix audio issues:
# Edit PulseAudio config
vim ~/.config/pulse/daemon.confAdd:
default-sample-rate = 48000
avoid-resampling = yes
Restart:
pulseaudio -k && pulseaudio --startCheck 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.wavThis 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
- 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.