Redo workflow for legacy rpb landing page
Signed-off-by: Robert Wolff <robert.wolff@linaro.org>
This commit is contained in:
parent
bd2c015555
commit
f9681d36c3
93 changed files with 177 additions and 28 deletions
|
@ -0,0 +1,46 @@
|
|||
## AOSP RPB 16.03 - Build from Source
|
||||
|
||||
Additional AOSP repositories are hosted at:
|
||||
- [https://github.com/96boards/android_device_linaro_db410c](https://github.com/96boards/android_device_linaro_db410c)
|
||||
- [https://github.com/96boards/android_manifest](https://github.com/96boards/android_manifest)
|
||||
- [https://github.com/rsalveti/linux (branch qcomlt-4.4)](https://github.com/rsalveti/linux)
|
||||
- [https://github.com/robherring/mesa](https://github.com/robherring/mesa)
|
||||
- [https://github.com/robherring/drm_gralloc](https://github.com/robherring/drm_gralloc)
|
||||
- https://github.com/robherring/drm_hwcomposer](https://github.com/robherring/drm_hwcomposer)
|
||||
|
||||
*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)
|
||||
|
||||
Also install make sure to install the following packages:
|
||||
|
||||
```shell
|
||||
sudo apt-get install libfdt-dev python-mako get text
|
||||
```
|
||||
|
||||
*Download the firmware blobs:*
|
||||
|
||||
```shell
|
||||
mkdir android/
|
||||
cd android/
|
||||
mkdir -p vendor/db410c
|
||||
cd vendor/db410c
|
||||
wget http://developer.qualcomm.com/download/db410c/firmware-410c-1.2.0.bin
|
||||
sh firmware-410c-1.2.0.bin
|
||||
cd -
|
||||
```
|
||||
|
||||
*Build the image:*
|
||||
|
||||
```shell
|
||||
repo init -u https://android.googlesource.com/platform/manifest -b android-6.0.1_r16
|
||||
cd .repo
|
||||
git clone https://github.com/96boards/android_manifest -b android-6.0-db410c local_manifests
|
||||
cd -
|
||||
repo sync -j8
|
||||
source build/envsetup.sh
|
||||
lunch db410c-userdebug
|
||||
make droidcore -j8
|
||||
cd out/target/product/db410c
|
||||
```
|
||||
|
|
@ -0,0 +1,281 @@
|
|||
## Debian RPB 16.06 - Build from Source
|
||||
|
||||
- Building Linux Kernel from Source
|
||||
- Step 1: Setting up your environment on your host computer
|
||||
- Step 2: Download the Linaro cross compiler toolchain and Skales Tool
|
||||
- Step 3: Export path to cross compiler tool and confirm version
|
||||
- Step 4: Clone the Reference Platform kernel
|
||||
- Step 5: Set the right kernel .config file
|
||||
- Step 6: Build kernel image
|
||||
- Step 7: Copy Modules
|
||||
- Step 8: Find kernel release string
|
||||
- Step 9: Generate modules.dep and map files
|
||||
- Step 10: Find DragonBoard™ 410c IP Address
|
||||
- Step 11: Transfer the modules to the target DragonBoard™ 410c
|
||||
- Step 12: Generate the initramfs
|
||||
- Step 13: Create the device tree image and boot image
|
||||
- Customize Bootloader
|
||||
- Build Rootfs from source
|
||||
|
||||
***
|
||||
|
||||
#### Building the Linux kernel from source
|
||||
|
||||
The Linux kernel used in this release is available via tags in the git [repository](https://github.com/96boards/linux)
|
||||
|
||||
```shell
|
||||
git: https://github.com/96boards/linux
|
||||
Dynamic tag: 96b-kernelci
|
||||
Fixed tag: 96b/releases/2016.06
|
||||
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/components/toolchain/binaries/latest-5.1/aarch64-linux-gnu/gcc-linaro-5.1-2015.08-x86_64_aarch64-linux-gnu.tar.xz).
|
||||
|
||||
To build the Linux kernel, you can use the following instructions:
|
||||
|
||||
#### Step 1: Setting up your environment on your host computer
|
||||
|
||||
- Open your Terminal and cd into your desired directory
|
||||
- Make a new folder using `mkdir` and call is something relevant
|
||||
|
||||
```shell
|
||||
#Example of desired directory
|
||||
$ cd ~/Desktop
|
||||
|
||||
#Example of relevant folder
|
||||
$ mkdir DB410c-16.06
|
||||
$ cd DB410c-16.06
|
||||
```
|
||||
|
||||
#### Step 2: Download the Linaro cross compiler toolchain and Skales Tool
|
||||
|
||||
- From within the directory you just made
|
||||
- Download and unzip by executing the following commands
|
||||
|
||||
###### Linaro Cross Compiler
|
||||
|
||||
```shell
|
||||
#Download
|
||||
$ wget http://releases.linaro.org/components/toolchain/binaries/latest-5.1/aarch64-linux-gnu/gcc-linaro-5.1-2015.08-x86_64_aarch64-linux-gnu.tar.xz
|
||||
#Unzip
|
||||
$ tar -Jxvf gcc-linaro-5.1-2015.08-x86_64_aarch64-linux-gnu.tar.xz
|
||||
```
|
||||
|
||||
###### Skales tool
|
||||
|
||||
```shell
|
||||
$ sudo apt-get install libfdt-dev
|
||||
$ git clone git://codeaurora.org/quic/kernel/skales /tmp/skales
|
||||
$ export PATH=$PATH:/tmp/skales
|
||||
```
|
||||
>Skales will be used later when creating the device tree
|
||||
|
||||
|
||||
#### Step 3: Export path to cross compiler tool and confirm version
|
||||
|
||||
- Exporting path will allow build system can find and use the right kernel
|
||||
|
||||
```shell
|
||||
#Create path
|
||||
$ export PATH=gcc-linaro-5.1-2015.08-x86_64_aarch64-linux-gnu/bin/:$PATH
|
||||
#Check version
|
||||
$ aarch64-linux-gnu-gcc --version
|
||||
aarch64-linux-gnu-gcc (Linaro GCC 5.1-2015.08) 5.1.1 20150608
|
||||
Copyright (C) 2015 Free Software Foundation, Inc.
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
```
|
||||
|
||||
#### Step 4: Clone the Reference Platform kernel
|
||||
|
||||
- **96b-kernelci** is the development branch
|
||||
- This branch will have the latest changes
|
||||
|
||||
```shell
|
||||
$ git clone -b 96b-kernelci http://github.com/96boards/linux.git
|
||||
```
|
||||
|
||||
- Cloning the kernel may take a few minutes
|
||||
- Once kernel source has been cloned cd into its directory
|
||||
|
||||
```shell
|
||||
$ cd kernel
|
||||
```
|
||||
|
||||
#### Step 5: Set the right kernel .config file
|
||||
|
||||
- This step creates the '.config' file
|
||||
- The .config file is used by the build system when compiling the kernel
|
||||
- Current Reference Platform config can be made by using distro.config
|
||||
- From with in kernel directory execute the following command:
|
||||
|
||||
```shell
|
||||
$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig distro.config
|
||||
```
|
||||
|
||||
- New .config file will be hidden but can be seen by executing `ls -a` from within kernel folder
|
||||
- To view all current configuration the .config file can be opened with a text editor such a `vim`
|
||||
|
||||
#### Step 6: Build kernel image
|
||||
|
||||
- This step will take some time (~20-30 minutes or more), depending on your cpu/memory
|
||||
|
||||
```shell
|
||||
#Replace X from -jX with the number of cores on your host computer
|
||||
$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -jX
|
||||
```
|
||||
|
||||
#### Step 7: Copy Modules
|
||||
|
||||
- Modules must be local (host computer) before transferring to target device
|
||||
- Still within linux directory
|
||||
- Make temp folder
|
||||
- Create modules
|
||||
|
||||
```shell
|
||||
$ mk tmp/modules
|
||||
$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- modules_install INSTALL_MOD_PATH=/tmp/modules INSTALL_MOD_STRIP=1
|
||||
```
|
||||
|
||||
#### Step 8: Find kernel release string
|
||||
|
||||
- This was created during the kernel build
|
||||
- In this example the kernel.release is 4.4.0+
|
||||
|
||||
```shell
|
||||
$ cat include/config/kernel.release
|
||||
#Output
|
||||
$ 4.4.0+
|
||||
```
|
||||
|
||||
#### Step 9: Generate modules.dep and map files
|
||||
|
||||
- Helps kernel find modules when system boots
|
||||
- Note: `4.4.0+` was the output from `cat include/config/kernel.release` in Step 8
|
||||
|
||||
```shell
|
||||
$ depmod -a -b /tmp/modules 4.4.0+
|
||||
```
|
||||
|
||||
#### Step 10: Find DragonBoard™ 410c IP Address
|
||||
|
||||
- On your DragonBoard™ 410c
|
||||
- Connect to the internet through WIFI
|
||||
- Open one of the Terminal applications
|
||||
|
||||
```shell
|
||||
$ /sbin/ifconfig
|
||||
```
|
||||
- Look for your `wlan0` connection
|
||||
- Here you will see an `inet addr`
|
||||
- This is your board's IP address and should look something like this: `192.168.0.10`
|
||||
|
||||
#### Step 11: Transfer the modules to the target DragonBoard™ 410c
|
||||
|
||||
- Using your board's IP Address for linaro@<yourIPaddress>
|
||||
|
||||
```shell
|
||||
$ tar -cjf /tmp/modules.tar.bz2 -C /tmp modules
|
||||
$ scp /tmp/modules.tar.bz2 linaro@192.168.1.15:~/
|
||||
$ ssh linaro@192.168.1.15
|
||||
#DragonBoard™ 410c shell
|
||||
db410c $ tar -jxvf modules.tar.bz2
|
||||
db410c $ sudo cp -r modules/lib/modules/4.4.0+ /lib/modules/
|
||||
```
|
||||
|
||||
#### Step 12: Generate the initramfs
|
||||
|
||||
- You should still be in the DragonBoard™ 410c shell
|
||||
|
||||
```shell
|
||||
db410c $ sudo update-initramfs -k 4.4.0+ -c
|
||||
```
|
||||
|
||||
- Copy back the new initramfs
|
||||
- This will be used when creating the boot.mg
|
||||
|
||||
#### Step 13: Create the device tree image and boot image
|
||||
|
||||
###### Device tree
|
||||
|
||||
```shell
|
||||
$ dtbTool -o dt.img -s 2048 arch/arm64/boot/dts/qcom
|
||||
```
|
||||
|
||||
###### Boot image
|
||||
|
||||
```shell
|
||||
$ mkbootimg --kernel arch/arm64/boot/Image --ramdisk initrd.img-4.4.0+ --output boot.img --dt dt.img --pagesize "2048" --base "0x80000000" --cmdline "root=/dev/disk/by-partlabel/rootfs rw rootwait console=tty0 console=ttyMSM0,115200n8"
|
||||
```
|
||||
|
||||
Congratulations! Boot image is now ready to be flashed to your DragonBoard™ 410c.
|
||||
|
||||
- Flashing the boot image can be done using fastboot
|
||||
- Board must be booted into fastboot mode
|
||||
- With USB to microUSB cable still connect execute the following:
|
||||
|
||||
```shell
|
||||
$ sudo fastboot flash boot boot.img
|
||||
$ sudo fastboot reboot
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### 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):
|
||||
|
||||
```shell
|
||||
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:
|
||||
|
||||
```shell
|
||||
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 `about` partition, you can now flash your board with:
|
||||
|
||||
```shell
|
||||
sudo fastboot aboot ./build-msm8916/emmc_appsboot.mbn
|
||||
```
|
||||
|
||||
#### 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:
|
||||
|
||||
```shell
|
||||
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:
|
||||
|
||||
```shell
|
||||
sudo apt-get update
|
||||
sudo apt-get build-dep <pkg>
|
||||
apt-get source <pkg>
|
||||
```
|
||||
|
||||
Then you can rebuild the package locally with:
|
||||
|
||||
```
|
||||
cd <pkg-version>
|
||||
dpkg-buildpackage -b -us -uc
|
||||
```
|
||||
|
||||
#### TO-DO
|
||||
|
||||
- Explain how to build the rootfs from source
|
|
@ -0,0 +1 @@
|
|||
|
|
@ -0,0 +1,196 @@
|
|||
This page provides instructions to get started with OpenEmbedded and the Yocto Project on the DragonBoard 410c.
|
||||
|
||||
# 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).
|
||||
|
||||
This layer has been tested with OpenEmbedded Core layer, and is expected to work with any other standard layers and of course any OpenEmbedded based distributions.
|
||||
|
||||
The Linux kernel used for the DragonBoard 410c is the Linaro Landing team kernel, e.g. the same kernel used for the Linaro Linux release builds. The graphic stack is based on mesa, using the freedreno driver.
|
||||
|
||||
# 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 Qualcomm BSP layer can be used with any OE based distribution, such as Poky. The following instructions are provided to get started with 96boards Open Embedded 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-qcom && cd oe-qcom
|
||||
repo init -u https://github.com/96boards/oe-rpb-manifest.git -b jethro
|
||||
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`
|
||||
* 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 in `tmp-eglibc/deploy/images/dragonboard-410c`. The two artifacts you will use to update your DragonBoard are:
|
||||
* `rpb-console-image-dragonboard-410c.ext4.gz` and
|
||||
* `boot-dragonboard-410c.img`
|
||||
|
||||
# Bootloaders and eMMC partitions
|
||||
|
||||
Build artifacts from your OE build will be flashed into the DragonBoard's 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 DragonBoard 410c (not the _Android_ ones; by default DragonBoards come pre-configured with the Android eMMC partition layout). You can download the latest Linux bootloader package 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 DragonBoard 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 DragonBoard, the DragonBoard must be booted into a special `fastboot mode`. The procedure to do so is as follows:
|
||||
* remove power from your DragonBoard
|
||||
* plug a USB cable from your development host to your DragonBoard's J4 connector
|
||||
* while holding down S4 on the DragonBoard (the one marked "(-)"), insert the power adapter
|
||||
* after a few seconds you can release S4
|
||||
|
||||
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 DragonBoard, 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:
|
||||
|
||||
* `/dev/mmcblk0p7` , aka `aboot` is used for the bootloader (LK/fastboot)
|
||||
* `/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
|
||||
|
||||
# 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`.
|
||||
|
||||
At the end of any successful build you will end up with the following artifacts (amongst others)
|
||||
* `image-dragonboard-410c.ext4.gz` and
|
||||
* `boot-dragonboard-410c.img`
|
||||
|
||||
These will be found in your `tmp-eglibc/deploy/images/dragonboard-410c` directory.
|
||||
|
||||
To install these to your DragonBoard's eMMC from your development host:
|
||||
|
||||
# gzip -d < image-dragonboard-410c.ext4.gz > image-dragonboard-410c.ext4
|
||||
# fastboot flash rootfs image-dragonboard-410c.ext4
|
||||
# fastboot flash boot boot-dragonboard-410c.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/dragonboard-410c/rpb-desktop-image-dragonboard-410c.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 recommended 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/dragonboard-410c/rpb-weston-image-dragonboard-410c.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.
|
||||
|
||||
# Support
|
||||
|
||||
For general question or support request, please go to [96boards.org Community forum](https://www.96boards.org/forums/forum/products/dragonboard410c/).
|
||||
|
||||
For any bug related to this release, please submit issues to the [96Board.org Bug tracking system](https://bugs.96boards.org/). To submit a bug, follow this [link](https://bugs.96boards.org/enter_bug.cgi?product=Dragonboard%20410c).
|
|
@ -0,0 +1,155 @@
|
|||
[<img src="http://i.imgur.com/jl4GG0d.png" data-canonical-src="http://i.imgur.com/jl4GG0d.png" width="125" height="157" />]()
|
||||
[<img src="http://i.imgur.com/yRQKDI6.png" data-canonical-src="http://i.imgur.com/yRQKDI6.png" width="125" height="157" />]()
|
||||
[<img src="http://i.imgur.com/7wy1996.png" data-canonical-src="http://i.imgur.com/7wy1996.png" width="125" height="157" />]()
|
||||
[<img src="http://i.imgur.com/yRQKDI6.png" data-canonical-src="http://i.imgur.com/yRQKDI6.png" width="125" height="157" />]()
|
||||
[<img src="http://i.imgur.com/tXXN5bZ.png" data-canonical-src="http://i.imgur.com/tXXN5bZ.png" width="125" height="157" />]()
|
||||
|
||||
>**Note:** CE AOSP RPB - 16.03 is a Developer Preview operating system
|
||||
|
||||
***
|
||||
|
||||
#### 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.
|
||||
|
||||
This method requires the following hardware:
|
||||
- DragonBoard™ 410c with power supply
|
||||
- Host machine (Linux, Mac OS X, or Windows)
|
||||
- USB to microUSB cable
|
||||
- USB Mouse and/or keyboard (not required to perform flash)
|
||||
- HDMI Monitor with full size HDMI cable (not required to perform flash)
|
||||
|
||||
***
|
||||
|
||||
#### Step 2: Download Android Bootloader and Boot file
|
||||
|
||||
- Android Bootloader ([Direct Download](https://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/dragonboard410c_bootloader_emmc_android-*.zip) / <a href="https://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/" target="_blank">Build Folder</a> )
|
||||
- Android Boot ([Direct Download](https://builds.96boards.org/releases/reference-platform/aosp/dragonboard410c/16.03/boot-db410c.img.xz) / <a href="https://builds.96boards.org/releases/reference-platform/aosp/dragonboard410c/16.03/" target="_blank">Build Folder</a> )
|
||||
|
||||
>Note the location of all downloads, they will be needed once you access your instruction set
|
||||
|
||||
#### Step 3: Download all remaining files
|
||||
|
||||
- system.img ([Direct Download](https://builds.96boards.org/releases/reference-platform/aosp/dragonboard410c/16.03/system.img.xz) / <a href="https://builds.96boards.org/releases/reference-platform/aosp/dragonboard410c/16.03/" target="_blank">Build Folder</a> )
|
||||
- userdata.img ([Direct Download](https://builds.96boards.org/releases/reference-platform/aosp/dragonboard410c/16.03/userdata.img.xz) / <a href="https://builds.96boards.org/releases/reference-platform/aosp/dragonboard410c/16.03/" target="_blank">Build Folder</a> )
|
||||
- cache.img ([Direct Download](https://builds.96boards.org/releases/reference-platform/aosp/dragonboard410c/16.03/cache.img.xz) / <a href="https://builds.96boards.org/releases/reference-platform/aosp/dragonboard410c/16.03/" target="_blank">Build Folder</a> )
|
||||
|
||||
>Note the location of all downloads, they will be needed once you access your instruction set
|
||||
|
||||
***
|
||||
#### Step 4: Install Android using Fastboot with Linux host
|
||||
|
||||
This section show how to install the Android operating system to your DragonBoard™ 410c using the fastboot method on a Mac OS X host computer.
|
||||
|
||||
1 - **Make sure fastboot is set up on host computer**
|
||||
|
||||
- Android SDK “Tools only” for Linux can be downloaded <a href="http://developer.android.com/sdk" target="_blank">here</a>
|
||||
- The Linux “Tools Only” SDK download does not come with fastboot, you will need to use the Android SDK Manager to install platform-tools.
|
||||
- To do this follow the “SDK Readme.txt” instructions included in your SDK “Tools Only” download.
|
||||
|
||||
If you are still having trouble setting up fastboot, <a href="https://youtu.be/W_zlydVBftA" target="_blank">click here</a> for a short tutorial video
|
||||
|
||||
2 - **Connect host computer to DragonBoard™ 410c**
|
||||
|
||||
- DragonBoard™ 410c must be powered off (unplugged from power)
|
||||
- Make sure microSD card slot on DragonBoard™ 410c is empty
|
||||
- S6 switch on DragonBoard™ 410c must be set to ‘0-0-0-0’. All switches should be in “off” position
|
||||
- Connect USB to microUSB cable from host computer to DragonBoard™ 410c
|
||||
|
||||
3 - **Boot DragonBoard™ 410c into fastboot mode**
|
||||
|
||||
**Please read all bullet points before attempting**
|
||||
|
||||
- Press and hold the Vol (-) button on the DragonBoard™ 410c, this is the S4 button. DragonBoard™ 410c should still NOT be powered on
|
||||
- While holding the Vol (-) button, power on the DragonBoard™ 410c by plugging it in
|
||||
- Once DragonBoard™ 410c is plugged into power, release your hold on the Vol (-) button.
|
||||
- Board should boot into fastboot mode.
|
||||
|
||||
From the connected host machine terminal window, run the following commands:
|
||||
|
||||
```shell
|
||||
# Check to make sure device is connected and in fastboot mode
|
||||
|
||||
fastboot devices
|
||||
```
|
||||
|
||||
**At this point you should be connected to your DragonBoard™ 410c with a USB to microUSB cable. Your DragonBoard™ 410c should be booted into fastboot mode and ready to be flashed with the appropriate images.**
|
||||
|
||||
4 - **Flash Bootloader**
|
||||
|
||||
- Use host computer
|
||||
- Open "Terminal" application
|
||||
- Recall location of Bootloader download.
|
||||
- The bootloader file should be named `dragonboard410c_bootloader_emmc_android`
|
||||
- `cd` to the directory with your unzipped **Bootloader Folder**
|
||||
|
||||
```shell
|
||||
cd <extraction directory>
|
||||
|
||||
#Example:
|
||||
cd /Users/YourUserName/Downloads
|
||||
#<extraction directory> = /Users/YourUserName/Downloads
|
||||
#For this example we assume the "Bootloader" is in the Downloads folder.
|
||||
|
||||
|
||||
cd <unzipped Bootloader folder>
|
||||
|
||||
#Example:
|
||||
cd dragonboard410c_bootloader_emmc_android
|
||||
#<unzipped Bootloader folder> = dragonboard410c_bootloader_emmc_android
|
||||
|
||||
# This command will execute the flashall script within the bootloader folder
|
||||
./flashall
|
||||
|
||||
```
|
||||
|
||||
5 - **Recall location of all downloaded files from downloads page**
|
||||
|
||||
This will include the files listed below:
|
||||
|
||||
###### Reference Platform files
|
||||
|
||||
- boot.img.tar.xz
|
||||
- system.img.tar.xz
|
||||
- userdata.img.tar.xz
|
||||
- cache.img.tar.xz
|
||||
|
||||
6 - **Unzip all files**
|
||||
|
||||
7 - **Flash all files to the DragonBoard™ 410c**
|
||||
|
||||
- Use host computer
|
||||
- Use "Terminal" application
|
||||
- Recall location of all extracted(unzipped) files
|
||||
- `cd` to the directory with your unzipped files
|
||||
- From within extraction directory, execute the following commands:
|
||||
|
||||
###### Reference Platform
|
||||
|
||||
```shell
|
||||
# (Once again) Check to make sure fastboot device connected
|
||||
sudo fastboot devices
|
||||
|
||||
# cd to the directory the boot image and were extracted
|
||||
$ cd <extraction directory>
|
||||
|
||||
# Make sure you have properly unzipped the downloads
|
||||
sudo fastboot flash boot boot.img
|
||||
sudo fastboot flash system system.img
|
||||
sudo fastboot flash userdata userdata.img
|
||||
sudo fastboot flash cache cache.img
|
||||
```
|
||||
|
||||
8 - **Reboot DragonBoard™ 410c**
|
||||
|
||||
- Unplug power to DragonBoard™ 410c
|
||||
- Unplug micro USB cable from DragonBoard™ 410c
|
||||
- Ensure HDMI connection to monitor
|
||||
- Ensure keyboard and/or mouse connection (Depending on your rootfs selection)
|
||||
- Plug power back into DragonBoard™ 410c
|
||||
- Wait for board to boot up
|
||||
- Board will boot into Android lock screen.
|
||||
|
||||
**Congratulations! You are now booting your newly installed OS directly
|
||||
from eMMC on the DragonBoard™ 410c!**
|
||||
|
|
@ -0,0 +1,326 @@
|
|||
# Install Instructions - Reference Software Platform
|
||||
|
||||
This page provides download and installation instructions inteded for those interested in flashing the DragonBoard 410c board with pre-built Linaro Reference Software. Two methods are currently available: **SD card method** and **Fastboot method**. If you are already familiar with these methods, you may find all necessary files in the [96Boards RPB 16.06 build folder](http://builds.96boards.org/releases/reference-platform/debian/dragonboard410c/16.06/).
|
||||
|
||||
## Contents
|
||||
|
||||
- [SD Card Method](#sd-card-method)
|
||||
- [Fastboot Method](#fastboot-method)
|
||||
|
||||
***
|
||||
|
||||
# SD Card Method
|
||||
|
||||
#### Step 1: Read about the SD Card Method
|
||||
|
||||
The SD card method allows you to place a microSD card into the DragonBoard™ 410c 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:
|
||||
- DragonBoard™ 410c with power supply
|
||||
- Host machine (Linux, Mac OS X, or Windows)
|
||||
- MicroSD card with 4GB or more of storage
|
||||
- USB Mouse and/or keyboard
|
||||
- HDMI Monitor with full size HDMI cable
|
||||
|
||||
|
||||
***
|
||||
|
||||
#### Step 2: Download SD Card Image
|
||||
|
||||
[SD Card Image - Direct Download](http://builds.96boards.org/releases/reference-platform/debian/dragonboard410c/16.06/dragonboard410c-debian-jessie-alip-sdcard-*.img.gz)
|
||||
|
||||
>Note the location of all downloads, they will be needed once you access your instruction set
|
||||
|
||||
***
|
||||
|
||||
#### Step 3: Prepare MicroSD card
|
||||
|
||||
- Ensure data from mircoSD card is backed up
|
||||
- Everything on microSD card will be lost by the end of this procedure.
|
||||
|
||||
***
|
||||
|
||||
#### Step 4: Find SD Card Device name
|
||||
|
||||
- Use host Linux computer
|
||||
- Open "Terminal" application
|
||||
- Remove SD card from host computer and run the following command:
|
||||
```shell
|
||||
$ lsblk
|
||||
```
|
||||
- Note all recognized disk names
|
||||
- **Insert SD card** and run the following command (again):
|
||||
```shell
|
||||
$ lsblk
|
||||
```
|
||||
- Note the newly recognized disk. This will be your SD card.
|
||||
- **Remember** your SD card device name for a later step
|
||||
|
||||
***
|
||||
|
||||
#### Step 5: Recall Download Location
|
||||
|
||||
- Locate SD card install file from Downloads page.
|
||||
- This file will be needed for the next step.
|
||||
|
||||
***
|
||||
|
||||
#### Step 6: Unzip _SD Card Install Image_
|
||||
|
||||
- When unzipped, you will have a folder with the following contents:
|
||||
- Linaro/Debian Install Image (.img)
|
||||
- Readme
|
||||
|
||||
|
||||
***
|
||||
|
||||
#### Step 7: Go to directory with _SD Card Install Image_ folder using Terminal
|
||||
|
||||
- Use host Linux computer
|
||||
- Open "Terminal" application
|
||||
- `cd` to the directory with your unzipped **Debian SD Card Install Image**
|
||||
|
||||
```shell
|
||||
$ cd <extraction directory>
|
||||
|
||||
#Example:
|
||||
#<extraction directory> = /home/YourUserName/Downloads
|
||||
#For this example we assume the "Debian SD Card Install Image" is in the Downloads folder.
|
||||
$ cd /home/YourUserName/Downloads
|
||||
```
|
||||
|
||||
|
||||
***
|
||||
|
||||
#### Step 8: Locate SD Card Install Image
|
||||
|
||||
- Make sure you are in the extraction directory
|
||||
|
||||
**Unzipped Debian SD Card download will be a folder. This folder should be listed in your directory. Type `ls` from command line for a list of files that can be found in your current directory**:
|
||||
|
||||
```shell
|
||||
$ ls
|
||||
|
||||
#output
|
||||
dragonboard410c_sdcard_install_debian-XX
|
||||
```
|
||||
|
||||
- Unzipped folder should be called dragonboard410c_sdcard_install_debian-XX, where XX represents the Debian release number
|
||||
- `cd` into this directory
|
||||
|
||||
```shell
|
||||
$ cd dragonboard410c_sdcard_install_debian-XX
|
||||
```
|
||||
|
||||
- Inside this folder you will find the install image
|
||||
- `db410c_sd_install_debian.img`
|
||||
- This `.img` file is what will be flashed to your SD Card.
|
||||
|
||||
|
||||
***
|
||||
|
||||
#### Step 9: Install Image onto SD Card
|
||||
|
||||
**Checklist:**
|
||||
|
||||
- SD card inserted into host Linux computer
|
||||
- Recall SD Card device name from [**Step 2**](https://github.com/sdrobertw/test-wiki-/wiki/Linux-host-SD-CARD#step-2-find-sd-card-device-name)
|
||||
- From within the dragonboard410c_sdcard_install_debian-XX folder, using the Terminal execute the following commands:
|
||||
|
||||
**Execute:**
|
||||
|
||||
```shell
|
||||
$ sudo dd if=db410c_sd_install_debian.img of=/dev/XXX bs=4M oflag=sync status=noxfer
|
||||
```
|
||||
|
||||
**Note:**
|
||||
|
||||
- `if=db410c_sd_install_debian.img`: should match the name of the image that was downloaded.
|
||||
- `of=/dev/XXX`: XXX should match the name of the SD Card device name from [**Step 2**](https://github.com/sdrobertw/test-wiki-/wiki/Linux-host-SD-CARD#step-2-find-sd-card-device-name). Be sure to use the device name with out the partition.
|
||||
- This command will take some time to execute. Be patient and avoid tampering with the terminal until process has ended.
|
||||
- Once SD card is done flashing, remove from host computer and set aside for a later step
|
||||
|
||||
***
|
||||
|
||||
#### Step 10: Prepare DragonBoard™ 410c with SD card
|
||||
|
||||
- Make sure DragonBoard™ 410c is unplugged from power
|
||||
- Set S6 switch on DragonBoard™ 410c to `0-1-0-0`, "SD Boot switch" should be set to "ON".
|
||||
- Please see "1.1 Board Overview" on page 7 from [DragonBoard™ 410c Hardware Manual](http://linaro.co/96b-hwm-db) if you cannot find S6
|
||||
- Connect an HDMI monitor to the DragonBoard™ 410c with an HDMI cable, and power on the monitor
|
||||
- Plug a USB keyboard and/or mouse into either of the two USB connectors on the DragonBoard™ 410c
|
||||
- Insert the microSD card into the DragonBoard™ 410c
|
||||
- Plug power adaptor into DragonBoard™ 410c, wait for board to boot up.
|
||||
|
||||
***
|
||||
|
||||
#### Step 11: Install RPB Linaro/Debian onto DragonBoard™ 410c
|
||||
|
||||
<img src="http://i.imgur.com/F18wlgU.png" data-canonical-src="http://i.imgur.com/F18wlgU.png" width="400" height="250"/>
|
||||
|
||||
- If **Steps 1 - 8** were followed correctly, the above screen should be visible from your DragonBoard™ 410c
|
||||
- Select the image to install and click “Install” (or type “i”). OS will be installed into the eMMC memory
|
||||
- This process can take a few minutes to complete
|
||||
- Upon completion, “Flashing has completed and OS has installed successfully....” message will appear.
|
||||
|
||||
Before clicking "OK":
|
||||
|
||||
- Remove the SD Card
|
||||
- Set S6 switch on DragonBoard™ 410c to `0-0-0-0`, all switches should be set to "OFF"
|
||||
- Now click "OK" button and allow DragonBoard™ 410c to reboot.
|
||||
|
||||
**Congratulations! You are now booting your newly installed operating system directly from eMMC on the DragonBoard™ 410c!**
|
||||
|
||||
[Back to top](#install-instructions---reference-software-platform)
|
||||
|
||||
***
|
||||
|
||||
# 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.
|
||||
|
||||
This method requires the following hardware:
|
||||
- DragonBoard™ 410c with power supply
|
||||
- Host Linux machine
|
||||
- USB to microUSB cable
|
||||
- USB Mouse and/or keyboard (not required to perform flash)
|
||||
- HDMI Monitor with full size HDMI cable (not required to perform flash)
|
||||
|
||||
***
|
||||
|
||||
#### Step 2: Download Debian Bootloader
|
||||
|
||||
- Debian Bootloader ([Direct Download](https://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/dragonboard410c_bootloader_emmc_linux-*.zip) / <a href="https://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/" target="_blank">Build Folder</a> )
|
||||
|
||||
#### Step 3: Download Boot image and Root file system
|
||||
|
||||
- Debian Boot ([Direct Download](http://builds.96boards.org/releases/reference-platform/debian/dragonboard410c/16.06/dragonboard410c-boot-linux-*.img.gz) / <a href="http://builds.96boards.org/releases/reference-platform/debian/dragonboard410c/16.06/" target="_blank">Build Folder</a> )
|
||||
- Debian Rootfs (Desktop) ([Direct Download](http://builds.96boards.org/releases/reference-platform/debian/dragonboard410c/16.06/dragonboard410c-rootfs-debian-jessie-alip-*.emmc.img.gz) / <a href="http://builds.96boards.org/releases/reference-platform/debian/dragonboard410c/16.06/" target="_blank">Build Folder</a> )
|
||||
|
||||
>Note the location of all downloads, they will be needed once you access your instruction set
|
||||
|
||||
***
|
||||
#### Step 4: Install Debian Using Fastboot with Linux host
|
||||
|
||||
This section show how to install the Linaro based Debian operating system to your DragonBoard™ 410c using the fastboot method on a Linux host computer.
|
||||
|
||||
1 - **Make sure fastboot is set up on host computer**
|
||||
|
||||
- Android SDK “Tools only” for Linux can be downloaded <a href="http://developer.android.com/sdk" target="_blank">here</a>
|
||||
- The Linux “Tools Only” SDK download does not come with fastboot, you will need to use the Android SDK Manager to install platform-tools.
|
||||
- To do this follow the “SDK Readme.txt” instructions included in your SDK “Tools Only” download.
|
||||
|
||||
If you are still having trouble setting up fastboot, <a href="https://youtu.be/W_zlydVBftA" target="_blank">click here</a> for a short tutorial video
|
||||
|
||||
2 - **Connect host computer to DragonBoard™ 410c**
|
||||
|
||||
- DragonBoard™ 410c must be powered off (unplugged from power)
|
||||
- Make sure microSD card slot on DragonBoard™ 410c is empty
|
||||
- S6 switch on DragonBoard™ 410c must be set to ‘0-0-0-0’. All switches should be in “off” position
|
||||
- Connect USB to microUSB cable from host computer to DragonBoard™ 410c
|
||||
|
||||
3 - **Boot DragonBoard™ 410c into fastboot mode**
|
||||
|
||||
**Please read all bullet points before attempting**
|
||||
|
||||
- Press and hold the Vol (-) button on the DragonBoard™ 410c, this is the S4 button. DragonBoard™ 410c should still NOT be powered on
|
||||
- While holding the Vol (-) button, power on the DragonBoard™ 410c by plugging it in
|
||||
- Once DragonBoard™ 410c is plugged into power, release your hold on the Vol (-) button.
|
||||
- Wait for about 20 seconds.
|
||||
- Board should boot into fastboot mode.
|
||||
|
||||
From the connected host machine terminal window, run the following commands:
|
||||
|
||||
```shell
|
||||
# Check to make sure device is connected and in fastboot mode
|
||||
|
||||
$ fastboot devices
|
||||
```
|
||||
|
||||
Typically it will show as bellow
|
||||
```shell
|
||||
de82318 fastboot
|
||||
```
|
||||
|
||||
**At this point you should be connected to your DragonBoard™ 410c with a USB to microUSB cable. Your DragonBoard™ 410c should be booted into fastboot mode and ready to be flashed with the appropriate images.**
|
||||
|
||||
4 - **Flash Bootloader**
|
||||
|
||||
- Use host computer
|
||||
- Open "Terminal" application
|
||||
- Recall location of Bootloader download.
|
||||
- The bootloader file should be named `dragonboard410c_bootloader_emmc_linux-XX`
|
||||
- XX represents the release number of the Bootloader
|
||||
- `cd` to the directory with your unzipped **Bootloader Folder**
|
||||
|
||||
```shell
|
||||
$ cd <extraction directory>
|
||||
|
||||
#Example:
|
||||
cd /Users/YourUserName/Downloads
|
||||
#<extraction directory> = /Users/YourUserName/Downloads
|
||||
#For this example we assume the "Bootloader" is in the Downloads folder.
|
||||
|
||||
|
||||
$ cd <unzipped Bootloader folder>
|
||||
|
||||
#Example:
|
||||
cd dragonboard410c_bootloader_emmc_linux-40
|
||||
#<unzipped Bootloader folder> = dragonboard410c_bootloader_emmc_linux-40
|
||||
#This example took place during release 40
|
||||
|
||||
# This command will execute the flashall script within the bootloader folder
|
||||
$ ./flashall
|
||||
|
||||
```
|
||||
|
||||
5 - **Recall location of `boot` and `rootfs` download from the downloads page**
|
||||
|
||||
- You should have downloaded the `boot` file
|
||||
- You should have downloaded ONE of rootfs` file (Either `Developer` or `Desktop - ALIP` version)
|
||||
|
||||
6 - **Unzip both 'boot' and 'rootfs' files**
|
||||
|
||||
7 - **Flash `boot` image and `rootfs` to the DragonBoard™ 410c**
|
||||
|
||||
- Use host computer
|
||||
- Use "Terminal" application
|
||||
- Recall location of extracted(unzipped) `boot` file
|
||||
- Recall location of extracted(unzipped) `rootfs` file (`Developer` or `Desktop - ALIP`)
|
||||
- `cd` to the directory with your unzipped `boot` and `rootfs` files
|
||||
- From within extraction directory, execute the following commands:
|
||||
|
||||
```shell
|
||||
# (Once again) Check to make sure fastboot device connected
|
||||
$ sudo fastboot devices
|
||||
# It will show similar to bellow if the device is connected successfully
|
||||
de82318 fastboot
|
||||
|
||||
# cd to the directory the boot image and were extracted
|
||||
$ cd <extraction directory>
|
||||
|
||||
# Make sure you have properly unzipped the boot and rootfs downloads
|
||||
$ sudo fastboot flash boot boot-linaro-jessie-qcom-snapdragon-arm64-**BUILD#**.img
|
||||
$ sudo fastboot flash rootfs linaro-jessie-developer-qcom-snapdragon-arm64-**BUILD#**.img
|
||||
```
|
||||
**Note**: Replace **BUILD#** in the above commands with the file-specific date/build stamp.
|
||||
|
||||
8 - **Reboot DragonBoard™ 410c**
|
||||
|
||||
- Unplug power to DragonBoard™ 410c
|
||||
- Unplug micro USB cable from DragonBoard™ 410c
|
||||
- Ensure HDMI connection to monitor
|
||||
- Ensure keyboard and/or mouse connection (Depending on your rootfs selection)
|
||||
- Plug power back into DragonBoard™ 410c
|
||||
- Wait for board to boot up
|
||||
- Board will boot into either command line or desktop depending on rootfs
|
||||
|
||||
**Note:** the **username** and **password** are both **“linaro”** when the login information is requested.
|
||||
|
||||
**Congratulations! You are now booting your newly installed OS directly
|
||||
from eMMC on the DragonBoard™ 410c!**
|
||||
|
||||
[Back to top](#install-instructions---reference-software-platform)
|
|
@ -0,0 +1,212 @@
|
|||
## OpenEmbedded RPB 16.03 - Build from Source
|
||||
|
||||
This page provides instructions to get started with OpenEmbedded and the Yocto Project on the DragonBoard 410c.
|
||||
|
||||
# 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).
|
||||
|
||||
This layer has been tested with OpenEmbedded Core layer, and is expected to work with any other standard layers and of course any OpenEmbedded based distributions.
|
||||
|
||||
The Linux kernel used for the DragonBoard 410c is the Linaro Landing team kernel, e.g. the same kernel used for the Linaro Linux release builds. The graphic stack is based on mesa, using the freedreno driver.
|
||||
|
||||
## 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 Qualcomm BSP layer can be used with any OE based distribution, such as Poky. The following instructions are provided to get started with 96boards Open Embedded 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-qcom && cd oe-qcom
|
||||
repo init -u https://github.com/96boards/oe-rpb-manifest.git -b jethro
|
||||
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`
|
||||
* 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 in `tmp-eglibc/deploy/images/dragonboard-410c`. The two artifacts you will use to update your DragonBoard are:
|
||||
* `rpb-console-image-dragonboard-410c.ext4.gz` and
|
||||
* `boot-dragonboard-410c.img`
|
||||
|
||||
# Bootloaders and eMMC partitions
|
||||
|
||||
Build artifacts from your OE build will be flashed into the DragonBoard's 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 DragonBoard 410c (not the _Android_ ones; by default DragonBoards come pre-configured with the Android eMMC partition layout). You can download the latest Linux bootloader package 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 DragonBoard 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 DragonBoard, the DragonBoard must be booted into a special `fastboot mode`. The procedure to do so is as follows:
|
||||
* remove power from your DragonBoard
|
||||
* plug a USB cable from your development host to your DragonBoard's J4 connector
|
||||
* while holding down S4 on the DragonBoard (the one marked "(-)"), insert the power adapter
|
||||
* after a few seconds you can release S4
|
||||
|
||||
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 DragonBoard, 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:
|
||||
|
||||
* `/dev/mmcblk0p7` , aka `aboot` is used for the bootloader (LK/fastboot)
|
||||
* `/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
|
||||
|
||||
# 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`.
|
||||
|
||||
At the end of any successful build you will end up with the following artifacts (amongst others)
|
||||
* `image-dragonboard-410c.ext4.gz` and
|
||||
* `boot-dragonboard-410c.img`
|
||||
|
||||
These will be found in your `tmp-eglibc/deploy/images/dragonboard-410c` directory.
|
||||
|
||||
To install these to your DragonBoard's eMMC from your development host:
|
||||
|
||||
# gzip -d < image-dragonboard-410c.ext4.gz > image-dragonboard-410c.ext4
|
||||
# fastboot flash rootfs image-dragonboard-410c.ext4
|
||||
# fastboot flash boot boot-dragonboard-410c.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/dragonboard-410c/rpb-desktop-image-dragonboard-410c.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 recommended 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/dragonboard-410c/rpb-weston-image-dragonboard-410c.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.
|
||||
|
||||
# Support
|
||||
|
||||
For general question or support request, please go to [96boards.org Community forum](https://www.96boards.org/forums/forum/products/dragonboard410c/).
|
||||
|
||||
For any bug related to this release, please submit issues to the [96Board.org Bug tracking system](https://bugs.96boards.org/). To submit a bug, follow this [link](https://bugs.96boards.org/enter_bug.cgi?product=Dragonboard%20410c).
|
|
@ -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)
|
|
@ -0,0 +1,46 @@
|
|||
## AOSP RPB 16.03 - Build from Source
|
||||
|
||||
Additional AOSP repositories are hosted here:
|
||||
- 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)
|
||||
|
||||
###### Out of date:
|
||||
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):
|
||||
|
||||
```shell
|
||||
<USER> ALL= NOPASSWD: /bin/mount
|
||||
<USER> ALL= NOPASSWD: /bin/umount
|
||||
<USER> ALL= NOPASSWD: /sbin/mkfs.fat
|
||||
<USER> ALL= NOPASSWD: /bin/cp
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
**Download the code:**
|
||||
|
||||
```shell
|
||||
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
|
||||
|
||||
**Build the image:**
|
||||
|
||||
```shell
|
||||
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/hiked
|
||||
```
|
|
@ -0,0 +1,182 @@
|
|||
## Debian RPB 16.06 - Build from Source
|
||||
|
||||
- Building Linux Kernel from Source
|
||||
- Step 1: Setting up your environment on your host computer
|
||||
- Step 2: Download the Linaro cross compiler toolchain
|
||||
- Step 3: Export path to cross compiler tool and confirm version
|
||||
- Step 5: Set the right kernel .config file
|
||||
- Step 6: Build kernel image and debian package
|
||||
- Step 7: Find HiKey IP Address
|
||||
- Step 8: Transfer the modules to the target HiKey
|
||||
- Step 9: Generate the initramfs
|
||||
- Step 10: Create the device tree image and boot image
|
||||
- Customize Bootloader
|
||||
- Build Rootfs from source
|
||||
|
||||
***
|
||||
|
||||
#### Building the Linux kernel from source
|
||||
|
||||
The Linux kernel used in this release is available via tags in the git [repository](https://github.com/96boards/linux)
|
||||
|
||||
```shell
|
||||
git: https://github.com/96boards/linux
|
||||
Dynamic tag: 96b-kernelci
|
||||
Fixed tag: 96b/releases/2016.06
|
||||
defconfig: arch/arm64/configs/distro.config
|
||||
```
|
||||
|
||||
The kernel image (`Image`) and the kernel modules are installed in the root file system (e.g. `/boot/vmlinuz-4.4.0-104-arm64` and `/lib/modules/4.4.0-104-arm64`). 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/components/toolchain/binaries/5.3-2016.02/aarch64-linux-gnu/gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu.tar.xz), also available [here](http://releases.linaro.org/components/toolchain/binaries/5.3-2016.02/)
|
||||
|
||||
To build the Linux kernel, you can use the following instructions:
|
||||
|
||||
#### Step 1: Setting up your environment on your host computer
|
||||
|
||||
- Open your Terminal and cd into your desired directory
|
||||
- Make a new folder using `mkdir`, name it something relevant
|
||||
|
||||
```shell
|
||||
#Example of desired directory
|
||||
$ cd ~/Desktop
|
||||
|
||||
#Example of relevant folder
|
||||
$ mkdir HiKey-16.06
|
||||
$ cd HiKey-16.06
|
||||
```
|
||||
|
||||
#### Step 2: Step 2: Download the Linaro cross compiler toolchain
|
||||
|
||||
- From within the directory you just made
|
||||
- Download and unzip by executing the following commands
|
||||
|
||||
###### Linaro Cross Compiler
|
||||
|
||||
```shell
|
||||
#Download
|
||||
$ wget 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
|
||||
#Unzip
|
||||
$ tar -Jxvf gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu.tar.xz
|
||||
```
|
||||
|
||||
#### Step 3: Export path to cross compiler tool and confirm version
|
||||
|
||||
- Exporting path will allow build system can find and use the right kernel
|
||||
|
||||
```shell
|
||||
#Create path
|
||||
$ export PATH=~/Desktop/HiKey-16.06/gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu/bin/:$PATH
|
||||
#Check version
|
||||
$ aarch64-linux-gnu-gcc --version
|
||||
aarch64-linux-gnu-gcc (Linaro GCC 5.3-2016.02) 5.3.1 20160113
|
||||
Copyright (C) 2015 Free Software Foundation, Inc.
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
```
|
||||
|
||||
#### Step 4: Clone the Reference Platform kernel
|
||||
|
||||
- **96b-kernelci** is the development branch
|
||||
- This branch will have the latest changes
|
||||
- Use **96b/releases/2016.06** if you want the same version used by the 16.06 release
|
||||
|
||||
```shell
|
||||
$ git clone -b 96b/releases/2016.06 http://github.com/96boards/linux.git
|
||||
```
|
||||
|
||||
- Cloning the kernel may take a few minutes
|
||||
- If you already have a local clone of another kernel git tree, use _--reference path/your/old/tree/.git_ for a faster clone process
|
||||
- Once kernel source has been cloned cd into its directory
|
||||
|
||||
```shell
|
||||
$ cd linux
|
||||
```
|
||||
|
||||
#### Step 5: Set the right kernel .config file
|
||||
|
||||
- This step creates the '.config' file
|
||||
- The .config file is used by the build system when compiling the kernel
|
||||
- Current Reference Platform config can be made by using distro.config
|
||||
- From with in kernel directory execute the following command:
|
||||
|
||||
```shell
|
||||
$ cp arch/arm64/configs/distro.config .config
|
||||
$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- oldconfig
|
||||
```
|
||||
|
||||
- New .config file will be hidden but can be seen by executing `ls -a` from within kernel folder
|
||||
- To view all current configuration the .config file can be opened with a text editor such a `vim`
|
||||
|
||||
#### Step 6: Build kernel image and debian package
|
||||
|
||||
- This step will take some time (~20-30 minutes or more), depending on your cpu/memory
|
||||
- Creating the kernel package is recommended for HiKey, as it supports Grub 2
|
||||
|
||||
```shell
|
||||
#Replace X from -jX with the number of cores on your host computer
|
||||
$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -jX deb-pkg LOCALVERSION=-yourowntag
|
||||
```
|
||||
|
||||
#### Step 7: Find HiKey IP Address
|
||||
|
||||
- On your HiKey board
|
||||
- Connect to the internet through WIFI
|
||||
- Open one of the Terminal applications
|
||||
|
||||
```shell
|
||||
$ /sbin/ifconfig
|
||||
```
|
||||
- Look for your `wlan0` connection
|
||||
- Here you will see an `inet addr`
|
||||
- This is your board's IP address and should look something like this: `192.168.0.10`
|
||||
|
||||
#### Step 8: Transfer the modules to the target HiKey
|
||||
|
||||
- Using your board's IP Address for linaro@<yourIPaddress>
|
||||
|
||||
```shell
|
||||
$ scp ../linux-image-4.4.0-yourowntag.deb linaro@192.168.1.15:~/
|
||||
$ ssh linaro@192.168.1.15
|
||||
#HiKey shell
|
||||
|
||||
$ hikey $ sudo dpkg -i linux-image-4.4.0-yourowntag.deb
|
||||
```
|
||||
Congratulations! Your new kernel is now ready to be used by your HiKey.
|
||||
|
||||
- You can check `/boot/grub/grub.cfg` for the new boot entry based on your own kernel
|
||||
- If you want only your kernel to be available, you can remove the default linux-image package, and grub will be automatically updated
|
||||
|
||||
### Boot Loader
|
||||
|
||||
Please see go [here](BuildSourceBL.md) for instructions on how to built the boot loader from source.
|
||||
|
||||
#### 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:
|
||||
|
||||
```shell
|
||||
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:
|
||||
|
||||
```shell
|
||||
sudo apt-get update
|
||||
sudo apt-get build-dep <pkg>
|
||||
apt-get source <pkg>
|
||||
```
|
||||
|
||||
Then you can rebuild the package locally with:
|
||||
|
||||
```shell
|
||||
cd <pkg-version>
|
||||
dpkg-buildpackage -b -us -uc
|
||||
```
|
||||
|
||||
#### TODO
|
||||
|
||||
* Explain how to build the 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.
|
|
@ -0,0 +1,126 @@
|
|||
#### Your Build Choice
|
||||
|
||||
[<img src="http://i.imgur.com/jl4GG0d.png" data-canonical-src="http://i.imgur.com/jl4GG0d.png" width="125" height="157" />]()
|
||||
[<img src="http://i.imgur.com/yRQKDI6.png" data-canonical-src="http://i.imgur.com/yRQKDI6.png" width="125" height="157" />]()
|
||||
[<img src="http://i.imgur.com/7wy1996.png" data-canonical-src="http://i.imgur.com/7wy1996.png" width="125" height="157" />]()
|
||||
[<img src="http://i.imgur.com/yRQKDI6.png" data-canonical-src="http://i.imgur.com/yRQKDI6.png" width="125" height="157" />]()
|
||||
[<img src="http://i.imgur.com/tXXN5bZ.png" data-canonical-src="http://i.imgur.com/tXXN5bZ.png" width="125" height="157" />]()
|
||||
|
||||
***
|
||||
|
||||
#### 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.
|
||||
|
||||
This method requires the following hardware:
|
||||
- HiKey with power supply
|
||||
- Host machine (Linux, Mac OS X, or Windows)
|
||||
- USB to microUSB cable
|
||||
- USB Mouse and/or keyboard (not required to perform flash)
|
||||
- HDMI Monitor with full size HDMI cable (not required to perform flash)
|
||||
|
||||
***
|
||||
|
||||
#### Step 2: Download the following files
|
||||
|
||||
>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 **LeMaker 1G boards** will use the **4G 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>)
|
||||
|
||||
- **l-loader.bin** ([**Download**](http://builds.96boards.org/releases/reference-platform/aosp/hikey/16.03/bootloader/l-loader.bin))
|
||||
- **fip.bin** ([**Download**](http://builds.96boards.org/releases/reference-platform/aosp/hikey/16.03/bootloader/fip.bin))
|
||||
- **nvme.img** ([**Download**](http://builds.96boards.org/releases/reference-platform/aosp/hikey/16.03/bootloader/nvme.img))
|
||||
- **ptable-aosp.img** ([**4G Download**](http://builds.96boards.org/releases/reference-platform/aosp/hikey/16.03/bootloader/ptable-aosp-4g.img) / [**8G Download**](http://builds.96boards.org/releases/reference-platform/aosp/hikey/16.03/bootloader/ptable-aosp-8g.img))
|
||||
- **hisi-idt.py** ([**Download**](http://builds.96boards.org/releases/reference-platform/aosp/hikey/16.03/bootloader/hisi-idt.py))
|
||||
- **boot_fat.uefi.img** ([**Download**](http://builds.96boards.org/releases/reference-platform/aosp/hikey/16.03/boot_fat.uefi.img.tar.xz))
|
||||
- **cache.img.tar.xz** ([**Download**](http://builds.96boards.org/releases/reference-platform/aosp/hikey/16.03/cache.img.tar.xz))
|
||||
- **userdata.img.xz** ([**4G Download**](http://builds.96boards.org/releases/reference-platform/aosp/hikey/16.03/userdata.img.tar.xz) / [**8G Download**](http://builds.96boards.org/releases/reference-platform/aosp/hikey/16.03/userdata-8gb.img.tar.xz))
|
||||
- **system.img.tar.xz** (<a href="http://builds.96boards.org/releases/reference-platform/aosp/hikey/16.03/system.img.tar.xz" target="_blank">**Download**</a>)
|
||||
|
||||
***
|
||||
|
||||
#### Step 3: Install AOSP Using Fastboot with Linux host
|
||||
|
||||
This section show how to install the AOSP operating system to your HiKey using the fastboot method on a Linux host computer.
|
||||
|
||||
1 - **Make sure fastboot is set up on host computer**
|
||||
|
||||
- Android SDK “Tools only” for Linux can be downloaded <a href="http://developer.android.com/sdk" target="_blank">here</a>
|
||||
- The Linux “Tools Only” SDK download does not come with fastboot, you will need to use the Android SDK Manager to install platform-tools.
|
||||
- To do this follow the “SDK Readme.txt” instructions included in your SDK “Tools Only” download.
|
||||
|
||||
If you are still having trouble setting up fastboot, <a href="https://youtu.be/W_zlydVBftA" target="_blank">click here</a> for a short tutorial video
|
||||
|
||||
2 - **Boot HiKey into Fastboot mode using J15 header**
|
||||
|
||||
- Link pins 1 and 2
|
||||
- Link pins 5 and 6
|
||||
- Connect host computer to HiKey board using USB to microUSB cable
|
||||
|
||||
Name | Link | State
|
||||
---- | ---- | -----
|
||||
Auto Power up | Link 1-2 | closed
|
||||
Boot Select | Link 3-4 | open
|
||||
GPIO3-1 | Link 5-6 | closed
|
||||
|
||||
- Power on HiKey board by plugging in power adapter
|
||||
- Esure HiKey is detected by host computere
|
||||
- Open Terminal application and execute the following:
|
||||
|
||||
```shell
|
||||
$ sudo fastboot devices
|
||||
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
|
||||
|
||||
3 - **Set HiKey into Recovery Mode using J15 header**
|
||||
|
||||
- Remove link between pins 5 and 6
|
||||
- Link pins 1 and 2
|
||||
- Link pins 3 and 4
|
||||
|
||||
Name | Link | State
|
||||
---- | ---- | -----
|
||||
Auto Power up | Link 1-2 | closed
|
||||
Boot Select | Link 3-4 | closed
|
||||
GPIO3-1 | Link 5-6 | open
|
||||
|
||||
4 - **Install Operating System update using downloaded files**
|
||||
|
||||
>**NOTE:** the ptable must be flashed first. Wait for a few seconds after the reboot command to allow the bootloader to restart using the new partition table.
|
||||
|
||||
```shell
|
||||
$ sudo fastboot flash ptable ptable-aosp-8g.img
|
||||
$ sudo fastboot reboot
|
||||
$ sudo fastboot flash boot boot_fat.uefi.img
|
||||
$ sudo fastboot flash cache cache.img
|
||||
$ sudo fastboot flash system system.img
|
||||
$ sudo fastboot flash userdata userdata-8gb.img
|
||||
```
|
||||
|
||||
5 - **Reboot HiKey into new OS**
|
||||
|
||||
- Wait untill all files have been flashed onto HiKey board
|
||||
- Power down HiKey by unplugging the power adapter
|
||||
- Remove microUSB cable from HiKey
|
||||
- Remove Link 3-4 from J15 header
|
||||
|
||||
Name | Link | State
|
||||
---- | ---- | -----
|
||||
Auto Power up | Link 1-2 | closed
|
||||
Boot Select | Link 3-4 | open
|
||||
GPIO3-1 | Link 5-6 | open
|
||||
|
||||
- Plug mouse/keyboard USB into type A USB ports
|
||||
- Power up HiKey by plugging in power adapter
|
||||
|
||||
|
||||
**Note:** the **username** and **password** are both **“linaro”** when the login information is requested.
|
||||
|
||||
**Congratulations! You are now booting your newly installed OS directly
|
||||
from eMMC on the HiKey!**
|
|
@ -0,0 +1,265 @@
|
|||
# Install Instructions - Reference Software Platform
|
||||
|
||||
This page provides download and installation instructions inteded for those interested in flashing the HiKey board with pre-built Linaro Reference Software. Two methods are currently available: **SD card method** and **Fastboot method**. If you are already familiar with these methods, you may find all necessary files in the [96Boards RPB 16.06 build folder](http://builds.96boards.org/releases/reference-platform/debian/hikey/16.06/).
|
||||
|
||||
## Contents
|
||||
|
||||
- [SD Card Method](#sd-card-method)
|
||||
- [Fastboot Method](#fastboot-method)
|
||||
|
||||
***
|
||||
|
||||
# SD Card Method
|
||||
|
||||
<img src="http://i.imgur.com/jl4GG0d.png" data-canonical-src="http://i.imgur.com/jl4GG0d.png" width="125" height="157" />
|
||||
<img src="http://i.imgur.com/yRQKDI6.png" data-canonical-src="http://i.imgur.com/yRQKDI6.png" width="125" height="157" />
|
||||
<img src="http://i.imgur.com/OQGR5yY.png" data-canonical-src="http://i.imgur.com/OQGR5yY.png" width="125" height="157" />
|
||||
<img src="http://i.imgur.com/yRQKDI6.png" data-canonical-src="http://i.imgur.com/yRQKDI6.png" width="125" height="157" />
|
||||
<img src="http://i.imgur.com/g8N21m1.png" data-canonical-src="http://i.imgur.com/g8N21m1.png" width="125" height="157" />
|
||||
|
||||
#### 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.
|
||||
|
||||
This method requires the following hardware:
|
||||
- HiKey with power supply
|
||||
- Host Linux machine (Linux, Mac OS X, or Windows)
|
||||
- MicroSD card with 4GB or more of storage
|
||||
- USB Mouse and/or keyboard
|
||||
- HDMI Monitor with full size HDMI cable
|
||||
|
||||
|
||||
***
|
||||
#### Step 2: Download 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)
|
||||
|
||||
***
|
||||
|
||||
#### Step 3: Prepare MicroSD card
|
||||
|
||||
- Ensure data from mircoSD card is backed up
|
||||
- Everything on microSD card will be lost by the end of this procedure.
|
||||
|
||||
***
|
||||
|
||||
#### Step 4: Find SD Card Device name
|
||||
|
||||
- Use host Linux computer
|
||||
- Open "Terminal" application
|
||||
- Remove SD card from host computer and run the following command:
|
||||
```shell
|
||||
lsblk
|
||||
```
|
||||
- Note all recognized disk names
|
||||
- **Insert SD card** and run the following command (again):
|
||||
```shell
|
||||
lsblk
|
||||
```
|
||||
- Note the newly recognized disk. This will be your SD card.
|
||||
- You will need to remember this device name for a later step.
|
||||
|
||||
***
|
||||
|
||||
#### Step 5: Recall Download Location
|
||||
|
||||
- Locate SD card install file from Downloads page.
|
||||
- This file will be needed for the next step.
|
||||
|
||||
***
|
||||
|
||||
#### Step 6: Unzip _SD Card Install Image_
|
||||
|
||||
- When unzipped, you will have a folder with the following contents:
|
||||
- Linaro/Debian Install Image (.img)
|
||||
- Readme
|
||||
|
||||
***
|
||||
|
||||
#### Step 7: Go to directory with _SD Card Install Image_ folder using Terminal
|
||||
|
||||
- Use host Linux computer
|
||||
- Open "Terminal" application
|
||||
- `cd` to the directory with your unzipped **SD Card Install Image**
|
||||
|
||||
```shell
|
||||
cd <extraction directory>
|
||||
|
||||
#Example:
|
||||
#<extraction directory> = /home/YourUserName/Downloads
|
||||
#For this example we assume the "Debian SD Card Install Image" is in the Downloads folder.
|
||||
cd /home/YourUserName/Downloads
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
#### Step 8: Install Image onto SD Card
|
||||
|
||||
**Checklist:**
|
||||
|
||||
- SD card inserted into host Linux computer
|
||||
- Recall SD Card device name **Step 4**
|
||||
- From within the extraction folder, using the Terminal execute the following commands:
|
||||
|
||||
**Execute:**
|
||||
|
||||
```shell
|
||||
sudo dd if=hikey-jessie_alip_2015MMDD-nnn.img of=/dev/XXX bs=4M oflag=sync status=noxfer
|
||||
```
|
||||
|
||||
**Note:**
|
||||
|
||||
- `if=hikey-jessie_alip_2015MMDD-nnn.img`: should match the name of the image that was downloaded.
|
||||
- `of=/dev/XXX`: XXX should match the name of the SD Card device name from [**Step 2**](). Be sure to use the device name with out the partition.
|
||||
- This command will take some time to execute. Be patient and avoid tampering with the terminal until process has ended.
|
||||
- Once SD card is done flashing, remove from host computer and set aside for a later step
|
||||
|
||||
|
||||
***
|
||||
|
||||
#### Step 9: Prepare HiKey with SD card
|
||||
|
||||
- Make sure HiKey is unplugged from power
|
||||
- Connect an HDMI monitor to the HiKey with an HDMI cable, and power on the monitor
|
||||
- Plug a USB keyboard and/or mouse into either of the two USB connectors on the HiKey
|
||||
- Insert the microSD card into the HiKey
|
||||
- Plug power adaptor into HiKey, wait for board to boot up.
|
||||
|
||||
***
|
||||
|
||||
#### Step 10: Install Linaro/Debian onto HiKey
|
||||
|
||||
<img src="http://i.imgur.com/F18wlgU.png" data-canonical-src="http://i.imgur.com/F18wlgU.png" width="400" height="250"/>
|
||||
|
||||
- If **Steps 1 - 8** were followed correctly, the above screen should be visible from your HiKey
|
||||
- Select the image to install and click “Install” (or type “i”). OS will be installed into the eMMC memory
|
||||
- This process can take a few minutes to complete
|
||||
- Upon completion, “Flashing has completed and OS has installed successfully....” message will appear.
|
||||
|
||||
Before clicking "OK":
|
||||
|
||||
- Remove the SD Card
|
||||
- Now click "OK" button and allow HiKey to reboot.
|
||||
|
||||
**Congratulations! You are now booting your newly installed operating system directly from eMMC on the HiKey**
|
||||
|
||||
[Back to top](#install-instructions---reference-software-platform)
|
||||
|
||||
***
|
||||
|
||||
# Fastboot Method
|
||||
|
||||
<img src="http://i.imgur.com/jl4GG0d.png" data-canonical-src="http://i.imgur.com/jl4GG0d.png" width="125" height="157" />
|
||||
<img src="http://i.imgur.com/yRQKDI6.png" data-canonical-src="http://i.imgur.com/yRQKDI6.png" width="125" height="157" />
|
||||
<img src="http://i.imgur.com/OQGR5yY.png" data-canonical-src="http://i.imgur.com/OQGR5yY.png" width="125" height="157" />
|
||||
<img src="http://i.imgur.com/yRQKDI6.png" data-canonical-src="http://i.imgur.com/yRQKDI6.png" width="125" height="157" />
|
||||
<img src="http://i.imgur.com/tXXN5bZ.png" data-canonical-src="http://i.imgur.com/tXXN5bZ.png" width="125" height="157" />
|
||||
|
||||
***
|
||||
|
||||
#### 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.
|
||||
|
||||
This method requires the following hardware:
|
||||
- HiKey with power supply
|
||||
- Host Linux machine (Linux, Mac OS X, or Windows)
|
||||
- USB to microUSB cable
|
||||
- USB Mouse and/or keyboard (not required to perform flash)
|
||||
- HDMI Monitor with full size HDMI cable (not required to perform flash)
|
||||
|
||||
***
|
||||
|
||||
#### Step 2: Download Debian partition table
|
||||
|
||||
> 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 **LeMaker 1G boards** will use the **4G 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))
|
||||
|
||||
***
|
||||
|
||||
#### Step 3: Download Boot image and Root File System
|
||||
|
||||
- **Debian Boot** ([**Download**](http://builds.96boards.org/releases/reference-platform/debian/hikey/16.06/hikey-boot-linux-*.uefi.img.gz))
|
||||
- **Debian Rootfs** (<a href="http://builds.96boards.org/releases/reference-platform/debian/hikey/16.06/hikey-rootfs-debian-jessie-alip-*.emmc.img.gz" target="_blank">**Download**</a>)
|
||||
|
||||
***
|
||||
|
||||
#### Step 4: Install Debian Using Fastboot with Linux host
|
||||
|
||||
This section show how to install the Linaro based Debian operating system to your HiKey using the fastboot method on a Linux host computer.
|
||||
|
||||
|
||||
|
||||
1 - **Make sure fastboot is set up on host computer**
|
||||
|
||||
- Android SDK “Tools only” for Linux can be downloaded <a href="http://developer.android.com/sdk" target="_blank">here</a>
|
||||
- The Linux “Tools Only” SDK download does not come with fastboot, you will need to use the Android SDK Manager to install platform-tools.
|
||||
- To do this follow the “SDK Readme.txt” instructions included in your SDK “Tools Only” download.
|
||||
|
||||
If you are still having trouble setting up fastboot, <a href="https://youtu.be/W_zlydVBftA" target="_blank">click here</a> for a short tutorial video
|
||||
|
||||
2 - **Boot HiKey into Fastboot mode using J15 header**
|
||||
|
||||
- Link pins 1 and 2
|
||||
- Link pins 5 and 6
|
||||
- Connect host computer to HiKey board using USB to microUSB cable
|
||||
|
||||
Name | Link | State
|
||||
---- | ---- | -----
|
||||
Auto Power up | Link 1-2 | closed
|
||||
Boot Select | Link 3-4 | open
|
||||
GPIO3-1 | Link 5-6 | closed
|
||||
|
||||
- Power on HiKey board by plugging in power adapter
|
||||
- Esure HiKey is detected by host computere
|
||||
- Wait for about 10 seconds
|
||||
- Open Terminal application and execute the following:
|
||||
|
||||
```shell
|
||||
$ sudo fastboot devices
|
||||
0123456789abcdef fastboot
|
||||
```
|
||||
|
||||
>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**
|
||||
|
||||
>**NOTE:** the ptable must be flashed first. Wait for a few seconds after the reboot command to allow the bootloader to restart using the new partition table.
|
||||
|
||||
```shell
|
||||
$ sudo fastboot flash ptable <ptable_FILE_NAME>.img
|
||||
$ sudo fastboot reboot
|
||||
$ sudo fastboot flash boot <boot_FILE_NAME>.uefi.img
|
||||
$ sudo fastboot flash system hikey-rootfs-debian-jessie-alip-YYYYMMDD-nnn.emmc.img
|
||||
```
|
||||
|
||||
4 - **Reboot HiKey into new OS**
|
||||
|
||||
- Wait untill all files have been flashed onto HiKey board
|
||||
- Power down HiKey by unplugging the power adapter
|
||||
- Remove microUSB cable from HiKey
|
||||
- Remove Link 5-6 from J15 header
|
||||
|
||||
Name | Link | State
|
||||
---- | ---- | -----
|
||||
Auto Power up | Link 1-2 | closed
|
||||
Boot Select | Link 3-4 | open
|
||||
GPIO3-1 | Link 5-6 | open
|
||||
|
||||
- Plug mouse/keyboard USB into type A USB ports
|
||||
- Power up HiKey by plugging in power adapter
|
||||
|
||||
|
||||
**Note:** the **username** and **password** are both **“linaro”** when the login information is requested.
|
||||
|
||||
**Congratulations! You are now booting your newly installed OS directly
|
||||
from eMMC on the HiKey!**
|
||||
|
||||
[Back to top](#install-instructions---reference-software-platform)
|
|
@ -0,0 +1 @@
|
|||
|
|
@ -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 @@
|
|||
|
Loading…
Add table
Add a link
Reference in a new issue