Getting Started

This page will to get you started with a custom Mer 'product' using one of the more popular hacker-friendly pieces of hardware.

Introduction
First some terminology; Mer is a core OS for vendors who want to make products. So


 * a product; is a mix of Mer Core, a HW adaptation and a UX
 * a UX; is the graphical user interface or the "User Experience"
 * a HW Adaptation; is the tailored kernel, modules, GLES drivers etc built for a specific device

Get started
Prerequisites: * N900 * ExoPC * ...
 * a MeeGo Community OBS account
 * Install the Mer Platform SDK
 * Familiarity with 'osc' (See http://wiki.meego.com/Getting_started_with_OBS)
 * One of the following devices

Summary
We will:


 * Build a minimal image using pre-prepared packages
 * Boot the device
 * See the UX
 * Connect using ssh
 * Copy the supplied UX package
 * Modify the .ks
 * Rebuild the image
 * Boot the device
 * See the modified UX

Create sample image for your device
These steps will download everything needed for the image into a format suitable for installing on the device.

All commands are run inside the SDK.

N900
mkdir n900 cd n900 curl -k -O https://raw.github.com/lbt/mer-minimal/master/n900/minimal-n900.ks

The N900 can run USB and wifi networking. Setting up USB0 via the .ks is not yet complete.

For wifi edit the .ks and set the SSID name and passphrase; if you have a local dyndns then setting the HOSTNAME works.

I do this and use the modified .ks in the mic command. sed -e's//MyWPAPhrase/;s//MySSID/;s/localhost.localdomain/MYHOST/;' minimal-n900.ks > minimal-n900.ks-phrased

sudo mic create raw minimal-n900.ks --record-pkgs=name --pkgmgr=yum --arch=armv7hl --compress-disk-image=bz2 -o.

If you want to explore the rootfs before flashing (or for debugging purposes):

sudo mic create fs minimal-n900.ks --record-pkgs=name --pkgmgr=yum --arch=armv7hl -o root

To install the image to the device first see the Nemo N900 installation instructions and then the image writing instructions.

N950
mkdir n950 cd n950 curl -O -k https://raw.github.com/lbt/mer-minimal/master/n950/minimal-n950.ks

The N950 can run USB and wifi networking. Setting up USB0 via the .ks is not yet complete.

For wifi edit the .ks and set the SSID name and passphrase; if you have a local dyndns then setting the HOSTNAME works.

I do this and use the modified .ks in the mic command. sed -e's//MyWPAPhrase/;s//MySSID/;s/localhost.localdomain/MYHOST/;' minimal-n950.ks > minimal-n950.ks-phrased

sudo mic create fs minimal-n950.ks-phrased --record-pkgs=name --pkgmgr=yum --arch=armv7hl --compress-disk-image=tar.bz2 -o.

To install the image to the device first see the Nemo N950 installation instructions and then the rootfs writing instructions.

ExoPC
mkdir exopc cd exopc curl -O -k https://raw.github.com/lbt/mer-minimal/master/exopc/minimal-exopc.ks

The exopc runs wifi networking.

For wifi edit the .ks and set the SSID name and passphrase; if you have a local dyndns then setting the HOSTNAME works.

I do this and use the modified .ks in the mic command. sed -e's//MyWPAPhrase/;s//MySSID/;s/localhost.localdomain/MYHOST/;' minimal-exopc.ks > minimal-exopc.ks-phrased

To actually make the image: sudo mic create liveusb minimal-exopc.ks-phrased --record-pkgs=name --pkgmgr=yum --arch=i686 -o.

To install the image to the device see the x86 installation instructions. Once installed you should be able to boot from the USB stick and ssh in.

Once installed the installer-shell command should copy from the liveusb to the hard-disk.

Note the ExoPC image has the usual virtual text consoles accessed by pressing ctrl-alt-

Use your own UX code + repos
osc copypac home:lbt:Mer:UX mer-not-a-ux home:$USER

Change the code and rebuild the package

Change the .ks to point to your repo

Creating Mer reference kickstarter files from .yaml
To build and tinker with the Mer reference images you'll need to generate the corresponding kickstarter configs.

Install the reference kickstarter configs: sudo zypper in mer-kickstarter-configs

create target directory to put the generated ks files into: mkdir ~/tmp/kickstarts

Generate the kickstarter files from the reference yaml: mer-kickstarter -o ~/tmp/kickstarts -c /usr/share/kickstarter-configs/mer-reference-images/00reference.yaml

Fetch the latest build id (or preferably use --release=latest when running mic): BUILD_ID=$(curl http://releases.merproject.org/releases/latest-release)

Make the ks files refer to the latest release repositories: sed -i -e"s/@BUILD_ID@/$BUILD_ID/" ~/tmp/kickstarts/*ks