Yes! I think I've finally cracked the Pi-400 Bluetooth issues!
I'm starting a new thread for this subject, which was previously part this thread:
https://www.linuxquestions.org/quest...-a-4175687719/
I thought it best to bring all the information into a dedicated thread as its taken me a while to figure out the problem!
The initial problem was that I could not get the Pi-400 bluetooth to bind to my headphones or BT Speaker. Since the 400 does not have a dedicated "audio out" jack, this was a problem!
If I inserted a USB dongle, bluetooth worked fine, but the internal chip refused to bind, although it worked fine under Raspbian. This told me it was a firmware / software issue, rather than a hardware issue.
Initially the system could not detect the on board bluetooth adapter at all, but after copying the brcm firmware folder from Raspbian, the adapter finally appeared. This turned out to be a sort of red-herring, of which more anon...
The next step turned out to be an issue with bluez, which had a number of issues with the specific chips used in the 400 - which are not the same as in the 4.
After a lot of searching, I found a series of patches for bluez, which fixed the problem. See post 75 at the bottom of the page:
https://www.linuxquestions.org/quest...719/page5.html
Finally, I got bluetooth working, but there was still an issue. It would only work for a short time - typically between 1 and 5 minutes - before dropping out. None of the usual bluetooth commands would re-instate the adapter, which had vanished again, and the only solution was a reboot!
Today I stumbled across another distro which was having similar issues a while back, and someone there had written a script to reload the firmware and restart bluetooth without the need of a reboot. You can find it here:
https://github.com/agungpambudi55/bl...n-init-running
The file you need is "bluetoothResetFirmware.sh"
Despite being written for libelec, the script worked and revealed that the system was loading the wrong firmware!
Instead of loading BCM4345C5.hcd from /lib/firmware/brcm it was loading an identically named file from /lib/firmware/ap6256! This folder appears to have its origins with Manjaro-ARM. It is not part of a default Slackware install, and has presumably been copied over from Manjaro-ARM to provide functionality in other Pis. Unfortunately, it is not the right firmware for the 400, and gets found before the correct firmware in the brcm folder!
I think my copying the brcm folder over from Raspbian must have coincidentally coincided with an upgrade to this folder, which gave me partial functionality. This has caused me a lot of confusion!
I moved the ap6256 folder out of harms way, and now my Pi-400 loads its firmware from the correct brcm folder, and it WORKS! AT LAST!
Now, in the intervening period, I've done a lot of experimenting, and I've lost track of which version of the brcm folder I currently have! I think its the one from the latest Raspbian, but I could be wrong! Its also possible that something I have done whilst fiddling about has installed that ap6256 folder as it isn't part of the kernel firmware package. Whatever, it is NOT compatible with the 400!
So in summary, the solution to Bluetooth issues for the Pi-400 is:
1) Remove /lib/firmware/ap6256 (if it exists) and put it somewhere safe and out of the way!
2) Rebuild bluez with the patches mentioned above.
It should then all work!
Have fun!
--
Pete