VNC(Virtual Network Computing)

ときには、ラズベリーパイ上で直接作業するのは都合が悪い場合もあるでしょう。 別のコンピュータからリモートコントロールで作業したくなるかも知れません。

VNCはグラフィカルなデスクトップ共有システムで、 あるコンピュータのデスクトップインターフェースを別のコンピュータからリモートコントロールできます。 VNCはコントローラー側からキーボードとマウスのイベントを送信して、 リモートホスト側からネットワークを介して画面の更新情報を受け取ります。

ラズベリーパイのデスクトップ画面を、別のコンピュータ上のウインドウから見ることができます。 ラズベリーパイそのものを動かしているかのように制御することができるでしょう。

  • ラズベリーパイ上で(モニターを使うかSSHを使って)、TightVNCパッケージをインストールしてください。
sudo apt-get install tightvncserver
  • 次に、TightVNCサーバを実行してください。パスワードの入力と、任意でview-onlyパスワードの入力が求められます。
tightvncserver
  • ターミナルからVNCサーバを開始してください。この例では、VNCディスプレイ0(:0)のセッションを フルHDの解像度で開始します。
vncserver :0 -geometry 1920x1080 -depth 24
  • 次はコンピュータ上でVNCクライアントをインストールして実行してください。
    • Linuxマシン上でxtightvncviewerをインストールしてください。
      sudo apt-get install xtightvncviewer
    • もしくは、TightVNCをtightvnc.comからダウンロード可能です。

自動化とブート時の起動

ラズベリーパイ上でVNCサーバを起動するコマンドを書いた単純なファイルを作り、ブート時に実行させることができます。

  • 次のシェルスクリプトを含むファイルを作成してください。
#!/bin/sh
vncserver :0 -geometry 1920x1080 -depth 24 -dpi 96
  • このファイルを(例えば)vnc.shとして保存してください。
  • このファイルを実行可能にしてください。
chmod +x vnc.sh
  • これで、いつでも次のコマンドで実行することができます。
./vnc.sh

ブート時に実行するには次のようにします。

  • ルート権限でラズベリーパイのターミナルにログインしてください。
sudo su
  • ディレクトリ/etc/init.d/に移動してください。
cd /etc/init.d/
  • ここで、次のスクリプトを含む新しいファイルを作成してください。
### BEGIN INIT INFO
# Provides: vncboot
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start VNC Server at boot time
# Description: Start VNC Server at boot time.
### END INIT INFO

#! /bin/sh
# /etc/init.d/vncboot

USER=pi
HOME=/home/pi

export USER HOME

case "$1" in
 start)
  echo "Starting VNC Server"
  #Insert your favoured settings for a VNC session
  su - pi -c "/usr/bin/vncserver :0 -geometry 1280x800 -depth 16 -pixelformat rgb565"
  ;;

 stop)
  echo "Stopping VNC Server"
  /usr/bin/vncserver -kill :0
  ;;

 *)
  echo "Usage: /etc/init.d/vncboot {start|stop}"
  exit 1
  ;;
esac

exit 0
  • このファイルを(例えば)vncbootとして保存してください。
  • このファイルを実行可能にしてください。
chmod 755 vncboot
  • dependency-based boot sequencingを有効にしてください。
update-rc.d /etc/init.d/vncboot defaults
  • dependency-based boot sequencingの有効かに成功すると、次のメッセージが表示されます。
update-rc.d: using dependency based boot sequencing
  • しかし、次のメッセージが表示された場合はエラーです。
update-rc.d: error: unable to read /etc/init.d//etc/init.d/vncboot
  • このエラーが出た場合は、次のコマンドを試してみてください。
update-rc.d vncboot defaults
  • ラズベリーパイを再起動すると、VNCサーバがすでに開始されているのが分かるはずです。

ここからは、VNCクライアントプログラムをPC上で使ってVNCサーバに接続しリモートコントロールします。 オペレーティングシステムに応じて、次の説明に従ってください。

このページについて

このページはラズベリーパイ財団が権利を保有するRaspberry Pi Documentation五十嵐システムズが日本語訳したものです。
Creative Commons Attribution 4.0 International Licenceのもとで公開されております。
原文はhttps://github.com/raspberrypi/documentationの成果によって作成されています。

なお、このページは2015年6月に翻訳しており、それ以後の更新内容は翻訳に反映していないため、内容が原文とは異なる場合があります。