KDE on scratchbox for maemo 4

This article describes how to compile KDE for maemo. It takes the Nokia N810 as example device. It uses the cross-compiling environment scratchbox on an Intel-based computer.

Overview

 * maemo is the core software stack that runs on mobile devices like Nokia's N810 or N900
 * garage is where the projects for maemo are hosted, somewhat compareable to Sourceforge.
 * OS2008 is maemo 4.x (more info). Compare it with Debian's Lenny.
 * Diablo is the version (feature upgrade 2008) of maemo.
 * Scratchbox is a cross-compiling environment to enable you to create software for maemo on an i386.
 * Busybox is a single binary that allows you to run commands like ls, cat and bunzip2
 * Hildon is an application framework and desktop shell for maemo, compare it to the role that Plasma plays in KDE 4

= On the Nokia itself = ssh root@localhost apt-get install subversion
 * install openssh on the Nokia N810
 * install subversion

= On your desktop = You cannot install scratchbox on an X64 computer, so, install an i386 into a VMWare virtual machine. The following describes how to install scratchbox into a SUSE 11.2 32bit installation. It might work same or similar with any Linux.

Set up scratchbox
First, we want to compile a "hello world" program for the Nokia. Here is how. root@i386 # useradd -m scratchboxuser root@i386 # passwd scratchboxuser root@i386 # wget http://repository.maemo.org/stable/diablo/maemo-scratchbox-install_4.1.2.sh root@i386 # chmod 777 maemo-scratchbox-install_4.1.2.sh root@i386 # ./maemo-scratchbox-install_4.1.2.sh -s /scratchbox root@i386 # cat >> /etc/sysctl.conf << EOF vm.mmap_min_addr = 4096 EOF root@i386 # sysctl -p root@i386 # /scratchbox/sbin/sbox_adduser scratchboxuser root@i386 # su - scratchboxuser scratchboxuser@i386 $ wget http://repository.maemo.org/stable/diablo/maemo-sdk-install_4.1.2.sh Start the install script and accept all choices: scratchboxuser@i386 $ sh maemo-sdk-install_4.1.2.sh scratchboxuser@i386 $ /scratchbox/login [sbox-DIABLO_ARMEL: ~] > sb-conf select DIABLO_ARMEL
 * Set up VMWare Server 2.0
 * Install a virtual machine into VMWare Server, 40GB hard drive, 1024 GB RAM
 * Install SUSE Linux 11.2 from DVD. At the bootscreen, type F7 and select X86 instead of X86_64. That way, you will get a 32bit operating system.
 * Take a VMware SNAPSHOT from your virtual machine so you can revert to this state
 * Boot your virtual machine
 * Set up scratchbox
 * set up the SDK
 * start scratchbox

Re-login
To re-login after a reboot of your virtual machine run /scratchbox/sbin/sbox_ctl start /scratchbox/login

Hello world
Now we write the canonical hello world program in C. [sbox-DIABLO_ARMEL: ~] > cat > main.c << EOF int main {  printf("hello world"); } EOF [sbox-DIABLO_ARMEL: ~] > gcc main.c [sbox-DIABLO_ARMEL: ~] > file a.out a.out: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), not stripped
 * 1) include 
 * copy the file to your Nokia N810 using scp

=> the file is executable on the Nokia

Install Qt
Now it's time to install qt. Add to your /etc/apt/sources.list: deb http://repository.maemo.org/extras/ diablo free non-free deb-src http://repository.maemo.org/extras/ diablo free and tell the system to re-read it: apt-get update