hcitool lescan shows I/O error

為{幸葍}努か 提交于 2019-12-02 20:07:36

That happens often really often to me. I'm developing with it and it just happens from time to time. I was also able to reproduce your error within 5 minutes ;-) I'm running bluez v.5.17. However i can run lescan more than one time without this error.

hcitool lescan
Set scan parameters failed: Input/output error

try:

hciconfig hci0 down
hciconfig hci0 up

and check the status afterwords.

if this doesn't work or it hangs in DOWN status, try:

service bluetooth restart
service dbus restart

(all commands as superuser)

And close all application that may access bluetooth. For example hcidump.

If that doesn't work you normally have to unplug it. But there is another dirty hack to do this. It works by setting the authorized to 0 and than 1 again. This forces the usb dongle to init.

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

Upgrading to bluez v5.43 fixed this for me.

To upgrade to the newest bluez, you need to do a "manual" installation (not apt-get), downloading from the bluez website. I recommend this video walkthrough if you are new installing packages or need help.

After installing the latest bluez, I had to run a couple commands before it worked.

  1. systemctl daemon-reload : Restarts the system daemon.

  2. sudo service bluetooth restart : Restarts the Bluetooth service.

  3. sudo hciconfig hci0 up : This was needed for my Raspberry Pi 3, with the built-in BT found at hci0.

After these commands, sudo hcitool lescan and its variants all seem to work.

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

It is possible, that HCI is currently in use. In my case I must stop Node-Red and it works. So take care, that the HCI isn't in use.

Restart the HCI is a way, to solve the problem temporarily, but it doesn't solve the problem right.

I had the same error with hcitool, while bluetoothctl worked just fine. Then I ran across this article stating that all "tools using raw socket shall be considered deprecated" (hcitool, hcicfg, etc.).

So maybe just open bluetoothctl and issue a scan on command.

Ace

What worked for me though is opening up the Bluetooth settings on my Ubuntu and manually removing the unused devices. Immediately lescan started working.

rajdeep.sciter
sudo hcitool lescan

Just use sudo & will scan

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!