2015年10月16日金曜日

RaspberryPi の bluetoothctl で無線キーボードに接続

概要

RaspberryPi のバージョン8 (Jessie) から bluez-utils というパッケージがなくなったようで bluez-simple-agent, bluez-test-device, bluez-test-input 等のコマンドが使えません
その代わりに bluetoothctl というコマンドで制御することができるのでその方法を紹介します

環境

  • Raspberry Pi Type B Single Board Computer 512MB
  • Raspbian 8.0 (Jessie)
  • Kernel Version 4.1.10
  • BlueZ 5.23-2+b1
  • Bluetoothキーボード : iBUFFALO Bluetooth3.0対応 コンパクトキーボード 薄型モデル BSKBB24BK
  • Bluetoothレシーバ : ELECOM Bluetooth PC用USBアダプタ 超小型 Ver4.0 Class2 forWin8 ブラック LBT-UAN05C2

接続方法

まず bluetoothctl をエージェントモードで起動します
すると [bluetooth]# というプロンプト表示になるのでここで対話的にコマンドを入力していきます
※念のためレシーバ、キーボードの Mac アドレスは伏せています
※yy: … はレシーバの Mac アドレス、xx: … はキーボードの Mac アドレスです

pi@raspberrypi ~ $ sudo bluetoothctl -a
[NEW] Controller yy:yy:yy:yy:yy:yy BlueZ 5.23 [default]
Agent registered
[bluetooth]#

まず、キーボードをペアリングできる状態にしてキーボードをスキャンします

[bluetooth]# scan on
Discovery started
[NEW] Device xx:xx:xx:xx:xx:xx BSKBB24

検知できると NEW と出て対象の Mac アドレスが出力されます
この Mac アドレスに対して connect します

[bluetooth]# connect xx:xx:xx:xx:xx:xx
Attempting to connect to xx:xx:xx:xx:xx:xx
[CHG] Device xx:xx:xx:xx:xx:xx Connected: yes
Connection successful

successful と出れば接続完了です
この段階で bluetooth キーボードが使えるようになっていると思います

あとは再起動時にも自動で接続するよう trust しておきます

[bluetooth]# trust xx:xx:xx:xx:xx:xx
[CHG] Device xx:xx:xx:xx:xx:xx Trusted: yes
Changing xx:xx:xx:xx:xx:xx trust succeeded

これで再起動しても自動で無線キーボードが接続されるようになりました

Tips

一定時間キーボードからの入力がないと自動でスリープ状態に入ってしまうようです
とりあえずキーボードを適当に叩いてキーボード側のスリープを解除し信号を送ってみて、それでもダメなら再度 bluetoothctl を実行すれば OK だと思います
ただ、その場合は無線キーボードが使えないので有線 or SSH でのログインができる状態である必要があります

参考サイト

0 件のコメント:

コメントを投稿