
Introduction
Moblin Image Creator allows you to install groups of related, bundled packages, called "functional
sets" (fsets), onto your target. They consist of certain libraries and tools that enable different types of functionalities used for Moblin application development, system configuration, localization, etc. There are also some commonly used libraries and tools that you must install on the target for Moblin application development. This guide describes these and explains when they may be desired or required.
Functional Sets in Moblin Image Creator
Concept
After creating a target using Moblin Image Creator, you can add one or more fsets to the target. A an fset is a bundle of individual packages that add a certain high level of functionality. Some are specifically aimed for development, system configuration, or localization.
Some fsets may depend on other fsets. If you choose to install a an fset with dependencies, Moblin Image Creator will automatically install its dependent fsets.
Functional Set Configuration
When using Moblin Image Creator to build images, there are different platform architectures you may select among, based on the physical architecture of your device. For example, the Samsung Q1 Ultra* is currently being built with the McCaslin Low Power Intel Architecture (LPIA). If you select the platform
mccaslin-lpia, Moblin Image Creator will allow you to install only the fsets specific to that platform. Some fsets are available to all architectures and some are specific to particular devices.
For each platform, there is detailed information describing the available fsets in the fset configuration file. By reading the file specific to your platform, you can add fsets according to your need. These files can usually be found at /usr/share/pdk/platforms/[chosen-platform]/fsets/base.fset on your workstation. For example, if your target platform is menlow-lpia, the fset configuration file would be located at /usr/share/pdk/platforms/menlow-lpia/fsets/base.fset.
Here is the snippet of the fset named Core, described in base.fset for the platform menlow-lpia:| "[Core]" is the fset name, indicated by the square-bracket deliminators. | |
| "DESC=..." | This field is a brief feature description of this fset. |
| "PKGS=..." | This field lists all the packages (libraries and tools) that this fset contains; these packages will be automatically installed by apt or yum (depending on the package manager you are using) when you adds this fset to the target. |
| "DEBUG_PKGS=..." | This field lists those packages that will be installed if selecting "Include Debug Packages (if any)" when adding fsets. |
| "DEPS=..." | This field indicates the fsets that the fset named Core depends on. If these fsets are not added into the target before, they will be added automatically when adding the fset, Core. |
Basic Functional Sets
Certain fsets are commonly used, either because they contain the most fundamental packages or they contain a wide variety of packages covering most users' needs. Other fsets are important, because they provide a very specific functionality. The following sections describe the content of these fsets.
Asian-Fonts
This fset adds fonts for viewing websites in Chinese, Japanese, and Korean, such as the Chinese Unicode TrueType Mingti style font and the Un series Korean TrueType fonts. This fset depends on the fset Core, and is available to all the platforms.
Core
This fset is a fundamental fset that provides a basic file-system. Currently, in Moblin Image Creator, this fset is available to all the platforms.
Take the platform menlow-lpia, for example. This fset provides a root file-system that uses Ubuntu kernel, which is provided by the fset Ubuntu-Kernel. The specific packages contained by this fset are described as follows:
| Package Name | Package Description |
| busybox-initramfs | A simple stand alone shell that provides the basic utilities needed for the initramfs |
| initramfs-tools | Tools to create and boot an initramfs for packaged 2.6 Linux kernel |
| pm-utils | Utilities and scripts for power management in LPIA |
| vbetool | A tool to run real-mode video BIOS code to alter hardware state |
| usplash-theme-ubuntu | Usplash theme for Ubuntu |
| dosfstools | Utilities to create and check MS-DOS FAT file-systems on either hard disks or floppies under Linux |
| psmisc | Utilities that use the proc file-system |
Developer-Tools
When developing Moblin applications on the target file-system, it's recommended that you add the fset
Developer-Tools to install the required packages for development.
This fset depends on the fset Core, and is available to all the platforms. The specific packages (libraries and tools) contained by this fset is described as follows:
| Package Name | Package Description |
| ubuntu-mobile-dev | Development environment for Ubuntu Mobile |
| libtool | Generic library support script |
| autoconf | Automatic configure script builder |
| automake | A tool for generating GNU Standards-compliant Makefiles |
| hildon-desktop-dev | Development files for the Hildon Desktop, which is the desktop environment for embedded devices |
| man | An interface to the on-line reference manuals |
| manpages | Manual pages about using a GNU/Linux system |
| curl | A tool used to get files from HTTP, HTTPS or FTP servers |
| python-dev | Header files and a static library for Python*, which is an interactive high-level object-oriented language |
| dh-make | A tool that converts source archives into Debian* package source |
Device Configurations
Device Configurations related fsets provide device specific configuration files. These fsets are usually titled as [your device]-Config. Currently, Moblin Image Creator has the Samsung-Q1-Ultra-Config and CrownBeach-Config fsets available to all McCaslin and all Menlow platforms, respectively. Both device configuration fsets depend on the fset Core.
GNOME-Mobile
This fset provides a subset of GNOME components for building mobile Linux stacks. The packages it contains
are primarily: mobile X window system-related packages; device drivers; libraries and python bindings of GStreamer*, D-Bus, GTK, etc; telepathy-related packages; GNOME menus;
and icon theme-related packages.
This fset depends on the device configurations fset. For example, on the platform menlow-lpia, this fset depends on the fset CrownBeach-Config. The fset is available to all the platforms with only slight differences. The fset for menlow-lpia platform series contains additional packages listed as follows:
| Package Name | Package Description |
| libdrm2 | The library provides userspace interface to kernel DRM services |
| xf86-video-psb / xserver-xorg-video-psb | 2D graphics driver for Poulsbo |
Full Mobile Stacks with or without Proprietary
The full mobile stacks-related fsets put the fundamental fsets together, including Core,
device configurations fsets, etc. They include all of the components needed to load X, Hildon, and boot a mobile device to the Home Screen. Thus, for convenience, it is recommended to add such fsets into the target so as to install all the fundamental fsets for most users' needs.
The difference between the full mobile stack with proprietary and the full mobile stack [without proprietary], is the former contains an additional package that is used to download and install the Adobe Flash* Player plug-in for Netscape or Mozilla-based browsers.
The full mobile stack fsets are usually titled as [your device]-Full-Mobile-Stack or [your device]-Full-Mobile-Stack-with-Proprietary. Currently, Moblin Image Creator has the following fsets available to different platforms: Samsung-Full-Mobile-Stack, Samsung-Full-Mobile-Stack-with-Proprietary, CrownBeach-Full-Mobile-Stack, CrownBeach-Full-Mobile-Stack-with-Proprietary, Moblin-CrownBeach-Full-Mobile-Stack, and Moblin-CrownBeach-Full-Mobile-Stack-with-Proprietary.
Packages for Moblin Development
This section further describes some commonly used libraries specifically for Moblin application development. Some are already included by the fset Developer-Tools.
Hildon Libraries
Hildon, the GUI application framework of Maemo*, is based on GTK+, and some other technologies from the GNOME framework. Hildon contains some enhancements to GTK+, making it more suitable for the use on
mobile devices.
A more detailed description of Hildon can be found
here.
Moblin also uses Hildon as an application framework. Here are three major Hildon libraries that you may need to install for Moblin application development:
GStreamer* Libraries
GStreamer is a framework for creating streaming media applications. The framework is designed to make it easy to write applications ranging from simple Ogg/Vorbis playback to complex audio (mixing) and video (non-linear editing) processing.
One of the most obvious uses of GStreamer is media player. GStreamer already includes components for building a media player that can support a very wide variety of formats. Developers can also add new codecs and filters by writing a simple plug-in with a clean, generic interface[1].
More documents can be found at http://gstreamer.freedesktop.org/. You can download the GStreamer packages from this website. Also, you can use apt or yum to install GStreamer. For example, when using apt to install Gstreamer Core development files, you can run apt-get install libgstreamer0.10-dev.
Helix* Libraries
Helix* is very similar to GStreamer, which is also a multimedia framework to handle video and audio coding, synchronizing, and other processes. It is cross-platform (Symbian*, Linux*, Windows*, Solaris*, Mac*, etc.), and is sponsored by Real Network Corp. It has many success models (such as media players) on handset devices. Comparing with GStreamer, Helix supports DRM (Digital Rights Management)[2]. More detailed information can be found at http://helixcommunity.org/.
To set up a Helix engine on a Moblin target file-system for development, you can follow the instructions in this document.
D-Bus Related Libraries
D-Bus is a message bus system, that is, a simple way for applications to talk to one another. In addition to interprocess communication, D-Bus helps coordinate the process lifecycle; it makes it simple and reliable to code a "single instance" application or daemon, and to launch applications and daemons on demand when their services are needed[3]. More detailed information can be found at http://www.freedesktop.org/wiki/Software/dbus.
LibOSSO, a wrapper of the D-Bus's low level APIs, is a library all applications designed for Maemo are expected to use. It provides a notification mechanism to applications so they can close gracefully in the event of system shut down or low memory. In addition, LibOSSO conveniently isolates the application from possible implementation changes on D-Bus level.
LibOSSO also provides useful utility functions to handle autosaving and state saving features of the platform, process hardware state and device mode changes and other important events happening in Internet Tablets. It also provides convenient utility wrapper functions to send remote procedure method calls over the D-Bus[4]. You can refer to http://maemo.org/maemo_training_material/maemo4.x/html/maemo_Platform_Development/
Chapter_02_LibOSSO.html for more detailed information about LibOSSO.
You can use apt or yum to install D-Bus related development files. For example, when using apt to install LibOSSO development files, you can run apt-get install libosso-dev.
Reference Documents
The following documents are used as references in the writing of this document. Please refer to these documents for further details.