Maemo 5 SDK installation for beginners
Article Metadata
This installation tutorial is based on the Maemo 5 SDK install guide from Maemo community but giving additional details for Maemo/Linux beginners.
Contents |
Requirements
- 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 192.168.0.10, port 8080 and it does not require authentication, use the command:
export http_proxy=http://192.168.0.10:8080
Overview
The installation is divided in three parts:
- Scratchbox installation. Scratchbox is a cross compilation toolkit used to coordinate Maemo SDK.
- Maemo 5 SDK installation
- Nokia binaries installation
Installation
Scratchbox installation
Open a terminal, change your current directory to ~/maemo and download the scratchbox installer:
cd ~/maemo
wget http://repository.maemo.org/stable/5.0/maemo-scratchbox-install_5.0.sh
After downloading the installer, you need to make it executable in order to run it as root. So, do the following:
chmod a+x ./maemo-scratchbox-install_5.0.sh sudo ./maemo-scratchbox-install_5.0.sh –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 ./maemo-scratchbox-install_5.0.sh –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
wget http://repository.maemo.org/stable/5.0/maemo-sdk-install_5.0.sh
After downloading the installer, just make it executable and run it as user.
chmod a+x ./maemo-sdk-install_5.0.sh ./maemo-sdk-install_5.0.sh
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:
/scratchbox/login
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 http://repository.maemo.org/ fremantle/<token_number_here> nokia-binaries
Nokia binaries for ARM (ARMEL)
First, you need to login into scratchbox and set the environment to ARMEL:
/scratchbox/login 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 http://repository.maemo.org/ 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 http://repository.maemo.org/ 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:
- Set X86 as target platform
- Set your X11 display (the :2, specified by Xephyr)
- Start Maemo UI
In summary, just type the following commands as user:
/scratchbox/login sb-conf se FREMANTLE_X86 export DISPLAY=:2 af-sb-init.sh start
You should see a homescreen like that one found in N900:
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
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.

