All KaeilOS images are built using OpenEmbedded.
This document described the steps necessary to setup an environment where you can build images and packages yourself. For a general introduction to setting up OpenEmbedded, see GettingStarted wiki page.
If you run into trouble following the below tutorial, have a look at the GettingStarted wiki page, that contains information on all kinds of cornercases. The tutorial below is kept simple on purpose.
This is the suggested desktop or server dedicated to KaeilOS development
Why to use a 64 bit Operating System? (italian language)
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
This is the old list of packages *no longer necessary* on your distribution
sudo apt-get install build-essential chrpath
sudo apt-get install ccache sed wget cvs subversion
sudo apt-get install coreutils unzip texinfo libsdl1.2-dev docbook-utils
sudo apt-get install gawk python-pysqlite2
sudo apt-get install libxml2-utils xmlto
sudo apt-get install git-core
sudo apt-get install help2man diffstat texi2html
sudo apt-get install qemu (if you want to emulate a target system)
sudo apt-get install python-psyco (only for i386, not for amd64)
sudo apt-get install texinfo (required by md5)
sudo apt-get install docbook
Further details are available in OE wiki : http://wiki.openembedded.org/index.php/Required_Software
If you are not using Debian distro on your host machine, please read this : http://wiki.openembedded.org/index.php/OEandYourDistro
Debian Lenny (5.0.1) users
Using Debian Lenny is deprecated.
Consider that using Debian Lenny won't allow you to build future OE releases like oe-core. If you want to proceed anyway, please read this carefully
Ubuntu and Debian 6.0 (Squeeze) users
If you are using Ubuntu as development system you must avoid dash replacing it with bash
sudo dpkg-reconfigure dash
then when you are prompted "Install dash as /bin/sh?" answer <No>
or if you prefer you can do it manually
sudo rm /bin/sh
sudo ln -s /bin/bash /bin/sh
Prepare a directory where to start working. You need a absolute fixed path in some configuration files, so your life will be easier if you will keep these directory names. Of course you are free to adapt it the way you like.
sudo mkdir koan
sudo chown `whoami`.`whoami` /home/koan
Obtain bitbake and install it. You won't need to build it because bitbake is written in python interpreted language.
tar xzvf bitbake-1.10.2.tar.gz
ln -s bitbake-1.10.2 bitbake
Get OpenEmbedded metadata
git clone git://git.openembedded.org/openembedded
git checkout -b mckoan/kaeilos-2012 origin/mckoan/kaeilos-2012
Update OE metadata
$ cd /home/koan/devel/openembedded
$ git pull
Prepare distribution build settings (this version number identify the KaeilOS scripts version and not the KaeilOS version)
tar xzvf kaeilos-4.12-config-files.tgz
Now you should have a build tree like this.
Splitting those files into different directories gives you the possibility to start with new build faster.
|-- bitbake — Subversion tree of BitBake
|-- build — place where I do all OE builds
| `-- kaeilos
| `-- conf — all configuration files
| |-- auto.conf
| |-- local.conf
| `-- site.conf
|-- openembedded — OpenEmbedded directory
| |-- COPYING.MIT
| |-- MAINTAINERS
| |-- README
| |-- build
| |-- classes
| |-- conf
| |-- contrib
| |-- files
| |-- recipes - was named packages
| |-- removal.txt
| `-- site
|-- sources - downloaded sources directory
`-- setup-kaeilos.sh - environment setting script (first to be called)
Default machine configuration is MACHINE ?= "ronetix-pm9263" and is set into the following file
you can select a different machine among the ones available int this file.
At last you can build
source setup-kaeilos.sh /home/koan/devel/build/kaeilos
Note: here you could face to an error caused by OpenEmbedded git server
"fatal: The remote end hung up unexpectedly"
in this case is strongly suggested perform an update manually (see "Periodical updates" chapter) before continuing.
this will move you to another directory (in /home/koan/devel/build/kaeilos) and then you can build different targets...
a very minimal image:
bitbake console-base-image 2>&1 | tee $PRJ_DIR/keailos-build.log
the standard OE-like minimal image:
bitbake console-image 2>&1 | tee $PRJ_DIR/keailos-build.log
a graphic environment with GPIE:
bitbake x11-image 2>&1 | tee $PRJ_DIR/keailos-build.log
The first time you run KaeilOS with a powerful machine like the one we suggested at the beginning of this page, you will wait for about 3-4 hours before you get a target system complete.
Final target image
Final target image will be generate into the following directory for example building a MACHINE ?= "ronetix-pm9263" :
Supported targets are constantly increasing and at the moment they are the following:
MACHINE ?= "ronetix-pm9263"
MACHINE ?= "vortex86sx"
MACHINE ?= "stamp9g20evb"
MACHINE ?= "at91sam9263ek"
MACHINE ?= "at91sam9g20ek"
MACHINE ?= "at91sam9g45ek"
MACHINE ?= "spitz"
MACHINE ?= "mh355"
MACHINE ?= "vulcano-g20"
Any new custom targes machine may be added upon request as commercial support
Because OE tree is updated frequently you should keep your copy aligned with the repository updating OE metadata
$ cd /home/koan/devel/openembedded
$ git pull
Again, always check the latest KaeilOS changes if you want a successful build
If you face to build problems, please refer to the latest stable release published here
For any problem or advice we will be pleased to receive your email