Setup environment

First thing to do is to setup build environment.  I am using SDK build with Yocto for Wandboard solo board with iMX6 processor.

Follow the instructions on http://freescale.github.io/

Install the repo utility:
mkdir ~/bin
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

Download the BSP source code
PATH=${PATH}:~/bin
mkdir fsl-community-bsp
cd fsl-community-bsp
repo init -u https://github.com/Freescale/fsl-community-bsp-platform -b fido
repo sync

The last command will download source codes and  it takes a while.

It may be useful to have QT:
cd sources
git clone https://github.com/meta-qt5/meta-qt5.git -b fido
cd ../

Before we  can start building some additional packets need to be download. Please check here:
Required Packages for the Host Development System
http://www.yoctoproject.org/docs/1.8/ref-manual/ref-manual.html#required-packages-for-the-host-development-system

sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential  chrpath socat

sudo apt-get install libsdl1.2-dev xterm

Setup shell by calling (while in fsl-community-bsp directory):
source ./setup-environment build

The last command will create build directory. Replace your local build/conf/local.conf and build/conf/bblayers.conf t with these conf.

Build uboot and root filesystem image:
time bitbake fsl-image-multimedia

SD card image can be found in:
build/tmp/deploy/images/wandboard-solo/fsl-image-multimedia-wandboard-solo.sdcard
You need to copy that image to SD card, but you must use dd to do this eg.
sudo dd if=build/tmp/deploy/images/wandboard-solo/fsl-image-multimedia-wandboard-solo.sdcard of=/dev/sdb bs=4M oflag=dsync

Next thing is to create cross compiler:
time bitbake -cpopulate_sdk fsl-image-multimedia
Run SDK installer:
tmp/deploy/sdk/poky-glibc-i686-fsl-image-multimedia-cortexa9hf-vfp-neon-toolchain-1.8.1.sh
By default that will install compiler in /opt/poky/1.8.1.

Create kernel configuration file and export kernel sources:

Open new terminal window.
sudo apt-get install lzop
sudo apt-get install libncurses5
bitbake -c menuconfig virtual/kernel

Save the configuration and exit.
Copy kernel source code:
cp -a tmp/work/wandboard_solo-poky-linux-gnueabi/linux-wandboard/3.14.28-r0/git/ ./linux-wandboard-3.14.28/

Copy kernel config file:
cp -a tmp/work/wandboard_solo-poky-linux-gnueabi/linux-wandboard/3.14.28-r0/build/.config  ./linux-wandboard-3.14.28/

Create archive or kernel source code and the .config file:
tar -cvzf linux-wandboard-3.14.28.tar.gz linux-wandboard-3.14.28

Export  cross compiler path:
source /opt/poky/1.8.1/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi

Copy the archive to your project directory and extract:
tar -zxvf  inux-wandboard-3.14.28.tar.gz
cd linux-wandboard-3.14.28

Compile the kernel:
make ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi-

If everything went well compressed kernel file should be created:
arch/arm/boot/zImage

Copy that file to the first partition of the SD card used earlier. Put the card to SD card reader in wandboard.

Connect serial port to your PC and wandboard  and run you favourite terminal application eg. minicom or picocom.
sudo picocom /dev/ttyUSB0  -b 115200

Cycle the power to the wandboard and check if system starts up. After a minute you should be able to login as root with empty password. If that is the case, we managed to boot with the kernel we build earlier.

We have kernel sources with the .config file adequate to the hardware we use and we have the toolchain. We are now ready to start kernel development.