Brcm-patchram-plus conflict with pi-bluetooth

On my rpi4 4Go which was installed a long time ago (23/02/2020 and I may reinstall it) I’m on the unstable branch and I had a conflict with pi-bluetooth on the last update.
I’have just removed it and apply the update and everything seems to work fine but I did not test the bluetooth by the way.
I don’t know why I have such package which was “manually installed”.

pactree brcm-patchram-plus
brcm-patchram-plus
└─bluez-libs
└─glibc
├─linux-api-headers provides linux-api-headers>=4.10
├─tzdata
└─filesystem
└─iana-etc

pactree -r brcm-patchram-plus
brcm-patchram-plus

I’ve started this thread because I’ve seen that @Darksky is thinking about refactoring bluetooth package for the new pi device.

Yes I have re-done things and specified the 2 services to conflict.

brcm-patchram-plus and pi-bluetooth are 2 .services that loads the firmware for bluetooth for the RPI’s onboard bluetooth. In the past we started with brcm-patchram-plus and then switched to pi-bluetooth because it will automatically load the right firmware for the RPi that is being booted. brcm-patchram-plus only loads the firmware specific to one board and has to have custom commandline switches and the right firmware specified.

What brought this to a head:

Some in the forum use bluetooth head phones and the sound was choppy and uninstalling pi-bluetooth and installing brcm-patchram-plus fixed the issue. I am not sure why but what I do know is pi-bluetooth is bluez based and brcm-patchram-plus uses a patched version from Google that they use on their chrome that is supposed to write the firmware to the onboard chip with the firmware each time the service is started before bluez loads up.

Something changed in the kernel in linux-rpi4 5.4.75-1 and bluetooth would not load up properly. When investigation I found multiple issues. pi-bluetooth and firmware-raspberrypi installs bluetooth firmware in different places with different md5sum’s. To compound things linux-firmware now installs the wifi firmware but they were out of date when compared to the Pi OS image and the firmware-raspberrypi package needed updated firmware.

There was no firmware for the new pi 400 wifi/bluetooth.

I removed the firmware from the pi-bluetooth package
I downloaded all new wifi/bluetooth firmware and put it in the firmware-raspberrypi package
These packages now exist in the unstable branch for the ones that uses bluetooth headphones and have choppy audio:

brcm-patchram-plus-pi3     # For the RPi 3b only
brcm-patchram-plus-pi400   # For the RPi pi 400 only
brcm-patchram-plus         # For the RPi 3b+ / 4b only

After installing the right bluetooth package for your device then enable it’s service and reboot; choosing one of the below:

attach-bluetooth-pi3.service
attach-bluetooth-pi400.service
attach-bluetooth.service

The conflict has been fixed in the rpi4-post-install PKGBUILD by @Strit but do not know at this time if he rebuilt the package and pushed it or not yet.

In the future images brcm-patchram-plus will be the default and we are working on a script to automatically detect the board and load the right commandline for the board you are booted on.

It is important to load the new firmware-raspberrypi package in the unstable branch right now and the new pi-bluetooth package if you choose to stay with it. The pi-bluetooth seems to be ok except with bluetooth sound for some reason but all I have to test with here involving bluetooth is bluetooth tethering and have not seen any one complain with using a bluetooth keyboard or mouse.

1 Like

I did a test using the brcm-patchram-plus package on my pi4 with bluetooth tethering and LG android phone (it is the only bluetooth device I have) and was really surprised with the speed test. The download was a little faster and the upload was not choked down like my dsl service does. I believe things could get better with a open-wrt router in between managing the traffic. There was a lot of bufferfloat on another test.