Table of contents
This tutorial provides instructions for building Yocto binaries for ESPRESSObin. In-detail requirements for building Yocto on a Linux build machine can be read in the Yocto Project Mega Manual, section 18.3.1 Support Linux Distributions. In this tutorial we will be building Yocto on Ubuntu 14.04.
Prerequisites
Create a directory where the Yocto sources will be downloaded (e.g. /opt/yocto) and head into that directory:
user@laptop:~$ mkdir /opt/yocto && cd /opt/yocto
Before downloading the sources, install repo and other necessary bitbake packages:
user@laptop:/opt/yocto$ sudo apt-get install repo diffstat texi2html texinfo subversion chrpath gettext
Below snippet shows the required packages for Ubuntu; consult this section of the Yocto Project Mega Manual on the required packages for other supported Linux distributions.
Downloading and building from source
Now on to downloading Marvell Yocto source code for ESPRESSObin:
user@laptop:/opt/yocto$ repo init -u https://github.com/MarvellEmbeddedProcessors/marvell-embedded-linux-platform.git -b krogoth
Followed by synchronizing all files:
user@laptop:/opt/yocto$ repo sync
After all the updates have been installed, select the correct MACHINE for ESPRESSObin:
user@laptop:/opt/yocto$ MACHINE=cb-88f3720-ddr3-espressobin . setup-environment espressobin
Executing this command automatically changes the location to the espressobin/ subdirectory. From there, run bitbake command to build the root filesystem and kernel binaries for ESPRESSObin:
user@laptop:/opt/yocto/espressobin$ bitbake marvell-image-machine-test
After the build is finished, find the newly built rootfs tarball and kernel image containing the dtb file in the espressobin/tmp/deploy/images/cb-88f3720-ddr3-espressobin/ subdirectory:
user@laptop:/opt/yocto/espressobin$ ls tmp/deploy/images/cb-88f3720-ddr3-espressobin/ Image Image--4.4.52-r0.2-armada-3720-community-20170605070422.dtb Image--4.4.52-r0.2-cb-88f3720-ddr3-espressobin-20170605070422.bin Image-armada-3720-community.dtb Image-cb-88f3720-ddr3-espressobin.bin README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt marvell-image-machine-test-cb-88f3720-ddr3-espressobin-20170605070422.license_manifest marvell-image-machine-test-cb-88f3720-ddr3-espressobin-20170605070422.license_manifest.csv marvell-image-machine-test-cb-88f3720-ddr3-espressobin-20170605070422.rootfs.manifest marvell-image-machine-test-cb-88f3720-ddr3-espressobin-20170605070422.rootfs.tar.bz2 marvell-image-machine-test-cb-88f3720-ddr3-espressobin.license_manifest marvell-image-machine-test-cb-88f3720-ddr3-espressobin.license_manifest.csv marvell-image-machine-test-cb-88f3720-ddr3-espressobin.manifest marvell-image-machine-test-cb-88f3720-ddr3-espressobin.tar.bz2 modules--4.4.52-r0.2-cb-88f3720-ddr3-espressobin-20170605070422.tgz modules-cb-88f3720-ddr3-espressobin.tgz
The important files here are the rootfs package (marvell-image-machine-test-cb-88f3720-ddr3-espressobin.tar.bz2), the kernel image (Image-cb-88f3720-ddr3-espressobin.bin) and the dtb file for ESPRESSObin (Image-armada-3720-community.dtb).
Now head to Boot from removable storage - Yocto to transfer these files to a removable media of your choice and to boot Yocto on ESPRESSObin.