Network-attached storage using the PandaBoard
The PandaBoard is a powerful development kit featuring a dual core ARM Cortex-A9 processor. The board can be regarded as nothing less then a mother board with all the interfaces of a modern computer, i.e. USB, Ethernet, WIFI, Bluetooth, HDMI, DVI etc. The board is perfect to experiment with Dual Core ARM CPU or even to use as a home server. There are several GNU Linux distribution that runs out of the box with minimal effort and described on the community web site -> (PandaBoard Environment). Before starting, few accessories are required. First, a 5V power supply, then a USB mouse and keyboard. Finally, a HDMI or DVI screen compatible and a SD/MMC card of 4GB minimum to hold the Linux Distribution.
The first project with the PandaBoard is to use it as a disk storage access point over SSH. A NAS connected to the home WIFI and accessible from anywhere. The PandaBoard is connected to Internet using a WIFI connection. In this case, since their is no administration access to the WIFI router, a VPN connection is created using the LogMeIn Hamachi VPN client solution for Linux (Beta).
I. GNU Linux
For these projects, the preinstalled netbook image from Ubuntu 11.04 is used. The image is available from http://cdimage.ubuntu.com/releases/11.04/release/. With this image, a SD card of 4GB minimum is necessary. Assuming you have a computer/laptop with a SD/MMC card slot, insert the card in the slot and copy the image over to the SD card with the following command:
sudo sh -c 'zcat ./ubuntu-11.04-preinstalled-netbook-armel+omap4.img.gz | dd bs=4M of=/dev/mmcblk0 ; sync'
That's it, you can now insert the card into the PandaBoard and boot the image to complete the installation process.
When using the PandaBoard as a server, protecting the board from being damaged is the first priority. To do so, a simple enclosure is designed using Inkscape and manufactured from Ponoko factory. The design files are located here and free to use. The enclosure is designed for 3 mm thick material.
Setting up the SSH server is very easy when following the Ubuntu wiki. The first wiki explains how to configure and start the server while the second wiki explains how to setup public and private keys. Once the installation and configuration is complete, the first thing to do is to verify the SSH connection from the LAN side before continuing with the VPN connection.
When not having administration rights to the WIFI router (to setup port forwarding), a solution to setup a VPN using the PandaBoard is to install the LogMeIn Hamachi VPN client. A beta version for Linux and ARM processor is available from secure.logmein.com/labs/. After creating an account and a private network, you can use the command line to log the PandaBoard to the VPN.
$ sudo service logmein-hamachi start
$ sudo hamachi login
$ sudo hamachi do-join 'network id'
$ sudo hamachi set-nick pandaboard
If you have the VPN client installed on another Linux or Windows machine, you should now see the PandaBoard online and reachable from a ping. It is possible to access the PandaBoard from the Internet from any machine connected to the VPN using SSH.
V. Storage access
To have good storage capacity, a USB hard drive is required. Once the USB drive is connected to the PandaBoard and mounted, flles can be written or read from the drive using SSH from any other Linux or Windows machine from anywhere as long as the VPN connection is up. To mount the remote drive in Windows explorer, the Dokan SSHFS plugin shall be installed. With this solution, you can have your remote drive mounted in Windows explorer at all times. The PandaBoard can be disconnected from the keyboard / mouse and screen and solely used as an access point to your remote drive. You just made yourself a NAS over a WIFI connection!.
Here is an additional blog describing Dokan SSHFS