安装最新的 Bluez 软件包后,我运行了 bluetoothctl。该程序在命令行中启动并提示用户输入。但是,它不响应任何用户输入。
在网上搜索后我发现有以下几种可能的原因:
蓝牙守护程序未运行
zim@acer:~/bluez/client$ ps aux | grep bluetoothd
root 6497 0.0 0.0 19432 3664 ? Ss 12:27 0:00 /usr/sbin/bluetoothd
zim 6681 0.0 0.0 15952 2256 pts/7 S+ 12:37 0:00 grep --color=auto bluetoothd
确认正在运行。
D-Bus 守护进程未运行
message+ 755 0.0 0.0 40404 4080 ? Ss 11:06 0:01 dbus-daemon --system --fork
zim 1268 0.0 0.0 40488 4164 ? Ss 11:06 0:02 dbus-daemon --fork --session --address=unix:abstract=/tmp/dbus-FCRAG72Dib
zim 1312 0.0 0.0 22412 1904 ? S 11:06 0:00 upstart-dbus-bridge --daemon --session --user --bus-name session
zim 1316 0.0 0.0 22316 224 ? S 11:06 0:00 upstart-dbus-bridge --daemon --system --user --bus-name system
zim 1348 0.0 0.0 39376 3520 ? S 11:06 0:00 /bin/dbus-daemon --config-file=/etc/at-spi2/accessibility.conf --nofork --print-address 3
nobody 1405 0.0 0.0 35232 3216 ? S 11:06 0:00 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/run/sendsigs.omit.d/network-manager.dnsmasq.pid --listen-address=127.0.1.1 --conf-file=/var/run/NetworkManager/dnsmasq.conf --cache-size=0 --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d
zim 6837 0.0 0.0 39116 332 ? Ss 13:01 0:00 //bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session
zim 7285 0.0 0.0 15952 2324 pts/7 S+ 13:02 0:00 grep --color=auto dbus
确认正在运行。
hcitool
这样就可以正常工作,我可以扫描设备。
我不知道如何解决这个问题。对于不熟练的人来说,源代码对此并不清楚。
有人能确认它无法正常工作吗?我可以采取什么步骤来找到这个问题的根源吗?该工具无法使用。
答案1
升级到 Ubuntu Wiley 不稳定版后,我发现它按预期运行。问题是我使用的是 Ubuntu 14 和 Bluez 4.x
任何 BlueZ 版本 5.x 都允许使用 bluetoothctl。4.x 已被弃用一段时间。有关 BlueZ 及其使用的更多信息,请查看我在 stackoverflow 上的问题和答案。