OpenWrt is a Linux distribution for embedded devices. That means OpenWRT runs fine on machines with low CPU, RAM and ROM. OpenWRT can be configured to run anything you want on your embedded device, but its mostly used in router projects. I first tried OpenWRT on a NSLU2, but I changed to a more powerful machine, since the NSLU2 was too slow. In the following, I’ll describe the steps how to setup OpenWRT for a RouterStation Pro running OpenVPN, CUPS, Asterisk, UPNP, and DynDNS.
Today, I decided to install http://xubuntu.org/ on my HP Mini 5103 to replace my classic http://www.ubuntu.com/ installation. The reason for this change is that the classic Ubuntu did not feel fast and snappy enough. Although various reports (here or here) indicate that Lubuntu is more resource friendly than Xubuntu, I decided to try Xubuntu since the HP Mini 5103 has 2GB. The installation of Xubuntu is very easy and I won’t go into details here. The following sections deal with difficulties I had while installing. Other Ubuntu variants may have the same issues.
Continuous integration (CI) helps to improve the quality of software. One of the reasons to do CI is to avoid “integration hell”, which is the integration of software components at a late stage. This is achieved by building the software project for every change and running a set of testcases. If one or more testcase fails, the developer that broke the build gets notified and he/she should fix it as soon as possible. Martin Fowler wrote a detailed description.
Since I’m having testcases for my pet project TomP2P and I want to make sure that my changes does not break anything, I decided to use a CI server. The most prominent CI software tools are Apache Continuum and Jenkins. Since we are using Jenkins at work with hundreds of projects, this would be my first choice. However, just by looking at the download size (Jenkins 37M, Apache Continuum 28M), it felt heavyweight and I was wondering if that is all necessary for my project. I started to look for other alternatives such as CruiseControl, but all of them seemed to that they are doing much more than I needed. Thus, I decided to write my own CI server (tiny-ci). The result are two shell scripts with around 50 LOC.
tiny-ci works as follows: it is called for every commit, checks out the code, builds it with maven, run all the testcases, and store the report in a HTML file.
This tutorial shows how to setup a wonderful quiet fanless system. The system that has been bought is a LEX NEO, a terribly nice Mini-ITX fanless barebone which includes an onboard bootable CF-card slot. Philip Iezzi (iezzi.ch) and Thomas Bocek (bocek.ch) have set up the system with several configurations.