Ⅵ. VNCのインストール

 リモートマシンのデスクトップを手元で扱えるVNC(Virtual Network Computing)サーバーを導入します。これによって、Windows PCから Raspberry PiのGUIであるX desktopを利用できるようになります。VNCの動作確認が完了したら、まだキーボードやモニターがRaspberry Piにつながっているうちに(次のステップで無線LANを構築したら撤去するので)、ログイン方式の変更と動作検証を行います。

1.定義ファイルの編集について

 これ以降、システムの重要な定義ファイルを編集したり、新たに定義ファイルを作成する必要がでてきます。ファイルを編集する場合は事前に元ファイルの控えを取っておかないと、複雑な修正をした後で正しく動作しない場合など、元に戻すすべがなくなってしまいます。したがってバックアップは必須作業です。また編集ではエディターを使用するため、その使い方を知っておく必要があります。
 以上のことから、ここではバックアップの作成と、nanoと呼ばれるエディタについて簡単にまとめておきます。

①バックアップの作成

 バックアップの作成はとても簡単です。次のようにコピーコマンド cp に続けて、同じディレクトリ(あるいは所定のディレクトリ)に「.org」などを付してコピーするだけです。
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.org
 元に戻す場合はパスを逆に指定します。

②nanoエディタの基本

 nanoは次のように編集したいファイルのフルパスを指定して起動します。
sudo nano /etc/dhcpcd.conf
sudo nano /etc/test.conf
 図のように表題部にフルパスを伴って、dhcpcd.confのように存在するファイルが指定されるとファイルの内容が表示され、編集可能になります。test.confのような存在しないファイルでは内容に空白が表示されます。
 画面下部に主要な操作コマンドが表示されるので、初心者に優しいエディタといえるでしょう。編集を効率的に行うためには、さらにいくつかの機能を知っておくと手早く進めることができます。
 ここでは、Poderosa上でnanoを使用する場合に役立つコマンドを整理しておきます。
 〔カーソル移動〕
   ・カーソルの上下左右移動[↑][↓][←][→]を使用
   ・カーソルを先頭行へ[ESC] + [\]
   ・カーソルを最終行へ[ESC] + [/]
   ・カーソルを行頭へ[Ctrl] + [A] または [Home]
   ・カーソルを行末へ[Ctrl] + [E] または [End]
   ・カーソルを次の単語へ[Ctrl] + [Space]
   ・カーソルを前の単語へ[ESC] + [Space]
 〔行のコピー&カット&ペースト〕    
   ・行のコピー[ESC]+ [6]
   ・行のカット[Ctrl] + [K]
   ・行のペースト[Ctrl] + [U]
 〔画面移動〕
   ・次画面へ[Ctrl] + [Y] または [PgDn]
   ・前画面へ[Ctrl] + [V] または [PgUp]
 〔単語検索〕
   ・検索を開始[Ctrl] + [W]
   ・同じ検索を続行[ESC] + [W]
 〔一括削除〕
   ・カーソルから後方削除[ESC] + [T]
 〔ファイル書き込み〕
   ・書き込み[Ctrl] + [O]
 〔ファイル読み込み〕
   ・読み込み[Ctrl] + [R]
     →ファイルリスト表示[Ctrl] + [T]
 〔nanoの終了〕
   ・終了指示[Ctrl] + [X]
     →確認メッセージに対して[N] を入力
 上記の「+」記号は、左右のキーを同時に押さえることを示します。問題になるのは特定範囲のコピー&ペーストの指定です。Poderosa上のnanoでは選択開始の指定が効かないので、コピーする部分をマウスで指定します。続いて
   ・[Alt] + [C] でコピーして
   ・[Alt] + [V] で貼り付けます。
貼り付ける位置はカーソルの位置になります。
 GUI環境のX desktopからLXTerminal(Windowsのコマンド入力画面に似たもの)を起動した場合は、コマンドの使い方が少し変わってきます。範囲指定ではカーソルをコピーしたい位置に合わせて、[Ctr]と[^]を同時に押さえるとそこが起点になって、[→]移動で背景が反転表示されて選択が有効になります。このように、環境が変わると[Alt]が[ESC]でなければ動作しなかったり、その逆になったりします
 まずPoderosaで上の一連のコマンド操作に慣れてしまえば、環境が変わってもすぐに対応できるはずです。

2.TightVNCのインストール

1)次のコマンドでVNCサーバーの改良版である TightVNCをインストールします。
sudo apt-get install tightvncserver
2)次のメッセージが表示されたらVNC用のパスワードを設定してください。
 このパスワードはVNC起動時に必要なのでメモしておきましょう。
You will require a password to access your desktops.
 必要ならクライアント専用のパスワードも設定できます。
Would you like to enter a view-only password (y/n)?
 パスワードの設定が終わると数分でインストールが完了します。
  〔注意〕
   もしパスワードを要求されることなく終了したら、tightvncserverと入力してパスワードを設定してください。
   上記と同様のメッセージが表示され同じ要領で設定できます。

3.自動起動の設定

 マシン起動時にVNCサーバーが自動起動するように設定します。
①自動起動定義ファイルの作成

1)/etc/init.d/にvncbootのような名前でファイルを作成します。
sudo nano /etc/init.d/vncboot
2)以下の内容を入力して書き込みます。
 (ポート5901を利用するために「~ :1」とし、-geometryは環境に合うものを指定します)
#! /bin/sh ### 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 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 $USER -c '/usr/bin/vncserver :1 -geometry 1280x800 -depth 16 -pixelformat rgb565' ;; stop) echo "Stopping VNC Server" su $USER -c '/usr/bin/vncserver -kill :1' ;; *) echo "Usage: /etc/init.d/vncboot {start|stop}" exit 1 ;; esac exit 0

②実行権限を与えて自動起動するように登録する

1)実行権限を与えるために、先に作成したvnbootのパーミッションを変更します。
sudo chmod 755 /etc/init.d/vncboot
2)自動起動するようにboot sequenceに登録します。
sudo update-rc.d vncboot defaults
3)リブートします。
sudo reboot
4)リブートが完了したらPoderosaを起動してポートの状態を確認してみましょう。
netstat -lnt
 予定どおりポート5901がLISTEN状態になっていることが分かります。
稼働中のインターネット接続 (サーバのみ)
 Proto  受信-Q  送信-Q  内部アドレス    外部アドレス   状態
 tcp00127.0.0.1:33060.0.0.0:*LISTEN
 tcp000.0.0.0:59010.0.0.0:*LISTEN
 tcp000.0.0.0:60010.0.0.0:*LISTEN
 tcp000.0.0.0:220.0.0.0:*LISTEN
 tcp600:::80:::*LISTEN
 tcp600:::22:::*LISTEN


4.動作確認

1)『Ⅲ.リモート環境の準備』でWindows PCにインストール済みのVNC Viewerを起動して
 [Connect]ボタンをクリックします。
 パスワードを入力して[OK]をクリックします。
2)VNC Viewer上にRaspberry PiのX desktopが表示されました。

   

 これで、Windows PCからリモートでX desktopを利用できるようになりました。古いRaspberryではかなり重かった動きがPi2では快適で、まったくストレスを感じないのが嬉しいですね。

5.ログイン方式の変更とLXTerminalの操作

 Raspberry Piのほうへ移動してください。これからRaspberry側で作業するのですが、もしモニターの電源を切っていたらONにしても表示がうまくいかないことがあります。そのような場合はWindows PC側から次のコマンドでRaspberry Piの電源を切ってください。
sudo poweroff
Raspberry PiのLEDのチカチカが止まったのを確認して電源コードを抜き、再接続して起動を待ちましょう。

①ログイン方式の変更

 再起動するとX desktopが表示されます。マウスで[Menu]をクリックして[設定]から[Raspberry Piの設定]を選択します。設定画面が開くと、「ブート」の設定が[デスクトップ]になっていることが分かります。このような状態では誰でも操作できてしまうので危険です。所定のログインをしなければコンタクトできないように変更しましょう。右隣の[CLI]をチェックしてください。Command Line Interfaceに切り替えるわけです。さらに「自動ログイン」の['pi'ユーザーとしてログインする]のチェックを外して、[OK]ボタンをクリックします。この状態でリブートの許可を求められたら[No]を返答してください。

②変更結果の検証

 実はすぐにリブートを許可しても良かったのですが、せっかくですからここではLXTerminalを使ってリブートしてみましょう。先の[Menu]の3つ右隣りにあるモニターのアイコンをクリックしてください。次のような画面が開きます。この画面上でWindows側のPoderosa同様にコマンドを入力することができます。図のように「sudo reboot」と入力して[Enter]を叩いてください。直ちにリブートが始まります。
 リブートが終わると次のような画面で停止しています。この状態でログインユーザーpiを入力します。次にパスワードを求められるので入力するとログインが完了して、LXTerminalと同じようなコマンド待ち状態に移行します。
 このコマンド画面からX desktopに切り替えたいときは、次のコマンドを入力します。
startx
 数秒でGUI画面が表示されます。
 ログイン方式に移行したことで、IDとパスワードによる安全な運用が可能になりました。