概要
RaspberryPi に有線キーボードを接続しているといろいろと邪魔なので Bluetooth の無線キーボードに変更してみました
環境
- Raspberry Pi Type B Single Board Computer 512MB
- Raspbian 7.8
- Bluetoothキーボード : iBUFFALO Bluetooth3.0対応 コンパクトキーボード 薄型モデル BSKBB24BK
- Bluetoothレシーバ : ELECOM Bluetooth PC用USBアダプタ 超小型 Ver4.0 Class2 forWin8 ブラック LBT-UAN05C2
- BlueZ 4.99
必要なパッケージのインストール
この作業はまだ有線キーボードで実施する必要があります
- sudo apt-get -y update
- sudo apt-get install bluetooth bluez-utils blueman
apt-get でインストールされる BlueZ は 4.99 になるので注意してください 
Bluetooth キーボードと接続するだけであれば 4.99 でも問題ないです
Bluetooth レシーバを接続する
この作業も有線キーボードで実施します
空いている USB ポートに Bluetooth レシーバを接続しましょう 
RaspberryPi が起動中の状態でもOKです 
うまく認識しない場合は停止してからお試しください
- lsusb 
 Cambrige Silicon Radio, Ltd Bluetooth Dongle (HCI mode) が認識されていることを確認しましょう
- Bluetooth キーボードの Bluetooth を ON にする 
 RaspberryPi がレシーバを認識したら Bluetooth キーボードを ON にしましょう
 今回使用した iBuffalo のキーボードであれば左側の側面に ON/OFF のスイッチがあります
 また充電式なので MicroUSB ポートを使って事前に充電しておきましょう
- Bluetooth キーボードをペアリング待機状態にする 
 今回のキーボードであれば、電源を ON にしてランプが青から消灯した段階で fn + delete を押すことでペアリングの待機状態にすることができます
 待機状態になるとランプが青色の点滅状態になります
- sudo hcitool scan 
 RaspberryPi 側から Bluetoothe キーボードを探索します
 おそらく簡単に見つかると思います
 見つかったらそこに表示されている Mac アドレスをメモしておきましょう
 見つからない場合はちゃんとペアリングの待機状態になっているかキーボード側を確認してください
スクリプト修正
bluez-simple-agent というスクリプトを修正しないと、うまくペアリングできなかったので修正します
- sudo cp /usr/bin/bluez-simple-agent{,.back}
- sudo vi /usr/bin/bluez-simple-agent
cabability=”DisplayYesNo”
92行目 を上記のように修正しましょう 
修正できたらペアリングしていきます
ペアリング
- sudo bluez-simple-agent hci0 [mac_address]
- sudo bluez-test-device trusted [mac_address] yes
- sudo bluez-test-input connect [mac_address]
でエラーがでなければペアリング完了です 
実際に Bluetooth キーボードから入力ができるかと思います 
入力が確認できたら有線キーボードは外してもらってOKです
英語キーボードとして認識させる
例えば有線の場合は日本語キーボードだったので raspi-config で日本語キーボードの設定をしていたため英語キーボードを接続したらうまく動かなくなったなど (自分はそのパターン)
以下のようにキーボードの設定ファイルを書き換えることで英語キーボードとして認識させることができました
- sudo cp /etc/default/keyboard{,.back}
- sudo vi /etc/default/keyboard
# KEYBOARD CONFIGURATION FILE
# Consult the keyboard(5) manual page.
XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT=""
XKBOPTIONS="ctrl:swapcaps"
BACKSPACE="guess"上記のように必要な箇所を書き換えましょう 
( 自分は XKBLAYOUT, XKBVARIANT, XKBOPTIONS だけ書き換えれば OK でした) 
その後
- sudo reboot
で次回起動時に英語キーボードとして認識します 
XKBOPTIONS の設定でついでに capslock と ctrl を入れ替えているので不要な場合は空白を設定してください
トラブルシュート
- キーボードからの入力ができなくなった
おそらく RaspberryPi がキーボードを認識できなくなったんだと思います
sudo hcitool con
で何も表示されなくなります 
USBドングルを RaspberryPi から外して再度接続すると RaspberryPi がリフレッシュし再度認識されると思います 
それでもダメな場合は再起動してください 
キーボード側の充電がなくなった可能性もあります 
Bluetooth キーボードの種類によっては一定時間操作していない場合は休止状態になることがあるので、久しぶりに触る場合は何度かキーをストロークすることで再認識することもあります
- 再度ペアリングする
上記の再起動方法はちょっと力づくなので、この方法がいいと思います 
fn + delete で再度ペアリング状態にして別ターミナルで SSH ログインして
sudo bluez-test-input connect [mac_address]
を実行すると再度ペアリングしてキーボードが使えるようになります 
RaspberryPi の bluetooth は一定期間通信していないとペアリングを解除してしまうのでしょうか、それともキーボード側が一定期間使われていないとペアリングを解除してしまうとか 
ペアリングを解除しないために RaspberryPi 側から一定間隔で信号を送っておく必要がありそうです
- RaspberryPi 再起動後の挙動
特に再度ペアリングのコマンドを実施しなくてもキーボードに接続することができました 
もちろん再起動時にキーボード側の Bluetooth は ON にしておいてください
 
0 件のコメント:
コメントを投稿