summaryrefslogtreecommitdiff
path: root/android/juno-lsk/HOWTO_getsourceandbuild.txt
blob: b31b4ee7c32d486f7dd30baeafebbeec663b10c0 (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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
h2. Disclaimer

The use of Juno software is subject to the terms of the Juno "End User License Agreement":https://releases.linaro.org/14.06/android/juno-lsk/#tabs-5.

h1. Accessing Source Code

h2. Linaro Android Source Code

Run the "linaro_android_build_cmds.sh":http://releases.linaro.org/14.06/android/juno-lsk/linaro_android_build_cmds.sh script, it will download the entire source code for both Android and the kernel and attempt to build it.

The pinned and source manifests can be found here:

* "Pinned Manifest":http://releases.linaro.org/14.06/android/juno-lsk/pinned-manifest.xml ("?":https://wiki.linaro.org/Platform/Android/ReproduceABuildExactly)
* "Source Manifest":http://releases.linaro.org/14.06/android/juno-lsk/source-manifest.xml

h2. Kernel Source Code

Obtain the exact *kernel source code* for this cycle by using the "linaro_kernel_build_cmds.sh":http://releases.linaro.org/14.06/android/juno-lsk/linaro_kernel_build_cmds.sh script to download the source and build it. You can get the kernel configuration from "here":http://releases.linaro.org/14.06/android/juno-lsk/kernel_config (listed above)

h2. Compiling Linaro Android RootFS+Kernel

The following simple steps download, install and compile a complete Linaro Android distribution

* Download and install Ubuntu 12.04 64 bit or newer ("download":http://www.ubuntu.com)
* Install the following packages:

bc. sudo apt-get install zip curl flex bison build-essential git-core gnupg gperf zlib1g-dev libx11-dev x11proto-core-dev \
gcc-multilib g++-multilib libc6-dev-i386 ia32-libs lib32z-dev gcc-4.5 g++-4.5 cpp-4.5 gcc-4.5-multilib g++-4.5-multilib \
uuid-dev openjdk-6-jdk ant lib32ncurses5-dev xsltproc

* Download the Android building script for this release from "here":http://releases.linaro.org/14.06/android/juno-lsk/linaro_android_build_cmds.sh or from the list of artifacts listed above.

* Run the script

bc. chmod a+x linaro_android_build_cmds.sh
./linaro_android_build_cmds.sh

h3. Installing Android on your board

* Insert a USB drive and note the assigned @'/dev/sdX'@ or @'/dev/mmcblk0'@

bc. dmesg | less

Look for a line that looks like the following at the end of the log

@[288582.790722] sdc: sdc1 sdc2 sdc3 sdc4 <sdc5 sdc6 >@

Or, if your machine uses '/dev/mmcblkX', you may see a line line this:

@[10770.938042]  mmcblk0: p1 p2 p3 p4 < p5 p6 >@

*WARNING:* In the next step, make sure you use /dev/"whatever you see above". *You can erase your hard drive* with the wrong parameter.

* Create media

bc. cd android/out/target/product/
sudo linaro-android-media-create --mmc /dev/sdX --dev juno --boot boot.tar.bz2 --system system.tar.bz2 --userdata userdata.tar.bz2

* Insert the USB drive into your board and reboot it

p. You must configure UEFI exach time you create a new disk image.

h2. Compiling and installing your Kernel

h3. Prerequisites

* Download and install Ubuntu 12.04 64 bit or newer ("download":http://www.ubuntu.com)
* Install the following packages by typing:

bc. sudo apt-get install build-essential git curl

* toolchain

bc. mkdir -p ~/bin
cd ~/bin
wget http://releases.linaro.org/13.11/components/toolchain/binaries/gcc-linaro-aarch64-linux-gnu-4.8-2013.11_linux.tar.xz
tar xf gcc-linaro-aarch64-linux-gnu-4.8-2013.11_linux.tar.xz
PATH=$PATH:~/bin/gcc-linaro-aarch64-linux-gnu-4.8-2013.11_linux/bin

* Create a working subdirectory
* Download the auto build script for this release from the list of artifacts above (the kernel configuration will be automatically downloaded).
* Run the build script

bc. chmod a+x linaro_kernel_build_cmds.sh
./linaro_kernel_build_cmds.sh

h1. Installing your kernel

This section is common for both Android and OpenEmbedded

* Create the Device Tree blob if you don’t have one in your Linaro image (note, the A9 Core Tile boots using an ATAGS kernel):

bc. make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- dtbs

* Insert the USB drive containing the Linaro disk image
* Copy the kernel onto the memory card

bc. cp arch/arm64/boot/Image /media/boot/
cp arch/arm64/boot/dts/juno.dtb /media/boot

* Eject the USB drive @eject /media/boot@

* Insert the USB drive into the board and power it on