Yocto Project my own quick start
This page is an excerpt from Yocto Project Quick Start Copyright © 2010-2013 Linux Foundation
Contents
The Packages
Packages and package installation vary depending on your development system. In general, you need to have root access and then install the required packages. The next few sections show you how to get set up with the right packages for Ubuntu, Fedora, and openSUSE. Ubuntu
If your distribution is Ubuntu, you need to be running the bash shell. You can be sure you are running this shell by entering the following command and selecting "No" at the prompt:
$ sudo dpkg-reconfigure dash
The packages you need for a supported Ubuntu distribution are shown in the following command:
$ sudo apt-get install sed wget cvs subversion git-core coreutils \ unzip texi2html texinfo libsdl1.2-dev docbook-utils gawk \ python-pysqlite2 diffstat help2man make gcc build-essential \ g++ desktop-file-utils chrpath libgl1-mesa-dev libglu1-mesa-dev \ mercurial autoconf automake groff libtool xterm
The following list shows the required packages by function given a supported Ubuntu Linux distribution:
- Essentials: Packages needed to build an image on a headless system:
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo \ build-essential chrpath
- Graphical Extras: Packages recommended if the host system has graphics support:
$ sudo apt-get install libsdl1.2-dev xterm
- Documentation: Packages needed if you are going to build out the Yocto Project documentation manuals:
$ sudo apt-get install make xsltproc docbook-utils fop
- ADT Installer Extras: Packages needed if you are going to be using the Application Development Toolkit (ADT) Installer:
$ sudo apt-get install autoconf automake libtool libglib2.0-dev
BitBake requires Python 2.7.3 or later
BitBake requires Python 2.7.3 or later
If you have Ubuntu older that 12.04 LTS you have to install Python 2.7.5 manually
sudo apt-get install libreadline5-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev wget http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2 tar xjvf Python-2.7.5.tar.bz2 cd Python-2.7.5 ./configure make sudo make install python -V
Development Code
Yocto Project code can be found in the Yocto Project Source Repositories. To check out current development code using git:
$ cd $HOME/yocto $ git clone git://git.yoctoproject.org/poky.git $ git checkout -b daisy origin/daisy
$ cd $HOME/yocto/poky $ git clone git://git.openembedded.org/meta-openembedded $ git checkout -b daisy origin/daisy
. └── poky ├── bitbake ├── documentation ├── LICENSE ├── meta ├── meta-hob ├── meta-skeleton ├── meta-yocto ├── meta-yocto-bsp ├── oe-init-build-env ├── README ├── README.hardware └── scripts
Initializing the Build Environment
From the parent directory your Source Directory, initialize your environment and provide a meaningful Build Directory name:
$ cd $HOME/yocto/poky $ source ./oe-init-build-env
At this point, the build directory has been created for you and it is now your current working directory. This is the default to build.
Edit the configuration files
Edit $HOME/yocto/poky/build/bblayers.conf
BBLAYERS ?= " \ /home/tux/yocto/poky/meta \ /home/tux/yocto/poky/meta-yocto \ /home/tux/yocto/poky/meta-yocto-bsp \ /home/tux/yocto/poky/meta-openembedded/meta-oe \ "
Building the Image
At this point, you need to select an image to build for the BeagleBoard. If this is your first build using the Yocto Project, you should try the smallest and simplest image:
$ bitbake core-image-minimal
Now you just wait for the build to finish.
Starting the QEMU Emulator
Before you start the QEMU emulator, be sure you have already to set up the emulation environment.
The following commands setup the emulation environment and launch QEMU. This example assumes the root filesystem (.ext3 file) and the pre-built kernel image file both reside in your home directory. The kernel and filesystem are for a 32-bit target architecture.
$ runqemu qemux86 tmp/deploy/images/bzImage-qemux86.bin tmp/deploy/images/core-image-minimal-qemux86.ext3
The environment in which QEMU launches varies depending on the filesystem image and on the target architecture. For example, if you source the environment for the ARM target architecture and then boot the minimal QEMU image, the emulator comes up in a new shell in command-line mode. However, if you boot the SDK image, QEMU comes up with a GUI.