SSH (see http://learn.adafruit.com/adafruits-raspberry-pi-lesson-6-using-ssh/overview) is often all you need to control your Raspberry Pi, however sometimes it is useful to be able to remote control your Raspberry Pi using the mouse and seeing just what you would see on the screen of the Raspberry Pi.
VNC (Virtual Network Connection) is a standard for doing just this. To use it, you have to install some software on your Pi. There are a number of VNC server applications, and the one we are going to use is called “tightvnc”.
We can install the VNC server software using the SSH connection that we established earlier.
Enter the following command into your SSH terminal:
- sudo apt-get update
- sudo apt-get install tightvncserver
You will be prompted to confirm installation by typing “Y’ and finally when installation is complete, you should see the following:
We now need to run the VNC Server, so enter the following command into your SSH window:
- vncserver :1
You will be prompted to enter and confirm a password. It would make sense to use “raspberry” for this, but passwords are limited to 8 characters, so I use “raspberr”. Note that this is the password that you will need to use to connect to the Raspberry Pi remotely.
You will also be asked if you want to create a separate “read-only” password – say no.
From now on, the only command that you need to type within your SSH to start the VNC server will be:
- vncserver :1
The VNC server is now running and so we can attempt to connect to it, but first we must switch to the computer from which we want to control the Pi and setup a VNC client to connect to the Pi.
Using a VNC Client
Again, there are many VNC clients, of which “VNCViewer” (http://www.realvnc.com) is available for most platforms and I have found it to work well with TightVNC.
When you first run VNCViewer, you will see the following:
Enter the IP address of your Raspberry Pi, append :1 (to indicate the port) and click on “Connect”. You will then get a warning message. Just click ‘Continue’.
The following window will then popup for you to enter your password (“raspberr”).
Finally, the VNC window itself should appear. You will be able to use the mouse and do everything as if you were using the Pi’s keyboard mouse and monitor, except through your other computer.
As with SSH, since this is working over your network, your Pi could be situated anywhere, as long as it is connected to your network.
Built in Screen Sharing
There’s also a built in VNC app for the Mac OS X that you may be able to use without installing any software
From the Finder, select Go -> Connect to Server… and typevnc://192.168.1.10 (or whatever the IP is) to connect.
Running VNCServer at Startup
This method will only work if you have set your Pi to automatically log into the desktop environment. See Lesson 2.
Connecting to your Raspberry Pi remotely with VNC is fine as long as your Pi does not reboot. If it does, then you either have to connect with SSH and restart the VNC Server or arrange for the VNC Server to run automatically after the Raspberry Pi reboots.
There are several different methods of arranging for some code to be run as the Pi starts. The method described below is probably the easiest to use. You can adapt it to run other commands instead of starting the VNC server.
Open a Terminal session on the Pi, or connect using SSH. A new terminal or SSH session will automatically start you off in your home directory of /home/pi. If you are not in this directory, change to it by typing:
- $ cd /home/pi
Then cd to the .config directory by typing:
- $ cd .config
Note the ‘.’ at the start of the folder name. This makes it a hidden folder that will not show up when you type ‘ls’.
Issue the command below to create a new directory inside .config called ‘autostart’.
- $ mkdir autostart
cd into that new directory by typing:
- $ cd autostart
All that remains is to edit a new configuration file. So type the following command to open the nano editor on the new file:
- $ nano tightvnc.desktop
Edit the contents of the file with the following text.
- [Desktop Entry]
- Exec=vncserver :1
Type ctrl-X and then Y to save the changes to the file.
Thats all there is to it. The next time you reboot the VNC server will restart automatically.
Thanks to Simon Monk.