Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK Virtual Images

Contents

Maemo SDK Virtual Images

Introduction

Maemo SDK Virtual Images are good option for those developers that do not want to spend time and effort to download, install and configure all required tools for Maemo applications development. Also, Maemo SDK Virtual Images are a very good choice to be used on Maemo development workshops and training sessions, since it is no more necessary to configure attendees´ machines. It significantly reduces the dependencies of host machine, such as installed software and superuser privileges. All you need to do is to install the virtualization software of your choice and deploy Maemo SDK Virtual Image for it. With this setup attendees can launch the virtualization environment, such as VMWare Player, as guest users without ever accessing host environment with administration privileges. Inside Maemo SDK Virtual Images users have, of course) full administration privileges to the Ubuntu and Maemo SDK environment. Don’t hesitate to use Maemo SDK Virtual Images: they were created to make Maemo application development a lot easier!

This document provides a short set of instructions how to properly install and configure Maemo SDK Virtual Image on your machine, including networking issues.

Host hardware

From host machine is required at least 2GB of RAM and an additional 10 GB of free hard disk space.

Host operating system

You can use a Debian-based Linux distribution (Debian, Ubuntu, Kunbutu), Windows (Windows XP, Windows Vista or Windows 7) or Mac OS X for your host machine.

Virtualization software

It is possible to use VMWare, VirtualBox or QEMU as virtualization environment. We strongly suggest you to use VMWare Player for some important reasons. At first, VMWare Player is free for other than Mac OS X environment. It provides good support for host-guest communication. With VMWare Player, the USB, parallel port, CD/DVD, storage disks and TCP/IP network work properly. However, free VMWare Player does not provide support for Mac OS X, but you can use other VMWare products in Mac OS X (for example, VMWare Fusion).

For VirtualBox users the functionality of free open source version is not enough but binary only version (PUEL licensed) needs to be used for Maemo SDK VIrtual Images. Performance of the VirtualBox PUEL version is about the same as with VMWare environment but licensing allows usage only for personal and evaluation usage.

For QEMU users the performance may be an issue. QEMU is totally free virtualization environment but the performance is much worst than with VMWare or VirtualBox, even with KQEMU QEMU Accelerator that must be used to get usable Maemo development environment.

List of required software

  • 7zip uncompress to uncompress Maemo SDK Virtual Image distribution archive.
  • A virtualization software: VMWare (any VMWare product, such as VMWare Player, VMWare Workstation or VMWare Fusion), VirtualBox or QEMU;

Maemo SDK Virtual Image Content

Ubuntu Desktop based image includes:

  • Ubuntu Desktop 8.10 Intrepid Ibex
  • Maemo Fremantle and Diablo SDK environments
  • Maemo Host PC Connectivity Final release
  • Maemo Eclipse Integration Final release
  • Firefox web browser with bookmarks for commonly used programming APIs on Maemo
  • Python programming environment on Scratchbox (i386 and ARMEL targets) and on Eclipse IDE
  • C/C++ programming environments on Scratchbox (i386 and ARMEL targets) and on Eclipse IDE
  • Qt4 programming environments on Scratchbox (i386 and ARMEL targets) and on Eclipse IDE
  • Installation wizards for virtualization performance tools
    • Installer for Official VMWare Tools
    • Installer for Open VMWare Tools
    • Installer for VirtuaBox GuestAdditions

Ubuntu Server based image includes:

  • Ubuntu Server 8.10 Intrepid Ibex
  • Maemo Host PC Connectivity Final release

Maemo SDK Virtual Image Installation

  • Download Maemo SDK Virtual Image from http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Maemo Development Environment downloads] page. Basically, there are two different Maemo SDK Virtual Images: one virtual image with Ubuntu Server installed, and another one with Ubuntu Desktop. The Ubuntu Server based image does not have Mameo development environment (like Scratchbox or Maemo SDKs) preinstalled and is mainly used together with Maemo ESbox Eclipse IDE as build environment. The Maemo SDK VIrtual Image with Ubuntu Desktop is mainly used as out-of-box ready Maemo development environment that has Scratchbox, Maemo Fremantle and Diablo SDK, and ESbox Eclipse IDE environments preinstalled.
  • Unzip Maemo SDK Virtual Image distribution archive with 7-Zip tool according to instructions at this site. Since the virtual images are very large files (for example, image file with Ubuntu Desktop is about 9GB), the process to uncompress the image may take several minutes, depending on how fast is your machine. Generally, it takes about 5 minutes to uncompress Ubuntu Server based Maemo SDK Virtual Image, and about 17 minutes to uncompress Ubuntu Desktop based Maemo SDK Virtual Image.
  • Once your virtual image has been uncompressed, it is ready to be used! If you’re using VMWare as virtualization environment, Maemo SDK Virtual Image distribution package already provides a *.vmx description file that can be used to load Maemo virtual image. However, for VirtualBox and QEMU, it is necessary to perform some extra tasks:
    • VirtualBox: Maemo SDK Virtual Image distribution file does not provide a ready-made description file (such as *.vmx for VMWare players). Therefore, you need to install image for your environment. For more information, visit this link.
    • QEMU: It is important to install KQEMU Accelerator to speed up virtual environment execution. To run the machine with QEMU, execute the following command:
      • (On Linux)
$ qemu -hda maemosdk_*_*.vmdk -L /usr/bin/qemu -m 512
  • (On Windows)
c:> qemu.exe -hda maemosdk_*_*.vmdk -L C:\QEMU\pc-bios -m 512

Networking

Networking proxy has not been configured for Maemo SDK Virtual Machines by default. Therefore, if your network environment requires proxy to enable network access from your host machine, you have to configure it in addition to your host machine to two different environments e.g. for your Ubuntu Desktop or Server and Scratchbox installation INSIDE your Maemo SDK Virtual Image.

For more information about how to configure proxy support for Ubuntu Desktop and Server), see more information on Ubuntu HOWTO: Proxy Support.

For Scratchbox, it is necessary to define the http_proxy variable in the format http://host:port/. If you have to login then use the format http://username:password@host:port/. To define this variable, you need to add the following lines to the root login file /root/.bashrc.

http_proxy=http://username:password@host:port/
export http_proxy

Known Issues

  • Scratchbox does not initialize resolv.conf file properly. This file defines DNS servers. Whenever Scratchbox is started, it copies /etc/resolv.conf from host PC BEFORE such file has been updated by Ubuntu NetworkManager. If resolv.conf file is wrong network access does not work from inside Scratchbox.
    • Workaround is to restart Scratchbox using the following command:
$ sudo /scratchbox/sbin/sbox_ctl restart

More Links

Current "under development" versions of the documentation can be found from Garage project Maemo SDK Virtual Images

Current Maemo SDK Virtual Image versions can be downloaded from this Maemo Development Environment Downloads page.

This image is geared toward GTK Development and is a vdmk image, which can be ran on VMWare product, QEMU or VirtualBox.

Virtual PC / VMWare Virtual Images

Current VPC SDK Images can be picked up at | VPC Development Image - The home page is located at: | VPC-SDK Home Page

This image is geared towards Qt Development and is a Virtual PC (vhd) image, VMWare products can also convert and use the image.



Either image can be used for either development (QT or GTK), but each image has pre-installed software targeting the specific target environment.