Enabling LDAC Codec Support in Fedora Linux for Bluetooth Headsets
LDAC is an audio coding technology developed by Sony. LDAC support up to 990kbps bandwidth and maximum bit depth and frequency of 96kHz/24bit. LDAC is supported by Sony Headsets like Sony WH-1000XM3, WH-XB900N/B, Sony Walkman, Sony Active Speakers and Sony Home Theaters systems.
In Linux distributions, Bluetooth SIG’s SBC and LC3 codecs are enabled out of the box. However to enable AAC, aptX-HD, LDAC separate propriety codec is needed be installed. From Android 8 Oreo, LDAC became a part of Android Open Source Project¹ . Then bluez-alsa and pulseaudio-modules-bt² packaged it. However due to the possible licensing restrictions, LDAC module should be installed from RPM Fusion repository as follows.
Note: If your Linux distribution uses PipeWire instead of PulseAudio as default (E.g. Fedora 34 and beyond), you may have out of box LDAC support. The usage of following guideline will switch it to PulseAudio from PipeWire
Step 1: Install pulseaudio-module-bluetooth-freeworld
# dnf install pulseaudio-module-bluetooth-freeworld --allowerasing
Then the codec and libraries will be installed in Fedora overwriting the existing pulseaudio-module-bluetooth. It is more likely following package will be installed/removed.
- Installing: pulseaudio-module-bluetooth-freeworld ( From rpmfusion-free repository)
- Installing: libldac ( From Fedora repository)
- Removing: pulseaudio-module-bluetooth ( Installed from initial system installation)
Step 2: Then have a system reboot or do a service restart to Bluetooth service.
# systemctl restart bluetooth
Then it should be able to see the LDAC configuration in Sound Settings.
Step 3: Install Gnome Shell Extension “Bluetooth quick connect” for fast device switching from URL https://extensions.gnome.org/extension/1401/bluetooth-quick-connect/
References
- LDAC — Android Open Source Project Implementation https://android.googlesource.com/platform/external/libldac
- Sony LDAC, aptX, aptX HD, AAC codecs (A2DP Audio) support to PulseAudio on Linux — https://github.com/EHfive/pulseaudio-modules-bt