# BCM20702A0 bluetooth dongle not working



## andrewschools (Feb 26, 2018)

Hello -

Warning: I'm new to FreeBSD.  I've looked at a lot of posts and cannot figure this out.  I have done some debugging with the code to realize that it doesn't seem to pass the function call 
	
	



```
usbd_lookup_id_by_uaa
```
 in /usr/src/netgraph/bluetooth/drivers/ubt/ng_ubt.c.  But to further debug, I need some help understanding how to get the object files I complied successfully in /usr/src/sys/modules/usb/usb/ to be linked when compiling this file.  But I believe that is a separate post.

Anyway, I'm trying to debug why my Bluetooth dongle isn't picked up by the `ng_ubt` driver.  If I run `usbconfig` is shows it's being picked up by the `ugen` driver:


```
$ sudo usbconfig
ugen2.1: <0x1022 XHCI root HUB> at usbus2, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen0.1: <0x1022 XHCI root HUB> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen1.1: <0x1b21 XHCI root HUB> at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen2.2: <Razer Razer BlackWidow Ultimate 2016> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (500mA)
ugen0.2: <Logitech USB Receiver> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (98mA)
ugen0.3: <Broadcom Corp BCM20702A0> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (0mA)
ugen0.4: <Generic Mass Storage Device> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (100mA)
```

My /boot/loader.conf file looks like this:


```
kern.vty=vt
cuse4bsd_load="YES"
ng_ubt_load="YES"
```

And my /etc/rc.conf looks like this:


```
hostname=""
sshd_enable="YES"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="AUTO"

ifconfig_igb0="DHCP"

dbus_enable="YES"
hald_enable="YES"
#slim_enable="YES"
linux_enable="YES"
nvidia_load="YES"
moused_enable="YES"
webcamd_enable="YES"
kld_list="nvidia nvidia-modeset"
nvidia_name="nvidia"
nvidia_modeset_name="nvidia-modeset"
gnome_enable="YES"
```

If I plug-in the device, and do a `dmesg`, this is what I see:


```
ugen0.3: <Broadcom Corp BCM20702A0> at usbus0
```

It is my assumption that this hardware is supported by reading this comment in /usr/src/netgraph/bluetooth/drivers/ubt/ng_ubt.c 


```
425 /* List of supported bluetooth devices */
426 static const STRUCT_USB_HOST_ID ubt_devs[] =
427 {
428         /* Generic Bluetooth class devices */
429         { USB_IFACE_CLASS(UDCLASS_WIRELESS),
430           USB_IFACE_SUBCLASS(UDSUBCLASS_RF),
431           USB_IFACE_PROTOCOL(UDPROTO_BLUETOOTH) },
432
433         /* AVM USB Bluetooth-Adapter BlueFritz! v2.0 */
434         { USB_VPI(USB_VENDOR_AVM, 0x3800, 0) },
435
436         /* Broadcom USB dongles, mostly BCM20702 and BCM20702A0 */
437         { USB_VENDOR(USB_VENDOR_BROADCOM),
438           USB_IFACE_CLASS(UICLASS_VENDOR),
439           USB_IFACE_SUBCLASS(UDSUBCLASS_RF),
440           USB_IFACE_PROTOCOL(UDPROTO_BLUETOOTH) },
```

Thanks!


----------



## Snurg (Feb 26, 2018)

Don't waste time with Bluetooth on FreeBSD.
Only 1.1 is supported, maybe some 2.0 also.

And that also only applies to keyboard/mice. Audio for example is not supported.
The manual pages and even the source code comments are misleading, as they make one believe that it works.

Only very very old bluetooth hardware gets recognized:
Look what I get when I put in an AVM BlueFritz 2.0 and then a BlueFritz 1.0 :
Doesn't it look quite broken? 


```
ugen1.2: <Bluetooth Device Bluetooth Device> at usbus1
ubt0 on uhub4
ubt0: <Bluetooth Device Bluetooth Device, rev 1.10/15.00, addr 2> on usbus1
WARNING: attempt to domain_add(bluetooth) after domainfinalize()
WARNING: attempt to domain_add(netgraph) after domainfinalize()
ubt0: ubt_bulk_read_callback:977: bulk-in transfer failed: USB_ERR_IOERROR
ubt0: ubt_intr_read_callback:878: interrupt transfer failed: USB_ERR_IOERROR
ugen1.2: <Bluetooth Device Bluetooth Device> at usbus1 (disconnected)
ubt0: at uhub4, port 2, addr 2 (disconnected)
ubt0: detached
ugen1.2: <AVM Berlin Bluetooth Device> at usbus1
ugen1.2: <AVM Berlin Bluetooth Device> at usbus1 (disconnected)
```

Just out of curiosity, because playing with Linux 4.14, I'm going to look whether I get the BlueFritz work with my headphones.


----------



## andrewschools (Feb 26, 2018)

Thanks, that's good to know.


----------



## Neville (Nov 22, 2018)

Sorry to bump this old thread, but Bluetooth at least up to version 4.0 is supported in FreeBSD. I'm using a 4.0 dongle to send and receive files to my Android phone. andrewschools, that device you have should work. 
I'm using a CSR8510 A10 and it works fine.


----------

