Compare commits
290 commits
qa-checkpo
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
24d54c6b30 | ||
|
52e86b36d3 | ||
|
f1c823542a | ||
|
1d9265c160 | ||
|
68e66c77fb | ||
|
66204121f1 | ||
|
838db9f2a6 | ||
|
9f56d8eded | ||
|
0315895285 | ||
|
c80b29934c | ||
|
6590ac3dbf | ||
|
78615112d8 | ||
|
74e2d5cb87 | ||
|
c57ee40676 | ||
|
80c2a20ae8 | ||
|
0d58dfbdda | ||
|
d2a937d1f7 | ||
|
dfd15fefc5 | ||
|
f838f654e5 | ||
|
4e47a285fb | ||
|
aacbd741b0 | ||
|
8a7f6c2cb5 | ||
|
77d8cfa8c9 | ||
|
3637ac5956 | ||
|
51beb7c249 | ||
|
3a87a27875 | ||
|
5c804f3778 | ||
|
4366a7d700 | ||
|
d6cfb1ffca | ||
|
c62c7e7cc3 | ||
|
4bf54f31c9 | ||
|
33fc84c6e0 | ||
|
436f7df8c0 | ||
|
743d269842 | ||
|
263c3f422b | ||
|
b880958991 | ||
|
b63c6e8bd6 | ||
|
318c4ee455 | ||
|
fc153ed908 | ||
|
0dcb75b531 | ||
|
3fe307c590 | ||
|
431dba1150 | ||
|
d04e79aae9 | ||
|
cd01899961 | ||
|
71d6b0aedd | ||
|
59b02025f7 | ||
|
5f8bbef24e | ||
|
ae4a56a8ee | ||
|
7c7033691c | ||
|
e2462ddb78 | ||
|
6de8190b3b | ||
|
8df06d7526 | ||
|
9a0e8b8665 | ||
|
5212de1d53 | ||
|
d562f2c774 | ||
|
10e57be57d | ||
|
fcf4fc383e | ||
|
9297e5029f | ||
|
02db3fd7df | ||
|
e65a6648f8 | ||
|
07e83523a5 | ||
|
960a058213 | ||
|
207fe32d04 | ||
|
5a84e8f569 | ||
|
c4e9c31c01 | ||
|
170f78748b | ||
|
1ff57f7f82 | ||
|
88dab20bd4 | ||
|
1c52cc224d | ||
|
d9696d5c75 | ||
|
f76d9f94e3 | ||
|
2ea9a16012 | ||
|
1311594f88 | ||
|
afbf47595a | ||
|
7936a56619 | ||
|
8b3b14c1cd | ||
|
8cf45481c4 | ||
|
90449bb3c5 | ||
|
56154a9456 | ||
|
045ec8e735 | ||
|
32f73fda26 | ||
|
295ec89b4d | ||
|
d1dd0815d0 | ||
|
15cf5adff6 | ||
|
98eb526434 | ||
|
63f629a2f6 | ||
|
f6d8d16069 | ||
|
a5410e38d1 | ||
|
d369b2f2a2 | ||
|
e080284903 | ||
|
20747ad0f2 | ||
|
071b6172b3 | ||
|
f3e748336e | ||
|
4184005a27 | ||
|
42692a4fc3 | ||
|
f62476a030 | ||
|
21144daa6f | ||
|
0433957d7d | ||
|
054d379a5a | ||
|
f84fe1b80f | ||
|
5623836643 | ||
|
94da6b2384 | ||
|
e5771364ec | ||
|
14286a4718 | ||
|
55410d48b9 | ||
|
a6df430744 | ||
|
3aa1a8633b | ||
|
e179728233 | ||
|
585ba91c7f | ||
|
74a7e334a4 | ||
|
0a0a3349c1 | ||
|
de150d24b2 | ||
|
8dd9ff0e92 | ||
|
15cafea595 | ||
|
5725019e19 | ||
|
dedaca37b9 | ||
|
6133d1988a | ||
|
f29a640853 | ||
|
26ef3bc165 | ||
|
1c70f0382c | ||
|
8c372ba06f | ||
|
c8fb43fbf7 | ||
|
e7164e8ad4 | ||
|
59a4a7b425 | ||
|
cff14c3e15 | ||
|
ce6f96466d | ||
|
df704879f0 | ||
|
c48d7d172b | ||
|
3b1687c972 | ||
|
508d1add44 | ||
|
c4e4f514dc | ||
|
5bfda9e50d | ||
|
3676628a44 | ||
|
8809362531 | ||
|
2802172bd3 | ||
|
f7860a4d82 | ||
|
8f264d3085 | ||
|
2ae07e52d5 | ||
|
a939f17ac9 | ||
|
45245efd0a | ||
|
9037fa4b33 | ||
|
41e2041fdc | ||
|
dcc64450cc | ||
|
747e347769 | ||
|
0daa8c156e | ||
|
54c8fac5c0 | ||
|
adf499b36b | ||
|
5f88003912 | ||
|
734ffd2ef9 | ||
|
ae1881d9a3 | ||
|
cff3c0a6ae | ||
|
d428ae4f08 | ||
|
337204f57c | ||
|
22518d821f | ||
|
697ebf0081 | ||
|
aeb50715cf | ||
|
eef0bc13d0 | ||
|
9033c7e0be | ||
|
35a05d7908 | ||
|
d953d1f931 | ||
|
938d113b54 | ||
|
286dad52f6 | ||
|
1326c821e2 | ||
|
68dac2584b | ||
|
3561b89203 | ||
|
61d573246b | ||
|
f6d6412a9e | ||
|
46b8081c6a | ||
|
773928269c | ||
|
543b7af18a | ||
|
d74fd2eaa0 | ||
|
a703507707 | ||
|
b49fc82ddc | ||
|
1e93ec826b | ||
|
36fe01c258 | ||
|
8b5f9994c2 | ||
|
5a3cefff61 | ||
|
91f5179865 | ||
|
a2d83f16a6 | ||
|
af26b4d123 | ||
|
1f862a94d6 | ||
|
989254c8c4 | ||
|
302a99af69 | ||
|
2edc9581b1 | ||
|
e1a4bbba82 | ||
|
2f8848d345 | ||
|
89f938e914 | ||
|
b50bf8d8c9 | ||
|
895f7bc346 | ||
|
b92986a8c7 | ||
|
a1d3075c96 | ||
|
866911b6af | ||
|
bc63feebc8 | ||
|
3061f152f8 | ||
|
de424a167f | ||
|
129d0c237f | ||
|
e8981bb89a | ||
|
c77919ffcf | ||
|
4c8157067f | ||
|
5c65b7b40b | ||
|
8226efbbc6 | ||
|
e625d34010 | ||
|
d379380718 | ||
|
d220bbdd1e | ||
|
dc79d6369d | ||
|
18f8097b87 | ||
|
0f4581508b | ||
|
664002edb0 | ||
|
6e0f6c304e | ||
|
569edd8af5 | ||
|
1b2601259b | ||
|
5c0850828d | ||
|
b89f88bc95 | ||
|
63f513fe2f | ||
|
4ca1c9f47a | ||
|
c120733c2a | ||
|
11c4d7a676 | ||
|
5a4b6a470b | ||
|
05d894e055 | ||
|
1781fb71bd | ||
|
e9c08a3443 | ||
|
76367ba5f5 | ||
|
b5cc48db31 | ||
|
8fc2d4d812 | ||
|
9618fdb6c7 | ||
|
97a3ad4a06 | ||
|
ab3510b84f | ||
|
0505375b1d | ||
|
7684ffe1a1 | ||
|
e8b965ca50 | ||
|
2976552efa | ||
|
de5ccb2728 | ||
|
f8c7e1ec98 | ||
|
ede80f2097 | ||
|
253ac0b4f7 | ||
|
3a45d66fb6 | ||
|
f45a77f54e | ||
|
4a76ff4556 | ||
|
6f351b500b | ||
|
fa44f93471 | ||
|
f9681d36c3 | ||
|
bd2c015555 | ||
|
454f72c387 | ||
|
6fc3cb9c8d | ||
|
9ab43738d4 | ||
|
140f4188ec | ||
|
7adbd82582 | ||
|
c89316fe77 | ||
|
b71b8d68cb | ||
|
df47c9f88d | ||
|
4855d62997 | ||
|
1088806b69 | ||
|
53132f452e | ||
|
41113eb964 | ||
|
b20c38da24 | ||
|
f03a4c7067 | ||
|
f3322b7f86 | ||
|
0667a7525e | ||
|
e4f904f056 | ||
|
e1d1a73aed | ||
|
6b9b7bdac5 | ||
|
6417a90ceb | ||
|
08bdfe6819 | ||
|
5ffa7cca92 | ||
|
9fcf8fdbf3 | ||
|
048c0c87c0 | ||
|
a6cccdd09c | ||
|
57f32f9b44 | ||
|
803fb66167 | ||
|
02c3457a47 | ||
|
b1911e5e34 | ||
|
1499b7286b | ||
|
d218c72382 | ||
|
35c840da55 | ||
|
8cec2f2361 | ||
|
21899c0462 | ||
|
a380422c68 | ||
|
2c4acafe68 | ||
|
a36f4f5b8f | ||
|
0a0357eb17 | ||
|
421d18c0dd | ||
|
a4e6dd304f | ||
|
8b83163770 | ||
|
39c4a05391 | ||
|
3a756aeda0 | ||
|
025b78e173 | ||
|
f24b66398d | ||
|
c46972efcf | ||
|
1bf48850e4 | ||
|
6992b8474e |
266 changed files with 15737 additions and 669 deletions
|
@ -1,70 +1,3 @@
|
||||||
## Downloads
|
[This File has been moved here](https://github.com/Linaro/website/blob/master/Linaro.org/downloads/README.md)
|
||||||
|
|
||||||
This page contains direct links to the latest versions of the most popular downloads from Linaro. These include a selection of builds including Android, the LAVA test framework and key toolchains.
|
https://github.com/Linaro/website/blob/master/Linaro.org/downloads/README.md
|
||||||
|
|
||||||
## Linaro Member Builds
|
|
||||||
|
|
||||||
LMBs are full system builds of popular open-source products set up at the request of a Linaro Core/Club [Member](https://www.linaro.org/members/) company.
|
|
||||||
|
|
||||||
| | | |
|
|
||||||
|:---|:---|:---|
|
|
||||||
|ARM| Juno, Fixed Virtual Platforms (FVP), Versatile Express | [Platform release notes](http://community.arm.com/groups/arm-development-platforms)|
|
|
||||||
|Qualcomm| Download for Snapdragon 600 processor | [Snapdragon 600 Linux Platform](https://releases.linaro.org/debian/boards/snapdragon/latest/)|
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
## Linaro Stable Kernel (LSK)
|
|
||||||
|
|
||||||
The LSK is a version of kernel.org’s Long-Term Stable (LTS) release with new Linaro developed optimizations and ARM support integrated. There are two versions: a “Core” version for generic Linux and an “Android” version. Click right for the latest downloads.
|
|
||||||
|
|
||||||
- [linux-linaro-stable (LSK), Source, Git](https://wiki.linaro.org/LSK)
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
## Linaro Confectionary Release (LCR)
|
|
||||||
|
|
||||||
R-LCR is a build of the Android Open Source Project (AOSP) from a stable “L” branch that includes platform support and other features. R-LCR includes the Android flavour of Linaro Stable Kernel (LSK) for all machine configurations.
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
## LAVA
|
|
||||||
|
|
||||||
The Linaro Automated Validation Architecture (LAVA) is a test and continuous integration framework that Linaro uses to validate its releases. The source is open so that members and others can create their own instantiations and run proprietary tests within this standard framework. [Click here for the latest downloads](https://releases.linaro.org/components/lava/latest/).
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
## Linaro Networking
|
|
||||||
|
|
||||||
Based on the Linaro Stable Kernel (LSK) and upstream, these kernels add features currently being developed by LNG and not upstreamed yet.
|
|
||||||
|
|
||||||
Release notes https://git.linaro.org/lng/releases-instructions.git
|
|
||||||
|
|
||||||
Repo https://git.linaro.org/kernel/linux-linaro-lng.git
|
|
||||||
|
|
||||||
- Latest LSK kernel for which a preempt-rt patch set has been released, plus patches that have not yet been accepted upstream and are relevant to LNG ([linux-linaro-lng-4.1](http://releases.linaro.org/components/kernel/linux-linaro-lng/16.03/linux-linaro-lng-4.1.14-2016.03.tar.bz2))
|
|
||||||
- Same as linux-linaro-lng-v4.1 but with the preempt-rt patches applied. ([linux-linaro-lng-preempt-rt-4.1](http://releases.linaro.org/components/kernel/linux-linaro-lng/16.03/linux-linaro-lng-preempt-rt-4.1.14-2016.03.tar.bz2))
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
#### OpenDataPlane
|
|
||||||
|
|
||||||
The [OpenDataPlane](http://www.opendataplane.org/) API has three implementations supported directly by LNG
|
|
||||||
|
|
||||||
- Functional reference model that runs on any linux implementation ([odp-linux-generic](https://git.linaro.org/lng/odp.git))
|
|
||||||
- Reusing odp-linux-generic and adding packet_io acceleration via Netmap ([odp-netmap](https://git.linaro.org/lng/odp-netmap.git))
|
|
||||||
- Performance implementation build for x86 using the DPDK SDK. ([odp-dpdk](https://git.linaro.org/lng/odp-dpdk.git))
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
## Linaro Toolchain
|
|
||||||
|
|
||||||
Linaro offers monthly updates to QEMU, GDB, toolchain components and various versions of GCC. You can access source and pre-built binaries. Click below for the latest downloads.
|
|
||||||
|
|
||||||
- linaro-toolchain-binaries (little-endian) - ([Linux](https://releases.linaro.org/components/toolchain/binaries/latest-5/arm-linux-gnueabihf/) / [Windows Archive](https://releases.linaro.org/components/toolchain/binaries/latest-5/arm-linux-gnueabihf/) / [Bare Metal](https://releases.linaro.org/components/toolchain/binaries/latest-5/arm-eabi/) / [Source](https://releases.linaro.org/components/toolchain/gcc-linaro/latest-5/) / [Sysroot](https://releases.linaro.org/components/toolchain/binaries/latest-5/arm-linux-gnueabihf/))
|
|
||||||
- linaro-toolchain-binaries (big-endian) - ([Linux](https://releases.linaro.org/components/toolchain/binaries/latest-5/armeb-linux-gnueabihf/) / [Bare Metal](https://releases.linaro.org/components/toolchain/binaries/latest-5/armeb-eabi/) / [Source](https://releases.linaro.org/components/toolchain/gcc-linaro/latest-5/) / [Sysroot](https://releases.linaro.org/components/toolchain/binaries/latest-5/armeb-linux-gnueabihf/))
|
|
||||||
- linaro-toolchain-binaries (Aarch64 little-endian) - ([Linux](https://releases.linaro.org/components/toolchain/binaries/latest-5/aarch64-linux-gnu/) / [Windows Archive](https://releases.linaro.org/components/toolchain/binaries/latest-5/aarch64-linux-gnu/) / [Bare Metal](https://releases.linaro.org/components/toolchain/binaries/latest-5/aarch64-elf/) / [Source](https://releases.linaro.org/components/toolchain/gcc-linaro/latest-5/) / [Sysroot](https://releases.linaro.org/components/toolchain/binaries/latest-5/aarch64-linux-gnu/))
|
|
||||||
- linaro-toolchain-binaries (Aarch64 big-endian) - ([Linux](https://releases.linaro.org/components/toolchain/binaries/latest-5/aarch64_be-linux-gnu/) / [Bare Metal](https://releases.linaro.org/components/toolchain/binaries/latest-5/aarch64_be-elf/) / [Source](https://releases.linaro.org/components/toolchain/gcc-linaro/latest-5/) / [Sysroot](https://releases.linaro.org/components/toolchain/binaries/latest-5/aarch64_be-linux-gnu/))
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
More interested in bare-metal and long-term maintained [releases](https://launchpad.net/gcc-arm-embedded) for ARM embedded processors? We’re working with ARM to also supply a Cortex-R and Cortex-M bare-metal build. Major releases will be made once a year with quarterly update releases. Releases will be maintained for two years. Get these from Launchpad: https://launchpad.net/gcc-arm-embedded
|
|
||||||
|
|
|
@ -6,8 +6,6 @@ Welcome to the official documentation for Linaro and the Reference Software Plat
|
||||||
|
|
||||||
- [Reference Platform Home](Reference-Platform/README.md)
|
- [Reference Platform Home](Reference-Platform/README.md)
|
||||||
- Get started here with the Reference Software Platform
|
- Get started here with the Reference Software Platform
|
||||||
- [Linaro Home](Linaro/README.md)
|
|
||||||
- See whats new with Linaro
|
|
||||||
- [Definitions](Definitions/README.md)
|
- [Definitions](Definitions/README.md)
|
||||||
- Linaro and 96Boards terminology
|
- Linaro and 96Boards terminology
|
||||||
- [Contribute to the Reference Platform](Reference-Platform/Contribute/README.md)
|
- [Contribute to the Reference Platform](Reference-Platform/Contribute/README.md)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
## OpenEmbedded and Yocto
|
## OpenEmbedded and Yocto
|
||||||
|
|
||||||
This page provides instructions to get started with OpenEmbedded and the Yocto Project on the DragonBoard 410c and HiKey.
|
This page provides instructions to get started with OpenEmbedded and the Yocto Project. It tries (when possible) to be generic for any board supported.
|
||||||
|
The board diversity should be addressed through dedicated BSP layer then MACHINE choice.
|
||||||
|
|
||||||
# Introduction
|
# Introduction
|
||||||
|
|
||||||
|
@ -11,15 +12,12 @@ This wiki is not an introduction on OpenEmbedded or Yocto Project. If you are no
|
||||||
|
|
||||||
In this wiki, we assume that the reader is familiar with basic concepts of OpenEmbedded.
|
In this wiki, we assume that the reader is familiar with basic concepts of OpenEmbedded.
|
||||||
|
|
||||||
The support for DragonBoard 410c is available in the [meta-qcom BSP layer](http://git.yoctoproject.org/cgit/cgit.cgi/meta-qcom).
|
The support for a dedicated board is available in the dedicated BSP Layer. These layers have been tested with OpenEmbedded Core layer, and are expected to work with any other standard layers and of course any OpenEmbedded based distributions.
|
||||||
|
|
||||||
The support for HiKey is available in the [meta-96boards BSP layer](https://github.com/96boards/meta-96boards).
|
|
||||||
|
|
||||||
These layers have been tested with OpenEmbedded Core layer, and are expected to work with any other standard layers and of course any OpenEmbedded based distributions.
|
|
||||||
|
|
||||||
The Linux kernel used for these boards is the Reference Platform Kernel (RPK). The graphic stack is based on mesa:
|
The Linux kernel used for these boards is the Reference Platform Kernel (RPK). The graphic stack is based on mesa:
|
||||||
* using the freedreno driver for Dragonboard 410c
|
* using the freedreno driver for Dragonboard 410c
|
||||||
* using the ARM Mali Utgard GPU driver for HiKey
|
* using the ARM Mali Utgard GPU driver for HiKey
|
||||||
|
* using the ARM Mali 400 GPU driver for B2260
|
||||||
|
|
||||||
## OE Layers
|
## OE Layers
|
||||||
|
|
||||||
|
@ -32,8 +30,9 @@ The Linux kernel used for these boards is the Reference Platform Kernel (RPK). T
|
||||||
| meta-qt5 | This is a cross-platform toolkit. |
|
| meta-qt5 | This is a cross-platform toolkit. |
|
||||||
| meta-linaro | This layer is used to get the Linaro toolchain. |
|
| meta-linaro | This layer is used to get the Linaro toolchain. |
|
||||||
| meta-linaro-backports | This is an experimental layer used to get newer versions into the build which were not part of the release. |
|
| meta-linaro-backports | This is an experimental layer used to get newer versions into the build which were not part of the release. |
|
||||||
| meta-96Boards | This support layer is managed by Linaro and intended for boards that do not have their own board support layer. Currently used for the HiKey Consumer Edition board, and eventually the Bubblegum-96 board. If a vendor does not support their own layer, it can be added to this layer. |
|
| [meta-96boards BSP layer](https://github.com/96boards/meta-96boards) | This support layer is managed by Linaro and intended for boards that do not have their own board support layer. Currently used for the HiKey Consumer Edition board, and eventually the Bubblegum-96 board. If a vendor does not support their own layer, it can be added to this layer. |
|
||||||
| meta-qcom (BSP) | This is the board support layer for Qualcomm boards. Currently supports IFC6410 and the DragonBoard 410c. |
|
| [meta-qcom BSP layer](http://git.yoctoproject.org/cgit/cgit.cgi/meta-qcom) | This is the board support layer for Qualcomm boards. Currently supports IFC6410 and the DragonBoard 410c. |
|
||||||
|
| [meta-st-cannes2 BSP Layer](https://github.com/cpriouzeau/meta-st-cannes2) | This is the board support layer for ST B2260 board. |
|
||||||
|
|
||||||
# Package Dependencies
|
# Package Dependencies
|
||||||
|
|
||||||
|
@ -86,7 +85,7 @@ To manage the various git trees and the OpenEmbedded environment, a repo manifes
|
||||||
To initialize your build environment, you need to run:
|
To initialize your build environment, you need to run:
|
||||||
|
|
||||||
mkdir oe-rpb && cd oe-rpb
|
mkdir oe-rpb && cd oe-rpb
|
||||||
repo init -u https://github.com/96boards/oe-rpb-manifest.git -b jethro
|
repo init -u https://github.com/96boards/oe-rpb-manifest.git -b morty
|
||||||
repo sync
|
repo sync
|
||||||
source setup-environment [<build folder>]
|
source setup-environment [<build folder>]
|
||||||
|
|
||||||
|
@ -145,7 +144,7 @@ Dragonboard 410c:
|
||||||
|
|
||||||
HiKey:
|
HiKey:
|
||||||
* `/dev/mmcblk0p6` , aka `boot` is used for the boot image (kernel, device tree, initrd)
|
* `/dev/mmcblk0p6` , aka `boot` is used for the boot image (kernel, device tree, initrd)
|
||||||
* `/dev/mmcblk0p9` , aka `rootfs` is used for the root file system
|
* `/dev/mmcblk0p9` , aka `system` is used for the root file system
|
||||||
|
|
||||||
# Flashing build artifacts
|
# Flashing build artifacts
|
||||||
|
|
||||||
|
@ -170,7 +169,7 @@ In the case of Dragonboard 410c:
|
||||||
In the case of HiKey:
|
In the case of HiKey:
|
||||||
|
|
||||||
# ext2simg -v IMAGE-MACHINE.ext4 IMAGE-MACHINE.img
|
# ext2simg -v IMAGE-MACHINE.ext4 IMAGE-MACHINE.img
|
||||||
# fastboot flash rootfs IMAGE-MACHINE.img
|
# fastboot flash system IMAGE-MACHINE.img
|
||||||
|
|
||||||
# Proprietary firmware blob
|
# Proprietary firmware blob
|
||||||
|
|
||||||
|
@ -226,6 +225,119 @@ If you boot this image on the board, you should get a command prompt on the HDMI
|
||||||
|
|
||||||
And that should get you to the Weston desktop shell.
|
And that should get you to the Weston desktop shell.
|
||||||
|
|
||||||
|
# Build mixed 32bit/64bit image
|
||||||
|
|
||||||
|
OE RPB has support for creating mixed 32-bit/64-bit builds with 64-bit
|
||||||
|
kernel and 32-bit userland for:
|
||||||
|
* HiKey
|
||||||
|
* Dragonboard-410c
|
||||||
|
|
||||||
|
There are two variants of machine configuration for both HiKey and
|
||||||
|
Dragonboard-410c boards:
|
||||||
|
|
||||||
|
| Board | MACHINE-32 | MACHINE-64 |
|
||||||
|
|:-----:|:-------------:|:-----------:|
|
||||||
|
| HiKey | hikey-32 | hikey |
|
||||||
|
| DB-410c| dragonboard-410c-32 | dragonboard-410c |
|
||||||
|
|
||||||
|
MACHINE-32 configuration doesn't build the kernel. It is intended to
|
||||||
|
create the 32-bit root filesystem only.
|
||||||
|
|
||||||
|
MACHINE-64 configuration is universal. But in this mixed build only the
|
||||||
|
kernel and the kernel modules are needed from the 64-bit configuration,
|
||||||
|
so the 64-bit rpb-minimal-image is built.
|
||||||
|
|
||||||
|
## Running a mixed build
|
||||||
|
|
||||||
|
Setting up the build environment is the same as usual. The only difference
|
||||||
|
is that when running
|
||||||
|
```
|
||||||
|
$ . setup-environment
|
||||||
|
```
|
||||||
|
one should select `<MACHINE-32>` as the MACHINE.
|
||||||
|
DISTRO values can be:
|
||||||
|
* rpb-x11
|
||||||
|
* rpb-wayland
|
||||||
|
|
||||||
|
Then do
|
||||||
|
```
|
||||||
|
bitbake_secondary_image --extra-machine <MACHINE-64> <image>
|
||||||
|
```
|
||||||
|
e.g. if MACHINE=dragonboard-410c-32 and DISTRO=rpb-wayland were selected
|
||||||
|
when sourcing setup-environment, the command could be:
|
||||||
|
`bitbake_secondary_image --extra-machine dragonboard-410c rpb-weston-image`
|
||||||
|
|
||||||
|
## Creating the mixed rootfs image
|
||||||
|
|
||||||
|
`bitbake_secondary_image` actually runs two builds. So in the build directory,
|
||||||
|
under `tmp-*/deploy/images/` two directories are created: one for 32-bit build
|
||||||
|
artifacts, and the other for the 64-bit ones. E.g.
|
||||||
|
```
|
||||||
|
tmp-rpb_wayland-glibc/deploy/images/dragonboard-410c-32
|
||||||
|
```
|
||||||
|
and
|
||||||
|
```
|
||||||
|
tmp-rpb_wayland-glibc/deploy/images/dragonboard-410c
|
||||||
|
```
|
||||||
|
|
||||||
|
Unpack the 32-bit `*.rootfs.ext4` image, resize it to make sure that there is
|
||||||
|
enough space for the 64-bit modules, mount it via a loop device, and unpack the
|
||||||
|
64-bit modules into the 32-bit root filesystem. Then unmount the rootfs to get
|
||||||
|
the 32-bit rootfs.ext4 image with the 64-bit kernel modules added.
|
||||||
|
|
||||||
|
Please find more detailed instructions for the both boards below.
|
||||||
|
|
||||||
|
### Creating the image for Dragonboard-410c
|
||||||
|
|
||||||
|
Assuming that all the relevant build artifacts are in the current directory:
|
||||||
|
```
|
||||||
|
gunzip -k rpb-weston-image-dragonboard-410c-32-20161013104111.rootfs.ext4.gz
|
||||||
|
resize2fs rpb-weston-image-dragonboard-410c-32-20161013104111.rootfs.ext4 512M
|
||||||
|
mkdir root
|
||||||
|
sudo mount -o loop rpb-weston-image-dragonboard-410c-32-20161013104111.rootfs.ext4 root
|
||||||
|
cd root/
|
||||||
|
sudo tar xzf ../modules--4.4-r0-dragonboard-410c-20161013094521.tgz
|
||||||
|
cd ..
|
||||||
|
sync
|
||||||
|
sudo umount root
|
||||||
|
ext2simg rpb-weston-image-dragonboard-410c-32-20161013104111.rootfs.ext4 rpb-weston-image-dragonboard-410c.rootfs.img
|
||||||
|
```
|
||||||
|
The resulting rpb-weston-image-dragonboard-410c.rootfs.img with 32-bit userland
|
||||||
|
and 64-bit kernel modules can be flashed into the board with
|
||||||
|
```
|
||||||
|
fastboot flash rootfs rpb-weston-image-dragonboard-410c.rootfs.img
|
||||||
|
```
|
||||||
|
|
||||||
|
### Creating the image for HiKey
|
||||||
|
|
||||||
|
Creating the mixed tootfs image for HiKey is the same as for Dragonboard-410c,
|
||||||
|
but requires an extra step, as HiKey reads the kernel image to boot from the
|
||||||
|
rootfs (vs a boot partition in the case of Dragonboard-410c). So the 64-bit
|
||||||
|
kernel image and the DTB file must be copied to the 32-bit rootfs, the /boot
|
||||||
|
directory - this is where GRUB looks the kernel image for. E.g.:
|
||||||
|
```
|
||||||
|
mkdir root
|
||||||
|
mkdir root-64
|
||||||
|
gunzip -k rpb-minimal-image-hikey-20161014162659.rootfs.ext4.gz
|
||||||
|
sudo mount -o loop rpb-minimal-image-hikey-20161014162659.rootfs.ext4 root-64/
|
||||||
|
gunzip -k rpb-weston-image-hikey-32-20161014172406.rootfs.ext4.gz
|
||||||
|
resize2fs rpb-weston-image-hikey-32-20161014172406.rootfs.ext4 512M
|
||||||
|
sudo mount -o loop rpb-weston-image-hikey-32-20161014172406.rootfs.ext4 root
|
||||||
|
sudo cp -r root-64/boot/* root/boot/
|
||||||
|
cd root
|
||||||
|
sudo tar xzf ../modules--4.4.11+git-r0-hikey-20161014162659.tgz
|
||||||
|
cd ..
|
||||||
|
sync
|
||||||
|
sudo umount root
|
||||||
|
sudo umount root-64
|
||||||
|
ext2simg rpb-weston-image-hikey-32-20161014172406.rootfs.ext4 rpb-weston-image-hikey.rootfs.img
|
||||||
|
```
|
||||||
|
The resulting rpb-weston-image-hikey.rootfs.img with a 32-bit userland, and
|
||||||
|
64-bit kernel modules and the kernel can be flashed into the board with
|
||||||
|
```
|
||||||
|
fastboot flash system rpb-weston-image-hikey.rootfs.img
|
||||||
|
```
|
||||||
|
|
||||||
# Support
|
# Support
|
||||||
|
|
||||||
For general question or support request, please go to [96boards.org Community forum](http://www.96boards.org/forums/forum/products/).
|
For general question or support request, please go to [96boards.org Community forum](http://www.96boards.org/forums/forum/products/).
|
||||||
|
|
|
@ -1,29 +1,20 @@
|
||||||
# Reference Platform Kernel
|
The reference platform kernel is located at:
|
||||||
|
|
||||||
Instructions on how/where to submit patches for the Reference Platform Kernel
|
https://github.com/Linaro/rpk master
|
||||||
|
|
||||||
### Contribute
|
|
||||||
|
|
||||||
- Submit patch to Linux upstream
|
|
||||||
- https://github.com/torvalds/linux
|
|
||||||
- https://www.kernel.org/doc/Documentation/SubmittingPatches
|
|
||||||
|
|
||||||
###### Patch accepted upstream
|
|
||||||
|
|
||||||
- If patch submitted upstream, and accepted by a Linux developer:
|
|
||||||
- Patch is ready for the RPK
|
|
||||||
- Submit through the 96Boards developer Mailing list
|
|
||||||
- dev@lists.96boards.org
|
|
||||||
|
|
||||||
###### Patch under review - not accepted upstream
|
|
||||||
|
|
||||||
- If patch is submitted upstream, and under review by a Linux developer:
|
|
||||||
- Patch is not yet ready for the RPK
|
|
||||||
- Please review Reference Platform [Kernel Policy](../../Reference-Platform/KernelPolicy.md) for more information
|
|
||||||
- When patch is ready for the RPK, submit all patches through the 96Boards developer Mailing list
|
|
||||||
- dev@lists.96boards.org
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
|
Changes for the reference platform kernel should have been posted upstream for
|
||||||
|
the current development kernel prior to submission to the reference platform
|
||||||
|
kernel. Changes do not need to have been accepted, they only need to have been
|
||||||
|
posted since the last merge window. They *do* need to work with other
|
||||||
|
changes in the reference platform kernel and meet quality standards but can
|
||||||
|
still be in review, the full policy can be seen in KernelPolicy.md
|
||||||
|
|
||||||
|
To submit changes:
|
||||||
|
|
||||||
|
1. Make a git branch based off Linus' most recent -rc1 tag (or a newer one if
|
||||||
|
there are dependencies) with the changes
|
||||||
|
2. Create a tag (ideally signed using 'git tag -s'). The tag message should
|
||||||
|
describe the change, why it is being proposed for the reference platform
|
||||||
|
and link to the upstream submission (ideally using thread.gmane.org).
|
||||||
|
3. Send a pull request for the tag generated using 'git request-pull' to
|
||||||
|
Mark Brown <broonie@linaro.org> and the RPK list (TBD).
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
## Installing CentOS 7.2 15.11 - Reference Platform Enterprise
|
## Installing CentOS 7 - Reference Platform Enterprise
|
||||||
|
|
||||||
This guide is not to be a replacement of the official CentOS Installer documentation, but instead be a quick walkthrough for the network installer. You can find the original documentation at [https://wiki.centos.org/SpecialInterestGroup/AltArch/AArch64](https://wiki.centos.org/SpecialInterestGroup/AltArch/AArch64)
|
This guide is not to be a replacement of the official CentOS Installer documentation, but instead be a quick walkthrough for the network installer. You can find the original documentation at [https://wiki.centos.org/SpecialInterestGroup/AltArch/AArch64](https://wiki.centos.org/SpecialInterestGroup/AltArch/AArch64)
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ wget http://mirror.centos.org/altarch/7/os/aarch64/EFI/BOOT/BOOTAA64.EFI
|
||||||
wget http://mirror.centos.org/altarch/7/os/aarch64/EFI/BOOT/grubaa64.efi
|
wget http://mirror.centos.org/altarch/7/os/aarch64/EFI/BOOT/grubaa64.efi
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Downloading the CentOS installer from the Reference Platform 16.06 release (4.4.11 RP Kernel):
|
#### Downloading the CentOS 7 Reference Platform installer (e.g. 16.06 release):
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
mkdir /srv/tftp/centos7
|
mkdir /srv/tftp/centos7
|
||||||
|
@ -27,7 +27,7 @@ wget https://builds.96boards.org/releases/reference-platform/components/centos-i
|
||||||
Creating the Grub 2 config file (`grub.cfg`):
|
Creating the Grub 2 config file (`grub.cfg`):
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
menuentry 'Install CentOS 7 ARM 64-bit - Reference Platform - 16.06' --class red --class gnu-linux --class gnu --class os {
|
menuentry 'Install CentOS 7 ARM 64-bit - Reference Platform' --class red --class gnu-linux --class gnu --class os {
|
||||||
linux (tftp)/centos7/vmlinuz ip=dhcp inst.stage2=https://builds.96boards.org/releases/reference-platform/components/centos-installer/16.06/ inst.repo=http://mirror.centos.org/altarch/7/os/aarch64/ inst.ks=file:/ks.cfg
|
linux (tftp)/centos7/vmlinuz ip=dhcp inst.stage2=https://builds.96boards.org/releases/reference-platform/components/centos-installer/16.06/ inst.repo=http://mirror.centos.org/altarch/7/os/aarch64/ inst.ks=file:/ks.cfg
|
||||||
initrd (tftp)/centos7/initrd.img
|
initrd (tftp)/centos7/initrd.img
|
||||||
}
|
}
|
||||||
|
@ -90,7 +90,7 @@ Press <DEL> or <ESC> to enter setup.
|
||||||
At this stage you should be able to see the Grub 2 menu, like:
|
At this stage you should be able to see the Grub 2 menu, like:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
Install CentOS 7 ARM 64-bit - Reference Platform - 16.06
|
Install CentOS 7 ARM 64-bit - Reference Platform
|
||||||
.
|
.
|
||||||
Use the and keys to change the selection.
|
Use the and keys to change the selection.
|
||||||
Press 'e' to edit the selected item, or 'c' for a command prompt.
|
Press 'e' to edit the selected item, or 'c' for a command prompt.
|
||||||
|
@ -203,7 +203,7 @@ echo linaro | passwd linaro --stdin
|
||||||
Now back to your tftp server, change the original grub.cfg file adding the location of your kickstart file:
|
Now back to your tftp server, change the original grub.cfg file adding the location of your kickstart file:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
menuentry 'Install CentOS 7 ARM 64-bit - Reference Platform - 16.06' --class red --class gnu-linux --class gnu --class os {
|
menuentry 'Install CentOS 7 ARM 64-bit - Reference Platform' --class red --class gnu-linux --class gnu --class os {
|
||||||
linux (tftp)/centos7/vmlinuz ip=dhcp inst.stage2=https://builds.96boards.org/releases/reference-platform/components/centos-installer/16.06/ inst.ks=http://people.linaro.org/~ricardo.salveti/centos-ks.cfg
|
linux (tftp)/centos7/vmlinuz ip=dhcp inst.stage2=https://builds.96boards.org/releases/reference-platform/components/centos-installer/16.06/ inst.ks=http://people.linaro.org/~ricardo.salveti/centos-ks.cfg
|
||||||
initrd (tftp)/centos7/initrd.img
|
initrd (tftp)/centos7/initrd.img
|
||||||
}
|
}
|
||||||
|
|
|
@ -265,24 +265,15 @@ Flashing D03 requires the board to have a working ethernet connection to the FTP
|
||||||
|
|
||||||
##### Clean flash
|
##### Clean flash
|
||||||
|
|
||||||
First make sure the built firmware is available in your FTP server ('D03.fd'):
|
To do a clean flash you will require access to the board's BMC.
|
||||||
|
|
||||||
```shell
|
1. Make sure the board's BMC port is connected, and with a known IP address.
|
||||||
cp D03.fd /srv/tftp/
|
2. Login the BMC website, The username/passwd is root/Huawei12#$. Go to "System", "Firmware Upgrade", and "Browse" to select the UEFI file in hpm format. (Please contact support@open-estuary.org to get the hpm file).
|
||||||
```
|
3. Pull out the power cable to power off the board. Find the pin named "COM_SW" at J44. Then connect it with jump cap.
|
||||||
|
4. Power on the board and connect to the board's serial port. When the screen display message "You are trying to access a restricted zone. Only Authorized Users allowed.", type "Enter", input username/passwd (username/passwd is root/Huawei12#$).
|
||||||
Now follow the steps below in order to fetch and flash the new firmware:
|
5. After you login the BMC interface which start with "iBMC:/->", use command "ifconfig" to see the modified BMC IP. When you get the board's BMC IP, please visit the BMC website by "https://BMC IP ADDRESS/".
|
||||||
|
6. Go to "Start Update" (Do not power off during this period).
|
||||||
1. Power off the board and unplug the power supply.
|
7. After updating the UEFI firmware, reboot the board to enter UEFI menu.
|
||||||
2. Push the dial switch **3. CPU0_SPI_SEL** to **off** (check [http://open-estuary.com/d03-2/](http://open-estuary.com/d03-2/) for the board picture)
|
|
||||||
- The board has two SPI flash chips, and this switch selects which one to boot from.
|
|
||||||
3. Power on the device, stop the boot from the serial console, and get into the the 'Embedded Boot Loader (EBL)' shell
|
|
||||||
4. Push the dial switch **3. CPU0_SPI_SEL** to **on**
|
|
||||||
- **NOTE:** make sure to run the step above before running 'biosupdate' (as it modifies the flash), or else the backup BIOS will also be modified and there will be no way to unbrick the board (unless sending it back to Huawei).
|
|
||||||
5. Download and flash the firmware file from the FTP server:
|
|
||||||
'biosupdate <server ip> -u <user> -p <password> -f <UEFI image file name> master' like
|
|
||||||
'D02 > biosupdate 10.0.0.10 -u anonymous -p anonymous -f D03.fd master'
|
|
||||||
6. Exit the EBL console and reboot the board
|
|
||||||
|
|
||||||
##### Upgrading firmware
|
##### Upgrading firmware
|
||||||
|
|
||||||
|
|
BIN
Reference-Platform/Extras/Images/LAS16_Presentation_Cover.png
Normal file
BIN
Reference-Platform/Extras/Images/LAS16_Presentation_Cover.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 441 KiB |
BIN
Reference-Platform/Extras/Images/RP_Cover.png
Normal file
BIN
Reference-Platform/Extras/Images/RP_Cover.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 486 KiB |
|
@ -1,7 +1,7 @@
|
||||||
## Introduction
|
## Introduction
|
||||||
The Reference Platform Kernel (RPK) brings together WIP code that is still under review upstream in case that is useful.
|
The Reference Platform Kernel (RPK) brings together WIP code that is still under review upstream in case that is useful.
|
||||||
|
|
||||||
The kernel tree is managed similar to linux-next, in that topic branches adding support for various platforms and new kernel features are merged on top of a (close-to-mainline) vanilla kernel. These topic branches are provided by the relevant segment group, Landing Team or vendor engineers who want to add support for a hardware platform or a new feature into RPK. Please review the [[patch-acceptance policy|RP-Kernel-Policy]] for RPK. It is implicit that the person responsible for the feature/platform suppport will rebase it to the new kernel version if that feature is not to be dropped in subsequent kernel releases.
|
The kernel tree is managed similar to linux-next, in that topic branches adding support for various platforms and new kernel features are merged on top of a (close-to-mainline) vanilla kernel. These topic branches are provided by the relevant segment group, Landing Team or vendor engineers who want to add support for a hardware platform or a new feature into RPK. Please review the [patch-acceptance Policy](KernelPolicy.md) for RPK. It is implicit that the person responsible for the feature/platform suppport will rebase it to the new kernel version if that feature is not to be dropped in subsequent kernel releases.
|
||||||
|
|
||||||
See the [table](#kernel-version-table) below for a roadmap of proposed kernel versions for future releases.
|
See the [table](#kernel-version-table) below for a roadmap of proposed kernel versions for future releases.
|
||||||
|
|
||||||
|
@ -34,8 +34,7 @@ FIXME
|
||||||
No. RPK's main focus is on engineers and teams that need to get their code upstream as a requirement to get distribution support (e.g. LEG features enabled in RHEL, Ubuntu) or that need to work on tip to get new features accepted into the kernel (e.g. core engineering teams such at KWG, PMWG). We don't have resources to maintain a long-term kernel. Please talk to the LSK team for long-term supported kernels.
|
No. RPK's main focus is on engineers and teams that need to get their code upstream as a requirement to get distribution support (e.g. LEG features enabled in RHEL, Ubuntu) or that need to work on tip to get new features accepted into the kernel (e.g. core engineering teams such at KWG, PMWG). We don't have resources to maintain a long-term kernel. Please talk to the LSK team for long-term supported kernels.
|
||||||
|
|
||||||
## Additional Material
|
## Additional Material
|
||||||
* [Talk](https://www.youtube.com/watch?v=fW6_eL3U7OQ) about RPK at BKK16 (March 2016)
|
* [Talk](https://www.youtube.com/watch?v=fW6_eL3U7OQ) about RPK at BKK16 (March 2016, policy/goals substantially changed since)
|
||||||
* [Patch-acceptance Policy](KernelPolicy.md) for RPK
|
* [Patch-acceptance Policy](KernelPolicy.md) for RPK
|
||||||
|
|
||||||
## Communications
|
|
||||||
* [Dev](https://lists.96boards.org/mailman/listinfo) mailing list
|
|
|
@ -19,6 +19,9 @@
|
||||||
* Linaro Connect Las Vegas, from 2016-09-26 to 2016-09-30
|
* Linaro Connect Las Vegas, from 2016-09-26 to 2016-09-30
|
||||||
* OP-TEE 2.2.0, around 2016-10-15
|
* OP-TEE 2.2.0, around 2016-10-15
|
||||||
* QA checkpoints
|
* QA checkpoints
|
||||||
|
* Alpha: feature complete, no blocker bugs
|
||||||
|
* Beta: code freeze, no blocker bugs, no critical bugs (only bugfixes are accepted after this point)
|
||||||
|
* RC: no critical bugs, possibly no major bugs
|
||||||
|
|
||||||
### EE Release Goals
|
### EE Release Goals
|
||||||
|
|
||||||
|
@ -86,7 +89,7 @@ Note: if it's relevant, add tags in the summary. e.g. [Debian] [CentOS]
|
||||||
<br />
|
<br />
|
||||||
* **Summary:** Debian/CentOS installers support in LAVA
|
* **Summary:** Debian/CentOS installers support in LAVA
|
||||||
* **Description:** LAVA supports Debian/CentOS installers
|
* **Description:** LAVA supports Debian/CentOS installers
|
||||||
* **Advocate/Owner:** TBA
|
* **Advocate/Owner:** Milosz Wasilewski
|
||||||
* **State:** proposed
|
* **State:** proposed
|
||||||
* **Bug(s):** TBA
|
* **Bug(s):** TBA
|
||||||
<br />
|
<br />
|
|
@ -1,20 +0,0 @@
|
||||||
The reference platform kernel is located at:
|
|
||||||
|
|
||||||
https://github.com/Linaro/rpk master
|
|
||||||
|
|
||||||
Changes for the reference platform kernel should have been posted upstream for
|
|
||||||
the current development kernel prior to submission to the reference platform
|
|
||||||
kernel. Changes do not need to have been accepted, they only need to have been
|
|
||||||
posted since the last merge window. They *do* need to work with other
|
|
||||||
changes in the reference platform kernel and meet quality standards but can
|
|
||||||
still be in review, the full policy can be seen in KernelPolicy.md
|
|
||||||
|
|
||||||
To submit changes:
|
|
||||||
|
|
||||||
1. Make a git branch based off Linus' most recent -rc1 tag (or a newer one if
|
|
||||||
there are dependencies) with the changes
|
|
||||||
2. Create a tag (ideally signed using 'git tag -s'). The tag message should
|
|
||||||
describe the change, why it is being proposed for the reference platform
|
|
||||||
and link to the upstream submission (ideally using thread.gmane.org).
|
|
||||||
3. Send a pull request for the tag generated using 'git request-pull' to
|
|
||||||
Mark Brown <broonie@linaro.org> and the RPK list (TBD).
|
|
9
Reference-Platform/LICENSE.md
Normal file
9
Reference-Platform/LICENSE.md
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# License
|
||||||
|
|
||||||
|
Unless otherwise specified, everything in this repository is covered by the following licence:
|
||||||
|
|
||||||
|
[](http://creativecommons.org/licenses/by-sa/4.0/)
|
||||||
|
|
||||||
|
***Linaro Documentation*** by the [Linaro](http://www.linaro.org) is licensed under a [Creative Commons Attribution 4.0 International Licence](http://creativecommons.org/licenses/by-sa/4.0/).
|
||||||
|
|
||||||
|
Based on a work at https://github.com/96Boards/documentation
|
14
Reference-Platform/Platforms/Consumer.md
Normal file
14
Reference-Platform/Platforms/Consumer.md
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
# Consumer Reference Platform
|
||||||
|
|
||||||
|
The consumer reference platform aims to enable the latest software on a series of embedded hardware platforms. Open source boot firmware and a unified Linux kernel delivers an excellent starting point for your next embedded product. High level components such as ROS, and a standard GPIO library are included to help accelerate robotic enthusiasts and makers. The consumer software stack provides two builds based on Debian and OpenEmbedded. A graphic user interface is included for each variant, and both are validated to ensure quality and a great user experience.
|
||||||
|
|
||||||
|
**Features:**
|
||||||
|
|
||||||
|
- Unified Linux Kernel
|
||||||
|
- Open Boot Firmware
|
||||||
|
- Debian and OpenEmbedded Builds
|
||||||
|
- Desktop Enviroment
|
||||||
|
- ROS (Robot OS)
|
||||||
|
- Standard GPIO Library
|
||||||
|
|
||||||
|
***
|
346
Reference-Platform/Platforms/Consumer/CECommon/OE.md
Normal file
346
Reference-Platform/Platforms/Consumer/CECommon/OE.md
Normal file
|
@ -0,0 +1,346 @@
|
||||||
|
## OpenEmbedded and Yocto
|
||||||
|
|
||||||
|
This page provides instructions to get started with OpenEmbedded and the Yocto Project on the DragonBoard 410c and HiKey.
|
||||||
|
|
||||||
|
# Introduction
|
||||||
|
|
||||||
|
This wiki is not an introduction on OpenEmbedded or Yocto Project. If you are not familiar with OpenEmbedded and the Yocto Project, it is very much recommended to read the appropriate documentation first. For example, you can start with:
|
||||||
|
* http://openembedded.org/wiki/Main_Page
|
||||||
|
* http://yoctoproject.org/
|
||||||
|
* https://www.yoctoproject.org/documentation
|
||||||
|
|
||||||
|
In this wiki, we assume that the reader is familiar with basic concepts of OpenEmbedded.
|
||||||
|
|
||||||
|
The support for DragonBoard 410c is available in the [meta-qcom BSP layer](http://git.yoctoproject.org/cgit/cgit.cgi/meta-qcom).
|
||||||
|
|
||||||
|
The support for HiKey is available in the [meta-96boards BSP layer](https://github.com/96boards/meta-96boards).
|
||||||
|
|
||||||
|
These layers have been tested with OpenEmbedded Core layer, and are expected to work with any other standard layers and of course any OpenEmbedded based distributions.
|
||||||
|
|
||||||
|
The Linux kernel used for these boards is the Reference Platform Kernel (RPK). The graphic stack is based on mesa:
|
||||||
|
* using the freedreno driver for Dragonboard 410c
|
||||||
|
* using the ARM Mali Utgard GPU driver for HiKey
|
||||||
|
|
||||||
|
## OE Layers
|
||||||
|
|
||||||
|
| Layer | Description |
|
||||||
|
|:-----------------------:|:----------------------|
|
||||||
|
| oe-core (Base layer) | This is the main collaboration point when working on OpenEmbedded projects and is part of the core recipes. The goal of this layer is to have just enough recipes to build a basic system, this means keeping it as small as possible. |
|
||||||
|
| meta-rpb (Distro layer) | This is a very small layer where the distro configurations live. Currently it houses both Reference Platform Build and Wayland Reference Platform Builds. |
|
||||||
|
| meta-oe | This layer houses many useful, but sometimes unmaintained recipes. Since the reduction in recipes to the core, meta-oe was created for everything else. There are currently approximately 650 recipes in this layer. |
|
||||||
|
| meta-browser | This layer holds the recipes for Firefox and Chromium. Both recipes require a lot of maintenance, because of this a seperate layer was created. |
|
||||||
|
| meta-qt5 | This is a cross-platform toolkit. |
|
||||||
|
| meta-linaro | This layer is used to get the Linaro toolchain. |
|
||||||
|
| meta-linaro-backports | This is an experimental layer used to get newer versions into the build which were not part of the release. |
|
||||||
|
| meta-96Boards | This support layer is managed by Linaro and intended for boards that do not have their own board support layer. Currently used for the HiKey Consumer Edition board, and eventually the Bubblegum-96 board. If a vendor does not support their own layer, it can be added to this layer. |
|
||||||
|
| meta-qcom (BSP) | This is the board support layer for Qualcomm boards. Currently supports IFC6410 and the DragonBoard 410c. |
|
||||||
|
|
||||||
|
# Package Dependencies
|
||||||
|
|
||||||
|
In order to successfully set up your build environment, you will need to install the following package dependencies.
|
||||||
|
|
||||||
|
**Step 1**: You will need git installed on your Linux host machine
|
||||||
|
|
||||||
|
`$ sudo apt-get install git`
|
||||||
|
|
||||||
|
**Step 2**: Visit the OpenEmbedded (Getting Started) wiki to see which distribution specific dependencies you will need
|
||||||
|
|
||||||
|
http://www.openembedded.org/wiki/Getting_started
|
||||||
|
|
||||||
|
**Step 3**: Install 96Boards specific dependencies (Case specific)
|
||||||
|
|
||||||
|
Setting up the build environment will first search for `whiptail`, if it is not present then it will search for `dialog`. You only need one of the following packages to ensure your setup-environement runs correctly:
|
||||||
|
|
||||||
|
|
||||||
|
`$ sudo apt-get install whiptail`
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
`$ sudo apt-get install dialog`
|
||||||
|
|
||||||
|
**Please Note**: If you are running Ubuntu 16.04 you will need to add the following line to your `/etc/apt/sources.list`
|
||||||
|
|
||||||
|
`deb http://archive.ubuntu.com/ubuntu/ xenial universe`
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ cd /etc/apt/
|
||||||
|
#vim text editor is used in this example
|
||||||
|
#sudo is used to allow editing, sources.list is set to read only
|
||||||
|
$ sudo vim sources.list
|
||||||
|
```
|
||||||
|
|
||||||
|
All required dependencies should now be installed on your host environment, you are ready to begin your build environment setup.
|
||||||
|
|
||||||
|
|
||||||
|
# Setup the build environment
|
||||||
|
|
||||||
|
The BSPs layesr can be used with any OE based distribution, such as Poky. The following instructions are provided to get started with OpenEmbedded Reference Software Platforms.
|
||||||
|
|
||||||
|
To manage the various git trees and the OpenEmbedded environment, a repo manifest is provided. If you do not have `repo` installed on your host machine, you first need to install it, using the following instructions (or similar):
|
||||||
|
|
||||||
|
mkdir -p ${HOME}/bin
|
||||||
|
curl https://storage.googleapis.com/git-repo-downloads/repo > ${HOME}/bin/repo
|
||||||
|
chmod a+x ${HOME}/bin/repo
|
||||||
|
export PATH=${HOME}/bin:${PATH}
|
||||||
|
|
||||||
|
To initialize your build environment, you need to run:
|
||||||
|
|
||||||
|
mkdir oe-rpb && cd oe-rpb
|
||||||
|
repo init -u https://github.com/96boards/oe-rpb-manifest.git -b krogoth
|
||||||
|
repo sync
|
||||||
|
source setup-environment [<build folder>]
|
||||||
|
|
||||||
|
* after the command `repo sync` returns, all the OpenEmbedded recipes have been downloaded locally.
|
||||||
|
* you will be prompted to choose the target machine, pick `dragonboard-410c` or `hikey`
|
||||||
|
* you will be prompted to choose the distro, for now, it is recommended to use 'rpb'
|
||||||
|
* <build folder> is optional, if missing it will default to `build-$DISTRO`
|
||||||
|
|
||||||
|
The script `setup-environment` will create sane default configuration files in <build folder>/conf, you can inspect them and modify them if needed. Note that conf/local.conf and conf/bblayers.conf are symlink , and under source control. So it is generally better not to modify them, and use conf/site.conf and conf/auto.conf instead.
|
||||||
|
|
||||||
|
# Build a minimal, console-only image
|
||||||
|
|
||||||
|
To build a console image, you can run:
|
||||||
|
|
||||||
|
$ bitbake rpb-console-image
|
||||||
|
|
||||||
|
At the end of the build, your build artifacts will be found under `tmp-eglibc/deploy/images/MACHINE/`. The two artifacts you will use to update your board are:
|
||||||
|
* `rpb-console-image-MACHINE.ext4.gz` and
|
||||||
|
* `boot-MACHINE.img`
|
||||||
|
|
||||||
|
where `MACHINE` is `dragonboard-410c` or `hikey`.
|
||||||
|
|
||||||
|
# Bootloaders and eMMC partitions
|
||||||
|
|
||||||
|
Build artifacts from your OE build will be flashed into the on-board eMMC (in contrast to some other boards which run their images from an SDcard). The OpenEmbedded BSP layer assumes that the _Linux_ Bootloaders and eMMC partition layout are used on the board (not the _Android_ ones; by default DragonBoards come pre-configured with the Android eMMC partition layout). You can download the latest Linux bootloader package for Dragonboard 410c from [here](http://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/) to your development host, it will be named something like `dragonboard410c_bootloader_emmc_linux-<version>.zip`.
|
||||||
|
|
||||||
|
Whether your board is using the Android eMMC partition layout or the Linux partition eMMC layout, you will use the Android `fastboot` utility on your development host for managing the board's eMMC partitions. If you are using a relatively recent Linux distribution on your development host, it probably already has a package that includes the `fastboot` utility (it might be named something like `android-tools` or `android-tools-fastboot`) so go ahead and install it on your development host. In order for your development host's fastboot utility to interact with the board, in the case of the DragonBoard 410c, it must be booted into a special `fastboot mode`. The procedure to do so is as follows:
|
||||||
|
* remove power from your DragonBoard 410c
|
||||||
|
* plug a USB cable from your development host to your DragonBoard's J4 connector
|
||||||
|
* while holding down S4 on the DragonBoard 410c (the one marked "(-)"), insert the power adapter
|
||||||
|
* after a few seconds you can release S4
|
||||||
|
|
||||||
|
In the case of case of HiKey, see `TBA` (put a link to Debian instructions, they are the same).
|
||||||
|
|
||||||
|
To verify your cables and that the above procedure worked, on your development host run:
|
||||||
|
|
||||||
|
# sudo fastboot devices
|
||||||
|
|
||||||
|
and you should get a non-empty response, e.g.
|
||||||
|
|
||||||
|
# sudo fastboot devices
|
||||||
|
83581d40 fastboot
|
||||||
|
|
||||||
|
If this is your first time using a particular board, you will need to switch its eMMC partition layout to the Linux layout, but this procedure only needs to be done once for a given board. After switching your layout, you only have to update your board with your latest build artifacts.
|
||||||
|
|
||||||
|
The procedure for updating your eMMC partitions is as follows. Put your DragonBoard into `fastboot mode` (see procedure above) then perform these steps on your development host:
|
||||||
|
* download the latest Linux bootloader package (e.g. `dragonboard410c_bootloader_emmc_linux-<version>.zip`)
|
||||||
|
* unzip its contents
|
||||||
|
* run the `flashall` script (as root) that you will find after unzipping the Linux bootloader package
|
||||||
|
|
||||||
|
At this point your eMMC has the following partition layout:
|
||||||
|
|
||||||
|
Dragonboard 410c:
|
||||||
|
* `/dev/mmcblk0p8` , aka `boot` is used for the boot image (kernel, device tree, initrd)
|
||||||
|
* `/dev/mmcblk0p10` , aka `rootfs` is used for the root file system
|
||||||
|
|
||||||
|
HiKey:
|
||||||
|
* `/dev/mmcblk0p6` , aka `boot` is used for the boot image (kernel, device tree, initrd)
|
||||||
|
* `/dev/mmcblk0p9` , aka `system` is used for the root file system
|
||||||
|
|
||||||
|
# Flashing build artifacts
|
||||||
|
|
||||||
|
In the following description, replace `IMAGE` with the name of the image you built. For example: if you built `rpb-console-image` then `IMAGE` will be `rpb-console-image`.
|
||||||
|
Same for `IMAGE`, replace with the name of your board. For example: if you built for `Dragonboard 410c` then `MACHINE` will be `dragonboard-410c`, if you built for `HiKey` then `MACHINE` will be `hikey`.
|
||||||
|
|
||||||
|
At the end of any successful build you will end up with the following artifacts (amongst others)
|
||||||
|
* `IMAGE-MACHINE.ext4.gz` and
|
||||||
|
* `boot-MACHINE.img`
|
||||||
|
|
||||||
|
These will be found in your `tmp-eglibc/deploy/images/MACHINE` directory.
|
||||||
|
|
||||||
|
To install these to your board's eMMC from your development host:
|
||||||
|
|
||||||
|
# gunzip IMAGE-MACHINE.ext4.gz
|
||||||
|
# fastboot flash boot boot-MACHINE.img
|
||||||
|
|
||||||
|
In the case of Dragonboard 410c:
|
||||||
|
|
||||||
|
# fastboot flash rootfs IMAGE-MACHINE.ext4
|
||||||
|
|
||||||
|
In the case of HiKey:
|
||||||
|
|
||||||
|
# ext2simg -v IMAGE-MACHINE.ext4 IMAGE-MACHINE.img
|
||||||
|
# fastboot flash system IMAGE-MACHINE.img
|
||||||
|
|
||||||
|
# Proprietary firmware blob
|
||||||
|
|
||||||
|
When running the `setup-environment` script, you were asked to read/accept the Qualcomm EULA. The EULA is required to access the proprietary firmware, such as the GPU firmware , WLAN, ...
|
||||||
|
|
||||||
|
If you accepted the EULA, when building an image for DragonBoard 410c all proprietary firmware are installed automatically in `/lib/firmware`, and a copy of the EULA is added as '/etc/license.txt`.
|
||||||
|
|
||||||
|
If you did not accept the EULA, the firmware are not downloaded, and not installed into the image. You can manually manage the firmware and download them separately from [Qualcomm Developer Network](https://developer.qualcomm.com/download/linux-ubuntu-board-support-package-v1.1.zip).
|
||||||
|
|
||||||
|
# Build a simple X11 image
|
||||||
|
|
||||||
|
To build an X11 image with GPU hardware accelerated support, run:
|
||||||
|
|
||||||
|
$ bitbake rpb-desktop-image
|
||||||
|
|
||||||
|
At the end of the build, the root file system image will be available as `tmp-eglibc/deploy/images/MACHINE/rpb-desktop-image-MACHINE.ext4.gz`.
|
||||||
|
|
||||||
|
Then you can finally start the X server, and run any graphical application:
|
||||||
|
|
||||||
|
X&
|
||||||
|
export DISPLAY=:0
|
||||||
|
glxgears
|
||||||
|
|
||||||
|
The default X11 image includes `openbox` window manager, to use it:
|
||||||
|
|
||||||
|
X&
|
||||||
|
export DISPLAY=:0
|
||||||
|
openbox &
|
||||||
|
glxgears
|
||||||
|
|
||||||
|
Of course, you can easily add another window manager, such as `metacity` in the image. To install `metacity` in the image, add the following to `conf/auto.conf` file:
|
||||||
|
|
||||||
|
CORE_IMAGE_EXTRA_INSTALL += "metacity"
|
||||||
|
|
||||||
|
and rebuild the `rpb-desktop-image` image, it will now include `metacity`, which can be started like this:
|
||||||
|
|
||||||
|
X&
|
||||||
|
export DISPLAY=:0
|
||||||
|
metacity&
|
||||||
|
glxgears
|
||||||
|
|
||||||
|
# Build a sample Wayland/Weston image
|
||||||
|
|
||||||
|
For Wayland/weston, it is needed to change the DISTRO and use `rpb-wayland` instead of `rpb`. The main reason is that in the `rpb-wayland` distro, the support for X11 is completely removed. So, in a new terminal prompt, setup a new environment and make sure to use `rpb-wayland` for DISTRO, then, you can run a sample image with:
|
||||||
|
|
||||||
|
$ bitbake rpb-weston-image
|
||||||
|
|
||||||
|
This image includes a few additional features, such as `systemd`, `connman` which makes it simpler to use. Once built, the image will be available at `tmp-eglibc/deploy/images/MACHINE/rpb-weston-image-MACHINE.ext4.gz`. And it can be flashed into `rootfs` partition.
|
||||||
|
|
||||||
|
If you boot this image on the board, you should get a command prompt on the HDMI monitor. A user called `linaro` exists (and has no password). Once logged in a VT, you run start weston with:
|
||||||
|
|
||||||
|
weston-launch
|
||||||
|
|
||||||
|
And that should get you to the Weston desktop shell.
|
||||||
|
|
||||||
|
# Build mixed 32bit/64bit image
|
||||||
|
|
||||||
|
OE RPB has support for creating mixed 32-bit/64-bit builds with 64-bit
|
||||||
|
kernel and 32-bit userland for:
|
||||||
|
* HiKey
|
||||||
|
* Dragonboard-410c
|
||||||
|
|
||||||
|
There are two variants of machine configuration for both HiKey and
|
||||||
|
Dragonboard-410c boards:
|
||||||
|
|
||||||
|
| Board | MACHINE-32 | MACHINE-64 |
|
||||||
|
|:-----:|:-------------:|:-----------:|
|
||||||
|
| HiKey | hikey-32 | hikey |
|
||||||
|
| DB-410c| dragonboard-410c-32 | dragonboard-410c |
|
||||||
|
|
||||||
|
MACHINE-32 configuration doesn't build the kernel. It is intended to
|
||||||
|
create the 32-bit root filesystem only.
|
||||||
|
|
||||||
|
MACHINE-64 configuration is universal. But in this mixed build only the
|
||||||
|
kernel and the kernel modules are needed from the 64-bit configuration,
|
||||||
|
so the 64-bit rpb-minimal-image is built.
|
||||||
|
|
||||||
|
## Running a mixed build
|
||||||
|
|
||||||
|
Setting up the build environment is the same as usual. The only difference
|
||||||
|
is that when running
|
||||||
|
```
|
||||||
|
$ . setup-environment
|
||||||
|
```
|
||||||
|
one should select `<MACHINE-32>` as the MACHINE.
|
||||||
|
DISTRO values can be:
|
||||||
|
* rpb-x11
|
||||||
|
* rpb-wayland
|
||||||
|
|
||||||
|
Then do
|
||||||
|
```
|
||||||
|
bitbake_secondary_image --extra-machine <MACHINE-64> <image>
|
||||||
|
```
|
||||||
|
e.g. if MACHINE=dragonboard-410c-32 and DISTRO=rpb-wayland were selected
|
||||||
|
when sourcing setup-environment, the command could be:
|
||||||
|
`bitbake_secondary_image --extra-machine dragonboard-410c rpb-weston-image`
|
||||||
|
|
||||||
|
## Creating the mixed rootfs image
|
||||||
|
|
||||||
|
`bitbake_secondary_image` actually runs two builds. So in the build directory,
|
||||||
|
under `tmp-*/deploy/images/` two directories are created: one for 32-bit build
|
||||||
|
artifacts, and the other for the 64-bit ones. E.g.
|
||||||
|
```
|
||||||
|
tmp-rpb_wayland-glibc/deploy/images/dragonboard-410c-32
|
||||||
|
```
|
||||||
|
and
|
||||||
|
```
|
||||||
|
tmp-rpb_wayland-glibc/deploy/images/dragonboard-410c
|
||||||
|
```
|
||||||
|
|
||||||
|
Unpack the 32-bit `*.rootfs.ext4` image, resize it to make sure that there is
|
||||||
|
enough space for the 64-bit modules, mount it via a loop device, and unpack the
|
||||||
|
64-bit modules into the 32-bit root filesystem. Then unmount the rootfs to get
|
||||||
|
the 32-bit rootfs.ext4 image with the 64-bit kernel modules added.
|
||||||
|
|
||||||
|
Please find more detailed instructions for the both boards below.
|
||||||
|
|
||||||
|
### Creating the image for Dragonboard-410c
|
||||||
|
|
||||||
|
Assuming that all the relevant build artifacts are in the current directory:
|
||||||
|
```
|
||||||
|
gunzip -k rpb-weston-image-dragonboard-410c-32-20161013104111.rootfs.ext4.gz
|
||||||
|
resize2fs rpb-weston-image-dragonboard-410c-32-20161013104111.rootfs.ext4 512M
|
||||||
|
mkdir root
|
||||||
|
sudo mount -o loop rpb-weston-image-dragonboard-410c-32-20161013104111.rootfs.ext4 root
|
||||||
|
cd root/
|
||||||
|
sudo tar xzf ../modules--4.4-r0-dragonboard-410c-20161013094521.tgz
|
||||||
|
cd ..
|
||||||
|
sync
|
||||||
|
sudo umount root
|
||||||
|
ext2simg rpb-weston-image-dragonboard-410c-32-20161013104111.rootfs.ext4 rpb-weston-image-dragonboard-410c.rootfs.img
|
||||||
|
```
|
||||||
|
The resulting rpb-weston-image-dragonboard-410c.rootfs.img with 32-bit userland
|
||||||
|
and 64-bit kernel modules can be flashed into the board with
|
||||||
|
```
|
||||||
|
fastboot flash rootfs rpb-weston-image-dragonboard-410c.rootfs.img
|
||||||
|
```
|
||||||
|
|
||||||
|
### Creating the image for HiKey
|
||||||
|
|
||||||
|
Creating the mixed tootfs image for HiKey is the same as for Dragonboard-410c,
|
||||||
|
but requires an extra step, as HiKey reads the kernel image to boot from the
|
||||||
|
rootfs (vs a boot partition in the case of Dragonboard-410c). So the 64-bit
|
||||||
|
kernel image and the DTB file must be copied to the 32-bit rootfs, the /boot
|
||||||
|
directory - this is where GRUB looks the kernel image for. E.g.:
|
||||||
|
```
|
||||||
|
mkdir root
|
||||||
|
mkdir root-64
|
||||||
|
gunzip -k rpb-minimal-image-hikey-20161014162659.rootfs.ext4.gz
|
||||||
|
sudo mount -o loop rpb-minimal-image-hikey-20161014162659.rootfs.ext4 root-64/
|
||||||
|
gunzip -k rpb-weston-image-hikey-32-20161014172406.rootfs.ext4.gz
|
||||||
|
resize2fs rpb-weston-image-hikey-32-20161014172406.rootfs.ext4 512M
|
||||||
|
sudo mount -o loop rpb-weston-image-hikey-32-20161014172406.rootfs.ext4 root
|
||||||
|
sudo cp -r root-64/boot/* root/boot/
|
||||||
|
cd root
|
||||||
|
sudo tar xzf ../modules--4.4.11+git-r0-hikey-20161014162659.tgz
|
||||||
|
cd ..
|
||||||
|
sync
|
||||||
|
sudo umount root
|
||||||
|
sudo umount root-64
|
||||||
|
ext2simg rpb-weston-image-hikey-32-20161014172406.rootfs.ext4 rpb-weston-image-hikey.rootfs.img
|
||||||
|
```
|
||||||
|
The resulting rpb-weston-image-hikey.rootfs.img with a 32-bit userland, and
|
||||||
|
64-bit kernel modules and the kernel can be flashed into the board with
|
||||||
|
```
|
||||||
|
fastboot flash system rpb-weston-image-hikey.rootfs.img
|
||||||
|
```
|
||||||
|
|
||||||
|
# Support
|
||||||
|
|
||||||
|
For general question or support request, please go to [96boards.org Community forum](http://www.96boards.org/forums/forum/products/).
|
||||||
|
|
||||||
|
For any bug related to this release, please submit issues to the [Linaro Bug Tracking System](https://bugs.linaro.org/). To submit a bug, follow this [link](https://bugs.linaro.org/enter_bug.cgi?product=Reference%20Platforms).
|
|
@ -0,0 +1,18 @@
|
||||||
|
# Getting Started
|
||||||
|
|
||||||
|
This page is designed to bring you up to speed with the Consumer Reference Platform. You will find categorized information, links to additional resources, and paths forward to take you deeper into the platform.
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
The consumer reference platform aims to enable the latest software on a series of embedded hardware platforms. Open source boot firmware and a unified Linux kernel delivers an excellent starting point for your next embedded product. High level components such as ROS, and a standard GPIO library are included to help accelerate robotic enthusiasts and makers. The consumer software stack provides two builds based on Debian and OpenEmbedded. A graphic user interface is included for each variant, and both are validated to ensure quality and a great user experience.
|
||||||
|
|
||||||
|
**Features:**
|
||||||
|
|
||||||
|
- Unified Linux Kernel
|
||||||
|
- Open Boot Firmware
|
||||||
|
- Debian and OpenEmbedded Builds
|
||||||
|
- Desktop Enviroment
|
||||||
|
- ROS (Robot OS)
|
||||||
|
- Standard GPIO Library
|
||||||
|
|
||||||
|
***
|
|
@ -0,0 +1,8 @@
|
||||||
|
# Previous Releases
|
||||||
|
|
||||||
|
## Choose your Release
|
||||||
|
|
||||||
|
- [16.06](RPB_16.06/README.md)
|
||||||
|
- [16.03](RPB_16.03/README.md)
|
||||||
|
- [15.12](RPB_15.12/README.md)
|
||||||
|
- [15.10(Alpha)](RPB_15.10/README.md)
|
|
@ -0,0 +1,12 @@
|
||||||
|
# Reference Platform Build - 15.10
|
||||||
|
|
||||||
|
[RPB 15.10 Highlights](Highlights.md) | [RPB 15.10 Known Issues](Known-Issues.md)
|
||||||
|
|
||||||
|
## Choose your Hardware
|
||||||
|
|
||||||
|
#### Consumer Edition
|
||||||
|
- [HiKey](ConsumerEdition/HiKey/README.md)
|
||||||
|
- [DragonBoard™ 410c](ConsumerEdition/DragonBoard-410c/README.md)
|
||||||
|
|
||||||
|
***
|
||||||
|
|
BIN
Reference-Platform/Platforms/Consumer/PreviousReleases/RPB_15.12/.DS_Store
vendored
Normal file
BIN
Reference-Platform/Platforms/Consumer/PreviousReleases/RPB_15.12/.DS_Store
vendored
Normal file
Binary file not shown.
|
@ -0,0 +1,104 @@
|
||||||
|
h3. How to get and customize the kernel source code
|
||||||
|
|
||||||
|
h4. Building the Linux kernel from source
|
||||||
|
|
||||||
|
The Linux kernel used in this release is available via tags in the git "repository":https://github.com/rsalveti/linux
|
||||||
|
|
||||||
|
bc. git: https://github.com/rsalveti/linux
|
||||||
|
tag: 96boards-rpb-debian-15.12-qcom
|
||||||
|
defconfig: arch/arm64/defconfig kernel/configs/distro.config
|
||||||
|
|
||||||
|
The kernel image (@Image@) is located in the @boot@ image and partition and the kernel modules are installed in the root file system. It is possible for a user to rebuild the kernel and run a custom kernel image instead of the released kernel. You can build the kernel using any recent GCC release using the git tree, tag and defconfig mentioned above. This release only supports booting with device tree, as such both the device tree blobs need to be built as well.
|
||||||
|
|
||||||
|
The DragonBoard 410c is an ARMv8 platform, and the kernel is compiled for the Aarch64 target. Even though it is possible to build natively, on the target board, It is recommended to build the Linux kernel on a PC development host. In which case you need to install a cross compiler for the ARM architecture. It is recommended to download the "Linaro GCC cross compiler (Aarch64 little-endian)":http://releases.linaro.org/14.11/components/toolchain/binaries/aarch64-linux-gnu/gcc-linaro-4.9-2014.11-x86_64_aarch64-linux-gnu.tar.xz.
|
||||||
|
|
||||||
|
To build the Linux kernel, you can use the following instructions:
|
||||||
|
|
||||||
|
bc. git clone -n https://github.com/rsalveti/linux.git
|
||||||
|
cd linux
|
||||||
|
git checkout -b kernel-rpb-15.12 96boards-rpb-debian-15.12-qcom
|
||||||
|
export ARCH=arm64
|
||||||
|
export CROSS_COMPILE=<path to your GCC cross compiler>/aarch64-linux-gnu-
|
||||||
|
make defconfig distro.config
|
||||||
|
make -j4 Image dtbs KERNELRELEASE=4.3.0-your-custom-release
|
||||||
|
|
||||||
|
h4. Building a boot image
|
||||||
|
|
||||||
|
You now need to create a valid boot image with your own kernel build.
|
||||||
|
|
||||||
|
On your host PC, we need to install the following tools:
|
||||||
|
|
||||||
|
bc. sudo apt-get install device-tree-compiler
|
||||||
|
git clone git://codeaurora.org/quic/kernel/skales
|
||||||
|
|
||||||
|
The boot image consists of the table of device tree (@dt.img@), the kernel image (@Image@) and an init ramdisk image.
|
||||||
|
|
||||||
|
The @dtbTool@ is a standalone application that will process the DTBs generated during the kernel build, to create the table of device tree image. This tool is included in the @skales@ git tree cloned above.
|
||||||
|
|
||||||
|
bc. ./skales/dtbTool -o dt.img -s 2048 arch/arm64/boot/dts/qcom/
|
||||||
|
|
||||||
|
To create the boot image, you also need a ramdisk image, and you can use the one available at _/boot_ from the rootfs.
|
||||||
|
|
||||||
|
The tool @mkbootimg@ (also in the git tree previously cloned) is a standalone application that will process all files and create the boot image that can then be booted on the target board, or flash into the on-board eMMC. The boot image also contains the kernel bootargs, which can be changed as needed in the next command:
|
||||||
|
|
||||||
|
bc. ./skales/mkbootimg --kernel arch/arm64/boot/Image \
|
||||||
|
--ramdisk initrd.img \
|
||||||
|
--output boot-db410c.img \
|
||||||
|
--dt dt.img \
|
||||||
|
--pagesize 2048 \
|
||||||
|
--base 0x80000000 \
|
||||||
|
--cmdline "root=/dev/disk/by-partlabel/rootfs rw rootwait console=ttyMSM0,115200n8"
|
||||||
|
|
||||||
|
h4. Booting a custom boot image
|
||||||
|
|
||||||
|
Assuming you have now built a valid boot image called @boot-db410c.img@, you can run the following @fastboot@ command to boot it on the board:
|
||||||
|
|
||||||
|
bc. sudo fastboot boot boot-db410c.img
|
||||||
|
|
||||||
|
If you want to permanently use a custom kernel image, you can update the boot image and reflash it into the @boot@ partition:
|
||||||
|
|
||||||
|
bc. sudo fastboot flash boot boot-db410c.img
|
||||||
|
|
||||||
|
h4. How to get and customize the bootloader
|
||||||
|
|
||||||
|
While the first stage bootloader is proprietary and released as firmware blob available on "Qualcomm Developer Network":https://developer.qualcomm.com/download/linux-ubuntu-board-support-package-v1.zip, the second stage bootloader is @LK@ and is open source.
|
||||||
|
|
||||||
|
The original LK source code is available on "CodeAurora.org":https://www.codeaurora.org/cgit/quic/la/kernel/lk/, and the source code which is used in this release can be found in the "Linaro Qualcomm Landing Team git repository":https://git.linaro.org/landing-teams/working/qualcomm/lk.git:
|
||||||
|
|
||||||
|
bc. git: http://git.linaro.org/landing-teams/working/qualcomm/lk.git
|
||||||
|
tag: ubuntu-qcom-dragonboard410c-LA.BR.1.2.4-00310-8x16.0-linaro1
|
||||||
|
|
||||||
|
To build the LK bootloader, you can use the following instructions:
|
||||||
|
|
||||||
|
bc. git clone git://codeaurora.org/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8.git -b LA.BR.1.1.3.c4-01000-8x16.0
|
||||||
|
git clone http://git.linaro.org/landing-teams/working/qualcomm/lk.git -b ubuntu-qcom-dragonboard410c-LA.BR.1.2.4-00310-8x16.0-linaro1
|
||||||
|
cd lk
|
||||||
|
make -j4 msm8916 EMMC_BOOT=1 TOOLCHAIN_PREFIX=<path to arm-eabi-4.8 tree>/bin/arm-eabi-
|
||||||
|
|
||||||
|
The second stage bootloader is flashed on the @aboot@ partition, you can now flash your board with:
|
||||||
|
|
||||||
|
bc. sudo fastboot aboot ./build-msm8916/emmc_appsboot.mbn
|
||||||
|
|
||||||
|
h4. How to get and customize Debian packages source code
|
||||||
|
|
||||||
|
This release is based on Debian 8.2 "Jessie".
|
||||||
|
|
||||||
|
Since all packages installed in Linaro Debian-based images are maintained either in Debian archives or in Linaro repositories, it is possible for users to update their environment with commands such as:
|
||||||
|
|
||||||
|
bc. sudo apt-get update
|
||||||
|
sudo apt-get upgrade
|
||||||
|
|
||||||
|
All user space software is packaged using Debian packaging process. As such you can find extensive information about using, patching and building packages in The Debian New Maintainers Guide. If you quickly want to rebuild any package, you can run the following commands to fetch the package source code and install all build dependencies:
|
||||||
|
|
||||||
|
bc. sudo apt-get update
|
||||||
|
sudo apt-get build-dep <pkg>
|
||||||
|
apt-get source <pkg>
|
||||||
|
|
||||||
|
Then you can rebuild the package locally with:
|
||||||
|
|
||||||
|
bc. cd <pkg-version>
|
||||||
|
dpkg-buildpackage -b -us -uc
|
||||||
|
|
||||||
|
h4. TODO
|
||||||
|
|
||||||
|
* Explain how to build the rootfs from source
|
|
@ -0,0 +1,81 @@
|
||||||
|
h2. Install Instructions - CE Debian RPB 15.12 - Dragonboard410c
|
||||||
|
|
||||||
|
This guide describes how to get started with the CE Debian Reference Platform Build, release 15.12, for Dragonboard410c.
|
||||||
|
|
||||||
|
For more information about the Dragonboard410c development board, please check "https://www.96boards.org/products/ce/dragonboard410c/":https://www.96boards.org/products/ce/dragonboard410c/
|
||||||
|
|
||||||
|
h3. Image Components
|
||||||
|
|
||||||
|
The CE Debian RPB 15.12 - Dragonboard410c build is composed of the following artifacts:
|
||||||
|
|
||||||
|
* Bootloader:
|
||||||
|
** "Qualcomm proprietary first stage bootloader":https://developer.qualcomm.com/download/linux-ubuntu-board-support-package-v1.zip
|
||||||
|
** "Little Kernel":https://git.linaro.org/landing-teams/working/qualcomm/lk.git as second stage boot loader
|
||||||
|
* Linux Kernel:
|
||||||
|
** Upstream plus extra changes for a better hardware support
|
||||||
|
** Git: "https://github.com/rsalveti/linux.git":https://github.com/rsalveti/linux.git
|
||||||
|
** Branch: *reference-qcom-rebase*
|
||||||
|
* Debian "Jessie"
|
||||||
|
** ALIP (LXDE based)
|
||||||
|
** Custom 96Boards artworks and default settings
|
||||||
|
** Additional packages provided by "linaro-overlay":http://repo.linaro.org/ubuntu/linaro-overlay
|
||||||
|
|
||||||
|
h4. Closed source binaries
|
||||||
|
|
||||||
|
This release contains proprietary firmware. You can also download the proprietary firmware separately, from "here":https://developer.qualcomm.com/download/db410c/firmware-410c-1.1.0.bin. All the required firmware files are pre-installed, and the image is bound to the following "license agreement":https://git.linaro.org/landing-teams/working/qualcomm/lt-docs.git/blob_plain/HEAD:/license/license.txt.
|
||||||
|
|
||||||
|
h3. Downloading the pre-built binaries
|
||||||
|
|
||||||
|
The build is mainly composed by two image files (boot and rootfs), but to avoid incompatibilities issues with older bootloaders, or different partition tables, it's also recommended to flash the bootloader.
|
||||||
|
|
||||||
|
Flashing and booting from the external SD Card is not supported by this release.
|
||||||
|
|
||||||
|
*Bootloader files:*
|
||||||
|
|
||||||
|
Download the latest bootloader zip from "http://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest":http://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest (look for dragonboard410c_bootloader_emmc_linux*.zip)
|
||||||
|
|
||||||
|
*CE Debian RPB image:*
|
||||||
|
|
||||||
|
bc. wget https://builds.96boards.org/releases/reference-platform/debian/dragonboard410c/15.12/dragonboard410c-boot-linux-20151214-35.img.gz
|
||||||
|
wget https://builds.96boards.org/releases/reference-platform/debian/dragonboard410c/15.12/dragonboard410c-rootfs-debian-jessie-alip-20151214-35.emmc.img.gz
|
||||||
|
gunzip dragonboard410c-*
|
||||||
|
|
||||||
|
h3. Flashing
|
||||||
|
|
||||||
|
h4. Bootloader
|
||||||
|
|
||||||
|
Flash the eMMC with the bootloader:
|
||||||
|
|
||||||
|
* Unzip the bootloader that was downloaded in the previous step. Note the directory that is it located in.
|
||||||
|
* Assure that a micro USB cable is connected from the micro-USB port on the DB410c to the host PC
|
||||||
|
* Assure micro SD Card slot is empty on the DB410c
|
||||||
|
* Set the S6 switch on the DB410c to: 0-0-0-0 {SD Boot set to off}
|
||||||
|
* Power on the DB410c into fastboot mode
|
||||||
|
** Press and hold the Vol (-) button on the DB410c (S4)
|
||||||
|
** While pressing S4 button, power up the DB410c. It will come up in fastboot mode
|
||||||
|
* From the host PC terminal window, run the following commands:
|
||||||
|
|
||||||
|
bc. # Check to make sure fastboot device connected. If not resolve
|
||||||
|
sudo fastboot devices
|
||||||
|
# cd to the directory the bootloader zip file was extracted
|
||||||
|
cd <extraction directory>
|
||||||
|
sudo ./flashall
|
||||||
|
|
||||||
|
The bootloader is now installed on the DB410c.
|
||||||
|
|
||||||
|
h4. Boot and Rootfs
|
||||||
|
|
||||||
|
Fastboot is required to flash both the boot and rootfs images.
|
||||||
|
|
||||||
|
*Flashing boot and rootfs:*
|
||||||
|
|
||||||
|
bc. sudo fastboot flash boot dragonboard410c-boot-linux-20151214-35.img
|
||||||
|
sudo fastboot flash rootfs dragonboard410c-rootfs-debian-jessie-alip-20151214-35.emmc.img
|
||||||
|
|
||||||
|
Once flashed just reboot the board and enjoy :-)
|
||||||
|
|
||||||
|
h3. Additional resources
|
||||||
|
|
||||||
|
For known issues and more information about this release, please check "https://github.com/96boards/documentation/wiki/ReferencePlatform":https://github.com/96boards/documentation/wiki/ReferencePlatform
|
||||||
|
|
||||||
|
In the case that the board experiences an irrecoverable error and no longer function, please check the "rescue image guide":https://github.com/96boards/documentation/wiki/Dragonboard-410c-Installation-Guide-for-Linux-and-Android#create--install-a-rescue-image
|
|
@ -0,0 +1,14 @@
|
||||||
|
## Dragonboard™ 410c - Reference Platform Build - 15.12
|
||||||
|
|
||||||
|
- **Install Instructions:** For "out-of-box" users. Instructions for installing pre-build Reference Platform images onto your 96Boards.
|
||||||
|
- **Build from Source:** For Advanced users. Instructions for building and installing the various Reference Platform components used by Consumer Edition 96Boards.
|
||||||
|
- **Known Issues:** List of current bugs and issues for each Reference Platform Build. Includes links to bug reports for tracking resolution progress.
|
||||||
|
- **Test Report:** Provides test results and bug status for kernel, firmware, and images with a straight forward pass/fail legend.
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
| **CE Debian RPB - 15.12** |
|
||||||
|
|:---------------------------------------------------:|
|
||||||
|
| [Install Instructions](InstallDebianRPB-15.12.md) |
|
||||||
|
| [Build from Source](BFSDebianRPB-15.12.md) |
|
||||||
|
| [Known issues](../../Known-Issues.md) |
|
|
@ -0,0 +1,37 @@
|
||||||
|
h4. Building AOSP from source
|
||||||
|
|
||||||
|
Additional AOSP repositories are hosted at:
|
||||||
|
* https://github.com/96boards/android_hardware_ti_wpan
|
||||||
|
* https://github.com/96boards/android_device_linaro_hikey
|
||||||
|
* https://github.com/96boards/android_manifest
|
||||||
|
* https://github.com/96boards/linux (branch android-hikey-linaro-4.1)
|
||||||
|
|
||||||
|
*Build setup:*
|
||||||
|
|
||||||
|
Please setup the host machine by following the instructions here: "http://source.android.com/source/initializing.html":http://source.android.com/source/initializing.html
|
||||||
|
|
||||||
|
NOTE: The build tries to mount a loop device as fat partition to create the boot-fat.uefi.img filesystem image. Please make sure your user is allowed to run those commands in sudo without password by running "visudo" and appending the following lines (replacing "<USER>" with your username):
|
||||||
|
|
||||||
|
bc. <USER> ALL= NOPASSWD: /bin/mount
|
||||||
|
<USER> ALL= NOPASSWD: /bin/umount
|
||||||
|
<USER> ALL= NOPASSWD: /sbin/mkfs.fat
|
||||||
|
<USER> ALL= NOPASSWD: /bin/cp
|
||||||
|
|
||||||
|
*Download the code:*
|
||||||
|
|
||||||
|
bc. mkdir android/
|
||||||
|
cd android/
|
||||||
|
|
||||||
|
Download and extract the Mali vendor binaries in the above directory: "http://builds.96boards.org/snapshots/hikey/linaro/binaries/20150706/vendor.tar.bz2":http://builds.96boards.org/snapshots/hikey/linaro/binaries/20150706/vendor.tar.bz2
|
||||||
|
|
||||||
|
*Build the image:*
|
||||||
|
|
||||||
|
bc. repo init -u https://android.googlesource.com/platform/manifest -b android-6.0.1_r16 -g "default,-device,-non-default,hikey"
|
||||||
|
cd .repo/
|
||||||
|
git clone https://github.com/96boards/android_manifest -b android-6.0 local_manifests
|
||||||
|
cd -
|
||||||
|
repo sync -j8
|
||||||
|
source build/envsetup.sh
|
||||||
|
lunch hikey-userdebug
|
||||||
|
make droidcore -j8
|
||||||
|
cd out/target/product/hikey
|
|
@ -0,0 +1,53 @@
|
||||||
|
h3. Boot Loader
|
||||||
|
|
||||||
|
Please see "https://github.com/96boards/documentation/wiki/Reference-Bootloader-Hikey#building-from-source":https://github.com/96boards/documentation/wiki/Reference-Bootloader-Hikey#building-from-source for instructions on how to built the boot loader from source.
|
||||||
|
|
||||||
|
h3. How to get and customize the kernel source code
|
||||||
|
|
||||||
|
h4. Building the Linux kernel from source
|
||||||
|
|
||||||
|
The Linux kernel used in this release is available via tags in the git "repository":https://github.com/rsalveti/linux
|
||||||
|
|
||||||
|
bc. git: https://github.com/rsalveti/linux
|
||||||
|
tag: 96boards-rpb-debian-15.12-hikey
|
||||||
|
defconfig: arch/arm64/defconfig kernel/configs/distro.config
|
||||||
|
|
||||||
|
The kernel image (@Image@) is located in the @/boot@ directory from the system partition (rootfs), with the modules also installed in the root file system. It is possible for a user to rebuild the kernel and run a custom kernel image instead of the released kernel. You can build the kernel using any recent GCC release using the git tree, tag and defconfig mentioned above. This release only supports booting with device tree, as such both the device tree blobs need to be built as well.
|
||||||
|
|
||||||
|
The HiKey is an ARMv8 platform, and the kernel is compiled for the Aarch64 target. Even though it is possible to build natively, on the target board, It is recommended to build the Linux kernel on a PC development host. In which case you need to install a cross compiler for the ARM architecture. It is recommended to download the "Linaro GCC cross compiler (Aarch64 little-endian)":http://releases.linaro.org/14.11/components/toolchain/binaries/aarch64-linux-gnu/gcc-linaro-4.9-2014.11-x86_64_aarch64-linux-gnu.tar.xz.
|
||||||
|
|
||||||
|
To build the Linux kernel, you can use the following instructions:
|
||||||
|
|
||||||
|
bc. git clone -n https://github.com/rsalveti/linux.git
|
||||||
|
cd linux
|
||||||
|
git checkout -b kernel-rpb-15.12 96boards-rpb-debian-15.12-hikey
|
||||||
|
export ARCH=arm64
|
||||||
|
export CROSS_COMPILE=<path to your GCC cross compiler>/aarch64-linux-gnu-
|
||||||
|
make defconfig distro.config
|
||||||
|
make -j4 Image dtbs KERNELRELEASE=4.3.0-your-custom-release
|
||||||
|
|
||||||
|
To boot using your own kernel, simply copy the kernel, modules and device tree to the root file system (similar to desktops), and create your own grub entry at @/boot/grub/grub.cfg@.
|
||||||
|
|
||||||
|
h4. How to get and customize Debian packages source code
|
||||||
|
|
||||||
|
This release is based on Debian 8.2 "Jessie".
|
||||||
|
|
||||||
|
Since all packages installed in Linaro Debian-based images are maintained either in Debian archives or in Linaro repositories, it is possible for users to update their environment with commands such as:
|
||||||
|
|
||||||
|
bc. sudo apt-get update
|
||||||
|
sudo apt-get upgrade
|
||||||
|
|
||||||
|
All user space software is packaged using Debian packaging process. As such you can find extensive information about using, patching and building packages in The Debian New Maintainers Guide. If you quickly want to rebuild any package, you can run the following commands to fetch the package source code and install all build dependencies:
|
||||||
|
|
||||||
|
bc. sudo apt-get update
|
||||||
|
sudo apt-get build-dep <pkg>
|
||||||
|
apt-get source <pkg>
|
||||||
|
|
||||||
|
Then you can rebuild the package locally with:
|
||||||
|
|
||||||
|
bc. cd <pkg-version>
|
||||||
|
dpkg-buildpackage -b -us -uc
|
||||||
|
|
||||||
|
h4. TODO
|
||||||
|
|
||||||
|
* Explain how to build the rootfs from source
|
|
@ -0,0 +1,112 @@
|
||||||
|
|
||||||
|
h2. Install Instructions - CE AOSP RPB 15.12 - HiKey
|
||||||
|
|
||||||
|
This guide describes how to get started with the CE AOSP Reference Platform Build, release 15.12, for HiKey.
|
||||||
|
|
||||||
|
For more information about the HiKey development board, please check "https://www.96boards.org/products/ce/hikey/":https://www.96boards.org/products/ce/hikey/
|
||||||
|
|
||||||
|
h3. Image Components
|
||||||
|
|
||||||
|
The CE AOSP RPB 15.12 - HiKey build is composed of the following artifacts:
|
||||||
|
|
||||||
|
* Bootloader:
|
||||||
|
** ARM Trusted Firmware, EDK2/UEFI and Grub2
|
||||||
|
** For more information about the reference bootloader used by HiKey, please check "Reference-Bootloader-Hikey":https://github.com/96boards/documentation/wiki/Reference-Bootloader-Hikey
|
||||||
|
** Pre-built files: "http://builds.96boards.org/releases/reference-platform/aosp/hikey/15.12/bootloader":http://builds.96boards.org/releases/reference-platform/aosp/hikey/15.12/bootloader
|
||||||
|
* Linux Kernel:
|
||||||
|
** Derived from Linux 4.1 kernel
|
||||||
|
** Git: "https://github.com/96boards/linux.git":https://github.com/96boards/linux.git
|
||||||
|
** Branch: *android-hikey-linaro-4.1*
|
||||||
|
* AOSP Android Marshmallow 6.0
|
||||||
|
|
||||||
|
h4. Closed source binaries
|
||||||
|
|
||||||
|
The following components requires a closed source binary for better hardware support:
|
||||||
|
|
||||||
|
* TI wlan firmware (@wl18xx@)
|
||||||
|
** Git: "http://git.ti.com/wilink8-wlan/wl18xx_fw":http://git.ti.com/wilink8-wlan/wl18xx_fw
|
||||||
|
** Branch: *R8.5*
|
||||||
|
* Extra firmware files available from firmware-linux
|
||||||
|
* Mali (requires EULA)
|
||||||
|
|
||||||
|
h3. Downloading the pre-built binaries
|
||||||
|
|
||||||
|
The build is composed by the traditional Android image files (@boot@, @cache@, @system@ and @userdata@), but to avoid incompatibilities issues with older bootloaders, or different partition tables, it's also recommended to flash the bootloader.
|
||||||
|
|
||||||
|
*Bootloader files:*
|
||||||
|
|
||||||
|
bc. wget http://builds.96boards.org/releases/reference-platform/aosp/hikey/15.12/bootloader/l-loader.bin
|
||||||
|
wget http://builds.96boards.org/releases/reference-platform/aosp/hikey/15.12/bootloader/nvme.img
|
||||||
|
wget http://builds.96boards.org/releases/reference-platform/aosp/hikey/15.12/bootloader/fip.bin
|
||||||
|
wget http://builds.96boards.org/releases/reference-platform/aosp/hikey/15.12/bootloader/ptable-aosp-4g.img
|
||||||
|
wget http://builds.96boards.org/releases/reference-platform/aosp/hikey/15.12/bootloader/ptable-aosp-8g.img
|
||||||
|
wget http://builds.96boards.org/releases/reference-platform/aosp/hikey/15.12/bootloader/hisi-idt.py
|
||||||
|
|
||||||
|
*CE AOSP RPB image:*
|
||||||
|
|
||||||
|
bc. wget http://builds.96boards.org/releases/reference-platform/aosp/hikey/15.12/boot_fat.uefi.img.tar.xz
|
||||||
|
wget http://builds.96boards.org/releases/reference-platform/aosp/hikey/15.12/cache.img.tar.xz
|
||||||
|
wget http://builds.96boards.org/releases/reference-platform/aosp/hikey/15.12/userdata.img.tar.xz
|
||||||
|
wget http://builds.96boards.org/releases/reference-platform/aosp/hikey/15.12/userdata-8gb.img.tar.xz
|
||||||
|
|
||||||
|
Since @system.img@ requires the user to accept an End User License Agreement covering the rights to download and use the proprietary Mali userspace driver, it needs to be manually downloaded via browser. Please go to "http://builds.96boards.org/releases/reference-platform/aosp/hikey/15.12/system.img.tar.xz":http://builds.96boards.org/releases/reference-platform/aosp/hikey/15.12/system.img.tar.xz and follow the instructions to download the file.
|
||||||
|
|
||||||
|
Uncompress the .tar.xz files using your operating system file manager, or with the following command, for each file:
|
||||||
|
|
||||||
|
bc. xz --decompress [filename].tar.xz; tar -xvf [filename].tar
|
||||||
|
|
||||||
|
h3. Flashing
|
||||||
|
|
||||||
|
h4. Bootloader
|
||||||
|
|
||||||
|
To flash the bootloader the recovery mode is required. For more information about the recovery mode, how to enable and use, please go to "https://github.com/96boards/documentation/wiki/Reference-Bootloader-Hikey#enabling-recovery-mode":https://github.com/96boards/documentation/wiki/Reference-Bootloader-Hikey#enabling-recovery-mode
|
||||||
|
|
||||||
|
Now you need to identify if your device contains 4G or 8G of eMMC (LeMaker produces 2 HiKey versions, one with 4G and another with 8G of storage). The @ptable-aosp@ and @userdata@ files will differ depending on the board you have.
|
||||||
|
|
||||||
|
On recovery mode, flash the bootloader with the following command:
|
||||||
|
|
||||||
|
bc. sudo python hisi-idt.py --img1=l-loader.bin -d /dev/ttyUSB0
|
||||||
|
|
||||||
|
Then on a 4G compatible device:
|
||||||
|
|
||||||
|
bc. sudo fastboot flash ptable ptable-aosp-4g.img
|
||||||
|
|
||||||
|
Or the following on a 8G compatible device:
|
||||||
|
|
||||||
|
bc. sudo fastboot flash ptable ptable-aosp-8g.img
|
||||||
|
|
||||||
|
Then flash UEFI:
|
||||||
|
|
||||||
|
bc. sudo fastboot flash fastboot fip.bin
|
||||||
|
|
||||||
|
Change @ttyUSB0@ to the right interface name that gets exported to your host system.
|
||||||
|
|
||||||
|
Make sure to reboot the board after updating the partition table (@ptable-aosp@), otherwise flashing the system image might fail.
|
||||||
|
|
||||||
|
h4. Boot, System, Cache and Userdata
|
||||||
|
|
||||||
|
Fastboot is required to flash boot, system, cache and userdata.
|
||||||
|
|
||||||
|
*Flashing boot, cache, system and userdata:*
|
||||||
|
|
||||||
|
Enable fastboot (either via recovery or by changing the boot jumpers), and then just flash the required files:
|
||||||
|
|
||||||
|
bc. sudo fastboot flash boot boot_fat.uefi.img
|
||||||
|
sudo fastboot flash cache cache.img
|
||||||
|
sudo fastboot flash system system.img
|
||||||
|
sudo fastboot flash nvme nvme.img
|
||||||
|
|
||||||
|
Then on a 4G compatible device:
|
||||||
|
|
||||||
|
bc. sudo fastboot flash userdata userdata.img
|
||||||
|
|
||||||
|
Or the following on a 8G compatible device:
|
||||||
|
|
||||||
|
bc. sudo fastboot flash userdata userdata-8gb.img
|
||||||
|
|
||||||
|
|
||||||
|
Once flashed, make sure recovery mode is not enabled (pin3-pin4 on J15), that you don't have any sd card in place (since it first tries to boot from sd card, boot order can be changed with @sudo fastboot oem bootdevice [emmc|sd]@), then just reboot the board and enjoy :-)
|
||||||
|
|
||||||
|
h3. Additional resources
|
||||||
|
|
||||||
|
For known issues and more information about this release, please check "https://github.com/96boards/documentation/wiki/ReferencePlatform":https://github.com/96boards/documentation/wiki/ReferencePlatform
|
|
@ -0,0 +1,97 @@
|
||||||
|
h2. Install Instructions - CE Debian RPB 15.12 - HiKey
|
||||||
|
|
||||||
|
This guide describes how to get started with the CE Debian Reference Platform Build, release 15.12, for HiKey.
|
||||||
|
|
||||||
|
For more information about the HiKey development board, please check "https://www.96boards.org/products/ce/hikey/":https://www.96boards.org/products/ce/hikey/
|
||||||
|
|
||||||
|
h3. Image Components
|
||||||
|
|
||||||
|
The CE Debian RPB 15.12 - HiKey build is composed of the following artifacts:
|
||||||
|
|
||||||
|
* Bootloader:
|
||||||
|
** ARM Trusted Firmware, EDK2/UEFI and Grub2
|
||||||
|
** For more information about the reference bootloader used by HiKey, please check "Reference-Bootloader-Hikey":https://github.com/96boards/documentation/wiki/Reference-Bootloader-Hikey
|
||||||
|
** Pre-built files: "http://builds.96boards.org/releases/reference-platform/debian/hikey/15.12/bootloader":http://builds.96boards.org/releases/reference-platform/debian/hikey/15.12/bootloader
|
||||||
|
* Linux Kernel:
|
||||||
|
** Upstream plus extra changes for a better hardware support
|
||||||
|
** Git: "https://github.com/rsalveti/linux.git":https://github.com/rsalveti/linux.git
|
||||||
|
** Branch: *reference-hikey-rebase*
|
||||||
|
* Debian "Jessie"
|
||||||
|
** ALIP (LXDE based)
|
||||||
|
** Custom 96Boards artworks and default settings
|
||||||
|
** Additional packages provided by "linaro-overlay":http://repo.linaro.org/ubuntu/linaro-overlay
|
||||||
|
** Kernel and initrd loaded from the rootfs (under /boot)
|
||||||
|
|
||||||
|
h4. Closed source binaries
|
||||||
|
|
||||||
|
The following components requires a closed source binary for better hardware support:
|
||||||
|
|
||||||
|
* TI wlan firmware (@wl18xx@)
|
||||||
|
** Git: "http://git.ti.com/wilink8-wlan/wl18xx_fw":http://git.ti.com/wilink8-wlan/wl18xx_fw
|
||||||
|
** Branch: *R8.6*
|
||||||
|
* Extra firmware files available from firmware-linux
|
||||||
|
* Mali (not yet included by default)
|
||||||
|
|
||||||
|
h3. Downloading the pre-built binaries
|
||||||
|
|
||||||
|
The build is mainly composed by two image files (boot and rootfs), but to avoid incompatibilities issues with older bootloaders, or different partition tables, it's also recommended to flash the bootloader.
|
||||||
|
|
||||||
|
Flashing and booting from the external SD Card is not supported by this release.
|
||||||
|
|
||||||
|
*Bootloader files:*
|
||||||
|
|
||||||
|
bc. wget http://builds.96boards.org/releases/reference-platform/debian/hikey/15.12/bootloader/l-loader.bin
|
||||||
|
wget http://builds.96boards.org/releases/reference-platform/debian/hikey/15.12/bootloader/nvme.img
|
||||||
|
wget http://builds.96boards.org/releases/reference-platform/debian/hikey/15.12/bootloader/fip.bin
|
||||||
|
wget http://builds.96boards.org/releases/reference-platform/debian/hikey/15.12/bootloader/ptable-linux-4g.img
|
||||||
|
wget http://builds.96boards.org/releases/reference-platform/debian/hikey/15.12/bootloader/ptable-linux-8g.img
|
||||||
|
wget http://builds.96boards.org/releases/reference-platform/debian/hikey/15.12/bootloader/hisi-idt.py
|
||||||
|
|
||||||
|
*CE Debian RPB image:*
|
||||||
|
|
||||||
|
bc. wget https://builds.96boards.org/releases/reference-platform/debian/hikey/15.12/hikey-boot-linux-20151214-35.uefi.img.gz
|
||||||
|
wget https://builds.96boards.org/releases/reference-platform/debian/hikey/15.12/hikey-rootfs-debian-jessie-alip-20151214-35.emmc.img.gz
|
||||||
|
gunzip hikey-*
|
||||||
|
|
||||||
|
h3. Flashing
|
||||||
|
|
||||||
|
h4. Bootloader
|
||||||
|
|
||||||
|
To flash the bootloader the recovery mode is required. For more information about the recovery mode, how to enable and use, please check "https://github.com/96boards/documentation/wiki/Reference-Bootloader-Hikey#enabling-recovery-mode":https://github.com/96boards/documentation/wiki/Reference-Bootloader-Hikey#enabling-recovery-mode
|
||||||
|
|
||||||
|
Now you need to identify if your device contains 4G or 8G of eMMC (LeMaker produces 2 HiKey versions, one with 4G and another with 8G of storage). The @ptable-linux@ file will differ depending on the board you have.
|
||||||
|
|
||||||
|
On recovery mode, flash the bootloader with the following command:
|
||||||
|
|
||||||
|
bc. sudo python hisi-idt.py --img1=l-loader.bin
|
||||||
|
|
||||||
|
Then on a 4G compatible device:
|
||||||
|
|
||||||
|
bc. sudo fastboot flash ptable ptable-linux-4g.img
|
||||||
|
|
||||||
|
Or the following on a 8G compatible device:
|
||||||
|
|
||||||
|
bc. sudo fastboot flash ptable ptable-linux-8g.img
|
||||||
|
|
||||||
|
Then flash UEFI:
|
||||||
|
|
||||||
|
bc. sudo fastboot flash fastboot fip.bin
|
||||||
|
|
||||||
|
Make sure to reboot the board after updating the partition table (@ptable-linux@), otherwise flashing the rootfs might fail.
|
||||||
|
|
||||||
|
h4. Boot and Rootfs
|
||||||
|
|
||||||
|
Fastboot is required to flash both the boot and rootfs images.
|
||||||
|
|
||||||
|
To avoid bug "117 (UEFI fastboot uploads hangs for large images)":https://bugs.96boards.org/show_bug.cgi?id=117, it's recommended to flash both the boot and rootfs images via recovery mode (after running @hisi-idt.py@).
|
||||||
|
|
||||||
|
*Flashing boot and rootfs:*
|
||||||
|
|
||||||
|
bc. sudo fastboot flash boot hikey-boot-linux-20151214-35.uefi.img
|
||||||
|
sudo fastboot flash system hikey-rootfs-debian-jessie-alip-20151214-35.emmc.img
|
||||||
|
|
||||||
|
Once flashed, make sure recovery mode is not enabled (pin3-pin4 on J15), that you don’t have any sd card in place (since it first tries to boot from sd card, boot order can be changed with sudo fastboot oem bootdevice [emmc|sd]), then just reboot the board and enjoy :-)
|
||||||
|
|
||||||
|
h3. Additional resources
|
||||||
|
|
||||||
|
For known issues and more information about this release, please check "https://github.com/96boards/documentation/wiki/ReferencePlatform":https://github.com/96boards/documentation/wiki/ReferencePlatform
|
|
@ -0,0 +1,18 @@
|
||||||
|
# HiKey Reference Platform Build - 15.12
|
||||||
|
|
||||||
|
- **Install Instructions:** For "out-of-box" users. Instructions for installing pre-build Reference Platform images onto your 96Boards.
|
||||||
|
- **Build from Source:** For Advanced users. Instructions for building and installing the various Reference Platform components used by Consumer Edition 96Boards.
|
||||||
|
- **Known Issues:** List of current bugs and issues for each Reference Platform Build. Includes links to bug reports for tracking resolution progress.
|
||||||
|
- **Test Report:** Provides test results and bug status for kernel, firmware, and images with a straight forward pass/fail legend.
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
#### HiKey
|
||||||
|
|
||||||
|
| **CE Debian RPB - 15.12** | **CE AOSP RPB - 15.12** |
|
||||||
|
|:------------------------------------------------------:|:---------------------------------------------------:|
|
||||||
|
| [Install Instructions](InstallDebianRPB-15.12.md) | [Install Instructions](InstallAOSPRPB-15.12.md) |
|
||||||
|
| [Build from Source](BFSDebianRPB-15.12.md) | [Build from Source](BFSAOSPRPB-15.12.md) |
|
||||||
|
| [Known issues](../../Known-Issues.md) | [Known issues](../../Known-Issues.md) |
|
||||||
|
|
||||||
|
***
|
|
@ -0,0 +1,9 @@
|
||||||
|
# Reference Platform Build - 15.12
|
||||||
|
|
||||||
|
[RPB 15.12 Highlights](Highlights.md) | [RPB 15.12 Known Issues](Known-Issues.md)
|
||||||
|
|
||||||
|
## Choose your Hardware
|
||||||
|
|
||||||
|
- [HiKey](ConsumerEdition/HiKey/README.md)
|
||||||
|
- [DragonBoard™ 410c](ConsumerEdition/DragonBoard-410c/README.md)
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
#### Step 1: Read about the Fastboot Method
|
#### Step 1: Read about the Fastboot Method
|
||||||
|
|
||||||
Fastboot is supported by the board and can be used for installs. This is for advanced users who are most likely modifying/customizing source code and will need to download such updates to the board for test/execution.
|
Fastboot is supported by the board and can be used for installs. This is for advanced users who are most likely modifying/customizing source code and will need to download such updates to the board for test/execution.
|
||||||
|
|
||||||
This method requires the following hardware:
|
This method requires the following hardware:
|
||||||
- HiKey with power supply
|
- HiKey with power supply
|
||||||
|
@ -26,7 +26,7 @@ This method requires the following hardware:
|
||||||
>Note: Some files have 4G and 8G options, download file which best matches your HiKey board.
|
>Note: Some files have 4G and 8G options, download file which best matches your HiKey board.
|
||||||
|
|
||||||
- All HiKey **CircuitCo boards** will use the **4G files**
|
- All HiKey **CircuitCo boards** will use the **4G files**
|
||||||
- All HiKey **LeMaker 1G boards** will use the **4G files**
|
- All HiKey **LeMaker 1G boards** will use the **8G files**
|
||||||
- All HiKey **LeMaker 2G boards** will use the **8G files**
|
- All HiKey **LeMaker 2G boards** will use the **8G files**
|
||||||
|
|
||||||
Build Folders (<a href="http://builds.96boards.org/releases/reference-platform/aosp/hikey/16.03/bootloader/" target="_blank">**Binaries**</a> / <a href="http://builds.96boards.org/releases/reference-platform/aosp/hikey/16.03/" target="_blank">**Image**</a>)
|
Build Folders (<a href="http://builds.96boards.org/releases/reference-platform/aosp/hikey/16.03/bootloader/" target="_blank">**Binaries**</a> / <a href="http://builds.96boards.org/releases/reference-platform/aosp/hikey/16.03/" target="_blank">**Image**</a>)
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
#### Step 1: Read about the Fastboot Method
|
#### Step 1: Read about the Fastboot Method
|
||||||
|
|
||||||
Fastboot is supported by the board and can be used for installs. This is for advanced users who are most likely modifying/customizing source code and will need to download such updates to the board for test/execution.
|
Fastboot is supported by the board and can be used for installs. This is for advanced users who are most likely modifying/customizing source code and will need to download such updates to the board for test/execution.
|
||||||
|
|
||||||
This method requires the following hardware:
|
This method requires the following hardware:
|
||||||
- HiKey with power supply
|
- HiKey with power supply
|
||||||
|
@ -24,7 +24,7 @@ This method requires the following hardware:
|
||||||
> Note: Some files have 4G and 8G options, download file which best matches your HiKey board.
|
> Note: Some files have 4G and 8G options, download file which best matches your HiKey board.
|
||||||
|
|
||||||
- All HiKey **CircuitCo boards** will use the **4G files**
|
- All HiKey **CircuitCo boards** will use the **4G files**
|
||||||
- All HiKey **LeMaker 1G boards** will use the **4G files**
|
- All HiKey **LeMaker 1G boards** will use the **8G files**
|
||||||
- All HiKey **LeMaker 2G boards** will use the **8G files**
|
- All HiKey **LeMaker 2G boards** will use the **8G files**
|
||||||
|
|
||||||
**ptable-linux.img** ([**4G Download**](https://builds.96boards.org/releases/reference-platform/debian/hikey/16.03/bootloader/ptable-linux-4g.img) / [**8G Download**](https://builds.96boards.org/releases/reference-platform/debian/hikey/16.03/bootloader/ptable-linux-8g.img))
|
**ptable-linux.img** ([**4G Download**](https://builds.96boards.org/releases/reference-platform/debian/hikey/16.03/bootloader/ptable-linux-4g.img) / [**8G Download**](https://builds.96boards.org/releases/reference-platform/debian/hikey/16.03/bootloader/ptable-linux-8g.img))
|
|
@ -0,0 +1,9 @@
|
||||||
|
# Reference Platform Build - 16.03
|
||||||
|
|
||||||
|
[RPB 16.03 Highlights](Highlights.md) | [RPB 16.03 Known Issues](Known-Issues.md) | [RPB 16.03 Release Status](ReleaseStatus-16.03.md)
|
||||||
|
|
||||||
|
## Choose your Hardware
|
||||||
|
|
||||||
|
- [HiKey](ConsumerEdition/HiKey/README.md)
|
||||||
|
- [DragonBoard™ 410c](ConsumerEdition/DragonBoard-410c/README.md)
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
## Dragonboard™ 410c - Reference Platform Build - 16.06
|
||||||
|
|
||||||
|
- **Install Instructions:** For "out-of-box" users. Instructions for installing pre-build Reference Platform images onto your 96Boards. Includes SD card and Fastboot method instructions.
|
||||||
|
- **Build from Source:** For Advanced users. Instructions for building and installing the various Reference Platform components used by Consumer Edition 96Boards.
|
||||||
|
- **Known Issues:** List of current bugs and issues for each Reference Platform Build. Includes links to bug reports for tracking resolution progress.
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
| **CE Debian RPB - 16.06** |
|
||||||
|
|:-----------------------------:|
|
||||||
|
| [Install Instructions](InstallDebianRPB-16.06.md) |
|
||||||
|
| [Build from Source](BFSDebianRPB-16.06.md) |
|
||||||
|
| [Known issues](../../Known-Issues.md) |
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
- Access generic **OpenEmbedded** build from source instructions [here](../../../../CECommon/OE.md)
|
|
@ -6,13 +6,10 @@
|
||||||
- Step 3: Export path to cross compiler tool and confirm version
|
- Step 3: Export path to cross compiler tool and confirm version
|
||||||
- Step 5: Set the right kernel .config file
|
- Step 5: Set the right kernel .config file
|
||||||
- Step 6: Build kernel image and debian package
|
- Step 6: Build kernel image and debian package
|
||||||
- Step 7: Copy Modules
|
- Step 7: Find HiKey IP Address
|
||||||
- Step 8: Find kernel release string
|
- Step 8: Transfer the modules to the target HiKey
|
||||||
- Step 9: Generate modules.dep and map files
|
- Step 9: Generate the initramfs
|
||||||
- Step 10: Find HiKey IP Address
|
- Step 10: Create the device tree image and boot image
|
||||||
- Step 11: Transfer the modules to the target HiKey
|
|
||||||
- Step 12: Generate the initramfs
|
|
||||||
- Step 13: Create the device tree image and boot image
|
|
||||||
- Customize Bootloader
|
- Customize Bootloader
|
||||||
- Build Rootfs from source
|
- Build Rootfs from source
|
||||||
|
|
|
@ -0,0 +1,86 @@
|
||||||
|
## HiKey Bootloader - Building from source
|
||||||
|
|
||||||
|
The source code is available from:
|
||||||
|
- [**l-loader**](https://github.com/96boards-hikey/l-loader)
|
||||||
|
- [**ARM Trusted Firmware**](https://github.com/96boards-hikey/arm-trusted-firmware)
|
||||||
|
- [**OP-TEE**](https://github.com/OP-TEE/optee_os)
|
||||||
|
- [**Tianocore EDK2 – UEFI**](https://github.com/96boards-hikey/edk2) and [**OpenPlatformPkg**](https://github.com/96boards-hikey/OpenPlatformPkg)
|
||||||
|
|
||||||
|
Since GRUB2 is currently consumed directly from the Debian package, debian package rebuild instructions applies.
|
||||||
|
|
||||||
|
### Build instructions
|
||||||
|
|
||||||
|
Prerequisites:
|
||||||
|
- GCC 5.3 cross-toolchain for Aarch64 available in your PATH
|
||||||
|
- You can download and use the Linaro GCC binary (Linaro GCC 5.3-2016.02), available at [http://releases.linaro.org/components/toolchain/binaries/5.3-2016.02/aarch64-linux-gnu/gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu.tar.xz](http://releases.linaro.org/components/toolchain/binaries/5.3-2016.02/aarch64-linux-gnu/gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu.tar.xz)
|
||||||
|
- GCC 5.3 cross-toolchain for gnueabihf available in your PATH
|
||||||
|
- You can download and use the Linaro GCC binary (Linaro GCC 5.3-2016.02), available at [http://releases.linaro.org/components/toolchain/binaries/5.3-2016.02/arm-linux-gnueabihf/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf.tar.xz](http://releases.linaro.org/components/toolchain/binaries/5.3-2016.02/arm-linux-gnueabihf/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf.tar.xz)
|
||||||
|
- GPT fdisk (gdisk package from your favorite distribution).
|
||||||
|
|
||||||
|
#### Installing pre-built toolchain(s)
|
||||||
|
|
||||||
|
```shell
|
||||||
|
mkdir arm-tc arm64-tc
|
||||||
|
tar --strip-components=1 -C ${PWD}/arm-tc -xf gcc-linaro-5.3-*arm-linux-gnueabihf.tar.xz
|
||||||
|
tar --strip-components=1 -C ${PWD}/arm64-tc -xf gcc-linaro-5.3-*aarch64-linux-gnu.tar.xz
|
||||||
|
export PATH="${PWD}/arm-tc/bin:${PWD}/arm64-tc/bin:$PATH"
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Getting the source code
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git clone -b hikey-aosp https://github.com/96boards-hikey/edk2.git
|
||||||
|
git clone -b hikey-aosp https://github.com/96boards-hikey/OpenPlatformPkg.git
|
||||||
|
git clone https://github.com/OP-TEE/optee_os.git
|
||||||
|
git clone -b hikey https://github.com/96boards-hikey/arm-trusted-firmware.git
|
||||||
|
git clone https://github.com/96boards-hikey/l-loader.git
|
||||||
|
git clone -b hikey-aosp https://github.com/96boards-hikey/uefi-tools.git
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Building EDK2/UEFI for HiKey
|
||||||
|
|
||||||
|
Building EDK2/UEFI is simple if built with the _uefi-tools.sh_ script, since it already incorporates the platform specific configs and binaries.
|
||||||
|
|
||||||
|
To build EDK2/UEFI (use **-b** to select **RELEASE** or **DEBUG** build):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
export AARCH64_TOOLCHAIN=GCC49
|
||||||
|
export EDK2_DIR=${PWD}/edk2
|
||||||
|
export OPTEE_DIR=${PWD}/optee_os
|
||||||
|
export ATF_DIR=${PWD}/arm-trusted-firmware
|
||||||
|
export UEFI_TOOLS_DIR=${PWD}/uefi-tools
|
||||||
|
cd ${EDK2_DIR}
|
||||||
|
rmdir OpenPlatformPkg; ln -s ../OpenPlatformPkg
|
||||||
|
${UEFI_TOOLS_DIR}/uefi-build.sh -b RELEASE -a ${ATF_DIR} -s ${OPTEE_DIR} hikey
|
||||||
|
```
|
||||||
|
|
||||||
|
And bl1.bin with l-loader (ptable files are also created as part of the l-loader Makefile):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
cd ../l-loader
|
||||||
|
ln -s ${EDK2_DIR}/Build/HiKey/RELEASE_GCC49/FV/bl1.bin
|
||||||
|
ln -s ${EDK2_DIR}/Build/HiKey/RELEASE_GCC49/FV/fip.bin
|
||||||
|
make # requires sudo for creating the partition tables
|
||||||
|
```
|
||||||
|
|
||||||
|
The files 'fip.bin', 'l-loader.bin' and 'ptable-linux-8g.img' are now built. All the image files are in _$BUILD/l-loader_ directory. The Fastboot App is at _edk2/Build/HiKey/RELEASE_GCC49/AARCH64/AndroidFastbootApp.efi_.
|
||||||
|
|
||||||
|
#### EFI boot partition
|
||||||
|
|
||||||
|
The boot partition is a 64MB FAT partition only contains fastboot.efi and GRUB2, since the grub.cfg, kernel, initrd and device tree are all loaded from the root file system (grubaa64.efi searches for rootfs label/boot/grub/grub.cfg).
|
||||||
|
|
||||||
|
```shell
|
||||||
|
wget https://builds.96boards.org/snapshots/reference-platform/components/grub/latest/grubaa64.efi
|
||||||
|
mkdir boot-fat
|
||||||
|
dd if=/dev/zero of=boot-fat.uefi.img bs=512 count=131072
|
||||||
|
sudo mkfs.fat -n "boot" boot-fat.uefi.img
|
||||||
|
sudo mount -o loop,rw,sync boot-fat.uefi.img boot-fat
|
||||||
|
sudo mkdir -p boot-fat/EFI/BOOT
|
||||||
|
sudo cp ${EDK2_DIR}/Build/HiKey/RELEASE_GCC49/AARCH64/AndroidFastbootApp.efi boot-fat/EFI/BOOT/fastboot.efi
|
||||||
|
sudo cp grubaa64.efi boot-fat/EFI/BOOT/grubaa64.efi
|
||||||
|
sudo umount boot-fat
|
||||||
|
sudo mv boot-fat.uefi.img hikey-boot-linux-VERSION.uefi.img
|
||||||
|
rm -rf boot-fat
|
||||||
|
```
|
||||||
|
|
||||||
|
Now just flash the recently created 'hikey-boot-linux-VERSION.uefi.img' with the same instructions as used with the pre-built binaries.
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
#### Step 1: Read about the Fastboot Method
|
#### Step 1: Read about the Fastboot Method
|
||||||
|
|
||||||
Fastboot is supported by the board and can be used for installs. This is for advanced users who are most likely modifying/customizing source code and will need to download such updates to the board for test/execution.
|
Fastboot is supported by the board and can be used for installs. This is for advanced users who are most likely modifying/customizing source code and will need to download such updates to the board for test/execution.
|
||||||
|
|
||||||
This method requires the following hardware:
|
This method requires the following hardware:
|
||||||
- HiKey with power supply
|
- HiKey with power supply
|
||||||
|
@ -26,7 +26,7 @@ This method requires the following hardware:
|
||||||
>Note: Some files have 4G and 8G options, download file which best matches your HiKey board.
|
>Note: Some files have 4G and 8G options, download file which best matches your HiKey board.
|
||||||
|
|
||||||
- All HiKey **CircuitCo boards** will use the **4G files**
|
- All HiKey **CircuitCo boards** will use the **4G files**
|
||||||
- All HiKey **LeMaker 1G boards** will use the **4G files**
|
- All HiKey **LeMaker 1G boards** will use the **8G files**
|
||||||
- All HiKey **LeMaker 2G boards** will use the **8G files**
|
- All HiKey **LeMaker 2G boards** will use the **8G files**
|
||||||
|
|
||||||
Build Folders (<a href="http://builds.96boards.org/releases/reference-platform/aosp/hikey/16.03/bootloader/" target="_blank">**Binaries**</a> / <a href="http://builds.96boards.org/releases/reference-platform/aosp/hikey/16.03/" target="_blank">**Image**</a>)
|
Build Folders (<a href="http://builds.96boards.org/releases/reference-platform/aosp/hikey/16.03/bootloader/" target="_blank">**Binaries**</a> / <a href="http://builds.96boards.org/releases/reference-platform/aosp/hikey/16.03/" target="_blank">**Image**</a>)
|
|
@ -19,20 +19,20 @@ This page provides download and installation instructions inteded for those inte
|
||||||
|
|
||||||
#### Step 1: Read about the SD Card Method
|
#### Step 1: Read about the SD Card Method
|
||||||
|
|
||||||
The SD card method allows you to place a microSD card into the HiKey to automatically boot and install the Linux Desktop onto the board. This method is generally simpler and should be used by beginners.
|
The SD card method allows you to place a microSD card into the HiKey to automatically boot and install the Linux Desktop onto the board. This method is generally simpler and should be used by beginners.
|
||||||
|
|
||||||
This method requires the following hardware:
|
This method requires the following hardware:
|
||||||
- HiKey with power supply
|
- HiKey with power supply
|
||||||
- Host Linux machine (Linux, Mac OS X, or Windows)
|
- Host Linux machine (Linux, Mac OS X, or Windows)
|
||||||
- MicroSD card with 4GB or more of storage
|
- MicroSD card with 4GB or more of storage
|
||||||
- USB Mouse and/or keyboard
|
- USB Mouse and/or keyboard
|
||||||
- HDMI Monitor with full size HDMI cable
|
- HDMI Monitor with full size HDMI cable
|
||||||
|
|
||||||
|
|
||||||
***
|
***
|
||||||
#### Step 2: Download SD Card Image
|
#### Step 2: Download SD Card Image
|
||||||
|
|
||||||
**Debian Linux Reference Software Platform - SD Card Image**
|
**Debian Linux Reference Software Platform - SD Card Image**
|
||||||
|
|
||||||
[SD Card Image - Direct Download](http://builds.96boards.org/releases/reference-platform/debian/hikey/16.06/hikey-debian-jessie-alip-sdcard-*.img.gz)
|
[SD Card Image - Direct Download](http://builds.96boards.org/releases/reference-platform/debian/hikey/16.06/hikey-debian-jessie-alip-sdcard-*.img.gz)
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ lsblk
|
||||||
```shell
|
```shell
|
||||||
cd <extraction directory>
|
cd <extraction directory>
|
||||||
|
|
||||||
#Example:
|
#Example:
|
||||||
#<extraction directory> = /home/YourUserName/Downloads
|
#<extraction directory> = /home/YourUserName/Downloads
|
||||||
#For this example we assume the "Debian SD Card Install Image" is in the Downloads folder.
|
#For this example we assume the "Debian SD Card Install Image" is in the Downloads folder.
|
||||||
cd /home/YourUserName/Downloads
|
cd /home/YourUserName/Downloads
|
||||||
|
@ -161,7 +161,7 @@ Before clicking "OK":
|
||||||
|
|
||||||
#### Step 1: Read about the Fastboot Method
|
#### Step 1: Read about the Fastboot Method
|
||||||
|
|
||||||
Fastboot is supported by the board and can be used for installs. This is for advanced users who are most likely modifying/customizing source code and will need to download such updates to the board for test/execution.
|
Fastboot is supported by the board and can be used for installs. This is for advanced users who are most likely modifying/customizing source code and will need to download such updates to the board for test/execution.
|
||||||
|
|
||||||
This method requires the following hardware:
|
This method requires the following hardware:
|
||||||
- HiKey with power supply
|
- HiKey with power supply
|
||||||
|
@ -177,7 +177,7 @@ This method requires the following hardware:
|
||||||
> Note: Some files have 4G and 8G options, download file which best matches your HiKey board.
|
> Note: Some files have 4G and 8G options, download file which best matches your HiKey board.
|
||||||
|
|
||||||
- All HiKey **CircuitCo boards** will use the **4G files**
|
- All HiKey **CircuitCo boards** will use the **4G files**
|
||||||
- All HiKey **LeMaker 1G boards** will use the **4G files**
|
- All HiKey **LeMaker 1G boards** will use the **8G files**
|
||||||
- All HiKey **LeMaker 2G boards** will use the **8G files**
|
- All HiKey **LeMaker 2G boards** will use the **8G files**
|
||||||
|
|
||||||
**ptable-linux.img** ([**4G Download**](http://builds.96boards.org/releases/reference-platform/debian/hikey/16.06/bootloader/ptable-linux-4g.img) / [**8G Download**](http://builds.96boards.org/releases/reference-platform/debian/hikey/16.06/bootloader/ptable-linux-8g.img))
|
**ptable-linux.img** ([**4G Download**](http://builds.96boards.org/releases/reference-platform/debian/hikey/16.06/bootloader/ptable-linux-4g.img) / [**8G Download**](http://builds.96boards.org/releases/reference-platform/debian/hikey/16.06/bootloader/ptable-linux-8g.img))
|
||||||
|
@ -227,7 +227,7 @@ $ sudo fastboot devices
|
||||||
0123456789abcdef fastboot
|
0123456789abcdef fastboot
|
||||||
```
|
```
|
||||||
|
|
||||||
>Note: If your HiKey is not being detected by fastboot, you might want to try [Board Recovery](https://github.com/96boards/documentation/wiki/HiKey-Board-Recovery) and return to this step once your board is ready
|
>Note: If your HiKey is not being detected by fastboot, you might want to try [Board Recovery](https://github.com/96boards/documentation/blob/master/ConsumerEdition/HiKey/Installation/BoardRecovery.md) and return to this step once your board is ready
|
||||||
|
|
||||||
3 - **Install Operating System update using downloaded files**
|
3 - **Install Operating System update using downloaded files**
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
## Reference Platform Build - 16.06
|
||||||
|
|
||||||
|
|
||||||
|
- **Install Instructions:** For "out-of-box" users. Instructions for installing pre-build Reference Platform images onto your 96Boards. Includes SD card and Fastboot method instructions.
|
||||||
|
- **Build from Source:** For Advanced users. Instructions for building and installing the various Reference Platform components used by Consumer Edition 96Boards.
|
||||||
|
- **Known Issues:** List of current bugs and issues for each Reference Platform Build. Includes links to bug reports for tracking resolution progress.
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
#### HiKey
|
||||||
|
|
||||||
|
|
||||||
|
| **CE Debian RPB - 16.06** |
|
||||||
|
|:-----------------------------:|
|
||||||
|
| [Install Instructions](InstallDebianRPB.md) |
|
||||||
|
| [Build from Source](BFSDebianRPB.md) |
|
||||||
|
| [Known issues](../../Known-Issues.md) |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
| **CE AOSP** |
|
||||||
|
|:---------------------------:|
|
||||||
|
| [Install Instructions](https://source.android.com/source/devices.html) |
|
||||||
|
| [Known issues](../../Known-Issues.md) |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
- Access **bootloader** build from source instructions [here](BuildSourceBL.md)
|
||||||
|
- Access **OpenEmbedded** build from source instructions [here](../../../../CECommon/OE.md)
|
|
@ -0,0 +1,96 @@
|
||||||
|
### Highlights for 16.06 release:
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
###### Consumer and Enterprise Edition:
|
||||||
|
|
||||||
|
#### Kernel
|
||||||
|
|
||||||
|
- Unified tree shared between the CE and EE builds.
|
||||||
|
- 4.4.11-based, including some under-review topic branches to extend the features and platform hardware support.
|
||||||
|
- Device-Tree support for CE; ARM ACPI and PCIe support for Enterprise.
|
||||||
|
- Added OP-TEE support
|
||||||
|
- Enabled on HiKey and Juno-r1
|
||||||
|
- Supports Reference HW platforms HiKey and Cello
|
||||||
|
- Other Test Platforms include: Dragonboard 410c, Hisilicon D02 and D03, APM X-Gene, HP Proliant m400, AMD Overdrive, Qualcomm QDF2432 Server Development Platform, and Cavium ThunderX.
|
||||||
|
- Single kernel config for all platforms in arch/arm64/configs/distro.config
|
||||||
|
- Single kernel binary (package) for all platforms
|
||||||
|
|
||||||
|
#### Bootloader
|
||||||
|
|
||||||
|
- UEFI OpenPlatformPkg (upstream) now contains reference implementations for Huawei D02/D03, AMD Overdrive and LeMaker Cello
|
||||||
|
- U-boot support in DB410c images to allow easier handling of images
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
###### Consumer Edition:
|
||||||
|
|
||||||
|
#### Reference hardware platform:
|
||||||
|
- LeMaker Hikey
|
||||||
|
|
||||||
|
#### Other supported test platforms:
|
||||||
|
- Dragonboard 410c
|
||||||
|
|
||||||
|
#### Overall CE Debian platform features, validated as part of the release:
|
||||||
|
- UEFI with DT
|
||||||
|
- Upgrade to Debian 8.5 "Jessie"
|
||||||
|
- Upgrade to the unified 4.4.11 Linux Kernel
|
||||||
|
- Upgrade graphics components: Mesa 11.1.2 and XServer 1.17.3a
|
||||||
|
- Rootfs automatically resized during the first boot
|
||||||
|
|
||||||
|
#### CE Debian RPB for HiKey:
|
||||||
|
- OP-TEE integrated by default
|
||||||
|
- UEFI updated to use the latest development trees based on Tianocore
|
||||||
|
- OpenPlatformPkg
|
||||||
|
|
||||||
|
#### CE Debian build for DragonBoard™ 410c:
|
||||||
|
- U-boot chain-loaded from LK
|
||||||
|
|
||||||
|
#### CE OE/Yocto RPB:
|
||||||
|
- First OpenEmbedded-based RPB, including several changes and components merged from the LHG OE layers
|
||||||
|
- Dragonboard 410c and HiKey support
|
||||||
|
- HiKey features:
|
||||||
|
- OP-TEE initial support
|
||||||
|
- Mali support for HiKey
|
||||||
|
- Dragonboard 410c features:
|
||||||
|
- GPU, WLAN, BT, audio, LS I/O, camera and GPS
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
###### Enterprise Edition
|
||||||
|
|
||||||
|
#### Reference hardware platform:
|
||||||
|
- LeMaker Cello
|
||||||
|
|
||||||
|
#### Other supported test platforms:
|
||||||
|
- AMD Overdrive A0 and B0
|
||||||
|
- Hisilicon D02
|
||||||
|
- Hisilicon D03 (new)
|
||||||
|
- APM X-Gene Mustang
|
||||||
|
- HP ProLiant m400
|
||||||
|
- Qualcomm QDF2432 Server Development Platform (new)
|
||||||
|
- Cavium ThunderX (new)
|
||||||
|
|
||||||
|
#### Overall platform features, validated as part of the release:
|
||||||
|
- UEFI with ACPI
|
||||||
|
- KVM
|
||||||
|
- PCIe
|
||||||
|
|
||||||
|
#### Firmware:
|
||||||
|
- UEFI OpenPlatformPkg (upstream) now contains reference implementation for Huawei D02/D03, AMD Overdrive and LeMaker Cello
|
||||||
|
|
||||||
|
#### Network Installers:
|
||||||
|
- Debian:
|
||||||
|
- Upgrade to Debian 8.5 "Jessie"
|
||||||
|
- Use the unified 4.4.11 kernel
|
||||||
|
- CentOS
|
||||||
|
- Based on CentOS 7.2 16.03
|
||||||
|
- Use the unified 4.4.11 kernel
|
||||||
|
|
||||||
|
#### Enterprise Components:
|
||||||
|
- Docker 1.9.1
|
||||||
|
- OpenStack Liberty for Debian Jessie and CentOS
|
||||||
|
- ODPi 1.0.0 based Hadoop
|
||||||
|
- Spark 1.3.1
|
||||||
|
- OpenJDK 8
|
||||||
|
- QEMU 2.6
|
|
@ -0,0 +1,47 @@
|
||||||
|
# Reference Platform Build - 16.06 Release - Known Issues
|
||||||
|
|
||||||
|
## Fixed Issues
|
||||||
|
|
||||||
|
These lists group all **fixed RPB issues** into their repective categories. Underlying Consumer and Enterprise Edition boards, and their bug fixes are grouped under a single page for convenience and quick reference.
|
||||||
|
|
||||||
|
| Fixed Issues | |
|
||||||
|
|:---|:----|
|
||||||
|
| Enterprise | <a href="https://bugs.linaro.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&component=Enterprise&list_id=10084&product=Reference%20Platforms&query_format=advanced&version=16.06" target="_blank">(Full List)</a> |
|
||||||
|
| Conssumer | <a href="https://bugs.96boards.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Consumer%20Edition%20Boards&list_id=1613&product=HiKey&query_format=advanced&target_milestone=Reference%20Software%20Platform%20-%2016.06" target="_blank">HiKey</a> / <a href="https://bugs.96boards.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Consumer%20Edition%20Boards&component=Android&component=Bootloader%20%2F%20Firmware&component=Documentation&component=Kernel&component=OpenEmbedded%20%2F%20Yocto&component=Tools%20%2F%20Installer&component=Ubuntu%20%2F%20Debian&list_id=1623&product=Dragonboard%20410c&query_format=advanced&resolution=---&resolution=FIXED&resolution=INVALID&resolution=WONTFIX&resolution=WORKSFORME&resolution=NON%20REPRODUCIBLE&version=RPB%2016.06" target="_blank">DragonBoard 410c</a> |
|
||||||
|
|
||||||
|
[Report a bug](Report-a-bug.md)
|
||||||
|
|
||||||
|
## Current Issues
|
||||||
|
|
||||||
|
These lists group all **current and unfixed bugs** into their respective categories. Basic bug summaries and descriptions are available on Bugzilla, links to each full lists of bugs are available for convenience and quick reference.
|
||||||
|
|
||||||
|
| Enterprise | Known Issues |
|
||||||
|
|:-----------|:---|
|
||||||
|
| Cello/Overdrive | <a href="https://bugs.linaro.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=IN_PROGRESS&component=Enterprise&list_id=10083&product=Reference%20Platforms&query_format=advanced&rep_platform=Cello&rep_platform=Overdrive&resolution=---&target_milestone=16.06" target="_blank">(Full List)</a> |
|
||||||
|
| APM/HP-m400 | <a href="https://bugs.linaro.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=IN_PROGRESS&component=Enterprise&list_id=10077&product=Reference%20Platforms&query_format=advanced&rep_platform=APM%20Mustang&rep_platform=HP-m400&target_milestone=16.06" target="_blank">(Full List)</a> |
|
||||||
|
| D02 | <a href="https://bugs.linaro.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=IN_PROGRESS&component=Enterprise&list_id=10078&product=Reference%20Platforms&query_format=advanced&rep_platform=D02&target_milestone=16.06" target="_blank">(Full List)</a> |
|
||||||
|
| D03 | <a href="https://bugs.linaro.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=IN_PROGRESS&component=Enterprise&list_id=10079&product=Reference%20Platforms&query_format=advanced&rep_platform=D03&target_milestone=16.06" target="_blank">(Full List)</a> |
|
||||||
|
| Qualcomm QDF2432 Server Development Platform | <a href="https://bugs.linaro.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=IN_PROGRESS&component=Enterprise&list_id=10080&product=Reference%20Platforms&query_format=advanced&rep_platform=Q2432LZB&target_milestone=16.06" target="_blank">(Full List)</a> |
|
||||||
|
| ThunderX | <a href="https://bugs.linaro.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=IN_PROGRESS&component=Enterprise&list_id=10081&product=Reference%20Platforms&query_format=advanced&rep_platform=ThunderX&target_milestone=16.06" target="_blank">(Full List)</a> |
|
||||||
|
|
||||||
|
[Report a bug](Report-a-bug.md)
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
| Consumer | Known Issues |
|
||||||
|
|:-----------|:---|
|
||||||
|
| HiKey | <a href="https://bugs.96boards.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=IN_PROGRESS&classification=Consumer%20Edition%20Boards&known_name=HiKey%20RPB%2016.06&list_id=2378&product=HiKey&query_based_on=HiKey%20RPB%2016.06&query_format=advanced&target_milestone=Reference%20Software%20Platform%20-%2016.06">(Full List)</a> |
|
||||||
|
| DragonBoard 410c | <a href="https://bugs.96boards.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=CONFIRMED&bug_status=IN_PROGRESS&classification=Consumer%20Edition%20Boards&component=Bootloader%20%2F%20Firmware&component=Documentation&component=Kernel&component=OpenEmbedded%20%2F%20Yocto&component=Tools%20%2F%20Installer&component=Ubuntu%20%2F%20Debian&known_name=HiKey%20RPB%2016.06&list_id=2465&product=Dragonboard%20410c&query_based_on=HiKey%20RPB%2016.06&query_format=advanced&target_milestone=Reference%20Software%20Platform%20-%2016.06" target="_blank">(Full List)</a> |
|
||||||
|
|
||||||
|
[Report a bug](Report-a-bug.md)
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
| Bug Legend | |
|
||||||
|
|:-----:|:-------|
|
||||||
|
| CONFIRMED | If a bug can be reproduced, a member from the 96Boards, Linaro or QA team will change its status from **UNCONFIRMED** to **CONFIRMED** |
|
||||||
|
| IN_PROGRESS | This bug is currently being worked on by either the 96Boards, Linaro, or QA team |
|
||||||
|
| RESOLVED | Development is finished with a bug. Please [click here](https://wiki.documentfoundation.org/QA/Bugzilla/Fields/Status/RESOLVED) for information on sub-states |
|
||||||
|
| VERIFIED | A team has VERIFIED a working solution for a bug |
|
||||||
|
|
||||||
|
***
|
|
@ -0,0 +1,8 @@
|
||||||
|
# Reference Software Platform - 16.06
|
||||||
|
|
||||||
|
[RPB 16.06 Highlights](Highlights.md) | [RPB 16.06 Known Issues](Known-Issues.md)
|
||||||
|
|
||||||
|
## Choose your Hardware
|
||||||
|
|
||||||
|
- [HiKey](ConsumerEdition/HiKey/README.md)
|
||||||
|
- [DragonBoard™ 410c](ConsumerEdition/DragonBoard-410c/README.md)
|
21
Reference-Platform/Platforms/Consumer/README.md
Normal file
21
Reference-Platform/Platforms/Consumer/README.md
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
# Consumer Reference Platform - Documentation
|
||||||
|
|
||||||
|
A comprehensive guide to using the Consumer Reference Platform. This guide is written by the Linaro team with community contributions and links to third-party content.
|
||||||
|
|
||||||
|
## Contents
|
||||||
|
|
||||||
|
- [Getting Started](GettingStarted/README.md)
|
||||||
|
- Learn more about the Consumer Reference Platform, this is an ideal place to start.
|
||||||
|
- [Installation](Installation/README.md)
|
||||||
|
- Installation and build instructions for a variety of your Reference Platform components
|
||||||
|
- [Downloads](Downloads/README.md)
|
||||||
|
- Skip straight to your pre-built Reference Platform downloads
|
||||||
|
- [Support](Support/README.md)
|
||||||
|
- From bug reports and current issues, to forum access and other useful resources, we want to help you find answers
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
#### Resources
|
||||||
|
|
||||||
|
- [Previous Releases](PreviousReleases/README.md)
|
||||||
|
- [Document Contribution Policy](../../../ContributionPolicy.md)
|
0
Reference-Platform/Platforms/Consumer/Support/README.md
Normal file
0
Reference-Platform/Platforms/Consumer/Support/README.md
Normal file
15
Reference-Platform/Platforms/Enterprise.md
Normal file
15
Reference-Platform/Platforms/Enterprise.md
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
# Enterprise Reference Platform
|
||||||
|
|
||||||
|
The enterprise reference platform is targeted to accelerate the high powered ARMv8 servers in both datacenter and cloud vertical markets. Industry standard firmware (SBBR and SBSA) and a unified Linux kernel are provided for all the supported platforms, simplifying software maintenance and deployment. The high level components such as Openstack, Ceph, Hadoop, and KVM are rigorously validated for each distribution. The enterprise software stack provides two builds based on Debian and Centos. The goal is to help bridge the gap between older technology present in today’s distributions and the latest ARM server optimizations. For more information and support please visit the [ERP forum](https://discuss.linaro.org/c/erp).
|
||||||
|
|
||||||
|
**Features:**
|
||||||
|
|
||||||
|
- Unified Linux Kernel
|
||||||
|
- Open Boot Firmware
|
||||||
|
- Compliant with ARM SBSA and SBBR specifications
|
||||||
|
- Debian and Centos Network Installers
|
||||||
|
- Openstack and Ceph Reference Deployments
|
||||||
|
- Built for Big Data Workloads
|
||||||
|
|
||||||
|
***
|
||||||
|
|
|
@ -0,0 +1,669 @@
|
||||||
|
# Big Data
|
||||||
|
|
||||||
|
This file provides all the instructions required to install Big Data components - Hadoop, Spark and Hive
|
||||||
|
|
||||||
|
# Big Data packages
|
||||||
|
|
||||||
|
The following Big data components are built as part of Linaro's Reference Architecture
|
||||||
|
|
||||||
|
* Hadoop 2.7.2
|
||||||
|
* Spark 2.0
|
||||||
|
* Hive 2.0.1
|
||||||
|
|
||||||
|
These components were built using Apache BigTop 1.1 and uses ODPi's code base.
|
||||||
|
|
||||||
|
|
||||||
|
# About ODPi
|
||||||
|
|
||||||
|
Check out the website https://www.odpi.org/
|
||||||
|
|
||||||
|
# Prerequisites
|
||||||
|
|
||||||
|
Java 8 (e.g. openjdk-8-jre) installed
|
||||||
|
|
||||||
|
# Linaro Repo
|
||||||
|
|
||||||
|
The package is available at the following repo:
|
||||||
|
|
||||||
|
Debian Jessie - http://repo.linaro.org/debian/erp-16.12-stable/
|
||||||
|
CentOS 7 - http://repo.linaro.org/rpm/linaro-overlay/centos-7/repo
|
||||||
|
|
||||||
|
# Installation
|
||||||
|
|
||||||
|
## For Ubuntu
|
||||||
|
|
||||||
|
Add to repo source list (not required if you are using the installer from the Reference Platform):
|
||||||
|
|
||||||
|
$ echo "deb http://repo.linaro.org/debian/erp-16.12-stable/ jessie main" | sudo tee /etc/apt/sources.list.d/linaro-overlay-repo.list
|
||||||
|
|
||||||
|
|
||||||
|
Update the source list and install the dependencies:
|
||||||
|
|
||||||
|
$ sudo apt-get update
|
||||||
|
$ sudo apt-get build-dep build-essential
|
||||||
|
|
||||||
|
|
||||||
|
Check Java version
|
||||||
|
|
||||||
|
java -version
|
||||||
|
|
||||||
|
This should print out OpenJDK8.
|
||||||
|
|
||||||
|
Install Hadoop, Spark and Hive
|
||||||
|
|
||||||
|
$ sudo apt-get install -ft jessie bigtop-tomcat bigtop-utils hadoop* spark-core zookeeper ^hive-* hbase oozie
|
||||||
|
|
||||||
|
## For Centos:
|
||||||
|
|
||||||
|
Add to repo source list (not required if you are using the installer from the Reference Platform):
|
||||||
|
|
||||||
|
$ sudo wget http://repo.linaro.org/rpm/linaro-staging/centos-7/linaro-staging.repo -O /etc/yum.repos.d/linaro-overlay.repo
|
||||||
|
|
||||||
|
Update the source list and install the dependencies
|
||||||
|
|
||||||
|
$ sudo yum update
|
||||||
|
$ sudo yum -y install openssh-server openssh-clients java-1.8.0-openjdk*
|
||||||
|
|
||||||
|
|
||||||
|
Install Hadoop, Spark and Hive
|
||||||
|
|
||||||
|
$ sudo yum install -y hadoop* spark* hive*
|
||||||
|
|
||||||
|
# Verifying Hadoop Installation
|
||||||
|
|
||||||
|
Packages would get installed in /usr/lib
|
||||||
|
|
||||||
|
Type hadoop to check if hadoop is installed.
|
||||||
|
|
||||||
|
$ hadoop
|
||||||
|
|
||||||
|
And you should see the following:
|
||||||
|
|
||||||
|
"linaro@debian:~$ hadoop Usage: hadoop [--config confdir] COMMAND where COMMAND is one of:
|
||||||
|
|
||||||
|
fs run a generic filesystem user client version print the version jar <jar> run a jar file checknative [-a|-h] check native hadoop and compression libraries availability distcp <srcurl> <desturl> copy file or directories recursively archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive classpath prints the class path needed to get the credential interact with credential providers
|
||||||
|
Hadoop jar and the required libraries
|
||||||
|
daemonlog get/set the log level for each daemon trace view and modify Hadoop tracing settings
|
||||||
|
or CLASSNAME run the class named CLASSNAME
|
||||||
|
|
||||||
|
Most commands print help when invoked w/o parameters. "
|
||||||
|
|
||||||
|
# Setup, Configuration and Running Hadoop
|
||||||
|
|
||||||
|
## Add Hadoop User
|
||||||
|
|
||||||
|
We need to create a dedicated user (hduser) for running Hadoop. This user needs to be added to hadoop user group:
|
||||||
|
|
||||||
|
$ sudo adduser hduser -G hadoop
|
||||||
|
|
||||||
|
give a password for hduser
|
||||||
|
|
||||||
|
$ sudo passwd hduser
|
||||||
|
|
||||||
|
Add hduser to sudoers list:
|
||||||
|
|
||||||
|
On Debian:
|
||||||
|
|
||||||
|
$ sudo adduser hduser sudo
|
||||||
|
|
||||||
|
On CentOS:
|
||||||
|
|
||||||
|
$ sudo usermod -G wheel hduser
|
||||||
|
|
||||||
|
Switch to hduser
|
||||||
|
|
||||||
|
$ su - hduser
|
||||||
|
|
||||||
|
Generate ssh key for hduser
|
||||||
|
|
||||||
|
$ ssh-keygen -t rsa -P ""
|
||||||
|
|
||||||
|
Press <enter> to leave to default file name.
|
||||||
|
Enable ssh access to local machine
|
||||||
|
|
||||||
|
$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
|
||||||
|
$ chmod 600 $HOME/.ssh/authorized_keys
|
||||||
|
$ chmod 700 $HOME/.ssh
|
||||||
|
|
||||||
|
Test ssh setup
|
||||||
|
|
||||||
|
$ ssh localhost
|
||||||
|
$ exit
|
||||||
|
|
||||||
|
## Disabling IPv6
|
||||||
|
|
||||||
|
$ sudo vi /etc/sysctl.conf
|
||||||
|
|
||||||
|
add the below lines and save
|
||||||
|
|
||||||
|
net.ipv6.conf.all.disable_ipv6 = 1
|
||||||
|
net.ipv6.conf.default.disable_ipv6 = 1
|
||||||
|
net.ipv6.conf.lo.disable_ipv6 = 1
|
||||||
|
|
||||||
|
Prefer IPv4 on Hadoop:
|
||||||
|
|
||||||
|
$ sudo vi /etc/hadoop/conf/hadoop-env.sh
|
||||||
|
|
||||||
|
uncomment line
|
||||||
|
|
||||||
|
export HADOOP_OPTS=-Djava.net.preferIPV4stack=true
|
||||||
|
|
||||||
|
Run sysctl to apply the changes:
|
||||||
|
|
||||||
|
$ sudo sysctl -p
|
||||||
|
|
||||||
|
## Configuring the app environment
|
||||||
|
|
||||||
|
Back to the system, we need to configure the app environment by following steps:
|
||||||
|
|
||||||
|
$ sudo mkdir -p /app/hadoop/tmp
|
||||||
|
$ sudo chown hduser:hadoop /app/hadoop/tmp
|
||||||
|
$ sudo chmod 750 /app/hadoop/tmp
|
||||||
|
$ sudo chown hduser:hadoop /usr/lib/hadoop
|
||||||
|
$ sudo chmod 750 /usr/lib/hadoop
|
||||||
|
|
||||||
|
## Setting up Environment Variables
|
||||||
|
|
||||||
|
Follow the below steps to setup Environment Variables in bash file :
|
||||||
|
|
||||||
|
$ vi .bashrc
|
||||||
|
|
||||||
|
Add the following to the end and save:
|
||||||
|
|
||||||
|
export HADOOP_HOME=/usr/lib/hadoop
|
||||||
|
export HADOOP_PREFIX=$HADOOP_HOME
|
||||||
|
export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib/native"
|
||||||
|
export HADOOP_LIBEXEC_DIR=/usr/lib/hadoop/libexec
|
||||||
|
export HADOOP_CONF_DIR=/etc/hadoop/conf
|
||||||
|
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
|
||||||
|
export HADOOP_COMMON_HOME=$HADOOP_HOME
|
||||||
|
export HADOOP_MAPRED_HOME=/usr/lib/hadoop-mapreduce
|
||||||
|
export HADOOP_HDFS_HOME=/usr/lib/hadoop-hdfs
|
||||||
|
export YARN_HOME=/usr/lib/hadoop-yarn
|
||||||
|
export HADOOP_YARN_HOME=/usr/lib/hadoop-yarn/
|
||||||
|
export HADOOP_USER_NAME=hdfs
|
||||||
|
export CLASSPATH=$CLASSPATH:.
|
||||||
|
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/hadoop-common-2.7.2.jar:$HADOOP_HOME/client/hadoop-hdfs-2.7.2.jar:$HADOOP_HOME/hadoop-auth-2.7.2.jar:/usr/lib/hadoop-mapreduce/*:/usr/lib/hive/lib/*:/usr/lib/hadoop/lib/*:
|
||||||
|
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
|
||||||
|
export PATH=/usr/lib/hadoop/libexec:/etc/hadoop/conf:$HADOOP_HOME/bin/:$PATH
|
||||||
|
|
||||||
|
$ source .bashrc
|
||||||
|
|
||||||
|
## Modifying config files
|
||||||
|
|
||||||
|
### core-site.xml
|
||||||
|
|
||||||
|
$ sudo vi /etc/hadoop/conf/core-site.xml
|
||||||
|
|
||||||
|
And add/modify the following settings: Look for property with fs.defaultFS and modify as below:
|
||||||
|
|
||||||
|
<property>
|
||||||
|
<name>fs.default.name</name>
|
||||||
|
<value>hdfs://localhost:54310</value>
|
||||||
|
<description>The name of the default file system. A URI whose
|
||||||
|
scheme and authority determine the FileSystem implementation. The
|
||||||
|
uri's scheme determines the config property (fs.SCHEME.impl) naming
|
||||||
|
the FileSystem implementation class. The uri's authority is used to
|
||||||
|
determine the host, port, etc. for a filesystem.
|
||||||
|
</description>
|
||||||
|
</property>
|
||||||
|
|
||||||
|
Add this to the bottom before tag: "</configuration>"
|
||||||
|
|
||||||
|
<property>
|
||||||
|
<name>hadoop.tmp.dir</name>
|
||||||
|
<value>/app/hadoop/tmp</value>
|
||||||
|
<description>A base for other temporary directories.</description>
|
||||||
|
</property>
|
||||||
|
|
||||||
|
### mapred-site.xml
|
||||||
|
|
||||||
|
$ sudo vi /etc/hadoop/conf/mapred-site.xml
|
||||||
|
|
||||||
|
Modify existing properties as follows: Look for property tag with as mapred.job.tracker and modify as below:
|
||||||
|
|
||||||
|
<property>
|
||||||
|
<name>mapred.job.tracker</name>
|
||||||
|
<value>localhost:54311</value>
|
||||||
|
<description>The host and port that the MapReduce job tracker runs
|
||||||
|
at. If "local", then jobs are run in-process as a single map
|
||||||
|
and reduce task.
|
||||||
|
</description>
|
||||||
|
</property>
|
||||||
|
|
||||||
|
### hdfs-site.xml
|
||||||
|
|
||||||
|
$ sudo vi /etc/hadoop/conf/hdfs-site.xml
|
||||||
|
|
||||||
|
Modify existing property as below:
|
||||||
|
|
||||||
|
<property>
|
||||||
|
<name>dfs.replication</name>
|
||||||
|
<value>1</value>
|
||||||
|
<description>Default block replication. The actual number of replications can be specified when the file is created. The default is used if replication is not specified in create time.
|
||||||
|
</description>
|
||||||
|
</property>
|
||||||
|
|
||||||
|
|
||||||
|
Make sure the following properties are set correctly as below in hdfs-site.xml
|
||||||
|
|
||||||
|
<property>
|
||||||
|
<name>hadoop.tmp.dir</name>
|
||||||
|
<value>/var/lib/hadoop-hdfs/cache/${user.name}</value>
|
||||||
|
</property>
|
||||||
|
|
||||||
|
|
||||||
|
<property>
|
||||||
|
<name>dfs.namenode.name.dir</name>
|
||||||
|
<value>/var/lib/hadoop-hdfs/cache/${user.name}/dfs/name</value>
|
||||||
|
</property>
|
||||||
|
|
||||||
|
<property>
|
||||||
|
<name>dfs.namenode.checkpoint.dir</name>
|
||||||
|
<value>/var/lib/hadoop-hdfs/cache/${user.name}/dfs/namesecondary</value>
|
||||||
|
</property>
|
||||||
|
|
||||||
|
<property>
|
||||||
|
<name>dfs.datanode.data.dir</name>
|
||||||
|
<value>/var/lib/hadoop-hdfs/cache/${user.name}/dfs/data</value>
|
||||||
|
</property>
|
||||||
|
|
||||||
|
|
||||||
|
Make sure the following properties are also present:
|
||||||
|
|
||||||
|
<property>
|
||||||
|
<name>dfs.name.dir</name>
|
||||||
|
<value>/var/lib/hadoop-hdfs/cache/${user.name}/dfs/nn</value>
|
||||||
|
</property>
|
||||||
|
|
||||||
|
<property>
|
||||||
|
<name>dfs.data.dir</name>
|
||||||
|
<value>/var/lib/hadoop-hdfs/cache/${user.name}/dfs/dn</value>
|
||||||
|
</property>
|
||||||
|
|
||||||
|
|
||||||
|
<property>
|
||||||
|
<name>dfs.permissions.supergroup</name>
|
||||||
|
<value>hadoop</value>
|
||||||
|
</property>
|
||||||
|
|
||||||
|
## Format Namenode
|
||||||
|
|
||||||
|
This step is needed for the first time. Doing it every time will result in loss of content on HDFS.
|
||||||
|
|
||||||
|
$ sudo /etc/init.d/hadoop-hdfs-namenode init
|
||||||
|
|
||||||
|
## Start the YARN daemons
|
||||||
|
|
||||||
|
$ for i in hadoop-hdfs-namenode hadoop-hdfs-datanode ; do sudo service $i start ; done
|
||||||
|
|
||||||
|
$ sudo /etc/init.d/hadoop-yarn-resourcemanager start
|
||||||
|
$ sudo /etc/init.d/hadoop-yarn-nodemanager start
|
||||||
|
|
||||||
|
## Validating Hadoop
|
||||||
|
|
||||||
|
Check if hadoop is running. jps command should list namenode, datanode, yarn resource manager. or use ps aux
|
||||||
|
|
||||||
|
$ sudo jps
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
$ ps aux | grep java
|
||||||
|
|
||||||
|
|
||||||
|
Alternatively, check if yarn managers are running:
|
||||||
|
|
||||||
|
$ sudo /etc/init.d/hadoop-yarn-resourcemanager status
|
||||||
|
$ sudo /etc/init.d/hadoop-yarn-nodemanager status
|
||||||
|
|
||||||
|
You would see like below:
|
||||||
|
|
||||||
|
" ● hadoop-yarn-nodemanager.service - LSB: Hadoop nodemanager
|
||||||
|
Loaded: loaded (/etc/init.d/hadoop-yarn-nodemanager) Active: active (running) since Tue 2015-12-22 18:25:03 UTC; 1h 24min ago CGroup: /system.slice/hadoop-yarn-nodemanager.service └─10366 /usr/lib/jvm/java-1.8.0-openjdk-arm64/bin/java -Dproc_node...
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Dec 22 18:24:57 debian su[10348]: Successful su for yarn by root Dec 22 18:24:57 debian su[10348]: + ??? root:yarn Dec 22 18:24:57 debian su[10348]: pam_unix(su:session): session opened for ...0) Dec 22 18:24:57 debian hadoop-yarn-nodemanager[10305]: starting nodemanager, ... Dec 22 18:24:58 debian su[10348]: pam_unix(su:session): session closed for ...rn Dec 22 18:25:03 debian hadoop-yarn-nodemanager[10305]: Started Hadoop nodeman... "
|
||||||
|
|
||||||
|
## Run teragen, terasort and teravalidate
|
||||||
|
|
||||||
|
$ hadoop jar /usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar teragen 1000000 terainput
|
||||||
|
$ hadoop jar /usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar terasort terainput teraoutput
|
||||||
|
$ hadoop jar /usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar teravalidate -D mapred.reduce.tasks=8 teraoutput teravalidate
|
||||||
|
|
||||||
|
## Run a demo application to verify installation
|
||||||
|
|
||||||
|
$ mkdir in
|
||||||
|
$ cat > in/file << EOFThis is one line
|
||||||
|
This is another one
|
||||||
|
EOF
|
||||||
|
|
||||||
|
Add this directory to HDFS:
|
||||||
|
|
||||||
|
$ hadoop dfs -copyFromLocal in /in
|
||||||
|
|
||||||
|
## Run wordcount example provided
|
||||||
|
|
||||||
|
$ hadoop jar /usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar wordcount /in /out
|
||||||
|
|
||||||
|
Check the output
|
||||||
|
|
||||||
|
$ hadoop dfs -cat /out/*
|
||||||
|
|
||||||
|
## Web Interface
|
||||||
|
|
||||||
|
* http://master:50070/dfshealth.jsp
|
||||||
|
* http://master:8088/cluster
|
||||||
|
* http://master:19888/jobhistory (for Job History Server)
|
||||||
|
|
||||||
|
## Stop the Hadoop Services
|
||||||
|
|
||||||
|
$ sudo /etc/init.d/hadoop-yarn-nodemanager stop
|
||||||
|
$ sudo /etc/init.d/hadoop-yarn-resourcemanager stop
|
||||||
|
$ for i in hadoop-hdfs-namenode hadoop-hdfs-datanode ; do sudo service $i stop; done
|
||||||
|
|
||||||
|
# SPARK
|
||||||
|
|
||||||
|
'NOTE:' Make sure you have followed above steps to set up Hadoop.
|
||||||
|
Change to hduser
|
||||||
|
|
||||||
|
$ su - hduser
|
||||||
|
|
||||||
|
## Configuring Spark
|
||||||
|
|
||||||
|
export HADOOP_HOME=/usr/lib/hadoop
|
||||||
|
export HADOOP_PREFIX=$HADOOP_HOME
|
||||||
|
export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib/native"
|
||||||
|
export HADOOP_LIBEXEC_DIR=/usr/lib/hadoop/libexec
|
||||||
|
export HADOOP_CONF_DIR=/etc/hadoop/conf
|
||||||
|
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
|
||||||
|
export HADOOP_COMMON_HOME=$HADOOP_HOME
|
||||||
|
export HADOOP_MAPRED_HOME=/usr/lib/hadoop-mapreduce
|
||||||
|
export HADOOP_HDFS_HOME=/usr/lib/hadoop-hdfs
|
||||||
|
export YARN_HOME=/usr/lib/hadoop-yarn
|
||||||
|
export HADOOP_YARN_HOME=/usr/lib/hadoop-yarn/
|
||||||
|
export HADOOP_USER_NAME=hdfs
|
||||||
|
export CLASSPATH=$CLASSPATH:.
|
||||||
|
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/hadoop-common-2.7.2.jar:$HADOOP_HOME/client/hadoop-hdfs-2.7.2.jar:$HADOOP_HOME/hadoop-auth-2.7.2.jar:/usr/lib/hadoop-mapreduce/*:/usr/lib/hive/lib/*:/usr/lib/hadoop/lib/*:
|
||||||
|
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
|
||||||
|
export PATH=/usr/lib/hadoop/libexec:/etc/hadoop/conf:$HADOOP_HOME/bin/:$PATH
|
||||||
|
export SPARK_HOME=/usr/lib/spark
|
||||||
|
export PATH=$HADOOP_HOME\bin:$PATH
|
||||||
|
export SPARK_DIST_CLASSPATH=$HADOOP_HOME\bin\hadoop:$CLASSPATH:/usr/lib/hadoop/lib/*:/usr/lib/hadoop/lib/*:/usr/lib/hadoop-mapreduce/*:.
|
||||||
|
export CLASSPATH=$CLASSPATH:/usr/lib/hadoop/lib/*:.
|
||||||
|
|
||||||
|
|
||||||
|
$ source .bashrc
|
||||||
|
|
||||||
|
## Verifying Spark Installation
|
||||||
|
|
||||||
|
$ $SPARK_HOME/bin/spark-shell --master local[*]
|
||||||
|
|
||||||
|
## Running SparkPi Example
|
||||||
|
|
||||||
|
Once Spark is built successfully, try running the following pi example to calculate value of pi. The number at the end of the command is the number of splits. If needed, you can increase this number to stress out the CPU.
|
||||||
|
|
||||||
|
$ $SPARK_HOME/bin/run-example SparkPi 100
|
||||||
|
|
||||||
|
# HIVE
|
||||||
|
|
||||||
|
## Setting up environment for Hive
|
||||||
|
|
||||||
|
You can set up the Hive environment by appending the following lines to ~/.bashrc file:
|
||||||
|
|
||||||
|
export HADOOP_HOME=/usr/lib/hadoop
|
||||||
|
export HADOOP_PREFIX=$HADOOP_HOME
|
||||||
|
export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib/native"
|
||||||
|
export HADOOP_LIBEXEC_DIR=/usr/lib/hadoop/libexec
|
||||||
|
export HADOOP_CONF_DIR=/etc/hadoop/conf
|
||||||
|
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
|
||||||
|
export HADOOP_COMMON_HOME=$HADOOP_HOME
|
||||||
|
export HADOOP_MAPRED_HOME=/usr/lib/hadoop-mapreduce
|
||||||
|
export HADOOP_HDFS_HOME=/usr/lib/hadoop-hdfs
|
||||||
|
export YARN_HOME=/usr/lib/hadoop-yarn
|
||||||
|
export HADOOP_YARN_HOME=/usr/lib/hadoop-yarn/
|
||||||
|
export HADOOP_USER_NAME=hdfs
|
||||||
|
export CLASSPATH=$CLASSPATH:.
|
||||||
|
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/hadoop-common-2.7.2.jar:$HADOOP_HOME/client/hadoop-hdfs-2.7.2.jar:$HADOOP_HOME/hadoop-auth-2.7.2.jar:/usr/lib/hive/lib/*:/usr/lib/hadoop/lib/*:.
|
||||||
|
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
|
||||||
|
export PATH=/usr/lib/hadoop/libexec:/etc/hadoop/conf:$HADOOP_HOME/bin/:$PATH
|
||||||
|
export PATH=$HADOOP_HOME\bin:$PATH
|
||||||
|
export HIVE_HOME=/usr/lib/hive
|
||||||
|
export PATH=$PATH:$HIVE_HOME/bin
|
||||||
|
|
||||||
|
The following command is used to execute ~/.bashrc file.
|
||||||
|
|
||||||
|
$ source ~/.bashrc
|
||||||
|
|
||||||
|
## Configuring hive
|
||||||
|
|
||||||
|
To configure Hive with Hadoop, you need to edit the hive-env.sh file, which is placed in the $HIVE_HOME/conf directory. The following commands redirect to Hive config folder and copy the template file:
|
||||||
|
|
||||||
|
$ cd $HIVE_HOME/conf
|
||||||
|
$ sudo cp hive-env.sh.template hive-env.sh
|
||||||
|
|
||||||
|
Hive installation is completed successfully. Now you require an external database server to configure Metastore. We use Apache Derby database.
|
||||||
|
|
||||||
|
## Downloading and Installing Apache Derby
|
||||||
|
|
||||||
|
Follow the steps given below to download and install Apache Derby:
|
||||||
|
|
||||||
|
## Downloading Apache Derby
|
||||||
|
|
||||||
|
The following command is used to download Apache Derby. It takes some time to download.
|
||||||
|
|
||||||
|
$ cd ~
|
||||||
|
$ wget http://archive.apache.org/dist/db/derby/db-derby-10.4.2.0/db-derby-10.4.2.0-bin.tar.gz
|
||||||
|
|
||||||
|
|
||||||
|
The following command is used to verify the download:
|
||||||
|
|
||||||
|
$ ls
|
||||||
|
|
||||||
|
On successful download, you get to see the following response:
|
||||||
|
|
||||||
|
db-derby-10.4.2.0-bin.tar.gz
|
||||||
|
|
||||||
|
## Extracting and verifying Derby archive
|
||||||
|
|
||||||
|
The following commands are used for extracting and verifying the Derby archive:
|
||||||
|
|
||||||
|
$ tar zxvf db-derby-10.4.2.0-bin.tar.gz
|
||||||
|
$ ls
|
||||||
|
|
||||||
|
|
||||||
|
On successful download, you get to see the following response:
|
||||||
|
|
||||||
|
db-derby-10.4.2.0-bin
|
||||||
|
db-derby-10.4.2.0-bin.tar.gz
|
||||||
|
|
||||||
|
Copy the files from the extracted directory to the /usr/local/derby directory:
|
||||||
|
|
||||||
|
$ sudo mv db-derby-10.4.2.0-bin /usr/local/derby
|
||||||
|
|
||||||
|
## Setting up Environment for Derby
|
||||||
|
|
||||||
|
Set up the Derby environment by appending the following lines to ~/.bashrc file:
|
||||||
|
|
||||||
|
$ vi .bashrc
|
||||||
|
|
||||||
|
export DERBY_HOME=/usr/local/derby
|
||||||
|
export PATH=$PATH:$DERBY_HOME/bin
|
||||||
|
export CLASSPATH=$CLASSPATH:$DERBY_HOME/lib/derby.jar:$DERBY_HOME/lib/derbytools.jar
|
||||||
|
|
||||||
|
The following command is used to execute ~/.bashrc file:
|
||||||
|
|
||||||
|
export DERBY_HOME=/usr/local/derby
|
||||||
|
export PATH=$PATH:$DERBY_HOME/bin
|
||||||
|
export CLASSPATH=$CLASSPATH:$DERBY_HOME/lib/derby.jar:$DERBY_HOME/lib/derbytools.jar
|
||||||
|
|
||||||
|
$ source ~/.bashrc
|
||||||
|
|
||||||
|
### Create a directory to store Metastore
|
||||||
|
|
||||||
|
Create a directory named data in $DERBY_HOME directory to store Metastore data.
|
||||||
|
|
||||||
|
$ sudo mkdir $DERBY_HOME/data
|
||||||
|
|
||||||
|
Derby installation and environmental setup is now complete.
|
||||||
|
|
||||||
|
## Configuring Metastore of Hive
|
||||||
|
|
||||||
|
Configuring Metastore means specifying to Hive where the database is stored. You can do this by editing the hive-site.xml file, which is in the $HIVE_HOME/conf directory. First of all, copy the template file using the following command:
|
||||||
|
|
||||||
|
$ cd $HIVE_HOME/conf
|
||||||
|
$ sudo cp hive-default.xml.template hive-site.xml
|
||||||
|
|
||||||
|
Edit hive-site.xml and find entry 'javax.jdo.option.ConnectionURL' and modifiy the value as below:
|
||||||
|
|
||||||
|
<name>hive.exec.scratchdir</name>
|
||||||
|
<value>/tmp/hive-${user.name}</value>
|
||||||
|
|
||||||
|
<name>hive.exec.local.scratchdir</name>
|
||||||
|
<value>/tmp/${user.name}</value>
|
||||||
|
|
||||||
|
<name>hive.downloaded.resources.dir</name>
|
||||||
|
<value>/tmp/${user.name}_resources</value>
|
||||||
|
|
||||||
|
<name>hive.scratch.dir.permission</name>
|
||||||
|
<value>733</value>
|
||||||
|
|
||||||
|
and change the values for the below properties like below:
|
||||||
|
|
||||||
|
<property>
|
||||||
|
<name>javax.jdo.option.ConnectionURL</name>
|
||||||
|
<value>jdbc:derby:;databaseName=/usr/lib/hive/tmp/metastore_db;create=true </value>
|
||||||
|
<description>JDBC connect string for a JDBC metastore </description>
|
||||||
|
</property>
|
||||||
|
|
||||||
|
Create a file named jpox.properties and add the following lines into it:
|
||||||
|
|
||||||
|
$ sudo vi jpox.properties
|
||||||
|
|
||||||
|
|
||||||
|
javax.jdo.PersistenceManagerFactoryClass =
|
||||||
|
|
||||||
|
org.jpox.PersistenceManagerFactoryImpl
|
||||||
|
org.jpox.autoCreateSchema = false
|
||||||
|
org.jpox.validateTables = false
|
||||||
|
org.jpox.validateColumns = false
|
||||||
|
org.jpox.validateConstraints = false
|
||||||
|
org.jpox.storeManagerType = rdbms
|
||||||
|
org.jpox.autoCreateSchema = true
|
||||||
|
org.jpox.autoStartMechanismMode = checked
|
||||||
|
org.jpox.transactionIsolation = read_committed
|
||||||
|
javax.jdo.option.DetachAllOnCommit = true
|
||||||
|
javax.jdo.option.NontransactionalRead = true
|
||||||
|
javax.jdo.option.ConnectionDriverName = org.apache.derby.jdbc.ClientDriver
|
||||||
|
javax.jdo.option.ConnectionURL = jdbc:derby://hadoop1:1527/metastore_db;create = true
|
||||||
|
javax.jdo.option.ConnectionUserName = APP
|
||||||
|
javax.jdo.option.ConnectionPassword = mine
|
||||||
|
|
||||||
|
## Verifying Hive Installation
|
||||||
|
|
||||||
|
Before running Hive, you need to create the /tmp folder and a separate Hive folder in HDFS. Here, we use the /user/hive/warehouse folder. You need to set write permission for these newly created folders as shown below:
|
||||||
|
|
||||||
|
Make sure you are using hduser account. If not switch to hduser.
|
||||||
|
|
||||||
|
$ su - hduser
|
||||||
|
|
||||||
|
Now set them in HDFS before verifying Hive. Use the following commands:
|
||||||
|
|
||||||
|
$ $HADOOP_HOME/bin/hadoop fs -mkdir /tmp
|
||||||
|
$ $HADOOP_HOME/bin/hadoop fs -mkdir -p /user/hive/warehouse
|
||||||
|
$ $HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp
|
||||||
|
$ $HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse
|
||||||
|
|
||||||
|
'NOTE:' Before invoking hive make sure you have followed above instructions in installing and setting up Hadoop. Make sure hadoop services are running.
|
||||||
|
|
||||||
|
Run Hive metastore service
|
||||||
|
|
||||||
|
$ sudo service hive-metastore start
|
||||||
|
$ sudo $HIVE_HOME/bin/metatool -listFSRoot
|
||||||
|
|
||||||
|
Create tmp directory to run Hive under.
|
||||||
|
|
||||||
|
$ cd $HIVE_HOME
|
||||||
|
$ sudo mkdir tmp
|
||||||
|
$ sudo chown hduser tmp
|
||||||
|
$ cd tmp
|
||||||
|
|
||||||
|
The following commands are used to verify Hive installation:
|
||||||
|
|
||||||
|
$ $HIVE_HOME/bin/schematool -dbType derby -initSchema
|
||||||
|
$ hive -hiveconf hive.root.logger=DEBUG,console
|
||||||
|
|
||||||
|
On successful installation of Hive, you get to see the following response:
|
||||||
|
|
||||||
|
Logging initialized using configuration in jar:file:/home/hadoop/hive-0.9.0/lib/hive-common-0.9.0.jar!/hive-log4j.properties
|
||||||
|
Hive history file=/tmp/hadoop/hive_job_log_hadoop_201312121621_1494929084.txt
|
||||||
|
………………….
|
||||||
|
hive>
|
||||||
|
|
||||||
|
The following sample command is executed to display all the tables:
|
||||||
|
|
||||||
|
hive> show tables;
|
||||||
|
OK
|
||||||
|
Time taken: 2.798 seconds
|
||||||
|
hive>
|
||||||
|
|
||||||
|
|
||||||
|
# Errors / Issues and Resolutions
|
||||||
|
|
||||||
|
* If after creating hduser, trying to switch to hduser ( || $ su - hduser || ) gave the following error:
|
||||||
|
|
||||||
|
/* ‘No directory, logging in with HOME=/ #
|
||||||
|
|
||||||
|
Then do the following:
|
||||||
|
Exit to root user delete the hduser and recreate it.
|
||||||
|
|
||||||
|
$ exit
|
||||||
|
$ sudo userdel hduser
|
||||||
|
$ sudo useradd -d /home/hduser -G hadoop -m hduser
|
||||||
|
|
||||||
|
* If Teragen, TeraSort and TeraValidate error out with 'permission denied' exception. The following steps can be done:
|
||||||
|
|
||||||
|
$ sudo groupadd supergroup
|
||||||
|
$ sudo usermod -g supergroup hduser
|
||||||
|
|
||||||
|
* If for some weird reason, if you notice the config files (core-site.xml, hdfs-site.xml, etc) are empty.
|
||||||
|
|
||||||
|
You may have delete all the packages and re-run the steps of installation from scratch.
|
||||||
|
|
||||||
|
/* Error while formatting namenode With the following command:
|
||||||
|
|
||||||
|
$ sudo /etc/init.d/hadoop-hdfs-namenode init
|
||||||
|
|
||||||
|
* If you see the following error: WARN net.DNS: Unable to determine local hostname -falling back to "localhost" java.net.UnknownHostException: centos: centos at java.net.InetAddress.getLocalHost(InetAddress.java:1496) at org.apache.hadoop.net.DNS.resolveLocalHostname(DNS.java:264) at org.apache.hadoop.net.DNS.(DNS.java:57)
|
||||||
|
|
||||||
|
Something is wrong in the network setup. Please check /etc/hosts file.
|
||||||
|
|
||||||
|
$ sudo vi /etc/hosts
|
||||||
|
|
||||||
|
The hosts file should like below:
|
||||||
|
|
||||||
|
127.0.0.1 <hostname> localhost localhost.localdomain #hostname should have the output of $ hostname
|
||||||
|
|
||||||
|
::1 localhost
|
||||||
|
|
||||||
|
Also try the following steps:
|
||||||
|
|
||||||
|
$ sudo rm -Rf /app/hadoop/tmp
|
||||||
|
$ hadoop namenode -format
|
||||||
|
|
||||||
|
* If you see the below error with Hive while doing 'schematool -initSchema -dbType derby':
|
||||||
|
|
||||||
|
'Error:' FUNCTION 'NUCLEUS_ASCII' already exists. (state=X0Y68,code=30000) org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !! Underlying cause: java.io.IOException : Schema script failed, errorcode 2 Use --verbose for detailed stacktrace. *** schemaTool failed ***
|
||||||
|
|
||||||
|
Following actions need to be taken to resolve:
|
||||||
|
|
||||||
|
$ cd $HIVE_HOME/tmp
|
||||||
|
mv metastore_db metastore_db.tmp
|
||||||
|
../bin/schematool -initSchema -dbType derby
|
||||||
|
|
||||||
|
|
||||||
|
* If you get the following error with Hive:
|
||||||
|
|
||||||
|
Error: Cannot get a connection, pool error Could not create a validated object, cause: A read-only user or a user in a read-only database is not permitted to disable read-only mode on a connection. org.datanucleus.exceptions.NucleusDataStoreException: Cannot get a connection, pool error Could not create a validated object, cause: A read-only user or a user in a read-only database is not permitted to disable read-only mode on a connection.
|
||||||
|
|
||||||
|
Resolution is: delete all .lck files in $HIVE_HOME/tmp directory
|
|
@ -0,0 +1,216 @@
|
||||||
|
## Installing CentOS 7 - Reference Platform Enterprise
|
||||||
|
|
||||||
|
This guide is not to be a replacement of the official CentOS Installer documentation, but instead be a quick walkthrough for the network installer. You can find the original documentation at [https://wiki.centos.org/SpecialInterestGroup/AltArch/AArch64](https://wiki.centos.org/SpecialInterestGroup/AltArch/AArch64)
|
||||||
|
|
||||||
|
### Setting up the TFTP server
|
||||||
|
|
||||||
|
Back to your dnsmasq server (check [this link](DHCP-TFTP-Server-UEFI.md) for instructions on how to setup your own TFTP/DCHP server), download the required CentOS 7 installer files at your tftp-root directory. In this example, this directory is configured to `/srv/tftp`.
|
||||||
|
|
||||||
|
Downloading required Grub 2 UEFI files:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sudo su -
|
||||||
|
cd /srv/tftp/
|
||||||
|
wget http://mirror.centos.org/altarch/7/os/aarch64/EFI/BOOT/BOOTAA64.EFI
|
||||||
|
wget http://mirror.centos.org/altarch/7/os/aarch64/EFI/BOOT/grubaa64.efi
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Downloading the CentOS 7 Reference Platform installer (e.g. 16.06 release):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
mkdir /srv/tftp/centos7
|
||||||
|
cd /srv/tftp/centos7
|
||||||
|
wget https://builds.96boards.org/releases/reference-platform/components/centos-installer/16.06/images/pxeboot/vmlinuz
|
||||||
|
wget https://builds.96boards.org/releases/reference-platform/components/centos-installer/16.06/images/pxeboot/initrd.img
|
||||||
|
```
|
||||||
|
|
||||||
|
Creating the Grub 2 config file (`grub.cfg`):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
menuentry 'Install CentOS 7 ARM 64-bit - Reference Platform' --class red --class gnu-linux --class gnu --class os {
|
||||||
|
linux (tftp)/centos7/vmlinuz ip=dhcp inst.stage2=https://builds.96boards.org/releases/reference-platform/components/centos-installer/16.06/ inst.repo=http://mirror.centos.org/altarch/7/os/aarch64/ inst.ks=file:/ks.cfg
|
||||||
|
initrd (tftp)/centos7/initrd.img
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Note:** `inst.ks` is required because of the additional linaro-overlay repository (which contains the reference platform kernel rpm package), which is available inside the `initrd.img`. The `inst.ks` contains only one line, which is used by the installer to fetch and install the right kernel package. The content: `repo --name="linaro-overlay" --baseurl=http://repo.linaro.org/rpm/linaro-overlay/centos-7/repo/`.
|
||||||
|
|
||||||
|
Also check the [RHEL 7](https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/chap-anaconda-boot-options.html) and the [anaconda documentation](https://rhinstaller.github.io/anaconda/boot-options.html) for additional boot options. One example is using **ip=eth1:dhcp** if you want to use the second network interface as default.
|
||||||
|
|
||||||
|
You should now have the following file tree structure:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
/srv/tftp/
|
||||||
|
├── BOOTAA64.EFI
|
||||||
|
├── centos7
|
||||||
|
│ ├── initrd.img
|
||||||
|
│ └── vmlinuz
|
||||||
|
├── grubaa64.efi
|
||||||
|
└── grub.cfg
|
||||||
|
```
|
||||||
|
|
||||||
|
Now just make sure that @/etc/dnsmasq.conf@ is pointing out to the right boot file, like:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
dhcp-boot=BOOTAA64.EFI
|
||||||
|
```
|
||||||
|
|
||||||
|
### Booting the installer
|
||||||
|
|
||||||
|
Now boot your platform of choice, selecting PXE boot when presented by UEFI (make sure to boot with the right network interface, in case more than one is available).
|
||||||
|
|
||||||
|
You should see the following (using AMD Seattle's Overdrive as example):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
NOTICE: BL3-1:
|
||||||
|
NOTICE: BL3-1: Built : 15:14:55, Feb 9 2016
|
||||||
|
INFO: BL3-1: Initializing runtime services
|
||||||
|
INFO: BL3-1: Preparing for EL3 exit to normal world
|
||||||
|
INFO: BL3-1: Next image address = 0x8000e80000
|
||||||
|
INFO: BL3-1: Next image spsr = 0x3c9
|
||||||
|
Boot firmware (version built at 15:18:14 on Feb 9 2016)
|
||||||
|
Version 2.17.1249. Copyright (C) 2016 American Megatrends, Inc.
|
||||||
|
BIOS Date: 02/09/2016 15:15:23 Ver: ROD1001A00
|
||||||
|
Press <DEL> or <ESC> to enter setup.
|
||||||
|
.
|
||||||
|
>>Checking Media Presence......
|
||||||
|
>>Media Present......
|
||||||
|
>>Start PXE over IPv4.
|
||||||
|
Station IP address is 192.168.3.57
|
||||||
|
Server IP address is 192.168.3.1
|
||||||
|
NBP filename is BOOTAA64.EFI
|
||||||
|
NBP filesize is 885736 Bytes
|
||||||
|
>>Checking Media Presence......
|
||||||
|
>>Media Present......
|
||||||
|
Downloading NBP file...
|
||||||
|
Succeed to download NBP file.
|
||||||
|
Fetching Netboot Image
|
||||||
|
```
|
||||||
|
|
||||||
|
At this stage you should be able to see the Grub 2 menu, like:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
Install CentOS 7 ARM 64-bit - Reference Platform
|
||||||
|
.
|
||||||
|
Use the and keys to change the selection.
|
||||||
|
Press 'e' to edit the selected item, or 'c' for a command prompt.
|
||||||
|
```
|
||||||
|
|
||||||
|
Now just hit enter and wait for the kernel and initrd to load, which automatically loads the installer and provides you the installer console menu, so you can finally install CentOS 7.
|
||||||
|
|
||||||
|
You should see the following:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
EFI stub: Booting Linux Kernel...
|
||||||
|
EFI stub: Using DTB from configuration table
|
||||||
|
EFI stub: Exiting boot services and installing virtual address map...
|
||||||
|
[ 0.000000] Booting Linux on physical CPU 0x0
|
||||||
|
[ 0.000000] Initializing cgroup subsys cpuset
|
||||||
|
[ 0.000000] Initializing cgroup subsys cpu
|
||||||
|
[ 0.000000] Initializing cgroup subsys cpuacct
|
||||||
|
[ 0.000000] Linux version 4.4.0-reference.104.aarch64 (buildslave@r2-a19) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Tue Mar 1 20:52:15 UTC 2016
|
||||||
|
[ 0.000000] Boot CPU: AArch64 Processor [411fd072]
|
||||||
|
[ 0.000000] efi: Getting EFI parameters from FDT:
|
||||||
|
[ 0.000000] EFI v2.40 by American Megatrends
|
||||||
|
[ 0.000000] efi: ACPI 2.0=0x83ff1c3000 SMBIOS 3.0=0x83ff347798
|
||||||
|
...
|
||||||
|
Welcome to CentOS Linux 7 (AltArch) dracut-033-359.el7 (Initramfs)!
|
||||||
|
...
|
||||||
|
dracut-initqueue[610]: RTNETLINK answers: File exists
|
||||||
|
dracut-initqueue[610]: % Total % Received % Xferd Average Speed Time Time Time Current
|
||||||
|
dracut-initqueue[610]: Dload Upload Total Spent Left Speed
|
||||||
|
100 287 100 287 0 0 390 0 --:--:-- --:--:-- --:--:-- 389:--:-- --:--:-- 0
|
||||||
|
...
|
||||||
|
Welcome to CentOS Linux 7 (AltArch)!
|
||||||
|
...
|
||||||
|
Starting installer, one moment...
|
||||||
|
anaconda 21.48.22.56-1 for CentOS Linux AltArch 7 started.
|
||||||
|
* installation log files are stored in /tmp during the installation
|
||||||
|
* shell is available on TTY2
|
||||||
|
* if the graphical installation interface fails to start, try again with the
|
||||||
|
inst.text bootoption to start text installation
|
||||||
|
* when reporting a bug add logs from /tmp as separate text/plain attachments
|
||||||
|
21:06:29 X startup failed, falling back to text mode
|
||||||
|
================================================================================
|
||||||
|
================================================================================
|
||||||
|
VNC
|
||||||
|
.
|
||||||
|
X was unable to start on your machine. Would you like to start VNC to connect t
|
||||||
|
o this computer from another computer and perform a graphical installation or co
|
||||||
|
ntinue with a text mode installation?
|
||||||
|
.
|
||||||
|
1) Start VNC
|
||||||
|
.
|
||||||
|
2) Use text mode
|
||||||
|
.
|
||||||
|
Please make your choice from above ['q' to quit | 'c' to continue |
|
||||||
|
'r' to refresh]: 2
|
||||||
|
[anaconda] 1:main* 2:shell 3:log 4:storage-log 5:program-log
|
||||||
|
```
|
||||||
|
|
||||||
|
For the text mode installer, just enter `2` and follow the instructions available in the console.
|
||||||
|
|
||||||
|
Menu items without that are not `[x]` must be set. Enter the menu number associated with the menu in order to configure it.
|
||||||
|
|
||||||
|
### Finishing the installation
|
||||||
|
|
||||||
|
After selecting the install destination, partitioning scheme, root password and users (optional), just enter `b` to proceed with the installation.
|
||||||
|
|
||||||
|
Once the installation is completed, you should be able to simply reboot the system in order to boot into your new CentOS 7 system.
|
||||||
|
|
||||||
|
### Automating the installation with kickstart
|
||||||
|
|
||||||
|
It is possible to fully automate the installer by providing a file called kickstart. The kickstart file is a plain text file, containing keywords that serve as directions for the installation. Check the RHEL 7 [kickstart guide](https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/sect-kickstart-howto.html) for further information about how to create your own kickstart file.
|
||||||
|
|
||||||
|
Kickstart example:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
cmdline
|
||||||
|
url --url="http://mirror.centos.org/altarch/7/os/aarch64/"
|
||||||
|
repo --name="CentOS" --baseurl=http://mirror.centos.org/altarch/7/os/aarch64/
|
||||||
|
repo --name="Updates" --baseurl=http://mirror.centos.org/altarch/7/updates/aarch64/
|
||||||
|
repo --name="linaro-overlay" --baseurl=http://repo.linaro.org/rpm/linaro-overlay/centos-7/repo/
|
||||||
|
lang en_US.UTF-8
|
||||||
|
keyboard us
|
||||||
|
timezone --utc Etc/UTC
|
||||||
|
auth --useshadow --passalgo=sha512
|
||||||
|
rootpw --lock --iscrypted locked
|
||||||
|
firewall --disabled
|
||||||
|
firstboot --disabled
|
||||||
|
selinux --disabled
|
||||||
|
reboot
|
||||||
|
network --bootproto=dhcp --device=eth0 --activate --onboot=on
|
||||||
|
ignoredisk --only-use=sda
|
||||||
|
bootloader --location=mbr
|
||||||
|
clearpart --drives=sda --all --initlabel
|
||||||
|
part /boot/efi --fstype=efi --grow --maxsize=200 --size=20
|
||||||
|
part /boot --fstype=ext4 --size=512
|
||||||
|
part / --fstype=ext4 --size=10240 --grow
|
||||||
|
part swap --size=4000
|
||||||
|
%packages
|
||||||
|
wget
|
||||||
|
net-tools
|
||||||
|
chrony
|
||||||
|
%end
|
||||||
|
%post
|
||||||
|
useradd -m -U -G wheel linaro
|
||||||
|
echo linaro | passwd linaro --stdin
|
||||||
|
%end
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Setting up grub.cfg
|
||||||
|
|
||||||
|
Now back to your tftp server, change the original grub.cfg file adding the location of your kickstart file:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
menuentry 'Install CentOS 7 ARM 64-bit - Reference Platform' --class red --class gnu-linux --class gnu --class os {
|
||||||
|
linux (tftp)/centos7/vmlinuz ip=dhcp inst.stage2=https://builds.96boards.org/releases/reference-platform/components/centos-installer/16.06/ inst.ks=http://people.linaro.org/~ricardo.salveti/centos-ks.cfg
|
||||||
|
initrd (tftp)/centos7/initrd.img
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
In case your system contains more than one network interface, also make sure to add the one to be used via the `ip` argument, like `ip=eth0:dhcp`.
|
||||||
|
|
||||||
|
#### Booting the system
|
||||||
|
|
||||||
|
Now just do a normal PXE boot, and anaconda should automatically load and use the kickstart file provided by grub.cfg. In case there is still a dialog that stops your installation that means not all the installer options are provided by your kickstart file. Get back to official documentation and try to find out what is the missing step.
|
|
@ -0,0 +1,342 @@
|
||||||
|
## Installing Debian "Jessie" 8.5
|
||||||
|
|
||||||
|
This guide is not to be a replacement of the official Debian Installer documentation, but instead be a quick walkthrough for the network installer. You can find the original documentation at [https://www.debian.org/releases/jessie/arm64/index.html.en](https://www.debian.org/releases/jessie/arm64/index.html.en)
|
||||||
|
|
||||||
|
### Debian Installer
|
||||||
|
|
||||||
|
The released debian-installer from Debian Jessie contains a kernel based on 3.16, which doesn't yet provide support for development boards used by the reference software project. For a complete enterprise experience (including support for tip-based kernel with ACPI support and additional platforms), we also build and publish a custom debian installer that incorporates a more recent kernel.
|
||||||
|
|
||||||
|
Our custom installer changes nothing more than the kernel, and you can also find the instructions to build it from source at the end of this document.
|
||||||
|
|
||||||
|
## Loading debian-installer from the network
|
||||||
|
### Setting up the TFTP server
|
||||||
|
|
||||||
|
Back to your dnsmasq server (check [this link](../DHCP-TFTP-Server-UEFI.md) for instructions on how to setup your own TFTP/DCHP server), download the required Debian installer files at your tftp-root directory. In this example, this directory is configured to `/srv/tftp`.
|
||||||
|
|
||||||
|
Since the kernel, initrd and GRUB 2 is part of the debian-installer tarball (`netboot.tar.gz`), that is the only file you will need to download and use.
|
||||||
|
|
||||||
|
#### Downloading debian-installer:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sudo su -
|
||||||
|
cd /srv/tftp/
|
||||||
|
wget https://builds.96boards.org/releases/reference-platform/components/debian-installer/16.06/netboot.tar.gz
|
||||||
|
tar -zxvf netboot.tar.gz
|
||||||
|
```
|
||||||
|
|
||||||
|
You should now have the following file tree structure:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
/srv/tftp/
|
||||||
|
├── debian-installer
|
||||||
|
│ └── arm64
|
||||||
|
│ ├── bootnetaa64.efi
|
||||||
|
│ ├── grub
|
||||||
|
│ │ ├── arm64-efi
|
||||||
|
│ │ │ ├── acpi.mod
|
||||||
|
│ │ │ ├── adler32.mod
|
||||||
|
│ │ │ ├── all_video.mod
|
||||||
|
│ │ │ ├── archelp.mod
|
||||||
|
│ │ │ ├── bfs.mod
|
||||||
|
│ │ │ ├── bitmap.mod
|
||||||
|
│ │ │ ├── bitmap_scale.mod
|
||||||
|
│ │ │ ├── blocklist.mod
|
||||||
|
│ │ │ ├── boot.mod
|
||||||
|
│ │ │ ├── btrfs.mod
|
||||||
|
│ │ │ ├── bufio.mod
|
||||||
|
...
|
||||||
|
│ │ │ ├── xzio.mod
|
||||||
|
│ │ │ └── zfscrypt.mod
|
||||||
|
│ │ ├── font.pf2
|
||||||
|
│ │ └── grub.cfg
|
||||||
|
│ ├── initrd.gz
|
||||||
|
│ └── linux
|
||||||
|
├── netboot.tar.gz
|
||||||
|
└── version.info
|
||||||
|
```
|
||||||
|
|
||||||
|
Now just make sure that `/etc/dnsmasq.conf` is pointing out to the right boot file, like:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
dhcp-boot=debian-installer/arm64/bootnetaa64.efi
|
||||||
|
```
|
||||||
|
## Loading debian-installer from the minimal CD
|
||||||
|
|
||||||
|
Together with the debian-installer netboot files, a minimal ISO is also provided containing the same installer, which can be loaded as normal boot disk media.
|
||||||
|
|
||||||
|
Making a bootable SATA disk / USB stick / microSD card (attention to **/dev/sdX**, make sure that it is your target device first):
|
||||||
|
|
||||||
|
```
|
||||||
|
wget https://builds.96boards.org/releases/reference-platform/components/debian-installer/16.06/mini.iso
|
||||||
|
sudo cp mini.iso /dev/sdX
|
||||||
|
sync
|
||||||
|
```
|
||||||
|
|
||||||
|
Please refer to the [debian-manual](https://www.debian.org/releases/jessie/amd64/ch04s03.html.en) for a more complete guide on creating a CD, SATA disk, USB stick or micro SD with the minimal ISO.
|
||||||
|
|
||||||
|
## Booting the installer
|
||||||
|
|
||||||
|
If you are booting the installer from the network, simply select PXE boot when presented by UEFI (make sure to boot with the right network interface, in case more than one is available). In case you are booting with the minimal ISO via SATA / USB / microSD, simply select the right boot option in UEFI.
|
||||||
|
|
||||||
|
You should see the following (using AMD Seattle's Overdrive as example):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
NOTICE: BL3-1:
|
||||||
|
NOTICE: BL3-1: Built : 18:22:46, Nov 23 2015
|
||||||
|
INFO: BL3-1: Initializing runtime services
|
||||||
|
INFO: BL3-1: Preparing for EL3 exit to normal world
|
||||||
|
INFO: BL3-1: Next image address = 0x8000000000
|
||||||
|
INFO: BL3-1: Next image spsr = 0x3c9
|
||||||
|
Boot firmware (version built at 18:27:24 on Nov 23 2015)
|
||||||
|
Version 2.17.1249. Copyright (C) 2015 American Megatrends, Inc.
|
||||||
|
BIOS Date: 11/23/2015 18:23:09 Ver: ROD0085E00
|
||||||
|
Press <DEL> or <ESC> to enter setup.
|
||||||
|
.
|
||||||
|
>>Checking Media Presence......
|
||||||
|
>>Media Present......
|
||||||
|
>>Start PXE over IPv4.
|
||||||
|
Station IP address is 192.168.3.57
|
||||||
|
Server IP address is 192.168.3.1
|
||||||
|
NBP filename is BOOTAA64.EFI
|
||||||
|
NBP filesize is 885736 Bytes
|
||||||
|
>>Checking Media Presence......
|
||||||
|
>>Media Present......
|
||||||
|
Downloading NBP file...
|
||||||
|
Succeed to download NBP file.
|
||||||
|
Fetching Netboot Image
|
||||||
|
```
|
||||||
|
|
||||||
|
At this stage you should be able to see the Grub 2 menu, like:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
Install
|
||||||
|
Advanced options ...
|
||||||
|
Install with speech synthesis
|
||||||
|
.
|
||||||
|
Use the and keys to change the selection.
|
||||||
|
Press 'e' to edit the selected item, or 'c' for a command prompt.
|
||||||
|
```
|
||||||
|
|
||||||
|
Now just hit enter and wait for the kernel and initrd to load, which automatically loads the installer and provides you the installer console menu, so you can finally install Debian.
|
||||||
|
|
||||||
|
You should see the following:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
EFI stub: Booting Linux Kernel...
|
||||||
|
EFI stub: Using DTB from configuration table
|
||||||
|
EFI stub: Exiting boot services and installing virtual address map...
|
||||||
|
[ 0.355175] ACPI: IORT: Failed to get table, AE_NOT_FOUND
|
||||||
|
[ 0.763784] kvm [1]: error: no compatible GIC node found
|
||||||
|
[ 0.763818] kvm [1]: error initializing Hyp mode: -19
|
||||||
|
[ 0.886298] Failed to find cpu0 device node
|
||||||
|
[ 0.947082] zswap: default zpool zbud not available
|
||||||
|
[ 0.951959] zswap: pool creation failed
|
||||||
|
Starting system log daemon: syslogd, klogd.
|
||||||
|
...
|
||||||
|
┌───────────────────────┤ [!!] Select a language ├────────────────────────┐
|
||||||
|
│ │
|
||||||
|
│ Choose the language to be used for the installation process. The │
|
||||||
|
│ selected language will also be the default language for the installed │
|
||||||
|
│ system. │
|
||||||
|
│ │
|
||||||
|
│ Language: │
|
||||||
|
│ │
|
||||||
|
│ C │
|
||||||
|
│ English │
|
||||||
|
│ │
|
||||||
|
│ <Go Back> │
|
||||||
|
│ │
|
||||||
|
└─────────────────────────────────────────────────────────────────────────┘
|
||||||
|
<Tab> moves; <Space> selects; <Enter> activates buttons
|
||||||
|
```
|
||||||
|
|
||||||
|
### Finishing the installation
|
||||||
|
|
||||||
|
For using the installer, please check the documentation available at [https://www.debian.org/releases/jessie/arm64/ch06.html.en](https://www.debian.org/releases/jessie/arm64/ch06.html.en)
|
||||||
|
|
||||||
|
**NOTE - Cello Only:** In case your mac address is empty (e.g. early boards), you will be required to change your default network mac address in order to proceed with the network install. Please open a shell after booted the installer (the installer offers the shell option at the first menu), and change the mac address as described below. Once changed, simply proceed with the install process.
|
||||||
|
|
||||||
|
```
|
||||||
|
~ # ip link set dev enp1s0 address de:5e:60:e4:6b:1f
|
||||||
|
~ # exit
|
||||||
|
```
|
||||||
|
|
||||||
|
Once the installation is completed, you should be able to simply reboot the system in order to boot your new Debian system.
|
||||||
|
|
||||||
|
**NOTE - Cello Only:** If you had to set a valid mac address during the installer, you will be required to also set the mac address in debian, after your first boot. Please change _/etc/network/interfaces_ and add your mac address again, like below:
|
||||||
|
|
||||||
|
```
|
||||||
|
root@debian:~# cat /etc/network/interfaces
|
||||||
|
...
|
||||||
|
allow-hotplug enp1s0
|
||||||
|
iface enp1s0 inet dhcp
|
||||||
|
hwaddress ether de:5e:60:e4:6b:1f
|
||||||
|
```
|
||||||
|
|
||||||
|
### Automating the installation using preseeding
|
||||||
|
|
||||||
|
Preseeding provides a way to set answers to questions asked during the installation process, without having to manually enter the answers while the installation is running. This makes it possible to fully automate the installation over network, when used together with the debian-installer.
|
||||||
|
|
||||||
|
This document only provides a quick way for you to get started with preseeding. For the complete guide, please check the [Debian GNU/Linux Installation Guide](https://www.debian.org/releases/jessie/arm64/apb.html) and [example-preseed.txt](https://www.debian.org/releases/jessie/example-preseed.txt)
|
||||||
|
|
||||||
|
**Note:** Since we require an external kernel to be installed during the install process, this is done via the `preseed/late_command` argument, so you if you decide to use that command as part of your preseed file, make sure to add the following as part of the multi-line command:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
d-i preseed/late_command string in-target apt-get install -y linux-image-reference-arm64; # here you can add 'in-target foobar' for additional commands
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Creating the preseed file
|
||||||
|
|
||||||
|
Check [example-preseed.txt](https://www.debian.org/releases/jessie/example-preseed.txt) for a wide list of options supported by the Debian Jessie installer. Your file needs to use a similar format, but customized for your own needs.
|
||||||
|
|
||||||
|
Once created, make sure the file gets published into a network address that can be reachable from your target device.
|
||||||
|
|
||||||
|
Preseed example (`preseed.cfg`):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
d-i debian-installer/locale string en_US
|
||||||
|
d-i keyboard-configuration/xkb-keymap select us
|
||||||
|
d-i netcfg/dhcp_timeout string 60
|
||||||
|
d-i netcfg/get_hostname string unassigned-hostname
|
||||||
|
d-i netcfg/get_domain string unassigned-domain
|
||||||
|
d-i netcfg/hostname string debian
|
||||||
|
d-i mirror/country string manual
|
||||||
|
d-i mirror/http/hostname string httpredir.debian.org
|
||||||
|
d-i mirror/http/directory string /debian
|
||||||
|
d-i mirror/http/proxy string
|
||||||
|
d-i passwd/root-password password linaro123
|
||||||
|
d-i passwd/root-password-again password linaro123
|
||||||
|
d-i passwd/user-fullname string Linaro User
|
||||||
|
d-i passwd/username string linaro
|
||||||
|
d-i passwd/user-password password linaro
|
||||||
|
d-i passwd/user-password-again password linaro
|
||||||
|
d-i passwd/user-default-groups string audio cdrom video sudo
|
||||||
|
d-i time/zone string UTC
|
||||||
|
d-i clock-setup/ntp boolean true
|
||||||
|
d-i clock-setup/utc boolean true
|
||||||
|
d-i partman-auto/disk string /dev/sda
|
||||||
|
d-i partman-auto/method string regular
|
||||||
|
d-i partman-lvm/device_remove_lvm boolean true
|
||||||
|
d-i partman-md/device_remove_md boolean true
|
||||||
|
d-i partman-auto/choose_recipe select atomic
|
||||||
|
d-i partman/confirm_write_new_label boolean true
|
||||||
|
d-i partman/choose_partition select finish
|
||||||
|
d-i partman/confirm boolean true
|
||||||
|
d-i partman/confirm_nooverwrite boolean true
|
||||||
|
popularity-contest popularity-contest/participate boolean false
|
||||||
|
tasksel tasksel/first multiselect standard, web-server
|
||||||
|
d-i pkgsel/include string openssh-server build-essential ca-certificates sudo vim ntp
|
||||||
|
d-i pkgsel/upgrade select safe-upgrade
|
||||||
|
d-i finish-install/reboot_in_progress note
|
||||||
|
```
|
||||||
|
|
||||||
|
In this example, this content is also available at [http://people.linaro.org/~ricardo.salveti/preseed.cfg](http://people.linaro.org/~ricardo.salveti/preseed.cfg)
|
||||||
|
|
||||||
|
#### Setting up grub.cfg
|
||||||
|
|
||||||
|
Now back to your tftp server, change the original `grub.cfg` file adding the location of your preseed file:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ cat /srv/tftp/debian-installer/arm64/grub/grub.cfg
|
||||||
|
# Force grub to automatically load the first option
|
||||||
|
set default=0
|
||||||
|
set timeout=1
|
||||||
|
menuentry 'Install with preseeding' {
|
||||||
|
linux /debian-installer/arm64/linux auto=true priority=critical url=http://people.linaro.org/~ricardo.salveti/preseed.cfg ---
|
||||||
|
initrd /debian-installer/arm64/initrd.gz
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
The `auto` kernel parameter is an alias for `auto-install/enable` and setting it to `true` delays the locale and keyboard questions until after there has been a chance to preseed them, while `priority` is an alias for `debconf/priority` and setting it to `critical` stops any questions with a lower priority from being asked.
|
||||||
|
|
||||||
|
In case your system contains more than one network interface, also make sure to add the one to be used via the `interface` argument, like `interface=eth1`.
|
||||||
|
|
||||||
|
#### Booting the system
|
||||||
|
|
||||||
|
Now just do a normal PXE boot, and debian-installer should automatically load and use the preseeds file provided by `grub.cfg`. In case there is still a dialog that stops your installation that means not all the debian-installer options are provided by your preseeds file. Get back to [example-preseed.txt](https://www.debian.org/releases/jessie/example-preseed.txt) and try to identify what is missing step.
|
||||||
|
|
||||||
|
Also make sure to check debian-installer's `/var/log/syslog` (by opening a shell) when debugging the installer.
|
||||||
|
|
||||||
|
### Building debian-installer from source
|
||||||
|
|
||||||
|
#### Build kernel package and udebs
|
||||||
|
|
||||||
|
Check the Debian [kernel-handbook](http://kernel-handbook.alioth.debian.org/ch-common-tasks.html) for the instructions required to build the debian kernel package from scratch. Since the installer only understands `udeb` packages, it is a good idea to reuse the official kernel packaging instructions and rules.
|
||||||
|
|
||||||
|
You can also find the custom kernel source package created as part of the EE-RPB effort at [https://builds.96boards.org/snapshots/reference-platform/components/linux/enterprise/latest/](https://builds.96boards.org/snapshots/reference-platform/components/linux/enterprise/latest/)
|
||||||
|
|
||||||
|
#### Rebuilding debian-installer with the new udebs
|
||||||
|
|
||||||
|
To build the installer, make sure you're running on a native `arm64` system, preferably running Debian Jessie.
|
||||||
|
|
||||||
|
Download the installer (from jessie):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sudo apt-get build-dep debian-installer
|
||||||
|
dget http://ftp.us.debian.org/debian/pool/main/d/debian-installer/debian-installer_20150422+deb8u4.dsc
|
||||||
|
```
|
||||||
|
|
||||||
|
Change the kernel abi and set a default local preseed (so it can install your kernel during the install process):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
cd debian-installer-*
|
||||||
|
cd build
|
||||||
|
sed -i "s/LINUX_KERNEL_ABI.*/LINUX_KERNEL_ABI = YOUR_KERNEL_ABI/g" config/common
|
||||||
|
sed -i "s/PRESEED.*/PRESEED = default-preseed/g" config/common
|
||||||
|
```
|
||||||
|
|
||||||
|
Download the kernel udebs that you created at the localudebs folder:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
cd localudebs
|
||||||
|
wget <list of your custom udeb files created by the kernel debian package>
|
||||||
|
cd ..
|
||||||
|
```
|
||||||
|
|
||||||
|
Create a local pkg-list to include the udebs created (otherwise d-i will not be able to find them online):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
cat <<EOF > pkg-lists/local
|
||||||
|
ext4-modules-\${kernel:Version}
|
||||||
|
fat-modules-\${kernel:Version}
|
||||||
|
btrfs-modules-\${kernel:Version}
|
||||||
|
md-modules-\${kernel:Version}
|
||||||
|
efi-modules-\${kernel:Version}
|
||||||
|
scsi-modules-\${kernel:Version}
|
||||||
|
jfs-modules-\${kernel:Version}
|
||||||
|
xfs-modules-\${kernel:Version}
|
||||||
|
ata-modules-\${kernel:Version}
|
||||||
|
sata-modules-\${kernel:Version}
|
||||||
|
usb-storage-modules-\${kernel:Version}
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
Set up the local repo, so the installer can locate your udebs (from localudebs):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
cat <<EOF > sources.list.udeb
|
||||||
|
deb [trusted=yes] copy:/PATH/TO/your/installer/d-i/debian-installer-20150422/build/ localudebs/
|
||||||
|
deb http://httpredir.debian.org/debian jessie main/debian-installer
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
Default preseed to skip known errors (as the kernel provided by local udebs):
|
||||||
|
|
||||||
|
```
|
||||||
|
cat <<EOF > default-preseed
|
||||||
|
# Continue install on "no kernel modules were found for this kernel"
|
||||||
|
d-i anna/no_kernel_modules boolean true
|
||||||
|
# Continue install on "no installable kernels found"
|
||||||
|
d-i base-installer/kernel/skip-install boolean true
|
||||||
|
d-i base-installer/kernel/no-kernels-found boolean true
|
||||||
|
d-i preseed/late_command string in-target wget <your linux-image.deb>; dpkg -i linux-image-*.deb
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
Now just build the installer:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
fakeroot make build_netboot
|
||||||
|
```
|
||||||
|
|
||||||
|
You should now find your custom debian-installer at `dest/netboot/netboot.tar.gz`.
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue