Enable Bluetooth?

I just got a new AI board and wanted to play around with the bluetooth, but when I launch bluetoothctl, the list command says no controllers found.

Is there any information out there on setting up bluetooth on this board? I have google’d everything I could think of with no avail. I have run systemctl status bluetooth and there are no issues, am I missing something?

I haven’t yet accessed the Wifi or Bluetooth capabilities on the board but am currently investigating the same.

The scripts distributed with the debian images are built for the WiLink 1835 module found in the BeagleBone Black Wireless board (http://www.ti.com/product/WL1835MOD). See the bb-wl18xx-firmware package and associated files.

The BBAI board uses an AzureWave AW-CM256SM module instead.

https://github.com/beagleboard/beaglebone-ai/wiki/System-Reference-Manual#69-wireless-communication-80211-ac--bluetooth-azurewave-aw-cm256sm

The AzureWave site doesn’t mention this particular module and has no software support information. A leaked copy of their product documentation has hardware details:
https://storage.googleapis.com/wzukusers/user-26561200/documents/5b7d0fe3c3f29Ct6k0QI/AW-CM256SM_DS_Rev%2015_CYW.pdf

The AW documentation says this module is based on the CYW43455 chipset. There may be helpful resources here: https://community.cypress.com/community/linux

Additionally, it appears there’s a bb-bbai-firmware package that I’ve successfully enabled the wlan interface with but no bluetooth yet. Even though the package claims to support bluetooth.

$ dpkg -s bb-bbai-firmware
Package: bb-bbai-firmware
Status: install ok installed
Priority: extra
Section: misc
Installed-Size: 993
Maintainer: Robert Nelson robertcnelson@gmail.com
Architecture: all
Version: 1.20190803.2-0rcnee0~buster+20190803
Pre-Depends: firmware-brcm80211, bb-wl18xx-firmware
Description: beagleboard.org bbai firmware
bbai bluetooth firmware

$ dpkg -L bb-bbai-firmware
/.
/lib
/lib/firmware
/lib/firmware/brcm
/lib/firmware/brcm/brcmfmac43455-sdio.beagleboard.org,am5729-beagleboneai.txt
/lib/firmware/brcm/brcmfmac43455-sdio.clm_blob
/lib/firmware/brcm/brcmfmac43455-sdio_am5729-beagleboneai.bin
/lib/firmware/brcm/fw_bcm43455c0_ag.bin
/lib/systemd
/lib/systemd/system
/lib/systemd/system/bb-bbai-tether.service
/usr
/usr/bin
/usr/bin/bb-bbai-tether
/usr/share
/usr/share/doc
/usr/share/doc/bb-bbai-firmware
/usr/share/doc/bb-bbai-firmware/changelog.Debian.gz

$ dmesg | grep brcm
[ 8.464243] brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43455-sdio.bin for chip 0x004345(17221) rev 0x000006
[ 8.651023] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Mar 1 2015 07:29:38 version 7.45.18 (r538002) FWID 01-6a2c8ad4

$ ip link show dev wlan0
5: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 80:91:33:4a:43:6d brd ff:ff:ff:ff:ff:ff

$ hcitool dev
Devices:

One more followup. No solution yet, but I can confirm the presence of the bluetooth hardware.

$ udevadm info /sys/bus/sdio/devices/*
P: /devices/platform/44000000.ocp/480d1000.mmc/mmc_host/mmc2/mmc2:0001/mmc2:0001:1
L: 0
E: DEVPATH=/devices/platform/44000000.ocp/480d1000.mmc/mmc_host/mmc2/mmc2:0001/mmc2:0001:1
E: DRIVER=brcmfmac
E: OF_NAME=wifi
E: OF_FULLNAME=/ocp/mmc@480d1000/wifi@1
E: OF_COMPATIBLE_0=brcm,bcm4329-fmac
E: OF_COMPATIBLE_N=1
E: SDIO_CLASS=00
E: SDIO_ID=02D0:A9BF
E: MODALIAS=sdio:c00v02D0dA9BF
E: SUBSYSTEM=sdio
E: USEC_INITIALIZED=6733035
E: ID_VENDOR_FROM_DATABASE=Broadcom Corp.
E: ID_SDIO_CLASS_FROM_DATABASE=Non-standard SDIO interface

P: /devices/platform/44000000.ocp/480d1000.mmc/mmc_host/mmc2/mmc2:0001/mmc2:0001:2
L: 0
E: DEVPATH=/devices/platform/44000000.ocp/480d1000.mmc/mmc_host/mmc2/mmc2:0001/mmc2:0001:2
E: DRIVER=brcmfmac
E: SDIO_CLASS=00
E: SDIO_ID=02D0:A9BF
E: MODALIAS=sdio:c00v02D0dA9BF
E: SUBSYSTEM=sdio
E: USEC_INITIALIZED=6756368
E: ID_VENDOR_FROM_DATABASE=Broadcom Corp.
E: ID_SDIO_CLASS_FROM_DATABASE=Non-standard SDIO interface

P: /devices/platform/44000000.ocp/480d1000.mmc/mmc_host/mmc2/mmc2:0001/mmc2:0001:3
L: 0
E: DEVPATH=/devices/platform/44000000.ocp/480d1000.mmc/mmc_host/mmc2/mmc2:0001/mmc2:0001:3
E: DRIVER=btsdio
E: SDIO_CLASS=02
E: SDIO_ID=02D0:A9BF
E: MODALIAS=sdio:c02v02D0dA9BF
E: SUBSYSTEM=sdio
E: USEC_INITIALIZED=6730172
E: ID_VENDOR_FROM_DATABASE=Broadcom Corp.
E: ID_SDIO_CLASS_FROM_DATABASE=Bluetooth Type-A standard interface

There are some BBAI related Bluetooth scripts from https://github.com/RobertCNelson/boot-scripts/tree/master/boot under /opt/scripts/boot on the debian images.

And there’s an hci0 interface listed in hciconfig but results in an error if you try to enable it. It’s also missing a MAC address:

$ ls -l /sys/class/bluetooth/hci0
lrwxrwxrwx 1 root root 0 Jan 7 20:03 /sys/class/bluetooth/hci0 → …/…/devices/platform/44000000.ocp/480d1000.mmc/mmc_host/mmc2/mmc2:0001/mmc2:0001:3/bluetooth/hci0

$ hciconfig
hci0: Type: Primary Bus: SDIO
BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0
DOWN
RX bytes:0 acl:0 sco:0 events:0 errors:0
TX bytes:0 acl:0 sco:0 commands:0 errors:0

$ sudo hciconfig hci0 up
Can’t init device hci0: Input/output error (5)

I’ve seen example hciattach commands for raspberry pi boards with similar hardware, but I haven’t found one that helps on the BBAI. I’m hoping someone else can chime in. I plan to test with other stock debian images from the beagleboard site, as I’ve been using customized images. To determine if this is a kernel version issue or something I broke.

Just for reference, the official site for the Linux driver appears to be: https://wireless.wiki.kernel.org/en/users/Drivers/brcm80211 (this is for the mrcmfmac driver)

My Linux laptop has Broadcom hardware for WiFi and Bluetooth, it often needs firmware downloaded which I have to do over wired Ethernet.

My dmesg shows no “brcm” lines

The wlan1 is working and I can enable Bluetooth from the GUI

hcitool dev shows no devices

My laptop has directory /lib/firmware/brcm/ with lots of binary files and some Broadcom files in /lib/firmware/BCM434*.hcd

dmesg shows
[] Bluetooth: hci0: BCM: chip id 70
[] Bluetooth: hci0: BCM43142A

[] Bluetooth: hci0: BCM43142A0 Generic USB Class 2 NonUHE @ 20 MHz

I hope this gives you a clue to solve your problem. My BBAI WiFi seems to just work, not tried Bluetooth.

Yeah, I am seeing the same issue. i tried installing a newer version of bluez but that did not make a diff.

There is a script that seems like it is intended to enable Bluetooth on the BBs but there is nothing listed for the BBAI.

The script is called bb-wl18xx-bluetooth.

Inside it does a check for the type of board and running manually this shows:

$ cat /proc/device-tree/model | sed “s/ /_/g” | tr -d ‘\000’
BeagleBoard.org_BeagleBone_AI

There is no option for BBAI in the script so it just will disable the BT.

Cheers,

Jon

Yeah, I am seeing the same issue. i tried installing a newer version of bluez but that did not make a diff.

There is a script that seems like it is intended to enable Bluetooth on the BBs but there is nothing listed for the BBAI.

The script is called bb-wl18xx-bluetooth.

Well, the "bb-wl18xx-bluetooth" script is on it's way out, it served a
purpose to replace an ancient tool from ti called "uim". This "uim"
tool had one purpose, load the bluetooth firmware on the wl18xx,
configure the serial port and enable bluetooth. Well things change in
10 years, the kernel is now capable of loading the wl18xx firmware and
initializing the bluetooth..

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/arch/arm/boot/dts/am335x-boneblack-wireless.dts?id=c2498af5c036ee72e0a0f4247770cab7fd1f34b5

Inside it does a check for the type of board and running manually this shows:

$ cat /proc/device-tree/model | sed "s/ /_/g" | tr -d '\000'
BeagleBoard.org_BeagleBone_AI

There is no option for BBAI in the script so it just will disable the BT.

Cheers,

Regards,

Should the bb-bbai-firmware package work to enable Bluetooth on the BBAI (not the BBB)?

See my previous posts in this thread for details but I can’t get it to function. For now I’m using a USB bluetooth dongle as an alternative.

bb-bbai-firmware just installs the firmware for the bbai, i thought it
worked thru bluetoothctl, it's been a few months since i looked at it.

Regards,

Sorry to dig this up again, but has this been fixed? I am seeing the same issue with the latest image , “am57xx-debian-10.3-iot-tidl-armhf-2020-04-06-6gb.img.xz” where the bluetooth device does not appear to be working.

The WiFi is working but not the bluetooth device.

debian$ hciconfig hci0: Type: Primary Bus: SDIO BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0 DOWN RX bytes:0 acl:0 sco:0 events:0 errors:0 TX bytes:0 acl:0 sco:0 commands:0 errors:0

`
$ sudo hcitool dev
Devices:

$ sudo hcitool lescan
Could not open device: No such device

`

`
$ dmesg |grep -i brcm
[ 22.472541] brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43455-sdio.bin for chip 0x004345(17221) rev 0x000006
[ 22.474228] usbcore: registered new interface driver brcmfmac
[ 22.816956] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Mar 1 2015 07:29:38 version 7.45.18 (r538002) FWID 01-6a2c8ad4

`

`
$ dmesg |grep -i blue
[ 24.843545] Bluetooth: Core ver 2.22
[ 24.843753] Bluetooth: HCI device and connection manager initialized
[ 24.849439] Bluetooth: HCI socket layer initialized
[ 24.849474] Bluetooth: L2CAP socket layer initialized
[ 24.849594] Bluetooth: SCO socket layer initialized
[ 24.923314] Bluetooth: Generic Bluetooth SDIO driver ver 0.1
[ 30.630971] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 30.630993] Bluetooth: BNEP filters: protocol multicast
[ 30.631034] Bluetooth: BNEP socket layer initialized

`

Side Note: At BeagleBoard.og, the 10.3 IoT TiDL image is listed as an 8Gb image but the file shows 6gb
https://beagleboard.org/latest-images

“AM5729 Debian 10.3 2020-04-06 8GB SD IoT TIDL”

Cheers,

Jon

I moved to an external USB bluetooth device as a workaround. I would like to see a solution but couldn’t afford the time to investigate further.

Yeah, an external BT device might be the solution but if the BT/BLE feature is not support on the BBAI, then it should be stated as such and listed as WiFi only.

I’ve tried a few more things but still I can’t get it to work or even show an address.

$ sudo modprobe hci_uart debian@beaglebone:~$ sudo lsmod |grep hci hci_uart 69632 0 btqca 16384 1 hci_uart bluetooth 548864 11 btsdio,hci_uart,btqca,bnep

systemctl enable bluetooth.service systemctl start bluetooth.service

I am not sure why ‘hciuart.service’ is missing:

`

$debian@beaglebone:~$ sudo systemctl status hciuart.service
Unit hciuart.service could not be found

$ sudo ls /lib/systemd/system/hciuart.service
ls: cannot access ‘/lib/systemd/system/hciuart.service’: No such file or directory
`

debian@beaglebone:~$ sudo lsmod |grep -i sdio btsdio 16384 0 bluetooth 548864 9 btsdio,bnep

This is what I see from ‘dmesg’

`

debian@beaglebone:~$ dmesg |grep -Ei ‘blue|firm’
[ 23.488304] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Mar 1 2015 07:29:38 version 7.45.18 (r538002) FWID 01-6a2c8ad4
[ 25.046041] vpe 489d0000.vpe: loading firmware vpdma-1b8.bin
[ 25.736322] Bluetooth: Core ver 2.22
[ 25.736564] Bluetooth: HCI device and connection manager initialized
[ 25.736605] Bluetooth: HCI socket layer initialized
[ 25.736636] Bluetooth: L2CAP socket layer initialized
[ 25.736745] Bluetooth: SCO socket layer initialized
[ 25.790364] Bluetooth: Generic Bluetooth SDIO driver ver 0.1
[ 30.510745] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 30.510768] Bluetooth: BNEP filters: protocol multicast
[ 30.510807] Bluetooth: BNEP socket layer initialized
[ 1535.224971] Bluetooth: HCI UART driver ver 2.3
[ 1535.224998] Bluetooth: HCI UART protocol H4 registered
[ 1535.230749] Bluetooth: HCI UART protocol LL registered
[ 1535.230779] Bluetooth: HCI UART protocol ATH3K registered
[ 1535.230803] Bluetooth: HCI UART protocol Three-wire (H5) registered
[ 1535.230821] Bluetooth: HCI UART protocol QCA registered

`

Still, not working:

`

$ sudo hciconfig -a
hci0: Type: Primary Bus: SDIO
BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0
DOWN
RX bytes:0 acl:0 sco:0 events:0 errors:0
TX bytes:0 acl:0 sco:0 commands:0 errors:0
Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Packet type: DM1 DH1 HV1
Link policy:
Link mode: SLAVE ACCEPT

`

debian@beaglebone:~$ sudo bluetoothd -d -n bluetoothd[1997]: Bluetooth daemon 5.50 bluetoothd[1997]: src/main.c:parse_config() parsing /etc/bluetooth/main.conf bluetoothd[1997]: src/main.c:parse_config() Key file does not have key “DiscoverableTimeout” in group “General” bluetoothd[1997]: src/main.c:parse_config() Key file does not have key “PairableTimeout” in group “General” bluetoothd[1997]: src/main.c:parse_config() Key file does not have key “Privacy” in group “General” bluetoothd[1997]: src/main.c:parse_config() Key file does not have key “Name” in group “General” bluetoothd[1997]: src/main.c:parse_config() class=0x020100 bluetoothd[1997]: src/main.c:parse_config() Key file does not have key “DeviceID” in group “General” bluetoothd[1997]: src/main.c:parse_config() Key file does not have key “ReverseServiceDiscovery” in group “General” bluetoothd[1997]: src/main.c:parse_config() Key file does not have key “MinEncKeySize” in group “GATT” D-Bus setup failed: Name already in use bluetoothd[1997]: Unable to get on D-Bus

debian@beaglebone:~$ sudo hciconfig hci0 up Can't init device hci0: Input/output error (5)

debian@beaglebone:~$ sudo bluetoothctl Agent registered [bluetooth]# list [bluetooth]# show No default controller available [bluetooth]# power on No default controller available

From what I can gather, this is the BT device on the BBAI but I am not sure where to get a driver for it.
https://deviwiki.com/wiki/AzureWave_AW-CM256SM

I’m not sure what else to try.

Cheers,

Jon

Sorry to dig this up but I am having the same problem as jonn and Bryan with a BBAI.
Has anyone found a solution, in the meantime?

Thanks!!

Hi, have tou found the solution to enabling bluetooth in the BBAI ? Facing the same issues :sweat_smile:

Thank you!
Sruthi

Hi Sruthi,

not really. I circumvented the problem by adding an external dongle. Not efficient but it works.

Best,
Michele

Can you specify what dongle you have used?