bluetooth: See "Simultaneous LE and BR/EDR (Controller)" devices in bluetooth chooser |
||||
Issue descriptionGoogle Chrome 55.0.2858.0 (Official Build) dev (64-bit) Platform 8798.0.0 (Official Build) dev-channel link What steps will reproduce the problem? (1) Make sure a nearby BLE beacon advertises itself as "non connectable undirected" but doesn't advertise any service UUIDs. (2) Go to https://googlechrome.github.io/samples/web-bluetooth/read-characteristic-value-changed.html (3) Click button (4) Bluetooth chooser shows up What is the expected output? Nearby BLE beacon should be visible. What do you see instead? It is not. This is because BlueZ now requires a filtered scan for getting "non connectable undirected" devices. Here's what I think we need to do there: 1. We should apply http://git.kernel.org/cgit/bluetooth/bluez.git/commit/client/main.c?id=17360a49811e4d89f66d76b8a2d187f7fca5ec8f in Chromium BlueZ (https://chromium.googlesource.com/chromiumos/third_party/bluez/+log/chromeos-5.39) 2. Chrome Web Bluetooth discovery session should always specify an empty UUID when no service UUIDs are set by developer. See btmon logs: > HCI Event: LE Meta Event (0x3e) plen 39 [hci0] 8.457128 LE Advertising Report (0x02) Num reports: 1 Event type: Non connectable undirected - ADV_NONCONN_IND (0x03) Address type: Public (0x00) Address: 5C:F3:70:77:74:39 (OUI 5C-F3-70) Data length: 27 Flags: 0x08 Simultaneous LE and BR/EDR (Controller) Name (complete): Chromebox for Meetings RSSI: -80 dBm (0xb0) @ Device Found: 5C:F3:70:77:74:39 (1) rssi -80 flags 0x0004 02 01 08 17 09 43 68 72 6f 6d 65 62 6f 78 20 66 .....Chromebox f 6f 72 20 4d 65 65 74 69 6e 67 73 or Meetings
,
Oct 28 2016
mcchou@ if we're still going to use chromeos-5.39 branch, can we apply http://git.kernel.org/cgit/bluetooth/bluez.git/commit/client/main.c?id=17360a49811e4d89f66d76b8a2d187f7fca5ec8f to https://chromium.googlesource.com/chromiumos/third_party/bluez/+log/chromeos-5.39 Thank you!
,
Oct 28 2016
,
Nov 2 2016
Hello fbeaufort, the main branch of BlueZ is on cros/chromeos-5.41 starting from 8945.0.0. We probably don't need to apply this given that we have switched to 5.41.
,
Nov 3 2016
OK so after much more diving, I've realized that the root issue is NOT the fact that BLE device is advertising "non connectable undirected". It looks like it is due to the Flag "Simultaneous LE and BR/EDR (Controller)". For info, I can see this device on macOS and Android but not on Chrome OS/Linux.
,
Nov 3 2016
Weird that flag only makes use set BR/EDR as supported, I almost sure this is due to not have a filter:
if (bdaddr_type == BDADDR_BREDR || adapter->filtered_discovery)
discoverable = true;
else
discoverable = eir_data.flags & (EIR_LIM_DISC | EIR_GEN_DISC);
ba2str(bdaddr, addr);
dev = btd_adapter_find_device(adapter, bdaddr, bdaddr_type);
if (!dev) {
/*
* If no client has requested discovery or the device is
* not marked as discoverable, then do not create new
* device objects.
*/
if (!adapter->discovery_list || !discoverable) {
eir_data_free(&eir_data);
return;
}
dev = adapter_create_device(adapter, bdaddr, bdaddr_type);
,
Nov 10 2016
In Chrome 56.0.2905.0 (Official Build) dev (64-bit), I can't reproduce this issue anymore. I think it's because Chrome OS BlueZ 5.41 branch now includes https://chromium.googlesource.com/chromiumos/third_party/bluez/+/1ca09244f3d9f755fcec81325f6f1d96d1498674%5E%21/#F0 while it didn't in BlueZ 5.39 branch |
||||
►
Sign in to add a comment |
||||
Comment 1 by scheib@chromium.org
, Oct 17 2016