FireHD10をRaspberryPiのモニタ化

先日、AmazonのBlackFridayセールもあったのでAmazon Fire HD 10タブレット(以降FireHD10とする)を購入したかたも多かったかなと思います。

自分は以前のセールで購入していますが、先日はWindowsのマルチモニタ化して、サブモニタとして使用することができました。

uepon.hatenadiary.com

今回はRaspberryPiのモニタにできないかの挑戦をしてみました。結果からいうと単純にモニタにはできませんでした。ただ、VNCで接続ができたのでモニタぽくは使用することができました。VNCによる接続になったのでマウスやキーボードのエミュレーションをタブレットVNCアプリ側でできるようになり、運用が割と簡単になったという利点はありました。ただ、その使い心地がいいかといわれると最低限度のレベルでの操作にとどまるかなとは思います。開発イベント(例えばハッカソンなど)では、このような接続で急場を凌ぐといったこともよくあるので、メモとして残しておこうかなと思います。ちょっとだけ引っかかるところもありますが、それも記載しておこうと思います。

タイトルはFireHD10RaspberryPiのモニタにする」としていますが、どちらかというとFireHD10からRaspberryPiを操作する」という表現のほうがあっているかなとは思います。

FireHD10をRaspberryPiのモニタにする

今回はFireHD10からRaspberryPiVNCで接続することになります。自分は自己責任でFireHD10をPlayストアなどのアプリをインストールすることで、一般にあるAndoroidタブレットなどと同様にアプリをインストールすることができる状態にしてあります。そのため、今回の情報はごく一般にあるAndroidタブレットでも同様に動作するかもしれません。

作業としては2つの作業があります。

  • VNCの有効化
  • HDMIホットプラグ有効(起動後にHDMIの活線挿抜を有効にする)

VNCの有効化

VNCの有効化に関してはCLIでもGUIでもどちらでも行うことができますが、今回はCLIで操作をします。 ターミナルのCLIからraspi-configコマンドを実行して設定をするのが一番ポピュラーだと思います。 以下の様にコマンドを実行し、

$ sudo raspi-config

以下の様にmenuが表示されたら、

f:id:ueponx:20211203235624p:plain

次の操作を行っていきます。

  1. 3 Interface Optiopns を選択し、Enterキーを押下
  2. P3 VNCを選択し、Enterキーを押下
  3. VNC Serverをを有効にするか尋ねられるので、Yesを選択し、Enterキーを押下
  4. VNCサーバが有効化されたメッセージが表示

1) 3 Interface Optiopns を選択し、Enterキーを押下

f:id:ueponx:20211203235732p:plain

2) P3 VNCを選択し、Enterキーを押下

f:id:ueponx:20211203235735p:plain

3) VNC Serverを有効化

f:id:ueponx:20211203235737p:plain

4) VNCサーバが有効化されたメッセージの表示

f:id:ueponx:20211203235740p:plain

これでVNCの有効化に関しては終了です。raspi-configコマンドのメニューを終了させます。 基本的にはこれでいいのですが、残る手順忘れると接続できないようです。

HDMIホットプラグ有効(起動後にHDMIの活線挿抜を有効にする)

残る手順はHDMIのホットプラグ有効化なのですが、普通に考えて今回のような場合には、HDMI接続を接続しないになぜ設定が必要かがわからないかもしれません。

実際にこの設定を忘れて、VNC接続を行うと以下のような表示が行われます。VNCとしては接続はされるのですが、Xの画面は全く表示されず画面に大きくCannot currently show the dekstopと表示されます。

f:id:ueponx:20211204000430p:plain

ネットを検索すると、以下の様な情報がでてきます。HDMIケーブルを接続していれば問題なく、VNC接続ができるのですが、HDMIケーブルの接続を切り離すとVNC接続ができなくなるといった現象になります。HDMIのホットプラグの設定を行うことでHDMI接続が保持される(終了されず)ためVNC接続ができるようになるということのようです。

forums.raspberrypi.com

では、HDMIのホットプラグ設定を有効化してみます。設定は```/boot/config.txtに含まれるので、このファイルを編集していきます。

$ sudo vi /boot/config.txt

f:id:ueponx:20211204000956p:plain

ファイルを開くと設定項目がでてきますがその中のhdmi_force_hotplug=1という項目を探し、行頭にある#を削除することで非コメント化して有効にします。

f:id:ueponx:20211204001135p:plain

ファイルの編集が終わったら、保存したあと、RaspberryPiを再起動します。これで準備完了です。

VNCで接続する

今回はFireHD10にはVNC Viewerというアプリを使用して接続を行いますので、ストアからインストールを行います。 Amazonのストアでは存在していませんが、無料のVNCアプリをダウンすればしようできるでしょう(結構投げっぱなしですみません)

f:id:ueponx:20211201013944p:plain

インストール後にRaspberryPiに接続するのですが、AndroidではデフォルトではmDNSAvahiBonjour)の名前参照ができないので、IPアドレスを接続先として入力する必要があるので、注意が必要です。

以前のエントリでLAN内のRaspberryPiIPアドレスを探す方法を書きましたのでそれを参考にしてみてください。

参考

uepon.hatenadiary.com

接続でIPアドレスを設定することで、VNC接続ができるようになります。

接続するRaspberryPiのIPアドレスを指定

f:id:ueponx:20211204002418p:plain

これで接続するとFireHD10にRaspberryPiのXの画面が表示されます。

f:id:ueponx:20211201013929p:plain

FireHD10側のタッチパットも有効なので、タブレットのタッチ操作も可能です。また、マウスやキーボードの操作もできます。 RaspberryPi本体に接続しなくてよいのが大きなポイントかもしれません。

f:id:ueponx:20211201013939p:plain

また、先程もいいましたがこの設定は一般のAndroidでも同じことができるのでChromebookでも同様に動かす事ができます。

ChromebookからRaspberryPiに接続する

f:id:ueponx:20211201013947j:plain

f:id:ueponx:20211201013950j:plain

ただ、キーボードやマウスを使用しなくていいのは利点だということをいっていますが、使い心地がいいわけではないので、最低限さわることができるという程度だと思ったほうがいいかなと思いますのであしからず。

おわりに

Windowsのマルチモニタというのとは少し趣は違っていますが、ほぼ同様のことができました。開発系のイベントでできるだけ持っていくものを減らすことができれば…と思うことが多かったのですが、今回の方法を使用すればキーボード、マウスの代わりにタブレットを持っていけば代わりになるという点では効果は得られそうです。

ちなみにiPadでも同じことはもちろんできます。コストを考えるとやっぱりFireHD10あたりがいいような気がしますが。

/* -----codeの行番号----- */