maemo SDK+ Installation Instructions
Project: maemo SDK+ Version: RC-4 Baseline: None. This SDK is baseline neutral. Date: 2009-03-09
This document explains how to install and set up the maemo SDK+ development environment on your computer. This document is targeted for maemo application developers.
This document covers the following steps:
1. Understand 2. Install maemo SDK+ build environment 3. Setup maemo development targets 4. Test maemo SDK+
The maemo SDK+ build environment is designed to use scratchbox version 2. This is installed separately from earlier versions of scratchbox. Also targets' files and configurations are stored elsewhere. Therefore the maemo SDK+ can coexist with an existing maemo SDK environment, such as scratchbox 1.0.8 'apophis' with maemo 4.2 'diablo', and these environments will not conflict.
IMPORTANT: There is no need to change or remove your existing scratchbox 1 based maemo SDK environments.
The maemo SDK+ itself does not contain any rootstraps. The same rootstraps are used than in maemo 'scirocco', maemo 'bora', maemo 'diablo' and maemo 'chinook' releases.
This RC-4 version of Maemo SDK+ has been tested on Ubuntu Hardy Heron 8.04 and Ubuntu Intrepid Ibex 8.10 running on 32bit i386 architecture. It is recommended to use latest Ubuntu releases but packages are also provided for Ubuntu Gutsy Gibbon 7.10 32bit i386 distribution.
2. INSTALL MAEMO SDK+ BUILD ENVIRONMENT
We also provide a separate installer script (http://maemo-sdk.garage.maemo.org/install.html) but for those who prefer to do manual installation please follow the instructions below.
The installation process requires network access. Please, set up your proxy settings ($ export http_proxy="your_proxy_here") first if your network access requires it.
In order to install maemo SDK+, set up the following entry to your
/etc/apt/sources.list file on your Ubuntu host. This will add the
If you have Ubuntu Intrepid Ibex 8.10, please, add the following line:
deb http://maemo-sdk.garage.maemo.org/download/host ubuntu-intrepid free
If you have Ubuntu Hardy Heron 8.04, please, add the following line:
deb http://maemo-sdk.garage.maemo.org/download/host ubuntu-hardy free
If you have Ubuntu Gutsy Gibbon 7.10, please, add the following line:
deb http://maemo-sdk.garage.maemo.org/download/host ubuntu-gutsy free
Next, run the command 'sudo apt-get update' using sudo to update available packages list:
[Host] $ sudo apt-get update
Now install the packages by running 'apt-get install maemo-sdk' using sudo. This will install the requisite packages:
[Host] $ sudo apt-get install maemo-sdk ...
The following packages will be installed:
- maemo-sdk 0.9.99.29 * metapackage with core utilities - maemo-sdk-libs 0.9.32 * selected precompiled libsb2 libraries - maemo-libtool 1.5.26-2 * libtool source which is compiled with target setup - sbrsh 7.6maemo1 * run binaries on target device with automated mounting - sb2-qemu-arm 0.9.1-9 * Qemu ARM CPU emulator (with some patches) - scratchbox2 184.108.40.206-lta87 * cross compilation environment
3. SETUP MAEMO BUILD TOOLS
3.1 Build tools Distribution
Remark: maemo SDK+ RC-4 release adds a new command
maemo-sdk which is capable of
executing all maemo SDK+ administrator use cases. You can launch the tool simply by typing
maemo-sdk on your host terminal. You can then select the operation from the menu
and continue from that to more operation specific menu selections. Note that some operations
may require that you run
maemo-rootstrap based interface is, however, still
available and documented here.
It is recommended that all maemo software should be compiled using Debian/Etch tool set.
maemo SDK+ provides a command
sudo maemo-sdk install tools which will set up these
Debian/Etch tools under
/opt/maemo/dists directory. They will not interfere with
tools already installed to your host, or, tools you will later install to your host.
By providing an isolated set of tools we just verify that we can have uniform set of tools
regardless of the host environment.
Please, note that this command will take some time to
complete. In order to speed up the download you might want to
--mirror url option between
install where the url is the Debian mirror nearest to
you. The list of Debian mirrors can be found
sudo maemo-sdk install tools etch-2008
3.2 Cross-compiler installation
maemo-sdk automatically installs two toolchains: arm-2005q3 and i386-2007q3. You can check what toolchains you have by typing:
maemo-sdk list toolchains
If you want to try Fremantle Alpha rootstraps, you should install arm-2007q3 toolchain as well. This can be done with the following command:
sudo maemo-sdk install toolchain arm-2007q3
Again, please, note that the cross-compiler is a large package and it might take some time to download.
4. SETUP MAEMO DEVELOPMENT TARGETS
A rootstrap provides header files and libraries that match one or many maemo based product software images. These are required to build software that is compatible with a specific maemo based device, such as Nokia N800 or Nokia N810. Development targets are user specific.
The maemo SDK+ provides just the build environment and the tools to setup the relevant maemo development targets.
Use the rootstrap and development target that correspond to the operating system on your target Internet Tablet device. Currently the following development targets are available:
- diablo4.1.2_armel * maemo 4.1.2 'diablo' armel SDK for OS2008 - diablo4.1.2_i386 * maemo 4.1.2 'diablo' i386 SDK for OS2008 - diablo4.1.1_armel * maemo 4.1.1 'diablo' armel SDK for OS2008 - diablo4.1.1_i386 * maemo 4.1.1 'diablo' i386 SDK for OS2008 - diablo4.1_armel * maemo 4.1 'diablo' armel SDK for OS2008 - diablo4.1_i386 * maemo 4.1 'diablo' i386 SDK for OS2008 - chinook40_armel * maemo 4.0 'chinook' armel SDK for OS2008 - scirocco22_armel * maemo 2.2 'scirocco' armel SDK for OS2006 - mistral20_armel * maemo 2.0 'mistral' armel SDK for OS2006
When started the
maemo-sdk tool does not download
the latest rootstrap index file from the server. You can download
the latest up-to-date rootstrap index file with the command
maemo-sdk reload catalogue.
The maemo SDK+ itself does not contain any rootstraps. The same rootstraps are used than in releases maemo 'scirocco', maemo 'bora' and maemo 'chinook'.
4.1 Installing the latest maemo 4.1.2 'diablo' rootstrap
To develop for the current maemo 4.1.2 'diablo' (SDK for OS2008) you will need to install diablo environment with armel CPU emulation. Run the following command to setup maemo environment for the current user:
[Host] $ maemo-sdk install rootstrap diablo4.1.2_armel
This will download the rootstrap, setup the development target and extract the rootstrap. The development target root will be located under the following directory:
You can now start development for maemo 4.1.2 'diablo'.
4.2 Installing the latest maemo 4.0 'chinook' rootstrap
To develop for an earlier maemo 4.0 'chinook' you will need to install chinook environment with armel CPU emulation. Run the following command to setup maemo environment for the current user:
[Host] $ maemo-sdk install rootstrap chinook40_armel
4.3 Installing binary-only packages
maemo-sdk tool can install the Nokia binary-only
packages as well. Run the following command as user to setup
the binary packages for diablo4.1.2_armel roostrap:
[Host] $ maemo-sdk install binaries diablo4.1.2_armel
5. TEST MAEMO-SDK+
After you have installed the SDK you can try a small test
maemopad source package. In this
example we are using maemo 4.1.2 'diablo' rootstraps.
Make sure that you have installed the Diablo armel rootstrap and using
diablo4.1.2_armel as the default target. After that go
to your normal linux home directory and run the following
[Host] $ mkdir -p ~/src/mytest [Host] $ cd ~/src/mytest [Host] $ sb2 -eR apt-get update [Host] $ sb2 apt-get source maemopad [Host] $ cd maemopad-2.4 [Host] $ export SBOX_REDIRECT_FORCE=/usr/bin/perl [Host] $ sb2 dpkg-buildpackage -rfakeroot -d -b .... # compilation and package building should start normally now. # if configure fails please check that you have installed the right tools to your host
You should now have the maemopad .deb binary package in parent directory:
[Host] $ ls -lt .. total 412 -rw-r--r-- 1 you you 512 2008-12-18 14:13 maemopad_2.4_armel.changes -rw-r--r-- 1 you you 18318 2008-12-18 14:13 maemopad_2.4_armel.deb drwxr-xr-x 6 you you 4096 2008-12-18 14:13 maemopad-2.4 -rw-r--r-- 1 you you 476 2008-11-29 18:14 maemopad_2.4.dsc -rw-r--r-- 1 you you 383834 2008-11-29 18:14 maemopad_2.4.tar.gz
You can now try the newly compiled maemopad in the Internet Tablet. Just
maemopad_2.4_armel.deb file to the device and install it
using the Application Manager.
On the other hand, if you want to install the package into the diablo4.1.2 rootstrap
just go to the parent directory (note that
does not work) and type the following.
[Host] $ sb2 -eR dpkg -i maemopad_2.4_armel.deb
You might also want to play with the maemo SDK+ runtime emulation. Just start it by typing:
[Host] $ maemo-sdk start gui
When the start up procedure is complete you are ready to launch the maemopad application on your emulated runtime.
To stop the maemo UI runtime inside the Xephyr window use command:
[Host] $ maemo-sdk stop gui
After installing the maemo SDK+ please also read the maemo SDK+ User Guide.
Happy Hacking !