This guide is developed and tested using Ubuntu 16.04 as a host computer
.
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath libsdl1.2-dev xterm
Cloning Yocto Project Repo:
git clone http://git.yoctoproject.org/git/poky
cd poky/
Checkout fido
branch, which will be used for this guide:
git checkout -b fido origin/fido
Create build
environment for our first yocto
image (qemu image
):
source oe-init-build-env
We will run this project with the qemu emulator
with the command runqemu qemux86
.
Then create our first image with:
bitbake -k core-image-sato
It will take several ours to create the image. Many WARNING message might appear in the process but will not affect the result. The important thing is to not have ERRROR messages.
The output should look like:
Parsing recipes: 100% |########################################################################################################| Time: 00:02:16
Parsing of 884 .bb files complete (0 cached, 884 parsed). 1286 targets, 41 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
Build Configuration:
BB_VERSION = "1.26.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "Ubuntu-16.04"
TARGET_SYS = "i586-poky-linux"
MACHINE = "qemux86"
DISTRO = "poky"
DISTRO_VERSION = "1.8.2"
TUNE_FEATURES = "m32 i586"
TARGET_FPU = ""
meta
meta-yocto
meta-yocto-bsp = "fido:<hash code>"
NOTE: Preparing RunQueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
WARNING: Failed to fetch URL http://www.zlib.net/zlib-1.2.8.tar.xz, attempting MIRRORS if available
WARNING: Failed to fetch URL http://www.multiprecision.org/mpc/download/mpc-1.0.2.tar.gz, attempting MIRRORS if available
WARNING: Failed to fetch URL http://download.gna.org/cryptodev-linux/cryptodev-linux-1.6.tar.gz, attempting MIRRORS if available
WARNING: Failed to fetch URL http://zlib.net/pigz/pigz-2.3.3.tar.gz, attempting MIRRORS if available
WARNING: Failed to fetch URL http://gnome-build-stage-1.googlecode.com/files/uuid-1.6.2.tar.gz, attempting MIRRORS if available
...
Finally run the created image in the qemu emulator
, with:
runqemu qemux86
Firstly, while staying in our poky
directory, we will get the repo containing the yocto
layer to be added in order to make our image for raspberry pi
.
git clone -b fido git://git.yoctoproject.org/meta-raspberrypi
We will create a parallel build directory to the one we used in section 3
, and we will name it rpi-build
:
source oe-init-build-env rpi-build
Then being inside rpi-build
directory we will run the bitbake-layers
command that will add the meta-raspberrypi
layer to the default configuration file conf/bblayers.conf
:
cd rpi-build
bitbake-layers add-layer ../meta-raspberrypi/
After this, the file conf/bblayers.conf
will contain the line including meta-raspberrypi
path.
Then we need to edit the file local.conf
in order to specify for what machine or hardware this image will be composed. There are different Raspberry Pi
versions supported. We will set the variable MACHINE = "raspberrypi2"
.
Then, staying in the same directory rpi-build
, we will run the bitbake
command to create our image including the default layers plus the downloaded meta-raspberrypi
layer that will let us run our image in the real hardware raspberrypi2
.
bitbake -k rpi-basic-image
The process will take again, like in the previous case, several hours to complete.
After the image is created, we will be able to find it in: