Raspberry Pi (2011) model B as Unifi Controller

I have setup new networking equipment to provide a large upgrade to my home network. One component that was required was a small server to manage the access point, a Unifi AP AC Pro.

One option is to purchase a small device from Ubiquiti called a Cloud Key that has the management software pre-loaded. Another option is to install the management software on a Mac, PC, or Linux machine. However, that requires your personal computer to be on anytime you could want to use the software and is a lot of overhead.

I opted to go with a third option – using an old (generation 1) Raspberry Pi model B from 2011 and run the management software from that. I had one just sitting in my desk drawer unused, so it was a perfect opportunity!

To build my UnifiPi Controller (as I am calling it), I took information from two guides and merged them together as described below. This made for a very responsive dedicated device that works quite well!

  1. Begin by downloading and installing the latest Raspbian image from the Raspberry Pi website. This is outside of the scope of this article, but it is fairly trivial to do.
  2. Setup the Raspberry Pi using the raspi-config script. I highly recommend setting the proper keyboard layout for your region first, reboot, then change your passwords and configure the rest of the device defaults. I did the keyboard last and had issues logging in over ssh since the special characters on the default UK keyboard are in a different order than on a US keyboard layout!
    1. TIP: set the memory split to 16MB for the GPU. We’re using this in a headless environment, so wasting memory on the GPU is just going to hurt you.
  3. Fully update the Pi
    sudo aptitude update; sudo aptitude upgrade
  4. reboot
  5. Next fully update the firmware for your Pi
    sudo aptitude install rpi-update; sudo rpi-update
  6. reboot
  7. Set ssh to run on boot
    systemctl enable ssh
    systemctl start ssh
  8. Install and configure the Unifi software
    1. Add the repository
      echo 'deb http://www.ubnt.com/downloads/unifi/debian unifi5 ubiquiti' | sudo tee -a /etc/apt/sources.list.d/ubnt.list > /dev/null
      sudo apt-key adv --keyserver keyserver.ubuntu.com --recv C0A52C50
      sudo aptitude update
    2. Install the software
      sudo aptitude install unifi
    3. Disable the default MongoDB or you’ll have two databases running wasting resources!
      echo 'ENABLE_MONGODB=no' | sudo tee -a /etc/mongodb.conf > /dev/null
    4. Update the Snappy Java Library as Unifi’s version is quite old
      cd /usr/lib/unifi/lib
      sudo mv snappy-java-1.0.5.jar snappy-java-1.0.5.jar.old
      sudo wget http://central.maven.org/maven2/org/xerial/snappy/snappy-java/
      sudo ln -s snappy-java- snappy-java-1.0.5.jar
    5. Remove the Unifi Cloud Library (ONLY NEEDED FOR ARMv6 devices – basically anything prior to the 3rd generation Pi)
      sudo rm /usr/lib/unifi/lib/native/Linux/armhf/libubnt_webrtc_jni.so
    6. Switch to the official Java client instead of OpenJDK. OpenJDK is horrible and resource intensive
      sudo aptitude install oracle-java8-jdk
      sudo update-alternatives --config java
      #Select Java8 - was item 2 for me
      java -showversion (to confirm it's set properly)
  9. reboot

You can now access the Raspberry Pi via the IP address pulled from DNS:
ssh pi@

Using the web interface running on port 8443 you can also configure any new Unifi APs.  You can also connect the Unifi iPhone app to manage your AP from your mobile device.  However, as I do not have a Unifi Secure Gateway, I am unable to get WAN/LAN stats.  But, I can get those separately through the EdgeRouter web UI.


  • I decided to not setup a static IP address as I will use functions in my EdgeRouter Lite to set a static IP via MAC address.
  • I currently only have one Unifi AP but can expand to more as needed. However, given the size of my house and the location I was able to place the AP, that is unlikely to be needed.


Comcast, Alternative DNS and CDNs

Recently I started noticing problems with our Comcast service that although speed tests were very speedy, as were certain downloads – primarily torrents of Linux distributions, other content downloads were pathetically slow.  These would include items such as iTunes downloads, streaming content and the like.  It wasn’t until I switched my router from using Google DNS (, back to using Comcast DNS and seeing a drastic speed increase did I realize why this slowdown was occurring.  The issue here is with Content Delivery Networks (CDNs) and alternative DNS services.

CDNs are great services that replicate data across a number of data centers to offer faster access to the content by allowing you to reach a center closer to your physical location.  This allows for lower latency as your connection has to go through fewer hops so you can get a better experience.  The problem comes with using alternative DNS services such as Google DNS.  These services tend to mess with the geo-location features of the CDNs and as such, they may route you to a center that is further away which would create a slower experience for the users.

This is the problem that we were seeing.  As mentioned, once I changed us back to using Comcast’s default DNS servers, everything from iTunes downloads and general page loading times increased dramatically.  Despite my disdain for Comcast DNS, I guess I’ll be leaving that alone for a while.

My Raspberry Pi

20120531-235716.jpgToday I finally received my Raspberry Pi! I had ordered mine on February 29th, but because of the tremendous demand for the product there were large delays on actually receiving one.

I will not have time to do much with it because I have a lot of studying for French, but I did plug in power to see a wonderful power light. :-). More to come when I have the time…


The new iPad


Today Apple and it’s team of executives headed by Tim Cook announced the new iPad. No number, no “HD” for this one, just “the new iPad”. This will surely cause some confusion, so let’s just all agree to call it the third generation iPad shall we?

As time has gone on, I have found myself using my iMac and MacBook less and less and instead relying on the iPad more and more. As a matter of fact, this post is being written from the WordPress app for iPad. Apart from needing to find a comparable replacement for Quicken for the iPad, I have almost no real use for my laptop anymore. My desktop is also becoming more a storage and media server as I rarely touch it as well. It is a late 2007 iMac.

So, Justin and I talked about it and I went ahead and bought the new iPad. Once it comes in, Justin will get the iPad2 so he can have all the features of a tablet as well. I also bought the camera connection kit so I can hook up my camera and transfer the pics to the iPad. This will allow me to completely negate the need for a laptop or netbook at all when traveling. All I need now is an app for tethering to my DSLR and I’ll really be a happy camper! Looking forward to March 16th when it will supposedly arrive.