Difference between revisions of "Projects/Mobile/kdepim"

Jump to: navigation, search
(install cmake)
 
(19 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
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.
 
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.
 +
 +
= 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.
  
 
= On the Nokia itself =
 
= On the Nokia itself =
  
== install subversion ==
+
== install openssh ==
 
* to install openssh on a nokia 810
 
* to install openssh on a nokia 810
 
* activate the maemo repository in the package manager
 
* activate the maemo repository in the package manager
Line 14: Line 24:
 
** openssh
 
** openssh
 
** install
 
** install
 +
 +
== install subversion ==
 
  ssh root@localhost
 
  ssh root@localhost
 
  apt-get install subversion
 
  apt-get install subversion
  
 
= In scratchbox =
 
= 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.
+
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 32bit installation. It might work same or similar with any Linux.
  
 
== Hello world ==
 
== Hello world ==
Line 27: Line 39:
 
  root@i386 # chmod 777 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 # ./maemo-scratchbox-install_4.1.2.sh -s /scratchbox
  root@i386 # /scratchbox/sbin/sbox_adduser myuser
+
  root@i386 # /scratchbox/sbin/sbox_adduser scratchboxuser
 
  root@i386 # su - scratchboxuser
 
  root@i386 # su - scratchboxuser
 
* set up the SDK
 
* set up the SDK
  scrtchboxuser@i386 $ wget http://repository.maemo.org/stable/diablo/maemo-sdk-install_4.1.2.sh
+
  scratchboxuser@i386 $ wget http://repository.maemo.org/stable/diablo/maemo-sdk-install_4.1.2.sh
 
Start the install script and accept all choices:
 
Start the install script and accept all choices:
 
  scratchboxuser@i386 $ sh maemo-sdk-install_4.1.2.sh
 
  scratchboxuser@i386 $ sh maemo-sdk-install_4.1.2.sh
Line 66: Line 78:
 
  deb http://repository.maemo.org/extras-devel/ diablo free
 
  deb http://repository.maemo.org/extras-devel/ diablo free
 
  deb-src 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
 
  EOF
 
  apt-get update
 
  apt-get update
 +
 +
root@i386 # cp /etc/resolv.conf /scratchbox/etc/resolv.conf
  
 
== install cmake ==
 
== install cmake ==
 
  wget http://www.cmake.org/files/v2.6/cmake-2.6.2.tar.gz
 
  wget http://www.cmake.org/files/v2.6/cmake-2.6.2.tar.gz
 
  tar xvzf cmake-2.6.2.tar.gz
 
  tar xvzf cmake-2.6.2.tar.gz
 +
cd cmake-2.6.2
 +
./bootstrap && make -j4 && make install
  
 
=== more information ===
 
=== more information ===
Line 81: Line 98:
 
  apt-get install shared-mime-info
 
  apt-get install shared-mime-info
 
  apt-get install xsltproc
 
  apt-get install xsltproc
 +
apt-get install libboost-dev
 +
apt-get install libakonadi-dev
 
  apt-get install kdepimlibs5-dev
 
  apt-get install kdepimlibs5-dev
  svn co https://svn.kde.org/home/kde/trunk/kdesupport
+
  apt-get install libstreamanalyzer-dev
cd kdesupport
+
cmake . && make && make install
+
 
  svn co https://svn.kde.org/home/kde/branches/KDE/4.1/kdepim
 
  svn co https://svn.kde.org/home/kde/branches/KDE/4.1/kdepim
 
  cd kdepim
 
  cd kdepim
Line 90: Line 107:
 
Here you can get to run singular applications, e.g. ktimetracker.
 
Here you can get to run singular applications, e.g. ktimetracker.
  
== re-install kdelibs ==
+
== 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:
=== pcre ===
+
  EXPORT LD_LIBRARY_PATH=.
cd
+
  ./ktimetracker
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
+
 
+
=== 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
+
 
+
== install kdepim ==
+
cd
+
svn co https://svn.kde.org/home/kde/branches/KDE/4.1/kdepim
+
cd kdepim
+
cmake .
+
make && make install
+
  
 
= Know-how =
 
= Know-how =
Line 130: Line 127:
 
  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-assistant_4.4.1-1maemo0_armel.deb
 
  wget http://93.157.1.37/~marijn/maemo/binary/libqt4-xmlpatterns_4.4.1-1maemo0_armel.deb
 
  wget http://93.157.1.37/~marijn/maemo/binary/libqt4-xmlpatterns_4.4.1-1maemo0_armel.deb
 +
 +
== kompile kdelibs ==
 +
 +
=== pcre ===
 +
cd
 +
curl ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.9.tar.gz>pcre-7.9.tar.gz
 +
tar xvzf pcre-7.9.tar.gz
 +
cd pcre-7.9
 +
./configure && make && make install
 +
 +
=== 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
  
 
= TroubleShooting =
 
= TroubleShooting =

Latest revision as of 08:56, 31 May 2010

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

[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. The following describes how to install scratchbox into a SUSE 11 32bit installation. It might work same or similar with any Linux.

[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.9.tar.gz>pcre-7.9.tar.gz
tar xvzf pcre-7.9.tar.gz
cd pcre-7.9
./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


This page was last modified on 31 May 2010, at 08:56. This page has been accessed 6,729 times. Content is available under 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