summaryrefslogtreecommitdiff
path: root/README
blob: 71f9bcc3e98c26fc4db3442e8623ed81c7339c01 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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.