50

我正在尝试在树莓派上使用 hcitool 进行 lescan。

命令打印出来

Set scan parameters failed: Input/output error. 

我不确定,这里到底发生了什么。我的 iPhone 在这里打广告。

我正在使用 IOGear 的 BLE 加密狗。

但是,如果我重新启动机器,它会在我发出lescan命令后显示 MAC 地址,并在我多次发出 lescan 命令后开始显示相同的错误。是不是 lescan 命令不能多次发出?

4

10 回答 10

56

这经常发生在我身上。我正在开发它,它只是不时发生。我还能够在 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
于 2014-04-14T12:19:47.883 回答
8

升级到 bluez v5.43 为我解决了这个问题。

要升级到最新的 bluez,您需要进行“手动”安装(不是 apt-get),从bluez 网站下载。如果您是新安装软件包或需要帮助,我推荐此视频演练。

安装最新的 bluez 后,我必须运行几个命令才能正常工作。

  1. systemctl daemon-reload: 重新启动系统守护程序。

  2. sudo service bluetooth restart:重新启动蓝牙服务。

  3. sudo hciconfig hci0 up:这是我的 Raspberry Pi 3 需要的,内置 BT 位于hci0.

在这些命令之后,sudo hcitool lescan它的变体似乎都可以工作。

于 2016-11-28T18:34:50.410 回答
5

我有同样的错误hcitool,虽然bluetoothctl工作得很好。然后我看到这篇文章指出所有“使用原始套接字的工具都应被视为已弃用”(hcitool、hcicfg 等)。

所以也许只是打开bluetoothctl并发出scan on命令。

于 2018-10-29T03:02:56.790 回答
4

sudo service bluetooth restart在 Raspibian Buster 上帮助我。

万一出现Set scan parameters failed: Input/output error.错误sudo hcitool lescan

但是又是随机发生的,所以一些系统库可能有一些问题。

于 2019-12-06T15:28:15.200 回答
2

我已经删除了 Bluez,然后我又重新安装了它,它对我有用:

sudo apt remove --purge bluez bluez-* -y


apt install bluez

接着

hcitool lescan 

这应该足够了。

于 2020-03-23T22:21:50.020 回答
1

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/.

于 2016-08-29T22:01:40.833 回答
0

我正在使用版本 5.53 我有两个蓝牙设备(hic0 和 hic1) 我尝试了各种方法来重置设备......唯一有效的方法是物理拔下并重新插入 hic1 加密狗。这个是支持ble的。然后它工作,直到我重新启动。我真的希望有一种纯软件解决方案来做到这一点。

于 2020-09-17T22:03:01.877 回答
0

有可能,HCI 当前正在使用中。就我而言,我必须停止 Node-Red 并且它可以工作。所以请注意,HCI 未在使用中。

重新启动 HCI 是一种暂时解决问题的方法,但它并不能正确解决问题。

于 2017-11-20T17:41:26.343 回答
-1

不过,对我有用的是在我的 Ubuntu 上打开蓝牙设置并手动删除未使用的设备。lescan 立即开始工作。

于 2019-06-15T12:55:50.543 回答
-8
sudo hcitool lescan

只需使用 sudo & 将扫描

于 2016-09-08T05:29:52.547 回答