Project background

In early 2010 I purchased the Nokia N900 mobile computer/smartphone running a derivative of Debian GNU/Linux known as Maemo 5/Fremantle. Maemo resembles traditional Linux and showed me that desktop-like computing is possible on a smartphone and there is no reason to comprise and succumb to the restrictions imposed on us by popular mobile operating systems such as iOS, Android, etc. Key benefits of Maemo include desktop/server-style preemptive multitasking and dynamic power management. Five years have passed since its introduction and there is still no other smartphone on the market that offers the user the same power as the N900.

Last year the Neo900 community project was announced which aims to produce a spiritual successor to the N900. Backed by Golden Delicious, the Neo900 is based on Openmoko GTA04 hardware and embraces free software values.

Project proposal

My proposal for GSoC is to optimise Debian GNU/Linux for the Neo900 so that it will be suitable for everyday use. The Neo900 is not yet available however I have already placed a pre-order for the Neo900 and I will use a QEMU environment and my N900 for building and testing (where possible) until I am in possession of the device.


The Neo900 team plan to ship the device with a Linux image which will probably be Debian GNU/Linux (currently unconfirmed) however this is expected to be a stop-gap solution with little optimisation. The image provided by the Neo900 team is not expected to be suitable for everyday use and their main objective is to port Fremantle to the device.

Primary goals


The Linux kernel will come from the Fremantle Porting Task Force project My plan is install this kernel under Debian and then create a Linux Container (LXC) for Fremantle under Debian. This serves the purpose of not losing any functionality that is provided by Fremantle and also takes advantage of all of the work already achieved by the Fremantle Porting Task Force. An additional benefit of using LXC is that Fremantle closed components will be sandboxed away from Debian. This will provide a the starting point for a usable system. From there I will be able to start to identify critical Fremantle components that would be off if run natively under Debian and I can start building and porting those components to Debian.

The Neo900 team plan to provide a Board Support Package. It's not yet clear to me what this will consist of but I will need to evaluate this to see what can be used natively under Debian.

Long-term goals (in no particular order)


File system layout. The Neo900 will have two types of flash storage available: NAND (fast but has a limited capactity) and eMMC (slow but has a large capacity). The N900 dealt with this by "optification" however this is not feasible on Debian as packages are not optified. Note that the problem will not be so extreme on the Neo900 as the NAND is expected to have . I see five possible solutions: