gpt4 book ai didi

在我不得不重置适配器后,蓝牙的 Python 代码抛出错误

转载 作者:太空狗 更新时间:2023-10-29 18:18:38 25 4
gpt4 key购买 nike

我正在尝试用 python 进行蓝牙编程。直到昨天它工作正常。今天早上突然停电了,不知为何,蓝牙模块被禁用了,无法打开。因此,我执行了 sudo hciconfig hci0 reset 然后将其打开。从那时起,最简单的程序都无法执行。取this one例如。它卡在 bluetooth 模块中的 advertise_service 并抛出以下错误(仅供引用:virtualenv 在这里不是问题。系统范围的 python 也做同样的事情)。

Traceback (most recent call last):
File "bt.py", line 17, in <module>
advertise_service( server_sock, "SampleServer", service_id = uuid, service_classes = [ uuid, SERIAL_PORT_CLASS ], profiles = [ SERIAL_PORT_PROFILE ])
File "/home/machinename/.virtualenvs/py27/local/lib/python2.7/site-packages/bluetooth/bluez.py", line 242, in advertise_service
raise BluetoothError (str (e))
bluetooth.btcommon.BluetoothError: (2, 'No such file or directory')

有时我在编译和重新安装 Bluez 驱动程序时会遇到不同的错误:

Traceback (most recent call last):
File "build/bdist.linux-x86_64/egg/bluetooth/bluez.py", line 268, in advertise_service
bluetooth.btcommon.BluetoothError: error no advertisable device.

但是所有这些以前在那台机器上都非常有效;事实上,在我编写本文时,所有程序都可以在我的其他 ubuntu (14.04LTS) 机器上正常工作。我检查了源代码,并追踪到一个 _bluetooth.so 文件——这是一个编译代码,因此我不知道该怎么做了。

任何指针将不胜感激。

最佳答案

此错误是由于 BlueZ 5 和 SDP 与 bluetoothd 的不兼容问题造成的

修复 15.10 和 BlueZ 5

确保运行 sdptool browse local 会出现以下错误:

Failed to connect to SDP server on FF:FF:FF:00:00:00: No such file or directory

事实证明,罪魁祸首是蓝牙守护进程 bluetoothd。由于某些愚蠢的原因,将 SDP 与 bluetoothd 一起使用需要弃用的功能,因此要解决此问题,守护程序必须以兼容模式启动 bluetoothd -C(或 bluetooth - -兼容).

通过以下方式查找 bluetooth.service 的位置:

systemctl status bluetooth.service

然后编辑bluetooth.service并寻找

ExecStart=/usr/libexec/bluetooth/bluetoothd

在这一行末尾追加--compat,保存,然后运行

service bluetooth start

如果一切顺利,你应该可以成功运行

sudo sdptool browse local

最后,重置适配器:

sudo hciconfig -a hci0 reset

现在一切正常

旧答案

只是为了让大家知道,相信最新的BlueZ构建在我的系统中以某种方式被破坏。我下载、编译并安装了 5.35版本,但没有任何效果。我拨到 5.34 ,还是一样。我还注意到蓝牙适配器在启用后 3-4 分钟自动关闭,

sudo hciconfig hci0 up # hci0 is the bt adapter

我用了一个 USB 蓝牙加密狗来测试。它不像内置适配器那样自动关闭,但问题仍然存在。然后我用apt-get重新安装了bluez,

apt-get install --reinstall bluez

突然间一切都恢复正常了。

关于在我不得不重置适配器后,蓝牙的 Python 代码抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33110992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com