Minimal Bluetooth C/C++ code - no "blueZ" based library?

anneranch

Active Member
Joined
Mar 16, 2019
Messages
159
Reaction score
39
Credits
1,396
I am posting this as a separate item.
Can anybody point me to a resource (RTFM) which is DIRECTLY using / accessing Linux Bluetooth kernel to write C /C++ code?
I am NOT interested in any resources / library whose origin can be traced "down" to "blueZ" library.
Is that even possible ?
After running around in circles it appears that Bluetooth can be coded using "HCI".
Am I off the track?
 


dos2unix

Well-Known Member
Joined
May 3, 2019
Messages
1,014
Reaction score
690
Credits
5,124
hcitool has been deprecated in most distro's. No new code has been for it in a few years.Almost every major distro I am aware of has gone over to bluez.



There have a been a few dependency upgrades for hcitool.

I don't know how it is in in the Debian/Ubuntu world, but in the Redhat/Fedora and SuSE side
of things, you can still download hcitools if you enable the "deprecated" library repo.
 
OP
A

anneranch

Active Member
Joined
Mar 16, 2019
Messages
159
Reaction score
39
Credits
1,396
Allow me to put / repeat my request another way.
If "blueZ" is a wrapper of HCI commands what is the actual advantage of using it ?
In other words - who needs (poorly documented ) middle man?

So even hcitool is yet another middle layer and "deprecated".

And what excacly does "big word " deprecated " really means? And who decides to deprecate?
In my view before you discard AKA deprecate AKA discourage to use in "new design" you better have better mousetrap ready to roll.

Hope this discussion will lead to (mine) better understanding how to access Bluetoooth in Linux more direct.
 

dos2unix

Well-Known Member
Joined
May 3, 2019
Messages
1,014
Reaction score
690
Credits
5,124
deprecated usually means "replaced by something newer".

Why is certain software deprecated? Many reasons.
1. Sometimes the original developer(s) just get tired of supporting and coding for something.
2. Sometimes they pass away.
3. Probably the main reason, is somebody comes along with something that works better and more reliably.
4. In some cases it doesn't always work "better" it's easier for everyone to standardize on.
5. Sometimes it's popularity, no one wants to write software that no one uses.
6. Much of Linux is going through some transitions today, gcc was the defacto standard
for compiling the Linux kernel and just about the all the binaries for many years. But the kernel as
well as more and more packages are now moving to be LLVM/Clang compatible. (Many are without
any changes at all)
7. In the case Xorg-X11, it just too big and cumbersome with too many pieces and too many developers working on too many parts, they weren't always aligned on where they wanted to go as
a group. Xorg-X11 is currently over 50 libraries or so. Wayland is more unified.
8. In some cases, it is distro specific by design. Example apt for Debian/Ubuntu dnf for Redhat/Fedora
9. In some cases it's due to security concerns by a security review board.
10. In many cases, the drivers for a specific hardware are no longer supported because hardly anyone uses that hardware anymore. Sometimes they are still around as "legacy" software.
Most of the larger distro's have reviews board that periodically add or remove some packages
based on the criteria above.

I'm sure there are more reason than I have here.
 
$100 Digital Ocean Credit
Get a free VM to test out Linux!

Members online


Top