该命令会打印输出。
Set scan parameters failed: Input/output error.
我不确定这里具体发生了什么。我的iPhone正在这里广告。
我正在使用IOGear的BLE dongle。
然而,如果我重新启动我的设备,在我发出lescan
命令后,它会显示一个MAC地址,并在我发出多个lescan命令后开始显示相同的错误。是不是说,lescan命令不能多次执行?
Set scan parameters failed: Input/output error.
我不确定这里具体发生了什么。我的iPhone正在这里广告。
我正在使用IOGear的BLE dongle。
然而,如果我重新启动我的设备,在我发出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
sudo hciconfig hci0 reset
。 - Roger Dahlhciconfig hci0 down
然后 up
对我有用,谢谢。 - Keremservice dbus restart
也会导致我的Kali虚拟机崩溃。 - MmBaguette升级到 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
及其变体似乎都可以正常工作。
sudo hcitool lescan
会对 Bluetooth 5.x LE 设备抛出 Set scan parameters failed: Input/output error.
的错误,因为 hcitool
已被弃用。bluetoothctl
。bluetoothctl scan le
正如其他人提到的那样,确保你拥有最新版本的bluez
也很重要。如果你的蓝牙设备特别新,更新版本的linux-firmware
或Linux内核也可能有所帮助。
我曾经使用hcitool遇到了同样的错误,但是bluetoothctl完美地工作了。后来我看到了这篇文章指出所有"使用原始套接字的工具都应被视为已弃用"(例如hcitool、hcicfg等)。
因此,您可以只打开bluetoothctl并发出一个"scan on"命令。
scan on
不会启动BLE扫描。 - jbgsudo service bluetooth restart
在 Raspibian Buster 上帮助我解决了问题。
在使用sudo hcitool lescan
时出现 Set scan parameters failed: Input/output error.
错误的情况下可尝试此方法。
但这个问题可能会随机再次出现,因此某些系统库可能存在问题。
我将Bluez卸载后重新安装,这样可以解决问题:
sudo apt remove --purge bluez bluez-* -y
apt install bluez
然后
hcitool lescan
那应该就够了。
如果你正在阅读这个问题,现在已经解决了,从Bluez v5.41版本开始已经修复。你只需要下载和安装即可。你可以从http://www.bluez.org/download/下载最新版本。
有可能HCI当前正在使用。在我的情况下,我必须停止Node-Red才能使其正常工作。因此,请注意HCI未被使用。
重新启动HCI是一种暂时解决问题的方法,但并不能完全解决问题。
我正在使用版本5.53 我有两个蓝牙设备(hic0和hic1) 我尝试了各种方法来重置这些设备... 唯一有效的方法是物理上拔出并重新插入hic1的dongle。 这是支持ble的那一个。然后它可以工作,直到我重新启动。 我真的希望有一种纯软件解决方案来解决这个问题。
对我而言有效的方法是打开Ubuntu上的蓝牙设置,手动删除未使用的设备。立即开始扫描工作。