bluetooth.btcommon.BluetoothError:(2,'没有这样的文件或目录')

时间:2016-04-17 11:32:41

标签: bluetooth

我只是想在https://code.google.com/p/pybluez/source/browse/trunk/examples/simple/rfcomm-server.py

运行RFCOMM服务器示例
$ python2 rfcomm-server.py
Traceback (most recent call last):
  File "rfcomm-server.py", line 20, in <module>
    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')

我收到此错误。我的代码正在使用Windows,但我无法使用Ubuntu 15.10。

2 个答案:

答案 0 :(得分:6)

我在Raspbian上遇到了同样的问题,并解决了:

  • 在兼容模式下运行蓝牙,

    修改/etc/systemd/system/dbus-org.bluez.service

    更改

    ExecStart=/usr/lib/bluetooth/bluetoothd

    进入

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

  • 然后添加串口配置文件,执行: sudo sdptool add SP

参考文献:

答案 1 :(得分:0)

即使在@GozzoMan解决方案之后,我仍然遇到相同的问题,因为调用/var/run/sdp之后根本没有生成sudo sdptool add SP文件。问题是后台驻留程序服务文件的位置在我的系统上(Raspberry Pi上的Raspbian Buster)不同

如果您遇到相同的情况;

  • 检查蓝牙守护程序的状态并查找服务文件 路径(第二行)
sudo service bluetooth status

# alternative: 
# sudo systemctl status bluetooth

在我的情况下,服务文件在/lib/systemd/system/bluetooth.service上运行,而不是从/etc/systemd/system/dbus-org.bluez.service运行。

bluetooth service status

  • 然后修改正确的文件( /lib/systemd/system/bluetooth.service(在我的情况下)将-C添加到 ExecStart=/usr/lib/bluetooth/bluetoothd行中的指示 先前的答案。

  • 在运行sdptool之前,请不要忘记重新加载守护程序并重新启动蓝牙服务:

sudo systemctl daemon-reload
sudo systemctl restart bluetooth

sudo sdptool add SP

现在应生成/var/run/sdp

注意:如果遇到权限错误,请检查以下答案:https://stackoverflow.com/a/42306883/4406572