GATT service objects disabled in Bluez 5.39 |
|||||||
Issue descriptionGoogle Chrome 52.0.2727.0 (Official Build) canary (32-bit) Revision 99526c41079e7de62a26a9c2cb9619a78f4df60a-refs/heads/master@{#392210} Platform 8302.0.0 (Official Build) canary-channel veyron_minnie What steps will reproduce the problem? 1. Open Chrome OS Shell with [Ctrl] + [Alt] + T 2. Enter bt_console 3. Scan for nearby BLE devices, connect to one 4. Enter list-attributes What is the expected result? I should get the list of all services/characteristics/descriptors What happens instead of that? I get nothing I think this is due to the fact even though we make GattService object non experimental in https://chromium.googlesource.com/chromiumos/third_party/bluez/+/ceee66d29c9733a3ed29e9a943b85b29de621c35%5E%21/#F0, it is disabled no matter what with http://git.kernel.org/cgit/bluetooth/bluez.git/commit/?id=8e493e8416e5525042b8b4a34eb2b7084725438b (in BlueZ 5.39) The fix would be to apply a patch that reverts http://git.kernel.org/cgit/bluetooth/bluez.git/commit/?id=8e493e8416e5525042b8b4a34eb2b7084725438b For info, in about:system, I'm seeing this error: 2016-05-11T09:05:14.798878+02:00 INFO bluetoothd[1669]: GATT service objects disabled UserAgentString: Mozilla/5.0 (X11; CrOS armv7l 8302.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2727.0 Safari/537.36
,
May 11 2016
https://chromium-review.googlesource.com/#/c/344172/ is uploaded for this issue.
,
May 11 2016
,
May 11 2016
,
May 11 2016
To enable this either start with -E, probably not recommended since it would enable everything that is experimental no only GATT, or then we need something like this:
diff --git a/src/gatt-client.c b/src/gatt-client.c
index 0cbacca..4819bfe 100644
--- a/src/gatt-client.c
+++ b/src/gatt-client.c
@@ -608,21 +608,18 @@ static DBusMessage *descriptor_write_value(DBusConnection *conn,
}
static const GDBusPropertyTable descriptor_properties[] = {
- { "UUID", "s", descriptor_get_uuid, NULL, NULL,
- G_DBUS_PROPERTY_FLAG_EXPERIMENTAL },
- { "Characteristic", "o", descriptor_get_characteristic, NULL, NULL,
- G_DBUS_PROPERTY_FLAG_EXPERIMENTAL },
- { "Value", "ay", descriptor_get_value, NULL, descriptor_value_exists,
- G_DBUS_PROPERTY_FLAG_EXPERIMENTAL },
+ { "UUID", "s", descriptor_get_uuid, NULL, NULL },
+ { "Characteristic", "o", descriptor_get_characteristic, NULL, NULL },
+ { "Value", "ay", descriptor_get_value, NULL, descriptor_value_exists },
{ }
};
static const GDBusMethodTable descriptor_methods[] = {
- { GDBUS_EXPERIMENTAL_ASYNC_METHOD("ReadValue",
+ { GDBUS_ASYNC_METHOD("ReadValue",
GDBUS_ARGS({ "options", "a{sv}" }),
GDBUS_ARGS({ "value", "ay" }),
descriptor_read_value) },
- { GDBUS_EXPERIMENTAL_ASYNC_METHOD("WriteValue",
+ { GDBUS_ASYNC_METHOD("WriteValue",
GDBUS_ARGS({ "value", "ay" },
{ "options", "a{sv}" }),
NULL,
@@ -1284,34 +1281,29 @@ static DBusMessage *characteristic_stop_notify(DBusConnection *conn,
}
static const GDBusPropertyTable characteristic_properties[] = {
- { "UUID", "s", characteristic_get_uuid, NULL, NULL,
- G_DBUS_PROPERTY_FLAG_EXPERIMENTAL },
- { "Service", "o", characteristic_get_service, NULL, NULL,
- G_DBUS_PROPERTY_FLAG_EXPERIMENTAL },
+ { "UUID", "s", characteristic_get_uuid, NULL, NULL },
+ { "Service", "o", characteristic_get_service, NULL, NULL },
{ "Value", "ay", characteristic_get_value, NULL,
- characteristic_value_exists,
- G_DBUS_PROPERTY_FLAG_EXPERIMENTAL },
+ characteristic_value_exists },
{ "Notifying", "b", characteristic_get_notifying, NULL,
- characteristic_notifying_exists,
- G_DBUS_PROPERTY_FLAG_EXPERIMENTAL },
- { "Flags", "as", characteristic_get_flags, NULL, NULL,
- G_DBUS_PROPERTY_FLAG_EXPERIMENTAL },
+ characteristic_notifying_exists },
+ { "Flags", "as", characteristic_get_flags, NULL, NULL },
{ }
};
static const GDBusMethodTable characteristic_methods[] = {
- { GDBUS_EXPERIMENTAL_ASYNC_METHOD("ReadValue",
+ { GDBUS_ASYNC_METHOD("ReadValue",
GDBUS_ARGS({ "options", "a{sv}" }),
GDBUS_ARGS({ "value", "ay" }),
characteristic_read_value) },
- { GDBUS_EXPERIMENTAL_ASYNC_METHOD("WriteValue",
+ { GDBUS_ASYNC_METHOD("WriteValue",
GDBUS_ARGS({ "value", "ay" },
{ "options", "a{sv}" }),
NULL,
characteristic_write_value) },
- { GDBUS_EXPERIMENTAL_ASYNC_METHOD("StartNotify", NULL, NULL,
+ { GDBUS_ASYNC_METHOD("StartNotify", NULL, NULL,
characteristic_start_notify) },
- { GDBUS_EXPERIMENTAL_METHOD("StopNotify", NULL, NULL,
+ { GDBUS_METHOD("StopNotify", NULL, NULL,
characteristic_stop_notify) },
{ }
};
,
May 11 2016
Hello Luiz, There has been a patch to pull APIs out of experimental at https://chromium.googlesource.com/chromiumos/third_party/bluez/+/250cd1607d370d8b9f1c4383aee08ab11635806a%5E%21/#F0 But http://git.kernel.org/cgit/bluetooth/bluez.git/commit/?id=8e493e8416e5525042b8b4a34eb2b7084725438b still prevents the create of service in GATT client. Therefore, does it make sense to revert the patch in upstream?
,
May 11 2016
Alright, in that case you will need to remove that check, actually this should together in the same patch since otherwise that has no effect as you experienced.
,
May 11 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/bluez/+/f825f59044d5a77b72d2849e0c5d603dfac33ac0 commit f825f59044d5a77b72d2849e0c5d603dfac33ac0 Author: Miao Chou <mcchou@google.com> Date: Wed May 11 07:50:06 2016 CHROMIUM: Revert "core/gatt-client: Fix printing errors if experimental is disabled" This reverts commit 8e493e8416e5525042b8b4a34eb2b7084725438b. This can prevent the creation of GATT service for the remote device, since the experimental flag is not enabled in Chromium OS. BUG= chromium:610960 TEST=emerge bluez Change-Id: I9f6bb0cfb765a265c739529bed75898402ab54f8 Reviewed-on: https://chromium-review.googlesource.com/344172 Commit-Ready: Miao-chen Chou <mcchou@chromium.org> Tested-by: Miao-chen Chou <mcchou@chromium.org> Reviewed-by: François Beaufort <fbeaufort@chromium.org> Reviewed-by: Wei-Ning Huang <wnhuang@chromium.org> Reviewed-by: Rahul Chaturvedi <rkc@chromium.org> Reviewed-by: Miao-chen Chou <mcchou@chromium.org> [modify] https://crrev.com/f825f59044d5a77b72d2849e0c5d603dfac33ac0/src/gatt-client.c
,
May 18 2016
,
Jun 9 2016
,
Oct 4 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/bluez/+/7cada962405b389589dd2340dde53fac4f4c0640 commit 7cada962405b389589dd2340dde53fac4f4c0640 Author: Miao Chou <mcchou@google.com> Date: Wed May 11 07:50:06 2016 CHROMIUM: Revert "core/gatt-client: Fix printing errors if experimental is disabled" This reverts commit 8e493e8416e5525042b8b4a34eb2b7084725438b. This can prevent the creation of GATT service for the remote device, since the experimental flag is not enabled in Chromium OS. BUG= chromium:610960 TEST=emerge bluez Old-Change-Id: I9f6bb0cfb765a265c739529bed75898402ab54f8 Change-Id: Ia88fa05a3d5eae204741767969c9130aec863ffa Reviewed-on: https://chromium-review.googlesource.com/391348 Reviewed-by: Shyh-In Hwang <josephsih@chromium.org> Reviewed-by: Miao-chen Chou <mcchou@chromium.org> Commit-Queue: Miao-chen Chou <mcchou@chromium.org> Tested-by: Miao-chen Chou <mcchou@chromium.org> Trybot-Ready: Miao-chen Chou <mcchou@chromium.org> [modify] https://crrev.com/7cada962405b389589dd2340dde53fac4f4c0640/src/gatt-client.c |
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by mcchou@chromium.org
, May 11 2016Components: OS>Systems>Bluetooth
Labels: -Pri-3 M-52 Pri-2
Owner: mcchou@chromium.org
Status: Assigned (was: Unconfirmed)