-
-
Notifications
You must be signed in to change notification settings - Fork 1
Linux Audio Configuration
Complete beginner-friendly guide to audio configuration on Linux, covering Arch Linux, CachyOS, and other distributions including PulseAudio, PipeWire, ALSA, device management, and troubleshooting.
- Understanding Linux Audio
- PulseAudio Configuration
- PipeWire Configuration
- ALSA Configuration
- Audio Device Management
- Bluetooth Audio
- Microphone Configuration
- Troubleshooting
Linux audio uses multiple layers:
- ALSA (Advanced Linux Sound Architecture)
- Low-level audio driver
- Direct communication with sound hardware
- Kernel level (closest to hardware)
- PulseAudio or PipeWire
- Sound server (audio manager)
- Manages audio streams, mixing, routing
- User level (application interface)
- Applications
- Programs you use (browser, music player, etc.)
- Produces audio
- Application level
How it works:
Application → PulseAudio/PipeWire → ALSA → Hardware
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
Arch Linux / CachyOS:
# Install PulseAudio
sudo pacman -S pulseaudio pulseaudio-alsa pavucontrol
# For Bluetooth
sudo pacman -S pulseaudio-bluetoothDebian/Ubuntu:
sudo apt install pulseaudio pavucontrolFedora:
sudo dnf install pulseaudio pavucontrolStart PulseAudio:
# Enable user service
systemctl --user enable pulseaudio
systemctl --user start pulseaudio
# Check status
systemctl --user status pulseaudioGUI control:
# Open PulseAudio Volume Control
pavucontrolArch Linux / CachyOS:
# Install PipeWire
sudo pacman -S pipewire pipewire-pulse pipewire-alsa
# For JACK
sudo pacman -S pipewire-jackDebian/Ubuntu:
sudo apt install pipewire pipewire-pulseFedora:
sudo dnf install pipewire pipewire-pulseaudioStart PipeWire:
# Enable services
systemctl --user enable pipewire pipewire-pulse
systemctl --user start pipewire pipewire-pulse
# Check status
systemctl --user status pipewireALSA is the low-level audio driver.
Check ALSA:
# List sound cards
aplay -l
# Check ALSA mixer
alsamixerEdit config:
# Edit ALSA config
sudo vim /etc/asound.confCheck devices:
# PulseAudio
pactl list sinks short
pactl list sources short
# PipeWire
pactl list sinks short
pactl list sources shortSet default:
# Set default sink
pactl set-default-sink sink-name
# Set default source
pactl set-default-source source-namePulseAudio:
# Install Bluetooth support
sudo pacman -S pulseaudio-bluetooth
# Restart PulseAudio
pulseaudio -k && pulseaudio --startPipeWire:
# PipeWire includes Bluetooth support
# No additional package neededRecord test:
# Install tools
sudo pacman -S alsa-utils
# Record
arecord -d 5 test.wav
# Playback
aplay test.wavSet default:
# Set default source
pactl set-default-source source-name
# Increase volume
pactl set-source-volume source-name 100%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%Check services:
# Check PulseAudio
systemctl --user status pulseaudio
# Check PipeWire
systemctl --user status pipewire
# Restart
systemctl --user restart pulseaudioFix permissions:
# Add to audio group
sudo usermod -aG audio username
# Log out and back inThis guide covered audio configuration for Arch Linux, CachyOS, and other distributions, including PulseAudio, PipeWire, ALSA, and troubleshooting.
- Bluetooth Configuration - Bluetooth setup
- Hardware Detection - Hardware setup
- ArchWiki PulseAudio: https://wiki.archlinux.org/title/PulseAudio
- ArchWiki PipeWire: https://wiki.archlinux.org/title/PipeWire
This guide covers Arch Linux, CachyOS, and other Linux distributions. For distribution-specific details, refer to your distribution's documentation.