You installed Ardour, but the session won't start
You run sudo dnf install ardour, launch the application, and click "Start Session." The dialog freezes. A red error appears: Error: Cannot connect to server socket err = No such file or directory. You check the system tray. The volume icon works. Firefox plays video. The desktop audio is fine. Ardour just refuses to talk to the sound card.
This happens because Ardour does not use the standard desktop audio path. It requires a low-latency audio server. Fedora uses PipeWire as the default sound server, and PipeWire can emulate the JACK API that Ardour expects. The bridge exists, but it might not be running, or your user lacks the real-time privileges required to prevent audio dropouts. The fix involves aligning the DAW with the PipeWire stack and ensuring the kernel allows high-priority audio threads.
The audio stack and why Ardour complains
Ardour is a Digital Audio Workstation. It records, mixes, and edits audio with strict timing requirements. Standard desktop audio prioritizes stability over latency. It buffers large chunks of data to prevent glitches, which introduces a delay of 50 to 100 milliseconds. That delay is fine for watching videos. It makes recording a guitar impossible because you hear yourself playing a fraction of a second after you strum.
Ardour uses the JACK Audio Connection Kit protocol. JACK routes audio with minimal buffering, often 128 or 256 samples, resulting in latency under 10 milliseconds. Historically, you had to install a standalone JACK daemon, configure it manually, and disconnect desktop audio to use it. That workflow was fragile. Switching between desktop audio and JACK required killing processes and restarting services.
Fedora 36 and newer use PipeWire as the default audio server. PipeWire is designed to handle both desktop audio and professional low-latency workloads simultaneously. It includes a JACK compatibility layer. When pipewire-jack is installed and active, PipeWire presents itself as a JACK server. Ardour connects to PipeWire transparently. You get low-latency recording while your browser still plays sound. The complexity shifts from managing two servers to ensuring the PipeWire user service is running and the user has the correct permissions.
Install Ardour and the PipeWire bridge
The base ardour package pulls in the application and core dependencies. It does not always pull in the full PipeWire JACK bridge if your system is minimal. Install the bridge explicitly. This ensures the emulation layer is present and the ALSA compatibility shim is available for legacy plugins.
Here is how to install Ardour and the required audio stack components.
sudo dnf install ardour pipewire pipewire-jack pipewire-alsa pipewire-pulse
# ardour requires the JACK API for low-latency audio routing
# pipewire-jack emulates a JACK server so Ardour can talk to PipeWire
# pipewire-alsa allows legacy ALSA apps to route through PipeWire
# pipewire-pulse ensures desktop audio continues to work alongside the DAW
Run dnf upgrade --refresh weekly to keep the audio stack patched. PipeWire receives frequent updates that fix routing bugs and improve Bluetooth compatibility. The --refresh flag forces dnf to check for newer metadata, ensuring you get the latest PipeWire version even if the cache is stale.
Configure real-time privileges and user groups
Low-latency audio requires real-time scheduling. The audio thread must run immediately when a buffer is ready. If the kernel preempts the thread to run a background update or a disk sync, the buffer underruns. You hear clicks, pops, or silence. This is an XRUN.
Fedora restricts real-time privileges by default. Any user can request real-time priority, but the kernel denies it unless the user is in the audio group or the limits are configured. The audio group grants access to sound devices and allows the rtprio capability.
Check if your user is in the audio group.
groups $USER
# Lists all groups for the current user
# Look for 'audio' in the output
# If 'audio' is missing, the user cannot access low-latency devices
If the audio group is missing, add your user to it. The -a flag appends the group. Omitting -a replaces all existing groups, which can lock you out of sudo or other privileges.
sudo usermod -aG audio $USER
# Adds the current user to the audio group for device access
# The -a flag appends; omitting it removes the user from other groups
# Log out and back in for the group change to take effect
PipeWire runs as a user service. It starts when you log in. If you want PipeWire to start on boot even without a graphical login, enable linger for your user. This keeps the user session alive in the background.
loginctl enable-linger $USER
# Keeps the user session alive after logout for background services
# PipeWire runs as a user service; linger ensures it starts on boot
# Useful for headless setups or automated audio processing
Reboot the user session after group changes. The kernel does not retroactively grant permissions to existing processes. A new login shell picks up the new group membership.
Verify the audio path
Before launching Ardour, verify that PipeWire is running and presenting a JACK interface. The pactl tool queries PipeWire. The jack_lsp command lists JACK ports. If jack_lsp returns output, the bridge is active.
Here is how to check the PipeWire status and JACK availability.
systemctl --user status pipewire pipewire-pulse
# Checks the status of PipeWire and the PulseAudio compatibility layer
# Look for 'active (running)' in the output
# If inactive, run 'systemctl --user start pipewire'
jack_lsp
# Lists JACK ports exposed by PipeWire
# Output should show system:capture_* and system:playback_* ports
# Empty output means the JACK bridge is not running
If jack_lsp is empty, restart the PipeWire user service.
systemctl --user restart pipewire pipewire-jack
# Restarts PipeWire and the JACK emulation module
# Fixes transient connection errors after package updates
# Check journalctl --user -u pipewire if the service fails to start
Launch Ardour. The first run wizard asks for the audio device. Select "JACK" as the driver. The device list should show "JACK" with your interface name. Set the buffer size to 256 samples for a balance of latency and stability. Set the sample rate to match your interface hardware, usually 48000 Hz. Click "Start Session." The meters should light up when you make noise.
Run journalctl -xeu pipewire if the service crashes. The x flag adds explanatory text. The e flag jumps to the end. Most PipeWire errors show up here with a clear cause, such as a missing firmware file or a conflicting ALSA configuration.
Common pitfalls and error messages
Audio issues on Linux often stem from configuration drift or resource contention. The error message usually points to the root cause.
Device or resource busy
Ardour prints Error: Cannot open audio device: Device or resource busy. Another process is holding the sound card. This happens when a Bluetooth headset is connected and locked in a high-latency profile, or when a legacy application opened the device directly via ALSA and didn't release it.
Check which process holds the device.
fuser -v /dev/snd/*
# Shows processes accessing sound devices
# Look for PIDs and command names
# Kill the offending process or disconnect the Bluetooth device
Disconnect Bluetooth audio devices before starting a session. Bluetooth codecs introduce latency and often lock the interface in a mode that blocks low-latency access. PipeWire handles Bluetooth well for playback, but Ardour needs exclusive control of the interface for recording.
XRUNs and dropouts
The meter jumps, then freezes. Ardour reports "XRUN" or "Buffer underrun." The audio thread cannot keep up. The buffer size is too small for your CPU load, or a background process is starving the audio thread of CPU time.
Increase the buffer size in Ardour. Go to Edit > Preferences > Audio. Change the buffer size from 128 to 256 or 512. Larger buffers reduce CPU load but increase latency. Find the smallest buffer size that produces zero XRUNs during your typical workflow.
Check the system load.
top -bn1 | head -20
# Shows a snapshot of CPU usage and processes
# Look for high CPU usage by non-audio processes
# Close heavy applications like web browsers with many tabs
Sample rate mismatch
Ardour fails to start the session with Error: Sample rate mismatch. The interface is configured for 44100 Hz, but Ardour requests 48000 Hz, or vice versa. Some USB interfaces lock to a specific sample rate and cannot switch on the fly.
Match the Ardour session sample rate to the hardware. If the interface is stuck, use alsamixer or pavucontrol to force the rate, or reboot the interface by unplugging and replugging it. PipeWire usually handles rate conversion, but Ardour prefers direct hardware access for recording to avoid quality loss.
Check the current hardware sample rate.
cat /proc/asound/card*/pcm0p/sub0/hw_params
# Displays the current ALSA parameters for the capture subdevice
# Look for 'rate' in the output
# Compare this to the sample rate selected in Ardour
SELinux denials
Rarely, SELinux blocks Ardour from accessing a plugin directory or a custom sample path. You see Permission denied in the Ardour log, but the file permissions look correct. SELinux denies access based on context labels.
Check for SELinux denials.
journalctl -t setroubleshoot | tail -20
# Shows SELinux denial summaries from the setroubleshoot service
# Look for lines mentioning 'ardour' or 'pipewire'
# The output suggests a fix command, usually 'semanage fcontext'
Read the one-line summary. It often suggests adding a file context or running audit2allow. Do not disable SELinux. Fix the policy. The package manager manages /usr/lib files. User edits belong in /etc. If you installed plugins in a custom directory, label it correctly.
When to use PipeWire versus standalone JACK
Use PipeWire when you want desktop audio and low-latency DAW work to coexist seamlessly. Use PipeWire when you are on Fedora 36 or newer and want the supported default stack. Use PipeWire when you need Bluetooth audio support alongside your DAW.
Use standalone JACK when you are running a dedicated audio server headless without a desktop environment. Use standalone JACK when you have legacy JACK clients that break with the PipeWire bridge and require the original daemon. Use standalone JACK when you need to tune kernel parameters like preempt or hz for extreme latency requirements that PipeWire cannot satisfy.
Use ardour when you need a full non-linear audio editor with MIDI, video, and plugin support. Use qtractor when you need a lightweight sequencer that focuses on MIDI and simple audio routing. Stay on the default PipeWire setup if you only deviate from the defaults occasionally.
Where to go next
- How to Install Multimedia Codecs on Fedora (MP3, H.264, H.265, AAC)
- How to Install DaVinci Resolve on Fedora
- How to Install Intel Graphics Drivers on Fedora
Check the buffer size before blaming the hardware. XRUNs are usually a configuration error, not a driver bug.