We're hiring!
*

Simplifying Bluetooth qualification for Linux/BlueZ: New upstream documentation

Frederic Danis avatar

Frederic Danis
May 26, 2026

Share this post:

Reading time:

Acquiring Bluetooth qualification can be arduous and confusing. To alleviate this burden, we've been working with multiple customers to get them through this process. By going through these steps, we've gained some insight and are excited to contribute upstream documentation detailing how to pass Bluetooth profile qualification tests for various profiles.

Why this matters

Bluetooth qualification is a mandatory process required by the Bluetooth Special Interest Group (SIG) for any product that uses the Bluetooth trademark or implements Bluetooth technology. It ensures interoperability across the vast ecosystem of Bluetooth devices and requires demonstrating that your implementation correctly supports the required profiles and passes a defined set of test cases.

Historically, qualifying a Linux/BlueZ stack has been a challenging experience — something we encountered firsthand while supporting several customers through the qualification process during the past years. Key information about which kernel and BlueZ versions support specific test cases was scattered, undocumented, or simply unknown, leaving developers to rediscover the same solutions independently.

By pushing this documentation upstream into BlueZ itself, we ensure that the knowledge is preserved and accessible to anyone working on qualification. Teams can quickly identify the minimum software versions they need, and the manual steps required for each test case are clearly described, reducing the trial-and-error that qualification efforts so often involve. Because the documentation lives alongside the code it describes, it can also be updated and improved by the community over time.

This effort aims to simplify the Bluetooth qualification process for developers, integrators, and device manufacturers, ensuring compliance with Bluetooth SIG standards.

How the documentation is structured

The new documentation is available in the doc/qualification/ directory of the BlueZ repository.

More than 15 Bluetooth profiles are currently covered and we are planning more in the future.

For every supported profile, you will now find two dedicated files:

1. __Protocol Implementation Conformance Statement ({profile}-pics.txt)__

This file describes the profile properties supported by the BlueZ implementation, giving a clear picture of its capabilities as relevant to qualification. It serves as your reference when filling out the PICS on the Bluetooth SIG website.

2. __Test Case Instructions ({profile}-pts.txt)__

This file covers each test case in the qualification test suite, documenting the oldest kernel and BlueZ versions without backports for which we have confirmed the test passes, as well as any manual steps required to pass it.

Contributing & feedback

If you are qualifying a product using BlueZ, we'd love to hear your feedback on this documentation. Has it been helpful to you? How could it be better?

This is an open source effort and we welcome contributions! If you come across missing profiles or test cases, notice version discrepancies, or have additional manual steps to share, we encourage you to contribute improvements directly via the BlueZ mailing list. The more teams that bring their qualification experience upstream, the more useful this resource becomes for everyone.

If you are working on Bluetooth qualification for a Linux-based product and would like expert support, don't hesitate to reach out to Collabora. We are always happy to help.

Acknowledgments

This work was made possible thanks to:

  • The BlueZ maintainers for their guidance and reviews.
  • Collabora’s engineering team for testing and documentation efforts.
  • The Bluetooth SIG for their qualification tools and standards.

We hope this resource saves developers time and improves Bluetooth interoperability across Linux-based devices.

Let’s make Bluetooth qualification easier for everyone!

Search the newsroom

Latest Blog Posts

Simplifying Bluetooth qualification for Linux/BlueZ: New upstream documentation

26/05/2026

New upstream BlueZ documentation helps simplify Bluetooth qualification for Linux-based products by mapping supported profiles, test requirements,…

Building Tyr in Rust: CSF architecture and booting the MCU

14/05/2026

See how Tyr moves beyond MCU firmware boot to build the group, queue, VM, submission, and completion paths needed to run real Vulkan workloads…

Optimizing memory access in NIR

07/05/2026

A complete breakdown of Mesa’s NIR compiler detailing how it optimizes shader memory access with SSA promotion, deref analysis, copy propagation,…

BlueZ-powered Auracast broadcasting on Genio 700

05/05/2026

Collabora brought Bluetooth Auracast broadcasting to MediaTek Genio 700 for Embedded World 2026. Here's the complete, fully Open Source…

Making the invisible audible: Building an OpenXR experience for ocean protection

22/04/2026

Using our XR expertise, Collabora created a standalone XR experience for our 1% for the Planet partner, SOMAR, to showcase the direct impact…

Bringing BitNet to ExecuTorch via Vulkan

17/04/2026

BitNet-style ternary brings LLM inference to ExecuTorch via its Vulkan backend, enabling much smaller, bandwidth-efficient models with portable…

Open Since 2005 logo

Our website only uses a strictly necessary session cookie provided by our CMS system. To find out more please follow this link.

Collabora Limited © 2005-2026. All rights reserved. Privacy Notice. Sitemap.