錯誤試行

PCや生活の試行錯誤の成果を報告するブログ

SHARP NetWalker PC-Z1でBluetoothキーボード REUDO RBK-3000BTを使い最小のモバイルEmacsによる快適入力環境を手に入れる

この記事であなたが短縮できる(かもしれない)時間:2時間

2009年に発売されたNetWalker PC-Z1(Wikipedia)は、近年の大型化したスマホと同等サイズの5インチ液晶を持ち、それより一回り大きいスマートブック(Wikipedia)と呼ばれるカテゴリに属する最小クラスのモバイルPCである。Ubuntu 9.04をOSとして採用しており正真正銘のEmacs(22.2.1)が動作するのだが、キーボードに難があり永らく文鎮ならぬ置物として眠らせたままだった。
この度スマホBluetoothキーボードの購入検討に伴ない、この眠れるモバイル端末を入力用途に使わない手はないと思い立って情報を収集したところ、少し前に販売されていたBluetoothアダプタ PLANEX BT-MicroEDR2XとBluetoothキーボード REUDO RBK-2000BTIIはNetWalkerでの動作確認が取れている様子*1。しかし、2015年3月現在のそれぞれの後継機種であるBT-Micro4とRBK-3000BTで使用できるかどうか動作確認を行なっているサイトが見当たらなかったので、おそらく動くだろうという見込みの下に検証してみることにした。

まずbluetooth関連パッケージをインストールする。

sudo apt-get install bluetooth bluez-gnome bluez-compat

BT-Micro4を接続し、Bluetooth設定マネージャ(bluetooth-applet)を使って設定を試みるが、RBK-3000BTはリストに表示されるものの、ペアリングに失敗する。試行錯誤したのち、使用することに成功したので以下に参考情報として残す。

予めBT-Micro4を別のPCに接続してペアリングを行なっておく(これは不要な手順かもしれない)。

(Netwalker以外のUbuntuでペアリングする場合)
Ubuntubluetooth-wizardを実行してペアリングの手順を進ませていくとPINコード表示まではできるものの、PINを打ち込んでもペアリングに失敗する(gnome-bluetooth(3.2.2-0ubuntu5.1)にて確認)ので、KDEパッケージのbluedevilをインストールする。bluedevil-wizardを起動しPINコード表示画面になったら、トレイのbluetoothアイコンを右クリックしてRBK-3000BTに接続するとPINコード入力なしでペアリングできる。

RBK-3000BTのBluetoothボタンを3秒長押しでペアリングモードにしてから、以下のコマンドでデバイスのアドレスを取得する。

sudo hidd --search

接続が切断されるので、再度RBK-3000BTをペアリングモードにしてから以下を実行する。

sudo hidd --connect (アドレス)

以上でRBK-3000BTから文字入力ができるようになる。
一定時間入力を行なわなかったり、キーボードを折り畳んだりすると接続が無効となるので注意。同様にNetWalkerサスペンドさせてもBlueToothアダプタのLEDが消灯して接続は無効となる。接続が切れてしまうと毎回ペアリングを行なわなければならないのが難点だが、標準のBluetooth設定マネージャ(bluetooth-applet)でペアリングできず全くキーボードを使えない状況に比べれば大きな前進と言える。

BluetoothアダプタのLEDが点滅していない場合

サスペンドからの復帰などでBluetoothアダプタのLEDが点滅しない場合は、以下を実行して30秒程度待ってからBluetoothアダプタを挿し直す。

sudo service bluetooth restart

hciconfigコマンドでbluetoothの接続状態を確認することができる。
以下のようにDOWNと表示されている場合はそのアダプタを使用できない。

$ hciconfig
hci0:	Type: USB
	BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0
	DOWN 
	RX bytes:14 acl:0 sco:0 events:0 errors:0
	TX bytes:3 acl:0 sco:0 commands:1 errors:0

この際に以下のようにアダプタを起動するコマンドを与えることができるが、試してみたところタイムアウトしてうまく動作しない。この状態で、sudo hidd --connect (アドレス)を実行しても入力が戻らず接続することができない。

$ sudo hciconfig hci0 up
Can't init device hci0: Connection timed out (110)

少し待ってからアダプタを挿し直したところ以下のように認識された。この状態になると、sudo hidd --connect (アドレス)で接続することができた。

$ hciconfig
hci0:	Type: USB
	BD Address: 00:0A:AB:15:3A:A4 ACL MTU: 310:10 SCO MTU: 64:8
	UP RUNNING PSCAN 
	RX bytes:1417 acl:0 sco:0 events:56 errors:0
	TX bytes:2888 acl:0 sco:0 commands:56 errors:0

LEDが点滅しているがペアリングができない場合

以下のように表示され、ペアリングができないことがあった。この際は、一旦bluetooth-appletを起動の上、bluetoothアイコン右クリックの「新しいデバイスをセットアップ」(bluetooth-wizard)からペアリング作業を行ない失敗した後に、再度hidd --connctを実行したところペアリングに成功した。bluetooth-appletを起動せず、直接bluetooth-wizardを起動したところペアリングできなかった*2

$ sudo hidd --connect (アドレス)
Can't get device information: Permission denied

一言

NetWalkerUbuntuをOSとして搭載しているため、冒頭に書いた通り(完全な)Emacsが動き、CtrlとCaps Lockキーの入れ替えも可能で、当然ながらマルチウィンドウシステムであるので入力画面の隣りでpdfを表示させておくこともできる*3。これらはシングルウィンドウシステム・独自OSである2015年現在のiPhone,Androidスマートフォンでは実現できない大きな利点である。
本体のキーボードに難があり、これまであまり活用できなかったNetWalker PC-Z1だが、持ち運びやすいBluetoothキーボードによって、その能力を引き出すことができた。

参考サイト・本

Netwalkerbluetooth機器を使用するにはbluez-gnomeとbluez-compatパッケージをインストールする。ペアリング後認識しない場合はsudo hidd -scanを実行する。サスペンド復帰でBluetoothアダプタのLEDが点滅しなくなった場合はsudo service bluetooth restartすると認識する。それでもダメな場合はBluetoothアダプタを抜いてsudo service bluetooth restartし、アダプタを再装着してから2秒ほど待って再度sudo service bluetooth restartを実行すると復帰できるとのこと。
手元の環境ではサスペンド復帰でアダプタが認識しなくなった際には上記の2秒待ちではダメで、アダプタを抜いた状態でbluetoothサービスを再起動した後に30秒程度間を開けてからアダプタを装着しないと認識しなかった。また、その後にsudo hidd -scanを実行してもCan't get device information: Host is downと表示されて接続できなかったが、sudo hidd -sとしたところ接続することができた。また、再接続には必ずキーボードをペアリングモードにする必要があった。

bluetooth-wizardで接続できない場合は、sudo hidd --connect xx:xx:xx:xx:xx:xxによりbluetooth機器に接続できるという貴重な情報。

上記ブログのsudo hidd --connect xx:xx:xx:xx:xx:xxによる接続方法を引用したエントリ。

上と同じブログ。スタンバイに入ると接続デバイスの電源を入れ直し上記コマンドを実行しなければならない旨。

battwalkerの作者でもあるガジェットブログ「ひとりぶろぐ」の作者の、netwalkerbluetoothに関するブックマークページ。蛇の道は蛇で、サスペンド復帰からのキーボード接続やBluetooth認識不具合の解決方法のページがエントリされている。

サスペンド復帰後にペアリングが復活しない場合はsudo hidd -sを実行する。

サスペンド復帰でBluetoothアダプタが認識しなくなる場合の対処。/etc/pm/sleep.d に以下のスクリプトを置く。

#!/bin/sh
case "${1}" in
        suspend|hibernate)
                /etc/init.d/bluetooth stop
                ;;
        resume|thaw)
                sleep 1
                /etc/init.d/bluetooth start
                hidd -s
                ;;
esac

サスペンド復帰でBluetoothアダプタが認識しなくなる場合の対処。/etc/acpi/suspend.dに以下のスクリプトを置く。

#!/bin/sh
/usr/sbin/hciconfig hci0 down

スリープ前にアダプタを落とすことで不具合が改善されるとのことだったが、手元の環境では上記のように設定しても問題が改善されなかった。サスペンド前にsudo hciconfig hci0 downを手入力で実行しても同様だった。

再起動しても自動でキーボードを接続させる方法について。記述されている方法を行ないキーボードをペアリングモードにしたところ自動で接続できることを確認した(コードが一部正しくないようなので記事文末リンク先のコードを使用すること)。ただ、手元の環境では接続できたりできなかったりと不安定であるため、マニュアル接続に戻した。

sudo hidd --connect xx:xx:xx:xx:xx:xxによる接続方法についての記述の他、再起動しても自動でキーボードを接続させる方法について。記述されている方法では自動で接続させることができなかった。

予めペアリングを済ませておき、キーボードのボタンで接続状態にしてからsudo hcitool auth aa:bb:cc:dd:ee:ffとするとPINコードのダイアログが出るとの情報。同コマンドを実行したがI/Oエラーが表示され接続できなかった。

bluetooth動作報告。ドングルによりPINコードを毎回変更される機器ではペアリングできない機器があったなどの報告。

KDEアプリbluedevilの情報。gnome-bluetooth(3.2.2-0ubuntu5.1)に含まれるbluetooth-wizardでPINコードでの認証に失敗した。この際はbluedevilを利用するとPINコードの入力無しでペアリングが可能。

Anrdoidスマートフォンでマルチウィンドウを実現するアプリである、Floating Apps FREEについての記事。対応した専用アプリでのみマルチウィンドウ操作が実現できる。

au初のスマートフォン(スマートブック)であり、NetWalkerAndroidスマートフォン版とも言える同機種についての紹介記事。

スマートブック製品は2011年のNEC LifeTouch NOTE以降各メーカーから新製品が発表されていない様子。関連記事として。

Androidスマートフォンをデスクトップコンピュータに変えるというAndromium OSがスマートブックとの連携を検討していくとの記事。

*1:PLANEX BT-MicroEDR2Xは書籍「NetWalkerガリガリ活用術」ほか多数のWebサイトで動作確認されており、REUDO RBK-2000BTIIはマニュアルにNetWalker PC-Z1の対応が表記されている

*2:bluetooth-appletの起動で認証に必要な他のサービスが起動しているのかもしれない

*3:標準pdfビューアのEvinceはhjklで上下左右のスクロールが可能