Difference between revisions of "iMX8M Industrial Yocto Image Building"

From Voipac Wiki
Jump to navigation Jump to search
Line 26: Line 26:
  
 
== Building the image ==
 
== Building the image ==
Voipac provides quick and simple-to-use option how to build an image using [https://github.com/voipac/yocto-imx8m-voipac/blob/master/build_image.sh prepared script]:
+
Voipac provides quick and simple-to-use option how to build an image by using [https://github.com/voipac/yocto-imx8m-voipac/blob/master/build_image.sh prepared script]:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
#!/bin/bash
 
#!/bin/bash

Revision as of 02:37, 9 December 2023

This Wiki page guides thorugh the process of downloading the Yocto Project source files for release 3.1 (dunfell), preparing and building images for the iMX8M Industrial Development Kit.

Before images can be built, neccesary steps need to be performed to setup the host machine.


All the source files for this customized Yocto Project, together with the recent changes made, can be inspected and downloaded at the Voipac GitHub repository.

Cloning the project

Create a new directory for the project environment:

mkdir ~/voipac-yocto
cd ~/voipac-yocto

Clone the iMX8M Industrial Yocto Project into the host machine:

git clone https://github.com/voipac/yocto-imx8m-voipac.git

Building the image

Voipac provides quick and simple-to-use option how to build an image by using prepared script:

#!/bin/bash

set -e

# Copy manifests helper function
copy_manifests() {
	rm -rf .repo
	mkdir -p .repo/manifests
	cp scripts/voipac.xml .repo/manifests/
}

# Fetch the latest meta layers
if ! diff -q .repo/manifests/voipac.xml scripts/voipac.xml >/dev/null 2>&1; then
        copy_manifests
        repo init -u "$(pwd)"/.repo/repo -b default -m voipac.xml
fi
		        
repo sync --optimized-fetch

MACHINE=imx8mq-voipac DISTRO=fslc-xwayland source ./setup-environment build-voipac
bitbake -f voipac-image


The script automatically updates the latest meta layers. These layers include manifest files discribing where all the sources are located. Afterwards all the directories are synchronized.

The second to last command defines the machine for which the last command bitbake compiles and builds output binaries. Besides specifiyng the setup for iMX8M Industrial Development Kit by MACHINE string, DISTRO provides several building options selecting graphical interface:

  • fsl-imx-wayland: Wayland weston graphics
  • fsl-imx-xwayland: Wayland graphics and X11
  • fsl-imx-fb: framebuffer graphics (no Wayland or X11)

The script can be run to fetch and build the Yocto images by simply calling the file:

./build_image.sh

Note: Make sure that synchronization finished with no errors showcasing it by the following massage:

repo sync has finished successfully.

Note: The first successful build can take several hours (depending on multiple factors affecting the host machine like CPU, internet bandwidth, alocated disk space, etc.).

Locating output files

After the complyiling process completed, the freshly built oputput files are located in directory:

cd ~/voipac-yocto/yocto-imx8m-voipac/build-voipac/tmp/deploy/images

The files which need to be flashed into the development kit are located in this directory. To make them more accesible, the files can be copied and unpacked:

cp -prv imx-boot ~/
cp -prv voipac-image-imx8mq-voipac-20230512212054.rootfs.wic.gz ~/voipac-image-imx8mq-voipac.wic.gz
gzip -d ~/voipac-image-imx8mq-voipac.wic.gz

At this point everything was prepared to flash the binaries. Follow the flashing procedure instructions how to start the development kit with these compiled bianries.