# Verify functionality of Fluoride stack

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 ac0e838..281fc8a 100644
            --- a/recipes-products/packagegroups/packagegroup-qcom-multimedia.bb
            +++ b/recipes-products/packagegroups/packagegroup-qcom-multimedia.bb
            @@ -27,6 +27,7 @@ RDEPENDS:${PN} = "\
            
            RDEPENDS:${PN}:append:qcom-custom-distro = "\
                 packagegroup-qcom-audio \
            +    packagegroup-qcom-bluetooth \
                 packagegroup-qcom-fastcv \
                 packagegroup-qcom-graphics \
                 packagegroup-qcom-iot-base-utils \
            Copy to clipboard
    - Patch 2:

diff --git a/conf/machine/qcm6490-idp.conf b/conf/machine/qcm6490-idp.conf
            index a108cc07..e105f11f 100644
            --- a/conf/machine/qcm6490-idp.conf
            +++ b/conf/machine/qcm6490-idp.conf
            @@ -19,20 +19,21 @@ KERNEL_DEVICETREE:pn-linux-qcom-custom = " \
            # Additional dtbo to overylay on top of kernel devicetree files
            KERNEL_TECH_DTBOS[qcm6490-addons-idp] = " \
                 qcm6490-graphics.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-camera-idp.dtbo \
            +    qcm6490-camera-idp.dtbo qcm6490-bt.dtbo \
                 qcm6490-wlan-idp.dtbo qcm6490-video.dtbo \
                 qcm6490-wlan-upstream.dtbo \
                 "
            
            # Recipe providers of above dtbo files.
            KERNEL_TECH_DTBO_PROVIDERS = "\
            +    btdevicetree \
                 cameradtb \
                 qcom-graphicsdevicetree \
                 qcom-videodtb \
            diff --git a/conf/machine/qcs6490-rb3gen2-core-kit.conf b/conf/machine/qcs6490-rb3gen2-core-kit.conf
            index 13a842a2..63d512df 100644
            --- a/conf/machine/qcs6490-rb3gen2-core-kit.conf
            +++ b/conf/machine/qcs6490-rb3gen2-core-kit.conf
            @@ -27,14 +27,16 @@ KERNEL_DEVICETREE:pn-linux-qcom-custom = " \
            # Additional dtbo to overylay on top of kernel devicetree files
            KERNEL_TECH_DTBOS[qcs6490-addons-rb3gen2] = " \
                 qcm6490-graphics.dtbo qcm6490-wlan-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-video.dtbo \
                 qcs5430-wlan-upstream.dtbo \
                 "
            @@ -42,7 +44,7 @@ KERNEL_TECH_DTBOS[qcs5430-fp1-addons-rb3gen2-hsp] = " \
                 "
            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-video.dtbo \
                 qcs5430-wlan-upstream.dtbo \
                 "
            @@ -65,6 +67,7 @@ KERNEL_TECH_DTBOS[qcs5430-fp3-addons-rb3gen2-hsp] = " \
            
            # Recipe providers of above dtbo files.
            KERNEL_TECH_DTBO_PROVIDERS = "\
            +    btdevicetree \
                 cameradtb \
                 qcom-graphicsdevicetree \
                 qcom-videodtb \
            diff --git a/conf/machine/qcs6490-rb3gen2-industrial-kit.conf b/conf/machine/qcs6490-rb3gen2-industrial-kit.conf
            index ed71c55f..7380079f 100644
            --- a/conf/machine/qcs6490-rb3gen2-industrial-kit.conf
            +++ b/conf/machine/qcs6490-rb3gen2-industrial-kit.conf
            @@ -17,6 +17,7 @@ KERNEL_DEVICETREE:pn-linux-qcom-custom = " \
            
            # Recipe providers of above dtbo files.
            KERNEL_TECH_DTBO_PROVIDERS = "\
            +    btdevicetree \
                 cameradtb \
                 qcom-graphicsdevicetree \
                 qcom-videodtb \
            diff --git a/conf/machine/qcs6490-rb3gen2-vision-kit.conf b/conf/machine/qcs6490-rb3gen2-vision-kit.conf
            index 61237603..b5967a60 100644
            --- a/conf/machine/qcs6490-rb3gen2-vision-kit.conf
            +++ b/conf/machine/qcs6490-rb3gen2-vision-kit.conf
            @@ -31,21 +31,22 @@ KERNEL_DEVICETREE:pn-linux-qcom-custom = " \
            KERNEL_TECH_DTBOS[qcs6490-addons-rb3gen2-video-mezz] = " \
                 qcm6490-graphics.dtbo qcm6490-camera-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-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-video.dtbo \
                 qcs5430-wlan-upstream.dtbo \
                 "
            @@ -53,7 +54,7 @@ KERNEL_TECH_DTBOS[qcs5430-fp1-addons-rb3gen2-vision-mezz-hsp] = " \
                 "
            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-video.dtbo \
                 qcs5430-wlan-upstream.dtbo \
                 "
            @@ -75,6 +76,7 @@ KERNEL_TECH_DTBOS[qcs5430-fp3-addons-rb3gen2-vision-mezz-hsp] = " \
                 "
            # Recipe providers of above dtbo files.
            KERNEL_TECH_DTBO_PROVIDERS = "\
            +    btdevicetree \
                 cameradtb \
                 qcom-graphicsdevicetree \
                 qcom-videodtb \
            Copy to clipboard

Note

If the patches are not applied correctly, apply them manually.
2. Recompile the entire image and flash it as described in the [*Qualcomm Linux Build Guide*](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-254).

In Qualcomm Linux, use the **btapp** sample test application to verify the Bluetooth functionality of the Fluoride stack. 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 **btapp** provides the functions of the following Bluetooth profiles as menu options:

- [General Access Profile](https://docs.qualcomm.com/doc/80-70018-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-70018-13/topic/set_up_bluetooth_in_spp.html)
SPP is a Bluetooth profile that facilitates wireless communication between devices over a
virtual serial port.
- [General Attribute Profile](https://docs.qualcomm.com/doc/80-70018-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-70018-13/topic/set-up-a2dp.html)
A2DP defines how to stream multimedia audio 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-70018-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: Apr 02, 2025

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