it-swarm.com.de

hcitool lescan zeigt einen E/A-Fehler

Ich versuche einen Lesescan mit hcitool auf dem Raspberry Pi zu machen. 

Der Befehl wird ausgedruckt 

Set scan parameters failed: Input/output error. 

Ich bin mir nicht sicher, was genau hier passiert. Mein iPhone wirbt hier. 

Ich verwende einen BLE-Dongle von IOGear. 

Wenn ich meinen Computer jedoch neu starte, wird nach dem Erteilen des Befehls lescan die MAC-Adresse angezeigt. Nachdem ich den Befehl lescan mehrmals ausgegeben habe, wird derselbe Fehler angezeigt. Ist es so, dass der Befehl lescan nicht mehr als einmal ausgegeben werden kann? 

33
arpwal

Das passiert mir oft sehr oft. Ich entwickle mich damit und es passiert von Zeit zu Zeit. Ich konnte Ihren Fehler auch innerhalb von 5 Minuten reproduzieren.

hcitool lescan
Set scan parameters failed: Input/output error

versuchen:

hciconfig hci0 down
hciconfig hci0 up

und überprüfen Sie die Statusnachwörter.

wenn dies nicht funktioniert oder im Status DOWN hängt, versuchen Sie Folgendes:

service bluetooth restart
service dbus restart

(alle Befehle als Superuser)

Schließen Sie alle Anwendungen, die auf Bluetooth zugreifen können. Zum Beispiel hcidump.

Wenn das nicht funktioniert, müssen Sie es normalerweise trennen. Aber es gibt noch einen dreckigen Hack, um das zu tun. Es funktioniert, indem der Berechtigte wieder auf 0 und dann auf 1 gesetzt wird. Dies zwingt den USB-Dongle zur Initialisierung.

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
38
Rob Anderson

Ein Upgrade auf bluez v5.43 hat dieses Problem für mich behoben.

Um auf das neueste bluez zu aktualisieren, müssen Sie eine "manuelle" Installation durchführen (not apt-get), die von der bluez-Website heruntergeladen wird. Ich empfehle diese Video-Komplettlösung wenn Sie neue Pakete installieren oder Hilfe benötigen. 

Nach der Installation der neuesten bluez musste ich einige Befehle ausführen, bevor es funktionierte.

  1. systemctl daemon-reload: Startet den Systemdämon neu. 

  2. Sudo service bluetooth restart: Startet den Bluetooth-Dienst neu.

  3. Sudo hciconfig hci0 up: Dies wurde für meinen Raspberry Pi 3 benötigt, wobei der integrierte BT unter hci0 gefunden wurde.

Nach diesen Befehlen scheinen Sudo hcitool lescan und seine Varianten alle zu funktionieren.

5
ZX9

Für diejenigen, die diese Frage jetzt finden, ist sie ab Bluez v5.41 festgelegt. Sie müssen lediglich herunterladen und installieren. Sie können die neueste Version von http://www.bluez.org/download/ herunterladen.

1

Bei mir funktionierte es jedoch, die Bluetooth-Einstellungen auf meinem Ubuntu zu öffnen und die nicht verwendeten Geräte manuell zu entfernen. Sofort begann lescan zu arbeiten.

0
Ace

Ich hatte den gleichen Fehler mit hcitool, während bluetoothctl einwandfrei funktionierte. Dann stieß ich auf diesen Artikel und stellte fest, dass alle "Werkzeuge, die Raw Socket verwenden, als veraltet gelten" (hcitool, hcicfg usw.).

Öffnen Sie also einfach bluetoothctl und geben Sie einen scan on-Befehl aus.

0
Jason Stewart

Möglicherweise wird aktuell HCI verwendet. In meinem Fall muss ich Node-Red stoppen und es funktioniert. Achten Sie also darauf, dass die HCI nicht verwendet wird. 

Starten Sie das HCI neu, um das Problem vorübergehend zu lösen, das Problem wird jedoch nicht richtig gelöst.

0
Sean Stayn