2014-02-27 21 views
25

我正嘗試在樹莓派上使用hcitool做lescan。hcitool lescan顯示I/O錯誤

的命令打印出

Set scan parameters failed: Input/output error. 

我不知道,到底發生了什麼這裏。我的iPhone在這裏做廣告。

我使用的是IOGear的BLE加密狗。

但是,如果我重新啓動計算機,它會在我發出lescan命令後顯示一個MAC地址,並在發出lescan命令多次後開始顯示相同的錯誤。是不是像lescan命令不能多發一次?

+0

嘗試拔下插頭並重新插入。加密狗可以通過各種方式進入狀態,但不會按照您的要求進行響應。雖然IOGear似乎是最好的。 –

+0

@aauser - 你有沒有解決這個問題?我陷入了同樣的問題。 –

+0

@aauser - 我應該提到我在64位Linux Mint 16(Petra)上使用D-Link DBT-120。 –

回答

27

這種情況經常發生在我身上。我正在開發它,它只是不時發生。我也能夠在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 

(所有命令作爲超級用戶)

,並關閉可能訪問藍牙所有的應用程序。例如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 
+6

還有'sudo hciconfig hci0 reset'。 –

+0

在當前的版本bluez 5.35。我沒有問題了。 –

+1

'''hciconfig hci0 down'''然後'''up'''爲我工作,謝謝。 – mass

1

對於那些現在發現這個問題的人來說,它是固定爲Bluez v5.41。所有你需要的是下載和安裝。您可以從http://www.bluez.org/download/下載最新版本。

-1
sudo hcitool lescan 

只需使用sudo &將掃描

+0

這對我工作與TinkerForge和BlueZ 5.44 :)謝謝 –

3

升級到固定這對我的bluez v5.43。

要升級到最新的bluez,您需要執行「手動」安裝(而不是 apt-get),從the bluez website下載。如果您是新安裝軟件包或需要幫助,我建議您使用this video walkthrough

在安裝最新的bluez之後,我必須在它運行之前運行一些命令。

  1. systemctl daemon-reload:重新啓動系統守護進程。

  2. sudo service bluetooth restart:重新啓動藍牙服務。

  3. sudo hciconfig hci0 up:這是我的Raspberry Pi 3需要的,內置BT發現在hci0

在這些命令之後,sudo hcitool lescan及其變體似乎都有效。

0

HCI目前可能正在使用中。在我的情況下,我必須停止Node-Red並且它可以工作。所以要注意,HCI沒有被使用。

重新啓動人機交互是一種方法,暫時解決問題,但它並沒有解決問題的權利。