i.MX Yocto Project: Freescale Yocto Project Tutorial

Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX Yocto Project: Freescale Yocto Project Tutorial

i.MX Yocto Project: Freescale Yocto Project Tutorial

A tutorial on 'Freescale Yocto Project'. Source code is located here

NOTE: When doing 'repo init -u .... -b <LATEST_STABLE_BRANCH_NAME>', make sure you are using the latest stable branch (dora is the latest when writing this note)

Labels (1)

Is this PDF file cut off from the right side?  I am getting an error:

$ repo init -u https://github.com/Freescale/fsl-community-bsp-platform -b
Usage: repo init -u url [options]

repo: error: -b option requires an argument

Oh yes! I will correct it soon. The source code for this pdf is found on the github link.

For your problem, please add 'dylan', resulting in:

$ repo init -u https://github.com/Freescale/fsl-community-bsp-platform -b dylan



I've followed the guide, but when running bitbake it seems it picks the wrong path... that is it ommits ../fsl-community-bsp/.. from the path and so it fails because it doesn't find layer.conf


Hi Thomas,

did you run the setup-environment script? After its executing, the prompt is now under the build folder, and in that folder the correct layers paths are on conf/bblayers.conf. Make sure the setup script is running fine and the bblayers.conf has correct paths.


Hi Leonardo

We are having problems with HDMI resolution on a Sabrelite board. Looking for information about the  kernel graphic driver I came to your tutorial. The chapter about "Building the kernel manually" take my attention.

I clonegited the linux and then looked for the file mxc_hdmi.c (I saw a reference on another page) ... and I did not find it. Then i looked for it at our yoctodylan directory (I already did not remenber why I clonedgited before I look here) and I found it at:


My first question is:

If build/tmp/work/imx6qsabrelite-poky-linux-gnueabi/linux-boundary/3.0.35-r0/git seems to be the complete linux Yocto is using, why is necessary to download another copy?

And the second:

Why are the linux different?

Thanks and best regards

On your cloned Linux kernel, did you move to the correct branch? You can compile either in the Yocto or your clone kernel folder, both are clones from the same source. In the other hand, the Yocto kernel may have some patches on top (look at the recipe), and the one you clone don't.


Hi Leonardo

I do not understand what do you mean with correct branch. Be careful: here is a deep newbie, me.

The cloned linux root Makefile  has:


The yocto dylan build\tmp\work\imx6qsabrelite-poky-linux-gnueabi\linux-boundary\3.0.35-r0\git Makefile has:


So I suppose, yoctolinux is 3.0.35 and clonedlinux is 3.2.0.

The folder drivers/video/mcx is in 3.0.35 but it is not in 3.2.0.  Is it supressed? or is it not implemented yet?

Thank you

New stable branch has been pushed called 'dora'. So replace 'dylan' to 'dora' in all slides to get latest stable commits.

Hi Leonardo,

I am trying to install Yocto on i.Mx6 and I am referring the above document

But I am getting following error when I give bitbake fsl-image-gui

| ERROR: Function failed: Unpack failure for URL: 'http://zlib.net/pigz/pigz-2.3.tar.gz'.

gzip: stdin: invalid compressed data--crc error

| tar: Child returned status 1

| tar: Error is not recoverable: exiting now

I checked that link manually and that link is no more exists.only pigz-2.3.1.tar.gz is available.

How to solve this problem and make bitbake to fetch latest pigz?

Thanks in advance

Hi Krishna

Unfortunately fetch issues are common. It may be the case that either the site is down temporally so you may try later. One way to overcome this problem is find the tarball somewhere and place it on the 'downloads' folder. I know, it is ugly but you do not stuck.


Hi Leanardo,

Now I am able to build the fsl-image-gui. But it is hanging while booting.

Bootlog  is

In:    serial

Out:   serial

Err:   serial

Net:   FEC [PRIME]

Warning: FEC using MAC address from net device

Hit any key to stop autoboot:  0

mmc1 is current device

reading boot.scr

** Unable to read file boot.scr **

reading uImage

3872628 bytes read in 342 ms (10.8 MiB/s)

Booting from mmc ...

reading imx6q-sabresd.dtb

** Unable to read file imx6q-sabresd.dtb **

## Booting kernel from Legacy Image at 12000000 ...

   Image Name:   Linux-3.0.35-1.1.0+yocto+g21304e

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    3872564 Bytes = 3.7 MiB

   Load Address: 10008000

   Entry Point:  10008000

   Verifying Checksum ... OK

After that boot is not going further,

What might be the issue?

So I am assuming your MACHINE=imx6qsabresd and your are booting it the corresponding board.

Seems that the device tree file is not being found. Which branches are you using? dora?

If problem remains, please post the question into the meta-freescale list.


Good day Leo,

Just a heads up but the curl path you have in your document (i.e. https://dl-ssl.google.com/dl/googlesource/git-repo) is no longer valid...  I just tried today and I get an Error 404 in the resulting "repo" file.

Secondly, I tried to find repo and when I googled it I found repo 1.19...however this version when doing the repo init... generates the following "could not verify the tag 'v1.12.7'".  When I investigated this error I found others had this issue and they ended up getting repo from "http://commondatastorage.googleapis.com/git-repo-downloads/repo".  So the resulting command I used was:

"curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo"

and all is fine now.




The document is great!  However, I have some questions, as follows:

  1. On page 1, under "Build's local configuration file..." the first line says "MACHINE ??= 'wandboard-dual'.  However, on page 3 at the bottom, the document says "Machine configuration file: meta-fsl-arm/conf/imx6qsabresd.conf" I am using a wandboard-quad.  Should the page 1 statement be MACHINE ??='wandboard-quad' and the page 3 line be Machine configuration file: meta-fsl-arm-extra/conf/machine/wandboard-quad.conf"?
  2. On page 4, the document refers to
    1. "KERNEL_DEVICE_TREE = "${S}/arch/arm/boot/dts/imx6q-sabresd.dts".  Should this be changed to reflect the wandboard-quad?
    2. UBOOT_MACHINE = "mx6qsabresd_config".  Should this be changed to reflect the wandboard-quad?

  3. Where would I tell the Yocto system that the machine configuration file is "meta-fsl-arm-extra/conf/machine/wandboard-quad.conf"?

I am used to the ./configure, make linux, make linux_install method of building an embedded kernel and similarly for applications.  I am finding the whole recipes thing quite confusing although I can see its merits.  Are there any other clear, current, step-by-step guides to help me?

Thanks, and

Best regards,


Adding few notes regarding "Building the Kernel Manually" after review and test on my platform (DECEMBER 2015/MCIMX6UL-EVK)

I am working with the i.MX6 UL EVK board (MCIMX6UL-EVK), my local BRANCH is imx_3.14.38_6ul_ga. The defconfig used for my setup is: imx_v7_defconfig (the configuration is stored in the kernel source code under arch/arm/configs).

To be able to run make menuconfig properly on my Ubuntu host machine (Linux 3.13.x), I had to "apt-get install" the package called:libcurses5-dev.

The SD card requires a zImage, so I just called "make zImage" to get the new image built.

No ratings
Version history
Last update:
‎07-05-2013 01:35 PM
Updated by: