先日、AmazonのBlackFridayセールもあったのでAmazon Fire HD 10
タブレット(以降FireHD10
とする)を購入したかたも多かったかなと思います。
自分は以前のセールで購入していますが、先日はWindowsのマルチモニタ化して、サブモニタとして使用することができました。
今回はRaspberryPi
のモニタにできないかの挑戦をしてみました。結果からいうと単純にモニタにはできませんでした。ただ、VNC
で接続ができたのでモニタぽくは使用することができました。VNC
による接続になったのでマウスやキーボードのエミュレーションをタブレットのVNC
アプリ側でできるようになり、運用が割と簡単になったという利点はありました。ただ、その使い心地がいいかといわれると最低限度のレベルでの操作にとどまるかなとは思います。開発イベント(例えばハッカソンなど)では、このような接続で急場を凌ぐといったこともよくあるので、メモとして残しておこうかなと思います。ちょっとだけ引っかかるところもありますが、それも記載しておこうと思います。
タイトルは「FireHD10
をRaspberryPi
のモニタにする」としていますが、どちらかというと「FireHD10
からRaspberryPi
を操作する」という表現のほうがあっているかなとは思います。
FireHD10をRaspberryPiのモニタにする
今回はFireHD10
からRaspberryPi
へVNC
で接続することになります。自分は自己責任でFireHD10
をPlayストアなどのアプリをインストールすることで、一般にあるAndoroid
タブレットなどと同様にアプリをインストールすることができる状態にしてあります。そのため、今回の情報はごく一般にあるAndroid
タブレットでも同様に動作するかもしれません。
作業としては2つの作業があります。
VNC
の有効化
VNC
の有効化に関してはCLIでもGUIでもどちらでも行うことができますが、今回はCLIで操作をします。
ターミナルのCLIからraspi-config
コマンドを実行して設定をするのが一番ポピュラーだと思います。
以下の様にコマンドを実行し、
$ sudo raspi-config
以下の様にmenuが表示されたら、
次の操作を行っていきます。
3 Interface Optiopns
を選択し、Enterキーを押下P3 VNC
を選択し、Enterキーを押下- VNC Serverをを有効にするか尋ねられるので、Yesを選択し、Enterキーを押下
- VNCサーバが有効化されたメッセージが表示
1) 3 Interface Optiopns
を選択し、Enterキーを押下
2) P3 VNC
を選択し、Enterキーを押下
3) VNC Serverを有効化
4) VNCサーバが有効化されたメッセージの表示
これでVNCの有効化に関しては終了です。raspi-configコマンドのメニューを終了させます。 基本的にはこれでいいのですが、残る手順忘れると接続できないようです。
HDMIホットプラグ有効(起動後にHDMIの活線挿抜を有効にする)
残る手順はHDMIのホットプラグ有効化なのですが、普通に考えて今回のような場合には、HDMI接続を接続しないになぜ設定が必要かがわからないかもしれません。
実際にこの設定を忘れて、VNC
接続を行うと以下のような表示が行われます。VNC
としては接続はされるのですが、Xの画面は全く表示されず画面に大きくCannot currently show the dekstop
と表示されます。
ネットを検索すると、以下の様な情報がでてきます。HDMIケーブルを接続していれば問題なく、VNC
接続ができるのですが、HDMIケーブルの接続を切り離すとVNC接続ができなくなるといった現象になります。HDMIのホットプラグの設定を行うことでHDMI接続が保持される(終了されず)ためVNC接続ができるようになるということのようです。
では、HDMIのホットプラグ設定を有効化してみます。設定は```/boot/config.txtに含まれるので、このファイルを編集していきます。
$ sudo vi /boot/config.txt
ファイルを開くと設定項目がでてきますがその中のhdmi_force_hotplug=1
という項目を探し、行頭にある#
を削除することで非コメント化して有効にします。
ファイルの編集が終わったら、保存したあと、RaspberryPiを再起動します。これで準備完了です。
VNC
で接続する
今回はFireHD10にはVNC Viewer
というアプリを使用して接続を行いますので、ストアからインストールを行います。
Amazonのストアでは存在していませんが、無料のVNC
アプリをダウンすればしようできるでしょう(結構投げっぱなしですみません)
インストール後にRaspberryPi
に接続するのですが、Android
ではデフォルトではmDNS
(Avahi
やBonjour
)の名前参照ができないので、IPアドレスを接続先として入力する必要があるので、注意が必要です。
以前のエントリでLAN内のRaspberryPi
のIPアドレスを探す方法を書きましたのでそれを参考にしてみてください。
参考
接続でIPアドレスを設定することで、VNC接続ができるようになります。
接続するRaspberryPiのIPアドレスを指定
これで接続するとFireHD10にRaspberryPiのXの画面が表示されます。
FireHD10
側のタッチパットも有効なので、タブレットのタッチ操作も可能です。また、マウスやキーボードの操作もできます。
RaspberryPi
本体に接続しなくてよいのが大きなポイントかもしれません。
また、先程もいいましたがこの設定は一般のAndroidでも同じことができるのでChromebook
でも同様に動かす事ができます。
ChromebookからRaspberryPiに接続する
ただ、キーボードやマウスを使用しなくていいのは利点だということをいっていますが、使い心地がいいわけではないので、最低限さわることができるという程度だと思ったほうがいいかなと思いますのであしからず。
おわりに
Windowsのマルチモニタというのとは少し趣は違っていますが、ほぼ同様のことができました。開発系のイベントでできるだけ持っていくものを減らすことができれば…と思うことが多かったのですが、今回の方法を使用すればキーボード、マウスの代わりにタブレットを持っていけば代わりになるという点では効果は得られそうです。
ちなみにiPad
でも同じことはもちろんできます。コストを考えるとやっぱりFireHD10あたりがいいような気がしますが。