BCM20702A0 bluetooth dongle not working

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
Code:
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:

Code:
$ 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:

Code:
kern.vty=vt
cuse4bsd_load="YES"
ng_ubt_load="YES"

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

Code:
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:

Code:
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

Code:
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!
 
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?

Code:
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.
 
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.
 
it would appear that their trying to *know the hardware ecosystem or rather whats probably reported about it.... You specifically have to sit there and read the manufacturers manual, and then conform all hardware function to whats in and of itself, and then what BSD is expecting it to be.. so it would look like:
->BSDs_Expectations with what the hardware is supporting using the hardwares supporting functions.
|
-Then the actual Hardware Supporting Functions that are aside of but a requirement still.
The BSD Infrastructure KNOWS that the hardware exists is all its currently doing, aside of that
it has no idea what or how the hardware is going to function. But itll see it as what it is
is what its trying to do. What you would THEN do is go OH OK so all these Manuals
I See have like a Hardware Specific Set in a Revision Number like 4XXXX<-
These are all the same underlying Specification, *CORRECT, and the Driver has
to conform to all obstacles meaning all the subtle differences or vendor specific things,
maybe Dell calls something something else or wanted something done This Way,
and Not the Other.. But its still going to be LIKE the same thing... is where they probably
try to nail them all in one go as a so once'es DONE type of thing is probably saying
well this series is something you've seen to the end to so thats the area that makes
the most sense to implement something WORKING.... without the expectation of it to with
that in the KNOWING.
 
Back
Top