User:Stskeeps/Draft Mer Blueprint

The Mer platform is a Linux distribution for mobile devices based on the Maemo platform from Nokia. Mer goals include:

  • Improving and developing parts of Maemo that are of interest to the Maemo community.
  • Making it easier to port existing desktop applications by hildonizing and adjusting them to the tablet form factor.
  • Encouraging third party experimentation and development.
  • Supporting tablet hardware no longer receiving updated OS software by Nokia.
  • Making Maemo a generic platform for all tablet devices, including non-Nokia ones.
  • Focusing Maemo community efforts in platform-related areas

Mer platform development will be done in the open, with public SCM repository, bugtrackers, and Wiki-based blueprint discussion.

We should stop seeing the tablets as strictly under-powered embedded systems, and see them for what they really are: powerful, power-efficient, economical handheld computers.

Historically, the Mer platform came from a discussion on reconstructing Maemo and a desire to make a proof of concept system of the thoughts in this proposal (M-R PoC), which developed into Mer after realization that it was a viable direction of development.

Contents

[edit] Sprints

We employ the Maemo.org sprints method as development method for Mer. That means, get yourself a maemo.org account, and read this document through if you would like to contribute :)

Most Mer development talk goes on in #maemo on irc.freenode.net. If you do not have an IRC client, use www.mibbit.com. We currently use https://launchpad.net/m-r for collaboration, but will move to maemo.org eventually. Our current status is that we have a N8x0 image with nm-applet, advanced backlight, load-applet on top of a hildon-desktop using Fremantle components, on top of Xorg and Ubuntu Jaunty. Previous progress can be viewed at http://jaiku.com/channel/reconstructedPOC

We have fringe projects in 770, Zaurus, x86, Wii ports, and as such, code will be built first on x86 to ensure cross-platform, and then in our cross-compilers.

[edit] Sprint January 2008 and before: Basic installable image

The purpose of this milestone:

  • To provide a basic installable firmware image, both through installer and through flashing, for N8x0 tablets.
  • The image must include a basic user interface and ability to connect to Wi-Fi networks.
  • To provide a installer and image for 770 tablets.
  • To provide initial developer tools so we can start developing for the tablets.
  • Begin initial talks with Nokia and maemo.org on how to distribute full firmware images.
  • Prepare for next milestone in terms of collaborative technologies.

If you have a task that needs to be done to fullfill the purposes of this milestone, add it to the table below, set it to 'Just standing' status, and with no commit date and owner.

If you want to take on a task, set the initial commit date, your nickname, and update your progress as you go, and update highlights of your work (including what gets added) as you work on it. Update your activity log each day you've performed something related to Mer.

If you encounter any bugs in Maemo platform software while developing for Maemo, report them on bugs.maemo.org , and add the bug number to the sprint bug overview.


Completed Good progress Just standing Some help needed! Really stuck/delayed
Committed Task Owner  % Highlights
December Proposal for distribution of firmware images including closed-source bits needed for community editions Stskeeps 10% First proposal involving initfs bits proposed through maemo-community.
December Initial imager - script to debootstrap and putting Mer on top of Ubuntu Jaunty minbase (x86, armel) for Mer/x86, Mer/armv5te (770,n8x0) Stskeeps 100% Provided here
December Basic hildon-desktop up on Xorg, running with advanced-backlight and load-applet Stskeeps, johnx, etc. 100% In repository
December Initial Scratchbox1 SDK for Mer/armv5te Stskeeps 100% Provided here
2008-15-12 Installer for Mer on Diablo b-man 70% Initial versions
2008-17-12 cx3110x-umac-module (symlink to umac.ko module qwerty12 100% Now in repository
2008-17-12 nokia-n8x0-firmware (symlink to firmwares in initfs) qwerty12 100% Now in repository
2008-17-12 hildon-desktop-env with hildon-input-method setup qwerty12 100% Now in repository
January Diablo kernel that boots from rootfs instead of initfs, and runs /sbin/tablet-init instead of init qwerty12 100% Provided here
January Mer logo, (rescue menu) artwork, wallpaper, theme (titan) wazd, Stskeeps 100% Now in repository (mer-omap-fb-splash, mer-rescue-menu, titan), also see here
January Missing localization strings in Hildon, (#4001) Stskeeps 50%
January Document how to get packages included in repository Stskeeps 100% provided here
qemu-eabi cputransp for Scratchbox none 0%
Fix backspace and enter kills Xorg bug none 0%
Upload new themes to repository (we only have titan and plankton atm) none 0%
Open system sounds (startup chime, touchscreen tap, etc) none 0%
Replacing SDK icons with more modern ones none 0%
Include dsme-tools from Deblet none 0%
Include wifi power saving from Deblet none 0%
Working X-terminal with hildon input method working none 0%

Bug reports in bugzilla discovered through or related to Mer development in this sprint:

IDSeverityProductStatusResolutionSummary (4 tasks) Assignee
3858+normalSystem softwareRESOLVEDFIXEDmaemo-launcher build-depends on libhildondesktop-dev, which in turn build-depends on maemo-launcher-devGuillem Jover
3997criticalDevelopment platformRESOLVEDWONTFIXdbus-glib 0.78-0maemo1 causes hildon-desktop to crash in background-manager.hSoumya
4001normalDevelopment platformRESOLVEDWONTFIXMissing en_GB translations for logical names that already existed beforeSoumya
3939+normalDesktop platformRESOLVEDWONTFIXsapwood loops infinitely at malformed requestunassigned

[edit] Activity log

16th January

  • stskeeps: remade Mer blueprint to fit more into maemo.org processes

[edit] Documentation and tasks

[edit] SDK

First, install Fremantle SDK, and add yourself as a user to scratchbox.

As user:

ISSUES:

  • You might have to do export PKG_CONFIG_PATH=/usr/share/pkgconfig:/usr/lib/pkgconfig to get some pkg-config stuff going
  • You might have to set cpu right and such to target armv5el (no vfp)
  • You probably need to get EABI cpu transparency target too
  • 'not safe for cross-compilation' warnings (not true, i think)
  • fakeroot apt-get dist-upgrade is good once in a while to keep up to date.

[edit] Mer Installer

Make installer for Maemo/Diablo that does the following:

  • Depends on bootmenu (bootmenu with bootmenu.d item)
  • Allows simple installation (partition my internal/external MMC to 50mb FAT, 128mb swap, rest linux), or advanced (choose my own partition)
  • Partitions, mkfs.ext3's and unpacks a downloaded tar.gz (built by the imager, uploaded to some http.). Should support resume of dls (wget -c?)
  • Sets up the bootmenu item for Mer.

[edit] qemu-eabi cputransp for Scratchbox

See http://maemogeek.blogspot.com/2007/11/installing-qemu-arm-eabi-patch-into.html

Make a debian package with this binary (for i386), installing into /scratchbox/devkits/cputransp/bin/qemu-arm-eabi-sb2 and adding 'qemu-arm-eabi-sb2' to /scratchbox/devkits/cputransp/etc/cputransp-methods when installing, and removing when removing (sed -i?)

Edit |SDK to make instructions use qemu-arm-eabi-sb2 instead, and getting your .deb package.

[edit] Getting your package included in the Repository

  • Make sure it compiles after getting your build dependancies, dpkg-buildpackage.
  • Ideally test both dpkg-buildpackage -S -us -uc, dpkg-buildpackage -b -us -uc, dpkg-buildpackage -B (some packages may not build any arch-dep packages, so that's ok. Microdocument it on Jaiku.)
  • bzr export

    Invalid language.

    You need to specify a language like this: <source lang="html4strict">...</source>

    Supported languages for syntax highlighting:

    abap, actionscript, actionscript3, ada, apache, applescript, apt_sources, asm, asp, autoit, avisynth, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_mac, caddcl, cadlisp, cfdg, cfm, cil, cmake, cobol, cpp, cpp-qt, csharp, css, d, dcs, delphi, diff, div, dos, dot, eiffel, email, erlang, fo, fortran, freebasic, genero, gettext, glsl, gml, gnuplot, groovy, haskell, hq9plus, html4strict, idl, ini, inno, intercal, io, java, java5, javascript, kixtart, klonec, klonecpp, latex, lisp, locobasic, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, make, matlab, mirc, modula3, mpasm, mxml, mysql, nsis, oberon2, objc, ocaml, ocaml-brief, oobas, oracle11, oracle8, pascal, per, perl, php, php-brief, pic16, pixelbender, plsql, povray, powershell, progress, prolog, properties, providex, python, qbasic, rails, rebol, reg, robots, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, tcl, teraterm, text, thinbasic, tsql, typoscript, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xml, xorg_conf, xpp, z80