# Get started with Bluetooth functionality

The Qualcomm Linux Bluetooth solution includes the BlueZ stack and sample test applications. These applications interact with the Bluetooth daemon of the BlueZ stack to run Bluetooth functions.

Qualcomm Linux supports the following sample applications for the BlueZ stack:

- bluetoothctl
- obexctl
- ofono
- evtool

The following workflow shows how to get started with verifying the Bluetooth functionality using a sample application.

![../../_images/get-started-workflow.png](data:image/png;base64,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)

The sequence to complete the workflow is as follows:

1. Set up your infrastructure as described in the [*Qualcomm Linux Build Guide*](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-254) and [*Qualcomm Linux Yocto Guide*](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-27). The [*Qualcomm Linux Build Guide*](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-254) also provides information about the common build workflows.
2. Run the sample application and verify the Bluetooth functionality as described in [Verify functionality of BlueZ stack](https://docs.qualcomm.com/doc/80-70020-13/topic/verify-bluetooth-functionality-of-bluez-stack.html#verify-bluetooth-functionality-of-bluez-stack).
3. If any issues occur, log and debug them as described in [Debug](https://docs.qualcomm.com/doc/80-70020-13/topic/bt_debugging.html#bt-debugging).

## Set the Bluetooth MAC address

By default, the factory sets the Bluetooth MAC address in the one-time programmable memory. If you want to set the Bluetooth MAC address manually, complete the following procedure.

Note

A manually set Bluetooth MAC address doesn’t persist across device reboots.

**Prerequisites**

- Enable SSH to access your host device. For instructions, see [Sign in using SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-254/how_to.html#use-ssh).
- [Switch off Bluetooth on the device.](https://docs.qualcomm.com/doc/80-70020-13/topic/bluez-perform-bluetooth-gap-functions.html#section-s3x-z1s-lcc-navyanka-08-21-24-1205-42-982)

**Procedure**

1. Run the SSH in command prompt using the following command:

ssh root@<device_IP_address>
        Copy to clipboard

    **Example**

    If the IP address of the device is `10.92.160.222`, run the following command:

ssh root@10.92.160.222
        Copy to clipboard
2. Connect to the SSH by entering the following password:

oelinux123
        Copy to clipboard
3. Open the Bluetooth management tool and set the Bluetooth address by running the following command:

btmgmt public-addr <bt_address>
        Copy to clipboard

    For example, to set the Bluetooth address of the device as `22:22:9B:2C:79:1E`, run the following command:

btmgmt public-addr 22:22:9B:2C:79:1E
        Copy to clipboard

    **Sample output**

sh-5.1# btmgmt public-addr 22:22:9B:2C:79:1E
        hci0 Set Public Address complete, options:
        sh-5.1# hciconfig
        hci0:     Type: Primary Bus: UART
                 BD Address: 22:22:9B:2C:79:1E ACL MTU: 1024:7 SCO MTU: 240:8
                 DOWN
                 RX bytes: 7763 acl:0 sco:0 events:364 errors:0
                 TX bytes: 938685 acl:0 sco:0 commands:4004 errors:0
        Copy to clipboard

## Source code location

The following table lists the source code location of Bluetooth components such as the stack, sample test applications, and drivers.

| Component | Source code location |
| --- | --- |
| bluetoothctl | [https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/tools](https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/tools) |
| obexctl | [https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/tools](https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/tools) |
| ofono | [https://git.kernel.org/pub/scm/network/ofono/ofono.git](https://git.kernel.org/pub/scm/network/ofono/ofono.git) |
| BlueZ stack | <ul class="simple"><br><li><p>The git repository for BlueZ is at: <a href="https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/" rel="noopener noreferrer" target="_blank" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/')">https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/</a></p></li><br><li><p>You can download the stack at: <a href="https://mirrors.edge.kernel.org/pub/linux/bluetooth/bluez-5.65.tar.gz" rel="noopener noreferrer" target="_blank" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://mirrors.edge.kernel.org/pub/linux/bluetooth/bluez-5.65.tar.gz')">https://mirrors.edge.kernel.org/pub/linux/bluetooth/bluez-5.65.tar.gz</a></p></li><br><li><p>The git repository for the Bluetooth kernel subsystem is at:</p><ul><br><li><p><a href="https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git/tree/" rel="noopener noreferrer" target="_blank" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git/tree/')">https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git/tree/</a></p></li><br><li><p><a href="https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git/tree/" rel="noopener noreferrer" target="_blank" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git/tree/')">https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git/tree/</a></p></li><br></ul><br></li><br></ul> |
| Bluetooth driver | You can download the Bluetooth driver from the following locations:<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p><a href="https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git/tree/drivers/bluetooth/hci_qca.c" rel="noopener noreferrer" target="_blank" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git/tree/drivers/bluetooth/hci_qca.c')">https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git/tree/drivers/bluetooth/hci_qca.c</a></p></li><br>> <li><p><a href="https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git/tree/drivers/bluetooth/btqca.c" rel="noopener noreferrer" target="_blank" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git/tree/drivers/bluetooth/btqca.c')">https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git/tree/drivers/bluetooth/btqca.c</a></p></li><br>> </ul> |

Last Published: Jun 26, 2025

[Previous Topic
Bluetooth overview](https://docs.qualcomm.com/bundle/publicresource/80-70020-13/topics/introduction.md) [Next Topic
Bluetooth features](https://docs.qualcomm.com/bundle/publicresource/80-70020-13/topics/bt_ft_overview.md)