DART-6UL-Brillo M10 R0
Introduction
This WIKI describes how to build and deploy Brillo m10-release on the DART-6UL. It is based on Google Brillo m10-release
Overview
The objective of this document is to guide DART-6UL Brillo developers to obtain Brillo m10-release sources, setting up host environment, compilation and deployment.
This document contains instructions for:
- Hardware and software requirements.
- Setup the hardware.
- Setup the toolchain.
- Download & build the sources.
- Install the binaries on the DART-6UL SOM.
Supported hardware and features
Feature |
Description |
---|---|
SOM support |
DART-6UL |
Carrier Board support |
VAR-6ULCustomBoard |
CPU |
|
NAND Flash size support |
not supported by Brillo |
eMMC |
up to 64GB |
DDR size support configuration |
128MB up to 512MB DDR3 |
SD-Card |
+ |
Wired Network |
x2, 10/100 Mbps Ethernet |
Wireless Network |
Support for Broadcom BCM4343, 802.11bgn STA, AP |
Bluetooth |
4.2 |
SPI |
+ |
I2C |
+ |
Canbus |
+ |
USB OTG |
x2, Host or Device |
Uarts |
x3, up to 3.6 Mbps. |
RTC |
+ |
Display | not supported by Brillo |
Audio | not yet supported |
Hardware Requirements
VAR-STK-6UL evaluation kit.
Host (PC) setup requirements
The host development environment for Brillo is based on Ubuntu, please install Ubuntu version 14.04 64bit LTS http://www.ubuntu.com/download/desktop
Install required packages on host PC
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip python-networkx bc
If your product requires integration with third-party libraries, also install the following packages:
$ sudo apt-get install automake autoconf libtool gettext scons cmake
Obtain source code
Variscite's Linux kernel and U-Boot are available through Github.
Required patches for the Brillo file system are included in Variscite BSP folder
Installing Repo
Repo is a tool that makes it easier to work with Git in the context of Android, Brillo and Yocto. For more information about Repo, see the Android Developing web page.
mkdir ~/bin curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo export PATH=~/bin:$PATH
Download Google Brillo m10-release
mkdir ~/var_brillo_m10_build cd ~/var_brillo_m10_build repo init -u https://android.googlesource.com/brillo/manifest -b brillo-m10-release repo sync -j8 -c
Clone Variscite's devices BSP
cd ~/var_brillo_m10_build/device git clone https://github.com/varigit/MX6x-android.git variscite cd variscite git checkout -b mx6ul_brillo_m10
Apply Variscite's DART-6UL platform patches
cd ~/var_brillo_m10_build device/variscite/vardart6ul/tools/install.sh
Enable Google Services
Before proceed with your build, make sure to Enable Google Services.
Going through the steps 2, 3 and 4 of the above procedure (skipping board specific examples), you will get the following 4 fields:
- client_id
- client_secret
- api_key
- model_id
These 4 fields must be inserted in your device/variscite/vardart6ul/base_product/weaved.conf file.
Build Brillo Images
Change to Brillo top level directory.
cd ~/var_brillo_m10_build source build/envsetup.sh lunch vardart6ul-eng make -j8 2>&1 | tee build.log
and at the and of build process, generate a flashable ext4 file system
cd ~/var_brillo_m10_build/out/target/product/vardart6ul ~/var_brillo_m10_build/out/host/linux-x86/bin/simg2img system.img system_raw.img
Relevant images created by the build
Relevant images are stored in out/target/product/vardart6ul folder:
Image |
Description |
---|---|
boot.img | Brillo boot image. SOM dependent: contains zImage, dtb and ramdisk. |
system_raw.img | Brillo ext4 file system image. SOM agnostics. |
Boot options
Brillo mandatory requires WiFi for connectivity and eMMC/SD for fastbooting.
Booting from on board uSD would remove Wifi support, so is not compliant.
Booting from NAND would remove eMMC support, so is not compliant.
The only complaint configuration is booting from on SoM eMMC.
Flash options
Flashing Brillo from recovery SD-Card
An example of flashing the various images into NAND flash and eMMC, can be found here: http://variwiki.com/index.php?title=DART-6UL_Yocto_NAND_Recovery.
You can copy the following files in a folder of pre-built recovery SD-Card:
- ~/var_brillo_m10_build/device/variscite/vardart6ul/flash.sh
- ~/var_brillo_m10_build/device/variscite/vardart6ul/tools/emmc/SPL
- ~/var_brillo_m10_build/device/variscite/vardart6ul/tools/emmc/u-boot.img
- ~/var_brillo_m10_build/out/target/product/vardart6ul/boot.img
- ~/var_brillo_m10_build/out/target/product/vardart6ul/system_raw.img
then boot from recovery SD-card, change folder to the one you copied the files and run
$ ./flash /dev/mmcblk1
Flashing Brillo with USB Fastboot
Coming soon...
Manual operations
Setup the toolchain path to point to arm-linux-androideabi- tools in prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin
export ARCH=arm export PATH=~/var_brillo_m10_build/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin:$PATH export CROSS_COMPILE=arm-linux-androideabi-
Manually build U-Boot bootloader
Change directory to u-boot and execute following commands:
cd ~/var_brillo_m10_build/bootable/bootloader/uboot-imx $ make distclean $ make mx6ul_var_dart_mmc_brillo_defconfig $ make -j8
This command will generate the U-Boot images 'SPL' and 'u-boot.img'.
Manually build Linux kernel
cd ~/var_brillo_m10_build/hardware/bsp/kernel/variscite/kernel_imx make distclean make imx_v7_var_android_defconfig make -j4 zImage
This will generate kernel image 'zImage' in kernel/arch/arm/boot folder.