mSBC broken in current kernel versions
Bluetooth-next changed mSBC altsetting again: https://lore.kernel.org/linux-bluetooth/E9F68188-F920-4CBA-95D4-4270472D63D6@holtmann.org/T/
We'll need to test if things still work before this hits mainline, and complain if it doesn't.
This breaks mSBC audio output (and possibly also input) with several USB bluetooth adapters (CSR, Broadcom, many Intel ones).
cf. also pulseaudio/pulseaudio#1201 (comment 940568)
Kernel patch that should fix this: https://patchwork.kernel.org/project/bluetooth/patch/20210726180206.49703-1-pav@iki.fi/
For those who want to patch their kernel: find out how to build "out-of-tree" kernel modules on your distribution, and do so for drivers/bluetooth
(be sure to understand what you are doing first). Eg. on Fedora 34, you'll need to do:
sudo dnf install kernel-devel; sudo dnf build-dep kernel
- Download mainline kernel sources for the kernel version you have (check
uname -r
), from https://kernel.org/ (e.g. linux-5.13.8.tar.xz) and unpack them. cd linux-5.13.8/drivers/bluetooth
- Download and apply patch:
curl https://patchwork.kernel.org/project/bluetooth/patch/20210726180206.49703-1-pav@iki.fi/raw/ | patch -p3 -N -E
make -C /lib/modules/$(uname -r)/build M=$PWD modules
- As root, copy the *.ko files to
/lib/modules/5.13.6-200.fc34.x86_64/updates/
and domodprobe -r btusb; depmod -a; modprobe btusb
to reload the new driver. - On some distros, the 'updates' directory doesn't exist and you need to copy them somewhere else there, and possibly also remove old modules.
modinfo btusb
tells which module is being used.
You'll also need to set bluez5.enable-msbc = true
in bluez-monitor.conf
https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-Bluetooth and restart pipewire, to override the blocklisting of the kernel versions in question.