web-dev-qa-db-ja.com

hcitool lescanにI / Oエラーが表示される

Raspberry Piでhcitoolを使用してlescanを実行しようとしています。

コマンドが出力されます

Set scan parameters failed: Input/output error. 

ここで正確に何が起こるかわかりません。私のiPhoneはここで宣伝しています。

IOGearのBLEドングルを使用しています。

ただし、マシンを再起動すると、lescanコマンドを発行した後にMACアドレスが表示され、lescanコマンドをさらに数回発行すると同じエラーが表示され始めます。 lescanコマンドを複数回発行することはできませんか?

35
arpwal

それは私にとって頻繁に起こります。私はそれを使って開発していますが、それは時々起こります。 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

(すべてのコマンドはスーパーユーザーとして)

そして、Bluetoothにアクセスする可能性のあるすべてのアプリケーションを閉じます。たとえば、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
42
Rob Anderson

Bluez v5.43にアップグレードすると、これが修正されました。

最新のbluezにアップグレードするには、「手動」インストールを行う必要があります(notapt-get)、 bluezウェブサイトからダウンロード 。パッケージの新規インストールまたはヘルプが必要な場合は、 このビデオウォークスルー をお勧めします。

最新のbluezをインストールした後、機能する前にいくつかのコマンドを実行する必要がありました。

  1. systemctl daemon-reload:システムデーモンを再起動します。

  2. Sudo service bluetooth restart:Bluetoothサービスを再起動します。

  3. Sudo hciconfig hci0 up:これは、Raspberry Pi 3に必要でした。hci0

これらのコマンドの後、Sudo hcitool lescanとそのバリアントはすべて機能しているようです。

5
ZX9

現在この質問を見つけている人にとっては、Bluez v5.41で修正されています。必要なのは、ダウンロードしてインストールすることだけです。 http://www.bluez.org/download/ から最新バージョンをダウンロードできます。

1

私にとってうまくいったのは、UbuntuでBluetooth設定を開き、未使用のデバイスを手動で削除することです。すぐにlescanが動作を開始しました。

0
Ace

hcitoolでも同じエラーが発生しましたが、bluetoothctlは正常に機能しました。それから私はこれに出くわしました すべての「生のソケットを使用しているツールは非推奨とみなされる」と述べている記事 (hcitool、hcicfgなど)。

したがって、bluetoothctlを開いてscan onコマンド。

0
Jason Stewart

HCIが現在使用されている可能性があります。私の場合、Node-Redを停止する必要があり、機能します。 HCIが使用されていないことに注意してください。

HCIを再起動することは、一時的に問題を解決する方法ですが、問題を正しく解決しません。

0
Sean Stayn