<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.meego.com/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.meego.com/index.php?title=Special:Contributions/Liyi&amp;feed=atom&amp;limit=50&amp;target=Liyi&amp;year=&amp;month=</id>
		<title>MeeGo wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.meego.com/index.php?title=Special:Contributions/Liyi&amp;feed=atom&amp;limit=50&amp;target=Liyi&amp;year=&amp;month="/>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Special:Contributions/Liyi"/>
		<updated>2013-05-26T00:22:31Z</updated>
		<subtitle>From MeeGo wiki</subtitle>
		<generator>MediaWiki 1.16.2</generator>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-08T09:55:29Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* image-configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Kickstart (.ks) configuration files are passed to MIC2 to create tailored images. Kickstart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all Kickstart directives and options are supported for creating MeeGo images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official MeeGo .ks files ==&lt;br /&gt;
The official MeeGo .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release: http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the MeeGo images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official MeeGo repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages Groups and Packages ===&lt;br /&gt;
* Groups&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the example below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Package groups are defined in the 'patterns.xml' file, it defines the group names, and what packages are included in each package group, for example: http://repo.meego.com/MeeGo/releases/1.2.0/repos/oss/ia32/packages/repodata/patterns.xml&lt;br /&gt;
&lt;br /&gt;
The MeeGo package groups are standard and common for MeeGo image creation. You can define your own package groups in your own non-meego repos in local, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info in repositories about MeeGo package groups defination: https://meego.gitorious.org/meego-os-base/package-groups/&lt;br /&gt;
&lt;br /&gt;
* Packages&lt;br /&gt;
You can also add individual packages to the image, for example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
A common question is that, a packageA may has more than one copy with different versions residing in a repo(s) that your .ks is pointing to. How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
* select the package with highest version number by default&lt;br /&gt;
''Example:''&lt;br /&gt;
&lt;br /&gt;
In the repo(s) these are different versions of PackageA:&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0&lt;br /&gt;
 PackageA-2.0&lt;br /&gt;
 PackageA-3.0&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
* select the package through &amp;quot;Epoch&amp;quot; version&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file, such as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages. All MeeGo official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch not set)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example:''&amp;lt;br&amp;gt;&lt;br /&gt;
 PackageA-1.0 (Epoch=100)&lt;br /&gt;
 PackageA-2.0 (Epoch = 1)&lt;br /&gt;
 PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that MeeGo packages will not have 'Epoch' set, so if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg should NOT be included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
packages 'carrick' and 'package-xyz' will _not_ be included in the image&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should be removed also, otherwise MIC2 will ignore your request and keep that package in the image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it will include both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is created.&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generate .ks file from Kickstarter ==&lt;br /&gt;
You can also create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
=== Kickstarter ===&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
This tool is also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=kickstarter&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files, please get from the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
This file has the definition of configurations. The Configurations inherit from platforms first then from the DEFAULT section. The image configurations override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
=== image-configurations ===&lt;br /&gt;
Image-configurations is a package used to manage the configurations of images under different platforms, it provides yaml type configs.&lt;br /&gt;
&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The package of image-configurations also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=image-configurations&amp;amp;project=Trunk &lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T10:37:21Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages and Package Groups ===&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above. Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file. Defined therein are package group names, and what packages are included in each package group. The Meego package groups are standard, and cannot be changed. You can, however, define your own package groups in your own non-Meego repos, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool 'kickstarter'.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
This tool is also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=kickstarter&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The package of image-configurations also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=image-configurations&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T10:36:26Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages and Package Groups ===&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above. Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file. Defined therein are package group names, and what packages are included in each package group. The Meego package groups are standard, and cannot be changed. You can, however, define your own package groups in your own non-Meego repos, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool 'kickstarter'.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
This tool is also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=kickstarter&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
image-configuration also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=image-configurations&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T10:35:57Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages and Package Groups ===&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above. Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file. Defined therein are package group names, and what packages are included in each package group. The Meego package groups are standard, and cannot be changed. You can, however, define your own package groups in your own non-Meego repos, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool 'kickstarter'.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
This tool is also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=kickstarter&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
image-configuration also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=kickstarter&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T10:35:21Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstarter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages and Package Groups ===&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above. Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file. Defined therein are package group names, and what packages are included in each package group. The Meego package groups are standard, and cannot be changed. You can, however, define your own package groups in your own non-Meego repos, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool 'kickstarter'.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
This tool is also maintained by MeeGo OBS, in Trunk project: http://build.meego.com/package/show?package=kickstarter&amp;amp;project=Trunk&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
image-configuration also maintained by MeeGo OBS http://build.meego.com, in Trunk project&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T10:34:22Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstarter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages and Package Groups ===&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above. Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file. Defined therein are package group names, and what packages are included in each package group. The Meego package groups are standard, and cannot be changed. You can, however, define your own package groups in your own non-Meego repos, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool 'kickstarter'.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
This tool is also maintained by MeeGo OBS http://build.meego.com, in Trunk project.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
image-configuration also maintained by MeeGo OBS http://build.meego.com, in Trunk project&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T10:33:51Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages and Package Groups ===&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above. Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file. Defined therein are package group names, and what packages are included in each package group. The Meego package groups are standard, and cannot be changed. You can, however, define your own package groups in your own non-Meego repos, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool 'kickstarter'.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
This tool is also maintained by MeeGo OBS, in Trunk project.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
image-configuration also maintained by MeeGo OBS http://build.meego.com, in Trunk project&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T10:30:24Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages and Package Groups ===&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above. Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file. Defined therein are package group names, and what packages are included in each package group. The Meego package groups are standard, and cannot be changed. You can, however, define your own package groups in your own non-Meego repos, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool 'kickstarter'.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
This tool is also maintained by MeeGo OBS, in Trunk project.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T10:29:47Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages and Package Groups ===&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above. Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file. Defined therein are package group names, and what packages are included in each package group. The Meego package groups are standard, and cannot be changed. You can, however, define your own package groups in your own non-Meego repos, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool 'kickstarter'.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
This tool is also maintained by MeeGo OBS, in Trunk project.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
You can get image-configurations noarch package here: http://download.meego.com/live/Trunk/standard/noarch/&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T10:25:44Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstarter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages and Package Groups ===&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above. Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file. Defined therein are package group names, and what packages are included in each package group. The Meego package groups are standard, and cannot be changed. You can, however, define your own package groups in your own non-Meego repos, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool 'kickstarter'.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
This tool is also maintained by MeeGo OBS, in Trunk project.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T10:25:02Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstarter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages and Package Groups ===&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above. Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file. Defined therein are package group names, and what packages are included in each package group. The Meego package groups are standard, and cannot be changed. You can, however, define your own package groups in your own non-Meego repos, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool 'kickstarter'.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
This tool is also maintained by MeeGo OBS, in Trunk project.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T10:23:34Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstarter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
Formal release:&lt;br /&gt;
  http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
Weekly build:&lt;br /&gt;
  http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
We suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Change Partition, Setup and Bootloader options ===&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specify Repos ===&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image. You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
=== Add Packages and Package Groups ===&lt;br /&gt;
This specifies exactly what packages will be included in your image. Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above. Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file. Defined therein are package group names, and what packages are included in each package group. The Meego package groups are standard, and cannot be changed. You can, however, define your own package groups in your own non-Meego repos, if you are using those.&lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How MIC2 picks a package when different versions are available ===&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
=== Remove Packages ===&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
=== Post scripts ===&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool 'kickstarter'.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images.&lt;br /&gt;
&lt;br /&gt;
You can download it here: http://repo.meego.com/MeeGo/tools/repos/meego/trunk/noarch/&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T09:18:13Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* MeeGo Patterns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool 'kickstarter'.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T09:17:23Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool `kickstarter`.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platform are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T08:58:21Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool `kickstarter`.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platfrom are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Part&amp;quot;: Partition specific configs&lt;br /&gt;
  Part: qemu&lt;br /&gt;
  &lt;br /&gt;
  # Part are stored in custom/part and referenced by part name&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Architecture&amp;quot;: Based architecture&lt;br /&gt;
  Architecture: ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T08:53:19Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool `kickstarter`.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platfrom are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Name&amp;quot;: description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Schedule&amp;quot;: When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Active&amp;quot;: if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Platform&amp;quot;: Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Kernel&amp;quot;: Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Mic2Options&amp;quot;: MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Desktop&amp;quot;: Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Timezone&amp;quot;&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
&amp;quot;FileName&amp;quot;: The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Groups&amp;quot;: package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ExtraPackages&amp;quot;: Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Repos&amp;quot;: Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PostScripts&amp;quot;: Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T07:50:05Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* MeeGo Patterns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool `kickstarter`.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configurations:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platfrom are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
Timezone&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T07:49:14Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool `kickstarter`.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configuration:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platfrom are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
description of the configuration file&lt;br /&gt;
  Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
When should this image be generated:&lt;br /&gt;
  # *: always&lt;br /&gt;
  # 0: Monday&lt;br /&gt;
  # 1: Tuesday&lt;br /&gt;
  # ...&lt;br /&gt;
  # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
  Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if this image is active&lt;br /&gt;
  Active: True&lt;br /&gt;
&lt;br /&gt;
Inherit from platform&lt;br /&gt;
  Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
Based kernel&lt;br /&gt;
  Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
MIC2 options to be used when creating this image&lt;br /&gt;
  Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Desktop type&lt;br /&gt;
  Desktop: None &lt;br /&gt;
&lt;br /&gt;
Timezone&lt;br /&gt;
  Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
The name of the configuration file&lt;br /&gt;
  FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
package groups&lt;br /&gt;
  Groups:&lt;br /&gt;
     - MeeGo Netbook Desktop&lt;br /&gt;
     - MeeGo Core&lt;br /&gt;
     - Printing&lt;br /&gt;
     - Games&lt;br /&gt;
&lt;br /&gt;
Additional packages that are not part of any group&lt;br /&gt;
  ExtraPackages:&lt;br /&gt;
     - chromium&lt;br /&gt;
     - adobe-release&lt;br /&gt;
     - flash-plugin&lt;br /&gt;
&lt;br /&gt;
Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
  Repos:&lt;br /&gt;
     - adobe&lt;br /&gt;
&lt;br /&gt;
Post-scripts to be run after the image is installed&lt;br /&gt;
  PostScripts:&lt;br /&gt;
     - meegotouch-n900&lt;br /&gt;
     - bootchart&lt;br /&gt;
     - fstab-n900&lt;br /&gt;
     - arch-armv7hl&lt;br /&gt;
  &lt;br /&gt;
  # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T07:47:27Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* MeeGo Patterns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool `kickstarter`.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configuration:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  repos.yaml         -- a list of repositories to be used in the kickstart files&lt;br /&gt;
&lt;br /&gt;
  core               -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance         -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi                -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset            -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook            -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet             -- path for image-configs under 'tablet' platform &lt;br /&gt;
&lt;br /&gt;
  custom/part        -- store partition definition&lt;br /&gt;
  custom/scripts     -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platfrom are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
description of the configuration file&lt;br /&gt;
 Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
When should this image be generated:&lt;br /&gt;
 # *: always&lt;br /&gt;
 # 0: Monday&lt;br /&gt;
 # 1: Tuesday&lt;br /&gt;
 # ...&lt;br /&gt;
 # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
 Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if this image is active&lt;br /&gt;
 Active: True&lt;br /&gt;
&lt;br /&gt;
Inherit from platform&lt;br /&gt;
 Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
Based kernel&lt;br /&gt;
 Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
MIC2 options to be used when creating this image&lt;br /&gt;
 Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Desktop type&lt;br /&gt;
 Desktop: None &lt;br /&gt;
&lt;br /&gt;
Timezone&lt;br /&gt;
 Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
The name of the configuration file&lt;br /&gt;
 FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
package groups&lt;br /&gt;
 Groups:&lt;br /&gt;
    - MeeGo Netbook Desktop&lt;br /&gt;
    - MeeGo Core&lt;br /&gt;
    - Printing&lt;br /&gt;
    - Games&lt;br /&gt;
&lt;br /&gt;
Additional packages that are not part of any group&lt;br /&gt;
 ExtraPackages:&lt;br /&gt;
    - chromium&lt;br /&gt;
    - adobe-release&lt;br /&gt;
    - flash-plugin&lt;br /&gt;
&lt;br /&gt;
Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
 Repos:&lt;br /&gt;
    - adobe&lt;br /&gt;
&lt;br /&gt;
Post-scripts to be run after the image is installed&lt;br /&gt;
 PostScripts:&lt;br /&gt;
    - meegotouch-n900&lt;br /&gt;
    - bootchart&lt;br /&gt;
    - fstab-n900&lt;br /&gt;
    - arch-armv7hl&lt;br /&gt;
 # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T07:41:21Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* MeeGo Patterns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool `kickstarter`.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configuration:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  core       -- path for image-configs under 'core' platform &lt;br /&gt;
  compliance -- path for image-configs under 'compliance' platform &lt;br /&gt;
  ivi        -- path for image-configs under 'ivi' platform &lt;br /&gt;
  handset    -- path for image-configs under 'handset' platform &lt;br /&gt;
  netbook    -- path for image-configs under 'netbook' platform &lt;br /&gt;
  tablet     -- path for image-configs under 'tablet' platform &lt;br /&gt;
  custom/part -- store partition definition&lt;br /&gt;
  custom/scripts -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platfrom are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
description of the configuration file&lt;br /&gt;
 Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
When should this image be generated:&lt;br /&gt;
 # *: always&lt;br /&gt;
 # 0: Monday&lt;br /&gt;
 # 1: Tuesday&lt;br /&gt;
 # ...&lt;br /&gt;
 # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
 Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if this image is active&lt;br /&gt;
 Active: True&lt;br /&gt;
&lt;br /&gt;
Inherit from platform&lt;br /&gt;
 Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
Based kernel&lt;br /&gt;
 Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
MIC2 options to be used when creating this image&lt;br /&gt;
 Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Desktop type&lt;br /&gt;
 Desktop: None &lt;br /&gt;
&lt;br /&gt;
Timezone&lt;br /&gt;
 Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
The name of the configuration file&lt;br /&gt;
 FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
package groups&lt;br /&gt;
 Groups:&lt;br /&gt;
    - MeeGo Netbook Desktop&lt;br /&gt;
    - MeeGo Core&lt;br /&gt;
    - Printing&lt;br /&gt;
    - Games&lt;br /&gt;
&lt;br /&gt;
Additional packages that are not part of any group&lt;br /&gt;
 ExtraPackages:&lt;br /&gt;
    - chromium&lt;br /&gt;
    - adobe-release&lt;br /&gt;
    - flash-plugin&lt;br /&gt;
&lt;br /&gt;
Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
 Repos:&lt;br /&gt;
    - adobe&lt;br /&gt;
&lt;br /&gt;
Post-scripts to be run after the image is installed&lt;br /&gt;
 PostScripts:&lt;br /&gt;
    - meegotouch-n900&lt;br /&gt;
    - bootchart&lt;br /&gt;
    - fstab-n900&lt;br /&gt;
    - arch-armv7hl&lt;br /&gt;
 # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T07:39:30Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* MeeGo Patterns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool `kickstarter`.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configuration:&lt;br /&gt;
&lt;br /&gt;
  configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
  core, compliance, ivi, handset, netbook, tablet -- path for configurations of different platforms.&lt;br /&gt;
  custom/part -- store partition definition&lt;br /&gt;
  custom/scripts -- store postscripts definition&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platfrom are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
description of the configuration file&lt;br /&gt;
 Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
When should this image be generated:&lt;br /&gt;
 # *: always&lt;br /&gt;
 # 0: Monday&lt;br /&gt;
 # 1: Tuesday&lt;br /&gt;
 # ...&lt;br /&gt;
 # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
 Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if this image is active&lt;br /&gt;
 Active: True&lt;br /&gt;
&lt;br /&gt;
Inherit from platform&lt;br /&gt;
 Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
Based kernel&lt;br /&gt;
 Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
MIC2 options to be used when creating this image&lt;br /&gt;
 Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Desktop type&lt;br /&gt;
 Desktop: None &lt;br /&gt;
&lt;br /&gt;
Timezone&lt;br /&gt;
 Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
The name of the configuration file&lt;br /&gt;
 FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
package groups&lt;br /&gt;
 Groups:&lt;br /&gt;
    - MeeGo Netbook Desktop&lt;br /&gt;
    - MeeGo Core&lt;br /&gt;
    - Printing&lt;br /&gt;
    - Games&lt;br /&gt;
&lt;br /&gt;
Additional packages that are not part of any group&lt;br /&gt;
 ExtraPackages:&lt;br /&gt;
    - chromium&lt;br /&gt;
    - adobe-release&lt;br /&gt;
    - flash-plugin&lt;br /&gt;
&lt;br /&gt;
Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
 Repos:&lt;br /&gt;
    - adobe&lt;br /&gt;
&lt;br /&gt;
Post-scripts to be run after the image is installed&lt;br /&gt;
 PostScripts:&lt;br /&gt;
    - meegotouch-n900&lt;br /&gt;
    - bootchart&lt;br /&gt;
    - fstab-n900&lt;br /&gt;
    - arch-armv7hl&lt;br /&gt;
 # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T07:36:44Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* MeeGo Patterns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool `kickstarter`.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configuration:&lt;br /&gt;
&lt;br /&gt;
 configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
 core/compliance/ivi/handset/netbook/tablet: path for configurations of different platforms.&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platfrom are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
description of the configuration file&lt;br /&gt;
 Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
When should this image be generated:&lt;br /&gt;
 # *: always&lt;br /&gt;
 # 0: Monday&lt;br /&gt;
 # 1: Tuesday&lt;br /&gt;
 # ...&lt;br /&gt;
 # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
 Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if this image is active&lt;br /&gt;
 Active: True&lt;br /&gt;
&lt;br /&gt;
Inherit from platform&lt;br /&gt;
 Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
Based kernel&lt;br /&gt;
 Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
MIC2 options to be used when creating this image&lt;br /&gt;
 Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Desktop type&lt;br /&gt;
 Desktop: None &lt;br /&gt;
&lt;br /&gt;
Timezone&lt;br /&gt;
 Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
The name of the configuration file&lt;br /&gt;
 FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
package groups&lt;br /&gt;
 Groups:&lt;br /&gt;
    - MeeGo Netbook Desktop&lt;br /&gt;
    - MeeGo Core&lt;br /&gt;
    - Printing&lt;br /&gt;
    - Games&lt;br /&gt;
&lt;br /&gt;
Additional packages that are not part of any group&lt;br /&gt;
 ExtraPackages:&lt;br /&gt;
    - chromium&lt;br /&gt;
    - adobe-release&lt;br /&gt;
    - flash-plugin&lt;br /&gt;
&lt;br /&gt;
Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
 Repos:&lt;br /&gt;
    - adobe&lt;br /&gt;
&lt;br /&gt;
Post-scripts to be run after the image is installed&lt;br /&gt;
 PostScripts:&lt;br /&gt;
    - meegotouch-n900&lt;br /&gt;
    - bootchart&lt;br /&gt;
    - fstab-n900&lt;br /&gt;
    - arch-armv7hl&lt;br /&gt;
 # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T07:36:26Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* MeeGo Patterns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
MeeGo use image-configurations package to create .ks files with command line tool `kickstarter`.&lt;br /&gt;
&lt;br /&gt;
The organization of image-configuration:&lt;br /&gt;
&lt;br /&gt;
configuration.yaml -- default and platform generic configs, also point to external platform path, it's the entrance for kickstart.&lt;br /&gt;
&lt;br /&gt;
core/compliance/ivi/handset/netbook/tablet: path for configurations of different platforms.&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platfrom are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
description of the configuration file&lt;br /&gt;
 Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
When should this image be generated:&lt;br /&gt;
 # *: always&lt;br /&gt;
 # 0: Monday&lt;br /&gt;
 # 1: Tuesday&lt;br /&gt;
 # ...&lt;br /&gt;
 # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
 Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if this image is active&lt;br /&gt;
 Active: True&lt;br /&gt;
&lt;br /&gt;
Inherit from platform&lt;br /&gt;
 Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
Based kernel&lt;br /&gt;
 Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
MIC2 options to be used when creating this image&lt;br /&gt;
 Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Desktop type&lt;br /&gt;
 Desktop: None &lt;br /&gt;
&lt;br /&gt;
Timezone&lt;br /&gt;
 Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
The name of the configuration file&lt;br /&gt;
 FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
package groups&lt;br /&gt;
 Groups:&lt;br /&gt;
    - MeeGo Netbook Desktop&lt;br /&gt;
    - MeeGo Core&lt;br /&gt;
    - Printing&lt;br /&gt;
    - Games&lt;br /&gt;
&lt;br /&gt;
Additional packages that are not part of any group&lt;br /&gt;
 ExtraPackages:&lt;br /&gt;
    - chromium&lt;br /&gt;
    - adobe-release&lt;br /&gt;
    - flash-plugin&lt;br /&gt;
&lt;br /&gt;
Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
 Repos:&lt;br /&gt;
    - adobe&lt;br /&gt;
&lt;br /&gt;
Post-scripts to be run after the image is installed&lt;br /&gt;
 PostScripts:&lt;br /&gt;
    - meegotouch-n900&lt;br /&gt;
    - bootchart&lt;br /&gt;
    - fstab-n900&lt;br /&gt;
    - arch-armv7hl&lt;br /&gt;
 # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T07:27:10Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platfrom are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
description of the configuration file&lt;br /&gt;
 Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
When should this image be generated:&lt;br /&gt;
 # *: always&lt;br /&gt;
 # 0: Monday&lt;br /&gt;
 # 1: Tuesday&lt;br /&gt;
 # ...&lt;br /&gt;
 # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
 Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if this image is active&lt;br /&gt;
 Active: True&lt;br /&gt;
&lt;br /&gt;
Inherit from platform&lt;br /&gt;
 Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
Based kernel&lt;br /&gt;
 Kernel: kernel-adaptation-mrst&lt;br /&gt;
&lt;br /&gt;
MIC2 options to be used when creating this image&lt;br /&gt;
 Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Desktop type&lt;br /&gt;
 Desktop: None &lt;br /&gt;
&lt;br /&gt;
Timezone&lt;br /&gt;
 Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
The name of the configuration file&lt;br /&gt;
 FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
package groups&lt;br /&gt;
 Groups:&lt;br /&gt;
    - MeeGo Netbook Desktop&lt;br /&gt;
    - MeeGo Core&lt;br /&gt;
    - Printing&lt;br /&gt;
    - Games&lt;br /&gt;
&lt;br /&gt;
Additional packages that are not part of any group&lt;br /&gt;
 ExtraPackages:&lt;br /&gt;
    - chromium&lt;br /&gt;
    - adobe-release&lt;br /&gt;
    - flash-plugin&lt;br /&gt;
&lt;br /&gt;
Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
 Repos:&lt;br /&gt;
    - adobe&lt;br /&gt;
&lt;br /&gt;
Post-scripts to be run after the image is installed&lt;br /&gt;
 PostScripts:&lt;br /&gt;
    - meegotouch-n900&lt;br /&gt;
    - bootchart&lt;br /&gt;
    - fstab-n900&lt;br /&gt;
    - arch-armv7hl&lt;br /&gt;
 # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T07:25:22Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platfrom are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
description of the configuration file&lt;br /&gt;
 Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
When should this image be generated:&lt;br /&gt;
 # *: always&lt;br /&gt;
 # 0: Monday&lt;br /&gt;
 # 1: Tuesday&lt;br /&gt;
 # ...&lt;br /&gt;
 # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
 Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if this image is active&lt;br /&gt;
 Active: True&lt;br /&gt;
&lt;br /&gt;
Inherit from platform&lt;br /&gt;
 Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
MIC2 options to be used when creating this image&lt;br /&gt;
 Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Desktop type&lt;br /&gt;
 Desktop: None &lt;br /&gt;
&lt;br /&gt;
Timezone&lt;br /&gt;
 Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
The name of the configuration file&lt;br /&gt;
 FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
package groups&lt;br /&gt;
 Groups:&lt;br /&gt;
    - MeeGo Netbook Desktop&lt;br /&gt;
    - MeeGo Core&lt;br /&gt;
    - Printing&lt;br /&gt;
    - Games&lt;br /&gt;
&lt;br /&gt;
Additional packages that are not part of any group&lt;br /&gt;
 ExtraPackages:&lt;br /&gt;
    - chromium&lt;br /&gt;
    - adobe-release&lt;br /&gt;
    - flash-plugin&lt;br /&gt;
&lt;br /&gt;
Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
 Repos:&lt;br /&gt;
    - adobe&lt;br /&gt;
&lt;br /&gt;
Post-scripts to be run after the image is installed&lt;br /&gt;
 PostScripts:&lt;br /&gt;
    - meegotouch-n900&lt;br /&gt;
    - bootchart&lt;br /&gt;
    - fstab-n900&lt;br /&gt;
    - arch-armv7hl&lt;br /&gt;
 # post-scripts are stored in custom/scripts and referenced by post-scripts name&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T07:20:49Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platfrom are common.&lt;br /&gt;
&lt;br /&gt;
'''''Detail for the keywords'''''&lt;br /&gt;
&lt;br /&gt;
description of the configuration file&lt;br /&gt;
 Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
When should this image be generated:&lt;br /&gt;
 # *: always&lt;br /&gt;
 # 0: Monday&lt;br /&gt;
 # 1: Tuesday&lt;br /&gt;
 # ...&lt;br /&gt;
 # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
 Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if this image is active&lt;br /&gt;
 Active: True&lt;br /&gt;
&lt;br /&gt;
Inherit from platform&lt;br /&gt;
 Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
MIC2 options to be used when creating this image&lt;br /&gt;
 Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Desktop type&lt;br /&gt;
 Desktop: None &lt;br /&gt;
&lt;br /&gt;
Timezone&lt;br /&gt;
 Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
The name of the configuration file&lt;br /&gt;
 FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
package groups&lt;br /&gt;
 Groups:&lt;br /&gt;
    - MeeGo Netbook Desktop&lt;br /&gt;
    - MeeGo Core&lt;br /&gt;
    - Printing&lt;br /&gt;
    - Games&lt;br /&gt;
&lt;br /&gt;
Additional packages that are not part of any group&lt;br /&gt;
 ExtraPackages:&lt;br /&gt;
    - chromium&lt;br /&gt;
    - adobe-release&lt;br /&gt;
    - flash-plugin&lt;br /&gt;
&lt;br /&gt;
Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
 Repos:&lt;br /&gt;
    - adobe&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T07:19:41Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platfrom are common.&lt;br /&gt;
&lt;br /&gt;
'''''Example'''''&lt;br /&gt;
&lt;br /&gt;
description of the configuration file&lt;br /&gt;
 Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
When should this image be generated:&lt;br /&gt;
 # *: always&lt;br /&gt;
 # 0: Monday&lt;br /&gt;
 # 1: Tuesday&lt;br /&gt;
 # ...&lt;br /&gt;
 # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
 Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if this image is active&lt;br /&gt;
 Active: True&lt;br /&gt;
&lt;br /&gt;
Inherit from platform&lt;br /&gt;
 Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
MIC2 options to be used when creating this image&lt;br /&gt;
 Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Desktop type&lt;br /&gt;
 Desktop: None &lt;br /&gt;
&lt;br /&gt;
Timezone&lt;br /&gt;
 Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
The name of the configuration file&lt;br /&gt;
 FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
package groups&lt;br /&gt;
 Groups:&lt;br /&gt;
    - MeeGo Netbook Desktop&lt;br /&gt;
    - MeeGo Core&lt;br /&gt;
    - Printing&lt;br /&gt;
    - Games&lt;br /&gt;
&lt;br /&gt;
Additional packages that are not part of any group&lt;br /&gt;
 ExtraPackages:&lt;br /&gt;
    - chromium&lt;br /&gt;
    - adobe-release&lt;br /&gt;
    - flash-plugin&lt;br /&gt;
&lt;br /&gt;
Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
 Repos:&lt;br /&gt;
    - adobe&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T07:19:24Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platfrom are common.&lt;br /&gt;
&lt;br /&gt;
'''''Example'''''&lt;br /&gt;
&lt;br /&gt;
description of the configuration file&lt;br /&gt;
 Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
When should this image be generated:&lt;br /&gt;
 # *: always&lt;br /&gt;
 # 0: Monday&lt;br /&gt;
 # 1: Tuesday&lt;br /&gt;
 # ...&lt;br /&gt;
 # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
 Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if this image is active&lt;br /&gt;
 Active: True&lt;br /&gt;
&lt;br /&gt;
Inherit from platform&lt;br /&gt;
 Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
MIC2 options to be used when creating this image&lt;br /&gt;
 Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Desktop type&lt;br /&gt;
 Desktop: None &lt;br /&gt;
&lt;br /&gt;
Timezone&lt;br /&gt;
 Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
The name of the configuration file&lt;br /&gt;
 FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
package groups&lt;br /&gt;
 Groups:&lt;br /&gt;
    - MeeGo Netbook Desktop&lt;br /&gt;
    - MeeGo Core&lt;br /&gt;
    - Printing&lt;br /&gt;
    - Games&lt;br /&gt;
&lt;br /&gt;
Additional packages that are not part of any group&lt;br /&gt;
 ExtraPackages:&lt;br /&gt;
    - chromium&lt;br /&gt;
    - adobe-release&lt;br /&gt;
    - flash-plugin&lt;br /&gt;
&lt;br /&gt;
Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
 Repos:&lt;br /&gt;
    - adobe&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T07:17:30Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platfrom are common.&lt;br /&gt;
&lt;br /&gt;
'''''Example'''''&lt;br /&gt;
&lt;br /&gt;
description of the configuration file&lt;br /&gt;
 Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
When should this image be generated:&lt;br /&gt;
 # *: always&lt;br /&gt;
 # 0: Monday&lt;br /&gt;
 # 1: Tuesday&lt;br /&gt;
 # ...&lt;br /&gt;
 # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 &lt;br /&gt;
 Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if this image is active&lt;br /&gt;
 Active: True&lt;br /&gt;
&lt;br /&gt;
Inherit from platform&lt;br /&gt;
 Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
MIC2 options to be used when creating this image&lt;br /&gt;
 Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Desktop type&lt;br /&gt;
 Desktop: None &lt;br /&gt;
&lt;br /&gt;
Timezone&lt;br /&gt;
 Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
The name of the configuration file&lt;br /&gt;
 FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
package groups&lt;br /&gt;
 Groups:&lt;br /&gt;
    - MeeGo Netbook Desktop&lt;br /&gt;
    - MeeGo Core&lt;br /&gt;
    - Printing&lt;br /&gt;
    - Games&lt;br /&gt;
&lt;br /&gt;
Additional packages that are not part of any group&lt;br /&gt;
 ExtraPackages:&lt;br /&gt;
    - chromium&lt;br /&gt;
    - adobe-release&lt;br /&gt;
    - flash-plugin&lt;br /&gt;
&lt;br /&gt;
Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
 Repos:&lt;br /&gt;
    - adobe&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T07:16:09Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platfrom are common.&lt;br /&gt;
&lt;br /&gt;
'''''Example'''''&lt;br /&gt;
&lt;br /&gt;
description of the configuration file&lt;br /&gt;
 Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
When should this image be generated:&lt;br /&gt;
 # *: always&lt;br /&gt;
 # 0: Monday&lt;br /&gt;
 # 1: Tuesday&lt;br /&gt;
 # ...&lt;br /&gt;
 # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if this image is active&lt;br /&gt;
 Active: True&lt;br /&gt;
&lt;br /&gt;
Inherit from platform&lt;br /&gt;
 Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
MIC2 options to be used when creating this image&lt;br /&gt;
 Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Desktop type&lt;br /&gt;
 Desktop: None &lt;br /&gt;
&lt;br /&gt;
Timezone&lt;br /&gt;
 Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
The name of the configuration file&lt;br /&gt;
 FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
package groups&lt;br /&gt;
 Groups:&lt;br /&gt;
    - MeeGo Netbook Desktop&lt;br /&gt;
    - MeeGo Core&lt;br /&gt;
    - Printing&lt;br /&gt;
    - Games&lt;br /&gt;
&lt;br /&gt;
Additional packages that are not part of any group&lt;br /&gt;
 ExtraPackages:&lt;br /&gt;
    - chromium&lt;br /&gt;
    - adobe-release&lt;br /&gt;
    - flash-plugin&lt;br /&gt;
&lt;br /&gt;
Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
 Repos:&lt;br /&gt;
    - adobe&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T07:15:40Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platfrom are common.&lt;br /&gt;
&lt;br /&gt;
'''''Example'''''&lt;br /&gt;
&lt;br /&gt;
description of the configuration file&lt;br /&gt;
 Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
When should this image be generated:&lt;br /&gt;
 *: always&lt;br /&gt;
 0: Monday&lt;br /&gt;
 1: Tuesday&lt;br /&gt;
 ...&lt;br /&gt;
 # If no schedule keyword is present, then image will not be created&lt;br /&gt;
 Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if this image is active&lt;br /&gt;
 Active: True&lt;br /&gt;
&lt;br /&gt;
Inherit from platform&lt;br /&gt;
 Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
MIC2 options to be used when creating this image&lt;br /&gt;
 Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Desktop type&lt;br /&gt;
 Desktop: None &lt;br /&gt;
&lt;br /&gt;
Timezone&lt;br /&gt;
 Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
The name of the configuration file&lt;br /&gt;
 FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
package groups&lt;br /&gt;
 Groups:&lt;br /&gt;
    - MeeGo Netbook Desktop&lt;br /&gt;
    - MeeGo Core&lt;br /&gt;
    - Printing&lt;br /&gt;
    - Games&lt;br /&gt;
&lt;br /&gt;
Additional packages that are not part of any group&lt;br /&gt;
 ExtraPackages:&lt;br /&gt;
    - chromium&lt;br /&gt;
    - adobe-release&lt;br /&gt;
    - flash-plugin&lt;br /&gt;
&lt;br /&gt;
Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
 Repos:&lt;br /&gt;
    - adobe&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T07:15:06Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platfrom are common.&lt;br /&gt;
&lt;br /&gt;
'''''Example'''''&lt;br /&gt;
&lt;br /&gt;
description of the configuration file&lt;br /&gt;
 Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
When should this image be generated:&lt;br /&gt;
 *: always&lt;br /&gt;
 0: Monday&lt;br /&gt;
 1: Tuesday&lt;br /&gt;
 ...&lt;br /&gt;
If no schedule keyword is present, then image will not be created&lt;br /&gt;
 Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if this image is active&lt;br /&gt;
 Active: True&lt;br /&gt;
&lt;br /&gt;
Inherit from platform&lt;br /&gt;
 Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
MIC2 options to be used when creating this image&lt;br /&gt;
 Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Desktop type&lt;br /&gt;
 Desktop: None &lt;br /&gt;
&lt;br /&gt;
Timezone&lt;br /&gt;
 Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
The name of the configuration file&lt;br /&gt;
 FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
package groups&lt;br /&gt;
 Groups:&lt;br /&gt;
    - MeeGo Netbook Desktop&lt;br /&gt;
    - MeeGo Core&lt;br /&gt;
    - Printing&lt;br /&gt;
    - Games&lt;br /&gt;
&lt;br /&gt;
Additional packages that are not part of any group&lt;br /&gt;
 ExtraPackages:&lt;br /&gt;
    - chromium&lt;br /&gt;
    - adobe-release&lt;br /&gt;
    - flash-plugin&lt;br /&gt;
&lt;br /&gt;
Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
 Repos:&lt;br /&gt;
    - adobe&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T07:14:21Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platfrom are common.&lt;br /&gt;
&lt;br /&gt;
'''''Example'''''&lt;br /&gt;
&lt;br /&gt;
description of the configuration file&lt;br /&gt;
 Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
When should this image be generated:&lt;br /&gt;
*: always&lt;br /&gt;
0: Monday&lt;br /&gt;
1: Tuesday&lt;br /&gt;
...&lt;br /&gt;
If no schedule keyword is present, then image will not be created&lt;br /&gt;
 Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if this image is active&lt;br /&gt;
 Active: True&lt;br /&gt;
&lt;br /&gt;
Inherit from platform&lt;br /&gt;
 Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
MIC2 options to be used when creating this image&lt;br /&gt;
 Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Desktop type&lt;br /&gt;
 Desktop: None &lt;br /&gt;
&lt;br /&gt;
Timezone&lt;br /&gt;
 Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
The name of the configuration file&lt;br /&gt;
 FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
package groups&lt;br /&gt;
 Groups:&lt;br /&gt;
    - MeeGo Netbook Desktop&lt;br /&gt;
    - MeeGo Core&lt;br /&gt;
    - Printing&lt;br /&gt;
    - Games&lt;br /&gt;
&lt;br /&gt;
Additional packages that are not part of any group&lt;br /&gt;
 ExtraPackages:&lt;br /&gt;
    - chromium&lt;br /&gt;
    - adobe-release&lt;br /&gt;
    - flash-plugin&lt;br /&gt;
&lt;br /&gt;
Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
 Repos:&lt;br /&gt;
    - adobe&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T07:13:32Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platfrom are common.&lt;br /&gt;
&lt;br /&gt;
'''''Example'''''&lt;br /&gt;
&lt;br /&gt;
# description of the configuration file&lt;br /&gt;
 Name: MeeGo Netbook/Nettop  &lt;br /&gt;
&lt;br /&gt;
# When should this image be generated:&lt;br /&gt;
# *: always&lt;br /&gt;
# 0: Monday&lt;br /&gt;
# 1: Tuesday&lt;br /&gt;
# ...&lt;br /&gt;
# If no schedule keyword is present, then image will not be created&lt;br /&gt;
 Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# if this image is active&lt;br /&gt;
 Active: True&lt;br /&gt;
&lt;br /&gt;
# Inherit from platform&lt;br /&gt;
 Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
# MIC2 options to be used when creating this image&lt;br /&gt;
 Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Desktop type&lt;br /&gt;
 Desktop: None &lt;br /&gt;
&lt;br /&gt;
# Timezone&lt;br /&gt;
 Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
# The name of the configuration file&lt;br /&gt;
 FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
# package groups&lt;br /&gt;
 Groups:&lt;br /&gt;
    - MeeGo Netbook Desktop&lt;br /&gt;
    - MeeGo Core&lt;br /&gt;
    - Printing&lt;br /&gt;
    - Games&lt;br /&gt;
&lt;br /&gt;
# Additional packages that are not part of any group&lt;br /&gt;
 ExtraPackages:&lt;br /&gt;
    - chromium&lt;br /&gt;
    - adobe-release&lt;br /&gt;
    - flash-plugin&lt;br /&gt;
&lt;br /&gt;
# Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
 Repos:&lt;br /&gt;
    - adobe&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T07:10:01Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
&lt;br /&gt;
It's strongly recommended to create .ks files by kickstarter from image-configurations.&lt;br /&gt;
&lt;br /&gt;
The followings are how does image-configurations manage those parts in .ks files&lt;br /&gt;
&lt;br /&gt;
This configurations.yaml file has a generic definition of configurations. &lt;br /&gt;
The Configurations inherit from platforms first then from the DEFAULT section.&lt;br /&gt;
The image configurations override all other settings &lt;br /&gt;
(in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Basically all common options should go to the DEFAULT section. If an options is&lt;br /&gt;
related to a specific platform, then that option should be added to the platform&lt;br /&gt;
section. Try to keep platforms clean and very generic, if needed, create a new&lt;br /&gt;
platform section and use it when many options for a new platfrom are common.&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
&lt;br /&gt;
# description of the configuration file&lt;br /&gt;
Name: MeeGo Netbook/Nettop  &lt;br /&gt;
# When should this image be generated:&lt;br /&gt;
# *: always&lt;br /&gt;
# 0: Monday&lt;br /&gt;
# 1: Tuesday&lt;br /&gt;
# ...&lt;br /&gt;
# If no schedule keyword is present, then image will not be created&lt;br /&gt;
&lt;br /&gt;
Schedule: &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# if this image is active&lt;br /&gt;
Active: True&lt;br /&gt;
&lt;br /&gt;
# Inherit from platform&lt;br /&gt;
Platform: NETBOOK&lt;br /&gt;
&lt;br /&gt;
# MIC2 options to be used when creating this image&lt;br /&gt;
Mic2Options: &amp;quot;-f livecd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Desktop type&lt;br /&gt;
Desktop: None &lt;br /&gt;
&lt;br /&gt;
# Timezone&lt;br /&gt;
Timezone: America/New_York&lt;br /&gt;
&lt;br /&gt;
# The name of the configuration file&lt;br /&gt;
FileName: netbook-ia32&lt;br /&gt;
&lt;br /&gt;
# package groups&lt;br /&gt;
Groups:&lt;br /&gt;
    - MeeGo Netbook Desktop&lt;br /&gt;
    - MeeGo Core&lt;br /&gt;
    - Printing&lt;br /&gt;
    - Games&lt;br /&gt;
&lt;br /&gt;
# Additional packages that are not part of any group&lt;br /&gt;
ExtraPackages:&lt;br /&gt;
    - chromium&lt;br /&gt;
    - adobe-release&lt;br /&gt;
    - flash-plugin&lt;br /&gt;
&lt;br /&gt;
# Repos to use in addition to default repos, those are define in the repos.yaml file&lt;br /&gt;
Repos:&lt;br /&gt;
    - adobe&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T05:56:39Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* KickStart Files (configuration files used for image creation) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T05:54:43Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== KickStart Files (configuration files used for image creation) ===&lt;br /&gt;
&lt;br /&gt;
KickStart (.ks) configuration files are passed to MIC2 to create tailored images.  KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options.  More explained below.&lt;br /&gt;
&lt;br /&gt;
====Official Meego .ks files====&lt;br /&gt;
&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
*For ARM based Nokia N900:  http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
*For Intel Atom based netbook and handset (Moorestown):  http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create.  Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
====Modifying your .ks====&lt;br /&gt;
&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images.  Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
'''''Partition, Setup and Bootloader options'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lang en_US.UTF-8&lt;br /&gt;
keyboard us&lt;br /&gt;
timezone --utc America/New_York&lt;br /&gt;
auth --useshadow --enablemd5&lt;br /&gt;
part / --size 1500 --ondisk sda --fstype=ext3&lt;br /&gt;
rootpw meego&lt;br /&gt;
xconfig --startxonboot&lt;br /&gt;
bootloader --timeout=0 --append=&amp;quot;quiet&amp;quot;&lt;br /&gt;
desktop --autologinuser=meego  --defaultdesktop=xfce&lt;br /&gt;
user --name meego  --groups audio,video --password meego&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are mostly self-explanatory and set up important things such as partition size, filesystem type, kernel paramters, etc.  You can change these depending on what your needs are.&lt;br /&gt;
&lt;br /&gt;
'''''Repos'''''&lt;br /&gt;
&lt;br /&gt;
This is where you can specify the yum repositories that you want MIC2 to search and pull your packages from which to make up your image.  You can add official Meego repos, other remote repos, or your own local repos on your dev machine.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is a comment&lt;br /&gt;
&lt;br /&gt;
# My first repo&lt;br /&gt;
repo   --name=trunk  --baseurl=http://mytrunk.myrepo.com&lt;br /&gt;
&lt;br /&gt;
# My second repo&lt;br /&gt;
#repo   --name=&amp;lt;repo-name-2&amp;gt;  --baseurl=&amp;lt; url | local-repo-dir &amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' --name of the repo can be any unique alphanumeric name you give your repo, it can be anything.  Just make sure you don't use the same name twice for any of the listed repos, remember they have to be unique.&lt;br /&gt;
&lt;br /&gt;
To create a repo you can point to on your local developer machine, you can run the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
createrepo -d &amp;lt;local-dir&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where 'local-dir' is a local directory on your machine that contains the rpms you want include in your local directory.&lt;br /&gt;
&lt;br /&gt;
'''''Adding Packages and Package Groups'''''&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example adding pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
@X for Netbooks&lt;br /&gt;
@Base&lt;br /&gt;
@Development Tools&lt;br /&gt;
@&amp;lt;my-PkgGroup1&amp;gt;&lt;br /&gt;
@&amp;lt;my-PkgGroup2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
xorg-x11-server-Xorg-setuid&lt;br /&gt;
carrick&lt;br /&gt;
xorg-x11-drv-evtouch&lt;br /&gt;
&amp;lt;my-pkg-1&amp;gt;&lt;br /&gt;
&amp;lt;my-pkg-2&amp;gt;&lt;br /&gt;
%end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This specifies exactly what packages will be included in your image.  Package groups can be specified with a &amp;quot;@&amp;quot; preceding it, as you can see from the examples above.  Package groups are defined in the 'repodata' section of a repo, under a 'comps*.xml' file.  Defined therein are package group names, and what packages are included in each package group.  The Meego package groups are standard, and cannot be changed.  You can, however, define your own package groups in your own non-Meego repos, if you are using those.  &lt;br /&gt;
&lt;br /&gt;
Please see here for more info on defining package groups in repositories: TO-DO-LINK&lt;br /&gt;
&lt;br /&gt;
You can also add individual package names to be included in the image as you can see from the second part in the above example.&lt;br /&gt;
&lt;br /&gt;
'''''Important Note about how MIC2 picks a package when different versions are available'''''&lt;br /&gt;
&lt;br /&gt;
A common problem is that, let's say, a packageA has more than one version residing in a repo(s) that your .ks is pointing to.&lt;br /&gt;
&lt;br /&gt;
How will the MIC2 know which one to pick?&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
There exists in the repo(s) these different versions of PackageA:&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MIC2 will pick the PackageA with the highest version number (PackageA-3.0 in this case).&lt;br /&gt;
&lt;br /&gt;
There is one way to get around that, and that is to set the 'Epoch' version within a package .spec file.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Example (works in both .spec and .yaml file)&lt;br /&gt;
&lt;br /&gt;
Name: &amp;lt;name&amp;gt;&lt;br /&gt;
Summary: &amp;lt;summary&amp;gt;&lt;br /&gt;
Epoch: 1&lt;br /&gt;
Version: &amp;lt;version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MIC2 will first look to compare the 'Epoch' version of the packages.  All Meego official packages do not include an 'Epoch' version, so if you set the 'Epoch' number within your .spec file to any positive integer, no matter if your package version is smaller, MIC2 will choose your package.&lt;br /&gt;
&lt;br /&gt;
So back to our example.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-2.0 in this case.  And it follow that:&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&lt;br /&gt;
PackageA-1.0 (Epoch=100)&lt;br /&gt;
&lt;br /&gt;
PackageA-2.0 (Epoch = 1)&lt;br /&gt;
&lt;br /&gt;
PackageA-3.0 (Epoch not set)&lt;br /&gt;
&lt;br /&gt;
MIC2 will choose PackageA-1.0.&lt;br /&gt;
&lt;br /&gt;
Remember that Meego packages will not have 'Epoch' set, so chances are that if you set 'Epoch' in your own package to any positive integer, it will be the one MIC2 chooses to pull down and include in an image.&lt;br /&gt;
&lt;br /&gt;
'''''Removing Packages'''''&lt;br /&gt;
&lt;br /&gt;
If you would like to make sure that a pkg is _not_ included, you can specify that with a '-' preceding the package name.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%packages&lt;br /&gt;
&lt;br /&gt;
# Example pkg groups&lt;br /&gt;
&lt;br /&gt;
@Core&lt;br /&gt;
&lt;br /&gt;
# Example adding individual pkgs&lt;br /&gt;
&lt;br /&gt;
kernel-netbook&lt;br /&gt;
&lt;br /&gt;
# Example removing individual pkgs&lt;br /&gt;
&lt;br /&gt;
-carrick&lt;br /&gt;
-package-xyz&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with the above example, packages 'carrick' and 'package-xyz' will _not_ be included in the image.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all packages that depend on the package you want to remove should also be removed, or else MIC2 will ignore your request to remove that package from an image. For example, if 'carrick' depends on 'package-xyz', and you specified only to remove 'package-xyz', and keep carrick, MIC2 will ignore the request to remove package-xyz (since carrick depends on it), and it includes both of these pgks in the image.&lt;br /&gt;
&lt;br /&gt;
'''''Post scripts'''''&lt;br /&gt;
&lt;br /&gt;
You can also specify post-scripts to be run after the image is installed.&lt;br /&gt;
&lt;br /&gt;
''Example''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%post&lt;br /&gt;
&lt;br /&gt;
# Example - saving some space&lt;br /&gt;
rm -f /boot/initrd*&lt;br /&gt;
rm -f /core*&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Example - Install working xorg.conf&lt;br /&gt;
if [ -f /usr/share/my.conf ]; then&lt;br /&gt;
    cp /usr/share/my.conf /etc/X11/xorg.conf&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Example - Tell alsa the correct audio card to use for your platform&lt;br /&gt;
echo -e &amp;quot;options snd-hda-intel index=0\noptions snd-timbi2s index=1&amp;quot; &amp;gt; /etc/modp&lt;br /&gt;
robe.d/alsa.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T05:51:32Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Modify your .ks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
=== Modify your .ks ===&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Modify image-configs ===&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T05:51:01Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Modify your .ks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
==== Modify your .ks ====&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Modify image-configs ===&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T05:50:42Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstart from image-configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
=== Modify your .ks ===&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
=== Modify image-configs ===&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T05:49:43Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;br /&gt;
&lt;br /&gt;
== Kickstart from image-configurations ==&lt;br /&gt;
Modify your .ks&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
Modify image-configs&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T03:21:55Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Official Meego .ks files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg as a formal usage.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T03:15:57Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Official Meego .ks files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T03:15:27Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Official Meego .ks files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
But we suggest you to create .ks files by kickstarter tool with image-configurations pkg.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T03:12:51Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Official Meego .ks files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
    Example Link: http://repo.meego.com/MeeGo/builds/trunk/latest/builddata/image-configs/&lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T03:09:46Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstarter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
  kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
  The &amp;quot;configuration.yaml&amp;quot; file here is an example only, for meego kickstart files,&lt;br /&gt;
  consult the image-configurations package.&lt;br /&gt;
&lt;br /&gt;
  This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
  from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
  override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
  This file contains a list of repositories to be used in the kickstart files.&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T03:08:06Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Kickstarter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;br /&gt;
Kickstarter is a tool for create kickstart files to build meego images&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 kickstarter  --configs configurations.yaml --repos repos.yaml &lt;br /&gt;
&lt;br /&gt;
Configuration file:&lt;br /&gt;
 This configuration.yaml file here is an example only, for meego kickstart files,&lt;br /&gt;
 consult the image-configurations package&lt;br /&gt;
 This file has the definition of configurations. The Configurations inherit &lt;br /&gt;
 from platforms first then from the DEFAULT section. The image configurations&lt;br /&gt;
 override the all other settings (in DEFAULT and platform sections).&lt;br /&gt;
&lt;br /&gt;
Repo file:&lt;br /&gt;
 This file contains a list of repositories to be used in the kickstart files.&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T02:48:44Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Modify your .ks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
Developers may want to modify the .ks files to create their own custom images. Here are the main options and sections within the .ks file.&lt;br /&gt;
&lt;br /&gt;
You can also find in-depth .ks option information here: http://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_2._Kickstart_Options&lt;br /&gt;
&lt;br /&gt;
== Kickstarter ==&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Image_Configurations_-_KickStart_Files</id>
		<title>Image Configurations - KickStart Files</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Image_Configurations_-_KickStart_Files"/>
				<updated>2011-07-06T02:42:43Z</updated>
		
		<summary type="html">&lt;p&gt;Liyi: /* Official Meego .ks files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KickStart (.ks) configuration files are passed to MIC2 to create tailored images. KickStart files specify what repos to pull from, what packages to include, what post-scripts to run and what type of images to create.&lt;br /&gt;
&lt;br /&gt;
For more details about the kickstart format, see http://fedoraproject.org/wiki/Anaconda/Kickstart.&lt;br /&gt;
&lt;br /&gt;
Note that not all KickStart directives and options are supported for creating Meego images. MIC2 also adds some specific directives and options. More explained below&lt;br /&gt;
&lt;br /&gt;
== Official Meego .ks files ==&lt;br /&gt;
The official Meego .ks files are here:&lt;br /&gt;
&lt;br /&gt;
    For ARM based Nokia N900: http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/handset/images/meego-handset-armv7l-n900/&lt;br /&gt;
    For Intel Atom based netbook and handset (Moorestown): http://repo.meego.com/MeeGo/builds/trunk/ &amp;lt;version&amp;gt;/{netbook,handset,ivi}/images/&amp;lt;respective directory&amp;gt;/ &lt;br /&gt;
&lt;br /&gt;
You can download and use them as a base for the Meego images you create. Modify these .ks files as you wish to create tailored images.&lt;br /&gt;
&lt;br /&gt;
== MeeGo Patterns ==&lt;br /&gt;
== Modify your .ks ==&lt;br /&gt;
== Kickstarter ==&lt;/div&gt;</summary>
		<author><name>Liyi</name></author>	</entry>

	</feed>