[Dragonboard410c] Bluetooth Stack BlueZ version

Hi,

I am using the Dragonboard410c with Linaro Relase - 16.06 taken from Linaro Release 16.06.

I have a query regarding the BlueZ Stack version in the Kernel.

By reading few articles, I understand that Linux Kernel v2.2x.y onwards (sorry I forgot to note the values of x and y), the de-facto Bluetooth Stack for Linux Distributions is BlueZ. And by going through the kernel file - net/bluetooth/af_bluetooth.c, I saw the macro VERSION string as “2.21”. So the BlueZ Stack version is 2.21. Is this understanding correct ?

Also, in some web searches, people have suggested to check the version of bluetoothd and bluetoothctl utilities. So when I checked the version for both the utilites, I got the versions for both these utilities to be v5.23. So does the version number of these utilities correlate with the BlueZ version (the VERSION macro in the kernel) ?

If my understanding is wrong, can you please suggest a way wherein we can confirm the BlueZ stack version ?

Awaiting your reply.

Thanks,
Sunny

The bluez stack is primarily in userspace so the version number of the userspace tools is the one that usually matters. You have bluez 5.23.

1 Like

Hi @danielt,

Really appreciate for your quick response.

Just to have a better understanding, the BlueZ is userspace, then how to figure out the kind of or type of stack in the kernel.

I have some experience in working on the Bluetooth Controller Firmware, so I am curious to know.

The below architecture is applicable to Bluetooth right:

Profiles / Applications (Userspace) which in DB410c case is BlueZ
^
|
|-- D-Bus is the communication medium
|
v
Bluetooth Host Stack in Kernel which in DB410c case is xxx ← Can you please comment. Available stacks are (BlueZ / Bluedroid / etc.)
^
|
|-- HCI Transport (UART / USB / etc)
|
v
Bluetooth Controller

Awaiting your reply.

Thanks,
Sunny

You could take a look at something like: Bluetooth on modern Linux (slides)

Note also that the kernel’s really strong interface back compatibility rules means its not very often we care about the version of the kernel code (and when we do most people would work in kernel version numbers). I don’t know anything specific about the use of VERSION by af_bluetooth.c but that kind of internal versioning is typically there so userspace can detect what kernel features may or may not be present and configure itself accordingly.

To follow up on what Daniel was saying.

There are two interfaces, the BlueZ D-Bus API and the Bluetooth Management API.

The middle level in your diagram is the Management API
https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/mgmt-api.txt

This can be accessed from the command line with “btmgmt”

Hi @barryb and @danielt,

Really appreciate for your inputs and information.

I am going through both of your links.

I am closing this thread here.

Thanks again for your time.

Thanks,
Sunny

Hi All,

Is Linaro Linux 17.06.1 also Bluez 5.23?

And I have question about it.

Does Bluez stack of Linaro Linux debian gain bluetooth SIG certification?

Best regards,

Seems to be Bluez 5.43

In general, you only qualify end products.
You can find here some products qualified with BlueZ stack.

Depending expected features (BRD/EDR, BLE, profiles, etc), a test plan is generated for the product.
The majority of the qualification test cases are done by the Profile Tuning Suite (PTS).
If you use or re-use an unmodified already qualified product/module, you don’t need to perform all the qualification.
source: https://www.bluetooth.com/develop-with-bluetooth/qualification-listing

BlueZ provides documentation on how passing the PTS and is regularly tested.

Hi,

Thank you for quick reply.
And I apologize for my lack of ability.
I will investigate the source of your advice.

Best regards