Friday, June 25, 2010

Exploring MeeGo Part 1: Installing and starting MeeGo

MeeGo is an ambitious operating system that resulted after Intel and Nokia joined hands and attempted to unify Moblin and Maemo operating systems. Both these companies have significant market share in their respective domains and hence the future of MeeGo looks bright. MeeGo is Linux based, open source, and targets a broad set of devices.

Let’s start our journey of exploring MeeGo. In this multipart tutorial, we will gradually inhabit this new ecosystem and master the tricks and tips for programming day-to-day needs and ground breaking applications.

In this first part, we will setup a MeeGo box for our experimentation and learning purpose. Gone are the days when “Hello, World!” was the first thing you attempted on an alluring technology. Using a new platform requires careful planning for installation, steps for configuration, and scripts and utilities for starting and executing it. Equally important is that you should be able to do this without disturbing your production machines.

Step 1: Create a virtual machine

Before you seriously consider a new product, try it well on a virtual machine. This saves you time, effort and any problems that might be caused by installing anything new.

As of now, MeeGo is supported only on Linux. If you have a Linux box or Linux virtual machine already setup, please jump to “Step 3: Installing MeeGo”. If you are precautious like me, use the following steps to configure a virtual environment for installing MeeGo.

There are quite a few different classes of virtualization software in the market, for experimentation purpose I like “Virtual Box” from Sun (now from Oracle) – it is free and supports multiple operating systems. You can download it from

Follow these steps to quickly configure your new virtual machine:

1. Start the Virtual Box software
2. Select Machine > New Machine. This starts new virtual machine wizard.

3. Give your virtual machine a name and select the operating system and its version

4. Select the amount of RAM. For now you can keep it to 1024MB, if required you can increase it later.

5. Specify hard disk to be used for booting. For a new OS it is recommended that you create a new virtual hard disk. Selecting the option to create a new hard disk will start another wizard. I have created a 40GB virtual hard-disk on one for my portable disk. You get an option to create a “Dynamically expanding storage” or “Fixed-size storage”. For starters, and especially when you have not calculated the amount of space required, use the former.

This completes the creation of a virtual machine.

Before you move to the next step you must have Linux CD/DVD. If you have downloaded an ISO, you can add it to Virtual Box’s Media Manager. This allows you to mount the ISOs without burning the image on a CD/DVD. To do this, Select File > Virtual Media Manager

In the screen that opens next, select the “CD/DVD images” tab and click “Add”. Now, simply select the ISO file.

When you start you virtual machine by clicking on “Start”, a first time load mechanism in Virtual Box gives you an option to choose the installation disk. Select the ISO when prompted to do so.

Step 2: Installing Linux

Insert Ubuntu CD (or select the installation disk, if using Virtual Box) and boot the machine. Select your language preference and click “Install Ubuntu”. Now follow the wizard and enter the required information.

When asked where you want to install Ubuntu, make sure that you select the virtual hard drive created earlier (otherwise you will override another disk partition or virtual drive, risking your data)

Installation of Ubuntu will start, meanwhile locate the nearest coffee machine and get a cup of coffee. If you have it right on your desk, pretend to be away for some time. If nothing else, just watch the slides the installer takes you through (the slides are quite informative)

Once the installation is completed, Ubuntu will start.

Step 3: Installing MeeGo SDK

To install MeeGo SDK follow these steps:
1. Download the MeeGo SDK from

2. Extract it by running the following command as root:
sudo tar jxvf meego-sdk-0524.tar.bz2

3. Download the MeeGo SDK chroot script from

chroot is used to change the disk root directory. Commands executed within the new root directory will not be able to access anything outside the new root directory. All the processes (and their child processes) executed within the new root directory will take the new root directory as the root directory. This enables running a new system within an existing Linux box. You use chroot for creating your new environment, testing it and ensuring that you use only those files, libraries and applications that you have explicitly created or copied into the new root directory.

4. MeeGo SDK chroot script (meego-sdk-chroot) configures MeeGo chroot environment. Make the script executable, move it to /usr/bin so that you can execute it and access it without complete path
chmod +x meego-sdk-chroot
mv meego-sdk-chroot /usr/bin

Step 4: Starting MeeGo

To successfully start a MeeGo simulator, follow these steps:
1. For the X server to display MeeGo screen, run this command:
xhost +local:

2. Now run the MeeFo chroot script
sudo meego-sdk-chroot /locationOfExtractedMeeGo
You have now entered the MeeGo root environment

3. Set the DISPLAY environment variable to 0
export DISPLAY=:0

4. Start MeeGo simulator
startmeego &

It's now time to have fun with the new desktop, once you are done, type “exit” in the terminal window from where you started the MeeGo simulator.

In the next part, we will write a "Hello, World!" application.

Tuesday, March 16, 2010

The forgotten partner – Innovation

We have great ideas, sharp minds, will and energy to make it happen – the basic ingredients that lead to innovation. We continuously acquire knowledge by understanding the primitives and mastering the advanced concepts. We live and breathe technology with the dream of making a difference. Young, dynamic, adventurous, daring, flexible are some of the words that define us. What we need is financial security, social status, experience and networks. We are about to enter the IT industry.

Move 5 years forward into the present – 2010. Job is priority #1 and we follow our roles and duties judiciously and religiously. We are travelling to US, Europe and Australia. Living the dreams and enjoying life. We have been tagged successful. All secondary objectives are met. However, innovation has taken backstage. A small group of us is still finding this weird. Why I call it weird is because there certainly is an expectation mismatch. People who always banked on innovation find the mundane and clerical nature of the IT industry unacceptable. An innovator's mind needs freedom, and creativity comes from thoughts. The current state of the industry does not permit these. Some of us have adapted, while some are still analyzing. Adaption is not difficult, actually, it is the easy way out – it’s just changing oneself and behaving like others to live an easy life. In fact some of us have already accepted this.

Industry needs innovation and a small group is working on this. But what fun is it if you are not in the driver’s seat and are not leading the initiative? This means following and living the ideas of others, some of which could have been done in a totally different way. Does this require a dedicated effort, or can it be squeezed into the routine operations? The answer to this depends, but innovation needs focus. How important is it for an individual? If one has already tasted the pleasure of innovation, it becomes an integral flavor …

This is not a submission, this is a new beginning.