arp*_*wal 37 raspberry-pi bluetooth-lowenergy bluez
我正在尝试使用覆盆子pi上的hcitool做一个lescan.
该命令打印出来
Set scan parameters failed: Input/output error.
Run Code Online (Sandbox Code Playgroud)
我不确定,这里究竟发生了什么.我的iPhone在这里做广告.
我正在使用IOGear的BLE加密狗.
但是,如果我重新启动我的机器,它会在我发出lescan命令后显示一个MAC地址,并在我发出一次lescan命令后再开始显示相同的错误.是不是,lescan命令不能发出多次?
Rob*_*son 44
这经常发生在我身上.我正在开发它,它不时发生.我也能在5分钟内重现你的错误;-)我正在运行bluez v.5.17.但是,如果没有此错误,我可以运行lescan一次以上.
hcitool lescan
Set scan parameters failed: Input/output error
Run Code Online (Sandbox Code Playgroud)
尝试:
hciconfig hci0 down
hciconfig hci0 up
Run Code Online (Sandbox Code Playgroud)
并检查后的状态.
如果这不起作用或挂起处于DOWN状态,请尝试:
service bluetooth restart
service dbus restart
Run Code Online (Sandbox Code Playgroud)
(所有命令均为超级用户)
并关闭所有可能访问蓝牙的应用程序.例如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
Run Code Online (Sandbox Code Playgroud)
Alo*_*ink 11
对于那些使用蓝牙 5.x 设备并遇到相同错误的用户,
sudo hcitool lescan将抛出Set scan parameters failed: Input/output error.“针对蓝牙 5.x LE 设备”的错误,这hcitool已被弃用。
如果您想使用较新的蓝牙 5.x 设备进行蓝牙 LE(低功耗)扫描,请尝试使用bluetoothctl:
bluetoothctl scan le
Run Code Online (Sandbox Code Playgroud)
正如其他人提到的,确保您拥有最新bluez版本也是值得的。如果您的蓝牙设备特别新,则较新版本的linux-firmwareLinux 内核也可能会有所帮助。
我有同样的错误hcitool,虽然bluetoothctl工作得很好。然后我看到这篇文章指出所有“使用原始套接字的工具都应被视为已弃用”(hcitool、hcicfg 等)。
所以也许只是打开bluetoothctl并发出scan on命令。
升级到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它的变体似乎都有效.
| 归档时间: |
|
| 查看次数: |
43715 次 |
| 最近记录: |