Could Not Configure Bluetooth Device

I am trying to use a Bluetooth USB dongle with Colibri iMX6S module on Colibri evaluation board. I followed this article to build custom kernel and custom image (Linux Image 2.6.1).

I noticed that the configuration menu for make menuconfig command does not have Bluetooth Classic (BR/EDR) features under Bluetooth subsystem support. I also had to exclude obexftp from IMAGE_INSTALL_append in ~/oe-core/build/conf/local.conf file to build image successfully.

After flashing Linux image to the module, I followed the steps to configure the Bluetooth device as below and ended up with a device configuration error:

root@colibri-imx6:~# lsusb
Bus 001 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

root@colibri-imx6:~# systemctl enable bluetooth.service
Failed to execute operation: File exists
root@colibri-imx6:~# systemctl start bluetooth.service
root@colibri-imx6:~# hciconfig
Can't open HCI socket.: Address family not supported by protocol

I also tried to flash factory V2.6 Linux image to the module. The hciconfig command returns nothing as below.

root@colibri-imx6:~# lsusb
Bus 001 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@colibri-imx6:~# systemctl enable bluetooth.service
Failed to execute operation: File exists
root@colibri-imx6:~# systemctl start bluetooth.service
root@colibri-imx6:~# [   84.152839] Bluetooth: Core ver 2.18
[   84.164198] NET: Registered protocol family 31
[   84.168658] Bluetooth: HCI device and connection manager initialized
[   84.176531] Bluetooth: HCI socket layer initialized
[   84.181432] Bluetooth: L2CAP socket layer initialized
[   84.192563] Bluetooth: SCO socket layer initialized
[   84.217121] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   84.222449] Bluetooth: BNEP filters: protocol multicast
[   84.229364] Bluetooth: BNEP socket layer initialized

root@colibri-imx6:~# hciconfig
root@colibri-imx6:~# hciconfig hci0 up
Can't get device info: No such device

Please help to solve this issue. Thanks.

Please try with the latest image release and OpenEmbedded morty.

Just built an angstrom-lxde image with OpenEmbedded morty. Added the following to “~/oe-core/build/conf/local.conf”:

IMAGE_INSTALL_append = " bluez5 bluez-hcidump obexftp obex-data-server openobex python python-dbus python-pygobject dbus-glib"

When flashing image to the module, there is “Invalid FAT entry” error. Blow is the command log:

Colibri iMX6 # run setupdate
reading flash_blk.img
710 bytes read in 14 ms (48.8 KiB/s)
## Executing script at 12000000
reading colibri_imx6/flash_blk.img
4415 bytes read in 21 ms (205.1 KiB/s) 
## Executing script at 12000000
enter "run update" to update the entire module
Colibri iMX6 # run update
switch to partitions #1, OK
mmc0(part 1) is current device

MMC read: dev # 0, block # 138, count 1 ... 1 blocks read: OK
reading colibri_imx6/u-boot.imx-spl
364980 bytes read in 42 ms (8.3 MiB/s)
switch to partitions #1, OK
mmc0(part 1) is current device

MMC write: dev # 0, block # 138, count 713 ... 713 blocks written: OK
Fuse 0, 5:     5072
Fast boot mode already fused, no need to fuse
reading colibri_imx6/mbr.bin
512 bytes read in 16 ms (31.3 KiB/s)
switch to partitions #0, OK
mmc0(part 0) is current device

MMC write: dev # 0, block # 0, count 1 ... 1 blocks written: OK
reading colibri_imx6/boot.vfat
16777216 bytes read in 815 ms (19.6 MiB/s)
switch to partitions #0, OK
mmc0(part 0) is current device

MMC write: dev # 0, block # 8192, count 32768 ... 32768 blocks written: OK
reading colibri_imx6/uImage
Invalid FAT entry
540672 bytes read in 48 ms (10.7 MiB/s)
writing uImage
540672 bytes written
reading colibri_imx6/imx6dl-colibri-eval-v3.dtb
Invalid FAT entry
8192 bytes read in 25 ms (319.3 KiB/s)
writing imx6dl-colibri-eval-v3.dtb
8192 bytes written
reading colibri_imx6/root.ext3-100
Invalid FAT entry
** colibri_imx6/root.ext3-100 shorter than offset + len **
753664 bytes read in 67 ms (10.7 MiB/s)
switch to partitions #0, OK
mmc0(part 0) is current device

MMC write: dev # 0, block # 40960, count 1472 ... 1472 blocks written: OK
resetting ...

I was able to flash and run the downloaded V2.7 image on the module. But I have still have bluetooth configuration problem as shown below:

root@colibri-imx6:~# lsusb
Bus 001 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@colibri-imx6:~# systemctl enable bluetooth.service
root@colibri-imx6:~# systemctl start bluetooth.service
root@colibri-imx6:~# hciconfig
[  331.422080] Bluetooth: Core ver 2.20
[  331.430961] NET: Registered protocol family 31
[  331.435583] Bluetooth: HCI device and connection manager initialized
[  331.448645] Bluetooth: HCI socket layer initialized
[  331.453552] Bluetooth: L2CAP socket layer initialized
[  331.459209] Bluetooth: SCO socket layer initialized
root@colibri-imx6:~# hciconfig hci0 up
Can't get device info: No such device

That Invalid FAT entry does not ring any bell. However I would try it with another brand/make update media (e.g. SD card, USB memory stick or whatever else you were using) or maybe at least completely re-formatting the one you were using prior to re-generating it using our update script.

I re-formatted the SD card and was able to flash the image to the module. I finally realized that it is bluetooth subsystem support in kernel build menu that was not configured properly. I re-built the kernel flashed it and finally got the Bluetooth device work! I verified this in both V2.6 and V2.7 images.
Thank you, Toradex.