2015/12/29

Raspberry Piに挑戦-VNCサーバーの設定

最低限の設定が終わったので次の段階。
普段使っているPCから操作できるようにVNCサーバーをインストールします。
VNCサーバーも色々種類があり買った本には「TightVNC」が通信データを圧縮して軽快に動作するとありましたが、TightVNCはRaspberry Piに接続しているディスプレイの画面と別の画面、新規のX Windowを作りそれを表示するとのこと。
自分の用途の場合は同じ画面が表示されてほしいので、同じ画面を表示するという「X11VNC」をインストールします。

色々なサイトの例にしたがい、引き続きターミナルのCUI環境から操作。
(GUIはマウスで操作できますがリストの表示・検索に時間が掛かるので、インストールするパッケージの名前がわかっていたりコピペの場合はCUIで操作したほうが早いです)

  • sudo apt-get -y install x11vnc
apt-getの後に-yが付きましたが、これは途中でy/nと聞かれた時にyを自動入力するオプションです。

続いてx11vncの接続時パスワードの設定。
  • x11vnc -storepasswd
「Enter VNC password」と出るので設定するパスワードを入力、確認用でもう一度入力、パスワードを保存するか聞いてくるので y を入力。
設定が終わったので、下記コマンドで起動します。
  • x11vnc -usepw

長いメッセージが出て止まりますので、ここからは別のPCから接続できるか確認。
別のPCでVNC Viewerを起動しRaspberry PiのIPアドレスにX11VNC起動時に表示されたPORT番号(5900が標準かと)を付加してConnect。


ContinueやOKを押していきパスワード入力画面になったら先ほど設定したパスワードを入力してOK。これで表示されます。
(Raspberry PiのIPアドレスはRaspberry Piのデスクトップ画面の右上のPCのアイコンの上にカーソルを持っていくと表示されます)

リモート先PCのVNC Viewerを閉じると、Raspberry PiのX11VNCも終了します。これだと不便なのでRaspberry Piの起動時に自動起動し、終了しない設定を施します。
Raspberry Piのファイルマネージャなどで「/home/pi/.config/」の下に「autostart」というフォルダを作成し、その中に「x11vnc.desktop」というファイルを作成。
ファイルには下記内容を書き込みます。

  • [Desktop Entry]
  • Encoding=UTF-8
  • Type=Application
  • Name=X11VNC
  • Comment=
  • Exec=x11vnc -usepw -forever -display :0 -ultrafilexfer
  • StartupNotify=false
  • Terminal=false
  • Hidden=false
(20160123: パスワードを使用しない設定になっていたのを修正)
これで再起動するとVNCサーバーが起動したままになるので、Raspberry Piにキーボードやディスプレイを接続する必要が無くなります。
(上記の設定ファイルを別のPCで作っておきFTPクライアントでRaspberry Piに接続、目的のフォルダを作って作成しておいたファイルをアップロードする、という手もあります)


VNC経由で表示される画面は最初にRaspberry Piにつないでいたディスプレイの大きさと同じになります。
自分の場合Raspberry Piにつないでいたディスプレイは1920x1200、リモート先はノートPCのためこれより小さい。このためリモート先では全体の画面が見えずスクロールさせないといけない状態です。

そこでRaspberry Piの起動時のディスプレイサイズを変更します。
Raspberry Piの「/boot/config.txt」というファイルを編集します。
上記のファイルは管理者権限でないと編集できないので、ターミナルから下記のように入力して編集します。

  • sudo leafpad /boot/config.txt
管理者権限で「leafpad」というエディタを起動、「/boot/config.txt」を編集するというものです。
(「leafpad」の代わりに「vi」としているところが多いですがunixに殆ど触ったことがない自分みたいな人間にはviは使いこなせません。leafpadはGUIのエディタでまあ大抵の人は使えるかと思います)

config.txtは、10行目ぐらいにある「#disable_overscan=1」の最初の#を削除。
(#はその行がコメント行であることを示しています。これを消すことでその行が意味をもつ設定になります)
続いて「#hdmi_group=1」「#hdmi_mode=1」とある行で、同じく#を削除し、後ろの数字も変更します。
自分の環境では「hdmi_group=2」「hdmi_mode=46」と設定。hdmi_modeが画面サイズの設定で、46は1440x900、60Hzの設定。
(その他、22で1280x768、34で1280x960、41で1400x1050、56で1600x1200、82で1920x1080に。詳しい設定はどっかで説明していると思います)

そして「# NOOBS Auto-generated Settings:」とある行から下が自動設定されたディスプレイの情報。
ここから下のすべての行の頭に#をつけます。
編集が終わったら保存、エディタを終了して再起動。
これで指定した画面サイズでRaspberry Piが起動、VNCで接続してもいい大きさで表示されるようになりました。

0 件のコメント: