【发布时间】:2022-08-23 20:45:48
【问题描述】:
我正在尝试通过 Python 脚本使用 Khadas 板上的 pybluez 连接到蓝牙设备(有点像 Raspberry Pi,aarch64)。
我已手动将 PyBluez 更新为 5.65,因为它包含我需要的修复程序。 bluetoothctl --version 和 bluetoothd --version 都返回 5.65。
启动我的脚本后,我得到
> python main.py
...
File \"/home/khadas/env/lib/python3.8/site-packages/bluetooth/bluez.py\", line 271, in advertise_service
_bt.sdp_advertise_service (sock._sock, name, service_id, \\
_bluetooth.error: (2, \'No such file or directory\')
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File \"/home/khadas/copilot/copilot/process/process.py\", line 126, in run
self._pre_run()
File \"/home/khadas/copilot/copilot/task/bluetooth_connector_task.py\", line 55, in _pre_run
bluetooth.advertise_service(
File \"/home/khadas/env/lib/python3.8/site-packages/bluetooth/bluez.py\", line 275, in advertise_service
raise BluetoothError (*e.args)
bluetooth.btcommon.BluetoothError: [Errno 2] No such file or directory
在this 之后,我编辑了/etc/systemd/system/dbus-org.bluez.service 和/lib/systemd/system/bluetooth.service 拥有
ExecStart=/usr/libexec/bluetooth/bluetoothd -C
然后我重新启动了守护进程
sudo systemctl daemon-reload & sudo systemctl restart bluetooth & sudo sdptool add SP
但我的错误仍然存在。
你们有没有人遇到过这种情况?
感谢您的时间 :)
注意:这个线程表明,在sudo sdptool add SP 之后,应该已经在/var/run/sdp 创建了一个文件;它不是。
注意:蓝牙服务正在运行,但有错误,即
(env) khadas@khadas > systemctl status bluetooth.service
● bluetooth.service - Bluetooth service
Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-08-11 13:23:09 UTC; 13min ago
Docs: man:bluetoothd(8)
Main PID: 14256 (bluetoothd)
Status: \"Running\"
Tasks: 1 (limit: 2932)
Memory: 676.0K
CGroup: /system.slice/bluetooth.service
└─14256 /usr/libexec/bluetooth/bluetoothd -C
Aug 11 13:23:09 khadas systemd[1]: Starting Bluetooth service...
Aug 11 13:23:09 khadas bluetoothd[14256]: Bluetooth daemon 5.65
Aug 11 13:23:09 khadas systemd[1]: Started Bluetooth service.
Aug 11 13:23:09 khadas bluetoothd[14256]: Starting SDP server
Aug 11 13:23:09 khadas bluetoothd[14256]: src/sdpd-server.c:init_server() binding UNIX socket: Read-only file system
Aug 11 13:23:09 khadas bluetoothd[14256]: src/sdpd-server.c:start_sdp_server() Server initialization failed
Aug 11 13:23:09 khadas bluetoothd[14256]: Bluetooth management interface 1.14 initialized
Aug 11 13:23:09 khadas bluetoothd[14256]: src/adapter.c:reset_adv_monitors_complete() Failed to reset Adv Monitors: Unknown Command (0x01)