Saturday, 2 March 2013

My Apple & Raspberry Pi(e)

Apologies for the appalling title of this blog post, but hey, you're here! :) In this post I talk about my purchase of a Raspberry Pi (by devious means) and how I set it up as an iPerf server.

I have recently been reading lots about the Raspberry Pi mini/micro/teeny-weeny ( I don't know what the correct term is...) single board computer, which has been created by the Raspberry Pi Foundation in a attempt to promote the teaching of basic computer science in schools (according to Wikipedia).

I've been itching to get my hands on one for a while and finally came up with a great excuse to buy one and have a play with it. They're incredibly cheap (around £30 for the basic computer board), so I concocted a flimsy excuse about buying one to teach my son about computing. After letting him play with it (and get bored) for about 30 minutes, I quickly slipped in to my home lab where I will no doubt continue to 'evaluate' it.

The Pi is supplied with a flavour of Debian Linux on an SD card. I've got some background in playing with Linux and have hacked around previously with MySQL, perl, PHP and done a bit of web-coding, so the prospect of having a small unit with all of these features (and a LOT more) is (in a sad, geeky kind of way) quite exciting.

I bought a Raspberry Pi kit from CPC here in the UK which included everything I needed, apart from a plastic box to mount the board in, (so I purchased one of those too).

Here is what I received, which is incredible value for money (around £70):


It includes:

  • Computer board
  • 4Gb SD module
  • 2.4GHz WiFi NIC
  • USB hub
  • Keyboard
  • Mouse
  • Misc PSUs
  • HDMI cable

To be honest though, the only components I'll probably use going forwards are :



And, here they are assembled, ready to put in to my home lab (er, I mean to evaluate for my son's studies...):



Once you've initially built it, you need to hook it up to a keyboard and screen and watch it start-up. You'll be thrown in to a start-up dialogue (which I didn't capture...sorry) where you can enable an SSH server (well, that's the only option I used). Once you've done that, you can disconnect all of the peripherals and  plug it in to an ethernet port to start playing with it remotely.

Once I'd connected the Pi to my home lab network via an ethernet switch port, I knew it would pick up a DHCP address, but I wasn't sure what its IP address would be. So, I fired up my copy of Fing on my iPad and ran a quick scan to find out the connected devices. From the screenshot below, you can see that it successfully identified my Pi:


 The first time you SSH in to the Pi, you can login with the default username/password of pi/raspberry. Obviously, you are advised to change this to something a little more secure using the 'passwd' command. 

Here is what the SSH session looked like:



My initial 'task' for the Pi was to see how easy it would be to set it up as an iPerf server. This would provide me a method of getting an iPerf server running quickly, without having to fire up my home-lab Windows server every time I want to run some iPerf tests. So, I fired up my laptop SSH client and connected to the Pi and executed the 'sudo apt-get install iperf' command from the CLI:

As my Pi was connected to my network and had access to the Internet, it downloaded and installed the iPerf server software, as shown above (it literally took seconds to install).

Now that I had iPerf installed, I just had to run it from the CLI and I had a fully functioning iPerf server!:

On my iPad, I fired up my iPerf client (iPerf2) and pointed it at my new Pi iPerf server:


I was really blown away by how easy it was!

I also had a look around for an SSH client for the iPad and came up with WebSSH. Together with the iPerf2 client, this allows me to SSH to the Pi, fire up my iPerf server and then run the iPerf client from my iPad - all from one platform. This could potentially be a very useful tool out on site for surveying and testing:



I also investigated adding a few other applications and managed to install an Apache web server and the PHP programming language with similar ease. Having a web server that can be quickly and easily fired up will certainly be very useful in my home lab setup for testing and could perhaps be useful for on-site testing when deploying new networks.

My advice: get one...you'll have hours of fun playing with it :) There are many more applications available for the Pi, thanks to the rich pedigree of its Linux heritage.

It also has a fully functional desktop environment where you can run applications in a more user friendly environment, but I'll leave you to find out more about that yourself :)

EDIT: Looking at the spec of the Pi a little more closely, the on-board Ethernet port is only 10/100. I suppose this could be a limitation if you are looking for an iPerf server that can test up to some of the higher WiFi speeds now available. For the foreseeable future though, I suspect that this will be plenty if looking at single-stream mobile devices, even with the advent with of 11ac.