我正在尝试在树莓派上使用 hcitool 进行 lescan。
命令打印出来
Set scan parameters failed: Input/output error.
我不确定,这里到底发生了什么。我的 iPhone 在这里打广告。
我正在使用 IOGear 的 BLE 加密狗。
但是,如果我重新启动机器,它会在我发出lescan
命令后显示 MAC 地址,并在我多次发出 lescan 命令后开始显示相同的错误。是不是 lescan 命令不能多次发出?
我正在尝试在树莓派上使用 hcitool 进行 lescan。
命令打印出来
Set scan parameters failed: Input/output error.
我不确定,这里到底发生了什么。我的 iPhone 在这里打广告。
我正在使用 IOGear 的 BLE 加密狗。
但是,如果我重新启动机器,它会在我发出lescan
命令后显示 MAC 地址,并在我多次发出 lescan 命令后开始显示相同的错误。是不是 lescan 命令不能多次发出?
这经常发生在我身上。我正在开发它,它只是不时发生。我还能够在 5 分钟内重现您的错误;-) 我正在运行 bluez v.5.17。但是,我可以多次运行 lescan 而不会出现此错误。
hcitool lescan
Set scan parameters failed: Input/output error
尝试:
hciconfig hci0 down
hciconfig hci0 up
并检查状态后记。
如果这不起作用或挂在 DOWN 状态,请尝试:
service bluetooth restart
service dbus restart
(所有命令作为超级用户)
并关闭所有可能访问蓝牙的应用程序。例如 hcidump。
如果这不起作用,您通常必须拔下它。但是还有另一个肮脏的技巧可以做到这一点。它通过将授权设置为 0 并再次设置为 1 来工作。这会强制 USB 加密狗初始化。
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0a5c:21e8 Broadcom Corp.
cd /sys/bus/usb/devices/
grep -i -s -r 0a5c *
…
1-1.2/idVendor:0a5c
…
cd 1-1.2
echo 0 > authorized
echo 1 > authorized
升级到 bluez v5.43 为我解决了这个问题。
要升级到最新的 bluez,您需要进行“手动”安装(不是 apt-get),从bluez 网站下载。如果您是新安装软件包或需要帮助,我推荐此视频演练。
安装最新的 bluez 后,我必须运行几个命令才能正常工作。
systemctl daemon-reload
: 重新启动系统守护程序。
sudo service bluetooth restart
:重新启动蓝牙服务。
sudo hciconfig hci0 up
:这是我的 Raspberry Pi 3 需要的,内置 BT 位于hci0
.
在这些命令之后,sudo hcitool lescan
它的变体似乎都可以工作。
我有同样的错误hcitool
,虽然bluetoothctl
工作得很好。然后我看到这篇文章指出所有“使用原始套接字的工具都应被视为已弃用”(hcitool、hcicfg 等)。
所以也许只是打开bluetoothctl
并发出scan on
命令。
sudo service bluetooth restart
在 Raspibian Buster 上帮助我。
万一出现Set scan parameters failed: Input/output error.
错误sudo hcitool lescan
。
但是又是随机发生的,所以一些系统库可能有一些问题。
我已经删除了 Bluez,然后我又重新安装了它,它对我有用:
sudo apt remove --purge bluez bluez-* -y
apt install bluez
接着
hcitool lescan
这应该足够了。
To those finding this question now, it is fixed as of Bluez v5.41. All you need to to is download and install. You can download the lastest version from http://www.bluez.org/download/.
我正在使用版本 5.53 我有两个蓝牙设备(hic0 和 hic1) 我尝试了各种方法来重置设备......唯一有效的方法是物理拔下并重新插入 hic1 加密狗。这个是支持ble的。然后它工作,直到我重新启动。我真的希望有一种纯软件解决方案来做到这一点。
有可能,HCI 当前正在使用中。就我而言,我必须停止 Node-Red 并且它可以工作。所以请注意,HCI 未在使用中。
重新启动 HCI 是一种暂时解决问题的方法,但它并不能正确解决问题。
不过,对我有用的是在我的 Ubuntu 上打开蓝牙设置并手动删除未使用的设备。lescan 立即开始工作。
sudo hcitool lescan
只需使用 sudo & 将扫描