Getting Started

Installation

Complete guide to building and installing the Open Apollo Linux driver for Universal Audio Apollo Thunderbolt interfaces.


Prerequisites

You need a Linux system with:

  • Kernel headers for your running kernel
  • GCC (or compatible C compiler)
  • Make
  • Python 3.10+ (for the mixer daemon)
  • A Thunderbolt 3/4 port (USB-C Thunderbolt)

Fedora / RHEL

sudo dnf install kernel-devel gcc make python3

Ubuntu / Debian

sudo apt install linux-headers-$(uname -r) build-essential python3

Arch Linux

sudo pacman -S linux-headers gcc make python

Build the driver

Clone the repository and build the kernel module:

git clone https://github.com/open-apollo/open-apollo.git
cd open-apollo/driver
make

This produces ua_apollo.ko — the kernel module.


Load the driver

Make sure your Apollo is connected via Thunderbolt and powered on, then load the module:

sudo insmod ua_apollo.ko

Verify it loaded

Check kernel messages:

dmesg | tail -20

You should see output like:

ua_apollo: Apollo x4 detected (device_type=0x1F)
ua_apollo: Firmware version: ...
ua_apollo: Registered ALSA card ...

Check that ALSA sees the device:

aplay -l

You should see an entry for your Apollo interface.


PipeWire / WirePlumber configuration

The repository includes recommended PipeWire and WirePlumber configuration files in the configs/ directory. These configure:

  • S32LE sample format at 48 kHz
  • MMAP disabled (required for stability)
  • Suspend disabled (keeps the device active)

Deploy the configurations:

sudo bash configs/deploy.sh

This copies the WirePlumber policy and UCM2 profiles to the correct system directories. Restart WirePlumber afterward:

systemctl --user restart wireplumber

DKMS setup (persist across kernel updates)

Without DKMS, you need to rebuild and reload the module every time your kernel updates. DKMS automates this.

Install DKMS

# Fedora
sudo dnf install dkms

# Ubuntu / Debian
sudo apt install dkms

# Arch
sudo pacman -S dkms

Register the module

From the repository root:

sudo cp -r driver /usr/src/ua_apollo-0.1
sudo dkms add ua_apollo/0.1
sudo dkms build ua_apollo/0.1
sudo dkms install ua_apollo/0.1

The module will now rebuild automatically when you install a new kernel.

Load on boot

Create a module load configuration:

echo "ua_apollo" | sudo tee /etc/modules-load.d/ua_apollo.conf

Next steps

Previous
Introduction