Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries. Thanks for all your past and future contributions.

Maemo 5 SDK installation for beginners

From Wiki
Jump to: navigation, search

Archived.pngArchived: This article is archived because it is not considered relevant for third-party developers creating commercial solutions today. If you think this article is still relevant, let us know by adding the template {{ReviewForRemovalFromArchive|user=~~~~|write your reason here}}.

The article is believed to be still valid for the original topic scope.

Article Metadata
Created: marcelobarrosalmeida (16 Oct 2009)
Last edited: Xseba360 (01 Mar 2014)
Featured Article
25 Oct

Note.pngNote: If you are new to developing for the Maemo platform, the Qt SDK is the best place to start. Using the Qt SDK you have one simple installation and don’t need to install the Maemo 5 SDK. The Qt APIs are straightforward to learn and the Qt APIs for Mobile Development enable you to create fully featured applications for Maemo and Symbian devices. These applications will run on MeeGo devices too.

This installation tutorial is based on the Maemo 5 SDK install guide from Maemo community but giving additional details for Maemo/Linux beginners.



  • A 32-bit Linux distro like Ubuntu or Debian. Although it is possible to install the SDK from sources, a Linux distro based on Debian package system will make this process simpler. Ubuntu 9.04 is used in this tutorial.
  • Console tools like apt-get and wget. For instance, if wget is not installed, you can install it typing sudo apt-get install wget.
  • The SDK will be installed in /scratchbox.
  • Scratchbox does not support VSDO (Virtual Dynamic Shared Object) and you need to disable this feature. Edit the file /etc/sysctl.conf using your preferred editor and add the following line at the end of the file:
   vm.vdso_enabled = 0

If you are using Ubuntu Lucid 10.04 add the following to fix the "mmap: Operation not permitted" error whilst installing the maemo sdk also see Known Issues in SDK

  vm.mmap_min_addr = 0

Then, reload the settings:

   sudo sysctl -p

It is necessary to install the package Xephyr. Just type the following command:

   sudo apt-get install xserver-xephyr

All packages downloaded here will be placed at ~/maemo. In Unix, '~' is a shortcut to the user account path, in general /home/<your_user_name>. Open a terminal and create the directory ~/maemo if it does not exist:

  mkdir ~/maemo

If you are behind a proxy, please use the following commands to specify your proxy before any network operation (like it will happen with wget or apt-get):

export http_proxy=http://user:password@proxy_ip:proxy_port
export ftp_proxy=ftp://user:password@proxy_ip:proxy_port

Some parts may be omitted. For instance, if your http proxy is running at IP, port 8080 and it does not require authentication, use the command:

export http_proxy=


The installation is divided in three parts:

  1. Scratchbox installation. Scratchbox is a cross compilation toolkit used to coordinate Maemo SDK.
  2. Maemo 5 SDK installation
  3. Nokia binaries installation


Scratchbox installation

Open a terminal, change your current directory to ~/maemo and download the scratchbox installer:

cd ~/maemo

After downloading the installer, you need to make it executable in order to run it as root. So, do the following:

   chmod a+x ./
   sudo ./ –u $(id -un)

The last command will start the scratchbox installation, creating a new account name in scratchbox equal to the current logged user name. If you want to change the account name, just replace the string USERNAME below for a valid account name in your Linux box:

   sudo ./ –u USERNAME

Wait until the installation is finished and close the terminal. The specified user is added to the group sbox and it is necessary to login again to apply this new membership.

Maemo 5 SDK installation

Open a terminal, change your current directory to ~/maemo and download the Maemo 5 SDK installer:

cd ~/maemo

After downloading the installer, just make it executable and run it as user.

   chmod a+x ./

It is necessary to accept the SDK agreement and to select the installation packages. Choose option (3) Runtime Environment + All Dev Packages. Details and screenshots at SDK installation page.

At this point, it will be possible to login into scratchbox, with the following command:


If you receive a message complaining about invalid user, you can try to add the user again using the following command:

   sudo /scratchbox/sbin/sbox_adduser USERNAME yes

Replace USERNAME for a valid user in your Linux box, probably your own login name.

Nokia binaries installation

It is necessary to install several binaries from Nokia for a complete functionality of the Maemo SDK. In scratchbox it is possible to compile programs for ARM platform (N900) or for x86 platform (for emulation in your PC). You need to download the Nokia binaries for these two targets, as described in next sections. Nokia binaries are provided via an APT repository and it is necessary to accept the Maemo 5.0 (Fremantle) SDK End User License Agreement. There is a token at the end of the agreement page and you need to type it in order to be redirected to a page with your repository line. This repository line is for personal use only and may not be further distributed or disclosed. It follows the format:

deb fremantle/<token_number_here> nokia-binaries

Nokia binaries for ARM (ARMEL)

First, you need to login into scratchbox and set the environment to ARMEL:

   sb-conf se FREMANTLE_ARMEL

Second, add your repository line to the file /etc/apt/sources.list. It is possible to do it in the command line:

echo "deb fremantle/<token_number_here> nokia-binaries" >> /etc/apt/sources.list

Third, update your package list and install the nokia-binaries package:

apt-get update
fakeroot apt-get install nokia-binaries

If you have any problems in this step, try to add --fix-missing to the last command:

   fakeroot apt-get install nokia-binaries --fix-missing

Nokia binaries for X86

Use the same procedure described in the last section but do not forget to set X86 as target platform. It is not necessary to logout, use your already logged scratchbox session:

sb-conf se FREMANTLE_X86
echo "deb fremantle/<token_number_here> nokia-binaries" >> /etc/apt/sources.list
apt-get update
fakeroot apt-get install nokia-binaries

Running Maemo 5 SDK

For running Maemo 5 SDK you will need to start a X11 server window from any Linux console (not from scratchbox environment):

   Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac  &

Afterward, login into scratchbox from another console and execute the following operations:

  1. Set X86 as target platform
  2. Set your X11 display (the :2, specified by Xephyr)
  3. Start Maemo UI

In summary, just type the following commands as user:

   sb-conf se FREMANTLE_X86
   export DISPLAY=:2 start

You should see a homescreen like that one found in N900:

Maemo homescreen

Installing applications

It is possible to add applications to your SDK like in any other Debian distro. For instance, to install the official Maemo browser, do the following (ensure that sb-conf se FREMANTLE_X86 is set):

   fakeroot apt-get install osso-browser

Maemo browser Maemo browser

Removing Maemo 5 SDK

Before removing Maemo 5 SDK, stop scratchbox in a Linux console (not in scratchbox) and any X11 active session. Remove all related packets and finally, remove directory /scratchbox:

   sudo /scratchbox/sbin/sbox_ctl stop
   sudo apt-get remove scratchbox-* --purge
   sudo rm -rf /scratchbox

Know issues

At this moment, Maemo 5 SDK has some issues. In special for Ubuntu 9.04, Xephyr is crashing when trying to use applications with input fields. It was necessary to install the newest Xephyr and its dependencies from Ubuntu 9.10. The packages are below, for your convenience.

This page was last modified on 1 March 2014, at 14:25.
163 page views in the last 30 days.