The Mer Wiki now uses your Mer user account and password (create account on https://bugs.merproject.org/)
Getting Started
Kallaballa (Talk | contribs) (→Creating ks from .yaml) |
Kallaballa (Talk | contribs) (extended and formatted how to creatine Mer reference kickstarter files from .yaml) |
||
Line 126: | Line 126: | ||
Change the .ks to point to your repo | Change the .ks to point to your repo | ||
− | == Creating Mer reference | + | == 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: | ||
<pre> | <pre> | ||
− | |||
sudo zypper in mer-kickstarter-configs | sudo zypper in mer-kickstarter-configs | ||
cd /usr/share/kickstarter-configs | cd /usr/share/kickstarter-configs | ||
+ | </pre> | ||
− | + | create target directory to put the generated ks files into: | |
+ | <pre> | ||
mkdir ~/tmp/kickstarts | mkdir ~/tmp/kickstarts | ||
+ | </pre> | ||
− | + | Generate the kickstarter files from the reference yaml: | |
+ | <pre> | ||
mer-kickstarter -o ~/tmp/kickstarts -c mer-reference-images/00reference.yaml | mer-kickstarter -o ~/tmp/kickstarts -c mer-reference-images/00reference.yaml | ||
+ | </pre> | ||
− | + | Fetch the latest build id: | |
+ | <pre> | ||
BUILD_ID=$(curl http://releases.merproject.org/releases/latest-release) | BUILD_ID=$(curl http://releases.merproject.org/releases/latest-release) | ||
+ | </pre> | ||
− | + | Make the ks files refer to the latest release repositories: | |
+ | <pre> | ||
sed -i -e"s/@BUILD_ID@/$BUILD_ID/" ~/tmp/kickstarts/*ks | sed -i -e"s/@BUILD_ID@/$BUILD_ID/" ~/tmp/kickstarts/*ks | ||
</pre> | </pre> |
Revision as of 11:00, 29 July 2012
This page will to get you started with a custom Mer 'product' using one of the more popular hacker-friendly pieces of hardware.
Contents |
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:
- 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
* N900 * ExoPC * ...
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/<WPA2 passphrase>/MyWPAPhrase/;s/<SSID NAME>/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/<WPA2 passphrase>/MyWPAPhrase/;s/<SSID NAME>/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/<WPA2 passphrase>/MyWPAPhrase/;s/<SSID NAME>/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-<Fn>
Next steps
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 cd /usr/share/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 mer-reference-images/00reference.yaml
Fetch the latest build id:
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