DART-6UL-Brillo M10 R0: Difference between revisions
m (Text replacement - "http://variwiki" to "https://variwiki") |
|||
(8 intermediate revisions by one other user not shown) | |||
Line 135: | Line 135: | ||
<pre> | <pre> | ||
cd ~/var_brillo_m10_build/device | cd ~/var_brillo_m10_build/device | ||
git clone https://github.com/varigit/MX6x-android.git | git clone https://github.com/varigit/MX6x-android.git -b mx6ul_brillo_m10 variscite | ||
</pre> | </pre> | ||
Line 150: | Line 148: | ||
Before proceed with your build, make sure to [https://codelabs.developers.google.com/codelabs/brillo-your-product/ Enable Google Services]. | Before proceed with your build, make sure to [https://codelabs.developers.google.com/codelabs/brillo-your-product/ 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 | Going through the steps 2, 3 and 4 of the above procedure (skipping board specific examples), you will get the following 4 strings: | ||
* client_id | * client_id | ||
* client_secret | * client_secret | ||
* api_key | * api_key | ||
* model_id | * model_id | ||
These 4 | These 4 strings must be inserted in your device/variscite/vardart6ul/base_product/weaved.conf file. | ||
{{note| To successfully complete the above procedure you will need an authorized Google account. If not yet done, [https://services.google.com/fb/forms/brilloweaveinviteform/ request an invite] |info}} | {{note| To successfully complete the above procedure you will need an authorized Google account. If not yet done, [https://services.google.com/fb/forms/brilloweaveinviteform/ request an invite] |info}} | ||
{{note| In order to avoid page loading problems, it's strongly suggested to execute the above procedure using [https://www.google.com/chrome/ Google Chrome browser] |info}} | |||
= Build Brillo Images = | = Build Brillo Images = | ||
Line 170: | Line 170: | ||
</pre> | </pre> | ||
and at the and of build process, generate a flashable file system | and at the and of build process, generate a flashable ext4 file system | ||
<pre> | <pre> | ||
Line 208: | Line 208: | ||
== Flashing Brillo from recovery SD-Card == | == Flashing Brillo from recovery SD-Card == | ||
An example of flashing the various images into NAND flash and eMMC, can be found here: | An example of flashing the various images into NAND flash and eMMC, can be found here: https://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: | 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/flash.sh | ||
* ~/var_brillo_m10_build/device/variscite/vardart6ul/tools/emmc/SPL | * ~/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/device/variscite/vardart6ul/tools/emmc/u-boot.img | ||
Line 221: | Line 221: | ||
<pre> | <pre> | ||
$ ./flash /dev/mmcblk1 | $ ./flash.sh -f /dev/mmcblk1 | ||
</pre> | </pre> | ||
Line 240: | Line 240: | ||
</pre> | </pre> | ||
== | == Manually build U-Boot bootloader == | ||
Change directory to u-boot and execute following commands: | Change directory to u-boot and execute following commands: | ||
Line 255: | Line 255: | ||
{{note| Due to a problem in androideabi toolchain the SPL file is not allowing the board to boot. Since you are not supposed to change Secondary Program Loader, in case of u-boot changes we suggest to use in any case the prebuilt SPL available in ~/var_brillo_m10_build/device/variscite/vardart6ul/tools/emmc/SPL |info}} | {{note| Due to a problem in androideabi toolchain the SPL file is not allowing the board to boot. Since you are not supposed to change Secondary Program Loader, in case of u-boot changes we suggest to use in any case the prebuilt SPL available in ~/var_brillo_m10_build/device/variscite/vardart6ul/tools/emmc/SPL |info}} | ||
== | == Manually build Linux kernel == | ||
<pre> | <pre> |
Latest revision as of 11:54, 10 June 2020
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 -b mx6ul_brillo_m10 variscite
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 strings:
- client_id
- client_secret
- api_key
- model_id
These 4 strings 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: https://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/tools/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.sh -f /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.