Search

Run with MeeGo

The MeeGo Project has had multiple releases and has progressed
significantly since its announcement in February 2010.
This article provides an overview
of the MeeGo Project for newcomers, a review of the benefits
MeeGo provides to the players in the mobile ecosystem, and discusses
the features in the latest MeeGo 1.1 release, announced October
28, 2010.

Introduction to MeeGo

MeeGo is an open, collaborative project between the project founders
(Nokia and Intel), the Open Source community and various commercial and
noncommercial partners with the goals of accelerating the adoption of
Linux on a magnitude of client devices and enriching the technical Linux
platform as the platform of choice for mobile computing devices.

MeeGo is a Linux-based operating system built for the next generation
of computing devices across multiple hardware architectures. Different
from other mobile operating systems, MeeGo is an open-source platform
governed by best practices of open-source development. It includes the
following:

Core operating system.

User Interface (UI) libraries and tools.

References user experiences for multiple devices.

Standard set of application programming interfaces (APIs) across all target
device types.

A software development kit (SDK) that enables application developers to
develop, install, debug and run applications either on reference
devices or in an emulated environment.

MeeGo supports a magnitude of mobile client devices (handsets,
connected TVs, in-vehicle infotainment, Netbooks and tablets). It provides
choice and flexibility to create and deliver a uniquely differentiated
service offering. It's an unusual project in that it is aligned
closely with upstream projects, as MeeGo requires that submitted patches
also are submitted to the appropriate upstream project and are on a path
for acceptance. This development model has the great effect of improving
all upstream open-source projects used in MeeGo, and it guarantees a unified
technical approach led by the upstream projects.

MeeGo and Connected Devices

We all use mobile devices every day (such as Netbooks, connected TVs,
tablets,
in-vehicle infotainment and handsets). The power of these devices has reached
astounding levels with unheard of performance and capabilities. The goal of
the MeeGo Project is to develop the best software platform to go with these
devices.

How Does MeeGo Benefit the Mobile Ecosystem?

If you are an open-source developer, you will enjoy working on an
open-source mobile platform project that follows open-source development
practices. You will have full access to everything MeeGo, and you can rest
assured that any code contributed by MeeGo will be submitted to the
appropriate upstream open-source projects. From this perspective, every
other Linux mobile and desktop effort will benefit from MeeGo's work
and contributions.

If you are an application developer, you will enjoy working with a
single set of APIs across a number of client devices (handsets, tablets,
Netbooks, in-vehicle infotainment systems and connected TVs). You have
access to polished and easy-to-get-and-use developer tools and
infrastructure. In addition, there are open forums where you can engage in
discussions directly with the platform and tool creators, exchange
ideas and best practices and even participate in the evolution of the
platform. Plus, you will enjoy the flexibility of hosting your
applications in more than one application store.

If you are a device manufacturer or a wireless operator looking to
build and/or deploy devices with MeeGo, the project offers tremendous
opportunities. MeeGo is a democratic project with open access to all,
at all times. It is the only platform of its kind built with unparalleled
openness in the industry. It will accelerate your time to market, lower
the complexities involved in targeting multiple device types, allow
you to optimize the software stack and, most important, grant you an
equal right to participate in the evolution of the software platform.

MeeGo 2010 Milestones

Since the project announcement in February 2010, MeeGo
has delivered the core software platform in addition to three user
experience implementations (Netbook, handset and in-vehicle infotainment),
with several updates in between. Figure 1 provides the roadmap
of releases since the project's inception and Figure 2 offers the roadmap of
the release updates and what they included.

Figure 1. MeeGo Releases Since the Project's Announcement

Figure 2. MeeGo Release Updates

Between major releases, MeeGo offers updates that usually include
general operating system fixes to enhance the stability, compatibility,
security and visual quality of the devices running MeeGo. Between
MeeGo 1.0 (05/2010) and MeeGo 1.1 (10/2010), the MeeGo Project provided
three update releases that featured improvements to the MeeGo
core stack and the Netbook release.

The releases follow the six-month cycle promised by the project and are being
delivered on time.
The MeeGo source code repository is open for people to pull the source code
anytime they like, if they don't want to be restricted to the six-month
release cycle.
The release updates are available as necessary, depending on the
security/stability/compatibility updates. However, you don't need to wait
for the official update to become available, because you have access to the code
repository, and you can create an updated image from scratch for your target
device.

What's New in MeeGo 1.1?

Any device that will run MeeGo needs two things: the MeeGo core software
stack and the MeeGo User eXperience (UX) for that specific device,
although you are not limited to using the MeeGo UX, and you can create and
deploy your own branded UX. Currently, MeeGo is available for Netbooks,
IVI and handsets.

MeeGo v1.1 Core Software Platform

The MeeGo Core 1.1 release provides a common base operating system for
the user experiences of all supported device categories. It provides a
complete set of enabling technologies for mobile computing. The MeeGo
stack contains Linux kernel 2.6.35, X.org server 1.9.0, Web Runtime, Qt
4.7 and Qt Mobility 1.0.2, supporting the contacts, location, messaging,
multimedia, and sensor and service frameworks. It also includes a number
of leading-edge components, such as the oFono telephony stack, the ConnMan
connection manager, the Tracker data indexer, the Telepathy real-time
communications framework, the Buteo sync framework and many more.

These technologies are brought to application developers through the
MeeGo API, which is based on Qt and other technologies, such as the
MeeGo Touch Framework. With the latest Qt version 4.7, the
MeeGo developer experience is now enhanced with the introduction of QML,
the easy-to-use scripting technology for animated touch-enabled GUI
apps.

Table 1. MeeGo v1.1 Core Software Platform Key Feature List

Key Feature

Description

Related Upstream Project

Complete MeeGo-compliant packages

Ensures compatibility.

N/A

GCC 4.5.0 toolchain

Includes support for the Intel Atom microarchitecture and runtime
library functions optimized for the Intel SSSE3 instruction set.

The MeeGo v1.1 Netbook UX provides a complete set of core applications and
offers a visually rich Netbook user experience that is optimized for power
and performance, all built on the latest open-source technologies. Some
of the key features include:

Integrated touch support.

Easy-to-use applications.

Instant access to the core applications from the MeeGo home screen (aka
Myzone).

Aggregation of social-networking content, which allows you to view
your social-networking activities on one screen as they occur, easily
interact with friends and update your status and site information.

For a fast and rich Internet experience, the MeeGo Netbook UX integrates
Google Chrome or, if you prefer, a fully open-source browser solution.
Google Chromium also is provided.

MeeGo on Netbooks

Experiencing MeeGo on Netbooks is very accessible given their popularity and
availability. All you need is a Netbook with an Intel Atom or
Intel Core 2 CPU, a USB drive (stick) for saving the MeeGo image and
booting with it, and the MeeGo image. Step-by-step instructions are available
from meego.com/devices/netbook. Instructions are available for Linux,
Windows and Mac OS X users, so you have no excuse not to take it for a
test-drive.

Figure 3. The Devices screen with three connected USB
devices,
including an Olympus camera showing as a 1GB filesystem, an HP USB device
used to copy the screenshots and the USB device that holds the MeeGo
Netbook image used to install MeeGo 1.1.

Figure 4. The Zones screen showing three different active
zones or work areas.

Figure 5. The Settings screen where users can configure
various aspects of their MeeGo Netbook setup.

Figure 6. A user-modified home screen of the WeTab with some direct
shortcuts to the author's most-used applications. The WeTab used the MeeGo
Netbook stack as a base for development purposes.

Figure 7. The Web browser on the WeTab with the MeeGo
home page and the virtual touchscreen keyboard. Four different virtual work
areas are on the right, and basic browser menu items are on the left.

Automotive manufacturers in particular are increasingly viewing IVI
systems as key differentiators in their products. Drivers and passengers
are coming to expect the same type of innovations they see in other
devices, such as mobile computers and handsets, in their vehicles. As
vehicles become connected to the Internet, the demand for Internet-based
entertainment applications and services increases, and MeeGo strives
to accelerate the pace of innovation in IVI. The MeeGo IVI software
platform is designed to enable rich Internet and multimedia consumer
experiences for vehicles. Table 2 provides a quick overview of the key
features available in the MeeGo 1.1 IVI release.

Table 2. MeeGo IVI v1.1 Key Feature List

Key Feature

Description

Sample IVI home screen and taskbar

The taskbar is designed with Automotive Center Console HMI
requirements in mind.

Text-to-speech (TTS)

TTS is supported using Festival Speech Synthesis and is enabled by
default in the ivihome menu navigation.

Speech recognition

Initial speech recognition has been added to ivihome using the
integrated PocketSphinx 0.6.1 package. It's a lightweight, cross-platform
engine that's built using the latest Sphinx speech recognition
toolkit. PocketSphinx provides a GStreamer plugin, allowing the application
to create a pipeline to parse the human voice, based on words defined in
the dictionary. Voice commands for ivihome have been predefined for
navigating the scroll menus.

MeeGo Touch Framework (MTF)

The MTF integration features sample applications, which include, but
are not limited to, the following: video player, song player, photo viewer,
hands-free dialer and settings management.

Open-source automotive projects

Several packages from open-source automotive projects are available
from the repository for audio management, resource management, persistent
storage management, CE device management and system health.

Figure 9. The MeeGo IVI home screen with the taskbar as it
appears on the left side of the screen. The taskbar, with some easy
customizations, can be moved to the right side of the screen to optimize
access for the driver or passenger, as desired. It can be controlled by a
Contour ShuttleXpress scroll wheel, touchscreen or mouse, and it's designed
to reflect the scroll-wheel usage, with the ability to spin through the
menu options and make selections or go back, by pressing two buttons or
tapping the touchscreen (photo credit: meego.com).

MeeGo v1.1 Handsets UX

Today's users are demanding more powerful and feature-rich devices to take
with them on the go. Next-generation smartphones allow users to enjoy a
rich and dynamic Internet experience, watch HD movies and multitask like
never before on a small-form-factor device. The MeeGo platform is
specifically designed to enable the application and services ecosystem for
these mobile, rich Internet and media-centric devices.

The MeeGo v1.1 Handsets UX (Figure 10) provides a technology snapshot that
offers key handset technologies, such as cellular, connectivity, sensors
and mobile browsing, as well as a basic development UX for voice calling,
SMS messaging, Web browsing, music and video playback, photo viewing and
connection management.

With this project release, developers will be able to work on future device
and user experience software development, while simultaneously
participating in the MeeGo Project to complete the Handset UX in the
upcoming 1.2 release.

Figure 10. The MeeGo Handset Dialer (photo credit: meego.com)

MeeGo on Handsets

If you have access to a Nokia N900 handset or an Aava Handset, you can
find step-by-step instructions on how to install and run MeeGo on those
devices from meego.com/devices/handset. The instructions will guide you
through installing the root filesystem on an external micro-SD card. Give
it a try, and have fun experimenting with it.

MeeGo SDK 1.1 Beta

The MeeGo SDK 1.1 beta was released on November 10, 2010, and it's
available for download along instructions from meego.com/developers. It
enables application developers to develop, install and debug applications,
as well as run applications on the Nokia N900, Netbook and Aava devices
with MeeGo. For developers without reference hardware, QEMU (qemu.org)
provides an emulated environment for debugging and testing applications.

The MeeGo Project encourages developers to use the MeeGo API, which
currently consists of Qt 4.7 and Qt Mobility 1.0. The MeeGo API comes with a
forward-compatibility promise and will be extended in future releases. The
final nonbeta version of the SDK will be aligned with the MeeGo compliance
specification (being finalized at the time of this writing).
More information on MeeGo compliance is available at wiki.meego.com/Quality/Compliance.

Conclusion

MeeGo is an open-source project developed in public under the auspices of
the Linux Foundation. Since it was announced in February 2010, the world
has been able to watch and participate as the project builds up and
delivers the core software stack in addition to three reference user
experiences for handsets, IVI systems and Netbooks, with more to come as
MeeGo also targets connected TVs and tablets.

The development continues following a six-month release schedule.
MeeGo 1.2 is scheduled for April 2011. Currently, there are hundreds of
features targeting MeeGo 1.2 that already have been filed in the MeeGo
Featurezilla (a tool that tracks feature development). The development
tree of MeeGo 1.2 is open, and development is ongoing.

Ibrahim Haddad manages the Linux Foundation's Mobile Linux initiatives and
works with the community to facilitate a vendor-neutral environment for
advancing the Linux platform for next-generation mobile computing devices.
Ibrahim is a Contributing Editor at Linux Journal.