Maemo on Debian

(add motivation)
(Added some todo items)
Line 42: Line 42:
They could also build and test the apps natively on their Debian desktop.
They could also build and test the apps natively on their Debian desktop.
-
== Implementation ==
+
== Implementation plan ==
 +
Currently, project is in it's very early stage. Nothing is available to install and try yet.
 +
 +
Here are several steps that we are going to do:
 +
 +
=== Free up a partition to work with ===
 +
 +
By default, N900 has 32G /dev/mmcblk0 device, that is split into a 768k swap partition, a 2 Gb /home partition, and the rest is a vfat /home/MyDocs partition.
 +
 +
We need to have additional partition to install out target Debian into. Most natural way is to split out some space out of /home/MyDocs.
 +
 +
So we need to design and document a clean procedure, how to make /home/MyDocs partition smaller, and get a new free partition for Debian. This should be done such that all current content of /home/MyDocs is preserved, and device keeps booting and working normally.
 +
 +
Once such a procedure is designed and debugged, it will be documented here.
 +
 +
=== Determine minimal subset of Nokia's firmware to work with ===
 +
 +
It will be easier to work with smaller system. I think that complete Nokia's firmware is a bit large to start with. Better to find a smallest subset that is enough for communication functions (UI/phone/messaging) and work with that.
 +
 +
This subset is likely a set of Nokia's original .deb packages (from some particular firmware release), plus maybe some files that are not in any package [don't know if there are such].
 +
 +
It should be possible to unpack the debs in the subset into our free partition (perhaps in the way similar to debootstrap: first unpack, then run postinst scripts and hooks), add not-in-deb files if any (hook can do that), and then boot device into that.
 +
 +
Having device that dual-boots into original system and this minimal subset is a big milestone.
 +
 +
=== Integrate minimal nokia system with Debian infrastructure ===
 +
 +
Next step is to understand the relation between out minimal system and the rest of the debian. There will likely be different sort of incompatibilities between minimal Nokia system and normal Debian: files provided by both Nokia and Debian packages, namespace collisions, incompatible packaging practices, and all other sort of problems. These should be determined and faced somehow, step-by-step.
 +
 +
At some point we should get system that is still functional as a phone, and that can install packages from Debian repositories.
 +
 +
=== To be continued ... ===
 +
 +
Then we should integrate rest of Nokia apps, as well as Maemo and/or Meego apps, and also do numerous enhancements that definitly will be needed and possible.
== Infrastructure ==  
== Infrastructure ==  

Revision as of 20:12, 21 February 2010

Contents

Maemo on Debian

Motivation

The purpose of this project is to port the closed Nokia components of Maemo 5 to a Debian base system running on the Nokia N900 and future devices. It should be possible run both Maemo5 and standard Debian software on this platform natively and in the same environment. In the future, the project will package and integrate the MeeGo components and know-how to enable installation of MeeGo applications.

Why not MeeGo?

MeeGo is supposed to be a merger of Maemo 5 and Moblin and therefore the future of Maemo. While Maemo 5 is similar to Debian and reuses most of its tools and policies, it still significantly different from Debian so that porting Debian packages is not always trivial. Installation of native Debian packages is in most cases impossible.

For many users, the similarity to Debian and the relative openness of Maemo 5 has been precisely the reason why they have bought the Nokia N900. So far Nokia has not committed to porting Harmattan, the successor of Maemo 5, which is supposed to be MeeGo compatible, or the official MeeGo to the N900. Now, a few months after the public release, owners of the sophisticated, but expensive N900 are basically left with an abandoned OS and have little hope to be able to upgrade to its successors. This projects aims to give N900 users immediate access to the Debian software pool and the prospect to be able to install MeeGo applications in the future.

The commercial initiative of Intel and Nokia, called MeeGo, is supposed to be open-source and open for the community. However, important decisions have been made behind closed doors and are unlikely to change. One of those decisions is to switch from base system that is similar to Debian, to an independent base that uses the RPM package manager and that is not required to be compatible with any of the major Linux distribution. MeeGo users and developers could therefore only use and rely on designated MeeGo applications and libraries, if they do not port third-party software to it. MeeGo only targets mainstream, while this project aims to satisfy the needs of both mainstream and experts.

Advantages for users and developers

The integration of Debian, Maemo 5 and MeeGo in this project has the following advantages:

Users will have the freedom to install

  1. all Maemo 5 applications (incl. the non-free Nokia binaries),
  2. future mobile-optimized MeeGo applications (RPM packages), and
  3. all packages from the huge Debian software pool, which is constantly maintained and updated (incl. security fixes) by the Debian community.
  4. novel mobile applications written for this project and compatible with Debian

Only few packages will require modification to run on this platform (excluding complete GUI adapations). The main contribution of this project is to perform and maintain such modifications, and if possible, to send them upstream.

Developers of third-party apps could simply integrate all software packages (for example, libraries) that are available in the huge Debian pool, without the need to port and to maintain them themselves. If they are familiar with the mature Debian development tools and policies, there is no need to learn something new. They could also build and test the apps natively on their Debian desktop.

Implementation plan

Currently, project is in it's very early stage. Nothing is available to install and try yet.

Here are several steps that we are going to do:

Free up a partition to work with

By default, N900 has 32G /dev/mmcblk0 device, that is split into a 768k swap partition, a 2 Gb /home partition, and the rest is a vfat /home/MyDocs partition.

We need to have additional partition to install out target Debian into. Most natural way is to split out some space out of /home/MyDocs.

So we need to design and document a clean procedure, how to make /home/MyDocs partition smaller, and get a new free partition for Debian. This should be done such that all current content of /home/MyDocs is preserved, and device keeps booting and working normally.

Once such a procedure is designed and debugged, it will be documented here.

Determine minimal subset of Nokia's firmware to work with

It will be easier to work with smaller system. I think that complete Nokia's firmware is a bit large to start with. Better to find a smallest subset that is enough for communication functions (UI/phone/messaging) and work with that.

This subset is likely a set of Nokia's original .deb packages (from some particular firmware release), plus maybe some files that are not in any package [don't know if there are such].

It should be possible to unpack the debs in the subset into our free partition (perhaps in the way similar to debootstrap: first unpack, then run postinst scripts and hooks), add not-in-deb files if any (hook can do that), and then boot device into that.

Having device that dual-boots into original system and this minimal subset is a big milestone.

Integrate minimal nokia system with Debian infrastructure

Next step is to understand the relation between out minimal system and the rest of the debian. There will likely be different sort of incompatibilities between minimal Nokia system and normal Debian: files provided by both Nokia and Debian packages, namespace collisions, incompatible packaging practices, and all other sort of problems. These should be determined and faced somehow, step-by-step.

At some point we should get system that is still functional as a phone, and that can install packages from Debian repositories.

To be continued ...

Then we should integrate rest of Nokia apps, as well as Maemo and/or Meego apps, and also do numerous enhancements that definitly will be needed and possible.

Infrastructure

discussion about the project

Resources

Related projects