# Verify functionality of Fluoride stack

Source: [https://docs.qualcomm.com/doc/80-70017-13/topic/bluetooth_usecases.html](https://docs.qualcomm.com/doc/80-70017-13/topic/bluetooth_usecases.html)

Bluetooth Fluoride stack supports customization, and provides advanced features for
            better performance and user experience.

To enable Fluoride stack on the kit, do the following:

1. Apply the following patches:
    - Patch 1:

            diff --git a/recipes-products/packagegroups/packagegroup-qcom-multimedia.bb b/recipes-products/packagegroups/packagegroup-qcom-multimedia.bb
            index ef98b0b..197724b 100644
            --- a/recipes-products/packagegroups/packagegroup-qcom-multimedia.bb
            +++ b/recipes-products/packagegroups/packagegroup-qcom-multimedia.bb
            @@ -19,6 +19,7 @@
             
             RDEPENDS:${PN}:append:qcom-custom-bsp = "\
                 packagegroup-qcom-audio \
            +    packagegroup-qcom-bluetooth \
                 packagegroup-qcom-camera \
                 packagegroup-qcom-display \
                 packagegroup-qcom-fastcv \
            Copy to clipboard
    - Patch 2:

            diff --git a/conf/machine/qcm6490-idp.conf b/conf/machine/qcm6490-idp.conf
            index 7d46667..9aae785 100644
            --- a/conf/machine/qcm6490-idp.conf
            +++ b/conf/machine/qcm6490-idp.conf
            @@ -19,14 +19,14 @@
             # Additional dtbo to overylay on top of kernel devicetree files
             KERNEL_TECH_DTBOS[qcm6490-addons-idp] = " \
                 qcm6490-graphics.dtbo qcm6490-display.dtbo \
            -    qcm6490-camera-idp.dtbo \
            +    qcm6490-camera-idp.dtbo qcm6490-bt.dtbo \
                 qcm6490-wlan-idp.dtbo qcm6490-video.dtbo \
                 qcm6490-wlan-upstream.dtbo \
                 "
             
             KERNEL_TECH_DTBOS[qcm6490-addons-idp-amoled] = " \
                 qcm6490-graphics.dtbo qcm6490-display-idp-amoled.dtbo \
            -    qcm6490-camera-idp.dtbo \
            +    qcm6490-camera-idp.dtbo qcm6490-bt.dtbo \
                 qcm6490-wlan-idp.dtbo qcm6490-video.dtbo \
                 qcm6490-wlan-upstream.dtbo \
                 "
            @@ -36,6 +36,7 @@
             KERNEL_TECH_DTBO_PROVIDERS:qcom-base-bsp = ""
             
             KERNEL_TECH_DTBO_PROVIDERS = "\
            +    btdevicetree \
                 cameradtb \
                 qcom-displaydevicetree \
                 qcom-graphicsdevicetree \
            diff --git a/conf/machine/qcs6490-rb3gen2-core-kit.conf b/conf/machine/qcs6490-rb3gen2-core-kit.conf
            index c276a38..ecb89b4 100644
            --- a/conf/machine/qcs6490-rb3gen2-core-kit.conf
            +++ b/conf/machine/qcs6490-rb3gen2-core-kit.conf
            @@ -27,15 +27,16 @@
             # Additional dtbo to overylay on top of kernel devicetree files
             KERNEL_TECH_DTBOS[qcs6490-addons-rb3gen2] = " \
                 qcm6490-graphics.dtbo qcm6490-wlan-rb3.dtbo \
            -    qcm6490-display-rb3.dtbo \
            +    qcm6490-display-rb3.dtbo qcm6490-bt.dtbo \
                 qcm6490-video.dtbo qcm6490-wlan-upstream.dtbo \
                 "
             KERNEL_TECH_DTBOS[qcs6490-addons-rb3gen2-hsp] = " \
                 qcm6490-wlan-rb3-hsp.dtbo \
            +    qcm6490-bt-rb3-hsp.dtbo \
                 "
             KERNEL_TECH_DTBOS[qcs5430-fp1-addons-rb3gen2] = " \
                 qcs5430-graphics.dtbo qcm5430-camera-rb3.dtbo \
            -    qcs5430-wlan-rb3.dtbo \
            +    qcs5430-wlan-rb3.dtbo qcm6490-bt.dtbo \
                 qcm6490-display-rb3.dtbo qcm6490-video.dtbo \
                 qcs5430-wlan-upstream.dtbo \
                 "
            @@ -43,7 +44,7 @@
                 "
             KERNEL_TECH_DTBOS[qcs5430-fp2-addons-rb3gen2] = " \
                 qcs5430-graphics.dtbo qcm5430-camera-rb3.dtbo \
            -    qcs5430-wlan-rb3.dtbo \
            +    qcs5430-wlan-rb3.dtbo qcm6490-bt.dtbo \
                 qcm6490-display-rb3.dtbo qcm6490-video.dtbo \
                 qcs5430-wlan-upstream.dtbo \
                 "
            @@ -69,6 +70,7 @@
             KERNEL_TECH_DTBO_PROVIDERS:qcom-base-bsp = ""
             
             KERNEL_TECH_DTBO_PROVIDERS = "\
            +    btdevicetree \
                 cameradtb \
                 qcom-displaydevicetree \
                 qcom-graphicsdevicetree \
            diff --git a/conf/machine/qcs6490-rb3gen2-industrial-kit.conf b/conf/machine/qcs6490-rb3gen2-industrial-kit.conf
            index 4907651..2bd7fa0 100644
            --- a/conf/machine/qcs6490-rb3gen2-industrial-kit.conf
            +++ b/conf/machine/qcs6490-rb3gen2-industrial-kit.conf
            @@ -19,6 +19,7 @@
             KERNEL_TECH_DTBO_PROVIDERS:qcom-base-bsp = ""
             
             KERNEL_TECH_DTBO_PROVIDERS = "\
            +    btdevicetree \
                 cameradtb \
                 qcom-displaydevicetree \
                 qcom-graphicsdevicetree \
            diff --git a/conf/machine/qcs6490-rb3gen2-vision-kit.conf b/conf/machine/qcs6490-rb3gen2-vision-kit.conf
            index 99773b8..48a878a 100644
            --- a/conf/machine/qcs6490-rb3gen2-vision-kit.conf
            +++ b/conf/machine/qcs6490-rb3gen2-vision-kit.conf
            @@ -31,21 +31,22 @@
             KERNEL_TECH_DTBOS[qcs6490-addons-rb3gen2-video-mezz] = " \
                 qcm6490-graphics.dtbo qcm6490-camera-rb3.dtbo \
                 qcm6490-display-rb3.dtbo qcm6490-wlan-rb3.dtbo \
            -    qcm6490-video.dtbo \
            +    qcm6490-bt.dtbo qcm6490-video.dtbo \
                 qcm6490-wlan-upstream.dtbo \
                 "
             KERNEL_TECH_DTBOS[qcs6490-addons-rb3gen2-vision-mezz] = " \
                 qcm6490-graphics.dtbo qcm6490-camera-rb3.dtbo \
                 qcm6490-display-rb3.dtbo qcm6490-wlan-rb3.dtbo \
            -    qcm6490-video.dtbo \
            +    qcm6490-bt.dtbo qcm6490-video.dtbo \
                 qcm6490-wlan-upstream.dtbo \
                 "
             KERNEL_TECH_DTBOS[qcs6490-addons-rb3gen2-vision-mezz-hsp] = " \
                 qcm6490-wlan-rb3-hsp.dtbo \
            +    qcm6490-bt-rb3-hsp.dtbo \
                 "
             KERNEL_TECH_DTBOS[qcs5430-fp1-addons-rb3gen2-vision-mezz] = " \
                 qcs5430-graphics.dtbo qcm5430-camera-rb3.dtbo \
            -    qcs5430-wlan-rb3.dtbo \
            +    qcs5430-wlan-rb3.dtbo qcm6490-bt.dtbo \
                 qcm6490-display-rb3.dtbo qcm6490-video.dtbo \
                 qcs5430-wlan-upstream.dtbo \
                 "
            @@ -53,7 +54,7 @@
                 "
             KERNEL_TECH_DTBOS[qcs5430-fp2-addons-rb3gen2-vision-mezz] = " \
                 qcs5430-graphics.dtbo qcm5430-camera-rb3.dtbo \
            -    qcs5430-wlan-rb3.dtbo \
            +    qcs5430-wlan-rb3.dtbo qcm6490-bt.dtbo \
                 qcm6490-display-rb3.dtbo qcm6490-video.dtbo \
                 qcs5430-wlan-upstream.dtbo \
                 "
            @@ -78,6 +79,7 @@
             KERNEL_TECH_DTBO_PROVIDERS:qcom-base-bsp = ""
             
             KERNEL_TECH_DTBO_PROVIDERS = "\
            +    btdevicetree \
                 cameradtb \
                 qcom-displaydevicetree \
                 qcom-graphicsdevicetree \Copy to clipboard
2. Recompile the entire image and flash it as described in the *[Qualcomm Linux Build Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-254/introduction.html)*.

In Qualcomm Linux, the Bluetooth functionality of the Fluoride stack is verified using
            the btapp sample test application. The Bluetooth test procedures
            and use cases for each profile are demonstrated using this application. 
Note: As the
                    btapp is a command-line executable, enter your input in
                the form of commands in the SSH.

The functions of the following Bluetooth profiles are provided as menu options in the
                btapp:

- **[General Access Profile](https://docs.qualcomm.com/doc/80-70017-13/topic/gap_operation.html)**  

Bluetooth Low Energy GAP is an extension of the existing BR/EDR GAP.
- **[Serial Port Profile](https://docs.qualcomm.com/doc/80-70017-13/topic/set_up_bluetooth_in_spp.html)**  

SPP is a Bluetooth profile that enables wireless communication between devices over a         virtual serial port.
- **[General Attribute Profile](https://docs.qualcomm.com/doc/80-70017-13/topic/set_up_ble_gatt.html)**  

GATT is a service framework that uses the ATT to discover services, and to read and         write characteristic values on a peer device.
- **[Advanced Audio Distribution Profile](https://docs.qualcomm.com/doc/80-70017-13/topic/set-up-a2dp.html)**  

A2DP defines how multimedia audio can be streamed from one device to another over a         Bluetooth connection. This mechanism is also called as Bluetooth audio         streaming.
- **[Hands-Free Profile](https://docs.qualcomm.com/doc/80-70017-13/topic/set-up-hfp.html)**  

HFP defines how an audio gateway device can connect to a hands-free device for         functions like remote control and audio connection.

Last Published: Dec 26, 2024

[Previous Topic
Perform Bluetooth MAP client functions](https://docs.qualcomm.com/bundle/publicresource/80-70017-13/topics/bluez-perform-bluetooth-map-client-functions.md) [Next Topic
General Access Profile](https://docs.qualcomm.com/bundle/publicresource/80-70017-13/topics/gap_operation.md)