Juno platform software user guide
- 1. Notice
- 2. Prerequisites
- 3. Provided components
- 4. Syncing and Building software stack
- 5. AArch32 builds for Juno development board
- These instructions assume that:
- Your host PC is running Ubuntu Linux 18.04 LTS.
- You are running the provided scripts in a bash shell environment.
- The following utilities must be available on your host PC:
- compression library
- openssl headers
To resolve these dependencies, run:
sudo apt-get update sudo apt-get install chrpath gawk texinfo libssl-dev diffstat wget git-core unzip gcc-multilib \ build-essential socat cpio python python3 python3-pip python3-pexpect xz-utils debianutils \ iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm git-lfs openssl \ curl libncurses-dev libz-dev python-pip repo
- Note that this software has been tested with
- repo version 2.11
- python version 2.7
Within the Yocto project, each component included in the Juno software stack is specified as a bitbake recipe. The recipes specific to Juno are located at: <workspace>/layers/meta-arm.
Create a new folder that will be your workspace, which will henceforth be referred to as <workspace> in these instructions
mkdir <workspace> cd <workspace> repo init -u https://git.linaro.org/landing-teams/working/arm/arm-reference-platforms-manifest.git -m juno-yocto.xml -b refs/tags/JUNO-2021.04.27 repo sync -j$(nproc) export DISTRO="poky" export MACHINE="juno" source setup-environment bitbake core-image-minimal
The initial clean build will be lengthy, given that all host utilities are to be built as well as the target images. This includes host executables (python, cmake, etc.) and the required toolchain(s)
Once the build is successful, all images will be placed in the <workspace>/build-poky/tmp-poky/deploy/images/juno directory.
Note that the BSP includes the Poky Linux distribution, which offers BusyBox-like utilities.
Based on Trusted Firmware-A
Based on SCP Firmware
Based on U-Boot gitlab
The recipe responsible for building a 5.4 version of the Yocto Linux kernel
The layer is based on the poky Linux distribution. The provided distribution is based on BusyBox and built using glibc.
Copy <workspace>/build-poky/tmp-poky/deploy/image/juno/firmware-image-juno.tar.gz into Juno SDCARD
Connect Juno's serial port and USB type B port (both on the back panel) to the computer Open a terminal emulator (e.g. minicom) on the computer Power on the Juno board On the terminal emulator: Cmd> usb_on On the host computer: (adjust path to JUNO mount point as necessary): rm -rf /media/username/JUNO/* # make a back-up first tar -xf <workspace>/build-poky/tmp-poky/deploy/image/juno/firmware-image-juno.tar.gz -C /media/username/JUNO/ umount /media/username/JUNO/ # may take some time to sync
Prepare a USB stick
Insert a USB stick (min. 8GB) to a computer running Linux, Find out which device it is using "lsblk" if the usb stick already has non-GPT partitions, please delete all the partitions manually before issuing below command Write the image to the USB stick and eject:
sudo dd if=<workspace>/build-poky/tmp-poky/deploy/image/juno/core-image-minimal-juno.ext4 of=/dev/sdX bs=1M sudo eject /dev/sdX Insert the USB stick in Juno board (bottom-right port on the back panel) Refer Juno Getting Started documentation https://developer.arm.com/tools-and-software/development-boards/juno-development-board
Prepare NFS root file system
mkdir /path/to/nfsroot cd /path/to/nfsroot sudo tar xjf <workspace>/build-poky/tmp-poky/deploy/image/juno/core-image-minimal-juno.tar.bz2 # root is required Set up an NFS server and export the nfsroot in /etc/exports: /path/to/nfsroot *(rw,nohide,insecure,no_subtree_check,async,no_root_squash) Restart the NFS server or run: sudo exportfs -a configure u-boot bootcmd https://community.arm.com/developer/tools-software/oss-platforms/w/docs/542/nfs-remote-network-userspace-using-u-boot https://community.arm.com/developer/tools-software/oss-platforms/w/docs/495/tftp-remote-network-kernel-using-u-boot
yocto support for juno 32-bit is not supported
Copyright (c) 2020, Arm Limited. All rights reserved.