How to prepare a Host machine for YOCTO

Prepare a host computer

1) Download Ubuntu 14.04 Image from here >

2) Install it into Vmware Player (Create a New Virtual Machine -> Install disc image file). You may want to setup higher core number (for faster compilation), enough memory and large disk (the YOCTO can take a lot of space). I used: 2 cores / 4GB Memory / 300GB HDD, set Network as "Bridged: Connected directly to the physical network".

3) Update Linux & install packages
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install gawk wget git-core diffstat unzip build-essential chrpath libsdl1.2-dev xterm curl
sudo apt-get install texinfo
sudo apt-get install lzop
sudo apt-get install nfs-kernel-server
You may want to set your timezone, because we will be often checking date and time of generated files. Run:
sudo nano /etc/timezone
Change the timezone based on your location, for example I replaced "America/Los_Angeles" be "Europe/Vienna". Here you can find a list of timezones >

Install compiler
sudo apt-get install gcc-arm-linux-gnueabihf
Install `repo` utility:
mkdir ~/bin
curl > ~/bin/repo
chmod a+x ~/bin/repo
Install tftp
sudo apt-get install xinetd tftpd tftp
Create this file:
sudo nano /etc/xinetd.d/tftp
and insert this inside:
service tftp
protocol        = udp
port            = 69
socket_type     = dgram
wait            = yes
user            = nobody
server          = /usr/sbin/in.tftpd
server_args     = /tftp    
disable         = no
Create 'tftp' directory (later we will be using this directory for file transfer from the host to our OpenRex board):
sudo mkdir /tftp
sudo chmod -R 777 /tftp
sudo chown -R nobody /tftp
mkdir /tftp/imx6 #this is the directory which we will use during development
Now, initialize tftp:
sudo /etc/init.d/xinetd restart
Tweaks (optional)
Click on "Search your computer and online sources" (the ubuntu icon on the top of the left bar) and search for "system settings". Click on the icon.

Disable screensaver & screenlock
Click on "Brightness & Lock". Then: Turn screen off when inactive for: "Never" and set Lock "OFF".

Increase number of workspaces
Click on "Appearance -> Behaviour". Then: Check "Enable workspaces".

Reboot the Linux machine:
sudo reboot

Test your setup: Compile original Sabersd uBoot & Kernel from YOCTO

Download the BSP source (you may need to be registered at Github, use your_email and yourname to set 'git config --global'):
mkdir fsl-community-bsp
cd fsl-community-bsp
git config --global ""
git config --global "yourname"
repo init -u -b jethro
repo sync
*Note: When I was creating this page, jethro was the latest branch. There may be something newer, so double check it at

Setup the environment for iMX6:
source setup-environment build
*Note: We will use 'imx6qsabresd', but if you need, you can set a different board here (you don't have to do this step):
nano conf/local.conf
Run the first compilation. It will take quite a while. For test, you can run this minimal image (A small image just capable of allowing a device to boot):
bitbake core-image-minimal
*Note: Normally, you may want to run 'bitbake core-image-base' (A console-only image that fully supports the target device hardware)

The final outputs and images are located at:
cd tmp/deploy/images 
!!!BE AWARE!!! Dont forget, at this moment, these are sabresd images. We need to apply changes to the OpenRex.