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

(add further reading setion)
m (Maemo SDK Virtual Image Content: add link)
 
(9 intermediate revisions not shown)
Line 1: Line 1:
-
= Maemo SDK Virtual Images =
 
-
 
== Introduction ==
== Introduction ==
Line 9: Line 7:
This document provides a short set of instructions on how to properly install and configure Maemo SDK Virtual Image for your machine, including networking issues.  
This document provides a short set of instructions on how to properly install and configure Maemo SDK Virtual Image for your machine, including networking issues.  
-
'''Host hardware'''
+
=== Host hardware ===
At least 2GB of RAM and an additional 15 GB of free hard disk space for Desktop image (2 GB for Server image) is required from the host machine.
At least 2GB of RAM and an additional 15 GB of free hard disk space for Desktop image (2 GB for Server image) is required from the host machine.
-
'''Host operating system'''
+
=== Host operating system ===
You can use Linuxes (Fedora and Debian-based Linuxes such as 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) on your host machine.
You can use Linuxes (Fedora and Debian-based Linuxes such as 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) on your host machine.
    
    
-
'''Virtualization software'''
+
=== Virtualization software ===
It is possible to use VMWare, VirtualBox or QEMU as a virtualisation environment. We strongly recommend you to use VMWare Player for some important reasons. At first, VMWare Player is free for other than the 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 the first 3.x versions may have problems maintaining SSH connections).
It is possible to use VMWare, VirtualBox or QEMU as a virtualisation environment. We strongly recommend you to use VMWare Player for some important reasons. At first, VMWare Player is free for other than the 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 the first 3.x versions may have problems maintaining SSH connections).
Line 25: Line 23:
For QEMU users, performance may be an issue. QEMU is a totally free virtualisation environment, but the performance is much worse than with VMWare or VirtualBox. Even with KQEMU QEMU Accelerator (that must be used to get a usable Maemo development environment), performance is not on the same level as with VMWare or VirtualBox.
For QEMU users, performance may be an issue. QEMU is a totally free virtualisation environment, but the performance is much worse than with VMWare or VirtualBox. Even with KQEMU QEMU Accelerator (that must be used to get a usable Maemo development environment), performance is not on the same level as with VMWare or VirtualBox.
-
'''List of required software'''
+
=== List of required software ===
 +
 
 +
To be able to install and run Maemo SDK Virtual Image you need to have both 7-Zip uncompress tool and one of the supported virtualisation environments available.
* [http://www.7-zip.org/download.html 7zip uncompress] to uncompress Maemo SDK Virtual Image distribution archive.
* [http://www.7-zip.org/download.html 7zip uncompress] to uncompress Maemo SDK Virtual Image distribution archive.
Line 33: Line 33:
== Maemo SDK Virtual Image Content ==
== Maemo SDK Virtual Image Content ==
-
Maemo provides two different virtual images, Ubuntu Desktop and Ubuntu Server-based images. Both images can be updated from the repository using standard repository update methods. Ubuntu Intrepid Linux installation can be updated from the standard Ubuntu Intrepid repository, and Maemo development environments can be updated from Maemo Fremantle and Diablo SDK, Tools and Extras repositories.
+
Maemo provides two different virtual images, Ubuntu Desktop and Ubuntu Server-based images. Both images can be updated from the repository using standard repository update methods. Ubuntu Karmic Linux installation can be updated from the standard Ubuntu Karmic repository, and Maemo development environments can be updated from Maemo Fremantle and Diablo SDK, Tools and Extras repositories.
Ubuntu Desktop-based image is an out-of-box ready development environment for Maemo that has full Fremantle and Diablo development environments preinstalled.  
Ubuntu Desktop-based image is an 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 a Maemo cross-compilation development environment (Scratchbox and Maemo SDK) in other than Debian-based Linuxes (as on Fedora, Windows and Mac OS X). Maemo ESbox Eclipse IDE provides an installation wizard to install empty Ubuntu Server-based Maemo SDK Virtual Image and other wizards to install the necessary Maemo Fremantle and Diablo development environments into it.
+
Ubuntu Server-based image is an empty environment, mainly for [[Documentation/Maemo Eclipse Tutorial/Introduction|Maemo Eclipse IDE environment]] usage. With Server image it is possible to use a Maemo cross-compilation development environment (Scratchbox and Maemo SDK) in other than Debian-based Linuxes (as on Fedora, Windows and Mac OS X). Maemo ESbox Eclipse IDE provides an installation wizard to install empty Ubuntu Server-based Maemo SDK Virtual Image and other wizards to install the necessary Maemo Fremantle and Diablo development environments into it.
'''Ubuntu Desktop-based image includes:'''
'''Ubuntu Desktop-based image includes:'''
-
* Ubuntu Desktop 8.10 Intrepid Ibex
+
* Ubuntu Desktop 9.04 Jaunty Jackalope
* Maemo Fremantle and Diablo SDK environments
* Maemo Fremantle and Diablo SDK environments
* Maemo Host PC Connectivity Final release
* Maemo Host PC Connectivity Final release
Line 54: Line 54:
'''Ubuntu Server-based image includes:'''
'''Ubuntu Server-based image includes:'''
-
* Ubuntu Server 8.10 Intrepid Ibex
+
* Ubuntu Server 9.04 Jaunty Jackalope
* Maemo Host PC Connectivity Final release (without GUI applications)
* Maemo Host PC Connectivity Final release (without GUI applications)
* Installation wizards for virtualisation performance tools  
* Installation wizards for virtualisation performance tools  
Line 126: Line 126:
* [[Documentation/Maemo PC Connectivity Tutorial|Maemo PC connectivity tutorial]]
* [[Documentation/Maemo PC Connectivity Tutorial|Maemo PC connectivity tutorial]]
* [[Documentation/Maemo Eclipse Tutorial|Maemo Eclipse tutorial]]
* [[Documentation/Maemo Eclipse Tutorial|Maemo Eclipse tutorial]]
 +
* [http://news.softpedia.com/news/How-to-Fix-VirtualBox-USB-Support-111715.shtml How to fix VirtualBox USB support]
 +
* [[Documentation/Maemo Eclipse Tutorial/Setting Up ESbox|Sbox/SDK Installation In Guest Server Image from Host System EsBox]]
Current "under development" versions of the documentation can be found from [http://maemovmware.garage.maemo.org/ Maemo SDK Virtual Image] Garage project.
Current "under development" versions of the documentation can be found from [http://maemovmware.garage.maemo.org/ Maemo SDK Virtual Image] Garage project.

Latest revision as of 09:20, 9 March 2011

Contents

[edit] Introduction

Maemo SDK Virtual Images are a good option for those developers who do not want to spend time and effort to download, install and configure the Linux environment and all required tools for Maemo applications development.

The Ubuntu Desktop-based Maemo SDK Virtual Image is an especially good choice to be used in Maemo development workshops and training sessions as it does not require any special configuration for attendees´ machines. It significantly reduces the dependencies of the host machine, such as installed operating system, other software and superuser privileges. All you need to do is install the virtualisation software of your choice to the host machine and deploy Maemo SDK Virtual Image for it. With this setup, attendees can launch the virtualisation environment (such as VMWare Player) as guest users without ever accessing the host environment with administration privileges. Inside Maemo SDK Virtual Image users have, of course, full administration privileges for 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 on how to properly install and configure Maemo SDK Virtual Image for your machine, including networking issues.

[edit] Host hardware

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

[edit] Host operating system

You can use Linuxes (Fedora and Debian-based Linuxes such as 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) on your host machine.

[edit] Virtualization software

It is possible to use VMWare, VirtualBox or QEMU as a virtualisation environment. We strongly recommend you to use VMWare Player for some important reasons. At first, VMWare Player is free for other than the 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 the first 3.x versions may have problems maintaining SSH connections).

For VirtualBox users, the functionality of free open source version is not enough, but the binary-only version (PUEL licensed) needs to be used for Maemo SDK Virtual Images. The performance of the VirtualBox PUEL version is about the same as with the VMWare environment, but licensing allows usage only for personal and evaluation purposes. VirtualBox 3.x versions are recommended.

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

[edit] List of required software

To be able to install and run Maemo SDK Virtual Image you need to have both 7-Zip uncompress tool and one of the supported virtualisation environments available.

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

[edit] Maemo SDK Virtual Image Content

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

Ubuntu Desktop-based image is an 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 a Maemo cross-compilation development environment (Scratchbox and Maemo SDK) in other than Debian-based Linuxes (as on Fedora, Windows and Mac OS X). Maemo ESbox Eclipse IDE provides an installation wizard to install empty Ubuntu Server-based Maemo SDK Virtual Image and other wizards to install the necessary Maemo Fremantle and Diablo development environments into it.

Ubuntu Desktop-based image includes:

  • Ubuntu Desktop 9.04 Jaunty Jackalope
  • 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 virtualisation performance tools
    • Installer for Official VMWare Tools
    • Installer for Open VMWare Tools
    • Installer for VirtualBox GuestAdditions

Ubuntu Server-based image includes:

  • Ubuntu Server 9.04 Jaunty Jackalope
  • Maemo Host PC Connectivity Final release (without GUI applications)
  • Installation wizards for virtualisation performance tools
    • Installer for Official VMWare Tools
    • Installer for Open VMWare Tools
    • Installer for VirtualBox GuestAdditions

[edit] Maemo SDK Virtual Image Installation

Download Maemo SDK Virtual Image from the 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 a Maemo development environment (such as Scratchbox or Maemo SDKs) preinstalled and is mainly used together with Maemo ESbox Eclipse IDE as a build environment. Maemo SDK VIrtual Image with Ubuntu Desktop is mainly used as an 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, an image file with Ubuntu Desktop is about 9GB), the process to uncompress the image may take several minutes, depending on how fast your machine is. 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 are using VMWare as a virtualisation environment, the 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 the 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 of 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

[edit] Networking

A networking proxy has not been configured for Maemo SDK Virtual Images by default. Therefore, if your network environment requires a proxy to enable network access from your host machine, you have to configure it in addition to your host machine also to the Maemo SDK Virtual Image, for example, for your Ubuntu Desktop or Server environment and Scratchbox installation INSIDE your Maemo SDK Virtual Image.

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

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

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

[edit] Known Issues

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

[edit] 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 the Maemo Development Environment Downloads page.

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

[edit] 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.

[edit] Further reading

More information about the products included to the Ubuntu Desktop-based Maemo SDK Virtual Image can be found from these websites and documents:

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