Raspberry Pi

Support for Jaxer is a work in progress, so before any stable release, Jaxer will have to be compiled from source. Another note is that Jaxer does not compile on Raspbian Official at the moment and will need to be compiled on Minibian.

For the sake of bevity, we will skip the process of flashing the image to a memory card. We will assume that you have the following prepared and ready in front of you:

  1. Raspberry Pi 2B/3B/3B+
  2. Flash Storage with Minibian
  3. Root console access

Prepare the Raspberry Pi

Before we can compile Jaxer, we will need to prepare the Raspberry Pi. Specifically Minibian will not do that for you, so we will need to do it manually.
# fdisk /dev/mmcblk0

Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): [d]
Partition number (1,2, default 2): [2]
Partition 2 has been deleted.

Command (m for help): [n]
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): [p]
Partition number (2-4, default 2): [2]
First sector (125056-63272959, default 126976): [125056]
Last sector, +sectors or +size{K,M,G,T,P} (125056-63272959, default 63272959): []

Created a new partition 2 of type 'Linux' and of size 30.1 GiB.

Command (m for help):  [w]
The partition table has been altered.
Calling ioctl() to re-read partition table.

The changes will not take effect immediately, so we will need to reboot

# reboot

Once the Raspberry Pi has booted back up again, we need to execute the following command for the Raspberry Pi to take avantage of all the storage.

# resize2fs /dev/mmcblk0p2

Now that we have access to the full storage capacity, now's a good time to update and install the required packages and update our Pi, and get rid of the CRDA error message at boot.

# apt-get update
# apt-get install iw crda wireless-regdb firmware-brcm80211 pi-bluetooth wpasupplicant

This is an optional step, but it's worth securing your Raspberry Pi with a firewall, then you can execute the following commands.

# apt-get install firewalld
# systemctl start firewalld.service
# systemctl enable firewalld.service
# firewall-cmd --permanent --add-service=http
# firewall-cmd --reload

This is another optional step, but if it's worth updating the firmware on your Raspberry Pi, then you can use hexxeh's rpi-update program to install the latest kernal.

# apt-get install rpi-update
# rpi-update
# reboot

Now we're finally ready to install the dependencies for installing Jaxer. Use apt-get to install the following packages.

# apt-get install -y vim gcc g++ make zip git oracle-java7-jdk \
libmysqlclient-dev python pkg-config libgtk2.0-dev libcurl4-openssl-dev \
libidl-dev libxt-dev unixodbc-dev bison flex

And one more quick step, Jaxer uses an out-dated version of Pango, so we need to clone a copy of the previous version.

# git clone https://github.com/behdad/pangox-compat.git
# mv pangox-compat /usr/include/pango

Compile Apache Portable Runtime

Now we can go ahead with the compilation of Jaxer and clone the repository

# cd /opt
# git clone http://192.168.1.28/collins/jaxer-raspberrypi.git

Next we will need to compile Apache portable runtime

# cd /usr/src
# cp /opt/jaxer-raspberrypi/apache/* .
# tar xvf apr-1.6.5.tar.gz
# cd apr-1.6.5/
# ./configure
# make
# make install

You will likely get a rm: cannot remove 'libtoolT': No such file or directory message at the end. This is a problem with the makefile, but the program should still have been compiled.

# cd /usr/src
# tar vxf apr-util-1.6.1.tar.gz
# cd apr-util-1.6.1/
# ./configure --with-apr=/usr/src/apr-1.6.5/apr-1-config
# make
# make install

Next we're ready to compile the Apache environment for Jaxer.

# cd /opt/jaxer-core/src/httpd-2.4.35
# ./configure --prefix=/opt/AptanaJaxer/Apache22
# make
# make install

Once we're done with that, Apache will be installed to the /opt/AptanaJaxer/Apache22/ directory. Next we'll have to install Jaxer to be used with it. The nice part about Jaxer is that we can compile it with a single command.

# cd /opt/jaxer-raspberrypi/
# python build.py

The build process can take up to two hours to compile on the Raspberry Pi 3, so it's recomended to have a Raspberry Pi 3B+ with good airflow to make the process go as fast as possible. Once it's done we have to replace some outdated files with the versions reflected in this documentation.

# rm -rf AptanaJaxer/jaxer/default_public
# rm -rf AptanaJaxer/jaxer/aptana
# rm -rf AptanaJaxer/jaxer/chrome
# rm -rf AptanaJaxer/jaxer/proframework
# rm -rf AptanaJaxer/jaxer/framework
# /bin/cp -fr post_install/framework AptanaJaxer/jaxer/
# /bin/cp -fr post_install/default_public AptanaJaxer/jaxer/
# /bin/cp -fr post_install/conf AptanaJaxer/Apache22/
# /bin/cp -f  post_install/post_install.sh AptanaJaxer/scripts/

Now we're ready to copy the Jaxer environment to the Apache installation we compiled earlier.

# /bin/cp -fr AptanaJaxer/* /opt/AptanaJaxer

We can call start Jaxer by calling the start shell script included in the install.

# sh /opt/AptanaJaxer/scripts/start.sh