Today, I am going to take a look at Iperf and get it running between my server (written in Ocaml and running my laptop) and client (on an android phone). To avoid the issues with IP addresses, I will use the same Wi-Fi network for both the client and server so that both devices are behind the same NAT box and can address each other using the private IP addresses. In this case, (like before) I only need the IP address of the server, which I will get from connection information in Ubuntu 12.04.
Iperf is already installed the server (my laptop) from when I was using Iperf to test the network properties of Tor such as latency, bandwidth and packet-loss. This was before starting this blog. I assume that Iperf was not included in Ubuntu 12.04 and that I got it via “sudo apt-get install iperf” (someone please correct me if I am wrong in this assumption)
Getting on Iperf on the client (an android phone) is a little more complex. Iperf has an android application at the google play store but my android phone does not have an app store as its running CyanogenMod. The paragraph at the top of this wikipedia article explains why there is no build in google play store
The following instruction where taken from this YouTube video. To do this you will need a micro SD card and a USB adaptor
To get the Google Play Store on CyanogenMod:
- Download the correct version of gapps from here
- Copy the .zip file of gappy onto the micro SD card and put SD back into phone
- Reboot in recovery mode
- Select flash zip from SD card and then the gapp file
- Reboot android phone
- Sign-in to your Google account
Then I simply get the Iperf application from the Google Play Store by searching Iperf.
The Iperf application on android don’t seem to work, The application will load and allow me to enter an Iperf command, in this example I am simply entering -s and click Done, but then nothing happens. If I click the button with “off” on, it momentary turns green and says on before returning to off.
So as per usual its time for some trouble shooting checks:
- Is the application for my version of andriod ? Yes, the application requirement is 1.5 or up and my version is 2.3.7
- Is there network connectivity ? Yes
- Is the command that I’m test correct ? Yes -s is the example used for screenshots on Google play, also other commands like -c also don’t work
- Is this a known bug ? nope, source here
I’ve posted the question on stackoverflow here
Whilst I wait and see if anyone can help with my problem. I am going to take a look into the world of Android terminal emulators to see if I could run Iperf this way instead if the android application still fails to work or maybe I can ssh into the phone and run iperf. CyanogenMod comes with a terminal emulator, which I will use for now