Raspberry PiでVNCによるリモートデスクトップを使う
はじめに
Raspberry Piをヘッドレス構成(キーボードやマウス、モニタを接続しない構成)で使いたいが、それでもグラフィカルなデスクトップ環境全体にアクセスしたい、という場合にちょうどよい方法がある。 Virtual Network Computing(VNC)というプログラムを使えば、ネットワーク越しにリモートデスクトップへアクセスできる。
学校や個人で、特定のアプリケーション(Scratchや、独自のグラフィカルインターフェースの作成など)のためにデスクトップ環境全体が必要な場合、VNCクライアントを使ってRaspberry Piにアクセスするのがよい選択肢になるだろう。
RealVNCを使ってRaspberry Piのグラフィカルデスクトップにアクセスする様子
朗報として、Raspberry Piの推奨OSであるRaspbianには、標準でRealVNCがインストールされている。 一方で厄介なのは、それを別の手段で有効化する必要があるという点である。
必要な部品
このチュートリアルの内容を実際に試すには、Raspberry Pi、電源、microSDカードが必要である。 モニタ、キーボード、マウスは不要である。
Note
注:プロジェクトをより小型にしたい場合は、Raspberry Pi Zero Wでもこのチュートリアルの内容を試せるはずである。
あると便利な部品
とはいえ、キーボードとマウス、モニタを使ってVNCサーバーを有効化することもできる。 一度有効化してしまえば、(本当に使いたい場合を除いて)これらの周辺機器はもう必要なくなる。
参考になるチュートリアル:
以下の概念に馴染みがなければ、続きを読む前にこれらのチュートリアルを確認しておくことをおすすめする。
Note
補足:このチュートリアル中の画像が見づらい場合は、遠慮なくクリックして拡大表示してほしい。
OSを書き込む
Raspberry Piにはいくつかの利用可能なOSがあり、初心者にはNOOBSを使って標準のRaspbianイメージをインストールすることがよく勧められる。 このガイドでは、VNCと組み合わせて使うヘッドレス版のRaspbianを設定する方法を紹介する。 Headless Raspberry Pi Setupチュートリアルの一部の手順に沿って進めるが、今回はフル版に付属するLinuxのXサーバーが必要になるため、Raspbian Liteではなくフル版のRaspbianを使う点に注意してほしい。
まず、最新版のRaspbianをダウンロードする。
Note
注:このチュートリアルはRaspbian Stretch(2018年6月版)を使って作成されている。異なるバージョンを使う場合、このチュートリアルとは異なる手順が必要になることがある。2018年6月版のRaspbianが必要な場合は、以下からダウンロードできる。 Raspbian Stretch(2018年6月版)ダウンロード(ZIP)
SDカードにイメージを書き込むには、Etcherというプログラムをおすすめする。 ダウンロードしてインストールする。 (必要であればmicroSD USBリーダーを使って)SDカードをパソコンに挿し、Etcherを起動する。 OSのイメージファイルを選択し(zipを展開する必要はなく、ダウンロードした.zipファイルをそのままEtcherで選択すればよい)、SDカードリーダーを選択して、**Flash!**ボタンをクリックする。
VNCを有効化する
VNCサーバーを有効化するには、Raspberry Piを直接操作する必要がある。 そのための方法はいくつかある。
- キーボード、マウス、モニタを接続する。デスクトップ左上のTerminalアイコンをクリックすると、ターミナルウィンドウが開く。
- シリアル接続でターミナルウィンドウを開くこの手順に従う。
- イーサネット経由のSSHでターミナルウィンドウを開くこの手順に従う。
- WiFi経由のSSHでターミナルウィンドウを開くこの手順に従う。
(任意)RealVNCをインストールする
標準では、RaspbianにはVNCサーバー(RealVNC)がインストールされているはずである。 別のOSを使っている場合は、RealVNCを自分でインストールする必要があるかもしれない。 たいていのDebian系OS(Raspbianも土台はDebianである)では、apt-getを使ってRealVNCをインストールできる。 ターミナルで、次のように入力する。
sudo apt-get update
sudo apt-get install real-vnc-server
sudo apt-get install real-vnc-client
VNCサーバーを有効化する
VNCサーバーを有効化するには、Raspberry Piの設定ツールを開く必要がある。
sudo raspi-config
Interfacing Optionを選び、続けてVNCを選ぶ。 次の画面でYesを選び、Enterキーを押して変更を保存する。
パスワードの変更やキーボードレイアウトの変更など、他に必要な設定があれば自由に行ってよい。
raspi-configのホーム画面に戻ったら、右矢印キーを2回押してFinishを選び、Enterキーを押す。
ローカルネットワーク経由でVNCを使う
ホストとなるパソコンがRaspberry Piと同じローカルネットワーク上にある場合(たとえば同じWiFiやイーサネットのネットワークに接続している場合)は、Raspberry Piへ直接VNC接続できる。 この方法にはいくつかの利点がある。もっとも簡単な方法であり、RealVNCのアカウント登録も不要で、インターネットに接続していない閉じたネットワークでも行える。 欠点は、Piにアクセスするには同じネットワーク上にいる必要がある(つまり物理的に接続しているか、VPN経由である必要がある)という点である。 これはダイレクト接続と呼ばれる方式である。
インターネット経由でRaspberry Piにアクセスしたい場合は、次のセクションを参照してほしい。
Raspberry Piのターミナルで、次のコマンドを入力する。
ifconfig
inetの隣に4つの数字の並びとして表示される、Raspberry PiのIPアドレスを控えておく。 WiFiで接続している場合はwlan0の設定の下に、イーサネットで接続している場合はeth0の設定の下に表示される。
ホスト側のパソコンで、RealVNC Viewerのダウンロードページにアクセスし、使用しているOS向けのVNCクライアント(VNC Viewer)をダウンロードする。 すべてデフォルトの設定のままインストールする。
VNC Viewerを開く。上部のアドレスバーに、Raspberry PiのIPアドレスを入力する(ホスト側のパソコンとPiが同じネットワーク上にあることをもう一度確認しておくこと)。
Enterキーを押し、「VNC Server not recognized」という警告が出たらContinueをクリックする。 Authenticationウィンドウが表示されるはずである。 Piのログインユーザー名とパスワードを変更していない場合、デフォルトのログイン情報は次のとおりである。
- ユーザー名: pi
- パスワード: raspberry
Note
警告:パスワードは必ず変更することを強くおすすめする。同じネットワークにアクセスできる人であれば、デフォルトのユーザー名とパスワードを試すだけで簡単にPiにアクセスできてしまう。
認証に成功すると、Raspberry Piのグラフィカルデスクトップが表示されるはずである。 これで、まるでキーボードとマウス、モニタを備えたPiの前に座っているかのように、あらゆる操作をリモートで行えるようになる。 ウィンドウ上部にマウスを乗せると、ドロップダウンボックスが表示され、セッションを終了するボタンをはじめ、RealVNCのさまざまな設定にアクセスできる。
インターネット経由でVNCを使う
ローカルネットワーク上でリモートデスクトップを使うほうが、はるかに高速で滑らかな体験になりやすいが、必ずしもそのネットワークに直接アクセスできるとは限らない。 幸い、RealVNCを使えば、インターネット経由でも自分のコンピュータにログインできる。
もう一つの朗報は、PiのIPアドレスを探す手間がかからないという点である。
RealVNCアカウントに登録する
Note
注:RealVNCのクラウドサービスを使うには、同社のサイトでアカウント登録が必要になる。また、クラウド接続サービスが無料なのは非商用・教育目的の利用に限られる点にも注意してほしい。詳しくはRealVNCの料金ガイドを参照してほしい。
まず、RealVNCのサイトでアカウントに登録する(すでにアカウントがあればサインインする)。 Accountページに移動し、Home版のVNC Connectの下にあるActivateをクリックする。
PiでVNCクラウド接続を有効化する
Note
注:この次のステップでは、Raspberry Piのグラフィカルデスクトップにアクセスできる状態が必要である。これには、キーボード・マウス・モニタを使う方法や、ローカルネットワーク経由でVNCに直接接続する方法がある。コマンドラインからVNCクラウド接続を有効化できるのは、RealVNCのEnterprise版のみである。
PiでVNCが有効になっていることを前提に、デスクトップ右上のVNCロゴをクリックする。 RealVNCの設定ウィンドウが開く。 そのウィンドウの右上にあるプロパティボタンをクリックし、**Licensing…**を選択する。
Sign in to your RealVNC accountが選択された状態のまま、Nextをクリックする。
RealVNCのメールアドレスとパスワードを入力し、Sign Inをクリックする。 次の画面で、接続方式をDirect and cloud connectivityに変更する。
Nextをクリックする。設定内容を確認し、Applyをクリックする。 パスワードを求めずに権限が付与されたという警告のポップアップが表示された場合は、Closeをクリックする。 次の画面でDoneをクリックする。
Raspberry Piをリモートで操作する
ホスト側のマシンで、RealVNC viewerをダウンロードしてインストールする。 アプリケーションを開き、右上のSign inボタンをクリックする。 メールアドレスとパスワードを入力し、Sign inをクリックする。
右側に、アドレス帳(過去に使用した接続先)と、「Team」(VNCクラウド接続が可能なコンピュータの一覧)が表示されるはずである。 Teamをクリックすると、VNCの準備が整ったRaspberry Piが一覧に表示されているはずである。
Raspberry Piをダブルクリックして接続する。 Raspberry Pi上のVNCサーバーが確認されたことを説明するポップアップウィンドウが表示されるはずである。 Continueをクリックする。 Authenticationウィンドウが表示されるはずである。 Piのログインユーザー名とパスワードを変更していない場合、デフォルトのログイン情報は次のとおりである。
- ユーザー名: pi
- パスワード: raspberry
Note
警告:パスワードは必ず変更することを強くおすすめする。同じネットワークにアクセスできる人であれば、デフォルトのユーザー名とパスワードを試すだけで簡単にPiにアクセスできてしまう。
認証されると、Raspberry Piのデスクトップが表示されるはずである。 ウィンドウ上部にマウスを乗せると、ドロップダウンが表示され、セッションを終了するボタンをはじめ、RealVNCのさまざまな設定にアクセスできる。
もう一つ気の利いた機能として、スマートフォンやタブレットからRaspberry Piを操作することもできる。 iTunes StoreまたはGoogle PlayからVNC Viewerアプリをダウンロードする。 アプリを開いてサインインし、Raspberry Piに接続すればよい。
まとめ
RealVNCについてさらに詳しく知りたい場合は、ドキュメントページを確認することをおすすめする。
RealVNCはRaspbianに標準搭載されているが、Linux向けの他のVNCアプリケーションも存在する。代替の選択肢としては、次のようなものがある。
Raspberry Piにネットワークアクセスの手段がまったくない場合、Pi自身をWiFiアクセスポイントにすることで、独自のネットワークをホストさせることもできる。 これによって、ルーターなどの他のネットワーク機器に頼らずに、別のパソコンからSSHやVNCなどでPiに接続できるようになる。
さらに参考になるチュートリアルを紹介する(いずれも英語)。
- Setting up a Raspberry Pi 3 as an Access Point:Raspberry Piをアクセスポイントとして設定し、ローカルのイーサネットネットワークに接続して、他のWiFi機器にインターネットを共有する方法。
- Python Programming Tutorial: Getting Started with the Raspberry Pi:Raspberry Pi上でPythonを使ってハードウェアを制御するプログラムを書く方法。
- Raspberry Pi Twitter Monitor:Raspberry Piを使ってTwitterのハッシュタグを監視し、LEDを点滅させる方法。
- Raspberry gPIo:PythonまたはC++を使ってRaspberry PiのI/Oラインを制御する方法。
- Raspberry Pi Zero Helmet Impact Force Monitor:人体はどれだけの衝撃に耐えられるのか。ヘルメット、Raspberry Pi Zero、加速度センサーを使って衝撃力モニターを自作する方法。
- Setting Up the Pi Zero Wireless Pan-Tilt Camera:Raspberry Pi Zeroを、ヘッドレスなワイヤレスパン・チルトカメラとして組み立て、プログラムし、アクセスする方法。
- Using Flask to Send Data to a Raspberry Pi:PythonのFlaskフレームワークを使い、内部WiFiネットワーク経由でESP8266 WiFiノードからRaspberry Piへデータを送信する方法。
- Raspberry Pi Stand-Alone Programmer:ヘッドレスなRaspberry Piを、AVRマイクロコントローラにhexファイルを書き込むスタンドアロンプログラマとして使う方法。
タグ: 概念、接続ガイド、IoT、Raspberry Pi、シングルボードコンピュータ
出典:How to Use Remote Desktop on the Raspberry Pi with VNC(SparkFun Learn)を日本語に翻訳し、再構成した。 原文は CC BY-SA 4.0 ライセンスで公開されており、本ページも同ライセンスの下で提供する。