Pre-requisites ============== ARM toolchain ------------- The ARM development toolchain is based on the CodeSourcery version of GCC. This document is based on the hard floating point 2009q3 1.0.18-4 release from the scratchbox project, available from http://scratchbox.org/download/files/sbox-releases/hathor/tarball/scratchbox-toolchain-cs2009q3-eglibc2.10-armv7-hard-1.0.18-4-i386.tar.gz Other versions should work as well. Hard floating point is not a requirement but provides better floating point performances. Mixing soft floating point and hard floating point applications and libraries is *not* supported. Compiling the whole system with the same compiler is thus highly advisable. To install the toolchain, extract the tarball (this document assumes that the tarball will be extracted to /opt, but any location can be used) and add the compiler bin directory to the PATH environment variable. This can be automated by adding export PATH=/opt/scratchbox/compilers/cs2009q3-eglibc2.10-armv7-hard/bin:$PATH to ~/.bashrc (when using the bash shell). Kernel Headers -------------- Due to the V4L2 events ABI breakages between kernels v3.0 and v3.1, you must make sure that the kernel headers used during compilation and the kernel running on the target system are both <= v3.0 or >= v3.1. To compile the applications against kernel headers from a kernel git tree you first need to pre-process the headers to make them usable in userspace. This can be done by running make ARCH=arm headers_install in the kernel source directory. The headers will be installed in the usr/include/ subdirectory of your kernel sources. Compilation =========== To compile the ARM software, run make KDIR=/path/to/kernel/sources CROSS_COMPILE=arm-none-linux-gnueabi- This will create the live and snapshot binaries for ARM.