Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

A x86 based Linux system with installed cross compile toolchain is required to develop Yocto based software for i.MX 8-based designs. It is possible to use a virtual machine that runs Linux but a dedicated system with Ubuntu is preferrable. Furthermore, the host should have a serial port to access the debug console and an SD card reader.

This guide shows the procedure for Yocto Project 2.5 (Sumo) as an example. Use the latest Yocto release whenever possible.

Setting up and building Yocto

1. Installation in Ubuntu 16.04 64 bit (Clean install)

2. Some packages are needed:

Code Block
	$ sudo apt-get update
	$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath  socat  libsdl1.2-dev xterm  sed cvs subversion coreutils texi2html docbook-utils python-pysqlite2 help2man make gcc g++ desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff curl lzop asciidoc repo python3-pip 

3. Config the local git:

Code Block
	$ git config --global user.email "youremail"
	$ git config --global user.name "Your name"

A SSH key must be generated in order to fetch te software from the congatec git server, after login into git.congatec.com go to the link https://git.congatec.com/profile/keys and follow the instructions there to generate and link a key with the computer will fetch and build the Yocto BSP.

4. To get the yocto recipes:

Code Block
	$ mkdir ~/yocto
	$ cd ~/yocto
	$ repo init -u ssh://git@git.congatec.com/imx8x_early_access/imx8x-manifest.git -b cgtimx8x__sumo-4.14.98-2.0.0__cgtqx8x-Y1
	$ repo sync

5. Config the build environment:

5.1. conga-QX8X:

Code Block
   $ MACHINE='imx8qxp-cgtqx8x' DISTRO=fsl-imx-wayland source fsl-setup-release.sh -b build-qx8x
	  [ ! ] EULA accept needed for next step.
5.1.1 Memory

The Yocto variable MEMORY_PRESENT is included to select the different memory configurations for the different variants

Possible values of MEMORY_PRESENT are:

  • "1GB"

  • "2GB"

  • "4GB"

By default is set to 2GB. If the 4GB memory variant is the target, please add the following line into your conf/local.conf file:

Code Block
MEMORY_PRESENT = "4GB"

This variable is used into u-boot and imx-sc-firmware to select consistenly the memory present on the target hardware

6. Build the fsl-image-qt5 image use:

Code Block
	$ bitbake fsl-image-qt5

The process will take hours.

When it finishes the image will be located under the build folder: tmp/deploy/images/

Transfer the root file system

In order to transfer the image to a uSD card, follow the next steps changing sdX for your detected device:

Code Block
	$ cd ~/yocto/build-qx8x/tmp/deploy/images/imx8qxp-cgtqx8x/
	$ bzip2 -df fsl-image-qt5-imx8qxp-cgtqx8x.sdcard.bz2
	$ sudo dd if=fsl-image-qt5-imx8qxp-cgtqx8x.sdcard of=/dev/sdX
	$ sync

HDMI bridge

In order to use the correct device tree for the modules with the HDMI bridge, use the following commands on the bootloader:

3.1 QX8X

Code Block
setenv fdt_file imx8qxp-cgtqx8x-adv7533.dtb
saveenv
boot