タブレットで画面ミラーリング

外出先でプレゼンする際にタブレットをディスプレイ代わりにしたいと思ったのが発端です。
外部ディスプレイやプロジェクタ、あるいは180度開くノートPCがあれば事足ります。
私のVersaProは180度開閉機構が無い上に12.1インチディスプレイのため、画面を見せながら作業をするには向きません。

条件

以下を選定の絶対条件とします。

  • セキュリティ優先
    • Android端末のroot化はしない
    • 外部のサーバを経由しない
  • PC側はLinux
    • 親機(ノートPC)は Lubuntu

以下を満たしていれば更にGood!

  • 無料
  • 機種に依存しない
  • 有線(USB接続)

調査結果

調べてみて気が付いたんですが、スマホ・タブレットをサブディスプレイ化するアプリって少ないんですね。
ましてや、Linux + Android の組み合わせだとなかなか見つからない...。

調べた中では”komado2”がすごいマッチしていたんですが、PC側がWindowsのみのサポートのため、今回は泣く泣く除外しました。

なお、”komado2”はタブレットを2種類のモードで使うことができるアプリです。
有料ですが、高機能な上にUSB接続ができるので素晴らしいです。

  • デスクトップ拡張
    タブレットを2台目のディスプレイとして利用可能
  • ミラーリング
    タブレットにPCと同じ画面を表示

base on http://komado.abt.jp/index.html

Komadoについて
komadoはスマートフォンをWindowsのサブモニタとして活用出来るアプリケーションです。
サブモニタの表示はふたつの方法が用意されています。
セカンドディスプレイ
Windowsのセカンドモニタとしてスマートフォンを利用します。
ミラーリング
メインモニタの画面ををスマートフォンへ転送し表示します

VNC

適当なアプリが見つからなかったので、今回はVNCを利用することにしました。

少し分かりにくいのですが、

  • PC側をVNCサーバ
  • タブレット側をVNCビューア

にすると(本来の使い方とは逆ですが)PC側の画面をタブレットに映し出すことができます。

概要 機能 備考
親機 VNCサーバ Lubuntu 16.04.3 x86
子機 VNCビューア Android 4.4
接続 Wi-Fi WANは経由しない

Lubuntu 16.04 に vino 導入

PCにデスクトップ共有"vino"をインストールします。
なお、デスクトップ共有"vino"はVNCサーバです。

base on http://e-words.jp/w/VNC.html

VNC【 Virtual Network Computing 】とは、ネットワークを通じて別のコンピュータに接続し、そのデスクトップ画面を呼び出して操作することができるリモートデスクトップソフトの一つ。
VNCサーバとVNCクライアントの2種類のソフトウェアがあり、操作される側にはサーバを、操作する側にはクライアントをそれぞれインストールする。

インストール

$ sudo apt-get install vino

設定

設定は「デスクトップ共有の設定」から行います。
以下、コマンドで画面を開きます。

vino-preferences

設定は好みもあるかと思いますが、私は以下の項目にチェックを入れました。

  • 他のユーザが自分のデスクトップを表示できる
  • このマシンへの接続を毎回確認する
  • 通知領域のアイコンを表示 → 誰かが接続している時のみ

vino 起動

ファイアウォール解除

VNCサーバはデフォルトで5900番ポートを使用するので、開放します。

$ sudo ufw allow 5900
$ sudo ufw reload

$ sudo ufw status
状態: アクティブ

To                         Action      From
--                         ------      ----
5900                       ALLOW       Anywhere                  
5900 (v6)                  ALLOW       Anywhere (v6)             

VNCサーバ vino 起動

$ sudo /usr/lib/vino/vino-server

※コンソールが起動している間(または Ctrl + C するまで)、有効です。

Anrdoid で VNCビューア

VNCビューアにはPC版も有名な"RealVNC - VNC Viewer"を使用しました。

上記(でなくても構いませんが)VNCビューアを"Google Play ストア"から導入したらPCのIPアドレスなどを登録して接続します。

追加設定

以下のメッセージが表示されたので、リモートアクセスの暗号化をOFFにします。

The authentication mechanism requested cannot be provided by the computer.

要求された認証メカニズムは、コンピュータによって提供されることはできません。

※セキュリティの観点からはOFFにすべきではありませんが、上記「デスクトップ共有の設定」で接続の有無が判断しやすいことと、今回は使用時のみVNCサーバを起動する運用のため、良しとしました

暗号化OFF設定

dconfの編集

"dconf"はユーザ設定を管理するキーベースの設定システムで、デスクトップ環境やアプリケーションの設定、キーボード割り当て等がまとめられています。

base on https://debian-handbook.info/browse/ja-JP/stable/sect.graphical-desktops.html

アプリケーション設定データは DConf データベースに保存されます。
従って、設定情報を問い合わせたり編集することが可能です。
これを行うには、gsettings や dconf などのコマンドラインツール、または dconf-editor グラフィカルユーザインターフェースを使います。

dconfエディタの導入
$ sudo apt-get install dconf-editor
dconfの設定変更

導入したdconfエディタを起動して編集します。

dconf-editor

※設定変更は即時反映されます

  • dconfエディタ
    • dconf
      • org
        • gnome
          • desktop
            • remote-access
              • "require-encryption"のチェックをOFF

base on require-encryption

If true, remote users accessing the desktop are required to support encryption. It is highly recommended that you use a client which supports encryption unless the intervening network is trusted.

TRUE にすると、リモートユーザーがデスクトップにアクセスするには暗号化がサポートされている必要があります。このようなアクセスを取りなすネットワークが信頼できるものでない限り、暗号化をサポートしているクライアントの使用を強く推奨します。

VNCビューアの暗号関連エラーの場合は、上記設定でクリアされるはずです。