What is Maemo?
Maemo is a software platform that is mostly based on open source code and powers mobile devices such as the Nokia N810 Internet Tablet. Maemo platform has been developed by Nokia in collaboration with many open source projects such as the Linux kernel, Debian, GNOME and many more.
If you want to build Cumulus for the Internet Tablets N800/N810 you have to install the Maemo SDK on your Linux PC.
Installation of Maemo SDK
Do download the Maemo SDK from here. At the moment Maemo 4 for N800 & N810 developers is the current one. Follow the instructions to install Maemo 4.1.2 SDK for Diablo.
If you have successfully installed the SDK you can checkout Cumulus from svn into your scratchbox environment. Excecute the command:
svn co https://svn.kflog.org/svn/repos/cumulus/qt4/trunk
to get the latest version. In the root directory of your checkout you can find a file Makefile.Maemo. In the makefile the following targets are defined:
- all this target builds the whole Cumulus application
- clean this target cleans the whole build area
- dpkg this target builds a installable Debian package from Cumulus
There are some more targets defined but these are the most important.
To build Cumulus you need too a Qt4.5 Framework installation. Look here where you can download it. This address is also a good help concerning all your questions to Qt and Maemo.
Building Cumulus in scratchbox
To build Cumulus in the scratchbox environment you have to adapt the make variable QT_LIBDIR in the makefile Makefile.Maemo. It must point to your Qt library installation directory in the scratchbox. Cumulus needs for its package build the Qt libaries libQtCore and libQtGui. The tools in scratchbox are limited but you can also access the scratchbox content from the outside. E.g. if you have installed scratchbox under
/opt/scratchbox/users/<user>
you can access it from the outside via the path
/opt/scratchbox/users/<user>/home/<user>.
That is more convenient because now you can use your normal tool environment from your Linux desktop. Sometimes I got trouble with svn and ssh in scratchbox. Via the bypass I could overcome these problems.
Do execute the command make -f Makefile.Maemo all
to build the Cumulus application. If you could compile and link it successfullly you can build the Debian package for the Tablet.
Do execute the command make -f Makefile.Maemo dpkg
If all was ok then you can find the Debian package in the subdirectory dpkg. It carry a name like cumulus_<version>_armel.deb. Copy the package to your Tablet e.g. via scp. The package can be installed on your Tablet via the GUI Program Manager or by using the command line tool dpkg -i <cumulus-package> in a X-Terminal window.
Cumulus Debian Package
The Cumulus Debian package includes beside the Cumulus application the necessary Qt Libraries libQtCore and libQtGui for the run-time. Cumulus is installed at the Tablet under the root path /opt/cumulus. The Qt libraries are installed in the subdirectory lib. Cumulus has a start script that will set the LD_LIBRARY_PATH varaible to /opt/cumulus/lib. So is ensured that no conflicts will happen with other Qt installations.
Cumulus adaptions for Maemo
- To add special code only for Maemo the conditional define #ifdef MAEMO is used.
- To handle screen saver switch off two functions osso_initialize and osso_display_blanking_pause from the library libosso are used.
- To handle the BT GPS connection the functions gpsbt_start and gpsbt_stop from the library libgps_bt are used.
- The Maemo GPS daemon is directly connected via its listening port 2947 and requested to send raw data in watcher mode.
- Due to the high screen resolution of 800x420 pixels and the small screen size often bigger fonts or pen width are used under Maemo.
