KDE TechBase
  • Page
  • Discussion
  • Edit
  • History
KDE TechBase is a Wiki - You can help! Please contribute! Questions?
Please ask development related questions in the KDE Community Forum.

Projects/KDE on Maemo/kdepim

< Projects | KDE on Maemo(Redirected from Projects/Maemo/kdepim)

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

Contents

  • 1 Overview
  • 2 On the Nokia itself
    • 2.1 install openssh
    • 2.2 install subversion
  • 3 In scratchbox
    • 3.1 Hello world
    • 3.2 Re-login
    • 3.3 set up repositories
    • 3.4 install cmake
      • 3.4.1 more information
    • 3.5 Install kde applications
    • 3.6 on the N810 again
  • 4 Know-how
    • 4.1 manually dpkg
    • 4.2 kompile kdelibs
      • 4.2.1 pcre
      • 4.2.2 kdelibs
  • 5 TroubleShooting
    • 5.1 kernel too old
    • 5.2 unable to install maemo-sdk-dev
    • 5.3 ld terminated with signal 9
  • 6 See also

[edit] Overview

  • garage is where the projects for maemo are hosted. Compare it with sourceforge.
  • diablo is the version of maemo. Compare it with lenny.
  • maemo is the software that runs on a device like Nokia's N810
  • 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 a desktop like plasma

For more information see wikipedia.

[edit] On the Nokia itself

[edit] install openssh

  • to install openssh on a nokia 810
  • activate the maemo repository in the package manager
    • settings->application manager
    • tools -> application catalog
    • memo extras -> edit -> un-tag "disabled"
    • close
    • browse installable applications
    • all
    • openssh
    • install

[edit] install subversion

ssh root@localhost
apt-get install subversion

[edit] In scratchbox

You cannot install scratchbox on an X64 computer, so, install an i386 into a VMWare virtual machine. This example uses SUSE 11, but it might work on other distributions as well. The following describes how to install scratchbox into that SUSE 11 32bit installation.

[edit] Hello world

First, we want to compile a "hello world" program for the Nokia. Here is how.

  • Set up scratchbox
root@i386 # useradd -m 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 # /scratchbox/sbin/sbox_adduser scratchboxuser
root@i386 # su - scratchboxuser
  • set up the SDK
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
  • start scratchbox
scratchboxuser@i386 $ /scratchbox/login
[sbox-DIABLO_ARMEL: ~] > sb-conf select DIABLO_ARMEL
[sbox-DIABLO_ARMEL: ~] > cat > main.c << EOF
#include <stdio.h>

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
  • copy the file to your Nokia N810 using scp

=> the file is executable on the Nokia

[edit] Re-login

To re-login after a reboot of your virtual machine run

/scratchbox/sbin/sbox_ctl start
/scratchbox/login

[edit] set up repositories

  • Here you should better make a snapshot of your virtual machine.
  • Then create the installation repositories and install cmake:
cat >>/etc/apt/sources.list<<EOF
# repository with experimental kde packages and dependencies
deb http://93.157.1.37/~marijn/maemo binary/
deb http://repository.maemo.org/ diablo free non-free
deb-src http://repository.maemo.org/ diablo free
deb http://repository.maemo.org/extras-devel/ diablo free
deb-src http://repository.maemo.org/extras-devel/ diablo free
deb http://qt4.garage.maemo.org diablo extra
EOF
apt-get update
root@i386 # cp /etc/resolv.conf /scratchbox/etc/resolv.conf

[edit] install cmake

wget http://www.cmake.org/files/v2.6/cmake-2.6.2.tar.gz
tar xvzf cmake-2.6.2.tar.gz
cd cmake-2.6.2
./bootstrap && make -j4 && make install 

[edit] more information

  • You can also choose to add the repositories mentioned in http://www.forwardbias.in/data/articles/qt_on_maemo.txt, but as of 2008-09-07, qmake installed from there crashes with signal 11.
  • You can also choose to build qt on your own, but for me it does not find openssl during its installation process.

[edit] Install kde applications

cd
apt-get install shared-mime-info
apt-get install xsltproc
apt-get install libboost-dev
apt-get install libakonadi-dev
apt-get install kdepimlibs5-dev
apt-get install libstreamanalyzer-dev
svn co https://svn.kde.org/home/kde/branches/KDE/4.1/kdepim
cd kdepim
cmake . && make && make install

Here you can get to run singular applications, e.g. ktimetracker.

[edit] on the N810 again

Copy the applications and libs to the Nokia. Singular applications work, e.g. ktimetracker. Put all libraries and executables onto your flash storage (/media/mmc1) and start it:

EXPORT LD_LIBRARY_PATH=.
./ktimetracker

[edit] Know-how

[edit] manually dpkg

wget http://93.157.1.37/~marijn/maemo/binary/libqt4-qt3support_4.4.1-1maemo0_armel.deb
wget http://93.157.1.37/~marijn/maemo/binary/libqt4-designer_4.4.1-1maemo0_armel.deb
wget http://93.157.1.37/~marijn/maemo/binary/libqt4-script_4.4.1-1maemo0_armel.deb
wget http://93.157.1.37/~marijn/maemo/binary/libqt4-dbus_4.4.1-1maemo0_armel.deb
wget http://93.157.1.37/~marijn/maemo/binary/libqtcore4_4.4.1-1maemo0_armel.deb
wget http://93.157.1.37/~marijn/maemo/binary/libqtgui4_4.4.1-1maemo0_armel.deb
wget http://93.157.1.37/~marijn/maemo/binary/libqt4-xml_4.4.1-1maemo0_armel.deb
wget http://93.157.1.37/~marijn/maemo/binary/libqt4-test_4.4.1-1maemo0_armel.deb
wget http://93.157.1.37/~marijn/maemo/binary/libqt4-sql_4.4.1-1maemo0_armel.deb
wget http://93.157.1.37/~marijn/maemo/binary/libqt4-webkit_4.4.1-1maemo0_armel.deb
wget http://93.157.1.37/~marijn/maemo/binary/libqt4-svg_4.4.1-1maemo0_armel.deb
wget http://93.157.1.37/~marijn/maemo/binary/libqt4-assistant_4.4.1-1maemo0_armel.deb
wget http://93.157.1.37/~marijn/maemo/binary/libqt4-xmlpatterns_4.4.1-1maemo0_armel.deb

[edit] kompile kdelibs

[edit] pcre

cd
curl ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz>pcre-7.7.tar.gz
tar xvzf pcre-7.7.tar.gz
cd pcre-7.7
./configure && make && make install

[edit] kdelibs

cd
svn co https://svn.kde.org/home/kde/branches/KDE/4.1/kdelibs
mkdir kdelibs-build
cd kdelibs-build
cmake ../kdelibs
make 
make install

[edit] TroubleShooting

[edit] kernel too old

If

cmake 

delivers

FATAL: kernel too old

This happened for me with SLES 10. Better use SUSE 10.3 or SUSE 11.

[edit] unable to install maemo-sdk-dev

On SLES 10, I got

Processing was halted because there were too many errors.
E: Sub-process /scratchbox/devkits/debian-etch/bin/dpkg returned an error code (1)
E: Unable to install maemo-sdk-dev on DIABLO_ARMEL target.
E: Please check the sources.list for errors.
E: Scratchbox login returned error 100.

In this case, change your distribution and start again.

[edit] ld terminated with signal 9

Should you get

collect2: ld terminated with signal 9 [Killed]

Increase the amount of memory for the virtual machine, 512MB is not always enough.

[edit] See also

  • http://www.kdedevelopers.org/node/3624
  • How to kompile on the device itself
  • http://tablets-dev.nokia.com/4.1/INSTALL.txt
  • http://blogs.forum.nokia.com//data/blogs/resources/300003/maemo_and_sdk_for_qt.pdf
  • Get the source from garage
Retrieved from "http://techbase.kde.org/Projects/KDE_on_Maemo/kdepim"
Category: PIM

Navigation

  • Home
  • Help
  • Recent changes

Sections

  • Getting started
  • Development
  • Schedules
  • Policies
  • Contribute
  • Projects

Toolbox

  • What links here
  • Related changes
  • Special pages
  • Printable version
  • Permanent link

Personal tools

  • 38.107.191.97
  • Talk for this IP
  • Log in / create account
  • Login with OpenID
Creative Commons License SA 3.0 as well as the GNU Free Documentation License 1.2
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal