DART-SD410 Android LL 1 1: Difference between revisions

From Variscite Wiki
No edit summary
m (Text replacement - "http://variwiki" to "https://variwiki")
 
(76 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{Product|category1=VAR-SOM-MX6|category2=|image=0849-EditSML.jpg
{{PageHeader|DART-SD410 Android-LL-5.1.1 Developers Guide}} {{DocImage|category1=DART-SD410|category2=Android}} __toc__


|cpu=Qualcomm Snapdragon™ 410 1.2GHz Quad Cortex-A53 64-bit processor
= Introduction =
|ram=Up to 2GB LP-DDR3
|gfx=400MHz Adreno 306 2D/3D Graphics accelerator <br>1080p30 encode/decode
|display=4-lane DSI, Up to 720p60/1080p30, 24-bit,<br>On carrier DSI to HDMI bridge,<br>On carrier DSI to LVDS bridge
|storage=SD-Card, Up to 16GB eMMC
|Camera=2 x MIPI CSI,<br>4-lane up to 13MP,<br>2-lane up to 8MP
|rtc=On carrier
|i2c=Up to 6
|spi=Up to 6
|net=Wi-Fi 802.11b/g/n, <br>Ethernet: 10/100Mbps On Carrier
|bluetooth=Bluetooth: 4.0/BLE backward compatible to 2.x+EDR and 3.0
|temp= -25to 85°C
|usb=1 x USB2.0 Host/Device
|audio=Digital microphone, <br>2 x analog microphone,<br>Stereo headphone, <br>Mono speaker, 2 x I2S
|wire=N/A
|uart=x2
|dim=25mm x 43mm x 4mm
|description=Bringing the Snapdragon™ magic to the embedded market, the DART-SD410 supports the Qualcomm Snapdragon™ 410 (APQ8016) 1.2GHz Quad Cortex-A53 in 64-bit architecture. In an amazing 25mm x 43mm ultra compact size, the DART-SD410 offers a staggering processing power and highly optimized power consumption, ideal for embedded portable devices and battery operated products. High-resolution camera, advanced multimedia support and broad connectivity options are just some of the features that ensure a richer experience in various embedded segments and applications.<br> <br> <span style="color:#FF0000"> *[[http://variscite.com/support-forum/index.php Click for Variscite support forum]]</span>


|documentation= <br>
This WIKI describes how to build and deploy Android Lollipop [http://source.android.com/source/build-numbers.html#platform-code-names-versions-api-levels-and-ndk-releases Lollipop-5-1-1] on the DART-SD410. It is based on Qualcomm Android-LL-5.1.1.
{{DocBox|boxwidth=21|system=Yocto
|content=


'''Fido Release 10 - 3.14.38'''
= Overview =
*[[VAR-SOM-MX6 Yocto Fido New R2| Complete Developer Guide]]
'''Legacy releases'''
*[[VAR-SOM-MX6 Yocto Legacy | Legacy]]
'''Development'''
*[http://variscite.com/support-forum/index.php Support forum]
*[[VAR-SOM-MX6 Yocto NAND Recovery|<span style="color:red">NAND recovery</span>]]


The objective of this document is to guide DART-SD410 Android developers to obtain Android Lollipop sources, setting up host environment, compilation and deployment.


}} {{DocBox|boxwidth=21|system=Android
This document contains instructions for:
|content=
'''Android Lollipop 5.0.0'''
*[[VAR-SOM-MX6 Android LL1 R01|Developers Guide]]
*[[VAR-SOM-MX6 Android Unit Testing LL 500 100|Unit Testing]]
*[[https://docs.google.com/spreadsheets/d/1Az7akmy8oGi1JxuNkBGB-7-EE7GGJgxbHvOSK1srDlA/pubhtml Release notes]]
'''Android KitKat 4.4.2'''
*[[VAR-SOM-MX6 Android KK R03|Developers Guide]]
*[[VAR-SOM-MX6 Android Unit Testing KK 100|Unit Testing]]
*[[https://docs.google.com/spreadsheet/pub?key=0ApQEYRZoDteFdDYzRXVfR0xkMF8tcnUtbDBsSWpmTVE&output=html Release notes]]
'''Android JB 4.2.2'''
*[[VAR-SOM-MX6 Android GS_R21|Developers Guide]]
*[[VAR-SOM-MX6 Android Unit Testing|Unit Testing]]
*[[media:VAR-SOM-MX6-Android-JB422_110_R3-ReleaseNotes.pdf| Android JB422 110 R3 Release Notes]]
*[http://variscite.com/support-forum/index.php Support forum]
*[[VAR-SOM-MX6 Yocto NAND Recovery|<span style="color:red">NAND recovery</span>]]
}}{{DocBox|boxwidth=21|system=Windows
|content=
'''WEC2013 is provided and supported by Variscite's partner Marco Contenti. <br/>For more details:'''<br/>
[http://www.projectsas.it/index.php?page=var-som-bsp VAR-SOM-MX6 WEC2013 Support]


}} {{DocBox|boxwidth=21|system=Ubuntu
*Hardware and software requirements.
|content=
*Setup the hardware.
'''Getting Started'''
*Setup the toolchain.
*[[VAR-SOM-MX6 Ubuntu GS|Developers Guide]]
*Download & build the sources.
*Install the binaries on the DART-SD410 SOM.


'''Release Notes'''
== Document Reference ==
*[[VAR-SOM-MX6 Ubuntu GS|Ubunto Linaro]]
}}
}} <!-- FEED_START -->{{News|
==15/12/2015 - Variscite releases an update to Yocto Fido R2 Wiki ==
New Fido R2 WIKI. Added features, new look & feel.
==09/11/2015 - Variscite releases an update to Yocto Release 10 Fido ==
New update to the Wilink driver from R8.5 to R8.6. Please follow the instruction in the update section of the wiki.
==26/10/2015 - Variscite releases Yocto Release 10 Fido ==
New Fido Release 10 - 3.14.38 based on Freescale release.
==7/09/2015 - Variscite releases Yocto R10 Fido beta ==
New Fido Beta R10 - 3.14.38 based on Freescale release.
==29/07/2015 - Variscite releases Android Lollipop R2 ==
New Android Lollipop based on Freescale release.
DART support and Bluetooth
==17/07/2015 - Variscite releases Android Lollipop R1 ==
New Android Lollipop based on Freescale release.
This version replace KitKat 443.
==30/06/2015 - Variscite releases Dizzy R1 ==
New Yocto Dizzy release based on Freescale L3.14.26_1.0.0-ga.<br>
==25/02/2015 - Variscite releases Daisy R7 ==
New Yocto Daisy release based on Freescale L3.10.53_1.1.0-ga.<br>
==13/01/2015 - Variscite releases KitKat release 3 ==
Added eMMC support, ti-utils and HDMI Audio.<br>
nand-recovery version 33<br>
==24/12/2014 - Variscite releases Daisy beta2 ==
Update for Freescale based Yocto Daisy release.<br>
nand-recovery version 32<br>
Refer to Release notes for further information.
==9/12/2014 - Variscite releases Daisy beta1 ==
New Freescale based Yocto Daisy release.<br>
nand-recovery version 31<br>
Refer to Release notes for further information.
==19/11/2014 - Variscite releases KitKat 4.4.2 100 ==
New Freescale based KitKat release.<br>
Refer to Release notes for further information.
==19/9/2014 - Variscite releases Yocto Dora V5 Beta2 ==
New Freescale based Yocto Dora release.<br>
Refer to Release notes for further information.
==12/7/2014 - Yocto Dora V5 Beta2 released==
Initial release.<br>
Refer to Release notes for further information.
==Android update May/2014==
'''Android-JB-4.2.2 110 r3'''
*Linux Kernel updated to support 4GB NAND
==Release March/2014==
'''NAND recovery Release 23'''
*Android-JB-4.2.2 110 r3
*Yocto Dora R4
*3 Images for Dual/Quad, DualLite and Solo
'''Android-JB-4.2.2 110 r3'''
*U-Boot updated
*Linux Added Can bus support
*Android enabled Fastboot and improved build system.
Please read release notes for complete description
'''Yocto Dora R4'''
*U-Boot updated
*Linux Added Can bus support
*Yocto updated utilities and some bug fix.
Please read release notes for complete description
}} <!-- FEED_END -->


[[Category:Pages generating RSS feeds|Pages_generating_RSS_feeds]]
This release is based on Qualcomm APQ8016_410C_LA.BR.1.2.4-01810-8x16.0_5.1.1_Lollipop_P2 release. Please refer to [https://developer.qualcomm.com/hardware/dragonboard-410c/tools Qualcomm Developer Network] before you start building.
 
= Supported hardware and features =
 
{| class="wikitable"
|-
! scope="col" | Feature
! scope="col" | Description
|-
| SOM support
| DART-SD410
|-
| Carrier Board support
| VAR-DT410CustomBoard
|-
| CPU
| Qualcomm - Snapdragon 410 
|-
| Resque Image
| Resque Images set can be downloaded from FTP
|-
| eMMC
| up to 16GB
|-
| DDR size support configuration
| Up to 2G LPDDR3
|-
| SD-Card
| +
|-
| Wired Network
| 10/100 Mbps Ethernet
|-
| Wireless Network
| 802.11abg AP, & Wi-Fi
|-
| Bluetooth
| +
|-
| SPI
| +
|-
| I2C
| +
|-
| USB OTG
| Host and Device
|-
| Uarts
| x2
|-
| RTC
| +
|-
| Display
| HDMI: 1080P (On board DSI-to-HSMI bridge, 800x480 resolution)<br/> LVDS (On board DSI-to-LVDS bridge, 800x480 resolution)
|-
| Audio
| Line In & Line out<br/>Mono Speaker<br/>Audio over HDMI
|-
| Camera
| IMX135 camera sensor. Board can be ordered separately at&nbsp;: sales@variscite.com
|-
|}
 
= Hardware Requirements =
 
DART-SD410 evaluation kit.
 
Please refer to [https://variwiki.com/index.php?title=DART-SD410_Android_Host_Install Host requirements installation.]
 
= <span style="line-height: 1.5em;">Obtain Variscite's BSP</span> =
 
<span style="line-height: 1.5em;">Please download Android Board Support Package file from Variscite's FTP site.</span> <br/>
Contact [mailto:support@variscite.com Variscite support] for FTP credentials.
 
== <span style="line-height: 1.5em;"><span style="line-height: 1.5em;">Unpack Variscite's Android Release Package</span></span> ==
<pre>
$ mkdir ~/dart-sd410
$ cd ~/dart-sd410
$ unzip ~/Downloads/variscite_bsp_vla.br_.1.2.4-01810-8x16.0-3.zip
$ cd source/
</pre>
 
= <span style="line-height: 1.5em;">Download and Build Android Images</span> =
The following commands will download the full Android release from different Git repositories and build the Android images.
It may take a very long time depending on Internel connection, Build machine, and remote servers.
The process may fail fetching the repositories, in this case it can be started again.
 
<pre>
$ chmod +x SD410c_build.sh
The file SD410c_build.sh can be edited and parameter $BUILD_MACHINE changed to follow the build machine.
The best setting is number of threads of the CPU minus 2.
$ ./SD410c_build.sh
The build system will ask for credentials for repo initialization.
</pre>
 
= Rebuild Android Image =
To rebuild the Android run:
<pre>
$ source build/envsetup.sh
$ lunch msm8916_64-userdebug
$ make -j8 WITH_DEXPREOPT=true WITH_DEXPREOPT_PIC=true DEX_PREOPT_DEFAULT=nostripping | tee log.txt
 
You can change the number of build threads (-j parameter) to a better number to make the build faster.
</pre>
 
= <span style="line-height: 1.5em;">Flashing newly built images</span> =
The build process creates an out directory and puts all images in the following directory:</br>
''/out/target/product/msm8916_64/</br>
The following image files are created:</br>
'''emmc_appsboot.mbn''' - little kernel (uboot)</br>
'''boot.img''' - kernel and dtb files</br>
'''system.img''' - system folder</br>
The images can be flashed one by one via fastboot.</br>
'''In order to enter fastboot mode cycle the power or press Reset key with Back key pressed.</br>'''
==To flash the whole system==
<pre>
$ cd out/target/product/msm8916_64/
$ sudo fastboot flash aboot emmc_appsboot.mbn
$ sudo fastboot flash persist persist.img
$ sudo fastboot flash userdata userdata.img
$ sudo fastboot flash system system.img
$ sudo fastboot flash recovery recovery.img
$ sudo fastboot flash boot boot.img
</pre>
 
==To flash kernel and dtbs==
Sometimes the changes are done only to the android kernel, in this case there is no need to flash the whole system.</br>
The kernel and dtb files are located in '''boot.img''' file.</br>
Flashing it is enough
<pre>
$ cd out/target/product/msm8916_64/
$ sudo fastboot flash boot boot.img
</pre>
 
==To flash little kernel==
Sometimes the changes are done only to the bootloader, in this case there is no need to flash the whole system.</br>
The little kernel is located in '''emmc_appsboot.mbn''' file.</br>
Flashing it is enough
<pre>
$ cd out/target/product/msm8916_64/
$ sudo fastboot flash aboot emmc_appsboot.mbn
</pre>
 
=Adding Applications=
==Adding Broswer==
*Download Browser.zip file from Variscite's FTP site into ''~/dart-sd410/source/'' directory.<br>
*The file is located in ''dart-sd410/Software/Android/AdditionalPackages/'' FTP directory<br>
*Extract the downloaded file into your android directory
<pre>
$ cd ~/dart-sd410/source/
$ unzip Browser.zip
</pre>
*Build the Android
*Flash the new Android into the board by fastboot
 
==Adding GPS Test==
*Download GPSTest.zip file from Variscite's FTP site into ''~/dart-sd410/source/'' directory.<br>
*The file is located in ''dart-sd410/Software/Android/AdditionalPackages/'' FTP directory<br>
*Extract the downloaded file into your android directory
<pre>
$ cd ~/dart-sd410/source/
$ unzip GPSTest.zip
</pre>
*Add the new package into your board configuration
<pre>
$ gedit ./APQ8016_410C_LA.BR.1.2.4-01810-8x16.0_5.1.1_Lollipop_P2/device/qcom/msm8916_64/msm8916_64.mk
</pre>
locate the following lines:<br>
<br>
''PRODUCT_PACKAGES += \''<br>
''    libqcomvisualizer \''<br>
''    libqcompostprocbundle \''<br>
''    libqcomvoiceprocessing''<br><br>
Add a new package to the PRODUCT_PACKAGES<br><br>
''PRODUCT_PACKAGES += \''<br>
''    libqcomvisualizer \''<br>
''    libqcompostprocbundle \''<br>
''    libqcomvoiceprocessing \ '' <br>
''    GPSTest''<br>
<br>
Save the file and exit gedit
*Build the Android
*Flash the new Android into the board by fastboot
 
==Adding Geekbench==
Follow the same procedure as for GPSTest to add Geekbench into your image file.
==Troubleshoot==
If something goes wrong check the following:
* The downloaded files should be extracted into ''packages/apps/'' directory verify that the new directory exists
* Verify that the build process rebuilds the system.img image
* Verify that the fastboot burns the system.img into system partition succsessfully
= Customizing hardware =
The DART-SD410 hardware customization should be done by changing DTS files.<br>
This [https://www.raspberrypi.org/documentation/configuration/device-tree.md article] is very helpful for reading about the DTS files.<br>
The VAR-SD410CustmoBoard DTS files are located in ''kernel/arch/arm/boot/dts/qcom/'' folder.
The DTS file tree is:
<pre>
apq8016-var-sd410.dts
└── apq8016-var-sd410.dtsi
    ├── apq8016-camera-sensor-var-sd410.dtsi
    ├── dsi-panel-var-sd410.dtsi
    └── apq8016-dart.dtsi
        ├── msm8916-pinctrl.dtsi
        └── msm8916.dtsi
            ├── skeleton64.dtsi
            ├── msm8916-coresight.dtsi
            ├── msm8916-smp2p.dtsi
            ├── msm8916-pinctrl.dtsi
            ├── msm8916-ipcrouter.dtsi
            ├── msm-gdsc-8916.dtsi
            ├── msm8916-iommu.dtsi
            ├── msm8916-gpu.dtsi
            ├── msm8916-mdss.dtsi
            │  ├── dsi-panel-sim-video.dtsi
            │  └── dsi-panel-sim-cmd.dtsi
            ├── msm8916-mdss-pll.dtsi
            ├── msm8916-iommu-domains.dtsi
            ├── msm8916-bus.dtsi
            ├── msm8916-camera.dtsi
            ├── msm-pm8916-rpm-regulator.dtsi
            ├── msm-pm8916.dtsi
            ├── msm8916-regulator.dtsi
            └── msm8916-pm.dtsi
</pre>

Latest revision as of 11:56, 10 June 2020

DART-SD410 Android-LL-5.1.1 Developers Guide

Introduction

This WIKI describes how to build and deploy Android Lollipop Lollipop-5-1-1 on the DART-SD410. It is based on Qualcomm Android-LL-5.1.1.

Overview

The objective of this document is to guide DART-SD410 Android developers to obtain Android Lollipop 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-SD410 SOM.

Document Reference

This release is based on Qualcomm APQ8016_410C_LA.BR.1.2.4-01810-8x16.0_5.1.1_Lollipop_P2 release. Please refer to Qualcomm Developer Network before you start building.

Supported hardware and features

Feature Description
SOM support DART-SD410
Carrier Board support VAR-DT410CustomBoard
CPU Qualcomm - Snapdragon 410
Resque Image Resque Images set can be downloaded from FTP
eMMC up to 16GB
DDR size support configuration Up to 2G LPDDR3
SD-Card +
Wired Network 10/100 Mbps Ethernet
Wireless Network 802.11abg AP, & Wi-Fi
Bluetooth +
SPI +
I2C +
USB OTG Host and Device
Uarts x2
RTC +
Display HDMI: 1080P (On board DSI-to-HSMI bridge, 800x480 resolution)
LVDS (On board DSI-to-LVDS bridge, 800x480 resolution)
Audio Line In & Line out
Mono Speaker
Audio over HDMI
Camera IMX135 camera sensor. Board can be ordered separately at : sales@variscite.com

Hardware Requirements

DART-SD410 evaluation kit.

Please refer to Host requirements installation.

Obtain Variscite's BSP

Please download Android Board Support Package file from Variscite's FTP site.
Contact Variscite support for FTP credentials.

Unpack Variscite's Android Release Package

$ mkdir ~/dart-sd410
$ cd ~/dart-sd410
$ unzip ~/Downloads/variscite_bsp_vla.br_.1.2.4-01810-8x16.0-3.zip
$ cd source/

Download and Build Android Images

The following commands will download the full Android release from different Git repositories and build the Android images. It may take a very long time depending on Internel connection, Build machine, and remote servers. The process may fail fetching the repositories, in this case it can be started again.

$ chmod +x SD410c_build.sh
The file SD410c_build.sh can be edited and parameter $BUILD_MACHINE changed to follow the build machine. 
The best setting is number of threads of the CPU minus 2.
$ ./SD410c_build.sh
The build system will ask for credentials for repo initialization.

Rebuild Android Image

To rebuild the Android run:

$ source build/envsetup.sh 
$ lunch msm8916_64-userdebug 
$ make -j8 WITH_DEXPREOPT=true WITH_DEXPREOPT_PIC=true DEX_PREOPT_DEFAULT=nostripping | tee log.txt

You can change the number of build threads (-j parameter) to a better number to make the build faster.

Flashing newly built images

The build process creates an out directory and puts all images in the following directory:
/out/target/product/msm8916_64/
The following image files are created:
emmc_appsboot.mbn - little kernel (uboot)
boot.img - kernel and dtb files
system.img - system folder
The images can be flashed one by one via fastboot.
In order to enter fastboot mode cycle the power or press Reset key with Back key pressed.

To flash the whole system

$ cd out/target/product/msm8916_64/
$ sudo fastboot flash aboot emmc_appsboot.mbn
$ sudo fastboot flash persist persist.img
$ sudo fastboot flash userdata userdata.img
$ sudo fastboot flash system system.img
$ sudo fastboot flash recovery recovery.img
$ sudo fastboot flash boot boot.img

To flash kernel and dtbs

Sometimes the changes are done only to the android kernel, in this case there is no need to flash the whole system.
The kernel and dtb files are located in boot.img file.
Flashing it is enough

$ cd out/target/product/msm8916_64/
$ sudo fastboot flash boot boot.img

To flash little kernel

Sometimes the changes are done only to the bootloader, in this case there is no need to flash the whole system.
The little kernel is located in emmc_appsboot.mbn file.
Flashing it is enough

$ cd out/target/product/msm8916_64/
$ sudo fastboot flash aboot emmc_appsboot.mbn

Adding Applications

Adding Broswer

  • Download Browser.zip file from Variscite's FTP site into ~/dart-sd410/source/ directory.
  • The file is located in dart-sd410/Software/Android/AdditionalPackages/ FTP directory
  • Extract the downloaded file into your android directory
$ cd ~/dart-sd410/source/
$ unzip Browser.zip
  • Build the Android
  • Flash the new Android into the board by fastboot

Adding GPS Test

  • Download GPSTest.zip file from Variscite's FTP site into ~/dart-sd410/source/ directory.
  • The file is located in dart-sd410/Software/Android/AdditionalPackages/ FTP directory
  • Extract the downloaded file into your android directory
$ cd ~/dart-sd410/source/
$ unzip GPSTest.zip
  • Add the new package into your board configuration
$ gedit ./APQ8016_410C_LA.BR.1.2.4-01810-8x16.0_5.1.1_Lollipop_P2/device/qcom/msm8916_64/msm8916_64.mk

locate the following lines:

PRODUCT_PACKAGES += \
libqcomvisualizer \
libqcompostprocbundle \
libqcomvoiceprocessing

Add a new package to the PRODUCT_PACKAGES

PRODUCT_PACKAGES += \
libqcomvisualizer \
libqcompostprocbundle \
libqcomvoiceprocessing \
GPSTest

Save the file and exit gedit

  • Build the Android
  • Flash the new Android into the board by fastboot

Adding Geekbench

Follow the same procedure as for GPSTest to add Geekbench into your image file.

Troubleshoot

If something goes wrong check the following:

  • The downloaded files should be extracted into packages/apps/ directory verify that the new directory exists
  • Verify that the build process rebuilds the system.img image
  • Verify that the fastboot burns the system.img into system partition succsessfully

Customizing hardware

The DART-SD410 hardware customization should be done by changing DTS files.
This article is very helpful for reading about the DTS files.
The VAR-SD410CustmoBoard DTS files are located in kernel/arch/arm/boot/dts/qcom/ folder. The DTS file tree is:

apq8016-var-sd410.dts
└── apq8016-var-sd410.dtsi
    ├── apq8016-camera-sensor-var-sd410.dtsi
    ├── dsi-panel-var-sd410.dtsi
    └── apq8016-dart.dtsi
        ├── msm8916-pinctrl.dtsi
        └── msm8916.dtsi
            ├── skeleton64.dtsi
            ├── msm8916-coresight.dtsi
            ├── msm8916-smp2p.dtsi
            ├── msm8916-pinctrl.dtsi
            ├── msm8916-ipcrouter.dtsi
            ├── msm-gdsc-8916.dtsi
            ├── msm8916-iommu.dtsi
            ├── msm8916-gpu.dtsi
            ├── msm8916-mdss.dtsi
            │   ├── dsi-panel-sim-video.dtsi
            │   └── dsi-panel-sim-cmd.dtsi
            ├── msm8916-mdss-pll.dtsi
            ├── msm8916-iommu-domains.dtsi
            ├── msm8916-bus.dtsi
            ├── msm8916-camera.dtsi
            ├── msm-pm8916-rpm-regulator.dtsi
            ├── msm-pm8916.dtsi
            ├── msm8916-regulator.dtsi
            └── msm8916-pm.dtsi