It is a trimmed up version of the HAH system that can be built and installed independently of the Livebox router hardware.
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
- beaglebone running Ubuntu 13.10 (Saucy)
- Raspberry Pi running Raspbian Ubuntu (wheezy)
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
Installation via a package
Make sure you are in the portable/ directory that you checked out from the GIT code repository.
To build a .deb installable package for the armhf Architecture
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
Keeping up to date
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 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
To get the external hardware to work on a non-livebox device you need to adjust the /etc/xap.d/xap-livebox.ini file
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.