NameLast modifiedSizeLicense

Parent Directory Parent Directory
other MANIFEST 11-Jan-2018 16:01 308 open
other MD5SUMS 11-Jan-2018 16:01 334 open
application/x-tar boot.tar.bz2 26-Feb-2018 10:53 10.1M open
text changelog.txt 11-Jan-2018 16:01 1.2K open
application/x-sh 11-Jan-2018 16:01 303 open
text installed-files.txt 11-Jan-2018 16:01 93.8K open
other kernel_config 11-Jan-2018 16:01 97.8K open
application/x-sh 11-Jan-2018 16:01 7.7K open
application/x-sh 11-Jan-2018 16:01 130 open
text pinned-manifest.xml 11-Jan-2018 16:01 92.1K open
other ramdisk.img 11-Jan-2018 16:01 1.4M open
text source-manifest.xml 11-Jan-2018 16:01 49.7K open
other system.img 26-Feb-2018 10:53 930.0M open
application/x-tar system.tar.bz2 26-Feb-2018 10:54 354.5M open
other userdata.img 26-Feb-2018 10:54 550.0M open
application/x-tar userdata.tar.bz2 26-Feb-2018 10:55 50.5M open
application/x-tar vendor.tar.bz2 11-Jan-2018 16:03 4.4M open

About the Reference Linaro Confectionary Release for Juno (Multi-arch 64-bit)

This Reference Linaro Confectionary Release is based on the Nougat
android-7.0.0_r14 branch. This build is a userdebug variant
build, which contains multi-arch support allowing full use of the
64-bit ARMv8-A architecture, supports both 64-bit and 32-bit
applications and has selinux enabled by default.

This build uses the Linaro ARM Landing team kernel which is
based on the Android flavour of Linaro Stable Kernel version 3.18.40,
and includes the ARM Mali drivers for 3D graphics acceleration,
UEFI support, and Energy Aware Scheduling(EAS) support.

The sources are built with AOSP LLVM 3.8 clang-2690385 (based on LLVM 3.8.256229),
and gcc 4.9 for both 64bit and 32bit.

To switch to permissive mode, pass “androidboot.selinux=permissive” as
the boot parameter in the UEFI bootargs configuration, or run
“setenforce 0” from command line as root user after booted.

The Android AOSP software provided in this release is functionally
tested with CTS version 7.0 R1 and the CTS results are shared with
members, some benchmarks were run to observe the performance trend
in various fields as well.

Sources are also made available so you can build your own images
(see the Building from Source tab).

What is new

  • Android source updated to base on android-7.0.0_r14 version
  • Tests like tjbench, bindertest in kernel, mediacodec, bionic benchmark, stringbench were integrated


Please check the changelog.txt for details to see what Linaro has done on top of AOSP android-7.0.0_r14.

About the Android flavour of Linaro Stable Kernel (LSK)

The kernel used by Linaro Confectionary Release is based on the Android
flavour of Linaro Stable Kernel (LSK), which is produced, validated and
released by Linaro and is based on the Linux stable kernel tree.

The LSK focuses on quality and stability and is therefore a great
foundation for product development. It also includes backports of
commonly desired features, provided they meet the quality requirements,
and also any bug fixes.

Sources are also made available so you can build your own images (see
‘Building from Source’).


Please use the firmware files from here, or extract the board_recovery_image.tar.bz2 file from the boot.tar.bz2 file listed above.
And then extract board_recovery_image.tar.bz2 and copy the contents to the board.


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 at #linaro-android
  • Linaro Android ART IRC channel on at #linaro-art
  • Bug reports should be filed in ‘Bugzilla’ under “Linaro Android” product and “Reference Linaro Confectionery Release (R-LCR)” component.
    • You will need to login to your Linaro account. If you do not have an account or are having problems, email for help.
  • More general bug reports should be filed in Bugzilla against the individual packages that are affected.
  • Questions? ‘ask linaro’
  • Interested in commercial support? inquire at ‘Linaro Support’

Android Patch Summary

There are patches developed by ARM and Linaro engineering teams were applied
to get Android booting to UI on the ARMv8-A Juno development platform.
These patches can be found on Linaro’s Android Git repositories via files:

Any patches can be contributed through the instructions described Here

Known Issues and Limitations

Known limitations

  • Lack of audio support may cause apps using audio to hang
  • HDLCD is not well supported yet
  • OpenCL support is not present at this time and will be enabled in a future release

Known issues

The following known issues are present in this release. Please contact if you wish to know more information about these issues or have access problems when attempting to view them.

Bug ID Bug title Bug summary
Bug 2540 [LCR-R]: Juno: sched test suite IPA functional test cases failed on LCR-Reference
Bug 2448 Juno: linpack score is low from cutoff score on LCR-Reference
Bug 2447 Juno geekbench3 score is low from cutoff score on LCR-Reference
Bug 2251 LCR-R: Juno: benchmark: AndebenchPro-2015 failed to complete graphics test run
Bug 1948 some codec tests fails on LCR 16.10 builds

Get artifacts

Click on each link to download:

  • boot.tar.bz2
  • system.tar.bz2
  • userdata.tar.bz2

Get linaro image tools

Run following commands to install the linaro-image-tools package and dependencies:

  $ wget -O -|sudo apt-key add -
  $ sudo echo "deb trusty main" >>/etc/apt/sources.list
  $ sudo echo "deb-src trusty main" >>/etc/apt/sources.list
  $ sudo apt-get update
  $ sudo apt-get install linaro-image-tools

Change ‘trusty’ in the instructions to whichever distro release you want packages for.
For details you can reference the “Linaro Repositories” page here

If you’re using a “tip” build then we suggest you use the tip of linaro-image-tools:

  $ git clone

Flash Linaro tarball images on USB drive

Please make sure you specified the right USB drive path you see from the dmesg log for following steps,
or you could erase your hard drive with the wrong parameter.

Insert USB drive into your PC, and flash the image files with the linaro-android-media-create command:

$ linaro-android-media-create --mmc /dev/sdX --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 --mmc /dev/sdX --image_size 2000M --dev vexpress --system system.tar.bz2 --userdata userdata.tar.bz2 --boot boot.tar.bz2

Firmware update

This section describes how to update the firmware on the Juno board.

The configuration of the Juno Development Platform board is determined by a set of files stored on a flash memory device on the board. The flash memory can be accessed via a USB-B socket on the rear panel of the board. When connected to a host computer, the flash memory will appear as a USB mass storage device with a FAT16 filesystem. The files in this filesystem are edited to control the configuration of the board.

The configuration of the Juno Development Platform board can be returned to factory default by extracting the Juno board recovery image onto the flash memory device, replacing any files already in the flash memory.

To install firmware images that you have built yourself, the procedure is the same except that you will overwrite the contents of the /SOFTWARE/ directory with your own images.

To update the MCC firmware only, the procedure is the same except that the MCC firmware update bundle will contain only a subset of the files contained in the full recovery image.

To carry out a system recovery, update the MCC firmware, or install your own custom firmware images, follow these steps:

1. Connect a serial terminal to the top 9-pin UART0 connector on the rear panel (115200 baud, 8, n, 1).

2. Connect a USB cable between the USB-B connector on the rear panel and a USB port of your host computer.

3. Connect the 12 volt power supply to the board.

The serial terminal will show the command prompt Cmd>

4. At the Cmd> prompt on the serial terminal, issue the command usb_on

Cmd> usb_on

The configuration flash memory should now be visible on the host computer as a mass storage device.

5. Save to the host PC any of the existing files in the configuration flash memory that you wish to retain for future use.

6. If you wish to update one or more of the firmware components then skip to step 7. Otherwise, for a full system recovery, format the configuration flash memory (FAT16).

7. Extract the board_recovery_image.tar.bz2 included in the boot.tar.bz2 list above to the root directory of the configuration flash memory, preserving the directory structure.

8. If you are performing a system recovery or installing an update from ARM then skip to step 9. Otherwise if you wish to install firmware images that you have built yourself then delete the bl1.bin and fip.bin from the /SOFTWARE/ directory in the configuration flash memory, and copy your own bl1.bin and fip.bin images into that directory to replace them.

9. Safely eject the mass storage device, giving it time to write the files to the internal storage.

10. Press the red ON/OFF button on the rear panel of the board and wait for reprogramming to complete.

The board will load the default configuration and boot up.

Configure Juno boot time UEFI configuration

Stop at UEFI prompt and select the Shell item, it will boot up directly for you.

Accessing Source Code

Linaro Android Source Code

Download the Android building script for this build
from the list of artifacts listed above, and run it.
This script will help to download the entire source code for both Android and
the kernel and attempt to build it.

Most commonly used options for

$ ./ -h #To print the script usage
$ ./ -t #To build from the tip of the branch without overlay
$ ./ -t -o <overlay> #To build from the tip of the branch with provided overlay
$ ./ -m <pinned_manifest> -o <overlay> #To reproduce an exact build from pinned manifest
$ ./ -t -u <url-aosp-mirror-manifest> #Provide the url to your AOSP mirror manifest

The pinned manifest(pinned-manifest.xml(?) and source manifest(source-manifest.xml) can be found from the list of artifacts

Compiling Linaro Android RootFS+Kernel

The following simple steps download, install and compile a complete Linaro Android distribution

  • Download and install Ubuntu 14.04 64 bit or newer (download)
  • Download the Android building script for this build from the list of artifacts listed above
  • Run the script

Build from the tip of the source:

chmod a+x
./ -t  or  ./ -t -u <url-aosp-mirror-manifest>

Or reproduce the exactly the same as this buid:

chmod a+x
./ -m pinned-manifest.xml or ./ -m pinned-manifest.xml -u <url-aosp-mirror-manifest>

Installing Android on your board

cd android/out/target/product/juno
sudo linaro-android-media-create --mmc /dev/sdX --dev vexpress --boot boot.tar.bz2 --system system.tar.bz2 --userdata userdata.tar.bz2

Insert the USB drive into your board and reboot it. You must configure UEFI each time you create a new disk image.