Mer: Difference between revisions

From Maemo Wiki
Jump to navigationJump to search
imported>stskeeps
imported>stskeeps
No edit summary
Line 92: Line 92:
! Highlights
! Highlights
|- style="background:LightBlue"
|- style="background:LightBlue"
| 2008-15-12 - 0.7 || [[#Mer_Installer|Installer for Mer on Diablo]] || b-man || 90% || [http://trac.tspre.org/bman Initial versions]
| 2008-15-12 - 0.7 || [[Mer/Tasks/Mer_Installer|Installer for Mer on Diablo]] || b-man || 90% || [http://trac.tspre.org/bman Initial versions]
|- style="background:LightBlue"
|- style="background:LightBlue"
| December || [[Task:Community_firmware_image_distribution|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 || [[Task:Community_firmware_image_distribution|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.

Revision as of 00:42, 22 January 2009

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

It is -not- a Nokia project, it's a project started by maemo.org community members.

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.

If you would like to participate in and contribute to Mer - participate in the Mer Sprints and read the Mer Documentation

If you want to see documentation for Mer releases - see Mer Releases


Sprint 0.7

Period: until 1 february 2009

Sprint 0.6

Period: - 18 january 2009

Tasks

Completed Good progress Just standing Some help needed! Really stuck/delayed Urgent for next release
Committed & Target Task Owner % Highlights
When committed to What Who 0% Progress

Bugs

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

{{#bugzilla:id=4023

 |columns=id,severity,product,status,resolution,summary,to

}}


Sprint template

Sprint January 2009 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.


Tasks

Completed Good progress Just standing Some help needed! Really stuck/delayed
Committed & Target Task Owner % Highlights
2008-15-12 - 0.7 Installer for Mer on Diablo b-man 90% Initial versions
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.
January Missing localization strings in Hildon, (#4001) Stskeeps 50%
0.7 qemu-eabi cputransp for Scratchbox qwerty12 95% Deb (i386) & source package provided here - package and qemu binary fine, postinst & prerm scripts need testing (most likely to work fine however).
Open system sounds (startup chime, touchscreen tap, etc) opengeekv2 0%
Replacing SDK icons with more modern ones none 0%
0.7 Working X-terminal with hildon input method working none 0%
16-01-2009 - 0.7 nit-kernel-compat (support kernel booting rootfs directly), base on nitboot qwerty12 90% In repository - needs testing
Modern kernels, get newer kernels working with the 770, N8x0, and use stlc45xx on N8x0s none 0%
Include hildon-theme-layout-4-synth (alter to use proper fallback icon theme) and tritanium, meta, okuda, kobayashi from extras-devel none 0%
Bring in new changes from http://gitweb.pingu.fi/?p=xf86-video-omapfb.git;a=summary to xserver-xorg-video-omapfb none 0%
Make hildon-desktop-env use a configuration file to determine wether it needs to show cursor or not (useful for x86) none 0%
Make kernel-diablo-modules-gserial and implement support with help of rescue menu none 0%
2009-01-17 Move project from launchpad to maemo.org garage Stskeeps 40% Project retrieved (mer.garage.maemo.org), Mer on bugs.maemo.org. Blockers: Multiple git repositories per project Personal git repositories.
Figure out how to make gnome-keyring invisible to the user (or make NetworkManager use something else) none 0%
Fix key generation of openssh-server so it doesn't do it on imager but does it when booting none 0%
Update debhelper in Mer Scratchbox SDK devkit none 0%
Figure out why python-osso fails to build in SDK none 0%
Package up advanced-power as a debian source package none 0%

Bugs

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

{{#bugzilla:id=4023,4001,3858,3939,3997,4016

 |columns=id,severity,product,status,resolution,summary,to

}}

Activity log

17th January

  • stskeeps: added docpurge to repository, added docpurge to n800 and 770 images, re-running imager. helped meiz get Mer on his x86. prodded andre about 'Mer' product in bugzilla, and got it setup. Reported bug on multiple git repositories per project, personal git repositories to ggit project.

16th January

  • stskeeps: remade Mer blueprint to fit more into maemo.org processes, added mer-generic-x86 to play with at some point, and added nit-kernel-compat to imager. fixed up nokia-770's kernel-modules-770 so we can make images for it in imager. added dsme-tools to repo. got x86 port going.

Documentation and tasks

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.

Mer Installer

Make installer for Maemo/Diablo that does the following:

  • Depends on bootmenu (bootmenu with bootmenu.d item), wget, rootsh, zenity, gnutar, binutils, and e2fsprogs
  • 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.

Straightjacket packages

This is a list of packages that did not compile in Scratchbox, and that we had to build natively:

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.

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 <source package name> lp:~yourusername/m-r/<source package name> (gives you a checked out version, without metadata)
  • cd <source package name>
  • dpkg-buildpackage -S -us -uc, to generate a source package
  • Upload the resulting source package (*.changes, *.tar.gz, possibly *.diff.gz) to your ~/incoming on trac.tspre.org.
  • ssh yourlogin@trac.tspre.org /import-new-packages

(This will add the source package to repository, and complain otherwise)

  • You need access to merbuilder & repository upload for the following, ask Stskeeps on Jaiku/IRC for this. Or refer on Jaiku to the source package and some may pick it up
  • On http://jaiku.com/channel/merbuilder , write "build <SOURCE PACKAGE NAME>=<package version>"
  • You can also save the builder some resources if it's an arch-indep package and do "build-x86 <SOURCE PACKAGE NAME>=<package version>"
  • You can make a specific rebuild using build-armel-sb (build in scratchbox),
  • Monitor progress at same page (RSS: http://jaiku.com/channel/merbuilder/feed/rss )
  • An LP player notes that it has picked up a package for building at a certain builder
  • A toast means it baked properly on this architecture. And is uploaded to repository.
  • A heart means it built properly on all architectures. And is uploaded to the repository
  • A bomb means it failed to build on an architecture.
  • A shopping wagon means it has noticed your build request and queued it.
  • A straightjacket means that it failed to build on Scratchbox and needed to be built natively. Note this in "Straightjacket packages" when this happens. means there's a bug in SDK.)

Open system sounds

List of wav files from osso-sounds-ui (non-free package):

/usr/share/sounds/ui-recharge_battery.wav
/usr/share/sounds/ui-connection_lost.wav
/usr/share/sounds/ui-window_open.wav
/usr/share/sounds/ui-window_close.wav
/usr/share/sounds/ui-information_note.wav
/usr/share/sounds/ui-new_email.wav
/usr/share/sounds/ui-wake_up_tune.wav
/usr/share/sounds/ui-charging_started.wav
/usr/share/sounds/ui-confirmation_note.wav
/usr/share/sounds/ui-gesture_number_recognized.wav
/usr/share/sounds/ui-shutdown.wav
/usr/share/sounds/ui-key_press.wav
/usr/share/sounds/ui-pen_down.wav
/usr/share/sounds/ui-general_warning.wav
/usr/share/sounds/ui-thumb_keyboard_launch.wav
/usr/share/sounds/ui-battery_low.wav
/usr/share/sounds/ui-default_beep.wav
/usr/share/sounds/ui-operation_ready.wav
/usr/share/sounds/ui-wrong_charger.wav

Using the imager

Grab the imager from bzr (lp:~mer-committers/m-r/imager)

Targets are:

  • targets/mer-770-fs-only - builds a filesystem for Mer on Nokia 770
  • targets/mer-n800-fs-only - builds a filesystem for Mer on N800
  • targets/mer-x86-generic - builds a filesystem for X86 in general

Imager can be run with: sh imager targets/TARGET /path/where/you/want/fs

Look inside the target scripts and work your way back.

Making a x86 Mer bootable

Partition your boot device, make a ext3 partition. In the following, sda1 is your ext3 partition and sda is your boot device. Only install this on a USB stick or whatever that you want to have possibly destroyed.

  • mkdir -p /mnt/mer
  • mkfs.ext3 /dev/sda1
  • mount -t ext3 /dev/sda1 /mnt/mer
  • Grab a release x86-generic tar.gz and put in /mnt/mer, tar pzvxf it from within /mnt/mer OR Use imager from above and sh imager targets/mer-x86-generic-only-fs /mnt/mer
  • grub-install --no-floppy --recheck --root-directory=/mnt/mer /dev/sda
  • chroot /mnt/mer update-grub
  • verify your /mnt/mer/boot/grub/menu.lst looks correct
  • umount /mnt/mer (if you can)

Mer 0.6

Known issues:

  • 770 port has problems with sapwood and may not work from first startup. Grab a USB cable and use rescue mode
  • RX-48 has not yet gotten its bootmenu.deb updated
  • All images of the same target share same openssh server keys
  • jffs2 + kernel mix for N8x0 is untested
  • root password is not set for you or asked in the first boot wizard, in the tar.gz images.
  • Bootmenu does not play well with clone-to-SD systems. You will have to make a bootmenu item yourself (ask on #maemo about this)
  • NetworkManager is broken in .vdi image, dhclient eth0 in it
  • Advanced mode is a bit funky once in a while and creates bad bootmenu items.

If you want to try it out on N8x0, use the installer.

Disclaimer:

  • There is -no- warranty. This may blow up your MMC, steal your wife or cause doomsday to come around. But if you find some bugs, please report them on bugs.maemo.org and we'll try to see what we can do to fix the bug causing it.
  • If anything goes wrong, grab a USB cable, and rescue mode is done through holding down Home key when booting Mer.

Generic x86 - tar.gz image

Installation (chroot)

mkdir mer-0.6
cd mer-0.6 && sudo tar xzf mer-x86-generic-image-v0.6.tar.gz
sudo mkdir -p tmp/.X11-unix home/$USER/.osso
sudo mv usr/bin/maemo-invoker usr/bin/maemo-invoker.real
echo -e '#!/bin/sh\nPROG="$1"\nshift\nexec "$PROG" "$@"' | sudo tee usr/bin/maemo-invoker
sudo chmod 755 usr/bin/maemo-invoker
echo 'assume-connection 1' | sudo tee home/$USER/.osso/hildon-application-manager
echo 'nameserver <mynameresolver>' | sudo tee -a etc/resolv.conf

Start-up (from within mer-0.6 directory)

Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac -extension Composite 2>/dev/null 1>&2 &
sudo mount --bind /tmp/.X11-unix tmp/.X11-unix
sudo mount --bind /dev/pts dev/pts
sudo mount -t proc proc proc
sudo mount -t sysfs sysfs sys
sudo chroot .
export DISPLAY=:2.0
/etc/init.d/dbus start
start-hildon

VirtualBox x86 - VDI image

  • VirtualBox VDI image (500mb zipped, 1.2Gb after extraction, beware) [md5sum 8c142b2bc4670a6644e85ec3806096ee]

Installation

  1. Unzip zip file
  2. Open VirtualBox, create new machine (click *New*):
    • Name: Mer 0.6
    • OS type: Linux
    • Version: Ubuntu
    • RAM: 128 at least.
    • Disk: click "existing", find the Mer 0.6.vdi file, select, select
    • Next
    • Finish.

Usage

  • Start machine.
  • Root password is 'rootme'

Nokia 770 - tar.gz image

Nokia N8x0 - Installer files (simple)

Nokia N8x0 - Flashable image (untested)

Nokia N8x0 - tar.gz image