Silverblue: Struggling to override a base package (to get AptX support)

Hello,

I am running Fedora Silverblue 31. Out of the box, it doesn’t seem to have support for any Bluetooth audio codecs other than the basic one. Searching online, I discovered that there is a fork of pulseaudio-module-bluetooth which adds support for a variety of codecs, such as AptX, AptX HD, LDAC, and AAC. Sounds great! It even seems to be available on RPM Fusion: https://download1.rpmfusion.org/free/fedora/releases/31/Everything/x86_64/os/repoview/pulseaudio-module-bluetooth-freeworld.html

Unfortunately, I’m struggling a lot to actually install this package. I’d appreciate some help. The instructions from that fork’s GitHub page say to run the following command:

rpm-ostree override remove pulseaudio-module-bluetooth -–install pulseaudio-module-bluetooth-freeworld

This just fails with the error “Unknown option --install”.

I then tried this instead:

rpm-ostree override replace pulseaudio-module-bluetooth-freeworld

And that fails with the error “Non-local replacement overrides not implemented yet”.

Finally, I tried this:

wget https://download1.rpmfusion.org/free/fedora/releases/31/Everything/x86_64/os/Packages/p/pulseaudio-module-bluetooth-freeworld-1.3-1.fc31.x86_64.rpm
rpm-ostree override replace ./pulseaudio-module-bluetooth-freeworld-1.3-1.fc31.x86_64.rpm

This time it actually downloaded and supposedly installed the package. But after rebooting, I’m not sure it actually worked. rpm-ostree status doesn’t list any overridden packages, and rpm -q pulseaudio-module-bluetooth-freeworld says it’s not installed. Nothing seems any different with my audio, and the GitHub page’s instructions to check codec don’t work as expected, suggesting that I’m still on the stock package.

I tried removing the original package:

rpm-ostree override remove pulseaudio-module-bluetooth

That fails with a bunch of errors saying that the package is needed by various other things, such as gnome-tweaks and gnome-bluetooth.

If I try to install it as a layered package with rpm-ostree install pulseaudio-module-bluetooth-freeworld, it fails with an error saying that the base package pulseaudio-module-bluetooth would be removed. But more interestingly, it also says “Inactive base replacements: pulseaudio-module-bluetooth-freeworld”. So it seems like it’s in the system somehow, but why is it inactive? What’s going on here?

I’m pretty confused at this point. Can anybody help me out? Am I doing something wrong with overriding the package? If I am doing it right, then could anyone help me to actually get AptX working? It doesn’t seem to be documented very clearly, so I have trouble understanding how to properly set this up.

Thanks.

2 Likes

Hi,

Delete the two hyphens in -–install and replace them with --install, it looks to be some auto-formatting error in the command causing it not to be recognised when copied and pasted.

2 Likes

Well that’s embarrassing. I changed it as you said and it worked fine. Thanks!

2 Likes

BTW to reset the above command for an upgrade (e.g. to Fedora 34), you need to run this:

$ rpm-ostree override reset pulseaudio-module-bluetooth --uninstall pulseaudio-module-bluetooth-freeworld

It just took me some time to figure that out, so I thought I’d place this here. :smiley:
Once you grasp it, the syntax is easy, but again you need to run the removal of the new packet while resetting the base package to it’s default state. :smiley:

1 Like

This breaks all (or almost all) audio/video playback while a bluetooth speaker device is connected, including youtube, spotify, etc. I thought this was due to gpu hardware acceleration in the flatpak firefox under wayland, but it turns out it’s due to bluetooth.

instead of the pulseaudio-module-bluetooth-freeworld package, use pipewire-codec-aptx

1 Like