Accessing The pcDuino Desktop Without An HDMI Monitor (Part 1)
The pcDuino is a nice little system with an ARM processor, Linux operating system, and Arduino compatible headers. Unfortunately, access to the desktop is only available via HDMI video. I have a few projects I’d like to use a pcDuino for but didn’t want to spend the money on a new monitor just to set it up. After thinking about it though I bought one anyway, expecting that I could figure out how to access the desktop remotely. It took a few hours on a Sunday afternoon but I finally did figure it out and decided to document the process for anyone else who might be in the same predicament.
Configuring the System
Since the projects I’m interested in using the pcDuino for typically have some graphical component, my requirements went beyond just installing an SSH server and working from the terminal. In fact, configuring the system came down to three steps:
- Connect to the debug serial port and install SSH
- Configure SSH to forward X packets
- Install and connect via a VNC client
In the instructions below, I refer to the pcDuino and the local machine. References to the pcDuino are self-explanatory. The local machine I used is a laptop running Ubuntu 12.04. While commands I mention may be Linux specific, I’m sure Windows machines have equivalent commands and software available. You will also need a serial cable capable of connecting to the pcDuino debug serial port and a network connection for the pcDuino to install the required software from the repositories.
The initial connection to the pcDuino is made via the debug serial port. This is a 3.3V logic level port that provides root access to a terminal session after bootup. The Sparkfun site has an excellent tutorial explaining how to connect to the pcDuino serial port so I’m not going to repeat it here. The basic idea is to connect the serial cable to the pcDuino serial port header, configure your terminal software for 15200 8N1, apply power to the pcDuino, and wait for the boot process to complete.
Once the boot process is complete you can install an SSH server by executing the commands:
apt-get update apt-get install ssh
I also took a tip from the SSH installation tutorial on the Circuits@Home site and created a non-root account to use for SSHing into the pcDuino and assigned it to the admin group:
adduser <user> adduser <user> admin
To test the SSH server you need to know the IP address assigned to the pcDuino. Enter the command ifconfig at the pcDuino command line. On the terminal you will see output, a portion of which will resemble:
eth0 Link encap:Ethernet HWaddr 20:68:9d:a3:59:4d inet addr:192.168.1.12 Bcast:192.168.1.255 Mask:255.255.255.0
The highlighted IP address above is the one you are interested in. To test the SSH link, open a terminal on your local machine and enter the command:
where user is the account created above (you did take that advice, didn’t you?) and ip_address is from the ifconfig output above (Windows users will have to use a program like putty). If the SSH server installed correctly you should be able to log into the pcDuino and the serial connection will no longer be needed.
At this point you should have a working SSH connection allowing you to connect to the pcDuino from your local machine. For some, the terminal access this provides is enough. However, as I mentioned above my goal here was to access the pcDuino desktop so in the next post I’ll explain how to configure the pcDuino’s VNC server and connect using a VNC client via the SSH link.