Nano 上的 Pybluez:无法生成 SDP

Pybluez on Nano: SDP can’t be generated

我的 Nano 遇到了这样的问题:

profiles = [ SERIAL_PORT_PROFILE ],
  File "/usr/lib/python2.7/site-packages/bluetooth/bluez.py", line 176, in advertise_service
    raise BluetoothError (str (e))
bluetooth.btcommon.BluetoothError: (2, 'No such file or directory')

我尝试在 bluetooth.service 文件中添加兼容模式,重新加载守护进程,重新启动蓝牙,然后通过

添加串口
sudo sdptool add SP

这些步骤在我的 ubuntu 20.04 笔记本电脑上运行良好,但在 Jetpack 4.5.1 上却不行。我也检查了,他们也不能在 jetson NX 上工作。

我真的很好奇如何解决这个问题,否则,欢迎使用另一种在 python 代码中使用蓝牙的方法。

谢谢

您可能想看看下面的文章,它展示了如何与核心 Python 套接字库进行连接 https://blog.kevindoran.co/bluetooth-programming-with-python-3/.

BlueZ 现在使用的方法是 Profile API。

https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/test-profile

有一个 Python 使用配置文件 API 的示例

hciattachhciconfighcitoolhcidumprfcommsdptoolciptoolgatttool 是 2017 年的 deprecated by the BlueZ 项目。如果您正在学习使用它们的教程,它可能已经过时并且 Linux 系统将选择不支持它们。

解决方案在蓝牙配置文件的路径中(灵感来自此https://developer.nvidia.com/embedded/learn/tutorials/connecting-bluetooth-audio

这个答案:bluetooth.btcommon.BluetoothError: (2, 'No such file or directory')

对于 jetson 设备 (jetpack) 是不够的。虽然我没有测试它是否可以在不更改此 link.

中提到的文件的情况下工作

还有一个 .conf 文件也需要更改:/lib/systemd/system/bluetooth.service.d/nv-bluetooth-service.conf

修改:

ExecStart=/usr/lib/bluetooth/bluetoothd -d --noplugin=audio,a2dp,avrcp

至:

ExecStart=/usr/lib/bluetooth/bluetoothd -C

之后需要做的是:

sudo systemctl daemon-reload
sudo systemctl restart bluetooth

使用 jetpach 4.5.1 在 jetson Nano 和 NX 上测试

感谢您的帮助!