h2. License

The use of Juno software is subject to the terms of the Juno "End User License Agreement":https://releases.linaro.org/14.06/openembedded/juno-lsk/#tabs-5.

h2. Installation

Linaro OpenEmbedded releases are made up of the following components.

| *.img.gz | pre-built images for minimal and LAMP root filesystems |
| hwpack_*.tar.gz | hardware pack |
| linaro-image-*.rootfs.tar.gz | a choice of Root file system (RootFS) images |
| Image | kernel used by UEFI |
| juno_bl1.bin | ARM Trused Firmware BL1 binary |
| juno_fip.bin | ARM Trused Firmware Firmware Image Package (FIP) binary |
| juno.dtb | Device Tree Binary |
| board_recovery_image_0.7.5.zip | Juno board firmware recovery image |

Other files such as *.manifest, *.txt and *.html provide information such as package contents or MD5SUMs about the files they share a common filename with.

Linaro OpenEmbedded images are made up of two components. The "Hardware Pack":https://wiki.linaro.org/HardwarePacks, which contains the kernel, boot loader and/or Device Tree blob and a Root file system (RootFS) of your choice to generate an image.

Linaro provides two methods for installing Linaro binary builds:

# Using a pre-built image, which you can download
# Assembling your own image using provided components

h2. Pre-Installation Steps

Before any installation begins, it is important that you ensure your board has the latest "firmware":#firmware installed. Please see "Juno Board Recovery Image and MCC firmware update":#firmware below for the latest updates and installation instructions.  The 14.06 release has been formally QA tested with Firmware version 0.7.1 and sanity tested with Firmware version 0.7.5, but we always recommend that users install the latest version available.

h2. Using pre-built image

h3. Prerequisites

* Ubuntu 12.04 64 bit or newer on your desktop PC ("www.ubuntu.com":http://www.ubuntu.com)
* 2GB USB drive or larger
* Latest firmware installed onto the board. Please see "Juno Board Recovery Image and MCC firmware update":#firmware section below
* This release pre-built image, which you can download from the above list of artifacts

h3. Installation Steps

* Unzip the downloaded pre-built image
* Insert USB drive into your PC and note the assigned @'/dev/sdX'@

bc. dmesg
DRIVE=/dev/sdX # USB drive found from dmesg above
zcat *minimal*.img.gz | sudo dd bs=64k of=$DRIVE

When the image is created, skip down to the section "Booting the image".

*Note:* Windows users may use the "Image Writer for Windows":https://launchpad.net/win32-image-writer/+download

<hr>

h2. Building a custom image using pre-built components

Sometimes, you may wish to build your own custom image for your board. Perhaps you wish to use a more recent snapshot of the "hardware pack":https://wiki.linaro.org/HardwarePacks or take the latest Android build. Whatever the reason, you will want to use the "Linaro Image Tools":https://wiki.linaro.org/Linaro-Image-Tools to create a custom image.

Using components to generate the image will yield the same functionality found in the pre-built image of the same release.

h3. Prerequisites

* Ubuntu 12.04 64 bit or newer on your desktop PC, which you can download from "www.ubuntu.com":http://www.ubuntu.com
* Download Artifacts from above
* Get "Linaro image tools":https://wiki.linaro.org/Linaro-Image-Tools. There are multiple ways you can get the latest Linaro Image Tools:

** Method 1: Install them from the Linaro Image Tools "PPA":https://launchpad.net/~linaro-maintainers/+archive/tools

bc. sudo add-apt-repository ppa:linaro-maintainers/tools
sudo apt-get update
sudo apt-get install linaro-image-tools

** Method 2: Building from source

bc. wget http://releases.linaro.org/14.06/components/platform/linaro-image-tools/linaro-image-tools-2014.06.tar.gz

* Insert the USB drive and note the assigned @'/dev/sdX'@ or @'/dev/mmcblk0'@

bc. dmesg | less

Look for a line that looks like the following at the end of the log

@[288582.790722] sdc: sdc1 sdc2 sdc3 sdc4 <sdc5 sdc6 >@

Or, if your machine uses @'/dev/mmcblkX'@, you may see a line line this:

@[10770.938042]  mmcblk0: p1 p2 p3 p4 < p5 p6 >@

*WARNING:* In the next step, make sure you use @/dev/"whatever you see above"@. *You can erase your hard drive* with the wrong parameter.

* Create media

bc. sudo linaro-media-create --mmc /dev/sdX --dev juno --hwpack <hwpack filename> --binary <rootfs filename>

h2. Booting the image

After the media create tool has finished executing, remove the USB drive from your PC and insert it into the board.

Before you can boot the image you will need to install the latest "firmware":#firmware on the board. The "instructions below":#firmware provide information on how to do this.

See the "UEFI wiki":https://wiki.linaro.org/ARM/UEFI#Configure_UEFI for more information on how to configure UEFI to boot disk images.

In general terms, you use the UEFI Boot Manager to configure the "Boot Device":
* select USB device's boot partition after selecting option "@[1] Add Boot Device Entry@", then:

bc. File path of the EFI Application or the kernel: Image
Has FDT support? [y/n] y
Add an initrd: [y/n] n
Arguments to pass to the binary: console=ttyAMA0,115200 rootwait root=/dev/sda2

* select option @"[4] Update FDT path"@ from the Boot Menu, choose the boot partition, then:

bc. File path of the FDT blob: juno\juno.dtb


h2. DS-5 Configuration Files for Juno

As an optional step, you may wish to install DS-5 configuration files that will allow you to debug Juno. The procedure is as follows:

1.      Extract the DS-5 config files anywhere on your host PC.

2.      Start DS-5 and select &quot;Preferences&quot; from the &quot;Window&quot; menu.

3.      In the window that opens, expand the &quot;DS-5&quot; heading and select &quot;Configuration Database&quot;

4.      In the dialogue that opens, fill in:

a.       Name, which can be any string you like e.g. &quot;Juno&quot;.

b.      Location, which must be the directory that you extracted the DS-5 config files to. Note this is not the &quot;boards&quot; directory, but the parent directory that now contains &quot;boards&quot;.

5.      Click Ok to close the dialogue

6.      Back in the &quot;Configuration Database&quot; screen, click on &quot;Rebuild database&quot; then click Ok.

 

h2(#firmware). Juno Board Recovery Image and MCC firmware update

This section describes how to reset all firmware images to their factory default state. This procedure is also the only way that you can install updates to the MCC firmware.

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 board recovery image onto the flash memory device, replacing any files already in the flash memory.

To update the MCC firmware only, the procedure is just 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 or update the MCC firmware, 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

bc. 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 the MCC firmware only then skip to step 7. Otherwise, for a full system recovery, format the configuration flash memory (FAT16).

7.      Extract the board recovery image ("board_recovery_image_0.7.5.zip":http://releases.linaro.org/14.06/android/images/armv8-android-juno-lsk/board_recovery_image_0.7.5.zip) to the root directory of the configuration flash memory, preserving the directory structure.

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

9.      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.
