Bluetooth Failed on Colibri iMx6ULL

Hi,
I flashed a Boot2Qt image to my Colibri iMX6ULL module using easy installer. I tried to get Bluetooth up running and got this error:

root@b2qt-colibri-imx6ull:~# systemctl start bluetooth.service
root@b2qt-colibri-imx6ull:~#
root@b2qt-colibri-imx6ull:~# [ 83.149767] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 83.158387] Bluetooth: BNEP socket layer initialized

root@b2qt-colibri-imx6ull:~# connmanctl enable bluetooth
bluetooth is not available

Then I tried to integrate Qt 6.7.2 into Linux BSP 6 in Yocto Project with instructions described here. I got similar error:

root@colibri-imx6ull-06487554:~# systemctl start bluetooth.service
root@colibri-imx6ull-06487554:~# connmanctl enable bluetooth
bluetooth is not available

Bluetooth was working just fine on a image built with Linux BSP 5 and Qt5. Any idea of what’s causing the error? This is very urgent. Thank you.

William

Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


Hello William,

I’m sorry to hear about the Bluetooth issues you’re experiencing with your Colibri iMX6ULL module. Let’s go through some steps to help resolve this:

  1. Verify Hardware Compatibility: Ensure your module has integrated Bluetooth hardware or that you’re using a compatible external Bluetooth module.

  2. Check Bluetooth Service Status:

    • Run systemctl status bluetooth.service to confirm the service is active. If it’s not running, use journalctl -u bluetooth.service to check for errors.
  3. Driver and Firmware Verification:

    • Make sure the necessary Bluetooth drivers and firmware are included in your BSP. You might need to customize your Yocto build to include these if they’re missing.
    • Verify that Bluetooth support is enabled in the kernel configuration.
  4. Use Diagnostic Tools:

    • Use hciconfig to check the status of Bluetooth devices. If no devices are listed, there might be an issue with hardware detection or drivers.
  5. ConnMan Configuration:

    • Ensure ConnMan is configured to manage Bluetooth connections. You may need to adjust settings or restart the service.
  6. Review BSP 6 Changes:

    • Since Bluetooth worked with BSP 5, review any changes in BSP 6 that might affect Bluetooth, such as updates to the BlueZ stack or kernel modules.

By following these steps, you should be able to diagnose and resolve the Bluetooth issue. I hope this helps, and please feel free to reach out if you have further questions.

Best regards,
Toradex AI Assistant

Please, also check if these links can help you solve your problem:

How to use bluetooth in b2qt image.

Below is the log following AI’s troubleshooting steps:

root@b2qt-colibri-imx6ull:~# systemctl status bluetooth.service
â bluetooth.service - Bluetooth service
Loaded: loaded (;;file://b2qt-colibri-imx6ull/lib/systemd/system/bluetooth.service/lib/systemd/system/bluetooth.service;;; enabled; vendor preset: enabled)
Active: active (running) since Fri 2024-12-20 23:45:33 UTC; 1min 31s ago
Docs: ;;man:bluetoothd(8)man:bluetoothd(8);;
Main PID: 534 (bluetoothd)
Status: “Running”
CGroup: /system.slice/bluetooth.service
ââ 534 /usr/libexec/bluetooth/bluetoothd

Dec 20 23:45:32 b2qt-colibri-imx6ull systemd[1]: Starting Bluetooth service…
Dec 20 23:45:32 b2qt-colibri-imx6ull systemd[534]: ConfigurationDirectory ‘bluetooth’ already exists but the mode is different. (File system: 755 ConfigurationDirectoryMode: 555)
Dec 20 23:45:33 b2qt-colibri-imx6ull systemd[1]: Started Bluetooth service.
root@b2qt-colibri-imx6ull:~# hciconfig
root@b2qt-colibri-imx6ull:~#
root@b2qt-colibri-imx6ull:~# rfcomm bind 0 24:6F:28:41:4B:C2
Can’t open RFCOMM control socket: Protocol not supported
root@b2qt-colibri-imx6ull:~#
root@b2qt-colibri-imx6ull:~# connmanctl enable bluetooth
bluetooth is not available

root@b2qt-colibri-imx6ull:~# journalctl -u bluetooth.service
Dec 20 23:45:32 b2qt-colibri-imx6ull systemd[1]: Starting Bluetooth service…
Dec 20 23:45:32 b2qt-colibri-imx6ull systemd[534]: ConfigurationDirectory ‘bluetooth’ already exists but the mode is different. (File system: 755 ConfigurationDirectoryMode: 555)
Dec 20 23:45:33 b2qt-colibri-imx6ull systemd[1]: Started Bluetooth service.

root@b2qt-colibri-imx6ull:~# connmanctl enable bluetooth
bluetooth is not available

I still could not figure out the issues here.

There are some issues in kernel bootup of boot2qt. Here is the log:
[13.535835] imx-sdma 20ec000.dma-controller: loaded firmware 3.5

[ 14.507242] btmrvl_sdio mmc1:0001:2: Direct firmware load for mrvl/sdsd8997_combo_v4.bin failed with error -2

[ 14.572175] Bluetooth: request_firmware(firmware) failed, error code = -2

[ 14.582408] Bluetooth: Failed to download firmware!

[ 14.590605] Bluetooth: Downloading firmware failed!

[ 15.037305] r8152 1-1.4:1.0: Direct firmware load for rtl_nic/rtl8153a-3.fw failed with error -2

[ 15.257963] r8152 1-1.4:1.0: unable to load firmware patch rtl_nic/rtl8153a-3.fw (-2)

[ 16.071276] mwifiex_sdio mmc1:0001:1: Direct firmware load for mrvl/sdsd8997_combo_v4.bin failed with error -2

[ 16.294411] mwifiex_sdio mmc1:0001:1: Failed to get firmware mrvl/sdsd8997_combo_v4.bin

The Boot2Qt image you are referring to is quite old. Have you tried the latest one?
One more question – are you using the correct DTB file?

Quite old? I believe the Boot2Qt image I was referring to is for Qt 6.7.2 released in 2024.Right?
Yes, I have tried the 6.8.0 image (the latest one?). It has same Bluetooth issue.

I have fixed the Bluetooth issue in the image I built with BSP 6 in Yocto project. Right now the only issue I have is in the Boot2Qt image.

Which exact DTB file are you using when booting that Boot2Qt image?

I don’t know. I did not make any changes on the downloaded image. But Bluetooth should work with any DTB I use. right?

I was using Iris V2.0B board for the evaluation.

Thank you for the information about your carrier board.
Could you please specify which DTB files you are using when booting the Linux kernel?
The Boot2Qt image includes 8 different DTB files, and the issue you are experiencing may be related to the use of an inappropriate DTB file.

u-boot-initial-env (5.3 KB)

Attached is the u-boot environment initialization file that came with the download. It seems it’s “imx6ull-colibri-eval-v3.dtb” file that’s been used. Right?

Yes, and you can double-check it by examining the boot log. For your case, you need to set the fdtfile variable either to imx6ull-colibri-wifi-iris.dtb or imx6ull-colibri-wifi-iris-v2.dtb, depending on the version of the Iris board you are using.

Below is “dtb” section of the image.json file:
“name”: “dtb”,
“content”: {
“rawfiles”: [
{
“filename”: “imx6ull-colibri-eval-v3.dtb”,
“product_ids”: “0036”
},
{
“filename”: “imx6ull-colibri-wifi-eval-v3.dtb”,
“product_ids”: “0040”
},
{
“filename”: “imx6ull-colibri-eval-v3.dtb”,
“product_ids”: “0044”
},
{
“filename”: “imx6ull-colibri-wifi-eval-v3.dtb”,
“product_ids”: “0045”
}
]

Should I add an entry here for iris or iris-v2 dtb file? If so, how should I do that?
Thank you

Actually, it’s not a Device Tree issue but rather the absence of the package called linux-firmware-sd8887. You should add that to the MACHINE_FIRMWARE variable to build a Boot2Qt image with proper Bluetooth support

Hi @wjzhang ,

Any update here?

Thanks for checking back with me.
Unfortunately I am still having the Bluetooth issue after adding “linux-firmware-sd8887” to the MACHINE_FIRMWARE variable. See the log below:

root@b2qt-colibri-imx6ull:~# dmesg |grep error
[ 3.994719] gpio-keys: probe of gpio-keys failed with error -16
[ 15.868905] btmrvl_sdio mmc1:0001:2: Direct firmware load for mrvl/sdsd8997_combo_v4.bin failed with error -2
[ 15.997657] Bluetooth: request_firmware(firmware) failed, error code = -2
[ 17.898566] mwifiex_sdio mmc1:0001:1: Direct firmware load for mrvl/sdsd8997_combo_v4.bin failed with error -2
[ 21.929649] I/O error, dev mtdblock0, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2
[ 21.948776] I/O error, dev mtdblock0, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 21.964042] Buffer I/O error on dev mtdblock0, logical block 0, async page read
root@b2qt-colibri-imx6ull:~# systemctl start bluetooth.service
root@b2qt-colibri-imx6ull:~# [ 89.192668] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 89.201379] Bluetooth: BNEP socket layer initialized

root@b2qt-colibri-imx6ull:~# connmanctl enable bluetooth
bluetooth is not available
root@b2qt-colibri-imx6ull:~#
root@b2qt-colibri-imx6ull:~# dmesg |grep Bluetooth
[ 0.384695] Bluetooth: Core ver 2.22
[ 0.384961] Bluetooth: HCI device and connection manager initialized
[ 0.385030] Bluetooth: HCI socket layer initialized
[ 0.385085] Bluetooth: L2CAP socket layer initialized
[ 0.385170] Bluetooth: SCO socket layer initialized
[ 2.536650] Bluetooth: HCI UART driver ver 2.3
[ 2.545950] Bluetooth: HCI UART protocol H4 registered
[ 2.555951] Bluetooth: HCI UART protocol LL registered
[ 15.662707] Bluetooth: vendor=0x2df, device=0x9142, class=255, fn=2
[ 15.997657] Bluetooth: request_firmware(firmware) failed, error code = -2
[ 16.007873] Bluetooth: Failed to download firmware!
[ 16.015962] Bluetooth: Downloading firmware failed!
[ 89.192668] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 89.201379] Bluetooth: BNEP socket layer initialized

Hi @wjzhang

It’s interesting that the firmware load error does not explicitly say “file not found”. Can you confirm if the /lib/firmware/mrvl/sdsd8997_combo_v4.bin file exists in your build?

Can you run tdx-info on your board and provide the output?

Can you share more details about your build? What branch of the manifest are you using? How exactly are you checking everything out and building? I’m not terribly familiar with boot2qt and would like to setup an environment identical to yours.

Drew

Hi Drew,

I see “/lib/firmware/mrvl/sd8887_uapsta.bin” file, not “/lib/firmware/mrvl/sdsd8997_combo_v4.bin” file.

“tdx-info” command is not available in the boot2qt image I built.

I was following this article to build the b2qt-embedded-qt6-image with manifest set to be “toradex/v6.7.2.xml”

I don’t have access the the build host machine at this moment and will upload the local.conf file later.

Thank you.
William

Attached please find the configuration file.
local.conf (14.2 KB)

Great. Thanks for those details. I’ll try to run a build here and see what I can find. Hopefully I’ll have something for you tomorrow.

Drew