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
- Supported Devices — check your Apollo model's status
- Daemon Setup — configure the mixer daemon for full mixer control
- Troubleshooting — common issues and solutions