RISC OS is known for its unique graphical interface, so running it on a headless computer or server is not something that is generally associated with the operating system. It is however a very sensible option if you need a machine to run automated tasks such as running a web server or file server.
If you’re running a headless machine, then you will need to occasionally administer it. Admittedly, you’ll need to undertake maintenance on RISC OS far less regularly than a Unix-based/like or Windows system, mainly down to the lack of known security vulnerabilities, but from time-to-time you will need to log into the machine to amend a few things.
So apart from manually connecting a mouse, keyboard and monitor to the machine, there’s a few options out there. You can setup an SSH server and connect it to it remotely, performing tasks through the RISC OS port of Bash (which is not always 100% reliable due to the complex and in-depth nature of Bash) – or you can setup a VNC server and remotely access your RISC OS desktop interface from another machine.
What is VNC?
Virtual Network Computing (VNC) is a graphical desktop sharing system that used the Remote Frame Buffer (RFB) protocol. It can grant access to another system running a VNC client – which will be able to see the machine’s desktop screen and remotely control it using a keyboard and mouse.
There are VNC clients and servers available for a wide range of operating systems, Unix-based/like, Windows etc.
Setting up a VNC server on RISC OS
Originally developed by Hernik Bjerregaard Pedersen, VNCServ is a VNC server application for RISC OS that has had several maintainers over the years – Crispian Daniels, David Llywelyn-Jones and more recently Jeffrey Lee. VNCServ receives regular updates and is compatible with the latest version of RISC OS including ARMv7 machines such as the Raspberry Pi. The latest version at the time of writing is 0.17 (04/02/2017).
The installation process is as easy as you think, download the Zip file and unarchive it using SparkPlug or a similar application, drag and drop the !VNCServ application into whatever location on your storage drive you want to keep it.
You’ll most likely want to ensure that VNCServ automatically runs whenever the machine boots into RISC OS just in case of any unexpected reboots. Editing the ‘PreDesk’ configuration file located here will provide this functionality – !Boot.Choices.Boot.PreDesk
When run, VNCServ will tick away in the background and respond to any VNC requests it receives over the port you’ve specified for it to run on.
VNCServ doesn’t come with its own graphical interface, but it can be configured via a very handy front-end written by Steve Potts.
If you’d rather stay away from the front-end, you can configure access by moidfying the obey file named ‘start’ to use the port number and password you want to use. The password can be at most 8 characters in length.
The ‘start’ obey file can also allow you to set a suitable screen mode, and configure the behaviour of your mouse when controlling your VNC server remotely.
To start the server, double click on ‘start’ and the server will load and start listening for an incoming connection; the server hardly uses any CPU when no client is connected, so you can have the server running constantly.
Local network configuration
If you want to access your RISC OS machine via VNC from an external network (your work’s network for example) then you’ll need to enable the firewall your VNC server is passing through to allow connections on the port you’ve told VNCServ to run under – in most cases this is the default VNC port 5900. With most setups this can be achieved by adding a port forwarding rule in your router’s firewall to allow TCP&UDP connections over port 5900.
It’s important to keep in mind however that VNCServ only allows passwords up to 8 characters in length, meaning it will be reasonably straight-forward to crack the password and gain unauthorised access to your system via VNC. So if you don’t have a need to expose port 5900 (or whatever port VNCServ is running on) to the outside world, then don’t do it. Finding a list of public-facing VNC servers is trivial using websites such as Shodan – a search engine for Internet-facing devices.
Should you decide you don’t require access to your VNC server from an external network – for example, you only need to connect to it from devices in your home, or you use a VPN connection to remotely access your network remotely – then you don’t need to do anything, traffic should pass over port 5900 without a problem unless you have device-specific firewalls blocking this port (you’ll probably know about it if this is the case).
Accessing your VNC server
Once your VNC server is setup and running on RISC OS, you can remotely access it by pointing a VNC client to the IP address designated to your RISC OS machine running VNCServ.
If you’re looking for a VNC client, TightVNC is good for Windows and Linux computers, Chicken of the VNC is available for Mac OS. You can use Avalanche on RISC OS, the application is not regularly updated but it is very stable and shouldn’t cause you any problems, it’s also free! There’s also VNC clients for Android and iOS so that you can access your RISC OS desktop when you’re on the go!
LAN Access – If you’re accessing it from a device connected to the same local network as your server, then you can specify the LAN IP address for your device (e.g. 192.168.0.2) – it’s worth setting up a static LAN IP address in your router’s DHCP settings to ensure this stays the same and you don’t need to continually update your VNC client with the LAN IP of your server. If you will be accessing the server from your local network and from external connections, then following the steps in the ‘WAN Access’ section below will be your best bet.
WAN Access – If you’re going to be accessing your VNC server from machines outside your home network, then you’ll need to point your client to your WAN IP address, which will be assigned to your Broadband modem. You can find out your IP address by searching ‘My IP’ using most major search engines, click here for a pre-configured search query.
There we have it! You’re connected to your RISC OS desktop from a remote device. Happy dragging and dropping.