Hi everybody,
i’m a long time Debian user and, while i’ve always loved the Linux experience, the bluetooth side of things was always a little bit… painful.
Lately, i’ve been digging on how bluetooth on Linux works (i knew about BlueZ, but i didn’t know about HCI sockets, standard protocols for bluetooth controllers, …). Seeing how Android manages to work fine with bluetooth (yes, i know, money and company support, blah blah blah), i was thinking about re-writing the bluetooth daemon, in order to be modern, modular, safe (written in Rust), stable and retro-compatible (exposes the same D-Bus APIs as BlueZ) I already found some documents about HCI socket in Linux, HCI communication with bluetooth controllers, HID standards for Bluetooth, etc…
My questions are:
- is this a good idea?
- does somebody want to collaborate?
Thanks for reading.
EDIT: The repository is https://github.com/djtech-dev/reblued but at the moment is pretty much empty, just the project’s skeleton, license, README and disussions for collaborators.
i was thinking about re-writing the bluetooth daemon, in order to…
The NIH is strong with this one.
IMO you’d be better off putting that enthusiasm into fixing BlueZ - you might actually be able to fix some real issues and improve things for a great number of users relatively quickly.
Writing a new, competing, piece of software is going to take a while to achieve both feature parity and see any adoption by major distros.
retro-compatible (exposes the same D-Bus APIs as BlueZ)
Is there any reason for this? I can’t think of anything off the top of my head that would require it. It’s an admirable goal but make sure it’s worthwhile doing this and that there aren’t actual benefits that could be achieved by breaking compatibility.
you’d be better off fixing the existing project
by breaking its API compatibility
wut
You have conflated two statements.
- You’re better off not fragmenting the ecosystem
- If they decide to go ahead with the rewrite, consider whether or not maintaining API compatibility with BlueZ is actually required / desirable.
deleted by creator
Thanks for your reply; i won’t work with firmware-level aspects of the stack, as my plan is to write the userspace daemon, while keeping the kernel-levels modules identical and to communicate to them via HCI sockets, as they are implemented by Linux and with them I can talk directly to the bluetooth controllers.
I’ll check out Android’s project and double-check for security vulnerabilities in older version of the protocols tho, so thank you again for replying.
double-check for security vulnerabilities
triple-check is better.
I’m not smart enough to collaborate but if you recall popular projects such as pipewire started this way
To me that seems like a good idea, alternatives are always great. Sadly I can’t help as my computer doesn’t have Bluetooth and I don’t know rust.
I think it can be good attempt to reimplement it and make it work stable and normal.My hesdphones sometimes randomly dropping connection and need to restart bluez to make them connect again.Also have to say about audio profiles for bluetooth headphones. While A2DP can deliver can good high quality sound but cannot work in duplex mode and can noy record ur headphones microphone and it would be nice if u share link for ur git :)
The repository is https://github.com/djtech-dev/reblued but at the moment is pretty much empty, just the project’s skeleton, license, README and disussions for collaborators.
I wish you the best wishes. I am unfortunately not yet at a stage where i can help :(. out of curiosity what is wrong with how it currently works on Linux, I don’t really have issues with it.