this post was submitted on 04 Feb 2024
82 points (95.6% liked)

Linux

45582 readers
598 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
82
submitted 5 months ago* (last edited 5 months ago) by djtech to c/[email protected]
 

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.

all 12 comments
sorted by: hot top controversial new old
[–] [email protected] 21 points 5 months ago (1 children)

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.

[–] [email protected] 7 points 5 months ago

I'm not smart enough to collaborate but if you recall popular projects such as pipewire started this way

[–] [email protected] 6 points 5 months ago

To me it’s hard to say if BlueZ actually has some technical debt and is hard to fix, or is it just lacking some maintenance. Are bluetooth issues actually due to BlueZ, or is it more about finky drivers? My Bluetooth experience on Linux systems is mostly good, but it might vary a tiny bit depending on the hardware.

I’d say, if you see some architectural benefits then try and go for it. To really make sense it should do BlueZ’s job better than BlueZ. Being drop-in replacement is good for desktops integration, but maybe the API could be improved providing some benefits to how desktop integrations work (like provide more status info or prevent some situations from blocking), but again I know nothing about BlueZ internals so just guessing

[–] [email protected] 4 points 5 months ago (1 children)

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 :)

[–] djtech 3 points 5 months ago

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.

[–] [email protected] 4 points 5 months ago

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.

[–] [email protected] 1 points 5 months ago

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.