HAH Portable

It is a trimmed up version of the HAH system that can be built and installed independently of the Livebox router hardware.

This is ALPHA software
As this is an unmodified port of the Livebox HAH system, there are many functions in the webserver that just don't work or make sense to be there.

Get the code

sudo apt-get install git
git clone --branch portable --single-branch https://github.com/dbzoo/hah.git portable

Ubuntu build notes

Tested on

  • beaglebone running Ubuntu 13.10 (Saucy)
  • Raspberry Pi running Raspbian Ubuntu (wheezy)

Download ubuntu

Start with updating the package cache.

sudo apt-get update

Build packages required.

sudo apt-get install build-essential libxml2-dev libcurl4-openssl-dev flex

Runtime packages required.

sudo apt-get install lua5.1 lua-filesystem lua-rex-posix lua-socket

To build the package target you need the packaging stuff.

sudo apt-get install dpkg

Stopping apache2 as kloned will use port 80 - Not needed on the Pi but it won't hurt to check.

sudo update-rc.d -f apache2 remove

Make sure you are in the portable/ directory that you checked out from the GIT code repository.

cd portable

To build a .deb installable package for the armhf Architecture

make arm-deb

The resultant .deb file will be in build/ Install like this

sudo dpkg -i build/*.deb

To directly install you'll need to build and install as root. Note this will NOT install the /etc/init.d/xap you have to copy that out of packages/etc and install it yourself (for now).

sudo INSTALL_DIR=/ make install

The best way to keep your portable distro up to date is “git pull” or “git fetch && git merge”
Then do a “make arm-deb” and install it “sudo dpkg -i build/*.deb”
The deb file will not overwrite your .ini customized .ini changes.

$ cd portable
$ git pull
$ make arm-deb
$ sudo dpkg -i build/*.deb

Fedora build notes

Tested on

  • Tested on a Raspberry Pi running Pidora 18
  • Centos 5.5 x64

You will need these pre-requisites installed to build

yum install git libxml2-devel libcurl-devel openssl-devel
yum groupinstall "Development Tools" --skip-broken

External hardware

To get the external hardware to work on a non-livebox device you need to adjust the /etc/xap.d/xap-livebox.ini file

port=/dev/ttyO4
initserial=+++

Why do you need this initserial=+++ configuration line?

The external hardware goes into a loop and listens on the serial port consuming all the console text the livebox emits and discards it until it see the +++ token. This is done to prevent some spurious piece of livebox startup text from triggering the external hardware to do something it should not. This token on the livebox is emitted by the /etc/init.d/controlpcb livebox startup script however this script does not exist in the portable distribution. Even if it did its output would not be down the serial port where the external hardware is, it would be the console serial port. So we use this initserial= argument as a workaround.