よしたく blog

ほぼ週刊で記事を書いています

macからラズベリーパイのデスクトップ画面を操作するためにVNCを入れた

はじめに

yoshitaku_jpです。

macからラズベリーパイのデスクトップ環境にアクセスしたくて、vncを設定しました。 ラズベリーパイのデフォルトで入っているRealVNCを使う場合は、mac側にソフトウェアを入れないといけないようで、tightvncserverを使うことにしました。

tightvncserverのインストール

sudo apt-get install tightvncserver

実行

ラズベリーパイにsshなどでログインし、vncserverコマンドを実行します。 初回はパスワードを聞かれるので設定し、メモをしておきます。

pi@raspberrypi:~ $ tightvncserver

New 'X' desktop is raspberrypi:5

Starting applications specified in /etc/X11/Xvnc-session
Log file is /home/pi/.vnc/raspberrypi:5.log

のようになっていれば成功です。

mac側に戻って、 Finder-移動-サーバに接続をクリックします。 vnc://xxx.xxx.xxx.xxx:590y xxxの部分はラズベリーパイのIPアドレスを yの部分はNew 'X' desktop is raspberrypi:5の5の部分の数字を入れて接続をします。(大抵は1番です。今回は何回もやり直したので5番になっています。)

完了

デスクトップ画面が開けていれば成功です。


補足-自動起動の設定

vncserverをsshでログインし、起動し、デスクトップ環境へ…というのがめんどくさい人には自動起動設定しておくことをオススメします。

cd /etc/init.d
sudo nano vncboot
#! /bin/sh
# /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

USER=root
HOME=/root

export USER HOME

case "$1" in
 start)
   /usr/bin/vncserver :1 -geometry 1280x800 -depth 24
   echo "Starting VNC Server."
   ;;

 stop)
   /usr/bin/vncserver -kill :1
   echo "VNC Server Has been stoped."
   ;;

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

exit 0
sudo chown root.root vncboot
sudo chmod +x vncboot
sudo update-rc.d vncboot defaults
sudo reboot

で、VNCが起動しないと…

様々な記事を参考にしましたが、スクリプト内の/usr/bin/vncserver/usr/bin/tightvncserverに変えたら自動的にVNCが動くようになりました。 自分がいろんなソフト入れてるから邪魔しちゃってるのか、vncが変わったのか… もう一回ラズベリーパイのOSを入れ直すタイミングが合ったら検証してみます。

#! /bin/sh
# /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

USER=root
HOME=/root

export USER HOME

case "$1" in
 start)
   /usr/bin/tightvncserver :1 -geometry 1280x800 -depth 24
   echo "Starting VNC Server."
   ;;

 stop)
   /usr/bin/tightvncserver -kill :1
   echo "VNC Server Has been stoped."
   ;;

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

exit 0