VAR-SOM-MX6 Yocto GS R6 B1: Difference between revisions

From Variscite Wiki
(Undo revision 2457 by Ron (talk))
 
(31 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{PageHeader|VAR-SOM-MX6 - Yocto fsl-L3.10.31-1.1.0 Daisy R6}} {{DocImage|category1=VAR-SOM-MX6|category2=Yocto}} __toc__
{{PageHeader|VAR-SOM-MX6 - Yocto fsl-L3.10.31-1.1.0 Daisy R6}} {{DocImage|category1=VAR-SOM-MX6|category2=Yocto}} __toc__
[[File:Const.jpg]]
= Introduction =
= Introduction =


* This Yocto Daisy release is based on Freescale fsl-L3.10.31-1.1.0.0Beta release.<br/>
* This Yocto Daisy release is based on Freescale fsl-L3.10.31-1.1.0.0Beta release.<br/>
* Beta 1 version.  
* Beta 2 version.  
Main features:
Main features:
** Yocto Daisy.
** Yocto Daisy.
Line 123: Line 122:
$ repo sync
$ repo sync
</pre>
</pre>
* Download ftp.variscite.com/VAR-SOM-MX6/Software/Linux/Yocto/Release5/var_yocto_v6a1.tar.bz2 <br>
* Download ftp.variscite.com/VAR-SOM-MX6/Software/Linux/Yocto/Release6/var_yocto_v6b2.tar.bz2 <br>
* Extract tarball:
* Extract tarball:
<pre>$ cd ~/var-som-mx6-daisy-v6
<pre>$ cd ~/var-som-mx6-daisy-v6
$ tar xvf ~/Downloads/var_yocto_v6a1.tar.bz2
$ tar xvf ~/Downloads/var_yocto_v6b2.tar.bz2
$ variscite/install</pre>
$ variscite/install</pre>
{{note|Comment:<br/>This method will preserve the git repositories. It will enable you to track Variscite's changes, and your own.|info}}
{{note|Comment:<br/>This method will preserve the git repositories. It will enable you to track Variscite's changes, and your own.|info}}


= Setup and Customize your Yocto build =
= Setup and build Yocto QT5/X =


Setup the environment and use build_var folder
Setup the environment and use build_var folder
<pre>$ . ./setup-environment build_var
<pre>$ cd ~/var-som-mx6-daisy-v6
$ source var-setup-release.sh -b build_x11 -e x11
</pre>
{{note|Comment:<br/>If you close your terminal and wish to build Yocto again, you should do:<br>
$ cd ~/var-som-mx6-daisy-v6
$ . ./setup-environment build_x11 |info}}
 
= Setup and build Yocto QT5/Embedded =
 
Setup the environment and use build_var folder
<pre>$ cd ~/var-som-mx6-daisy-v6
$ source var-setup-release.sh -b build_fb -e fb
</pre>
</pre>
{{note|Comment:<br/>If you close your terminal and wish to build Yocto again, you should change directory to ~/var-som-mx6-daisy-v6 and run the above command again. build_var is your build directory and all bitbake commands should run from it|info}}
{{note|Comment:<br/>If you close your terminal and wish to build Yocto again, you should do:<br>
$ cd ~/var-som-mx6-daisy-v6  
$ . ./setup-environment build_fb |info}}


'''local.conf customizations'''
= local.conf customizations =


Edit you local.conf file:
Edit you local.conf file:
Line 148: Line 160:
BB_NUMBER_THREADS should be your host machine's number of threads minus 2 or same. PARALLEL_MAKE should be the number of threads your host machine has plus two. <br>
BB_NUMBER_THREADS should be your host machine's number of threads minus 2 or same. PARALLEL_MAKE should be the number of threads your host machine has plus two. <br>


Change packages download directory:
Change packages download directory. By default it is set to:
By defualt the path is set to "/opt/yocto_dl". Change ownership settings:
DL_DIR ?= "${BSPDIR}/downloads/"
<pre>$ sudo mkdir /opt/yocto_dl
change it to a global folder like
$ sudo chown <uname>.<uname> /opt/yocto_dl
DL_DIR ?= "/opt/yocto_dl/".
</pre>
Don't forget to create the folder and make it available without a sudo permeation.


= Build your image =
= Build your image =
<pre>$ bitbake fsl-image-qt5 </pre>
<pre>$ bitbake fsl-image-qt5 </pre>
Other image build options:


The resulted images are locaated in tmp/deploy/images/varsomimx6.<br/>Looking at tmp/deploy/images/varsomimx6 you will find 6 main files that are linked to the actual file<br/>
The resulted images are locaated in tmp/deploy/images/varsomimx6.<br/>Looking at tmp/deploy/images/varsomimx6 you will find 6 main files that are linked to the actual file<br/>
Line 193: Line 204:
Use the sdcard created above. Copy the file into it and use the following commands to flash them into nand.<br/>Coping files (mount the sd-card created above first):
Use the sdcard created above. Copy the file into it and use the following commands to flash them into nand.<br/>Coping files (mount the sd-card created above first):
<pre>$ sudo mkdir /media/rootfs/opt/images
<pre>$ sudo mkdir /media/rootfs/opt/images
$ sudo cp tmp/deploy/images/varsomimx6/u-boot.img /media/rootfs/opt/images
$ sudo cp tmp/deploy/images/varsomimx6/SPL /media/rootfs/opt/images
$ sudo cp tmp/deploy/images/varsomimx6/uImage    /media/rootfs/opt/images
$ sudo cp tmp/deploy/images/varsomimx6/uImage    /media/rootfs/opt/images
$ sudo cp tmp/deploy/images/varsomimx6/uImage-imx6q-var-som.dtb /media/rootfs/opt/images/imx6q-var-som.dtb
$ sudo cp tmp/deploy/images/varsomimx6/uImage-imx6q-var-som.dtb /media/rootfs/opt/images/imx6q-var-som.dtb
Line 200: Line 209:
$ sudo cp tmp/deploy/images/varsomimx6/uImage-imx6dl-var-som-solo.dtb /media/rootfs/opt/images/imx6dl-var-som.dtb
$ sudo cp tmp/deploy/images/varsomimx6/uImage-imx6dl-var-som-solo.dtb /media/rootfs/opt/images/imx6dl-var-som.dtb
$ sudo cp tmp/deploy/images/varsomimx6/fsl-image-qt5-varsomimx6.ubi /media/rootfs/opt/images
$ sudo cp tmp/deploy/images/varsomimx6/fsl-image-qt5-varsomimx6.ubi /media/rootfs/opt/images
$ sudo umount /media/rootfs
</pre>
By default Yocto build the u-boot for sdcard. Use the method of building u-boot out of tree for nand and copy the result into the sdcard.
<pre>$ sudo cp u-boot.img /media/rootfs/opt/images
$ sudo cp SPL /media/rootfs/opt/images
</pre>
Unmount the sdcard
<pre>$ sudo umount /media/rootfs
$ sudo umount /media/BOT_varsomi
$ sudo umount /media/BOT_varsomi
</pre>
</pre>
Line 234: Line 249:


|}
|}
= QT5/Embedded environment variables =
The QT5/Embedded require environment variables to run correctly.
You need to have them avilable on the target. For example /etc/profile.d/tslib.sh can be edited.
export TSLIB_TSDEVICE=/dev/input/touchscreen0<br>
export TSLIB_CALIBFILE=/etc/pointercal<br>
export TSLIB_CONFFILE=/etc/ts.conf<br>
export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event0<br>
export QT_QPA_EGLFS_PHYSICAL_HEIGHT=480<br>
export QT_QPA_EGLFS_PHYSICAL_WIDTH=800<br>
export QT_QPA_EGLFS_HEIGHT=480<br>
export QT_QPA_EGLFS_WIDTH=800<br>
export QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER=1<br>
export QT_QPA_EGLFS_DEPTH=24<br>
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:size=800x480:mmSize=800x480<br>


= UBIFS =
= UBIFS =


Under development. Coming soon.
By default we create ubifs image for 0.5GB nand size.
You can change the size by editing ~/var-som-mx6-daisy-v6/sources/meta-variscite/conf/machine/varsomimx6.conf <br>and change
"include conf/machine/include/var-512mb-ubi.inc" into one of:
* "include conf/machine/include/var-512mb-ubi.inc"
* "include conf/machine/include/var-1gb-ubi.inc"
* "include conf/machine/include/var-2gb-ubi.inc"
* "include conf/machine/include/var-4gb-ubi.inc"
 
Anther option is to create the ubifs image manualy. 4GB nand example:
<pre>$ cd ~/var-som-mx6-daisy-v6
$ sudo mkdir rootfs
$ sudo tar xvf build_var/tmp/deploy/images/varsomimx6/fsl-image-qt5-varsomimx6.tar.bz2 -C rootfs/
$ sudo mkfs.ubifs -r rootfs/ -o fsl-image-qt5-varsomimx6q4.ubifs -m 4096 -e 504KiB -c 7835
$ ubinize -o fsl-image-qt5-varsomimx6q4.ubi -m 4096 -p 512KiB -s 4096 -O 4096 ubinize.cfg
</pre>
<pre>$ cat ubinize.cfg
[ubifs]
mode=ubi
image=fsl-image-qt5-varsomimx6q4.ubifs
vol_id=0
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize
</pre>


= Next steps =
= Next steps =
Line 267: Line 321:
Obtain sources:  
Obtain sources:  
<pre>$ cd ~/var-som-mx6-daisy-v6
<pre>$ cd ~/var-som-mx6-daisy-v6
$ git clone git://github.com/varigit/uboot-imx
$ git clone https://github.com/varigit/uboot-imx
$ cd uboot-imx/
$ cd uboot-imx/
$ git checkout -b imx_v2013.10_beta_var4 remotes/origin/imx_v2013.10_beta_var4
$ git checkout -b imx_v2013.10_beta_var4 remotes/origin/imx_v2013.10_beta_var4
Line 298: Line 352:
Get sources:  
Get sources:  
<pre>$ cd ~/var-som-mx6-daisy-v6/
<pre>$ cd ~/var-som-mx6-daisy-v6/
$ git clone git://github.com/varigit/linux-2.6-imx.git
$ git clone https://github.com/varigit/linux-2.6-imx.git
$ cd linux-2.6-imx/
$ cd linux-2.6-imx/
$ git checkout -b imx_3.10.31_1.1.0_beta2_var1 remotes/origin/imx_3.10.31_1.1.0_beta2_var1
$ git checkout -b imx_3.10.31_1.1.0_beta2_var1 remotes/origin/imx_3.10.31_1.1.0_beta2_var1

Latest revision as of 09:33, 22 February 2015

VAR-SOM-MX6 - Yocto fsl-L3.10.31-1.1.0 Daisy R6

Introduction

  • This Yocto Daisy release is based on Freescale fsl-L3.10.31-1.1.0.0Beta release.
  • Beta 2 version.

Main features:

    • Yocto Daisy.
    • Linux kernel: linux-imx_3.10.31_1.0.0_beta.
    • Uboot: imx_v2013.10_beta_var4.
    • QT5 X, QT5 Embedded
    • Yocto Daisy: Based on fsl-L3.10.31-1.1.0_iMX6qdls Freescale release. Yocto Daisy support code is located in meta-variscite folder.

Supported hardware and features

Feature
Description
Board support
VAR-DVK-MX6,VAR-SOM-MX6
CPU

i.MX6 Quad
i.MX6 Dual
i.MX6 Dual lite
i.MX6 Solo

Software platform

Yocto Daisy release.
Freescale release version 4.1
Meta freescale community release for Daisy

Nand Recovery
NAND Flash size support
128MB up to 1GB
eMMC
up to 64GB
DDR size support configuration
Solo:up to 1GB. DualLite, Dual, Quad: up to 4GB
SD-Card
+
Ethernet
10/100/1000 Mbps Ethernet
WLAN
Support for Wilink8, Dual band 5.0ghz + MIMO b/g/n
Bluetooth
4.0
CAN bus
+
I2C
+
SPI
+
USB host
+
USB OTG
Device / Host
Uarts
x3, up to 3.6 Mbps. Minicom avilable to use with the port
RTC
+
Display HDMI 720P,1080P LVDS0 (On board LVDS to RGB bridge, EVK supports 800x480 resolution) LVDS1 external display
Audio Line IN/ Line out
Camera ov5640 camera sensor. CB402 board can be purchased separately
SATA +

Variscite Yocto Daisy release 2 Beta for Freescale i.MX6.

Installing required packages

Follow the link below and install all required packages on your machine.

www.yoctoproject.org/docs/latest/yocto-project-qs/yocto-project-qs.html

For example, if your building machine is an Ubuntu machine:

sudo apt-get install gawk wget git-core diffstat unzip texinfo build-essential chrpath libsdl1.2-dev xterm lzop

Variscite Yocto build was tested with Ubuntu 12.04 LTS only!

Download Yocto Daisy for i.MX6 with Variscite VAR-SOM-MX6 support

Use  "repo" to fetch Yocto and apply Variscite's patches for the BSP support:

  • Install the `repo` utility:
$ mkdir ~/bin (this step may not be needed if the bin folder already exists)
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
Add the following line to the .bashrc file to ensure that the ~/bin folder is in your PATH variable
$ export PATH=~/bin:$PATH
NOTE:
Reference repo is available on FTP.
  • Clone Yocto Daisy from Freescale's git:
$ cd ~
$ mkdir var-som-mx6-daisy-v6
$ cd var-som-mx6-daisy-v6
$ git config --global user.name "Your Name"
$ git config --global user.email "Your Email"
$ repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-3.10.31-1.1.0_beta
$ repo sync
  • Download ftp.variscite.com/VAR-SOM-MX6/Software/Linux/Yocto/Release6/var_yocto_v6b2.tar.bz2
  • Extract tarball:
$ cd ~/var-som-mx6-daisy-v6
$ tar xvf ~/Downloads/var_yocto_v6b2.tar.bz2
$ variscite/install
Comment:
This method will preserve the git repositories. It will enable you to track Variscite's changes, and your own.

Setup and build Yocto QT5/X

Setup the environment and use build_var folder

$ cd ~/var-som-mx6-daisy-v6
$ source var-setup-release.sh -b build_x11 -e x11
Comment:
If you close your terminal and wish to build Yocto again, you should do:

$ cd ~/var-som-mx6-daisy-v6

$ . ./setup-environment build_x11

Setup and build Yocto QT5/Embedded

Setup the environment and use build_var folder

$ cd ~/var-som-mx6-daisy-v6
$ source var-setup-release.sh -b build_fb -e fb
Comment:
If you close your terminal and wish to build Yocto again, you should do:

$ cd ~/var-som-mx6-daisy-v6

$ . ./setup-environment build_fb

local.conf customizations

Edit you local.conf file:

$ gedit conf/local.conf 

Change parallel build and download directory: Set the build parameters to fully utilize your host machine's resources
BB_NUMBER_THREADS = '4'
PARALLEL_MAKE = '-j 6'
BB_NUMBER_THREADS should be your host machine's number of threads minus 2 or same. PARALLEL_MAKE should be the number of threads your host machine has plus two.

Change packages download directory. By default it is set to: DL_DIR ?= "${BSPDIR}/downloads/" change it to a global folder like DL_DIR ?= "/opt/yocto_dl/". Don't forget to create the folder and make it available without a sudo permeation.

Build your image

$ bitbake fsl-image-qt5 

The resulted images are locaated in tmp/deploy/images/varsomimx6.
Looking at tmp/deploy/images/varsomimx6 you will find 6 main files that are linked to the actual file

Image Name
How to use
fsl-image-qt5-varsomimx6.ext3
Not in Use
fsl-image-qt5-varsomimx6.sdcard

This image is for SD-Card boot. Default u-boot is built for SDCARD. Booting from SD-Card is explained in details below.

$ sudo dd if=tmp/deploy/images/varsomimx6/fsl-image-qt5-varsomimx6.sdcard of=/dev/sdX bs=1024k

devxxx = mmcblk0 or sdX. Do dmesg after you insert an SD-Card into your build system to figure out the device name

Comment:
Use "$ sudo gparted /dev/devxxx"
  • Lable the second partition and call it "rootfs".
  • Increase the second partition to include all avilable sd-card space.
fsl-image-qt5-varsomimx6.tar.bz2

Used to create an NFS root file system on the host.

$ sudo mkdir ../rootfs
$ sudo rm -rf ../rootfs/*
$ sudo tar xvf tmp/deploy/images/varsomimx6/fsl-image-qt5-varsomimx6.tar.bz2 -C ../rootfs

See apendix for setting an NFS server

fsl-image-qt5-varsomimx6.ubi

Use the sdcard created above. Copy the file into it and use the following commands to flash them into nand.
Coping files (mount the sd-card created above first):

$ sudo mkdir /media/rootfs/opt/images
$ sudo cp tmp/deploy/images/varsomimx6/uImage     /media/rootfs/opt/images
$ sudo cp tmp/deploy/images/varsomimx6/uImage-imx6q-var-som.dtb /media/rootfs/opt/images/imx6q-var-som.dtb
$ sudo cp tmp/deploy/images/varsomimx6/uImage-imx6dl-var-som.dtb /media/rootfs/opt/images/imx6dl-var-som.dtb
$ sudo cp tmp/deploy/images/varsomimx6/uImage-imx6dl-var-som-solo.dtb /media/rootfs/opt/images/imx6dl-var-som.dtb
$ sudo cp tmp/deploy/images/varsomimx6/fsl-image-qt5-varsomimx6.ubi /media/rootfs/opt/images

By default Yocto build the u-boot for sdcard. Use the method of building u-boot out of tree for nand and copy the result into the sdcard.

$ sudo cp u-boot.img /media/rootfs/opt/images
$ sudo cp SPL /media/rootfs/opt/images

Unmount the sdcard

$ sudo umount /media/rootfs
$ sudo umount /media/BOT_varsomi

Flashing on target:

$ flash_eraseall /dev/mtd0
$ kobs-ng init -x /opt/images/SPL  --search_exponent=1 -v
$ flash_eraseall /dev/mtd1
$ nandwrite -p /dev/mtd1 /opt/images/u-boot.img 
Select one of:
i.MX6Q / i.MX6D
$ nandwrite -p /dev/mtd1 -s 0x1e0000 /opt/images/imx6q-var-som.dtb 
i.MX6DualLite / i.MX6 Solo
$ nandwrite -p /dev/mtd1 -s 0x1e0000 /opt/images/imx6dl-var-som.dtb 
i.MX6Solo VAR-SOM-SOLO
$ nandwrite -p /dev/mtd1 -s 0x1e0000 /opt/images/imx6dl-var-som-solo.dtb 

Linux kernel:
$ flash_eraseall /dev/mtd2
$ nandwrite -p /dev/mtd2 /opt/images/uImage
UBIFS:
$ flash_eraseall /dev/mtd3
$ ubiformat /dev/mtd3 -f /opt/images/fsl-image-qt5-varsomimx6.ubi -s 2048 -O 2048

Not available in this release.

uImage
u-boot SPL


QT5/Embedded environment variables

The QT5/Embedded require environment variables to run correctly. You need to have them avilable on the target. For example /etc/profile.d/tslib.sh can be edited.

export TSLIB_TSDEVICE=/dev/input/touchscreen0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event0
export QT_QPA_EGLFS_PHYSICAL_HEIGHT=480
export QT_QPA_EGLFS_PHYSICAL_WIDTH=800
export QT_QPA_EGLFS_HEIGHT=480
export QT_QPA_EGLFS_WIDTH=800
export QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER=1
export QT_QPA_EGLFS_DEPTH=24
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:size=800x480:mmSize=800x480

UBIFS

By default we create ubifs image for 0.5GB nand size. You can change the size by editing ~/var-som-mx6-daisy-v6/sources/meta-variscite/conf/machine/varsomimx6.conf
and change "include conf/machine/include/var-512mb-ubi.inc" into one of:

  • "include conf/machine/include/var-512mb-ubi.inc"
  • "include conf/machine/include/var-1gb-ubi.inc"
  • "include conf/machine/include/var-2gb-ubi.inc"
  • "include conf/machine/include/var-4gb-ubi.inc"

Anther option is to create the ubifs image manualy. 4GB nand example:

$ cd ~/var-som-mx6-daisy-v6
$ sudo mkdir rootfs
$ sudo tar xvf build_var/tmp/deploy/images/varsomimx6/fsl-image-qt5-varsomimx6.tar.bz2 -C rootfs/
$ sudo mkfs.ubifs -r rootfs/ -o fsl-image-qt5-varsomimx6q4.ubifs -m 4096 -e 504KiB -c 7835
$ ubinize -o fsl-image-qt5-varsomimx6q4.ubi -m 4096 -p 512KiB -s 4096 -O 4096 ubinize.cfg
$ cat ubinize.cfg 
[ubifs]
mode=ubi
image=fsl-image-qt5-varsomimx6q4.ubifs
vol_id=0
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize

Next steps

In sections 1-6 we explained how to build Yocto for VAR-SOM-MX6. We explained the results for nand (UBI) and for sd-card. At this point you should have a bootable sd-card with UBI images on it. You should be able to boot from the sd-card using the boot select button and flash the nand. Next steps:

  • Build and deploy the compiler and tools.
  • Fetch u-boot and compile it out of Yocto tools.
  • Fetch Linux kernel and compile it out of Yocto tools.

Toolchain installation for out of Yocto builds

Build the toolchain by:

$ bitbake meta-ide-support
$ bitbake meta-toolchain

The output will be located at tmp/deploy/sdk/. On a 64 bit Ubuntu you will get:

sdk/poky-eglibc-x86_64-meta-toolchain-cortexa9hf-vfp-neon-toolchain-1.6.1.sh.

Install the tools by running:

$ tmp/deploy/sdk/poky-eglibc-x86_64-meta-toolchain-cortexa9hf-vfp-neon-toolchain-1.6.1.sh

Reply to all defaults 'y'
The toolchain name depend on your build machine and may change.

Build U-Boot out of Yocto tree

Note:
This is a single u-boot image that supports all VAR-SOM-MX6 SOM's.

Obtain sources:

$ cd ~/var-som-mx6-daisy-v6
$ git clone https://github.com/varigit/uboot-imx
$ cd uboot-imx/
$ git checkout -b imx_v2013.10_beta_var4 remotes/origin/imx_v2013.10_beta_var4
  • follow above procedure for installing the toolchain

Build u-boot:

$ export PATH=/opt/poky/1.6.1/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi:$PATH
clean tree:
$ make -j6 ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- mrproper
Choose build for SD-Card or NAND Flash:
$ make ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi-  mx6var_som_sd_config
or
$ make ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi-  mx6var_som_nand_config
Build U-BOOT:
$ make -j6 ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi-

Flash u-boot to the sd-card:

$ sudo dd if=SPL of=/dev/sdxxx bs=1K seek=1; sync
$ sudo dd if=u-boot.img of=/dev/sdxxx bs=1K seek=69; sync

In case of UBI copy it to the sd-card:

$ sudo cp SPL /media/rootfs/opt/images
$ sudo cp u-boot.img /media/rootfs/opt/images


Eject SD-Card gracefully from host machine

Build Linux out of Yocto tree

Get sources:

$ cd ~/var-som-mx6-daisy-v6/
$ git clone https://github.com/varigit/linux-2.6-imx.git
$ cd linux-2.6-imx/
$ git checkout -b imx_3.10.31_1.1.0_beta2_var1 remotes/origin/imx_3.10.31_1.1.0_beta2_var1

Build the Linux kernel:

$ export PATH=/opt/poky/1.6.1/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi:$PATH
$ make ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- mrproper
$ make ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- imx_v7_var_defconfig
$ make -j6 LOADADDR=0x10008000 ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- uImage
$ make -j6 LOADADDR=0x10008000 ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- modules
Build the device tree for Dualite/Solo
$ make -j6 ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- imx6dl-var-som.dtb
Build the device tree for Quad/Dual
$ make -j6 ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- imx6q-var-som.dtb

Copy the uImage and device tree to the sd-card boot partition or to the opt/image in order to be flashed to the nand. Copy modules to the sd-card

$ sudo make ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- modules_install INSTALL_MOD_PATH=/media/rootfs/

Useful Bitbake commands

Bitbake Cheat Sheet

Useful bitbake commands

i.MX Yocto Project: ltib versus bitbake