raspberry-pi - hcitool lescan 显示 I/O 错误

标签 raspberry-pi bluetooth-lowenergy bluez

我正在尝试在树莓派上使用 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

并检查状态后记。

如果这不起作用或挂起处于“关闭”状态,请尝试:

service bluetooth restart
service dbus restart

(以 super 用户身份执行所有命令)

并关闭所有可能访问蓝牙的应用程序。例如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

关于raspberry-pi - hcitool lescan 显示 I/O 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22062037/

相关文章:

python - 获取进程的 PID 号,然后用 Python 杀死它

ios - 获取为 native iOS 应用程序编写的代码并将其转换为 DLL

linux - Raspbian 上的低功耗蓝牙

raspberry-pi - 使用 ubuntu 和 pi 设置 kubeadm 集群

ios - Swift - 点击后回调

c - Linux 中的 bluetooth/bluetooth.h 位于何处?

linux - 如何保持蓝牙音箱连接树莓派不休眠

linux - hcitool scan 和 inq 的区别

Android 在 Linux 上找到使用 Bluez 创建的信标

android - 在android studio中扫描ble模块(蓝牙4.0)