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 Linux environment and all required tools for Maemo applications development.

Especially Ubuntu Desktop based Maemo SDK Virtual Image is a very good choice to be used on Maemo development workshops and training sessions as it does not require any special configurations to be done for attendees´ machines. It significantly reduces the dependencies of host machine, such as installed operating system, other software and superuser privileges. All you need to do is to install the virtualization software of your choice to the host machine 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 Image users have, of course, full administration privileges to the Ubuntu and Maemo SDK environments. 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 for your machine, including networking issues.

Host hardware

From host machine is required at least 2GB of RAM and an additional 15 GB of free hard disk space for Desktop image (2 GB for Server image).

Host operating system

You can use Linuxes (Fedora and Debian-based Linuxes like Debian, Ubuntu, and Kunbutu have been tested), Windows (Windows XP, Windows Vista and Windows 7 tested) or Mac OS X (Leopard and Snow Leopard tested) 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 VMWare Player 3.0 or 2.5 versions can be used (2.5 recommended as first 3.x versions may have problems maintaining SSH connections).

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 purposes. VirtualBox 3.x versions are recommended.

For QEMU users the performance may be an issue. QEMU is totally free virtualization environment but the performance is much worse than with VMWare or VirtualBox. Even with KQEMU QEMU Accelerator (that must be used to get usable Maemo development environment) performance is not at the same level as with VMWare or VirtualBox.

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 PUEL release or QEMU.

Maemo SDK Virtual Image Content

Maemo provides two different virtual images, Ubuntu Desktop and Ubuntu Server based images. Both images can be updated from repository using standard repository update methods. Ubuntu Intrepid Linux installation can be updated from standard Ubuntu Intrepid repository and Maemo development environments can be updated from Maemo Fremantle and Diablo SDK, Tools and Extras repositories.

Ubuntu Desktop based image is out-of-box ready development environment for Maemo that has full Fremantle and Diablo development environments preinstalled.

Ubuntu Server based image is an empty environment mainly for Maemo Eclipse IDE environment usage. With Server image it is possible to use Maemo cross-compilation development environment (Scratchbox and Maemo SDK) in other than Debian based Linuxes (like on Fedora, Windows and Mac OS X). Maemo ESbox Eclipse IDE provides installation wizard to install empty Ubuntu Server based Maemo SDK Virtual Image and other wizards to install needed Maemo Fremantle and Diablo development environments into it.

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 (without GUI applications)
  • Installation wizards for virtualization performance tools
    • Installer for Official VMWare Tools
    • Installer for Open VMWare Tools
    • Installer for VirtuaBox GuestAdditions

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.

Examples how to launch Maemo SDK Virtual Image with QEMU:

Starting QEMU on Linux

$ qemu -hda maemosdk_*_*.vmdk -L /usr/bin/qemu -m 512

Starting QEMU 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.