Name | Last modified | Size | License | |
---|---|---|---|---|
![]() |
Parent Directory | |||
![]() |
MANIFEST | 12-Jan-2018 14:22 | 248 | open |
![]() |
MD5SUMS | 12-Jan-2018 14:22 | 193 | open |
![]() |
boot.tar.bz2 | 12-Jan-2018 14:22 | 5.0M | open |
![]() |
kernel_config | 12-Jan-2018 14:22 | 59.6K | open |
![]() |
linaro_android_build_cmds.sh | 12-Jan-2018 14:22 | 7.4K | open |
![]() |
linaro_kernel_build_cmds.sh | 12-Jan-2018 14:22 | 1.8K | open |
![]() |
pinned-manifest-ann.xml | 12-Jan-2018 14:22 | 66.3K | open |
![]() |
pinned-manifest.xml | 12-Jan-2018 14:22 | 66.3K | open |
![]() |
ramdisk.img | 12-Jan-2018 14:22 | 536.6K | open |
![]() |
source-manifest-ann.xml | 12-Jan-2018 14:22 | 66.2K | open |
![]() |
source-manifest.xml | 12-Jan-2018 14:22 | 66.7K | open |
![]() |
system.tar.bz2 | 26-Feb-2018 18:53 | 222.6M | open |
![]() |
userdata.tar.bz2 | 12-Jan-2018 14:22 | 460.7K | open |
About the Linaro Android Release for FVP (Multi-arch 64-bit)
The Linaro Android release for FVP is based on a snapshot of the Android AOSP master taken on the 1st June. The build contains multi-arch support allowing full use of the 64-bit ARMv8-A architecture and supports both 64-bit and 32-bit applications. Java-only applications will run as 64-bit in the supplied configuration with no modification. The release uses Linaro Stable Kernel version 3.10 and runs on FVP Base AEMv8 model 0.8 build 5202 and later. The sources are built using Linaro GCC version 4.9.
The ARMv8-A reference software stack combined with the including the ARMv8-A Fixed Virtual Platform models provides the ARM ecosystem with a foundation to accelerate 64-bit Android availability. The availability of this port is the culmination of a broad architecture enablement program carried out by Linaro, ARM and the ARM partnership. ARM partners will now have access to a 64-bit AOSP file system, together with a broad range of supporting material including open source toolchains from Linaro and supporting documentation.
For those with access to the FVPs, this release can be used to examine the internals of the Android Open Source Project in a running system. Application developers, particularly those working in Java, will also be able to use develop some applications via the recently announced Android ‘L’ preview SDK.
It should be noted that this is an early software preview and not all 3rd party applications will run correctly at this time. Performance is limited due to the ART runtime running in interpreted mode, more recent versions of the AOSP tree have now enabled this and future monthly builds will feature much better performance, along with wider compatibility as the baseport and AOSP matures. Next month’s build in particular will improve as the ART backend compiler is enabled along with some recent optimizations.
The Android AOSP software provided in this release is functionally tested with CTS version 4.4 and the CTS results are shared with members. The BIONIC component is validated with Android BIONIC tests. Android Monkey tests were run for stress testing. Multi-arch support has been validated using examples provided in Android NDK. Detailed CTS results are made available to members seperately through the Juice mailing list.
The Linaro Android releases for FVP appear monthly. Sources are also made available so you can build your own images (see the Building from Source tab).
A build for the Juno ARM Development Platform is available here
Android AOSP Patches – Summary :
The following list of patches developed by ARM and Linaro engineering teams were applied to Android AOSP dated June 1st 2014 to get Android booting to UI on ARMv8 Fast Models. These patches can be found on Linaro’s Android Git repositories. Few of these patches have been submitted to AOSP and being tracked for acceptance.
- build boot files and generate tarballs
- set default runtime and zygote property in device config files
- Increase timeouts
- Fix resolution issues for Juno.
- AArch64: force SurfaceFlinger to use last egl config
- Don’t use memset to clear the framebuffer on arm64
- Increase timeouts for slow platforms
- Don’t write to the tty in init to avoid the cursor
- Quick and dirty utility to sync the system clock on Juno
- bionic libc test: make it can be compiled for 64 bit
Where To Find More Information
More information on Linaro can be found on our website.
Feedback and Support
Subscribe to the important Linaro mailing lists and join our IRC channels to stay on top of Linaro development.
- Linaro Android Development mailing list
- Linaro Android IRC channel on irc.freenode.net at
#linaro-android
- Bug reports should be filed in Launchpad against the individual packages that are affected. If a suitable package cannot be identified, feel free to assign them to Linaro Android project.
- Questions? ask Linaro.
- Interested in commercial support? inquire at Linaro support
Fixed in this release
- NONE
Known issues
- CTS failures are observed for few packages. Detailed CTS report is available to members for reference.
Prerequisites
You’ll need latest ARM FVP Base models and a license to use the models. Follow the instructions at http://www.arm.com/products/tools/models/fast-models/foundation-model.php
Get artifacts
Scroll down and click on ‘Downloads’
Click on each link to download:
- boot.tar.bz2
- system.tar.bz2
- userdata.tar.bz2
Get linaro image tools
Run these commands to get all the dependencies for linaro-image-tools and the tip of linaro-image-tools
$ sudo add-apt-repository ppa:linaro-maintainers/tools $ sudo apt-get update $ sudo apt-get install linaro-image-tools
You can also use the tip of linaro-image-tools from http://git.linaro.org/infrastructure/linaro-image-tools.git
Create mmc image for the ARM FVP Base AEMv8 models
Run linaro image tools
$ linaro-android-media-create --image_file mmc.bin --image_size 2000M --dev vexpress --system system.tar.bz2 --userdata userdata.tar.bz2 --boot boot.tar.bz2
If you’re using tip of linaro image tools
$ ./linaro-image-tools/linaro-android-media-create --image_file mmc.bin --image_size 2000M --dev vexpress --system system.tar.bz2 --userdata userdata.tar.bz2 --boot boot.tar.bz2
Running the models (verified on FVP Base model build 5602)
$ tar -jxvf boot.tar.bz2 $ cd boot/ $ /path/to/FVP_Base_AEMv8A-AEMv8A/models/Linux64_GCC-4.1/FVP_Base_AEMv8A-AEMv8A \ -C pctl.startup=0.0.0.0 \ -C bp.secure_memory=0 \ -C cluster0.NUM_CORES=4 \ -C cluster1.NUM_CORES=4 \ -C cache_state_modelled=0 \ -C bp.pl011_uart0.untimed_fifos=1 \ -C bp.secureflashloader.fname=bl1.bin \ -C bp.flashloader0.fname=fvp_fip.bin \ -C bp.virtioblockdevice.image_path=../mmc.bin
Set UEFI configuration, update kernel/ramdisk path and bootargs
Stop the UEFI boot process and configure it for FVP models:
$ telnet 127.0.0.1 -debug 5000 -e ^z
Telnet escape character is ‘b’.
Telnet escape character is ‘^Z’.
Trying 127.0.0.1…
setsockopt (SO_DEBUG): Permission denied
Connected to 127.0.0.1.
Escape character is ‘^Z’. 7 seconds
[1] Linaro disk image on virtio
[2] Shell
[3] Boot Manager
Start: 3
[1] Add Boot Device Entry
[2] Update Boot Device Entry
[3] Remove Boot Device Entry
[4] Update FDT path
[5] Return to main menu
Choice: 2
[1] Linaro disk image on virtio
Update entry: 1
File path of the EFI Application or the kernel: kernel
Has FDT support? [y/n] y
Add an initrd: [y/n] y
File path of the initrd: ramdisk.img
Arguments to pass to the binary: console=ttyAMA0 earlyprintk=pl011,0×1c090000 amba-clcd.mode=VGA
Description for this new Entry: Linaro disk image on virtio
[1] Add Boot Device Entry
[2] Update Boot Device Entry
[3] Remove Boot Device Entry
[4] Update FDT path
[5] Return to main menu
Choice: 5
[1] Linaro disk image on virtio
[2] Shell
[3] Boot Manager
Start: 1 PEI 1122 ms DXE 259 ms BDS 8 ms
Total Time = 1390 ms[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 3.10.40-04438-g6a78140 (pundiramit@flying-dutchman) (gcc version 4.9 20140514 (prerelease) (GCC) ) #1 SMP Mon Jun 2 14:50:25 IST 2014
Black screen
The boot screen has been disabled to speed up booting. This means you may not see anything on the CLCD terminal for a while depending on the performance of the machine the model is running on. For example a first boot on a 2 GHz machine with 32 GB of RAM took 20 minutes. Subsequent boots should take approximately half the time to boot.
How to download and build Android sources
Recommended method to do a linaro android build is to use linaro android build script(linaro_android_build_cmds.sh). You can download this script from the Downloads section of the build page. Use this script to do a complete ARMv8 Android build for FVP models from scratch. If you prefer to do it manuaaly then follow the “Get the source” and “Build” instructions below.
Get the source
$ sudo add-apt-repository ppa:linaro-maintainers/tools
$ sudo apt-get update
$ sudo apt-get install gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc openjdk-7-jdk openjdk-7-jre vim-common python-parted python-yaml wget uuid-dev
$ curl "https://android.git.linaro.org/gitweb?p=tools/repo.git;a=blob_plain;f=repo;hb=refs/heads/stable" > repo
$ chmod +x repo
$ ./repo init -u git://android.git.linaro.org/platform/manifest.git -b linaro-android-14.06-release -m armv8-android-fvp-lsk.xml
$ ./repo sync # this may take some time
Build
$ export CPUS=`grep -c processor /proc/cpuinfo`
$ export TARGET_PRODUCT=vexpress
$ export TARGET_BUILD_VARIANT=eng
$ export USE_LINARO_TOOLCHAIN=true
$ . build/envsetup.sh
$ make -j${CPUS} boottarball systemtarball userdatatarball
Running the build on FVP models
Follow “Binary Image Installation” tab for instructions.
Project: "platform/external/libnl"
Description: "Project: Non AOSP project. Supporting obsolete AOSP libnl project"
Project: "platform/external/speex"
Description: "Project: Non AOSP project. Open Source speech codec. Linaro monifications include making project build as a shared library, build resampler plugin and few additional NEON patches."
Project: "platform/external/stressapptest"
Description: "Project: stressapptest tries to maximize randomized traffic to memory from processor and I/O, with the intent of creating a realistic high load situation in order to stress test the device. Also used in cache-coherency testing."