Dan*_*iel 8 linux bluetooth bluez
syslogd的
在执行/ libexec/bluetooth/bluetoothd --plugin = time -d -E -n时,错误"没有足够的免费句柄来注册服务"发生如下:
bluetoothd [756]:src/adapter.c:clear_uuids()为索引0发送清除uuids命令
bluetoothd [756]:src/adapter.c:set_mode()发送索引0的set mode命令
bluetoothd [756]:src/gatt -database.c:btd_gatt_database_new()GATT Manager注册适配器:/ org/bluez/hci0
bluetoothd [756]:src/adapter.c:adapter_service_add()/ org/bluez/hci0
bluetoothd [756]:src/sdpd-service .c:add_record_to_server()使用句柄0x10002添加记录
bluetoothd [756]:src/sdpd-service.c:add_record_to_server()记录模式UUID 00000007-0000-1000-8000-00805f9
bluetoothd [756]:src/sdpd-service. c:add_record_to_server()记录模式UUID 00000100-0000-1000-8000-00805f9
bluetoothd [756]:src/sdpd-service.c:add_record_to_server()记录模式UUID 00001002-0000-1000-8000-00805f9
bluetoothd [756]: src/sdpd-service.c:add_record_to_server()记录模式UUID 00001800-0000-1000-8000-00805f9
bluetoothd [756]:src/adapter.c:adapter_service_insert()/ org/bluez/hci0
bluetoothd [756]:src/adapter.c:add_uuid()se nding为索引0添加uuid命令
bluetoothd [756]:src/gatt-database.c:gatt_db_service_added()GATT服务添加到本地数据库
bluetoothd [756]:无法获取"Service Changed"特性的句柄
bluetoothd [756]:src /adapter.c:adapter_service_add()/ org/bluez/hci0
bluetoothd [756]:src/sdpd-service.c:add_record_to_server()用句柄0x10003
bluetoothd 添加记录[756]:src/sdpd-service.c:add_record_to_server( )记录模式UUID 00000007-0000-1000-8000-00805f9
bluetoothd [756]:src/sdpd-service.c:add_record_to_server()记录模式UUID 00000100-0000-1000-8000-00805f9
bluetoothd [756]:src/sdpd- service.c:add_record_to_server()记录模式UUID 00001002-0000-1000-8000-00805f9
bluetoothd [756]:src/sdpd-service.c:add_record_to_server()记录模式UUID 00001801-0000-1000-8000-00805f9
bluetoothd [756] ]:src/adapter.c:adapter_service_insert()/ org/bluez/hci0
bluetoothd [756]:src/adapter.c:add_uuid()为索引0发送add uuid命令
bluetoothd [756]:src/gatt-datab ase.c:gatt_db_service_added()GATT服务添加到本地数据库
bluetoothd [756]:src/advertising.c:btd_advertising_manager_new()LE广告管理器为适配器创建:/ org/bluez/hci0
bluetoothd [756]:profiles/time/server .c:time_server_init()path/org/bluez/hci0
bluetoothd [756]:src/attrib-server.c:attrib_db_find_avail()输入!
bluetoothd [756]:src/attrib-server.c:attrib_db_find_avail()BT_UUID16!
bluetoothd [756]:没有足够的免费句柄来注册服务
bluetoothd [756]:当前时间服务无法注册
bluetoothd [756]:gatt-time-server:输入/输出错误(5)
我深入研究了调试问题的代码.所述attrib_db_find_avail(adapter, svc_uuid, size)[in function: gatt_service_add()]总是返回0的根本原因是服务器为Glist参数始终是NULL,这是在g_slist_find_custom(servers, adapter, adapter_cmp)[called from find_uuid16_avail()/find_uuid128_avail()].
我注意到有一个电话:**btd_adapter_gatt_server_start**(struct btd_adapter *adapter)用于将服务器添加到服务器中.但奇怪的是,它通过整个bluez源代码树被调用.
那么我应该btd_adapter_gatt_server_start()在我的代码中调用某个地方吗?或者我应该采取的任何其他步骤来解决问题?
谢谢!
我也遇到了蓝牙问题。就我而言,当我的设备间歇性地上下运行时,我每分钟都会收到几次以下错误消息:
bluetoothd[3196]: Failed to obtain handles for "Service Changed" characteristic
bluetoothd[3196]: Endpoint registered: sender=:1.51 path=/MediaEndpoint/A2DPSource
bluetoothd[3196]: Endpoint registered: sender=:1.51 path=/MediaEndpoint/A2DPSink
bluetoothd[3196]: Failed to set mode: Failed (0x03)
Run Code Online (Sandbox Code Playgroud)
经过一番研究,我发现了这个帖子,其中有些人通过删除 ~/.config/pulse 解决了蓝牙问题。这也为我解决了问题。
我没有解释为什么会这样,但我留下这个技巧是因为它也可以解决其他人的问题。