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.
Suggested hardware
This is the suggested desktop or server dedicated to KaeilOS development
Why to use a 64 bit Operating System? (italian language)
Required packages
These are required packages usually not installed by default 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
Step 1
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.
cd /home
sudo mkdir koan
sudo chown `whoami`.`whoami` /home/koan
cd /home/koan
Obtain bitbake and install it. You won't need to build it because bitbake is written in python interpreted language.
mkdir /home/koan/devel
cd /home/koan/devel
wget http://download.berlios.de/bitbake/bitbake-1.10.2.tar.gz
tar xzvf bitbake-1.10.2.tar.gz
ln -s bitbake-1.10.2 bitbake
Step 2
Get OpenEmbedded metadata
cd /home/koan/devel
git clone git://git.openembedded.org/openembedded
cd /home/koan/devel/openembedded
git checkout -b kaeilos-2011 origin/mckoan/kaeilos-2011
Update OE metadata
$ cd /home/koan/devel/openembedded
$ git pull
Step 3
Prepare distribution build settings (this version number identify the KaeilOS scripts version and not the KaeilOS version)
cd /home/koan/devel
wget ftp://ftp.koansoftware.com/public/kaeilos/kaeilos-4.11-config-files.tgz
tar xzvf kaeilos-4.11-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.
devel/
|-- 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)
Step 4
Default machine configuration is MACHINE ?= "ronetix-pm9263" and is set into the following file
/home/koan/devel/build/kaeilos/conf/auto.conf
you can select a different machine among the ones available int this file.
Step 5
At last you can build
cd /home/koan/devel
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
the standard OE-like minimal image:
bitbake console-image
a graphic environment with GPIE:
bitbake x11-image
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" :
/home/koan/devel/build/kaeilos/tmp/deploy/glibc/images/ronetix-pm9263
uImage-ronetix-pm9263.bin
console-base-image-ronetix-pm9263.jffs2
console-base-image-ronetix-pm9263.tar.bz2
console-image-ronetix-pm9263.jffs2
console-image-ronetix-pm9263.tar.bz2
x11-image-ronetix-pm9263.jffs2
x11-image-ronetix-pm9263.tar.bz2
Supported targets
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 ?= "mh355"
Any new custom targes machine may be added upon request as commercial support
Periodical updates
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
.