VNCを使ってスマホからラズベリーパイを触ろう!第2回目は、オートランの設定です。ラズベリーパイ公式サイトのドキュメントの後半、「Automation and run at boot」の項を進めていきます。
オートランの実装に向けて、先にIPアドレスを固定しておきましょう。固定IPにしておけば、VNCアプリから毎回ワンタッチで接続可能になりますね!
今回、新しいRaspbianをインストールし直してからスタートしたのですが、Wi-Fiの設定方法が以前と少々変わっていたので、まずはネットワーク接続からご紹介します!
Wi-Fiの設定
2015-05-05リリースのRaspbian(ver.3.1.8)を新しくインストールしたところ、Wi-Fi設定ツールである「WIFI Config」が見当たりません……どうやら仕様が変わってしまったようです。
ネットワーク設定を探していると、デスクトップの右上にこんなマークを発見!
アイコンをクリックすると、ネットワークの一覧が表示されます。Wi-Fi接続されている場合は、一番上の行のように、緑色のチェックマークが付いて表示されます。
一覧の中から接続したいネットワーク名を選んでクリックすると、パスワードを入力する画面が表示されます。
接続が完了するまで少し時間がかかる事がありますが、図4のようなアイコンに変われば、接続完了!うまくいかない場合は、Wi-Fiアダプタを抜き差ししてみましょう。
ちなみに有線接続だと図5のようなアイコンになります。接続中は、アイコンの2つのディスプレイの中が点滅するアニメーションが見られます。右下の×マークが消えたら、接続完了です!
IPアドレスの固定
VNCのオートランを実現するために、固定IPアドレスを設定してみましょう!
本体はラズベリーパイ2 model B、OSは2015年5月5日リリースの「RASPBIAN ver.3.1.8」を使用しています。(※ネットワーク環境やOSのバージョンによっては、手順が異なる場合があります)
図6は、現状のネットワークの状態です。「wlan0」というネットワークに接続されており、「192.168.0.9」というIPアドレスが自動で割り当てられています。
ネットワークの設定ファイルは「 /etc/network/interfaces 」にあります。編集する前にバックアップを取っておくと安全です。
ファイルをコピーするには「cp」コマンドを使用します。第1引数がコピー元のファイルパス、第2引数がコピー先のファイルパスです。たとえば、同じディレクトリに「interfaces_backup」という名前でコピーする場合は下記のようになります。
sudo cp /etc/network/interfaces /etc/network/interfaces_backup
設定にうつる前に、下準備がもうひとつ。IPアドレスを固定するには、「サブネットマスク」と「デフォルトゲートウェイ」の値が必要となります。
ラズベリーパイからではうまく取得できなかったので、今回は同じネットワーク内にあるWindowsマシンから調べました。図7は、Windows8で「ネットワーク接続の詳細」を表示したところです。このネットワークでは、「サブネットマスク」は「255.255.255.0」、「デフォルトゲートウェイ」は「192.168.0.1」でした。
「ネットワーク接続の詳細」画面は、Windows7・Windows8の場合は、コントロールパネル内の「ネットワークと共有センター」から「ローカルエリア接続(またはWi-Fi)の状態」をクリックすると表示されるポップアップ画面の「詳細」ボタンから確認できます。
情報が揃ったところで、ラズベリーパイから設定ファイルを編集します。
sudo nano /etc/network/interfaces
設定ファイルを開いてみると、図8のようになっていました。ファイルの中身は、環境によって異なる可能性がありますので、1つ1つ確認しながら調整していきましょう。
今回設定するのは、先程調べた「wlan0」の情報になります。
/etc/network/interfaces auto lo iface lo inet loopback auto eth0 allow-hotplug eth0 iface eth0 inet manual auto wlan0 iface wlan0 inet static wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf address 192.168.0.99 netmask 255.255.255.0 gateway 192.168.0.1
修正箇所は4つ。11行目の「address」に固定IPとして設定したいIPアドレスを、12行目の「netmask」と13行目の「gateway」には先程調べたネットワークの値を設定します。それぞれの値は、環境に合わせて設定してください。そして、9行目の「manual」となっていた部分を「static」に変更しました。
※固定IPを設定する場合は、設定するIPがルーターの他のPCや接続機器と競合しないように気をつけてください。
ラズベリーパイを再起動して、設定したIPアドレスが有効になっていれば成功です!
ip a
オートラン設定
ラズベリーパイ公式サイトのドキュメントの後半「Automation and run at boot」に沿って進めていきます。この項では、VNCのサーバーソフトを起動するための2種類の方法が紹介されています。1つ目は、任意のタイミングで実行させるためのシェルスクリプト、2つ目は、ラズベリーパイ起動時に自動で実行させるためのスクリプトです。ここでは、2つ目に掲載されている「オートラン」の設定をご紹介します。
スクリプトの行数が多いので、ブラウザでドキュメントのページを開いて、LX Terminalと並べて、コピー&ペーストしながら進めると楽になります。
起動時実行用のスクリプトファイルを作成します。
root権限が必要となるため、「sudo su」コマンドを実行してから、ファイルの作成場所である /etc/init.d/ にカレントディレクトリを移動させます。
sudo su
cd /etc/init.d/
次は、ファイルを作成します。nanoエディタで、ファイルの存在しないパスを指定すると、ファイルが新規作成されます。中身は次のように記述します。
nano vncboot
ファイルの中身は、公式サイトに掲載されているコードをコピー&ペーストして、ファイルを完成させましょう。
/etc/init.d/vncboot
### 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
ファイルができたら、アクセス権限の設定を行ないます。「755」は、「全てのユーザーが実行可能で、管理者のみが書き込み可能」という権限です。
chmod 755 vncboot
ファイルの準備はここまで!あとは、自動実行のための設定を済ませれば完了です!
update-rc.d /etc/init.d/vncboot defaults
結果が2行表示されました。
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
実行すると、先程の実行結果の1行目と同じ文字列(update-rc.d: using dependency based boot sequencing)が表示され、今度はエラーが表示されずに終了しました。
これで準備完了!ラズベリーパイを再起動しましょう。
オートランに成功すると、起動時の画面で、図12のように「New ‘X’ desktop is raspberrypi:0」と表示されます。
iPhoneのVNCビューアーで、「192.168.0.99:0」にアクセスします。接続できれば成功です!
スクリプトの中でディスプレイのサイズを指定してるので、iPhoneでの初期表示はこのようになりました。
ちなみに、正しく設定できていれば、電源コードを差し込んだだけの、ログイン前の状態でも接続できるようになります。これで、ディスプレイもマウスもキーボードも使用することなく、ラズベリーパイが使えます!
まとめ
2回にわたってVNC編をお送りしました!
オートランを実装したことで、ログインの手間が減り、より手軽にラズベリーパイを触れるようになりました。電源を入れるだけでデスクトップ画面がすぐに見られるので、本当にスマホアプリのような感覚で使用することができます。
個人的には、ラズベリーパイで新しいものができたら「上司に席まで来てもらう」だったのが、「スマホを持って上司の席まで走っていく」に変わって、新しいラズパイライフがおくれそうです。笑。
次回は、こちら!
Web Server And WordPress | Raspberry Pi Learning Resources
ラズベリーパイ公式サイトで、おもしろそうなドキュメントを発見!イラストのこどもたちは何をしているかというと……ラズベリーパイの中でワードプレスにアクセス中なんです!
ということで、次回はラズベリーパイの中で動くブログシステムを作ります!