<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://bugs.maemo.org/skins/common/feed.css?207"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://bugs.maemo.org/index.php?feed=atom&amp;target=Wikiuser&amp;title=Special%3AContributions</id>
		<title>maemo.org wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://bugs.maemo.org/index.php?feed=atom&amp;target=Wikiuser&amp;title=Special%3AContributions"/>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Special:Contributions/Wikiuser"/>
		<updated>2026-04-03T23:13:37Z</updated>
		<subtitle>From maemo.org wiki</subtitle>
		<generator>MediaWiki 1.15.5-7</generator>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_SDK_Virtual_Image_Tutorial/Maemo_SDK_Virtual_Image_content</id>
		<title>Documentation/Maemo SDK Virtual Image Tutorial/Maemo SDK Virtual Image content</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_SDK_Virtual_Image_Tutorial/Maemo_SDK_Virtual_Image_content"/>
				<updated>2010-04-09T09:05:08Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Maemo SDK Virtual Image content =&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Ubuntu Desktop-based image is an out-of-box ready development environment for Maemo that has full Fremantle and Diablo development environments preinstalled.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Ubuntu Desktop-based image =&lt;br /&gt;
&lt;br /&gt;
Ubuntu Desktop-based Maemo SDK Virtual Image includes:&lt;br /&gt;
&lt;br /&gt;
* Ubuntu Desktop 8.10 Intrepid Ibex&lt;br /&gt;
* Maemo Fremantle and Diablo SDK environments&lt;br /&gt;
* Maemo Host PC Connectivity environment&lt;br /&gt;
* Maemo ESbox Eclipse IDE environment&lt;br /&gt;
* Firefox web browser with bookmarks for commonly used programming APIs on Maemo&lt;br /&gt;
* Python programming environment on Scratchbox (i386 and ARMEL targets) and on Eclipse IDE&lt;br /&gt;
* C/C++ programming environment on Scratchbox (i386 and ARMEL targets) and on Eclipse IDE&lt;br /&gt;
* Qt4 programming environment on Scratchbox (i386 and ARMEL targets) and on Eclipse IDE&lt;br /&gt;
* Installation wizards for virtualisation performance tools&lt;br /&gt;
** Installer for Official VMWare Tools&lt;br /&gt;
** Installer for Open VMWare Tools&lt;br /&gt;
** Installer for VirtualBox GuestAdditions&lt;br /&gt;
&lt;br /&gt;
= Ubuntu Server-based image =&lt;br /&gt;
&lt;br /&gt;
Ubuntu Server-based Maemo SDK Virtual Image includes:&lt;br /&gt;
&lt;br /&gt;
* Ubuntu Server 8.10 Intrepid Ibex&lt;br /&gt;
* Maemo Host PC Connectivity environment (without GUI applications)&lt;br /&gt;
* Installation wizards for virtualisation performance tools&lt;br /&gt;
** Installer for Official VMWare Tools&lt;br /&gt;
** Installer for Open VMWare Tools&lt;br /&gt;
** Installer for VirtualBox GuestAdditions&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_SDK_Virtual_Image_Tutorial</id>
		<title>Documentation/Maemo SDK Virtual Image Tutorial</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_SDK_Virtual_Image_Tutorial"/>
				<updated>2010-04-09T09:05:08Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Nokia Corporation = MAEMO SDK VIRTUAL IMAGE TUTORIAL =&amp;lt;div class=&amp;quot;author_info&amp;quot;&amp;gt;'''maemo.org''''''18 February 2010'''&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;margins&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[{{PAGENAME}}/Preface|Preface]]&lt;br /&gt;
* [[{{PAGENAME}}/Glossary|Glossary]]&lt;br /&gt;
* [[{{PAGENAME}}/Introduction|Introduction]]&lt;br /&gt;
* [[{{PAGENAME}}/Maemo SDK Virtual Image content|Maemo SDK Virtual Image content]]&lt;br /&gt;
* [[{{PAGENAME}}/Installation|Installation]]&lt;br /&gt;
* [[{{PAGENAME}}/Summary|Summary]]&lt;br /&gt;
* [[{{PAGENAME}}/Bibliography|Bibliography]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_SDK_Virtual_Image_Tutorial/Installation</id>
		<title>Documentation/Maemo SDK Virtual Image Tutorial/Installation</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_SDK_Virtual_Image_Tutorial/Installation"/>
				<updated>2010-04-09T09:05:07Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
This chapter provides a short set of instructions on how to properly install and configure Maemo SDK Virtual Image for your machine, including networking issues.&lt;br /&gt;
&lt;br /&gt;
= Host hardware =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Host operating system =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Virtualisation software =&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
= Required software =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* [http://www.7-zip.org/download.html 7-Zip] uncompress tool to uncompress Maemo SDK Virtual Image distribution archive.&lt;br /&gt;
* Virtualisation software: [http://www.vmware.com/ VMWare] (any VMWare product, such as VMWare Player, VMWare Workstation or VMWare Fusion), [http://www.virtualbox.org/ VirtualBox] PUEL release or [http://www.qemu.org/ QEMU].&lt;br /&gt;
&lt;br /&gt;
= Image installation =&lt;br /&gt;
&lt;br /&gt;
Both Ubuntu Desktop-based and Ubuntu Server-based Maemo SDK Virtual Images have same installation process.&lt;br /&gt;
&lt;br /&gt;
; '''Download Maemo SDK Virtual Image'''&lt;br /&gt;
: from the [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 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.&lt;br /&gt;
; '''Unzip Maemo SDK Virtual Image distribution archive'''&lt;br /&gt;
: with 7-Zip tool according to instructions at [http://maemovmware.garage.maemo.org/2nd_edition/installation_7zip.html 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.&lt;br /&gt;
; '''Once your virtual image has been uncompressed, it is ready to be used!'''&lt;br /&gt;
: If you are using VMWare as a virtualisation environment, the Maemo SDK Virtual Image distribution package already provides a &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*.vmx&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; description file that can be used to load Maemo virtual image.&lt;br /&gt;
&lt;br /&gt;
For VirtualBox and QEMU Maemo SDK Virtual Image distribution packages do not include ready-made image description files. For VirtualBox and QEMU, it is necessary to perform some extra tasks:&lt;br /&gt;
&lt;br /&gt;
; '''VirtualBox:'''&lt;br /&gt;
: Maemo SDK Virtual Image distribution file does not provide a ready-made description file (such as &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*.vmx&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; for VMWare players). Therefore, you need to install the image for your environment. For more information, visit [http://maemovmware.garage.maemo.org/2nd_edition/create_vbox_machine.html this link].&lt;br /&gt;
; '''QEMU:'''&lt;br /&gt;
: It is important to install KQEMU Accelerator to speed up virtual environment execution.&lt;br /&gt;
&lt;br /&gt;
Examples of how to launch Maemo SDK Virtual Image with QEMU:&lt;br /&gt;
&lt;br /&gt;
Starting QEMU on Linux&lt;br /&gt;
&lt;br /&gt;
 $ qemu -hda maemosdk_*_*.vmdk -L /usr/bin/qemu -m 512&lt;br /&gt;
&lt;br /&gt;
Starting QEMU on Windows&lt;br /&gt;
&lt;br /&gt;
 c:&amp;amp;gt; qemu.exe -hda maemosdk_*_*.vmdk -L C:/QEMU/pc-bios -m 512&lt;br /&gt;
&lt;br /&gt;
= Network configuration =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
For more information on how to configure proxy support for Ubuntu Desktop and Server installation, see [http://ubuntuforums.org/showthread.php?t=1575 Ubuntu HOWTO: Proxy Support].&lt;br /&gt;
&lt;br /&gt;
For Scratchbox, it is necessary to define the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;http_proxy&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; variable in format &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;http://host:port/&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;. If you have to authenticate yourself to the proxy server use format &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;http://username:password@host:port/&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;. To enable &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;http_proxy&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; variable, you need to add the following lines to root login file &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/root/.bashrc&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 http_proxy=http://username:password@host:port/&lt;br /&gt;
 export http_proxy&lt;br /&gt;
&lt;br /&gt;
= Known Issues =&lt;br /&gt;
&lt;br /&gt;
Scratchbox does not initialise the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;resolv.conf&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; file properly. This file defines DNS servers. Whenever Scratchbox is started, it copies &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/resolv.conf&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; from host PC BEFORE this file has been updated by Ubuntu NetworkManager. If the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;resolv.conf&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; file is wrong, network access does not work from inside Scratchbox. A workaround is to restart Scratchbox using the following command:&lt;br /&gt;
&lt;br /&gt;
 $ sudo /scratchbox/sbin/sbox_ctl restart&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_SDK_Virtual_Image_Tutorial/Glossary</id>
		<title>Documentation/Maemo SDK Virtual Image Tutorial/Glossary</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_SDK_Virtual_Image_Tutorial/Glossary"/>
				<updated>2010-04-09T09:05:07Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Glossary =&lt;br /&gt;
&lt;br /&gt;
; '''ARMEL'''&lt;br /&gt;
: A name that e.g. Debian uses for the little endian ARM EABI (''ABI'' for the ARM architecture).&lt;br /&gt;
; '''ESbox'''&lt;br /&gt;
: Eclipse product implementing integration between Eclipse IDE and Maemo SDK.&lt;br /&gt;
; '''GUI'''&lt;br /&gt;
: Graphical User Interface.&lt;br /&gt;
; '''IDE'''&lt;br /&gt;
: Integrated Development Environment like Eclipse or QtCreator.&lt;br /&gt;
; '''IP'''&lt;br /&gt;
: Internet Protocol is a protocol used for communicating data across a packet-switched internetwork.&lt;br /&gt;
; '''Maemo'''&lt;br /&gt;
: Software platform for mobile devices developed by Nokia, based on GNU/Linux and GNOME/GTK+ technologies. It includes proprietary components to make it work on the Nokia Maemo compatible device.&lt;br /&gt;
; '''maemo.org'''&lt;br /&gt;
: Developer community web site maintained by Nokia, main point of reference for open source and third-party developers in general.&lt;br /&gt;
; '''OProfile'''&lt;br /&gt;
: System-wide profiler for Linux systems.&lt;br /&gt;
; '''OS'''&lt;br /&gt;
: Operating System or sometimes Open Source.&lt;br /&gt;
; '''Scratchbox'''&lt;br /&gt;
: cross-compilation toolkit designed to make embedded Linux application development easier and to cross-compile an entire Linux distribution.&lt;br /&gt;
; '''SDK'''&lt;br /&gt;
: Software Development Kit.&lt;br /&gt;
; '''Valgrind'''&lt;br /&gt;
: Tool suite for debugging and profiling Linux programs.&lt;br /&gt;
; '''VM'''&lt;br /&gt;
: Virtual Machine.&lt;br /&gt;
&lt;br /&gt;
= Maemo Releases =&lt;br /&gt;
&lt;br /&gt;
; '''Mistral'''&lt;br /&gt;
: Maemo 2.0 release for Nokia 770 device. Corresponds to the Nokia Internet Tablet SE 2006 version 2.01.2006.26-8.&lt;br /&gt;
; '''Scirocco'''&lt;br /&gt;
: Maemo 2.1 release for Nokia 770 device. Includs mainly bugfixes and some other enhancements. Corresponds to Nokia Internet Tablet SE 2006 version 2.2006.39-14.&lt;br /&gt;
; '''Gregale'''&lt;br /&gt;
: Maemo 2.2 release for Nokia 770 device (bugfixes and enhancements).&lt;br /&gt;
; '''Bora'''&lt;br /&gt;
: Maemo 3.x releases for Nokia N800 device. Corresponds to Internet Tablet OS releases &amp;quot;1.2006.47-20&amp;quot;, &amp;quot;2.2006.51-6&amp;quot; (Maemo 3.0), &amp;quot;3.2007.10-7&amp;quot; (Maemo 3.1) and &amp;quot;4.2007.26-8&amp;quot;+&amp;quot;4.2007.38-2&amp;quot; (Maemo 3.2).&lt;br /&gt;
; '''Chinook'''&lt;br /&gt;
: Maemo 4.0.x releases for Nokia N800 and N810 devices. Corresponds to Internet Tablet OS releases &amp;quot;1.2007.44-4&amp;quot; (Maemo 4.0) and &amp;quot;2.2007.51-3&amp;quot; (Maemo 4.0.1)&lt;br /&gt;
; '''Diablo'''&lt;br /&gt;
: Maemo 4.1.x releases for Nokia N800, N810 and N810 WiMAX devices. Corresponds to Internet Tablet OS releases &amp;quot;4.2008.23-14&amp;quot; (Maemo 4.1), &amp;quot;4.2008.36-5&amp;quot; (Maemo 4.1.1) and &amp;quot;5.2008.43-7&amp;quot; (Maemo 4.1.2)&lt;br /&gt;
; '''Fremantle'''&lt;br /&gt;
: Maemo 5.x releases for N900 device. Corresponds to Maemo 5 OS release &amp;quot;1.2009.42-11&amp;quot; + eMMC content &amp;quot;1.2009.41-1&amp;quot; (Maemo 5) and OS release &amp;quot;2.2009.51-1&amp;quot; + eMMC content &amp;quot;1.2009.41-1&amp;quot; (Maemo 5 Update)&lt;br /&gt;
; '''Harmattan'''&lt;br /&gt;
: Maemo 6.x releases, corresponds to Maemo 6 OS release &amp;quot;x.2010.xx-x&amp;quot;&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_SDK_Virtual_Image_Tutorial/Introduction</id>
		<title>Documentation/Maemo SDK Virtual Image Tutorial/Introduction</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_SDK_Virtual_Image_Tutorial/Introduction"/>
				<updated>2010-04-09T09:05:06Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Maemo SDK Virtual Image support following Maemo devices and platform releases:&lt;br /&gt;
&lt;br /&gt;
* Nokia N800, N810 and N810 WiMAX Edition with Diablo 4.1.x.&lt;br /&gt;
* Nokia N900 with Fremantle 5.x, see figure [[#fig:sdk-virtual-image-introduction-n900|1.1]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Maemo device - N900&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 1.1:''' Maemo device - N900&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Nokia_N900_39.png|Image Nokia_N900_39]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Do not hesitate to use Maemo SDK Virtual Images, they were created to make Maemo application development a lot easier!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_SDK_Virtual_Image_Tutorial/Bibliography</id>
		<title>Documentation/Maemo SDK Virtual Image Tutorial/Bibliography</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_SDK_Virtual_Image_Tutorial/Bibliography"/>
				<updated>2010-04-09T09:05:06Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bibliography ==&lt;br /&gt;
&lt;br /&gt;
; 1&lt;br /&gt;
: Maemo Eclipse Tutorial. &amp;lt;tt&amp;gt;http://library.maemodocs.nokia.com&amp;lt;/tt&amp;gt;.&lt;br /&gt;
; 2&lt;br /&gt;
: Maemo PC Connectivity Tutorial. &amp;lt;tt&amp;gt;http://library.maemodocs.nokia.com&amp;lt;/tt&amp;gt;.&lt;br /&gt;
; 3&lt;br /&gt;
: Oprofile Project. &amp;lt;tt&amp;gt;http://oprofile.sourceforge.net/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
; 4&lt;br /&gt;
: Maemo Python Project. &amp;lt;tt&amp;gt;http://pymaemo.garage.maemo.org/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
; 5&lt;br /&gt;
: QEMU Project. &amp;lt;tt&amp;gt;http://fabrice.bellard.free.fr/qemu/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
; 6&lt;br /&gt;
: Scratchbox Project. &amp;lt;tt&amp;gt;http://scratchbox.org/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
; 7&lt;br /&gt;
: Ubuntu Project. &amp;lt;tt&amp;gt;http://www.ubuntu.com/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
; 8&lt;br /&gt;
: Valgrind Project. &amp;lt;tt&amp;gt;http://valgrind.org/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_SDK_Virtual_Image_Tutorial/Summary</id>
		<title>Documentation/Maemo SDK Virtual Image Tutorial/Summary</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_SDK_Virtual_Image_Tutorial/Summary"/>
				<updated>2010-04-09T09:05:05Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Summary =&lt;br /&gt;
&lt;br /&gt;
More information about the products included to the Ubuntu Desktop-based Maemo SDK Virtual Image can be found from these www sites and documents, Maemo Python site &amp;lt;ref name=r4&amp;gt;Maemo Python Project. http://pymaemo.garage.maemo.org/&amp;lt;/ref&amp;gt;, QEMU site &amp;lt;ref name=r5&amp;gt;QEMU Project. http://fabrice.bellard.free.fr/qemu/&amp;lt;/ref&amp;gt;, Scratchbox site &amp;lt;ref name=r6&amp;gt;Scratchbox Project. http://scratchbox.org/&amp;lt;/ref&amp;gt;, Ubuntu site &amp;lt;ref name=r7&amp;gt;Ubuntu Project. http://www.ubuntu.com/&amp;lt;/ref&amp;gt;, Valgrind site &amp;lt;ref name=r8&amp;gt;Valgrind Project. http://valgrind.org/&amp;lt;/ref&amp;gt;, OProfile site &amp;lt;ref name=r3&amp;gt;Oprofile Project. http://oprofile.sourceforge.net/&amp;lt;/ref&amp;gt;, ''Maemo PC Connectivity Tutorial'' &amp;lt;ref name=r2&amp;gt;Maemo PC Connectivity Tutorial. http://library.maemodocs.nokia.com&amp;lt;/ref&amp;gt;, and ''Maemo Eclipse Tutorial''&amp;lt;ref name=r1&amp;gt;Maemo Eclipse Tutorial. http://library.maemodocs.nokia.com&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Current &amp;quot;under development&amp;quot; versions of the documentation can be found from [http://maemovmware.garage.maemo.org/ Maemo SDK Virtual Image] Garage project.&lt;br /&gt;
&lt;br /&gt;
Current Maemo SDK Virtual Image versions can be downloaded from the [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Maemo Development Environment Downloads] page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/Installation</id>
		<title>Documentation/Maemo PC Connectivity Tutorial/Installation</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/Installation"/>
				<updated>2010-04-09T09:05:04Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Installation =&lt;br /&gt;
&lt;br /&gt;
The Maemo PC Connectivity product consists of two parts, Maemo PC Connectivity that installs the necessary services and configuration tools to the Maemo device, and the operating-system-specific Host PC Connectivity that installs the necessary clients to the host PC to be used to access Maemo PC Connectivity services from the Maemo device. The Maemo PC Connectivity product includes many standard services available for Linux PCs by default. Most of the services require some user expertise to be able to install and configure them properly. Maemo PC Connectivity aims to provide easy installation and configuration of these services for both the Maemo device and the host PC, and also support for other than just Linux host PC operating systems.&lt;br /&gt;
&lt;br /&gt;
Maemo PC Connectivity fully supports the Maemo Fremantle platform and devices (such as N900) and the Maemo Diablo platform and devices (such as N800, N810 and N810 WiMAX).&lt;br /&gt;
&lt;br /&gt;
The host PC operating systems supported are Linuxes, Mac OS X Leopard and Snow Leopard, Windows XP SP3, Windows Vista SP2 and Windows 7. On Windows and Mac OS X PCs it is required to install special Linux porting framework before Host PC Connectivity installation in order to fully utilise Maemo PC Connectivity functionality.&lt;br /&gt;
&lt;br /&gt;
; '''Cygwin'''&lt;br /&gt;
: is a Linux-like environment for Windows. With Cygwin &amp;lt;ref name=r1&amp;gt;Cygwin Project. http://cygwin.org/&amp;lt;/ref&amp;gt; installed, users have access to many standard UNIX utilities. They can be used from one of the provided shells (such as bash) or from the Windows Command Prompt. Additionally, programmers may write Win32 console or GUI applications that make use of the standard Microsoft Win32 API and/or the Cygwin API. As a result, it is possible to easily port many significant UNIX programs without the need for extensive changes to the source code. This includes configuring and building most of the available GNU software (including the development tools included with the Cygwin distribution).&lt;br /&gt;
; '''MacPorts'''&lt;br /&gt;
: is an easy-to-use system for compiling, installing, and upgrading either command-line, X11 or Aqua based open-source software on the Mac OS X operating system. MacPorts &amp;lt;ref name=r2&amp;gt;MacPorts Project. http://www.macports.org/&amp;lt;/ref&amp;gt; project provides the command-line driven Linux-like software packages, and through them easy access to thousands of ports that simplify the task of compiling and installing open-source software on your Mac.&lt;br /&gt;
&lt;br /&gt;
Maemo PC Connectivity provides an easy-to-install meta package &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;maemo-pc-connectivity&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; on the maemo.org extras repository, which installs the necessary components on the Maemo device, and separate operating-system-specific &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;host-pc-connectivity&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; installation packages on maemo.org Garage, which install the components needed on the host PC.&lt;br /&gt;
&lt;br /&gt;
= Installation To Maemo Device =&lt;br /&gt;
&lt;br /&gt;
Maemo PC Connectivity fully supports the Maemo Fremantle platform and devices (such as N900) and the Maemo Diablo platform and devices (like N800, N810 and N810 WiMAX).&lt;br /&gt;
&lt;br /&gt;
== One-Click-Install ==&lt;br /&gt;
&lt;br /&gt;
The easiest way to install &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;maemo-pc-connectivity&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; to the Maemo device is to use the one-click-install file.&lt;br /&gt;
&lt;br /&gt;
To do this on Diablo, point the browser to this [http://pc-connectivity.garage.maemo.org/maemo-pc-connectivity-diablo.install address]. When the download dialog appears, choose the '''Open''' option. Now the Application Manager should open and install &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;maemo-pc-connectivity&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; and all its dependencies.&lt;br /&gt;
&lt;br /&gt;
If you use Fremantle, you should use this [http://pc-connectivity.garage.maemo.org/maemo-pc-connectivity-fremantle.install address] for one-click-installation with a Maemo device.&lt;br /&gt;
&lt;br /&gt;
== Installing with Application Manager ==&lt;br /&gt;
&lt;br /&gt;
To install Maemo PC Connectivity on a Fremantle-based Maemo device, the Maemo extras-devel repository must be added. To do this, open the Application Manager, then Repository catalogs (see figure [[#fig:pc_connectivity_mpc_maemo_repository|2.3]]) and fill in the following fields:&lt;br /&gt;
&lt;br /&gt;
* '''Catalogue Name:''' Maemo extras-devel&lt;br /&gt;
* '''Web Address:''' http://repository.maemo.org/extras-devel&lt;br /&gt;
* '''Distribution:''' fremantle&lt;br /&gt;
* '''Components:''' free non-free&lt;br /&gt;
&lt;br /&gt;
If you use Diablo, replace the value of the '''Distribution''' field from &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;fremantle&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; to &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;diablo&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; and use Maemo &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;extras&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; repository instead of &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;extras-devel&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;New catalogue&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 2.1:''' New catalogue&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_repository.png|Image mpc_maemo_repository]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next, install the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;maemo-pc-connectivity&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; package. This package installs all the Maemo PC Connectivity components.&lt;br /&gt;
&lt;br /&gt;
== Installing VNC for a Diablo Device ==&lt;br /&gt;
&lt;br /&gt;
To get X11VNC working properly on a Diablo device, you must install a modified version of the Diablo platform &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;hildon-desktop&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; package.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  On Fremantle, the VNC is already installed by &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;maemo-pc-connectivity&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; package.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
To install X11VNC to a Maemo Diablo device and update the modified &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;hildon-desktop&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; package, follow these steps:&lt;br /&gt;
&lt;br /&gt;
Add the line below to the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/apt/sources.list&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; file on your Maemo device:&lt;br /&gt;
&lt;br /&gt;
 deb http://pc-connectivity.garage.maemo.org/repository diablo free&lt;br /&gt;
&lt;br /&gt;
Execute the following commands:&lt;br /&gt;
&lt;br /&gt;
 $ apt-get update&lt;br /&gt;
 $ apt-get install x11vnc&lt;br /&gt;
 $ apt-get install hildon-desktop&lt;br /&gt;
&lt;br /&gt;
= Installation To Host PC =&lt;br /&gt;
&lt;br /&gt;
The host PC operating systems supported are Linuxes, Mac OS X Leopard and Snow Leopard, Windows XP, Windows Vista and Windows 7. On Windows and Mac OS X PCs it is required to install Linux as a porting framework before Host PC Connectivity installation in order to fully utilise the Maemo PC Connectivity functionality.&lt;br /&gt;
&lt;br /&gt;
== Linux - Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
Ready-made installation packages currently available are for Ubuntu Intrepid systems.&lt;br /&gt;
&lt;br /&gt;
You must follow these steps to install Maemo PC Connectivity on Ubuntu Linux:&lt;br /&gt;
&lt;br /&gt;
Open Synaptic application, figure [[#fig:pc_connectivity_mpc_linux_synaptic_open|2.2]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Start Synaptic&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 2.2:''' Start Synaptic&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_linux_synaptic_open.png|Image mpc_linux_synaptic_open]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Under the '''Settings''' menu, select the '''Repository''' option, figure [[#fig:pc_connectivity_mpc_maemo_repository|2.3]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Repositories&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 2.3:''' Repositories&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_linux_synaptic_repository.png|Image mpc_linux_synaptic_repository]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click on the '''Add''' button to add a new repository, figure [[#fig:pc_connectivity_mpc_linux_synaptic_repository_add|2.4]]. You must type in the following repository information:&lt;br /&gt;
&lt;br /&gt;
 deb http://pc-connectivity.garage.maemo.org/repository intrepid main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Third-Party Software&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 2.4:''' Third-Party Software&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_linux_synaptic_repository_add.png|Image mpc_linux_synaptic_repository_add]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click on the '''Close''' button. To get all information about the packages available on the added repository, click on the '''Reload''' button, figure [[#fig:pc_connectivity_mpc_linux_synaptic_reload|2.5]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Reload&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 2.5:''' Reload&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_linux_synaptic_reload.png|Image mpc_linux_synaptic_reload]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
in the '''Quick search''' field, type &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;host-pc-connectivity&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;. The &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;host-pc-connectivity&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; package is displayed on the list, figure [[#fig:pc_connectivity_mpc_linux_synaptic_select_package|2.6]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Mark for Installation&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 2.6:''' Mark for Installation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_linux_synaptic_select_package.png|Image mpc_linux_synaptic_select_package]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Right-click on the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;host-pc-connectivity&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; package. Select the '''Mark for installation''' option and click on the '''Apply''' button, figure [[#fig:pc_connectivity_mpc_linux_synaptic_install_package|2.7]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Apply&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 2.7:''' Apply&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_linux_synaptic_install_package.png|Image mpc_linux_synaptic_install_package]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Follow the instructions on the screen. After that, Host PC Connectivity is installed on your host PC.&lt;br /&gt;
&lt;br /&gt;
If you prefer, you can install Host PC Connectivity manually. First, you must add the following line to the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/apt/sources.list&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
 deb http://pc-connectivity.garage.maemo.org/repository intrepid main&lt;br /&gt;
&lt;br /&gt;
Then you should run:&lt;br /&gt;
&lt;br /&gt;
 $ apt-get update&lt;br /&gt;
 $ apt-get install host-pc-connectivity&lt;br /&gt;
&lt;br /&gt;
== Linux - Fedora ==&lt;br /&gt;
&lt;br /&gt;
It is necessary to add the Host PC Connectivity repository to the host PC repository list in order to install the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;host-pc-connectivity&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; package. As Fedora does not have any graphical application for adding a new repository, all processes, repository additions and &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;host-pc-connectivity&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; installations are described through the command line.&lt;br /&gt;
&lt;br /&gt;
To enable the Host PC Connectivity repository on Fedora Linux 11, you must add the following lines at the end of the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/yum.conf&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
 [pc-connectivity]&lt;br /&gt;
 name=PC-Connectivity Fedora $releasever - $basearch&lt;br /&gt;
 failovermethod=priority&lt;br /&gt;
 baseurl=http://pc-connectivity.garage.maemo.org/yum/base/$releasever/$basearch&lt;br /&gt;
 enabled=1&lt;br /&gt;
 gpgcheck=0&lt;br /&gt;
&lt;br /&gt;
Then, to install the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;host-pc-connectivity&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; package, you must only execute:&lt;br /&gt;
&lt;br /&gt;
 $ yum check-update&lt;br /&gt;
 $ sudo yum install host-pc-connectivity&lt;br /&gt;
&lt;br /&gt;
== Microsoft Windows ==&lt;br /&gt;
&lt;br /&gt;
To install &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;PC-Connectivity.exe&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; on a Windows XP, Windows Vista or Windows 7 system, you must install Cygwin before the Host PC Connectivity installation. You can download the Cygwin installation package from [http://www.cygwin.com/ here]. If you are using a Windows 7 or Vista version, install Cygwin 1.7 or later. For Windows XP, install Cygwin version 1.5 if you run into any problems with Cygwin 1.7.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Current Cygwin 1.7 releases have problems with X11 in the Maemo environment because they do not yet implement all needed X11 extensions (such as composite). If you plan to use a Windows environment with Maemo ESbox Eclipse IDE it is recommended to use Windows XP SP3 with Cygwin 1.5 because that combination has been tested to work. Cygwin 1.5 can be installed from this [http://www.cygwin.com/setup-legacy.exe Cygwin legacy product] link.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Remember to choose a installation path on your system without spaces during installation. Besides the default packages of Cygwin, the Maemo environment also requires the following optional packages to be installed:&lt;br /&gt;
&lt;br /&gt;
* Admin/cygrunsrv&lt;br /&gt;
* Net/nfs-server&lt;br /&gt;
* Net/openssh&lt;br /&gt;
* Net/rsync&lt;br /&gt;
* X11/xinit&lt;br /&gt;
* X11/xdpyinfo&lt;br /&gt;
&lt;br /&gt;
After Cygwin has been succesfully installed, download the latest &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;PC-Connectivity.exe&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; installer from [https://garage.maemo.org/frs/?group_id=801 PC Connectivty Garage] project. Run the installation and follow the on-screen instructions given during installation.&lt;br /&gt;
&lt;br /&gt;
The installer configures the SSHD. Install it as a service and start it. On Windows 7 and Vista, the Cygwin configuration script creates a new user with administrator privileges and with a random password for the SSHD service. This new user is used to run the SSHD service independently on a user who has been logged in to the Windows PC.&lt;br /&gt;
&lt;br /&gt;
== Mac OS X ==&lt;br /&gt;
&lt;br /&gt;
To install Host PC Connectivity on Mac OS X Leopard or Snow Leopard, you must first switch on the Bluetooth network to be able to configure it for Maemo usage. To do this, follow these steps:&lt;br /&gt;
&lt;br /&gt;
Open '''System Preferences''' under the '''Hardware''' category, and select the '''Bluetooth''' option, figure [[#fig:pc_connectivity_mpc_mac_isntalling_bt|2.8]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Bluetooth&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 2.8:''' Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_mac_installing_bt.png|Image mpc_mac_installing_bt]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Make sure Bluetooth is '''On''' and '''Discoverable''', figure [[#fig:pc_connectivity_mpc_mac_installing_bt_discoverable|2.9]]. Then, click on the '''Advanced''' button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Advanced&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 2.9:''' Advanced&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_mac_installing_bt_discoverable.png|Image mpc_mac_installing_bt_discoverable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the '''Share my Internet connection with other Bluetooth devices''' option, figure [[#fig:pc_connectivity_mpc_mac_installing_bt_internet|2.10]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Share my Internet connection with other Bluetooth devices&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 2.10:''' Share my Internet connection with other Bluetooth devices&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_mac_installing_bt_internet.png|Image mpc_mac_installing_bt_internet]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click the '''OK''' button to finalise the configuration.&lt;br /&gt;
&lt;br /&gt;
After Bluetooth has been succesfully configured, download the latest &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;PC-Connectivity.dmg&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; installer file from [https://garage.maemo.org/frs/?group_id=801 PC Connectivity Garage] project. Open the installer and follow the on-screen installation instructions.&lt;br /&gt;
&lt;br /&gt;
To have an environment similar to Cygwin on Windows, you can install MacPorts on Mac OS. The MacPorts project is an open-source community initiative to design an easy-to-use system for compiling, installing, and upgrading either command-line, X11 or Aqua-based open-source software on the Mac OS X operating system. You can find the MacPorts documentation and installation packages from the [http://www.macports.org MacPorts] project site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/Automatic_Service_Publishing</id>
		<title>Documentation/Maemo PC Connectivity Tutorial/Automatic Service Publishing</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/Automatic_Service_Publishing"/>
				<updated>2010-04-09T09:05:04Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Automatic Service Publishing =&lt;br /&gt;
&lt;br /&gt;
Maemo PC Connectivity automatically announces Samba shares, NFS shares, SSH, X11VNC and SBRSH through Avahi. Due to this, host PCs can easily find the services available from a Maemo device. Avahi is an open-source implementation of the ZeroConf. It is used to facilitate the discovery of services on a local network. It allows a Maemo device to publish and discover services and hosts running on a local network with no specific configuration. For example, you can plug in a Maemo device to a network and a Linux or Mac OS X host PC instantly finds disk shares and other network services running on your Maemo device.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Avahi has not yet been included in Host PC Connectivity for Windows and thus automatic Maemo device service publishing does not work with Windows host PCs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Using Avahi on Linux =&lt;br /&gt;
&lt;br /&gt;
First, you should install &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;avahi-discover&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; by executing the following command:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install avahi-discover&lt;br /&gt;
&lt;br /&gt;
Next, you can use the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;avahi-discover&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; utility to see all services announced by the Maemo device, figure [[#fig:pc_connectivity_mpc_linux_avahi_discover|7.1]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Linux Avahi Discovery dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.1:''' Linux Avahi Discovery dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_linux_avahi_discover.png|Image mpc_linux_avahi_discover]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Using Avahi on Mac OS X =&lt;br /&gt;
&lt;br /&gt;
Samba and NFS shares from a Maemo device are automatically shown in the '''SHARED''' section of the '''Finder''' application, figure [[#fig:pc_connectivity_mpc_mac_avahi_finder|7.2]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Mac OS X Finder application&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.2:''' Mac OS X Finder application&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_mac_avahi_finder.png|Image mpc_mac_avahi_finder]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/Configuring_Backup</id>
		<title>Documentation/Maemo PC Connectivity Tutorial/Configuring Backup</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/Configuring_Backup"/>
				<updated>2010-04-09T09:05:03Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Configuring Backup =&lt;br /&gt;
&lt;br /&gt;
You can use the Maemo Backup tool on a Maemo device to back up the Maemo PC Connectivity configuration. The connection environments and the configuration of connections and tools are backed up. Following the steps below, you can upgrade the Maemo device platform version (reflash the Maemo device) and restore all Maemo PC Connectivity configuration after upgrade.&lt;br /&gt;
&lt;br /&gt;
* Open the backup tool at '''Settings - Backup/Restore''' menu options.&lt;br /&gt;
* Create a backup configuration selecting at least the '''Settings''' option. If, besides the configuration, you want the software list to be in the backup, you can also select the '''Applications''' option.&lt;br /&gt;
&lt;br /&gt;
Your backup can now be created. This backup can be updated anytime you want. After you have upgraded the Maemo device or reflashed it, you should simply go to the backup tool again, choose the '''Settings - Backup/Restore''' menu option and restore the backup that was created before the upgrade.&lt;br /&gt;
&lt;br /&gt;
Restoring the backup may require a reboot for your Maemo device. After that, all your Maemo PC Connectivity configuration should have been restored.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Backup is stored on the memory card of your Maemo device. If you plan to flash also your memory card with an eMMC image (possible only with Maemo Fremantle devices) you need to copy backup files from the memory card to the host PC before flashing the eMMC image and back to memory card after eMMC flashing in order to restore the backup.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial</id>
		<title>Documentation/Maemo PC Connectivity Tutorial</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial"/>
				<updated>2010-04-09T09:05:03Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Nokia Corporation = MAEMO PC CONNECTIVITY TUTORIAL =&amp;lt;div class=&amp;quot;author_info&amp;quot;&amp;gt;'''maemo.org''''''18 February 2010'''&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;margins&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[{{PAGENAME}}/Preface|Preface]]&lt;br /&gt;
* [[{{PAGENAME}}/Glossary|Glossary]]&lt;br /&gt;
* [[{{PAGENAME}}/Introduction|Introduction]]&lt;br /&gt;
* [[{{PAGENAME}}/Installation|Installation]]&lt;br /&gt;
* [[{{PAGENAME}}/Configuration|Configuration]]&lt;br /&gt;
* [[{{PAGENAME}}/Network Sharing|Network Sharing]]&lt;br /&gt;
* [[{{PAGENAME}}/Remote Access|Remote Access]]&lt;br /&gt;
* [[{{PAGENAME}}/File Sharing|File Sharing]]&lt;br /&gt;
* [[{{PAGENAME}}/Automatic Service Publishing|Automatic Service Publishing]]&lt;br /&gt;
* [[{{PAGENAME}}/Configuring Backup|Configuring Backup]]&lt;br /&gt;
* [[{{PAGENAME}}/Bibliography|Bibliography]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/Glossary</id>
		<title>Documentation/Maemo PC Connectivity Tutorial/Glossary</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/Glossary"/>
				<updated>2010-04-09T09:05:02Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Glossary =&lt;br /&gt;
&lt;br /&gt;
; '''ABI'''&lt;br /&gt;
: Application Binary Interface, providing object code level compatibility.&lt;br /&gt;
; '''API'''&lt;br /&gt;
: Application Programming Interface, providing source code level compatibility.&lt;br /&gt;
; '''applet'''&lt;br /&gt;
: A small application that integrates to ''Hildon Desktop''.&lt;br /&gt;
; '''ARMEL'''&lt;br /&gt;
: A name that, for example, Debian uses for the little endian ARM EABI (''ABI'' for the ARM architecture).&lt;br /&gt;
; '''avahi'''&lt;br /&gt;
: is a free Zeroconf implementation that allows programs to publish and discover services and hosts running on a local network with no specific configuration.&lt;br /&gt;
; '''Bluetooth'''&lt;br /&gt;
: is an open wireless protocol for exchanging data over short distances (using short-length radio waves) from fixed and mobile devices, creating personal area networks (PANs).&lt;br /&gt;
; '''CIFS'''&lt;br /&gt;
: Common Internet File System (also known as Server Message Block, SMB) operates as an application-layer network protocol, mainly used to provide shared access to files, printers, serial ports, and miscellaneous communications between nodes on a network.&lt;br /&gt;
; '''CVS'''&lt;br /&gt;
: Concurrent Versions System.&lt;br /&gt;
; '''devkit'''&lt;br /&gt;
: The part of ''Maemo SDK'' that contains software development tools. Maemo SDK contains multiple devkits.&lt;br /&gt;
; '''DHCP'''&lt;br /&gt;
: Dynamic Host Configuration Protocol is a computer networking protocol used by hosts (DHCP clients) to retrieve IP address assignments and other configuration information.&lt;br /&gt;
; '''ESbox'''&lt;br /&gt;
: An Eclipse product implementing integration between Eclipse IDE and Maemo SDK.&lt;br /&gt;
; '''FHS'''&lt;br /&gt;
: Filesystem Hierarchy Standard defines the main directories and their contents in Linux operating systems.&lt;br /&gt;
; '''FUSE'''&lt;br /&gt;
: Filesystem in Userspace is a loadable kernel module for Unix-like computer operating systems that allows non-privileged users to create their own file systems without editing the kernel code.&lt;br /&gt;
; '''GDB'''&lt;br /&gt;
: GNU Project debugger.&lt;br /&gt;
; '''GUI'''&lt;br /&gt;
: Graphical User Interface.&lt;br /&gt;
; '''GTK'''&lt;br /&gt;
: Toolkit for creating graphical user interfaces with support for cross platform compatibility.&lt;br /&gt;
; '''Hildon'''&lt;br /&gt;
: An application framework used in the ''Maemo platform''. Developed by Nokia and based on GNOME/GTK+ technologies, currently in the process of becoming an upstream project in gnome.org.&lt;br /&gt;
; '''Hildon Desktop'''&lt;br /&gt;
: The main user interface component of Maemo Chinook, a rewrite of ''Maemo desktop''.&lt;br /&gt;
; '''ID'''&lt;br /&gt;
: Identifier.&lt;br /&gt;
; '''IDE'''&lt;br /&gt;
: Integrated Development Environment, such as Eclipse or QtCreator.&lt;br /&gt;
; '''IP'''&lt;br /&gt;
: Internet Protocol is a protocol used for communicating data across a packet-switched internetwork.&lt;br /&gt;
; '''ltrace'''&lt;br /&gt;
: A debugging utility for monitoring the library calls used by a program and all the signals it receives. It can also show system calls used by the program.&lt;br /&gt;
; '''Maemo'''&lt;br /&gt;
: A software platform for mobile devices developed by Nokia, based on GNU/Linux and GNOME/GTK+ technologies. It includes proprietary components to make it work on Nokia Maemo compatible devices.&lt;br /&gt;
; '''maemo.org'''&lt;br /&gt;
: A developer community website maintained by Nokia, and the main point of reference for open source and third-party developers in general.&lt;br /&gt;
; '''NFS'''&lt;br /&gt;
: Network File System is a network file system protocol allowing a user on a client computer to access files over a network in a manner similar to how local storage is accessed.&lt;br /&gt;
; '''OProfile'''&lt;br /&gt;
: A system-wide profiler for Linux systems.&lt;br /&gt;
; '''OS'''&lt;br /&gt;
: Operating System or sometimes Open Source.&lt;br /&gt;
; '''PluThon'''&lt;br /&gt;
: An Eclipse product implementing on-device Python development environment.&lt;br /&gt;
; '''rdesktop'''&lt;br /&gt;
: An open source client for Windows Terminal Services, capable of natively speaking RDP in order to present the user's Windows graphical desktop on another network computer.&lt;br /&gt;
; '''RDP'''&lt;br /&gt;
: Remote Desktop Protocol is a proprietary protocol developed by Microsoft, which provides a way to present the user's Windows graphical desktop on another network computer.&lt;br /&gt;
; '''RFB'''&lt;br /&gt;
: Remote FrameBuffer is a simple protocol for remote access to graphical user interfaces applicable to all windowing systems and applications, including X11, Windows and Macintosh. The protocol is used in VNC and its derivatives.&lt;br /&gt;
; '''rootstrap'''&lt;br /&gt;
: Part of the SDK that contains selected software components from rootfs. Rootstrap is the root file system of a target inside Scratchbox.&lt;br /&gt;
; '''rsync'''&lt;br /&gt;
: A software application which synchronizes files and directories from one location to another while minimizing data transfer using delta encoding when appropriate.&lt;br /&gt;
; '''Samba'''&lt;br /&gt;
: A free software re-implementation of SMB/CIFS networking protocol providing file and print services for various Microsoft Windows clients, it can integrate with a Windows Server domain.&lt;br /&gt;
; '''SBRSH'''&lt;br /&gt;
: Scratchbox Remote Shell remote command execution system similar to RSH and SSH and designed for slow devices, with Scratchbox's special requirements in mind.&lt;br /&gt;
; '''Scratchbox'''&lt;br /&gt;
: A cross-compilation toolkit designed to make embedded Linux application development easier and to cross-compile an entire Linux distribution.&lt;br /&gt;
; '''SCP'''&lt;br /&gt;
: Secure Copy is a means of securely transferring computer files between a local and a remote host or between two remote hosts. It is based on the SSH protocol.&lt;br /&gt;
; '''SDK'''&lt;br /&gt;
: Software Development Kit.&lt;br /&gt;
; '''SFTP'''&lt;br /&gt;
: SSH File Transfer Protocol (sometimes called Secure File Transfer Protocol) is a network protocol that provides file access, file transfer, and file management functionality over any reliable data stream.&lt;br /&gt;
; '''SMB'''&lt;br /&gt;
: Server Message Block (also known as Common Internet File System, CIFS) operates as an application-layer network protocol mainly used to provide shared access to files, printers, serial ports, and miscellaneous communications between nodes on a network.&lt;br /&gt;
; '''SSH'''&lt;br /&gt;
: Secure Shell network protocol that allows data to be exchanged using a secure channel between two networked devices.&lt;br /&gt;
; '''SSHFS'''&lt;br /&gt;
: SSH Filesystem or Secure SHell Filesystem is a file system client that may be used on operating systems for which an implementation of FUSE is available.&lt;br /&gt;
; '''toolchain'''&lt;br /&gt;
: Part of the SDK that contains ARM cross compilation tools, such as compiler and linker.&lt;br /&gt;
; '''UI'''&lt;br /&gt;
: User Interface.&lt;br /&gt;
; '''USB'''&lt;br /&gt;
: Universal Serial Bus is a specification to establish communication between devices and a host controller (usually personal computers).&lt;br /&gt;
; '''Valgrind'''&lt;br /&gt;
: A tool suite for debugging and profiling Linux programs.&lt;br /&gt;
; '''VNC'''&lt;br /&gt;
: Virtual Network Computing is a graphical desktop sharing system that uses the RFB protocol to remotely control another computer, transmitting the keyboard and mouse events from one computer to another and relaying the graphical screen updates back in the other direction, over a network.&lt;br /&gt;
; '''X11'''&lt;br /&gt;
: X Window System is a computer software system and network protocol that provides a GUI for networked computers.&lt;br /&gt;
; '''XML'''&lt;br /&gt;
: eXtensible Markup Language.&lt;br /&gt;
; '''ZeroConf'''&lt;br /&gt;
: Zero Configuration networking is a set of techniques that automatically creates a usable IP network without manual operator intervention or special configuration servers.&lt;br /&gt;
&lt;br /&gt;
= Maemo Releases =&lt;br /&gt;
&lt;br /&gt;
; '''Mistral'''&lt;br /&gt;
: Maemo 2.0 release for Nokia 770 device. Corresponds to the Nokia Internet Tablet SE 2006 version 2.01.2006.26-8.&lt;br /&gt;
; '''Scirocco'''&lt;br /&gt;
: Maemo 2.1 release for Nokia 770 device. Includs mainly bugfixes and some other enhancements. Corresponds to Nokia Internet Tablet SE 2006 version 2.2006.39-14.&lt;br /&gt;
; '''Gregale'''&lt;br /&gt;
: Maemo 2.2 release for Nokia 770 device (bugfixes and enhancements).&lt;br /&gt;
; '''Bora'''&lt;br /&gt;
: Maemo 3.x releases for Nokia N800 device. Corresponds to Internet Tablet OS releases &amp;quot;1.2006.47-20&amp;quot;, &amp;quot;2.2006.51-6&amp;quot; (Maemo 3.0), &amp;quot;3.2007.10-7&amp;quot; (Maemo 3.1) and &amp;quot;4.2007.26-8&amp;quot;+&amp;quot;4.2007.38-2&amp;quot; (Maemo 3.2).&lt;br /&gt;
; '''Chinook'''&lt;br /&gt;
: Maemo 4.0.x releases for Nokia N800 and N810 devices. Corresponds to Internet Tablet OS releases &amp;quot;1.2007.44-4&amp;quot; (Maemo 4.0) and &amp;quot;2.2007.51-3&amp;quot; (Maemo 4.0.1)&lt;br /&gt;
; '''Diablo'''&lt;br /&gt;
: Maemo 4.1.x releases for Nokia N800, N810 and N810 WiMAX devices. Corresponds to Internet Tablet OS releases &amp;quot;4.2008.23-14&amp;quot; (Maemo 4.1), &amp;quot;4.2008.36-5&amp;quot; (Maemo 4.1.1) and &amp;quot;5.2008.43-7&amp;quot; (Maemo 4.1.2)&lt;br /&gt;
; '''Fremantle'''&lt;br /&gt;
: Maemo 5.x releases for N900 device. Corresponds to Maemo 5 OS release &amp;quot;1.2009.42-11&amp;quot; + eMMC content &amp;quot;1.2009.41-1&amp;quot; (Maemo 5) and OS release &amp;quot;2.2009.51-1&amp;quot; + eMMC content &amp;quot;1.2009.41-1&amp;quot; (Maemo 5 Update)&lt;br /&gt;
; '''Harmattan'''&lt;br /&gt;
: Maemo 6.x releases, corresponds to Maemo 6 OS release &amp;quot;x.2010.xx-x&amp;quot;&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/Configuration</id>
		<title>Documentation/Maemo PC Connectivity Tutorial/Configuration</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/Configuration"/>
				<updated>2010-04-09T09:05:02Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Configuration =&lt;br /&gt;
&lt;br /&gt;
= Connection Establishment =&lt;br /&gt;
&lt;br /&gt;
On a Maemo device, connections can be easily configured using Maemo PC Connectivity applets. It is possible to configure a Maemo device to use USB, Bluetooth and WLAN connection types.&lt;br /&gt;
&lt;br /&gt;
'''USB''' connection type sets a USB mode (Network, Mass Storage or Host) to be used between a Maemo device and a host PC.&lt;br /&gt;
&lt;br /&gt;
'''Bluetooth''' connection type sets a Bluetooth network over TCP/IP between a Maemo device and a host PC.&lt;br /&gt;
&lt;br /&gt;
'''WLAN''' connection type sets a WLAN ad-hoc network between a Maemo device and a host PC.&lt;br /&gt;
&lt;br /&gt;
On the host PC side (Linux, Windows and Mac OS X), the Host PC Connectivity product provides some tools to make it easier to configure the chosen connection type between the Maemo device and the host PC. Next the configuration of each supported connection type (USB, Bluetooth and WLAN) between the Maemo device and host PC are described briefly.&lt;br /&gt;
&lt;br /&gt;
== Configuring USB Network ==&lt;br /&gt;
&lt;br /&gt;
For Maemo Diablo devices, the USB connection has been configured to '''Mass storage''' mode by default. That is, when connected to a host PC via USB cable, the Maemo device is visible as a memory card for the host PC.&lt;br /&gt;
&lt;br /&gt;
For Fremantle, when a Maemo device is connected to the host PC via USB cable, the Maemo device shows a default pop-up menu where the USB mode can be selected. the choices given are '''Mass storage''' or '''PC Suite''' mode. You must NOT use this default USB pop-up menu if you have installed Maemo PC Connectivity to the N900 device! Just click outside this default USB pop-up menu to close it and use Maemo PC Connectivity widgets to change the USB mode.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  With the Maemo Fremantle platform and N900 device, if Maemo PC Connectivity has been installed, the USB connection is used in a different way beyond the default '''Mass storage''' and '''PC Suite''' modes and thus ONLY Maemo PC Connectivity applets can be used to change the USB mode for the Maemo N900 device.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For '''USB''' connection type it is possible to set following options for a Maemo device:&lt;br /&gt;
&lt;br /&gt;
; '''Network'''&lt;br /&gt;
: sets a USB network over TCP/IP between the Maemo device and host PC.&lt;br /&gt;
; '''Mass storage'''&lt;br /&gt;
: sets the Maemo device file system to be accessible from the host PC as a memory card.&lt;br /&gt;
; '''PC Suite'''&lt;br /&gt;
: sets the Maemo device to be accessible by Nokia applications like Nokia PC Suite.&lt;br /&gt;
; '''Host'''&lt;br /&gt;
: sets the Maemo device to USB Host mode, where it allows external USB devices (such as hard drives, digital cameras, card readers, input devices, and so on) to be connected to the Maemo device, just like to a regular PC.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Maemo Diablo N800 and N810 devices do not support PC Suite mode. Due to hardware limitations, Maemo Fremantle device N900 does not support USB Host mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The description of how to setup a USB connection to Mass storage, PC Suite and Host modes is skipped, since the configuration is simply to select and apply the desired mode on a Maemo device using Maemo PC Connectivity. Next, it is explained how to configure a USB network over TCP/IP between a Maemo device and host PC through Maemo PC Connectivity. Before that, you must install the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;maemo-pc-connectivity&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; meta package on the Maemo device and the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;host-pc-connectivity&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; package on the host PC (Linux, Windows and Mac OS).&lt;br /&gt;
&lt;br /&gt;
=== Configuring USB for Maemo devices ===&lt;br /&gt;
&lt;br /&gt;
To set up a USB network for a Maemo device you need to start PC Connectivity Manager, figure [[#fig:pc_connectivity_mpc_nm_usb_basic|3.1]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;PC Connectivity Manager&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.1:''' PC Connectivity Manager&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_nm_usb_basic.png|Image mpc_maemo_nm_usb_basic]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Follow these steps to enable USB Networking:&lt;br /&gt;
&lt;br /&gt;
* Disconnect the USB cable from Maemo device&lt;br /&gt;
* Run '''Settings - Control Panel - Connectivity - PC Connectivity Manager'''&lt;br /&gt;
* Check '''USB''' option&lt;br /&gt;
* Press '''Apply''' button&lt;br /&gt;
&lt;br /&gt;
* Connect the USB cable to the host PC.&lt;br /&gt;
* Press the '''Advanced''' button and PC Connectivity Manager switches to advanced mode, if you want to change the default values.&lt;br /&gt;
* Change network options such as DHCP Server, IP address, Gateway and Netmask.&lt;br /&gt;
* Click on the '''Apply''' button.&lt;br /&gt;
&lt;br /&gt;
The USB Networking must have the following default values, figure [[#fig:pc_connectivity_mpc_nm_usb|3.2]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;PC Connectivity Manager USB Networking&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.2:''' PC Connectivity Manager USB Networking&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_nm_usb.png|Image mpc_maemo_nm_usb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''DHCP Server:''' &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;enabled&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* '''IP address:''' &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;192.168.2.15&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* '''Gateway:''' &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;192.168.2.14&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* '''Netmask:''' &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;255.255.255.0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have configured your USB Network using PC Connectivity Manager, you can enable or disable it easily by using Connection Switcher from the status bar, figure [[#fig:pc_connectivity_mpc_switcher_usb|3.3]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Connection Switcher dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.3:''' Connection Switcher dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_switcher_usb.png|Image mpc_maemo_switcher_usb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you prefer, you can follow the steps below to configure USB Network manually for a Maemo device (Diablo):&lt;br /&gt;
&lt;br /&gt;
* Run '''Utilities - X Terminal'''&lt;br /&gt;
* Type &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;sudo gainroot&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* Type &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;insmod /mnt/initfs/lib/modules/2.6.21-omap1/g_ether.ko&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* Edit the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/network/interfaces&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; file to configure the IP address of the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;usb0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; interface:&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/network/interfaces&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; file should have following entries in it:&lt;br /&gt;
&lt;br /&gt;
 auto usb0&lt;br /&gt;
 iface usb0 inet static&lt;br /&gt;
 address 192.168.2.15&lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
* Type &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;ifup usb0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* Plug in the USB cable&lt;br /&gt;
&lt;br /&gt;
To disable USB Network manually on a Maemo device (Diablo), follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Run '''Utilities - X Terminal'''&lt;br /&gt;
* Type &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;sudo gainroot&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* Type &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;ifdown usb0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* Type &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;rmmod g_ether&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configuring USB for Linux ===&lt;br /&gt;
&lt;br /&gt;
If you install the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;host-pc-connectivity&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; package, your Linux host PC is ready for USB Network.&lt;br /&gt;
&lt;br /&gt;
Otherwise, you can configure your Linux host PC manually following the steps below:&lt;br /&gt;
&lt;br /&gt;
On Ubuntu, you need to edit the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/udev/rules.d/85-ifupdown.rules&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; file and replace the following line:&lt;br /&gt;
&lt;br /&gt;
 SUBSYSTEM==&amp;quot;net&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;, GOTO=&amp;quot;net_start&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with this line:&lt;br /&gt;
&lt;br /&gt;
 SUBSYSTEM==&amp;quot;net&amp;quot;, GOTO=&amp;quot;net_start&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If this workaround is not done, the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;usb0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; interface does not get its IP address back when you unplug and plug back the Maemo device to the host PC. Therefore, you must restart the network manually with the command &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/init.d/networking restart&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; to get the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;usb0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; IP address back. This is a known issue on Ubuntu (see the related bug report [https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/130437 here]).&lt;br /&gt;
&lt;br /&gt;
On Debian, this workaround is not needed.&lt;br /&gt;
&lt;br /&gt;
Add the following lines to the network configuration file &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/network/interfaces&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 auto usb0&lt;br /&gt;
 allow-hotplug usb0&lt;br /&gt;
&lt;br /&gt;
 mapping hotplug&lt;br /&gt;
 script grep&lt;br /&gt;
 map usb0&lt;br /&gt;
&lt;br /&gt;
 iface usb0 inet dhcp&lt;br /&gt;
 up iptables -t nat -A POSTROUTING -s 192.168.2.15 -j MASQUERADE&lt;br /&gt;
 up echo 1 &amp;amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
 down iptables -t nat -D POSTROUTING -s 192.168.2.15 -j MASQUERADE&lt;br /&gt;
 down echo 0 &amp;amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
You can now connect the USB cable. With this configuration, you ensure that the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;ifup usb0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; command sets up the IP address correctly on the host PC since it is using DHCP. Also, it allows a Maemo device to access the Internet from the host PC through the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;usb0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; interface.&lt;br /&gt;
&lt;br /&gt;
If you are using VMware:&lt;br /&gt;
&lt;br /&gt;
* Connect USB cable.&lt;br /&gt;
* Go to '''VMware - Devices - Netchip RNDIS/Ethernet Gadget''' and click on the '''Connect (Disconnect from host)''' option. If VMware hangs, unplug the USB cable and wait for a short period of time. You get two &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;device in use&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; error messages, one from Native OS and another from VMware (likely because of automatic USB Mass Storage mode).&lt;br /&gt;
* Connect the USB cable. Repeat the previous steps if any problems are encountered.&lt;br /&gt;
&lt;br /&gt;
Invoke the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;sudo ifdown usb0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;sudo ifup usb0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; commands. The down/up sequence ensures that the host PC attempts to reconnect the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;usb0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; interface.&lt;br /&gt;
&lt;br /&gt;
If this results in a lot of &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Failed to bring up usb0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; errors, try again a few times. There can be a delay until the host PC and Maemo device become aware of each other. If it does not succeed but no error message is displayed, you can unplug and plug back the USB cable.&lt;br /&gt;
&lt;br /&gt;
Test the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;usb0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; connection with the following command &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;ping 192.168.2.15&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you do not get the ping working, try again a few times. This can be an annoying process, especially in VMware where the USB connection may be automatically configured to Mass Storage mode every time you plug the USB cable into the host PC. It may even require restarting VMware in some cases.&lt;br /&gt;
&lt;br /&gt;
=== Configuring USB for Windows ===&lt;br /&gt;
&lt;br /&gt;
In order to get USB Networking funtioning between a Windows host PC and a Diablo Maemo device, you must replace the original Diablo kernel with a new one that fixes some generic Linux USB Networking issues.&lt;br /&gt;
&lt;br /&gt;
To replace the Diablo kernel, follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Download the file &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;diablo_kernel_usbnet_patch_windows_v0.4.zip&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; from [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Maemo Development Environment Downloads] page.&lt;br /&gt;
* Unzip the file.&lt;br /&gt;
* Replace the Diablo kernel by reflashing it using the flasher-3.5 application from the same [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Maemo Development Environment Downloads] page.&lt;br /&gt;
&lt;br /&gt;
 $ flasher-3.5 -k diablo_kernel_usbnet_windows/zImage -f -R&lt;br /&gt;
&lt;br /&gt;
Now, you can get USB Network working between a Diablo Maemo device and a Windows host PC.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  On Fremantle and the N900 device this kernel fix has already been applied by default.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After reflashing the kernel to the Maemo Diablo device and installing the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;PC-Connectivity.exe&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; package to the host PC, your Windows host PC is ready for USB Network. That is, Windows detects and configures the Maemo device automatically when you plug in the USB cable. Remember to activate USB Network on your Maemo device before plugging the cable into the Windows host PC.&lt;br /&gt;
&lt;br /&gt;
If you did not enable the '''DHCP''' option for the Maemo device, you need to configure the USB Network address for the host PC through the application available on the Windows Start menu '''Start - Programs - PC-Connectivity - UsbNetworking''', figure [[#fig:pc_connectivity_mpc_win_usb_app|3.4]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;USB Network address on Windows&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.4:''' USB Network address on Windows&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_win_usb_app.png|Image mpc_win_usb_app]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you do not install the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;PC-Connectivity&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; package, you have to configure the USB network manually on your Windows host PC. For that, you must follow the steps below:&lt;br /&gt;
&lt;br /&gt;
* Activate USB Network on the Maemo device.&lt;br /&gt;
* Plug in the USB cable between the Maemo device and the Windows host PC.&lt;br /&gt;
* Windows detects the device.&lt;br /&gt;
&lt;br /&gt;
In the '''Found New Hardware Wizard''', figure [[#fig:pc_connectivity_mpc_win_usb_device_found|3.5]], proceed as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Windows Found New Hardware Wizard&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.5:''' Windows Found New Hardware Wizard&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_win_usb_device_found.png|Image mpc_win_usb_device_found]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Select the '''No, not this time''' option. Click on the '''Next''' button, figure [[#fig:pc_connectivity_mpc_win_usb_device_found|3.5]].&lt;br /&gt;
* Select the '''Install from a list or specific location (Advanced)''' option. Click on the '''Next''' button.&lt;br /&gt;
* Select the '''Don't search, I will choose the driver to install''' option.&lt;br /&gt;
* Click on the '''Next''' button, figure [[#fig:pc_connectivity_mpc_win_usb_choose_driver|3.6]].&lt;br /&gt;
* Select the '''Network adapters''' option. Click on the '''next''' button (optional screen).&lt;br /&gt;
* Select the '''Have disk''' option. Then, Click on the '''Browser''' button, select the driver (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;.inf&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; file) and click on the '''OK''' button. The driver is available inside the zip file that was used to fix the Diablo kernel (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;diablo_kernel_usbnet_patch_windows_v0.4.zip&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;).&lt;br /&gt;
* Follow the next steps as with a normal driver installation.&lt;br /&gt;
&lt;br /&gt;
The new USB Network interface is available on the '''Start - Network Connections''' menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Windows Search and Installation options for USB&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.6:''' Windows Search and Installation options for USB&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_win_usb_choose_driver.png|Image mpc_win_usb_choose_driver]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  If you did NOT choose the DHCP option on the Maemo device, you need to set up the network using the following information: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;IP address: 192.168.2.14&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Subnet mask: 255.255.255.0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, figure [[#fig:pc_connectivity_mpc_win_usb_tcp|3.7]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
To check if the connection is working, go to Windows command prompt and type &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;ping 192.168.2.15&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Manual IP Network configuration dialog for USB&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.7:''' Manual IP Network configuration dialog for USB&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_win_usb_tcp.png|Image mpc_win_usb_tcp]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuring USB for Mac OS X ===&lt;br /&gt;
&lt;br /&gt;
To enable USB Network to work on Mac OS X you can follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Activate USB network on the Maemo device.&lt;br /&gt;
* Plug in the USB cable between Maemo device and the Mac OS X host PC.&lt;br /&gt;
* The following pop-up should appear, figure [[#fig:pc_connectivity_mpc_mac_usb_pop_up|3.8]].&lt;br /&gt;
* Click on the '''Network Preferences''' button.&lt;br /&gt;
* Click on the '''Apply''' button. Now, you should be able to connect to your Maemo device.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;New network interface found pop-up dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.8:''' New network interface found pop-up dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_mac_usb_pop_up.png|Image mpc_mac_usb_pop_up]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  If you did not choose the DHCP option on the Maemo device, you need to set up the USB network address manually on '''Network panel'''. For example, &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;IP address: 192.168.2.14&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Subnet mask: 255.255.255.0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, figure [[#fig:pc_connectivity_mpc_mac_usb_tcp_properties|3.9]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Network panel configuration dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.9:''' Network panel configuration dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_mac_usb_tcp_properties.png|Image mpc_mac_usb_tcp_properties]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuring Bluetooth Network ==&lt;br /&gt;
&lt;br /&gt;
With Maemo PC Connectivity, you can configure a Bluetooth network between a Maemo device and a host PC by setting up connection attributes like IP address, network mask, and so on. For that, you have to first install Maemo PC Connectivity to the Maemo device and Host PC Connectivity to the host PC (Linux, Windows or Mac OS X).&lt;br /&gt;
&lt;br /&gt;
=== Configuring Bluetooth for Maemo device ===&lt;br /&gt;
&lt;br /&gt;
In order to set up a Bluetooth network for a Maemo device, you should follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Run '''Settings - Control Panel - Connectivity - PC Connectivity Manager'''.&lt;br /&gt;
* Click on the '''Advanced''' button.&lt;br /&gt;
* Select an environment or create a new one.&lt;br /&gt;
* Select the '''Bluetooth''' option as shown in Figure [[#fig:pc_connectivity_mpc_maemo_nm_bluetooth|3.10]].&lt;br /&gt;
* Click on '''Search''' to find the host PC.&lt;br /&gt;
* Once the host PC is found, mark its name and then click '''Select''', figure [[#fig:pc_connectivity_mpc_maemo_nm_bluetooth_search|3.11]].&lt;br /&gt;
* The default settings are presented below, you can change them if needed.&lt;br /&gt;
* Finally, click on '''Apply''' to enable the Bluetooth network.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;PC Connectivity Manager Bluetooth configuration&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.10:''' PC Connectivity Manager Bluetooth configuration&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_nm_bluetooth.png|Image mpc_maemo_nm_bluetooth]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Default values for Maemo device Bluetooth configuration are:&lt;br /&gt;
&lt;br /&gt;
* '''DHCP Server:''' &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;enabled&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* '''IP address:''' &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;192.168.3.15&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* '''Gateway:''' &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;192.168.3.14&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* '''Netmask:''' &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;255.255.255.0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* '''Bluetooth address:''' empty (you should search the host PC to connect to), figure [[#fig:pc_connectivity_mpc_maemo_nm_bluetooth_search|3.11]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Searching Bluetooth devices dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.11:''' Searching Bluetooth devices dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_nm_bluetooth_search.png|Image mpc_maemo_nm_bluetooth_search]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once you have configured your Bluetooth Network using PC Connectivity Manager, you can enable or disable it easily by using Connection Switcher from the status bar, figure [[#fig:pc_connectivity_mpc_maemo_switcher_bluetooth|3.12]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Connection Switcher dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.12:''' Connection Switcher dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_switcher_bluetooth.png|Image mpc_maemo_switcher_bluetooth]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuring Bluetooth for Linux ===&lt;br /&gt;
&lt;br /&gt;
After you have installed the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;host-pc-connectivity&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; package for your Linux host PC, it is ready for the Bluetooth network.&lt;br /&gt;
&lt;br /&gt;
Or you can configure your Linux host PC manually for Bluetooth following the steps given below.&lt;br /&gt;
&lt;br /&gt;
Add these lines to the file &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/network/interfaces&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 auto bnep0&lt;br /&gt;
 iface bnep0 inet dhcp&lt;br /&gt;
 up iptables -t nat -A POSTROUTING -s 192.168.3.15 -j MASQUERADE&lt;br /&gt;
 up echo 1 &amp;amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
 down iptables -t nat -D POSTROUTING -s 192.168.3.15 -j MASQUERADE&lt;br /&gt;
 down echo 0 &amp;amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Edit the file &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/default/bluetooth&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; and change these lines:&lt;br /&gt;
&lt;br /&gt;
 BLUETOOTH_ENABLED=1&lt;br /&gt;
 ...&lt;br /&gt;
 PAND_ENABLED=1&lt;br /&gt;
 ...&lt;br /&gt;
 PAND_OPTIONS=&amp;quot;-listen -role=NAP -e bnep0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Restart the Bluetooth service with the command:&lt;br /&gt;
&lt;br /&gt;
 $ sudo /etc/init.d/bluetooth restart&lt;br /&gt;
&lt;br /&gt;
Now your Linux host PC is ready for the Bluetooth network.&lt;br /&gt;
&lt;br /&gt;
=== Configuring Bluetooth for Windows ===&lt;br /&gt;
&lt;br /&gt;
The description of how to configure Bluetooth on a Windows host PC is based on [http://www.bluesoleil.com/ the BlueSoleil application]. BlueSoleil is one of the most popular Windows Bluetooth applications. If you do not use BlueSoleil, the screenshots below can differ from what you see in your host PC, but they can help in understanding what you need to change on your Windows configuration.&lt;br /&gt;
&lt;br /&gt;
You should follow the next steps to get the Bluetooth network configured in your Windows host PC (with BlueSoleil).&lt;br /&gt;
&lt;br /&gt;
* In the '''System tray''', right click on the Bluetooth icon .&lt;br /&gt;
* Select the '''Bluetooth Configuration''' option, figure [[#fig:pc_connectivity_mpc_win_bluetooth_tray|3.13]].&lt;br /&gt;
* In the '''Bluetooth Configuration''' dialog, select the '''Accessibility''' tab.&lt;br /&gt;
* Check the '''Let other Bluetooth devices discover this computer''' option, figure [[#fig:pc_connectivity_mpc_win_bluetooth_accessibility|3.14]].&lt;br /&gt;
* In the '''Bluetooth Configuration''' dialog, select the '''Local Services''' tab.&lt;br /&gt;
* Mark the '''Network Access''' service and click the '''Properties...''' button, figure [[#fig:pc_connectivity_mpc_win_bluetooth_services|3.15]].&lt;br /&gt;
* If you want to share Internet over Bluetooth, select '''Allow other devices to access the Internet/LAN via this computer''' on the '''Select the type of the service to offer remote devices''' option.&lt;br /&gt;
* Click on the '''Configure Network Adapter''' button, figure [[#fig:pc_connectivity_mpc_win_bluetooth_properties|3.16]].&lt;br /&gt;
* Double click on the '''Internet Protocol (TCP/IP)''' option, figure [[#fig:pc_connectivity_mpc_win_bluetooth_network|3.17]].&lt;br /&gt;
* For all opened dialogs, press the '''OK''' button.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  If you did not choose the DHCP option on the Maemo device, type the following information for the network adapter: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;IP address: 192.168.3.14&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Subnet mask: 255.255.255.0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, figure [[#fig:pc_connectivity_mpc_win_bluetooth_tcp|3.18]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Bluetooth configuration menu&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.13:''' Bluetooth configuration menu&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_win_bluetooth_tray.png|Image mpc_win_bluetooth_tray]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Bluetooth Accessibility dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.14:''' Bluetooth Accessibility dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_win_bluetooth_accessibility.png|Image mpc_win_bluetooth_accessibility]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Bluetooth Network Access entry&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.15:''' Bluetooth Network Access entry&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_win_bluetooth_services.png|Image mpc_win_bluetooth_services]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Bluetooth Properties dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.16:''' Bluetooth Properties dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_win_bluetooth_properties.png|Image mpc_win_bluetooth_properties]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Bluetooth Network properties dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.17:''' Bluetooth Network properties dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_win_bluetooth_network.png|Image mpc_win_bluetooth_network]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Network Adapter configuration dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.18:''' Network Adapter configuration dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_win_bluetooth_tcp.png|Image mpc_win_bluetooth_tcp]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuring Bluetooth for Mac OS X ===&lt;br /&gt;
&lt;br /&gt;
After installing the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;PC-Connectivity&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; package to the host PC, your Mac OS X is ready for the Bluetooth network.&lt;br /&gt;
&lt;br /&gt;
Otherwise, you can configure your Mac OS host PC manually by following these steps.&lt;br /&gt;
&lt;br /&gt;
* Go to '''System Preferences''' and click on the '''Network''' icon, figure [[#fig:pc_connectivity_mpc_mac_bluetooth_network_preferences|3.19]].&lt;br /&gt;
* Add a new network interface, figure [[#fig:pc_connectivity_mpc_mac_bluetooth_network_add|3.20]].&lt;br /&gt;
* For the '''Interface''' field, select '''Bluetooth PAN''' type.&lt;br /&gt;
* For the '''Service Name''' field, write the interface name, figure [[#fig:pc_connectivity_mpc_mac_bluetooth_network_name|3.21]].&lt;br /&gt;
* Press the '''Apply''' button.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  If you did not choose the DHCP option on the Maemo device, select the newly created '''Bluetooth PAN''' interface and use the '''Manually''' option in the '''Configure''' field. After that, type the following information: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;IP address: 192.168.3.14&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Subnet mask: 255.255.255.0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, figure [[#fig:pc_connectivity_mpc_mac_bluetooth_network_tcp|3.22]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;System Preferences dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.19:''' System Preferences dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_mac_bluetooth_network_preferences.png|Image mpc_mac_bluetooth_network_preferences]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Adding new network interface&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.20:''' Adding new network interface&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_mac_bluetooth_network_add.png|Image mpc_mac_bluetooth_network_add]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Configuring new Bluetooth interface name&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.21:''' Configuring new Bluetooth interface name&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_mac_bluetooth_network_name.png|Image mpc_mac_bluetooth_network_name]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Configuring Bluetooth interface network&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.22:''' Configuring Bluetooth interface network&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_mac_bluetooth_network_tcp.png|Image mpc_mac_bluetooth_network_tcp]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuring a WLAN ad-hoc Network ==&lt;br /&gt;
&lt;br /&gt;
With Maemo PC Connectivity, you can configure a WLAN ad-hoc network for your Maemo device. You can set up connection attributes such as IP address, network mask, and so on.&lt;br /&gt;
&lt;br /&gt;
=== Configuring WLAN ad-hoc for a Maemo device ===&lt;br /&gt;
&lt;br /&gt;
To set up a WLAN ad-hoc network for your Maemo device, you need to perform the following configuration steps.&lt;br /&gt;
&lt;br /&gt;
In Control Panel, open the PC Connectivity Manager widget, figure [[#fig:pc_connectivity_mpc_maemo_nm_wlan_basic|3.23]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;PC Connectivity Manager - basic mode&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.23:''' PC Connectivity Manager - basic mode&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_nm_wlan_basic.png|Image mpc_maemo_nm_wlan_basic]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the '''WLAN''' check-box and press the '''Apply''' button. A new WLAN ad-hoc connection is created with the following configuration:&lt;br /&gt;
&lt;br /&gt;
* '''DHCP Server:''' &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Enabled&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* '''IP Address:''' &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;192.168.4.14&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* '''Gateway:''' &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;192.168.4.15&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* '''Netmask:''' &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;255.255.255.0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* '''Essid:''' &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;devel_adhoc&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* '''WEP:''' key empty&lt;br /&gt;
&lt;br /&gt;
If you want to change these default values, press the '''Advanced''' button, go to '''WLAN ad-hoc''' connection type and change the values. Then, press the '''Apply''' button, figure [[#fig:pc_connectivity_mpc_maemo_nm_wlan|3.24]].&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  By default, the WEP key is not used for new WLAN networks but for security reasons it is highly recommended to set also the wireless key.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The WEP key must have 5, 10 or 13 characters (For example: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;aaaaa&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;PC Connectivity Manager - advanced mode&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.24:''' PC Connectivity Manager - advanced mode&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_nm_wlan.png|Image mpc_maemo_nm_wlan]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once you have configured your WLAN ad-hoc Network using PC Connectivity Manager, you can enable or disable it easily using Connection Switcher from the status bar, figure [[#fig:pc_connectivity_mpc_maemo_switcher_wlan|3.25]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Connection Switcher dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.25:''' Connection Switcher dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_switcher_wlan.png|Image mpc_maemo_switcher_wlan]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuring WLAN ad-hoc for Linux ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;iwconfig&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; command is the configuration utility in Linux for WLAN interfaces. It is used to set the parameters of the network interface, which are specific to the wireless operation. The &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;iwconfig&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; command may also be used to display the parameters and the wireless network statistics. It extracts this information from the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/proc/net/wireless&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; file. By typing the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;iwconfig&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; command without any arguments, it displays the current status of all wireless interfaces on the system.&lt;br /&gt;
&lt;br /&gt;
To configure your host PC to connect with your Maemo device using a WLAN ad-hoc network, you should execute the following steps as &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;root&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; user:&lt;br /&gt;
&lt;br /&gt;
 $ ifconfig wlan0 up&lt;br /&gt;
 $ iwconfig wlan0 mode Ad-Hoc&lt;br /&gt;
 $ iwconfig wlan0 essid devel_adhoc&lt;br /&gt;
 $ iwconfig wlan0 key off&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  The example below disables the usage of wireless key, but for security reasons it is highly recommended to set also the wireless key.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
To set the wireless key for your WLAN ad-hoc network, you should give the following command (using your own key value).&lt;br /&gt;
&lt;br /&gt;
 $ iwconfig wlan0 key 6161616161&lt;br /&gt;
&lt;br /&gt;
You must use the same WEP key you used for Maemo device configuration, but as hexadecimal digits (for example, &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;aaaaa&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; is &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;6161616161&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; in hexadecimal).&lt;br /&gt;
&lt;br /&gt;
=== Configuring WLAN ad-hoc for Windows ===&lt;br /&gt;
&lt;br /&gt;
To set up a WLAN ad-hoc network that allows others computers to connect to your Windows host PC, follow these steps.&lt;br /&gt;
&lt;br /&gt;
* Connect your Maemo device to &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;devel_adhoc&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
* In the '''System Tray''', right click on the wireless icon. Select the '''View Available Wireless Networks''' option, figure [[#fig:pc_connectivity_mpc_win_wlan_tray|3.26]].&lt;br /&gt;
* The '''Wireless Network Connection''' window displays the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;devel_adhoc&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; network on the list. If you do not see &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;devel_adhoc&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, click '''Refresh network list''' in the upper left corner, figure [[#fig:pc_connectivity_mpc_win_wlan_selection|3.27]].&lt;br /&gt;
* Select &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;devel_adhoc&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, and then click on the '''Connect''' button.&lt;br /&gt;
* If you configured the '''WEP Key''' for your Maemo device, the Windows asks you to write that key at this point, figure [[#fig:pc_connectivity_mpc_win_wlan_key|3.28]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;View Available Wireless Networks menu&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.26:''' View Available Wireless Networks menu&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_win_wlan_tray.png|Image mpc_win_wlan_tray]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Choose a wireless network dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.27:''' Choose a wireless network dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_win_wlan_selection.png|Image mpc_win_wlan_selection]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Wireless network key dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.28:''' Wireless network key dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_win_wlan_key.png|Image mpc_win_wlan_key]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuring WLAN ad-hoc for Mac OS X ===&lt;br /&gt;
&lt;br /&gt;
To configure a WLAN ad-hoc network for your Mac OS X host PC, follow these steps.&lt;br /&gt;
&lt;br /&gt;
* Connect your maemo device to &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;devel_adhoc&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
* On the '''Menu Bar''', click on the wireless icon and select the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;devel_adhoc&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; network.&lt;br /&gt;
* If you configured '''WEP Key''' for your Maemo device, the Mac OS X asks you to write that key at this point.&lt;br /&gt;
* The wireless icon should change to inform that it is now connected.&lt;br /&gt;
&lt;br /&gt;
= Using Configuration Environments =&lt;br /&gt;
&lt;br /&gt;
With Maemo PC Connectivity, it is possible to use configuration environments for your Maemo device. For example, you can create an environment named &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Home&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; that has the USB connection and the NFS disk mounts configured, and an environment named &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Office&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; that has the WLAN connection and the SBRSH tool configured. When you are at home you can select a &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Home&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; environment for your Maemo device and all previously stored connection and tool configurations in the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Home&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; environment are restored for your Maemo device.&lt;br /&gt;
&lt;br /&gt;
To create or modify new configuration environments for your Maemo device you need to launch the Environment Manager widget, figure [[#fig:pc_connectivity_mpc_maemo_nm_env_create|3.29]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Environment Manager&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.29:''' Environment Manager&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_nm_env_create.png|Image mpc_maemo_nm_env_create]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To create a new environment you should follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Run '''Settings - Control Panel - Connectivity - PC Connectivity Manager'''.&lt;br /&gt;
* Click on the '''Advanced''' button.&lt;br /&gt;
* Click on the '''...''' button.&lt;br /&gt;
* Click on the '''New''' button.&lt;br /&gt;
* Set the environment name. For example, '''Home''', and click on the '''Ok''' button.&lt;br /&gt;
* Configure connections and tools to be used with this environment. For example, USB connection and NFS tool.&lt;br /&gt;
* Click on the '''Save''' button.&lt;br /&gt;
&lt;br /&gt;
After you have created new environments, you can switch between them using the Connection Switcher widget, figure [[#fig:pc_connectivity_mpc_maemo_switcher_env|3.30]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Connection Switcher&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.30:''' Connection Switcher&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_switcher_env.png|Image mpc_maemo_switcher_env]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To change between stored environments using Connection Switcher:&lt;br /&gt;
&lt;br /&gt;
* Run Connection Switcher from the status bar.&lt;br /&gt;
* Select an environment.&lt;br /&gt;
&lt;br /&gt;
All stored configuration information for the chosen environment are applied to the Maemo device.&lt;br /&gt;
&lt;br /&gt;
Also, the PC Connectivity Manager widget can be used to switch between stored environments, figure [[#fig:pc_connectivity_mpc_maemo_nm_env_basic|3.31]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;PC Connectivity Manager - Basic mode&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.31:''' PC Connectivity Manager - Basic mode&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_nm_env_basic.png|Image mpc_maemo_nm_env_basic]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run '''Settings - Control Panel - Connectivity - PC Connectivity Manager'''.&lt;br /&gt;
* Select an environment.&lt;br /&gt;
* Click on the '''Apply''' button.&lt;br /&gt;
&lt;br /&gt;
You can modify stored configuration environments with the PC Connectivity Manager widget in its '''Advanced''' mode, figure [[#fig:pc_connectivity_mpc_maemo_nm_env_advanced|3.32]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;PC Connectivity Manager - Advanced mode&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.32:''' PC Connectivity Manager - Advanced mode&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_nm_env.png|Image mpc_maemo_nm_env]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run '''Settings - Control Panel - Connectivity - PC Connectivity Manager'''.&lt;br /&gt;
* Click on the '''Advanced''' button.&lt;br /&gt;
* Change the environment configuration. For example, USB connection and/or X11VNC tool.&lt;br /&gt;
* Click on the '''Apply''' button. All configurations, including changes, are saved and applieds&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/File_Sharing</id>
		<title>Documentation/Maemo PC Connectivity Tutorial/File Sharing</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/File_Sharing"/>
				<updated>2010-04-09T09:05:01Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= File Sharing =&lt;br /&gt;
&lt;br /&gt;
= Disk mounting =&lt;br /&gt;
&lt;br /&gt;
Maemo PC Connectivity provides some tools for easily sharing files between a Maemo device and a host PC. You can can mount the file system of a Maemo device to the host PC over a network and interact with it as it is a local disk. Also, it is possible to mount a file system of a host PC to the Maemo device. For that, you have to install Maemo PC Connectivity on the Maemo device and Host PC Connectivity on the host PC (Linux, Windows and Mac OS X).&lt;br /&gt;
&lt;br /&gt;
This chapter describes how to use the disk mounting tools available with Maemo PC Connectivity. To simplify the process, it is assumed that you already have a working USB network between your Maemo device and the host PC.&lt;br /&gt;
&lt;br /&gt;
The recommended tools and methods to mount the file system of a Maemo device to a host PC are listed in table 6.1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|+ '''Table 6.1:''' Recommended mount tools for PC&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; |&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | Linux&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | Windows&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | Mac OS&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | SSHFS&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | X&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; |&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | X&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | NFS&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | X&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; |&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | X&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | SAMBA&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | X&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | X&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | X&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The recommended tools and methods to mount the file system of a host PC to a Maemo device are listed in table 6.2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|+ '''Table 6.2:''' Recommended mount tools for Maemo device&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; |&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | Linux&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | Windows&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | Mac OS&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | SSHFS&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | X&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; |&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | X&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | NFS&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | X&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; |&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | SAMBA&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | X&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | X&lt;br /&gt;
| align=&amp;quot;CENTER&amp;quot; | X&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On the host PC, you must type the commands below in the terminal on Linux and Mac OS X and in the Cygwin command shell on Windows.&lt;br /&gt;
&lt;br /&gt;
== Using SSHFS mounts ==&lt;br /&gt;
&lt;br /&gt;
SSHFS (SSH File System) is a file system client based on the SSH protocol. It allows users to mount locally a remote file system via SSH. With SSHFS, you can remotely access the Maemo device file system from the host PC and vice versa.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  SSHFS mounts do not work on Windows host PC.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If you want to mount the Maemo device file system to your host PC, you can execute the following commands.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir ~/maemo&lt;br /&gt;
 $ sshfs user@192.168.2.15:/ ~/maemo -o rw,nonempty&lt;br /&gt;
 user@192.168.2.15's password: &amp;amp;lt;type user password here&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you did not set the SSH password for &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;user&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; yet, you can use the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;root&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; account. You should set up the password for the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;user&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; account by following these steps:&lt;br /&gt;
&lt;br /&gt;
 $ ssh root@192.168.2.15&lt;br /&gt;
 root@192.168.2.15's password: &amp;amp;lt;type root password here&amp;amp;gt;&lt;br /&gt;
 Nokia-810:~# passwd user&lt;br /&gt;
 Changing password for user&lt;br /&gt;
 Enter the new password (minimum of 5, maximum of 8 characters)&lt;br /&gt;
 Please use a combination of upper and lower case letters and numbers.&lt;br /&gt;
 New password: &amp;amp;lt;type new user password here&amp;amp;gt;&lt;br /&gt;
 Re-enter new password: &amp;amp;lt;retype user password&amp;amp;gt;&lt;br /&gt;
 Password changed&lt;br /&gt;
&lt;br /&gt;
If you want to mount the host PC file system to your Maemo device, you can execute the following commands:&lt;br /&gt;
&lt;br /&gt;
 $ mkdir ~/hostpc&lt;br /&gt;
 $ sshfs &amp;amp;lt;host_pc_user&amp;amp;gt;@&amp;amp;lt;host_pc_ip&amp;amp;gt;:/ ~/hostpc -o rw,nonempty&lt;br /&gt;
 &amp;amp;lt;host_pc_user&amp;amp;gt;@&amp;amp;lt;host_pc_ip&amp;amp;gt;'s password: &amp;amp;lt;type user password here&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
As SSHFS is a user mode file system, you cannot use the standard Linux &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;mount&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; command directly. For example, you should execute the following command to unmount the Maemo device file system from the host PC.&lt;br /&gt;
&lt;br /&gt;
 $ fusermount -u ~/maemo&lt;br /&gt;
&lt;br /&gt;
You can configure SSH to use keys and not to ask for a password every time by exchanging the SSH keys as described in the SSH installation chapter.&lt;br /&gt;
&lt;br /&gt;
== Using NFS mounts ==&lt;br /&gt;
&lt;br /&gt;
With NFS (Network File System), you can share folders from your Maemo device or host PC over a network. Below are instructions on how to share a folder from a Maemo device using NFS.&lt;br /&gt;
&lt;br /&gt;
=== Configuring NFS for Maemo device ===&lt;br /&gt;
&lt;br /&gt;
You should follow these steps to share a folder from your Maemo device through NFS using Maemo PC Connectivity configuration widget:&lt;br /&gt;
&lt;br /&gt;
* Run '''Settings - Control Panel - Connectivity - PC Connectivity Manager'''.&lt;br /&gt;
* Click on the '''Advanced''' button.&lt;br /&gt;
* Go to the '''Tool Manager''' tab.&lt;br /&gt;
* Select the '''NFS''' option. After that, change the options according to your needs, figure [[#fig:pc_connectivity_mpc_maemo_nm_nfs|6.1]].&lt;br /&gt;
* Click on the '''Exported Paths''' button. Then add the folders to be shared, figure [[#fig:pc_connectivity_mpc_maemo_nm_nfs_folders|6.2]].&lt;br /&gt;
* Click on the '''Allowed IPs''' button. Then add the host PC's IP addresses that are allowed to access the shared folders, figure [[#fig:pc_connectivity_mpc_maemo_nm_nfs_ips|6.3]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;PC Connectivity Manager - NFS option&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.1:''' PC Connectivity Manager - NFS option&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_nm_nfs.png|Image mpc_maemo_nm_nfs]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;PC Connectivity Manager - Shared folders list&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.2:''' PC Connectivity Manager - Shared folders list&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_nm_nfs_folders.png|Image mpc_maemo_nm_nfs_folders]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;PC Connectivity Manager - Allowed IPs list&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.3:''' PC Connectivity Manager - Allowed IPs list&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_nm_nfs_ips.png|Image mpc_maemo_nm_nfs_ips]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want, you can share a folder from your Maemo device manually. The following steps describe how to share the folder (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/home/user/MyDocs&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;) from a Maemo device over a network by giving access to the host PC IP address (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;192.168.2.14&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Connect to the Maemo device via &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;SSH&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;. Edit the file &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/exports&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; and add the folder you want to share and set the permissions of your shares (IP addresses).&lt;br /&gt;
&lt;br /&gt;
 /home/user/MyDocs 192.168.2.14(rw,no_root_squash,async,no_subtree_check)&lt;br /&gt;
&lt;br /&gt;
Next restart the User Mode NFS server:&lt;br /&gt;
&lt;br /&gt;
 $ /etc/init.d/unfs3 restart&lt;br /&gt;
&lt;br /&gt;
=== Configuring NFS for host PC ===&lt;br /&gt;
&lt;br /&gt;
You must follows these steps to share a folder from a host PC over a network and giving access to it for Maemo device's IP address (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;192.168.2.15&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  NFS mounts do not work on Windows host PC.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Edit the file &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/exports&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; and add the folder you want to share and set the permissions for your shares (IP addresses).&lt;br /&gt;
&lt;br /&gt;
 /home/&amp;amp;lt;host_pc_user&amp;amp;gt; 192.168.2.15(rw,no_root_squash,async,no_subtree_check)&lt;br /&gt;
&lt;br /&gt;
Next restart the User Mode NFS server:&lt;br /&gt;
&lt;br /&gt;
 $ sudo /etc/init.d/unfs3 restart&lt;br /&gt;
&lt;br /&gt;
=== Accessing NFS shares with Maemo device ===&lt;br /&gt;
&lt;br /&gt;
Once you configured NFS on your Maemo device, you can access the shared folders from your host PC over the network. Below are instructions on how to access the shared NFS folders from the Linux host PC.&lt;br /&gt;
&lt;br /&gt;
On the host PC, run the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;showmount&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; command to check if NFS sharing is working.&lt;br /&gt;
&lt;br /&gt;
 $ showmount -e &amp;amp;lt;device_ip&amp;amp;gt;&lt;br /&gt;
 Export list for 192.168.2.15:&lt;br /&gt;
 /home/user/MyDocs 192.168.2.14&lt;br /&gt;
&lt;br /&gt;
Next mount the exported Maemo device folder from the host PC.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir /tmp/MyDocs&lt;br /&gt;
 $ sudo mount -t nfs &amp;amp;lt;device_ip&amp;amp;gt;:/home/user/MyDocs /tmp/MyDocs&lt;br /&gt;
&lt;br /&gt;
You can unmount the same folder with the following command:&lt;br /&gt;
&lt;br /&gt;
 $ sudo umount /tmp/MyDocs&lt;br /&gt;
&lt;br /&gt;
=== Accessing NFS shares with Host PC ===&lt;br /&gt;
&lt;br /&gt;
Once you have configured NFS on your host PC, you can access the shared folders from your Maemo device over a network. Below are instructions on how to access the shared NFS folders from your Maemo device.&lt;br /&gt;
&lt;br /&gt;
On the Maemo device mount the shared host PC folder.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir ~/hostpc&lt;br /&gt;
 $ mount -t nfs &amp;amp;lt;host_pc_ip&amp;amp;gt;:/home/&amp;amp;lt;host_pc_user&amp;amp;gt; ~/hostpc&lt;br /&gt;
&lt;br /&gt;
You can unmount the same folder with the following command:&lt;br /&gt;
&lt;br /&gt;
 $ sudo umount ~/hostpc&lt;br /&gt;
&lt;br /&gt;
== Using Samba mounts ==&lt;br /&gt;
&lt;br /&gt;
Samba allows file sharing between computers over the network. With Samba, you can remotely access the Maemo device file system from the host PC and vice versa. Once you have shared your file system through Samba, it is available every time you reconnect to the network.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Samba does not work on Maemo Fremantle devices such as N900 but works fine with Maemo Diablo devices such as N800 and N810.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Configuring Samba for Maemo device ===&lt;br /&gt;
&lt;br /&gt;
To be able to share a folder from your Maemo device, you should follow these steps.&lt;br /&gt;
&lt;br /&gt;
* Run '''Settings - Control Panel - Connectivity - PC Connectivity Manager'''.&lt;br /&gt;
* Click on the '''Advanced''' button.&lt;br /&gt;
* Go to the '''Tool Manager''' tab.&lt;br /&gt;
* Select the '''Samba''' option. After that, change the options according to your needs (Workgroup, User and Password), figure [[#fig:pc_connectivity_mpc_maemo_nm_samba|6.4]].&lt;br /&gt;
* Click on the '''Exported Paths''' button. Then add the folders to be shared, figure [[#fig:pc_connectivity_mpc_maemo_nm_samba_paths|6.5]].&lt;br /&gt;
* Click on the '''Apply''' button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;PC Connectivity Manager - Samba options&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.4:''' PC Connectivity Manager - Samba options&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_nm_samba.png|Image mpc_maemo_nm_samba]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;PC Connectivity Manager - Samba shared folders&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.5:''' PC Connectivity Manager - Samba shared folders&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_nm_samba_paths.png|Image mpc_maemo_nm_samba_paths]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can access your host PC shared folders from your Maemo device.&lt;br /&gt;
&lt;br /&gt;
* Open the '''Utilities - File Manager''' application.&lt;br /&gt;
* Click on the '''Shared folders''' option, figure [[#fig:pc_connectivity_mpc_maemo_nm_samba_access|6.6]].&lt;br /&gt;
* Select the desired shared folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;PC Connectivity Manager - Shared folders dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.6:''' PC Connectivity Manager - Shared folders dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_nm_samba_access.png|Image mpc_maemo_nm_samba_access]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuring Samba for Linux ===&lt;br /&gt;
&lt;br /&gt;
To be able to share a folder from your Linux host PC, you should follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the File Manager ('''Nautilus''').&lt;br /&gt;
* Right click the folder you want to share, and select '''Sharing options'''.&lt;br /&gt;
* Type the '''Share name''' and check the '''Guest access''' option, figure [[#fig:pc_connectivity_mpc_linux_ubuntu_samba_share|6.7]].&lt;br /&gt;
* Click on the '''Create share''' button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Linux folder sharing&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.7:''' Linux folder sharing&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_linux_ubuntu_samba_share.png|Image mpc_linux_ubuntu_samba_share]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Samba&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; is not installed, Ubuntu requests the installation at this point. Otherwise, you can install &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Samba&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; manually.&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install samba&lt;br /&gt;
&lt;br /&gt;
To access a shared folder from the Maemo device using your Windows host PC.&lt;br /&gt;
&lt;br /&gt;
* Open the File Manager (Nautilus) and type: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;smb://&amp;amp;lt;maemo_device_ip&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, figure [[#fig:pc_connectivity_mpc_linux_ubuntu_samba_access|6.8]].&lt;br /&gt;
* Press '''Enter'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Accessing shared folder with Final Manager&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.8:''' Accessing shared folder with Final Manager&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_linux_ubuntu_samba_access.png|Image mpc_linux_ubuntu_samba_access]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuring Samba for Windows ===&lt;br /&gt;
&lt;br /&gt;
To be able to share a folder from your Windows host PC, you should follow these steps.&lt;br /&gt;
&lt;br /&gt;
* Open the File Manager ('''Windows Explorer''').&lt;br /&gt;
* Right click the appropriate folder, and then click Sharing.&lt;br /&gt;
* In the folder's properties, click '''Share this folder'''. Use the default name for the share.&lt;br /&gt;
* Click the '''Permissions''' button to change permissions according to your needs.&lt;br /&gt;
&lt;br /&gt;
To access a folder shared from your Maemo device, you need to do the following on your Windows host PC:&lt;br /&gt;
&lt;br /&gt;
* Click '''Start''', and then click '''Run'''.&lt;br /&gt;
* Type your Maemo device IP address as follows: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;&amp;amp;lt;maemo_device_ip&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
* The shared folders of your Maemo device are shown.&lt;br /&gt;
&lt;br /&gt;
=== Configuring Samba for Mac OS X ===&lt;br /&gt;
&lt;br /&gt;
To be able to share a folder from your Mac OS X host PC, you should follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Go to '''System Preferences''' and click on the '''Sharing''' icon.&lt;br /&gt;
* Select the '''File Sharing''' service.&lt;br /&gt;
* Add a folder you want to share, and then set the permissions for it, figure [[#fig:pc_connectivity_mpc_mac_samba_share|6.9]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Mac OS X Sharing dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.9:''' Mac OS X Sharing dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_mac_samba_share.png|Image mpc_mac_samba_share]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To access a folder shared from a Maemo device you need to do following on your Mac OS X host PC.&lt;br /&gt;
&lt;br /&gt;
* Go to the File Manager application ('''Finder''').&lt;br /&gt;
* With the '''Finder''' open, click on the '''Go''' menu and select the '''Connect to Server''' option.&lt;br /&gt;
* Type your Maemo device IP address as follows: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;smb://&amp;amp;lt;maemo_device_ip&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, figure [[#fig:pc_connectivity_mpc_mac_samba_access|6.10]].&lt;br /&gt;
* Click on the '''Connect''' button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Mac OS X connect to server dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.10:''' Mac OS X connect to server dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_mac_samba_access.png|Image mpc_mac_samba_access]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= File transfer =&lt;br /&gt;
&lt;br /&gt;
You have several different ways to transfer files between a Maemo device and a host PC using tools provided by Maemo PC Connectivity. First, you have to install Maemo PC Connectivity to the Maemo device and Host PC Connectivity to the host PC (Linux, Windows and Mac OS X). Below describes how to use specific file transfer tools available from the Maemo PC Connectivity product. To simplify the process, it has been assumed that you already have a working USB network configured between the Maemo device and host PC.&lt;br /&gt;
&lt;br /&gt;
On the host PC, you must type the commands below using terminal on Linux and Mac OS and using Cygwin command shell on Windows.&lt;br /&gt;
&lt;br /&gt;
== Using SCP ==&lt;br /&gt;
&lt;br /&gt;
With SCP (Secure Copy), you can securely transfer files between a local and a remote host or between two remote hosts, using the SSH protocol. Below describes in detail how to transfer files between the Maemo device and host PC using SCP.&lt;br /&gt;
&lt;br /&gt;
You should follow the SCP command examples below to transfer files from a local to a remote host:&lt;br /&gt;
&lt;br /&gt;
 $ scp &amp;amp;lt;source_file&amp;amp;gt; &amp;amp;lt;user&amp;amp;gt;@&amp;amp;lt;host_name&amp;amp;gt;:&amp;amp;lt;path&amp;amp;gt;/&amp;amp;lt;target_file&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if you want to transfer a file called &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;file.txt&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; from a host PC to a Maemo device, you should use this command on the host PC:&lt;br /&gt;
&lt;br /&gt;
 $ scp file.txt root@192.168.2.15:/etc/file.txt&lt;br /&gt;
&lt;br /&gt;
You should follow this SCP command example to transfer files from a remote to a local host:&lt;br /&gt;
&lt;br /&gt;
 $ scp &amp;amp;lt;user&amp;amp;gt;@&amp;amp;lt;host_name&amp;amp;gt;:&amp;amp;lt;path&amp;amp;gt;/&amp;amp;lt;source_file&amp;amp;gt; &amp;amp;lt;target_file&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if you want to transfer a file called &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;file.txt&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; from a Maemo device to a host PC, you should use this command on host PC:&lt;br /&gt;
&lt;br /&gt;
 $ scp root@192.168.2.15:/etc/file.txt file.txt&lt;br /&gt;
&lt;br /&gt;
You can use &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;ssh-key-exchange&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; as described in the SSH installation chapter to avoid SSH requiring a password every time.&lt;br /&gt;
&lt;br /&gt;
== Using SFTP ==&lt;br /&gt;
&lt;br /&gt;
After Maemo PC Connectivity has been installed to the Maemo device, your Maemo device folders can be accessed from a host PC using the SFTP client. If you also installed Host PC Connectivity your host PC already has a GUI-based SFTP client, FileZilla, installed. Therefore to access your Maemo device folders from the host PC through SFTP, simply follow these steps.&lt;br /&gt;
&lt;br /&gt;
Run the FileZilla client, figure [[#fig:pc_connectivity_mpc_sftp|6.11]].&lt;br /&gt;
&lt;br /&gt;
* Linux - Ubuntu: '''Applications - Internet - FileZilla FTP Client'''.&lt;br /&gt;
* Windows: '''Start - Programs - FileZilla FTP Client - FileZilla'''.&lt;br /&gt;
* Mac OS: '''/Applications/FileZilla'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;FileZilla FTP Client&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.11:''' FileZilla FTP Client&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_sftp.png|Image mpc_sftp]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Type the IP address of your Maemo device in the '''Host''' field.&lt;br /&gt;
* Type your '''Username''' and '''Password''' to set up the SSH connection on your Maemo device and type 22 (for SSH) in the '''Port''' field.&lt;br /&gt;
* Click on the '''Quickconnect''' button. Your Maemo device folders will appear in the '''Remote Site''' area.&lt;br /&gt;
&lt;br /&gt;
== Using Rsync ==&lt;br /&gt;
&lt;br /&gt;
As Maemo PC Connectivity and Host PC Connectivity products installs Rsync for your environment, you can incrementally transfer files and directories between a Maemo device and a host PC. You can send and receive files in such a way that only the changed bytes inside files are copied between the Maemo device and the host PC. Rsync also removes files from target folders if those files were deleted from the source folders in order to keep both folders in sync. You can find usage examples and documentation about Rsync from the [http://rsync.samba.org/ Rsync web page].&lt;br /&gt;
&lt;br /&gt;
Rsync is a much more powerful tool than standard SCP, SFTP or disk mounts to back up or synchronise large files (such as music, pictures, maps and movies) between a Maemo device and a host PC.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Rsync protocol is also used by several backup and file synchronisation services available from the Internet.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/Remote_Access</id>
		<title>Documentation/Maemo PC Connectivity Tutorial/Remote Access</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/Remote_Access"/>
				<updated>2010-04-09T09:05:00Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Remote Access =&lt;br /&gt;
&lt;br /&gt;
= Remote desktop =&lt;br /&gt;
&lt;br /&gt;
Maemo PC Connectivity provides tools to access the desktop of a remote machine from a local machine over the network. That is, you can have the desktop GUI of your Maemo device displayed on your host PC and vice-versa. For that, you need to install Maemo PC Connectivity on the Maemo device and Host PC Connectivity on the host PC (Linux, Windows and Mac OS X). This chapter describes how to use these remote desktop tools. For simplicity, it is assumed that you already have a USB network working between the Maemo device and the host PC.&lt;br /&gt;
&lt;br /&gt;
== Using X11VNC ==&lt;br /&gt;
&lt;br /&gt;
With the X11VNC server, it is possible to share the GUI (Graphical User Interface) of your Maemo device with your host PC. That is, you can access the desktop of your Maemo device remotely from the host PC as you are physically using it. Below is described how to configure your Maemo device and host PC for X11VNC access.&lt;br /&gt;
&lt;br /&gt;
=== Configuring X11VNC for Maemo ===&lt;br /&gt;
&lt;br /&gt;
If you installed Maemo PC Connectivity, your Maemo device already has a X11VNC server installed.&lt;br /&gt;
&lt;br /&gt;
You can configure the X11VNC server through the PC Connectivity Manager applet, as described below.&lt;br /&gt;
&lt;br /&gt;
* Run '''Settings - Control Panel - Connectivity - PC Connectivity Manager'''.&lt;br /&gt;
* Click on the '''Advanced''' button.&lt;br /&gt;
* Select the '''Tool Manager''' tab.&lt;br /&gt;
* Now you can enable and disable the X11VNC server, change the UDP port and set the loop mode, figure [[#fig:pc_connectivity_mpc_maemo_nm_x11vnc|5.3]].&lt;br /&gt;
* Click on the '''Apply''' button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;PC Connectivity Manager - X11VNC tool&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 5.3:''' PC Connectivity Manager - X11VNC tool&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_nm_x11vnc.png|Image mpc_maemo_nm_x11vnc]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As the X11VNC server is not launched automatically when you turn the Maemo device on, you need to start it manually. You can use the PC Connectivity Manager wizard or start X11VNC as any third-party application from the installed application list.&lt;br /&gt;
&lt;br /&gt;
=== Configuring X11VNC for Linux ===&lt;br /&gt;
&lt;br /&gt;
If you installed Host PC Connectivity, your Linux host PC already has a VNC client called TightVNC Viewer. Otherwise, you should install the VNC client manually from [http://www.tightvnc.com/download.php TightVNC download] page.&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install xtightvncviewer&lt;br /&gt;
&lt;br /&gt;
You can access your Maemo device through the TightVNC Viewer application by giving the Maemo device IP address.&lt;br /&gt;
&lt;br /&gt;
 $ xtightvncviewer 192.168.2.15&lt;br /&gt;
&lt;br /&gt;
=== Configuring X11VNC for Windows ===&lt;br /&gt;
&lt;br /&gt;
If you installed Host PC Connectivity, your Windows host PC already has a VNC client called TightVNC Viewer. Otherwise, you can download and install TightVNC manually from [http://www.tightvnc.com/download.php TightVNC download] page.&lt;br /&gt;
&lt;br /&gt;
You can access your Maemo device through the TightVNC Viewer application by giving the Maemo device IP address.&lt;br /&gt;
&lt;br /&gt;
* Run '''Start - Programs - TightVNC - TigthtVNC Viewer''', figure [[#fig:pc_connectivity_mpc_win_vnc_ip|5.4]].&lt;br /&gt;
* Type the IP address of your Maemo device and press the '''Connect''' button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;TightVNC connection dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 5.4:''' TightVNC connection dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_win_vnc_ip.png|Image mpc_win_vnc_ip]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you should see the desktop of your Maemo device on the host PC screen, figure [[#fig:pc_connectivity_mpc_win_vnc_desktop|5.5]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;TightVNC remote desktop on Windows&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 5.5:''' TightVNC remote desktop on Windows&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_win_vnc_desktop.png|Image mpc_win_vnc_desktop]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuring X11VNC for Mac OS X ===&lt;br /&gt;
&lt;br /&gt;
If you installed Host PC Connectivity, your Windows host PC already has a VNC client called TightVNC Viewer. Otherwise, you can download and install TightVNC Java version manually from [http://www.tightvnc.com/download.php TightVNC download] page.&lt;br /&gt;
&lt;br /&gt;
* Download the TightVNC Java version.&lt;br /&gt;
* Create a new folder and uncompress the zip file.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir ~/tightvnc&lt;br /&gt;
 $ mv tightvnc-1.3.10_javabin.tar.gz ~/tightvnc&lt;br /&gt;
 $ cd ~/tightvnc&lt;br /&gt;
 $ tar -zxvf tightvnc-1.3.10_javabin.tar.gz&lt;br /&gt;
&lt;br /&gt;
You can access your Maemo device through the TightVNC Viewer application by giving the Maemo device IP address.&lt;br /&gt;
&lt;br /&gt;
 $ java VncViewer HOST 192.168.2.15 PORT 5900&lt;br /&gt;
&lt;br /&gt;
Now, you should see the desktop of your Maemo device on the host PC screen, figure [[#fig:pc_connectivity_mpc_mac_vnc_desktop|5.6]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;TightVNC remote desktop on Mac OS X&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 5.6:''' TightVNC remote desktop on Mac OS X&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_mac_vnc_desktop.png|Image mpc_mac_vnc_desktop]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting X11VNC ===&lt;br /&gt;
&lt;br /&gt;
The current X11VNC server (0.9.3-maemo4) available for Maemo Diablo devices may crash if a key is pressed on the host PC keyboard and there is no mapping for that key on the Maemo device. A workaround is to manually add missing key mappings as described below.&lt;br /&gt;
&lt;br /&gt;
You should install the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;xev&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; application to the host PC to trace the key codes, which crash the Maemo device.&lt;br /&gt;
&lt;br /&gt;
Here is how to install &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;xev&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; to the Linux host PC.&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install x11-utils&lt;br /&gt;
&lt;br /&gt;
Execute the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;xev&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; application on the host PC.&lt;br /&gt;
&lt;br /&gt;
 $ xev&lt;br /&gt;
&lt;br /&gt;
Type the key on the host PC that crashes the Maemo device. You get something like this on &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;xev&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; output.&lt;br /&gt;
&lt;br /&gt;
 KeyPress event, serial 31, synthetic NO, window 0x2000001,&lt;br /&gt;
 root 0x3f, subw 0x0, time 2488134890, (-257,171), root:(294,445),&lt;br /&gt;
 state 0x10, keycode 48 (keysym 0xfe51, dead_acute), same_screen YES,&lt;br /&gt;
 XLookupString gives 2 bytes: (c2 b4) &amp;quot;'&amp;quot;&lt;br /&gt;
 XmbLookupString gives 0 bytes:&lt;br /&gt;
 XFilterEvent returns: True&lt;br /&gt;
&lt;br /&gt;
Get the key code name. In this example, it is &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;dead_acute&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;. On the Maemo Diablo device, map this key to '''None''' in the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/usr/share/applications/hildon/x11vnc.desktop&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; file. Add the key mapping for '''dead_acute-None''' as described below.&lt;br /&gt;
&lt;br /&gt;
 Exec=/usr/bin/x11vnc -display :0 -nowf -noxdamage -noscr -remap dead_acute-None,&amp;amp;lt;key_name_1&amp;amp;gt;-None,&amp;amp;lt;key_name_N&amp;amp;gt;-None&lt;br /&gt;
&lt;br /&gt;
On your Maemo Diablo device, restart X11VNC server and check if the problem got fixed.&lt;br /&gt;
&lt;br /&gt;
== Using Rdesktop ==&lt;br /&gt;
&lt;br /&gt;
Rdesktop is a client to access remotely your Windows host PC from your Maemo device. Below are instructions on how to enable Rdesktop access for your Windows host PC and how to use the Rdesktop client on your Maemo device to access the desktop of your Windows host PC.&lt;br /&gt;
&lt;br /&gt;
=== Configuring Rdesktop for Windows ===&lt;br /&gt;
&lt;br /&gt;
You must enable the '''Remote Desktop''' feature on your Windows host PC so that you can control it remotely from your Maemo device. For that, you must be logged on as an administrator or as a member of the Administrators group for your Windows PC to enable the Remote Desktop feature.&lt;br /&gt;
&lt;br /&gt;
To set up your Windows host PC for Rdesktop access:&lt;br /&gt;
&lt;br /&gt;
* Click '''Start''', point to '''Settings''', click '''Control Panel''', and then double-click the '''System''' icon.&lt;br /&gt;
* On the '''Remote''' tab, select the '''Allow users to connect remotely to this computer''' check-box, figure [[#fig:pc_connectivity_mpc_win_rdesktop|5.7]].&lt;br /&gt;
* Ensure that you have the proper permissions to connect to your host PC remotely. For that, click the '''Select Remote Users...''' button to give access to your user account.&lt;br /&gt;
* Click the '''OK''' button.&lt;br /&gt;
* Leave your host PC running and connected to the network with Internet access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Windows Remote Access configuration&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 5.7:''' Windows Remote Access configuration&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_win_rdesktop.png|Image mpc_win_rdesktop]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you are running Windows XP Service Pack 2 and you enable Remote Desktop, Windows Firewall is automatically configured to allow Remote Desktop connections to your host PC. However, Remote Desktop does not work if you have Windows Firewall configured to allow no exceptions. To allow exceptions in Windows Firewall, open '''Security Center''' from the '''Control Panel''', click '''Windows Firewall''' and clear the check-box next to '''Don't allow exceptions'''.&lt;br /&gt;
&lt;br /&gt;
=== Configuring Rdesktop for Maemo device ===&lt;br /&gt;
&lt;br /&gt;
If you installed Maemo PC Connectivity, your Maemo device already has a Rdesktop client installed.&lt;br /&gt;
&lt;br /&gt;
Open '''Utilities - X Terminal''' and execute Rdesktop application.&lt;br /&gt;
&lt;br /&gt;
 $ rdesktop-cli -u &amp;amp;lt;windows_user&amp;amp;gt; -p &amp;amp;lt;windows_password&amp;amp;gt; &amp;amp;lt;windows_ip_address&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
You must pass your user name and password to access the given Windows host PC.&lt;br /&gt;
&lt;br /&gt;
Now, you should see the desktop of your Windows host PC on your Maemo device screen.&lt;br /&gt;
&lt;br /&gt;
== Using X Tunneling ==&lt;br /&gt;
&lt;br /&gt;
With X Tunneling, it is possible to execute an application on your Maemo device and display its GUI on your host PC screen and vice versa using an SSH connection. Below are instructions on how to configure X11 tunneling between the Maemo device and Linux and Max OS X host PC.&lt;br /&gt;
&lt;br /&gt;
You should follow these steps to display the GUI of your Maemo device on your host PC. These instructions work with Linux and Mac OS X host PCs.&lt;br /&gt;
&lt;br /&gt;
On Linux and Mac OS X host PCs:&lt;br /&gt;
&lt;br /&gt;
 $ Xephyr :3 -ac -dpi 96 -screen 800x480x16 -host-cursor &amp;amp;amp;&lt;br /&gt;
 $ ssh -l &amp;amp;lt;maemo_device_user&amp;amp;gt; -R 6002:&amp;amp;lt;host_pc_ip&amp;amp;gt;:6003 &amp;amp;lt;maemo_device_ip&amp;amp;gt;&lt;br /&gt;
 $ export DISPLAY=:2&lt;br /&gt;
 $ /usr/lib/sapwood/sapwood-server &amp;amp;amp;&lt;br /&gt;
 $ &amp;amp;lt;run_application&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should follow these steps to display the GUI of your Linux host PC on your Maemo device. These instructions work only with Linux host PCs.&lt;br /&gt;
&lt;br /&gt;
On a Maemo device:&lt;br /&gt;
&lt;br /&gt;
 $ ssh -l &amp;amp;lt;host_pc_user&amp;amp;gt; -R 6000:&amp;amp;lt;maemo_device_ip&amp;amp;gt;:6000 -X &amp;amp;lt;host_pc_ip&amp;amp;gt;&lt;br /&gt;
 $ &amp;amp;lt;run_application&amp;amp;gt;&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/Introduction</id>
		<title>Documentation/Maemo PC Connectivity Tutorial/Introduction</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/Introduction"/>
				<updated>2010-04-09T09:05:00Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Maemo PC Connectivity project aims to make easier communication between a Maemo device and a host PC. For this, it provides a set of tools to simplify tasks like connection establishment, connection sharing, remote access, file sharing and transfer.&lt;br /&gt;
&lt;br /&gt;
Maemo PC Connectivity fully supports the Maemo Fremantle platform and devices (such as N900) and the Maemo Diablo platform and devices (such as N800 and N810).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Maemo device - N900&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 1.1:''' Maemo device - N900&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Nokia_N900_48.png|Image Nokia_N900_48]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maemo PC Connectivity target users are Maemo developers as they must use it to set up their Maemo development environment. The Maemo development environment consists of a Maemo device and host PC running Scratchbox and Maemo SDK (and possibly Eclipse IDE) integrated together with services provided by Maemo PC Connectivity. Maemo PC Connectivity is targeted also for those non-developers who are able to use provided tools and services from command line interfaces, as all services available do not yet have a simple enough Graphical User Interface for end users.&lt;br /&gt;
&lt;br /&gt;
Maemo PC Connectivity supports USB Networking, Bluetooth and WLAN connectitivy types between a Maemo device and a remote machine. USB Networking is recommended as, performance wise, it provides the best connectivity for networking. All services that Maemo PC Connectivity provides can be used with all connectivity types assuming that the host PC accessing services has the required clients available.&lt;br /&gt;
&lt;br /&gt;
Some basic services provided by Maemo PC Connectivity and Host PC Connectivity to integrate a Maemo device and host PC include:&lt;br /&gt;
&lt;br /&gt;
; '''Connection establishment'''&lt;br /&gt;
: By using Maemo PC Connectivity configuration applets, it is possible to easily establish a connection over USB, Bluetooth or WLAN, and to configure services between a Maemo device and a host PC.&lt;br /&gt;
; '''Connection sharing'''&lt;br /&gt;
: By using Maemo PC Connectivity applets and services installed to the Maemo device, it is possible to easily share connection over USB, Bluetooth or WLAN both ways, that is from a Maemo device to a host PC or from a host PC to a Maemo device.&lt;br /&gt;
; '''Secure Shell'''&lt;br /&gt;
: SSH allows data to be exchanged using a secure channel between two networked devices.&lt;br /&gt;
; '''Scratchbox Remote Shell'''&lt;br /&gt;
: SBRSH is a remote command execution system similar to rsh and ssh. It is designed with slow devices and Scratchbox's special requirements in mind.&lt;br /&gt;
; '''SSH File System'''&lt;br /&gt;
: SSHFS is a file system client based on the SSHprotocol. It allows local mounting of a remote file system via SSH.&lt;br /&gt;
; '''Network File System'''&lt;br /&gt;
: NFS allows file system sharing over a network.&lt;br /&gt;
; '''Samba'''&lt;br /&gt;
: provides shared access to files, printers, serial ports, and miscellaneous communications between nodes on a network. Most usage of Samba involves host PCs running Microsoft Windows.&lt;br /&gt;
; '''Virtual Network Computing'''&lt;br /&gt;
: VNC is a graphical desktop sharing system that allows a host PC to remotely control a Maemo device.&lt;br /&gt;
; '''Rdesktop'''&lt;br /&gt;
: is a client for remotely accessing Windows desktops from a Maemo device.&lt;br /&gt;
; '''X Tunneling over SSH'''&lt;br /&gt;
: allows the forwarding of X11 desktop from a Maemo device to a host PC.&lt;br /&gt;
; '''SSH File Transfer Protocol'''&lt;br /&gt;
: SFTP is a network protocol that provides a secure file transfer over a network using SSH.&lt;br /&gt;
; '''Secure Copy'''&lt;br /&gt;
: SCP is another way to transfer files between a local and a remote host using SSH.&lt;br /&gt;
; '''Rsync'''&lt;br /&gt;
: is a utility that provides fast incremental file transfer, that is, it transfers only the bytes inside files that have been changed since the previous transfer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/Network_Sharing</id>
		<title>Documentation/Maemo PC Connectivity Tutorial/Network Sharing</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/Network_Sharing"/>
				<updated>2010-04-09T09:04:59Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Network Sharing =&lt;br /&gt;
&lt;br /&gt;
With Maemo PC Connectivity, you can easily set up an Internet connection and share it from a Maemo device to a host PC or from a host PC to a Maemo device. For sharing a connection from a Maemo device to a host PC, you should configure from which interface (WLAN, USB or Bluetooth) the Maemo device accesses the Internet and share it with other interfaces (WLAN, USB and/or Bluetooth).&lt;br /&gt;
&lt;br /&gt;
= Sharing network from Maemo device =&lt;br /&gt;
&lt;br /&gt;
To share a network connection from a Maemo device to a host PC you need perform these steps on the Maemo device:&lt;br /&gt;
&lt;br /&gt;
* Run '''Settings - Control Panel - Connectivity - PC Connectivity Manager'''.&lt;br /&gt;
* Click on the '''Advanced''' button.&lt;br /&gt;
* Select the '''Internet''' connection type, figure [[#fig:pc_connectivity_network_sharing_mpc_maemo_nm_internet_sharing|4.1]].&lt;br /&gt;
* With the '''Connect Using''' option, you can choose from which interface (WLAN, WLAN adhoc, USB or Bluetooth) the Maemo device accesses the network.&lt;br /&gt;
* With the '''Share internet connection with''' option, you can choose the interfaces (WLAN, USB and/or Bluetooth) with which to share the Internet.&lt;br /&gt;
* Click on the '''Apply''' button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;PC Connectivity Manager - Internet Sharing&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 4.1:''' PC Connectivity Manager - Internet Sharing&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_maemo_nm_internet_sharing.png|Image mpc_maemo_nm_internet_sharing]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Sharing network from Linux =&lt;br /&gt;
&lt;br /&gt;
After you have installed the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;host-pc-connectivity&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; package to your Linux host PC, you can automatically share an Internet network connection from your Linux host PC to a Maemo device.&lt;br /&gt;
&lt;br /&gt;
If you want, you can configure sharing from your Linux host PC manually. Suppose you have an Internet connection through an ethernet cable interface, normally &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;eth0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;. You can share this network connection with any other interface (USB, Bluetooth and/or WLAN) by executing the following commands:&lt;br /&gt;
&lt;br /&gt;
 $ iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE&lt;br /&gt;
 $ echo 1 &amp;amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
You can replace &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;eth0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; with any other interface (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;usb0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;bnep0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;wlan0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;) that has a working Internet connection. To disable network sharing, you should execute the following commands:&lt;br /&gt;
&lt;br /&gt;
 $ iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE&lt;br /&gt;
 $ echo 0 &amp;amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
If you want to permanently share the network from your Linux host PC, you should edit the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/network/interfaces&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; file. For example, you can add the following lines to it to share the network every time the USB interface (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;usb0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;) is up.&lt;br /&gt;
&lt;br /&gt;
 mapping hotplug&lt;br /&gt;
 script grep&lt;br /&gt;
 map usb0&lt;br /&gt;
&lt;br /&gt;
 iface usb0 inet dhcp&lt;br /&gt;
 # commands to enable internet sharing&lt;br /&gt;
 up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE&lt;br /&gt;
 up echo 1 &amp;amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
 # commands to disable internet sharing&lt;br /&gt;
 down iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE&lt;br /&gt;
 down echo 0 &amp;amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
= Sharing network from Windows =&lt;br /&gt;
&lt;br /&gt;
To share the Internet network from your Windows host PC, you should follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Open the '''Start - Control Panel - Network and Internet Connections - Network Connections''' dialog.&lt;br /&gt;
* Right click the interface from which you access the Internet.&lt;br /&gt;
* Select the '''Properties''' option.&lt;br /&gt;
* Select the '''Advanced''' tab.&lt;br /&gt;
* Under '''Internet Connection Sharing''', select the '''Allow other network users to connect through this computer's Internet connection''' check-box, figure [[#fig:pc_connectivity_mpc_win_internet_sharing|4.2]].&lt;br /&gt;
* Click on the '''OK''' button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Local Area Connection Properties dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 4.2:''' Local Area Connection Properties dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_win_internet_sharing.png|Image mpc_win_internet_sharing]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Sharing network from Mac OS X =&lt;br /&gt;
&lt;br /&gt;
To share the Internet network from your Mac OS X host PC, you should follow these steps:&lt;br /&gt;
&lt;br /&gt;
* Go to '''System Preferences''' and click on the '''Sharing''' icon, figure [[#fig:pc_connectivity_mpc_mac_internet_sharing_preferences|4.3]].&lt;br /&gt;
* Select the '''Internet Sharing''' service.&lt;br /&gt;
* From '''Share your connection from''', select the interface that has an Internet connection. For example, ''AirPort'', figure [[#fig:pc_connectivity_mpc_mac_internet_sharing_properties|4.4]].&lt;br /&gt;
* From '''To computers using''', check the interfaces you want to share the Internet with. For example, '''Bluetooth PAN'''.&lt;br /&gt;
* Enable the '''Internet Sharing''' check-box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;System Preferences dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 4.3:''' System Preferences dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_mac_internet_sharing_preferences.png|Image mpc_mac_internet_sharing_preferences]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Network Sharing dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 4.4:''' Network Sharing dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:mpc_mac_internet_sharing_properties.png|Image mpc_mac_internet_sharing_properties]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/Bibliography</id>
		<title>Documentation/Maemo PC Connectivity Tutorial/Bibliography</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/Bibliography"/>
				<updated>2010-04-09T09:04:59Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bibliography ==&lt;br /&gt;
&lt;br /&gt;
; 1&lt;br /&gt;
: Cygwin Project. &amp;lt;tt&amp;gt;http://cygwin.org/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
; 2&lt;br /&gt;
: MacPorts Project. &amp;lt;tt&amp;gt;http://www.macports.org/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/Preface</id>
		<title>Documentation/Maemo PC Connectivity Tutorial/Preface</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_PC_Connectivity_Tutorial/Preface"/>
				<updated>2010-04-09T09:04:58Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Preface =&lt;br /&gt;
&lt;br /&gt;
= Legal notice =&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 2008-2010 Nokia Corporation&lt;br /&gt;
&lt;br /&gt;
Nokia and Maemo are trademarks or registered trademarks of Nokia Corporation. Other product and company names mentioned herein may be trademarks or trade names of their respective owners.&lt;br /&gt;
&lt;br /&gt;
= Disclaimer =&lt;br /&gt;
&lt;br /&gt;
The information in this document is provided &amp;quot;as is,&amp;quot; with no warranties whatsoever, including any warranty of merchantability, fitness for any particular purpose, or any warranty otherwise arising out of any proposal, specification, or sample. This document is provided for informational purposes only. Nokia Corporation disclaims all liability, including liability for infringement of any proprietary rights, relating to implementation of information presented in this document. Nokia Corporation does not warrant or represent that such use will not infringe such rights.&lt;br /&gt;
&lt;br /&gt;
Nokia Corporation retains the right to make changes to this material at any time, without notice.&lt;br /&gt;
&lt;br /&gt;
= Licenses =&lt;br /&gt;
&lt;br /&gt;
This document is licensed under the [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License, version 1.2].&lt;br /&gt;
&lt;br /&gt;
Permission is granted to copy, distribute and/or modify documentation under the terms of the GNU Free Documentation License, version 1.2 or any later version published by the Free Software Foundation. Please refer to the copyright notice in each piece of documentation for Invariant Sections, Front-Cover Texts or Back-Cover Texts, if any, as defined in the License.&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_For_Symbian_Developers_Guide/Comparing_Maemo_and_Symbian_OS</id>
		<title>Documentation/Maemo For Symbian Developers Guide/Comparing Maemo and Symbian OS</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_For_Symbian_Developers_Guide/Comparing_Maemo_and_Symbian_OS"/>
				<updated>2010-04-09T09:04:41Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Comparing Maemo and Symbian OS =&lt;br /&gt;
&lt;br /&gt;
The picture below (figure [[#fig:maemo-for-symbian-dev-comparing-symbian-os-and-maemo-architectures|2.1]]) presents a direct comparison between the software components of both operating systems, although the the structure of the Maemo platform and the underlying GNU/Linux operating system differ significantly from Symbian OS. The picture shows the layered architecture of Symbian OS and tries to distribute the Maemo software components in layers according to their correspondent functionalities on the Symbian OS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Comparing Symbian OS and Maemo architectures&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 2.1:''' Comparing Symbian OS and Maemo architectures&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:MaemoSymbianArchitecture.png|Image MaemoSymbianArchitecture]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In some cases Symbian OS subsystems and APIs can be directly mapped to Maemo platform components, but usually the relations are not 1:1. Therefore, this chapter provides just a generalized comparison of the platforms.&lt;br /&gt;
&lt;br /&gt;
The table below (table 2.1) compares the main software components of the Symbian platform with those of the Maemo platform. This table can be used as a quick reference to find the proper software component that should be used in the Maemo platform given the desired component of the Symbian platform. Also, the table shows some components that are specific to Maemo platform, explaining their use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|+ '''Table 2.1:''' Comparison between Maemo and Symbian platforms&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
'''Symbian Component'''&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Maemo Component'''&lt;br /&gt;
! width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;LEFT&amp;quot; | &amp;lt;span&amp;gt;'''''Base Services'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''DBMS'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''SQLite'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
The Maemo platform provides an SQL database, SQLite 3, which can be used to store user application data. The SQLite database is accessed through a library interface whose documentation can be found [http://www.sqlite.org/capi3.html here].&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''File server'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''GnomeVFS'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
The system uses the GnomeVFS, which is an extendable file system abstraction library that applies transparent access to different file systems types. More information can be found [http://library.gnome.org/devel/gnome-vfs-2.0/unstable/ here].&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''ECOM framework'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Core libs'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
There is no direct equivalent component for the ECOM framework on the Maemo platform. The developer may use the dynamic load of modules (GModule) provided by Glib library. It is implemented in C and there is no support for automatic module load. Code must be written by the developer in order to do this. GModule API can be found [http://library.gnome.org/devel/glib/stable/glib-Dynamic-Loading-of-Modules.html here].&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Central repository'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Libosso, GConf '''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
There is no Central Repository for system information in Maemo. To recover system information such as device state and mode, the developer may use &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;libosso&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;. To store application specific settings, the developer can use GConf component. See more [http://projects.gnome.org/gconf/ here].&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''User library'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''GNU C / LibStd C++'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
The user library defines the core idioms for Symbian OS programming. In Maemo development, this is based on standard C/C++ so the matching for the core idioms could be [http://gcc.gnu.org/onlinedocs/libstdc++/ GNU C / LibStd C++].&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Cryptographic library'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''OpenSSL'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
This library includes some non-RSA algorithms, hash functions, and so on, that are easily found in [http://www.openssl.org/ OpenSSL] library.&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Store'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Provides an abstraction for internalizing and externalizing objects to different storage media. There is no equivalent component in Maemo. Glib binding for D-Bus has some primitive functions to do object marshal. However there are plenty of open source projects that provide serialization tools for C++. The developer may use the preferred one.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Video4Linux'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | A Linux kernel integrated video capture API. It supports several types of cameras.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''dpkg'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | dpkg is the software at the base of the debian package management system that is used in Maemo. dpkg is used to install, remove and provide information about .deb packages files that are the software installation unit for Maemo in comparison to the .sisx files of Symbian OS.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;LEFT&amp;quot; | &amp;lt;span&amp;gt;'''''OS Services'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Certificate management'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''OpenSSL'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Certificate management is done by OpenSSL in the Maemo platform. This system library offers similar mechanisms to store and manage certificates, keys, and so on.&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''MMF, Camera'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''MAFW, gStreamer'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | The MAFW was added to the Frematle Maemo version and provides a highly modular infrastructure for consuming and extending Maemo's multimedia functionality. MAFW is an abstraction layer that is largely decoupled from its underlying components. It will be possible to snap in a number of media backends, such as GStreamer and MPlayer. The gStreamer, that was used to handle multimedia in previous versions, has a similar design choice as MMF. It has a minimum core, and functionalities are added through plug-ins. It also makes use of pipeline through sinks and sources for each element to build the wanted operation.&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''ICL'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Cairo, GDK'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | These libraries handle a wide number of image types.&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''OpenGL ES'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''OpenGL ES'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Until Maemo 4.1 (Diablo) Open GL ES was not supported. In Maemo 5 (Fremantle) OpenGL ES 2.0.&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Window Server'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''X'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | X Window System, that provides windowing on bitmap displays and event handling from inputs. Low level, usually not used directly by the developer.&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Font and Bitmap Server'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Pango'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Library for laying out and rendering of text, with an emphasis on internationalization. It forms the core of text and font handling for GTK+.&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Device Backup'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Backup'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Maemo has an application that can backup user data and application configuration on a memory card. At time of writing there is no support for remote device backup on Maemo.&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Remote file management '''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | There is no API for remote file management.&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Remote SW'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | There is no equivalent component for remote software installation in the Maemo platform.&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Telephony server, SMS utilities, WAP stack'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | There is no equivalent component in the Maemo platform.&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''TCP/IP + security'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Core libs'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Low-level operating system APIs (file and network handling, standard C libraries). SSL and TLS are supported through OpenSSL.&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Bluetooth'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''BlueZ'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
Official Bluetooth stack for GNU/Linux. More information can be found [http://www.bluez.org/ here].&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''OBEX'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Obex'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
The Maemo platform makes use of [http://sourceforge.net/projects/openobex Openobex] implementation.&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''CommDB'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | There is no specific shared data base for communication settings in Maemo. Even CommDB use in Symbian OS is being replaced by Central Repository. You can use GConf to store data or even SQLite.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''GUPnP'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
GUPnP is an object-oriented open source framework for creating [http://www.upnp.org/ UPnP] devices and control points, written in C using [http://developer.gnome.org/doc/API/2.0/gobject/index.html GObject] and [http://live.gnome.org/LibSoup libsoup].&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''D-Bus'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | The D-BUS message bus system is used for applications and libraries to deliver messages to each another.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''System SW'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | The System Software subsystem provides system-wide services to applications and users. The services include device state management (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;dsm&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;), mode control (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;mce&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;), battery management (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;bme&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;) and a few graphical user interface elements to manage the behaviour of the services.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Clipboard'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | In Maemo, there are a number of clipboard enhancements to the X clipboard and Gtk+, in order to enable: supporting retaining the clipboard data, when applications owning the clipboard exit; copying and pasting rich text data between Gtk+ text views in different applications; providing a generally more pleasant user experience; making it easy for application developers to gray out '''Paste''' menu items when the clipboard data format is not supported by the application.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Farsight2'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
[http://farsight.freedesktop.org/wiki/FrontPage Farsight2] is an Audio/Video Communications Framework. The main target clients for Farsight are Instant Messaging applications. It uses gStreamer for all its media streaming needs.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''FM transmitter'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
[[Documentation/Maemo 5 Developer Guide/Using Multimedia Components/FM Transmitter API Usage|Maemo API to access FM transmitter]] radio.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;LEFT&amp;quot; | &amp;lt;span&amp;gt;'''''Application Services'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''PIM'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''EDS'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
The [http://www.go-evolution.org/EDS_Architecture Evolution Data Server] provides a single database for common, desktop-wide information, such as a user's address book or calendar events.&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Messaging system'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Telepathy'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | The Telepathy project aims to provide a unified framework for all forms of real time conversations, including instant messaging, IRC, voice calls, and video calls.&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Data synchronization'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''SyncML'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
Maemo supports SyncML. More information [http://syncevolution.org/ here].&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Internet, web and multimedia protocol support (RTP, SIP, HTTP)'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Telepathy, gStreamer, curl HTTP'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
For SIP and a great number of different session protocols, Maemo uses [http://telepathy.freedesktop.org/wiki/ Telepathy]. For RTP you can use [http://gstreamer.freedesktop.org/ GStreamer] and for HTTP you can use [http://curl.haxx.se/ curl HTTP] that supports FTP, TELNET, HTTP, HTTPS, and so on.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''PulseAudio'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
[http://pulseaudio.org/ PulseAudio] is a sound server for POSIX and Win32 systems. A sound server is basically a proxy for your sound applications. It allows you to do advanced operations on your sound data as it passes between your application and your hardware. Things like transferring the audio to a different machine, changing the sample format or channel count and mixing several sounds into one are easily achieved using a sound server. Maemo 5 uses PulseAudio.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''GSF'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
The GNOME Structured File Library ([http://library.gnome.org/devel/gsf/unstable/index.html GSF]) is an I/O abstraction for reading/writing compound files.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Installer'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Application installer includes automatic dependency management. Uses a standard debian package format.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Alarm Framework'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | The Maemo alarm framework provides an easy way to manage timed events in the device. It is powerful, and not restricted only to wake-up alarms. The framework provides also many other features.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Launcher'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Maemo Launcher launches most applications on the Maemo platform. It is there to speed up the application start-up by sharing some of the initialization data of an application start-up. Maemo Launcher is composed of two parts: (I) the Maemo-invoker, which is executed by D-BUS daemon or scripts to start the given (application) service, and (II) Maemo-launcher, a server that has initialized most of the data used by the applications.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Vibra service'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | A new service added in Fremantle. The access can be made through D-BUS.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Device orientation'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | An API that enable developers to respond to changes in orientation and discover current orientation.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; align=&amp;quot;LEFT&amp;quot; | &amp;lt;span&amp;gt;'''''UI Framework'''''&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Uikon, Avkon, CONE'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''GTK+'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | A widget toolkit for the X Window System, for creating GUIs. The used GTK+ has been modified for the Maemo platform, but it is binary compatible with the original.&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''FEP'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Input methods'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | The Maemo platform is intended to be used on embedded devices. It is a quite straightforward request that one might want to have different input methods from the ones available by default, or just simply want a different layout for the virtual keyboard. For this reason, Maemo 4.1 introduced a way to enable writing custom plug-ins for Hildon Input Method.&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Animation'''&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Clutter'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Clutter provides a very clean high-level API for developing sophisticated animations on top of OpenGL ES.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Matchbox'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
[http://matchbox-project.org/ Matchbox] is an Open Source base environment for the X Window System running on non-desktop embedded platforms. Matchbox consists of a number of interchangeable and optional applications that can be tailored to a specific non desktop platform to enhance usability in a ''constrained'' environment.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Tracker'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
Provides tracker (mod, s3m, and so on) music support for built-in music player. More information about the project can be found [https://garage.maemo.org/projects/mgstmodplug/ here].&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Hildon Control Panel'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Hildon Control Panel is a general interface for application configuration and is extended by control panel plug-ins.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Hildon Home Applets'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Hildon Home is the root desktop, which can be customized by Hildon home applets.&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
| width=&amp;quot;100&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Hildon Status bar'''&lt;br /&gt;
| width=&amp;quot;250&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Hildon Status bar provides area for information and quick-access items used mainly to communicate device status changes.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_For_Symbian_Developers_Guide</id>
		<title>Documentation/Maemo For Symbian Developers Guide</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_For_Symbian_Developers_Guide"/>
				<updated>2010-04-09T09:04:41Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Nokia Corporation = MAEMO FOR SYMBIAN DEVELOPERS GUIDE =&amp;lt;div class=&amp;quot;author_info&amp;quot;&amp;gt;'''maemo.org''''''18 February 2010'''&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;margins&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[{{PAGENAME}}/Preface|Preface]]&lt;br /&gt;
* [[{{PAGENAME}}/Glossary|Glossary]]&lt;br /&gt;
* [[{{PAGENAME}}/Introduction|Introduction]]&lt;br /&gt;
* [[{{PAGENAME}}/Comparing Maemo and Symbian OS|Comparing Maemo and Symbian OS]]&lt;br /&gt;
* [[{{PAGENAME}}/Maemo and Symbian OS Concepts|Maemo and Symbian OS Concepts]]&lt;br /&gt;
* [[{{PAGENAME}}/Bibliography|Bibliography]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_For_Symbian_Developers_Guide/Maemo_and_Symbian_OS_Concepts</id>
		<title>Documentation/Maemo For Symbian Developers Guide/Maemo and Symbian OS Concepts</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_For_Symbian_Developers_Guide/Maemo_and_Symbian_OS_Concepts"/>
				<updated>2010-04-09T09:04:40Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Maemo and Symbian OS Concepts =&lt;br /&gt;
&lt;br /&gt;
The Symbian OS is famous for its design, concepts, and coding conventions. The Maemo platform gives the developer more freedom, but it also requires the developer to take more responsibility. The Maemo platform does not enforce any specific design patterns, so the developer is responsible for preventing memory leaks, buffer overflows, and other security problems.&lt;br /&gt;
&lt;br /&gt;
Programming in Maemo is closer to desktop programming than Symbian programming is. This is because it is based on Linux, which was created for desktop environments, whereas Symbian OS was specifically developed for resource constrained systems. For this reason, the Maemo developer has more freedom than the Symbian developer.&lt;br /&gt;
&lt;br /&gt;
The following topics show the main programming differences for both environments.&lt;br /&gt;
&lt;br /&gt;
= Programming languages and libraries =&lt;br /&gt;
&lt;br /&gt;
Symbian developers must obey a lot of coding conventions to write code correctly. In Maemo this is no longer necessary because Maemo uses standard C and C++. Most software developed for the Maemo platform is written in C. This software widely uses Glib utility library that provides the object model adopted for Maemo (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;GObject&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;). However, C++ applications can also be written since there are several C++ bindings available for different libraries in the Maemo platform. Despite these bindings, C library calls should be made in code written for the Maemo platform sooner or later due to the fact that most part of the platform uses standard C and Glib. Due to Open C/C++, the Symbian developer should already be aware of the use of these libraries as well as STL, boost, and others C/C++ libraries.&lt;br /&gt;
&lt;br /&gt;
= Symbian OS essential concepts =&lt;br /&gt;
&lt;br /&gt;
Some differences between Symbian C++ and C++ used in Maemo are listed below. These differences are more about the conventions, concepts, and software design. Some replacements for missing Symbian/C++ specific concepts are also introduced.&lt;br /&gt;
&lt;br /&gt;
== Naming guidelines ==&lt;br /&gt;
&lt;br /&gt;
Symbian OS naming conventions like class names prefix (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;C&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;M&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;R&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;T&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;), function leave indication (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;L&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; suffix) are left behind when programming for Maemo platform. In Maemo, the developer is given more freedom and there are no mandatory prefixes in class names. Although there are no strict rules to be followed, Maemo has some programming guidelines that should be considered. Some examples are given below:&lt;br /&gt;
&lt;br /&gt;
Descriptive, lower-case names should be used for variables and functions. Underscores (_) can be used to indicate word boundaries. Non-static and unnecessary global names should be avoided. If it is absolutely necessary to employ a global variable, type or function, one should use a prefix specific to the library or module where the name is, e.g. &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;gtk_widget_&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Static memory (variables) should be preferred to dynamic memory, when the needed memory size is not large and/or is used regularly in the program. Static memory does not leak, a pointer to static memory is less likely to cause a segmentation fault, and using static memory keeps the memory usage more constant.&lt;br /&gt;
&lt;br /&gt;
Local variables should always be favoured over global variables, i.e. the visibility of a variable should be kept at a minimum. Global variables should not be used to pass values between functions: this can be performed with arguments. Note: Global variables require extra care when programming with threads. Thus, these should be avoided.&lt;br /&gt;
&lt;br /&gt;
== Runtime type information ==&lt;br /&gt;
&lt;br /&gt;
Symbian OS supports runtime type information (RTTI) only from Symbian OS v9 onwards. In Maemo, run time type information was available since the beginning. In both cases, the [http://www.cplusplus.com/doc/tutorial/typecasting/ dynamic_cast] operator is used to retrieve RTTI.&lt;br /&gt;
&lt;br /&gt;
== Exceptions ==&lt;br /&gt;
&lt;br /&gt;
Symbian/C++ developers are familiar with concepts like ''leaving'' and ''trap harness'' because standard [http://www.cplusplus.com/doc/tutorial/exceptions/ C++ exceptions] did not exist when Symbian OS was originally developed. Only from Symbian OS v9 onwards C++ were exception mechanisms supported, although they still should not be mixed with Symbian/C++ code. In Maemo the standard C++ exceptions (try, catch, throw) are available.&lt;br /&gt;
&lt;br /&gt;
== Cleanup stack ==&lt;br /&gt;
&lt;br /&gt;
A Symbian/C++ specific concept that is not available in the Maemo platform. Similar functionality can be achieved by using [http://en.wikipedia.org/wiki/Auto_ptr auto_ptr] class which is also available for Symbian v9 onwards. &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;auto_ptr&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; is a [http://en.wikipedia.org/wiki/Smart_pointer smart pointer] implementation in [http://en.wikipedia.org/wiki/Standard_Template_Library C++ Standard Template Library], and it is a good way to prevent memory leaks in case of exceptions ([http://maemo4mobile.garage.maemo.org/snippet_autoptr.html view example]).&lt;br /&gt;
&lt;br /&gt;
For more information on using the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;auto_ptr&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, see the article [http://www.gotw.ca/publications/using_auto_ptr_effectively.htm Using auto_ptr Effectively].&lt;br /&gt;
&lt;br /&gt;
= Class construction =&lt;br /&gt;
&lt;br /&gt;
The Symbian OS documentation states that if a class has to allocate memory, it should be derived from &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;CBase&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;. In Maemo, there is no such base class. This design causes some differences.&lt;br /&gt;
&lt;br /&gt;
== Class inheritance ==&lt;br /&gt;
&lt;br /&gt;
In Symbian/C++ multiple inheritances are only allowed when combining multiple M-classes and one &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;CBase&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; derived class. This is the same approach adopted by Java that allows multiple interfaces implementations and only one class derivation per class. The reason is that multiple inheritances can become too complicated. Maemo does not impose any limits to the inheritance mechanism, so the developer has more freedom as well as more responsibility.&lt;br /&gt;
&lt;br /&gt;
== Two-phased construction ==&lt;br /&gt;
&lt;br /&gt;
Since the full C++ exception mechanism is used in Maemo (which includes stack unwinding), the two-phased construction of objects is not needed any more. The developer should use smart pointers to store pointers which may leak in case of exceptions. See the brief example from listing below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;class MyInnerClass&lt;br /&gt;
{&lt;br /&gt;
public:&lt;br /&gt;
MyInnerClass(){}&lt;br /&gt;
}&amp;lt;nowiki&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
/* ----------------------------------------------- */&lt;br /&gt;
class MyClass&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;{&lt;br /&gt;
public:&lt;br /&gt;
MyClass();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
auto_ptr&amp;amp;lt;MyInnerClass&amp;amp;gt; m_inner;&lt;br /&gt;
}&amp;lt;nowiki&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
MyClass::MyClass() : m_inner (new MyInnerClass())&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;{&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ----------------------------------------------- */&lt;br /&gt;
void functionFoo()&lt;br /&gt;
{&lt;br /&gt;
auto_ptr&amp;amp;lt;MyClass&amp;amp;gt; myAutoObject(new MyClass());&lt;br /&gt;
/* IF THROW HERE ....*/&lt;br /&gt;
}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the example above, exceptions may be thrown after the instantiation of &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;myAutoObject&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or in the construction of &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;MyInnerClass&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;. In both cases the objects do not leak memory due to the use of &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;auto_ptr&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; class that holds the pointer of the objects and call the destructor in case of leave and end of scope. A good explanation can be found [http://www.parashift.com/c++-faq-lite/exceptions.html#faq-17.4 here].&lt;br /&gt;
&lt;br /&gt;
= Descriptors =&lt;br /&gt;
&lt;br /&gt;
Descriptors class was specifically designed for Symbian OS and does not exist as such in the Maemo platform.&lt;br /&gt;
&lt;br /&gt;
= Strings =&lt;br /&gt;
&lt;br /&gt;
When working with strings, instead of descriptors you can use the C-style NULL-terminated character arrays and methods.&lt;br /&gt;
&lt;br /&gt;
'''Null-terminated character arrays using standard C'''&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/String.h The C-style NULL-terminated character arrays and methods] can be used to store strings only. They are not as safe because they can cause buffer overflow. They can only be used with character set based on ASCII. One advantage is that it is guaranteed to work on any platform which supports C.&lt;br /&gt;
&lt;br /&gt;
'''NULL-terminated character arrays using Glib'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;GLib&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; is extensively used in the Maemo platform, so it is good practice to use the [http://library.gnome.org/devel/glib/stable/glib-String-Utility-Functions.html GLib-provided types and methods if using character arrays], although nothing prevents the developer from using other types.&lt;br /&gt;
&lt;br /&gt;
See the [http://maemo4mobile.garage.maemo.org/snippet_gchar.html example].&lt;br /&gt;
&lt;br /&gt;
=== GString ===&lt;br /&gt;
&lt;br /&gt;
[http://library.gnome.org/devel/glib/stable/glib-Strings.html GString] from the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Glib&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;. Similar to a standard C string, except that it grows automatically when text is appended or inserted. Also, it stores the length of the string, so it can be used for binary data which contains bytes with &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;NULL&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; values.&lt;br /&gt;
&lt;br /&gt;
See the [http://maemo4mobile.garage.maemo.org/snippet_gstring.html example].&lt;br /&gt;
&lt;br /&gt;
== String class ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/String_(C++) String class] from the [http://en.wikipedia.org/wiki/Standard_Template_Library C++ Standard Template Library]. The &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;string&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; class resizes automatically when necessary.&lt;br /&gt;
&lt;br /&gt;
See the [http://maemo4mobile.garage.maemo.org/snippet_stlstring.html example].&lt;br /&gt;
&lt;br /&gt;
== Binary data ==&lt;br /&gt;
&lt;br /&gt;
If you are working with binary data, you can use:&lt;br /&gt;
&lt;br /&gt;
* Low-level, C-language memory allocation and [http://en.wikipedia.org/wiki/String.h handling].&lt;br /&gt;
* GArray from GLib - arrays of arbitrary elements which grow automatically as elements are added.&lt;br /&gt;
* GString that works also with binary data, as it stores the data length.&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Standard_Template_Library#Containers C++ containers] (for example, vectors and lists).&lt;br /&gt;
&lt;br /&gt;
= Active objects and threads =&lt;br /&gt;
&lt;br /&gt;
Symbian OS discourages the usage of threads because context switching is considered an expensive operation which degrades battery life. Basically, this is true in the Maemo platform too, but avoiding threads at all cost is not required.&lt;br /&gt;
&lt;br /&gt;
Using the main event loop of GLib it is possible to run several asynchronous operations in a single thread, without blocking. This is fairly similar to using Active Objects. Examples of sources of events are file descriptors, sockets, even timeouts, and so on.&lt;br /&gt;
&lt;br /&gt;
Below you see a timeout example function with event loop (based on [http://w00d5t0ck.info/gnome_tutorial/gnome_tutorial.html#AEN53 Gnome developers' tutorial]).&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 #include&lt;br /&gt;
&lt;br /&gt;
 #define COUNT_UNTIL 2&lt;br /&gt;
 #define TIMEOUT 2&lt;br /&gt;
&lt;br /&gt;
 static int counter;&lt;br /&gt;
&lt;br /&gt;
 GMainLoop *main_loop;&lt;br /&gt;
&lt;br /&gt;
 gboolean&lt;br /&gt;
&lt;br /&gt;
 timeout_func(gpointer data)&lt;br /&gt;
 {&lt;br /&gt;
 counter++;&lt;br /&gt;
 g_printf(&amp;quot;Running for the %d. time.\n&amp;quot;, counter);&lt;br /&gt;
 if (counter == COUNT_UNTIL)&lt;br /&gt;
 {&lt;br /&gt;
 g_main_loop_quit(main_loop);&lt;br /&gt;
 return FALSE;&lt;br /&gt;
 }&lt;br /&gt;
 return TRUE;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 int&lt;br /&gt;
 main(int argc, char **argv)&lt;br /&gt;
 {&lt;br /&gt;
 counter = 0;&lt;br /&gt;
 main_loop = g_main_loop_new(NULL, FALSE);&lt;br /&gt;
 g_timeout_add_seconds(TIMEOUT, timeout_func, NULL);&lt;br /&gt;
 g_main_loop_run(main_loop);&lt;br /&gt;
 return 0;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In case of dealing with threads you can use:&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/POSIX_Threads POSIX threads] (the traditional Unix-style operating system type)&lt;br /&gt;
* GThread from GLib&lt;br /&gt;
&lt;br /&gt;
= Static data in DLLs =&lt;br /&gt;
&lt;br /&gt;
In Symbian OS version before v9 static data in DLLs was not supported. From v9 onwards static data is supported but it consumes big amounts of RAM memory. The Maemo platform does not have this limitation. You can use, for example, global variables in your shared libraries. Note, however, that the static data is not shared between the processes.&lt;br /&gt;
&lt;br /&gt;
= Platform security =&lt;br /&gt;
&lt;br /&gt;
Platform security does not exist in the Maemo platform. When installing software with the Application Manager, it only warns if the software is NOT being downloaded from the official Maemo repositories. The Maemo does not have a specific scheme to enforce platform security as Symbian has. One benefit is that installing software in Maemo is more developer-friendly than in Symbian.&lt;br /&gt;
&lt;br /&gt;
= Client-server model =&lt;br /&gt;
&lt;br /&gt;
Whereas Symbian OS extensively uses a client/server approach with asynchronous method calls, the Maemo platform uses direct, synchronous API calls. Usually this means that called functions block until they finish, with some exceptions.&lt;br /&gt;
&lt;br /&gt;
Using sockets is a good example of the differences between the Symbian OS and Maemo platforms, regarding the client-server model vs. direct API calls. See [http://maemo4mobile.garage.maemo.org/snippet_clientserver_sync.html networking example].&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_For_Symbian_Developers_Guide/Glossary</id>
		<title>Documentation/Maemo For Symbian Developers Guide/Glossary</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_For_Symbian_Developers_Guide/Glossary"/>
				<updated>2010-04-09T09:04:40Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Glossary =&lt;br /&gt;
&lt;br /&gt;
; '''ABI'''&lt;br /&gt;
: Application Binary Interface, providing object code level compatibility.&lt;br /&gt;
; '''API'''&lt;br /&gt;
: Application Programming Interface, providing source code level compatibility.&lt;br /&gt;
; '''applet'''&lt;br /&gt;
: A small application that integrates to ''Hildon Desktop''.&lt;br /&gt;
; '''ARMEL'''&lt;br /&gt;
: A name that e.g. Debian uses for the little endian ARM EABI (''ABI'' for the ARM architecture).&lt;br /&gt;
; '''devkit'''&lt;br /&gt;
: The part of ''Maemo SDK'' that contains software development tools. Maemo SDK contains multiple devkits, e.g. doctools devkit.&lt;br /&gt;
; '''Hildon'''&lt;br /&gt;
: Application framework used in the ''Maemo platform''. Developed by Nokia and based on GNOME/GTK+ technologies, currently in the process of becoming an upstream project in gnome.org.&lt;br /&gt;
; '''Hildon Desktop'''&lt;br /&gt;
: The main user interface component of Maemo Chinook, rewrite of ''Maemo desktop''.&lt;br /&gt;
; '''Internet Tablet'''&lt;br /&gt;
: Product category for Internet-optimized mobile devices with touchscreen. The term was coined by Nokia, but is nowadays used more widely to include other devices.&lt;br /&gt;
; '''Maemo'''&lt;br /&gt;
: Software platform for mobile devices developed by Nokia, based on GNU/Linux and GNOME/GTK+ technologies. It includes proprietary components to make it work on the Nokia Maemo compatible device.&lt;br /&gt;
; '''maemo.org'''&lt;br /&gt;
: Developer community web site maintained by Nokia, main point of reference for open source and third-party developers in general.&lt;br /&gt;
; '''Maemo Software Development Kit'''&lt;br /&gt;
: (Maemo SDK) to create and port applications to the Maemo platform using a PC.&lt;br /&gt;
; '''OSSO'''&lt;br /&gt;
: Open Source Software Operations, Nokia organization developing and integrating software for Maemo compatible device.&lt;br /&gt;
; '''rootstrap'''&lt;br /&gt;
: Part of the SDK that contains selected software components from rootfs. Rootstrap is the root file system of a target inside Scratchbox.&lt;br /&gt;
; '''toolchain'''&lt;br /&gt;
: Part of the SDK that contains ARM cross compilation tools, such as compiler and linker.&lt;br /&gt;
&lt;br /&gt;
= Maemo Releases =&lt;br /&gt;
&lt;br /&gt;
; '''Mistral'''&lt;br /&gt;
: Maemo 2.0 release for Nokia 770 device. Corresponds to the Nokia Internet Tablet SE 2006 version 2.01.2006.26-8.&lt;br /&gt;
; '''Scirocco'''&lt;br /&gt;
: Maemo 2.1 release for Nokia 770 device. Includs mainly bugfixes and some other enhancements. Corresponds to Nokia Internet Tablet SE 2006 version 2.2006.39-14.&lt;br /&gt;
; '''Gregale'''&lt;br /&gt;
: Maemo 2.2 release for Nokia 770 device (bugfixes and enhancements).&lt;br /&gt;
; '''Bora'''&lt;br /&gt;
: Maemo 3.x releases for Nokia N800 device. Corresponds to Internet Tablet OS releases &amp;quot;1.2006.47-20&amp;quot;, &amp;quot;2.2006.51-6&amp;quot; (Maemo 3.0), &amp;quot;3.2007.10-7&amp;quot; (Maemo 3.1) and &amp;quot;4.2007.26-8&amp;quot;+&amp;quot;4.2007.38-2&amp;quot; (Maemo 3.2).&lt;br /&gt;
; '''Chinook'''&lt;br /&gt;
: Maemo 4.0.x releases for Nokia N800 and N810 devices. Corresponds to Internet Tablet OS releases &amp;quot;1.2007.44-4&amp;quot; (Maemo 4.0) and &amp;quot;2.2007.51-3&amp;quot; (Maemo 4.0.1)&lt;br /&gt;
; '''Diablo'''&lt;br /&gt;
: Maemo 4.1.x releases for Nokia N800, N810 and N810 WiMAX devices. Corresponds to Internet Tablet OS releases &amp;quot;4.2008.23-14&amp;quot; (Maemo 4.1), &amp;quot;4.2008.36-5&amp;quot; (Maemo 4.1.1) and &amp;quot;5.2008.43-7&amp;quot; (Maemo 4.1.2)&lt;br /&gt;
; '''Fremantle'''&lt;br /&gt;
: Maemo 5.x releases for N900 device. Corresponds to Maemo 5 OS release &amp;quot;1.2009.42-11&amp;quot; + eMMC content &amp;quot;1.2009.41-1&amp;quot; (Maemo 5) and OS release &amp;quot;2.2009.51-1&amp;quot; + eMMC content &amp;quot;1.2009.41-1&amp;quot; (Maemo 5 Update)&lt;br /&gt;
; '''Harmattan'''&lt;br /&gt;
: Maemo 6.x releases, corresponds to Maemo 6 OS release &amp;quot;x.2010.xx-x&amp;quot;&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_For_Symbian_Developers_Guide/Introduction</id>
		<title>Documentation/Maemo For Symbian Developers Guide/Introduction</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_For_Symbian_Developers_Guide/Introduction"/>
				<updated>2010-04-09T09:04:39Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
This document aims to compare Symbian and Maemo OS at architectural level, providing a didactic matching between the different components of each operating system, so that Symbian OS developers can easily learn what software component they should use in Maemo platform for each functionality.&lt;br /&gt;
&lt;br /&gt;
Maemo is an open source development platform for Linux-based handheld devices. It is built from widely-used open source components with additional tweaks to integrate well in handheld devices.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Maemo device - N900&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 1.1:''' Maemo device - N900&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Nokia_N900_39.png|Image Nokia_N900_39]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An Maemo device is a handheld device which provides desktop PC-level support for Internet services (such as Web pages and e-mail). Nokia has released several Maemo devices running the Maemo platform: the Nokia 770, the Nokia N800, Nokia N810, Nokia N810 WiMAX Edition and N900, see figure [[#fig:maemo-for-symbian-dev-introduction-n900|1.1]]. The devices have a high-resolution, 800 x 480 pixel touch-sensitive display.&lt;br /&gt;
&lt;br /&gt;
Maemo uses Hildon Application Framework, based on the open source GTK+ toolkit, as the user interface manager. Although the Hildon/GTK+ libraries are coded in C, bindings for other languages, including C++ and Python, are also available.&lt;br /&gt;
&lt;br /&gt;
The native programming language for Symbian OS devices is C++. So, any S60 developer can take advantage of the Hildon/GTK+ C++ bindings and easily start developing GUI applications for Maemo devices. This document demonstrates how a Symbian C++ developer can get started with developing applications for Maemo platform.&lt;br /&gt;
&lt;br /&gt;
Before you start to write your own applications for Maemo, learn more about the Maemo platform and the Hildon Application Framework. For more information, see documents ''GNOME Programming Guidelines'' &amp;lt;ref name=r4&amp;gt;Federico&amp;amp;nbsp;Mena Quintero, Miguel de&amp;amp;nbsp;Icaza, and Morten Welinder. GNOME Programming Guidelines. http://developer.gnome.org/doc/guides/programming-guidelines/book1.html&amp;lt;/ref&amp;gt;, ''GTK+ Reference Manual'' &amp;lt;ref name=r1&amp;gt;GTK+ Reference Manual. http://library.gnome.org/devel/gtk/unstable/index.html&amp;lt;/ref&amp;gt;, ''Hildon'' &amp;lt;ref name=r2&amp;gt;Hildon Project. http://live.gnome.org/Hildon/&amp;lt;/ref&amp;gt;, and ''Maemo Fremantle Developer Guide'' &amp;lt;ref name=r3&amp;gt;Maemo Fremantle Developer Guide. http://library.maemodocs.nokia.com&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_For_Symbian_Developers_Guide/Bibliography</id>
		<title>Documentation/Maemo For Symbian Developers Guide/Bibliography</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_For_Symbian_Developers_Guide/Bibliography"/>
				<updated>2010-04-09T09:04:39Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bibliography ==&lt;br /&gt;
&lt;br /&gt;
; 1&lt;br /&gt;
: GTK+ Reference Manual. &amp;lt;tt&amp;gt;http://library.gnome.org/devel/gtk/unstable/index.html&amp;lt;/tt&amp;gt;.&lt;br /&gt;
; 2&lt;br /&gt;
: Hildon Project. &amp;lt;tt&amp;gt;http://live.gnome.org/Hildon/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
; 3&lt;br /&gt;
: Maemo Fremantle Developer Guide. &amp;lt;tt&amp;gt;http://library.maemodocs.nokia.com&amp;lt;/tt&amp;gt;.&lt;br /&gt;
; 4&lt;br /&gt;
: Federico Mena Quintero, Miguel de Icaza, and Morten Welinder. GNOME Programming Guidelines. &amp;lt;tt&amp;gt;http://developer.gnome.org/doc/guides/programming-guidelines/book1.html&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_For_Symbian_Developers_Guide/Preface</id>
		<title>Documentation/Maemo For Symbian Developers Guide/Preface</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_For_Symbian_Developers_Guide/Preface"/>
				<updated>2010-04-09T09:04:38Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Preface =&lt;br /&gt;
&lt;br /&gt;
= Legal notice =&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 2008-2010 Nokia Corporation&lt;br /&gt;
&lt;br /&gt;
Nokia and Maemo are trademarks or registered trademarks of Nokia Corporation. Other product and company names mentioned herein may be trademarks or trade names of their respective owners.&lt;br /&gt;
&lt;br /&gt;
= Disclaimer =&lt;br /&gt;
&lt;br /&gt;
The information in this document is provided &amp;quot;as is,&amp;quot; with no warranties whatsoever, including any warranty of merchantability, fitness for any particular purpose, or any warranty otherwise arising out of any proposal, specification, or sample. This document is provided for informational purposes only. Nokia Corporation disclaims all liability, including liability for infringement of any proprietary rights, relating to implementation of information presented in this document. Nokia Corporation does not warrant or represent that such use will not infringe such rights.&lt;br /&gt;
&lt;br /&gt;
Nokia Corporation retains the right to make changes to this material at any time, without notice.&lt;br /&gt;
&lt;br /&gt;
= Licenses =&lt;br /&gt;
&lt;br /&gt;
This document is licensed under the [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License, version 1.2].&lt;br /&gt;
&lt;br /&gt;
Permission is granted to copy, distribute and/or modify documentation under the terms of the GNU Free Documentation License, version 1.2 or any later version published by the Free Software Foundation. Please refer to the copyright notice in each piece of documentation for Invariant Sections, Front-Cover Texts or Back-Cover Texts, if any, as defined in the License.&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Flasher-3.5_Tutorial/Maemo_Flasher-3.5_tool</id>
		<title>Documentation/Maemo Flasher-3.5 Tutorial/Maemo Flasher-3.5 tool</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Flasher-3.5_Tutorial/Maemo_Flasher-3.5_tool"/>
				<updated>2010-04-09T09:04:37Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Maemo Flasher-3.5 tool =&lt;br /&gt;
&lt;br /&gt;
= Release details =&lt;br /&gt;
&lt;br /&gt;
Maemo Flasher-3.5 tool release information:&lt;br /&gt;
&lt;br /&gt;
* Version: 2.5.2 - Final&lt;br /&gt;
* Date: October 23, 2009&lt;br /&gt;
* Hardware supported: Nokia N800, N810 and N810 WiMAX Edition with Diablo 4.1.x and N900 with Fremantle 5.x&lt;br /&gt;
&lt;br /&gt;
= Delivery packages =&lt;br /&gt;
&lt;br /&gt;
Maemo Flasher-3.5 tool delivery archive content:&lt;br /&gt;
&lt;br /&gt;
; '''flasher-3.5'''&lt;br /&gt;
: flasher binary file (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;flasher-3.5.exe&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; for Windows)&lt;br /&gt;
; '''libusb'''&lt;br /&gt;
: USB library (only for Windows and Mac OS X installations)&lt;br /&gt;
; '''COPYING_LGPL.txt'''&lt;br /&gt;
: license text for libusb (only for Windows and Mac OS X installations)&lt;br /&gt;
; '''License_Agreement.txt'''&lt;br /&gt;
: license and disclaimer text for flasher binary&lt;br /&gt;
; '''Help.txt'''&lt;br /&gt;
: short command line help&lt;br /&gt;
; '''Readme_Maemo_Flasher-3.5.txt'''&lt;br /&gt;
: Flasher-3.5 readme file&lt;br /&gt;
&lt;br /&gt;
= Downloads and documentation =&lt;br /&gt;
&lt;br /&gt;
Maemo Flasher-3.5 download: [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Maemo Development Environment Downloads] page&lt;br /&gt;
&lt;br /&gt;
Maemo Flasher-3.5 documentation: This document and documentation delivered as part of installation packages (readme and help files)&lt;br /&gt;
&lt;br /&gt;
Sources for &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;libusb&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; library (LGPL v2) installed as part of Maemo Flasher-3.5 for Windows and Mac OS X:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Libusb&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; (Mac): [http://pc-connectivity.garage.maemo.org/upstream/libusb-0.1.12.tar.gz libusb-0.1.12.tar.gz]&lt;br /&gt;
* &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Libusb-win32&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; (Win): [http://pc-connectivity.garage.maemo.org/upstream/libusb-win32-src-0.1.12.1.tar.gz libusb-win32-src-0.1.12.1.tar.gz]&lt;br /&gt;
&lt;br /&gt;
Original &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;libusb&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; sources are available from SourceForge.net:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Libusb&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; (Mac): [http://ufpr.dl.sourceforge.net/sourceforge/libusb libusb]&lt;br /&gt;
* &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Libusb-win32&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; (Win): [http://ufpr.dl.sourceforge.net/sourceforge/libusb-win32 libusb-win32]&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Flasher-3.5_Tutorial/Glossary</id>
		<title>Documentation/Maemo Flasher-3.5 Tutorial/Glossary</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Flasher-3.5_Tutorial/Glossary"/>
				<updated>2010-04-09T09:04:36Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Glossary =&lt;br /&gt;
&lt;br /&gt;
; '''eMMC'''&lt;br /&gt;
: Describes an architecture consisting of an embedded storage solution with MMC interface, flash memory and controller, all in a small ball grid array package.&lt;br /&gt;
; '''FIASCO'''&lt;br /&gt;
: An open source Fractal Image And Sequence Codec, is a compression method used to compress Maemo device images.&lt;br /&gt;
; '''ID'''&lt;br /&gt;
: Identifier.&lt;br /&gt;
; '''Maemo'''&lt;br /&gt;
: Software platform for mobile devices developed by Nokia, based on GNU/Linux and GNOME/GTK+ technologies. It includes proprietary components to make it work on the Nokia Maemo compatible device.&lt;br /&gt;
; '''maemo.org'''&lt;br /&gt;
: Developer community web site maintained by Nokia, main point of reference for open source and third-party developers in general.&lt;br /&gt;
; '''MMC'''&lt;br /&gt;
: MultiMediaCard, is a flash memory memory card standard.&lt;br /&gt;
; '''NAND'''&lt;br /&gt;
: &amp;quot;Not AND&amp;quot; is a type of Flash Memory technology.&lt;br /&gt;
; '''OS'''&lt;br /&gt;
: Operating System or sometimes Open Source.&lt;br /&gt;
; '''PPC'''&lt;br /&gt;
: PowerPC or Performance Optimization With Enhanced RISC - Performance Computing, is a RISC architecture created by the 1991 Apple - IBM - Motorola alliance.&lt;br /&gt;
; '''USB'''&lt;br /&gt;
: Universal Serial Bus is a specification to establish communication between devices and a host controller (usually personal computers).&lt;br /&gt;
; '''VM'''&lt;br /&gt;
: Virtual Machine.&lt;br /&gt;
; '''WiMAX'''&lt;br /&gt;
: Worldwide Interoperability for Microwave Access, is a telecommunications technology that provides wireless transmission of data using a variety of transmission modes.&lt;br /&gt;
&lt;br /&gt;
= Maemo Releases =&lt;br /&gt;
&lt;br /&gt;
; '''Mistral'''&lt;br /&gt;
: Maemo 2.0 release for Nokia 770 device. Corresponds to the Nokia Internet Tablet SE 2006 version 2.01.2006.26-8.&lt;br /&gt;
; '''Scirocco'''&lt;br /&gt;
: Maemo 2.1 release for Nokia 770 device. Includs mainly bugfixes and some other enhancements. Corresponds to Nokia Internet Tablet SE 2006 version 2.2006.39-14.&lt;br /&gt;
; '''Gregale'''&lt;br /&gt;
: Maemo 2.2 release for Nokia 770 device (bugfixes and enhancements).&lt;br /&gt;
; '''Bora'''&lt;br /&gt;
: Maemo 3.x releases for Nokia N800 device. Corresponds to Internet Tablet OS releases &amp;quot;1.2006.47-20&amp;quot;, &amp;quot;2.2006.51-6&amp;quot; (Maemo 3.0), &amp;quot;3.2007.10-7&amp;quot; (Maemo 3.1) and &amp;quot;4.2007.26-8&amp;quot;+&amp;quot;4.2007.38-2&amp;quot; (Maemo 3.2).&lt;br /&gt;
; '''Chinook'''&lt;br /&gt;
: Maemo 4.0.x releases for Nokia N800 and N810 devices. Corresponds to Internet Tablet OS releases &amp;quot;1.2007.44-4&amp;quot; (Maemo 4.0) and &amp;quot;2.2007.51-3&amp;quot; (Maemo 4.0.1)&lt;br /&gt;
; '''Diablo'''&lt;br /&gt;
: Maemo 4.1.x releases for Nokia N800, N810 and N810 WiMAX devices. Corresponds to Internet Tablet OS releases &amp;quot;4.2008.23-14&amp;quot; (Maemo 4.1), &amp;quot;4.2008.36-5&amp;quot; (Maemo 4.1.1) and &amp;quot;5.2008.43-7&amp;quot; (Maemo 4.1.2)&lt;br /&gt;
; '''Fremantle'''&lt;br /&gt;
: Maemo 5.x releases for N900 device. Corresponds to Maemo 5 OS release &amp;quot;1.2009.42-11&amp;quot; + eMMC content &amp;quot;1.2009.41-1&amp;quot; (Maemo 5) and OS release &amp;quot;2.2009.51-1&amp;quot; + eMMC content &amp;quot;1.2009.41-1&amp;quot; (Maemo 5 Update)&lt;br /&gt;
; '''Harmattan'''&lt;br /&gt;
: Maemo 6.x releases, corresponds to Maemo 6 OS release &amp;quot;x.2010.xx-x&amp;quot;&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Flasher-3.5_Tutorial</id>
		<title>Documentation/Maemo Flasher-3.5 Tutorial</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Flasher-3.5_Tutorial"/>
				<updated>2010-04-09T09:04:36Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Nokia Corporation = MAEMO FLASHER-3.5 TUTORIAL =&amp;lt;div class=&amp;quot;author_info&amp;quot;&amp;gt;'''maemo.org''''''18 February 2010'''&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;margins&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[{{PAGENAME}}/Preface|Preface]]&lt;br /&gt;
* [[{{PAGENAME}}/Glossary|Glossary]]&lt;br /&gt;
* [[{{PAGENAME}}/Introduction|Introduction]]&lt;br /&gt;
* [[{{PAGENAME}}/Maemo Flasher-3.5 tool|Maemo Flasher-3.5 tool]]&lt;br /&gt;
* [[{{PAGENAME}}/Installation|Installation]]&lt;br /&gt;
* [[{{PAGENAME}}/Usage|Usage]]&lt;br /&gt;
* [[{{PAGENAME}}/Bibliography|Bibliography]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Flasher-3.5_Tutorial/Introduction</id>
		<title>Documentation/Maemo Flasher-3.5 Tutorial/Introduction</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Flasher-3.5_Tutorial/Introduction"/>
				<updated>2010-04-09T09:04:35Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
The Maemo Flasher-3.5 tool is host PC utility used to flash data to the Maemo device internal NAND memory. Maemo devices keep their bootloader, kernel, and rootfs (all of which make up the operating system) firmware components stored to the NAND memory. Maemo Flasher-3.5 can be used to upgrade the firmware, flash specific firmware components, or change a number of hardware flags.&lt;br /&gt;
&lt;br /&gt;
Maemo Flasher-3.5 tool support following Maemo devices and platform releases:&lt;br /&gt;
&lt;br /&gt;
* Nokia N800, N810 and N810 WiMAX Edition with Diablo 4.1.x.&lt;br /&gt;
* Nokia N900 with Fremantle 5.x, see figure [[#fig:flasher-3.5-tutorial-introduction-n900|1.1]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Maemo device - N900&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 1.1:''' Maemo device - N900&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Nokia_N900_39.png|Image Nokia_N900_39]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Flasher-3.5_Tutorial/Installation</id>
		<title>Documentation/Maemo Flasher-3.5 Tutorial/Installation</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Flasher-3.5_Tutorial/Installation"/>
				<updated>2010-04-09T09:04:35Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Installation =&lt;br /&gt;
&lt;br /&gt;
The Maemo Flasher-3.5 tool must be installed from the installation package provided for Debian based Linuxes, Windows and Mac OS X. For Linux distributions other than Debian-based ones, a compressed tar file is provided.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Installation of Maemo Flasher-3.5 requires administration rights in all supported operating systems.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Maemo Flasher-3.5 tool supports following 32-bit host PC operating systems:&lt;br /&gt;
&lt;br /&gt;
* Debian based Linuxes (with Debian installation package).&lt;br /&gt;
* Other Linuxes (with tar installation package).&lt;br /&gt;
* Windows XP with SP3, Vista with SP2 and Windows 7 (with Windows installation package).&lt;br /&gt;
* Mac OS X 10.5 Leopard and 10.6 Snow Leopard (with Mac OS X installation package).&lt;br /&gt;
&lt;br /&gt;
Linux and Windows versions of Maemo Flasher-3.5 tool support x86/32-bit host PC architectures.&lt;br /&gt;
&lt;br /&gt;
Mac OS X versions of Maemo Flasher-3.5 tool support x86/32-bit and PPC/32-bit architectures.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Maemo Flasher-3.5 tools do not support any 64-bit operating systems.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Workaround for 64-bit operating systems that support either VMware, VirtualBox or QEMU virtualisation technologies is to install Maemo SDK Virtual Image from the [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Maemo Development Environment Downloads] page (see document ''Maemo SDK Virtual Image Tutorial'' &amp;lt;ref name=r1&amp;gt;Maemo SDK Virtual Image Tutorial. http://library.maemodocs.nokia.com&amp;lt;/ref&amp;gt; for more information) and install and run Maemo Flasher-3.5 from the image. If host PC hardware, operating system and chosen virtualisation technology have good enough support for USB port, flashing Maemo device from Maemo SDK Virtual Image should work.&lt;br /&gt;
&lt;br /&gt;
Maemo Flasher-3.5 tools for different operating systems can be downloaded from the [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Maemo Development Environment Downloads] page and installed using standard operating system specific installation methods.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Flasher-3.5_Tutorial/Bibliography</id>
		<title>Documentation/Maemo Flasher-3.5 Tutorial/Bibliography</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Flasher-3.5_Tutorial/Bibliography"/>
				<updated>2010-04-09T09:04:35Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bibliography ==&lt;br /&gt;
&lt;br /&gt;
; 1&lt;br /&gt;
: Maemo SDK Virtual Image Tutorial. &amp;lt;tt&amp;gt;http://library.maemodocs.nokia.com&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Flasher-3.5_Tutorial/Usage</id>
		<title>Documentation/Maemo Flasher-3.5 Tutorial/Usage</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Flasher-3.5_Tutorial/Usage"/>
				<updated>2010-04-09T09:04:34Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Usage =&lt;br /&gt;
&lt;br /&gt;
The Maemo Flasher-3.5 tool is a command line utility that supports N900 device with Fremantle 5.x platform releases and N800, N810 and N810 WiMAX Edition devices with Maemo Diablo 4.1.x platform releases.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Older Maemo devices (like Nokia 770) and older Maemo platform releases may require a specific Flasher tool from [http://tablets-dev.nokia.com/d3.php Maemo Flasher tool archive].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Maemo Flasher-3.5 tool is run from a Linux, Windows or Mac OS X host computer as a command line tool, and it sends data and commands to the connected Maemo device via USB.&lt;br /&gt;
&lt;br /&gt;
Among other purposes, Maemo Flasher-3.5 tool can be used to:&lt;br /&gt;
&lt;br /&gt;
* flash a Maemo device with a Diablo or Fremantle FIASCO image&lt;br /&gt;
* flash a Maemo device (N900 only) internal memory card with an eMMC image&lt;br /&gt;
* unpack a FIASCO image into separate parts like kernel and rootfs images&lt;br /&gt;
* flash unpacked kernel or rootfs images to the Maemo device separately&lt;br /&gt;
* change a Maemo device to R&amp;amp;amp;D mode and back to normal mode&lt;br /&gt;
* set and clear R&amp;amp;amp;D flags for a Maemo device when in R&amp;amp;amp;D mode&lt;br /&gt;
* boot a Maemo device with additional kernel startup parameters&lt;br /&gt;
&lt;br /&gt;
All command line parameters supported by Maemo Flasher-3.5 tool together with some basic usage examples are documented in the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Help.txt&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; file available as part of the tool installation package. Maemo Flasher-3.5 tool binary gives command line help if it is run without any parameter or with &amp;lt;code&amp;gt;--set-rd-flags&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;--clear-rd-flags&amp;lt;/code&amp;gt; parameters.&lt;br /&gt;
&lt;br /&gt;
= Setting Maemo device to flashing mode =&lt;br /&gt;
&lt;br /&gt;
Before flashing a Maemo device with a FIASCO image, it is recommended to firstly set the Maemo device into flashing mode. When you attempt to flash the Maemo device, it tries to enable flashing mode on the fly, in which case setting the device to flashing mode explicitly is not required, but there have been reports that with some host PCs this does not work, see chapters [localhost#sec:flasher-3-5-tips-and-troubleshooting [[Image:crossref.png|[*]]]] and [localhost#sec:flasher-3-5-known-issues [[Image:crossref.png|[*]]]].&lt;br /&gt;
&lt;br /&gt;
For Nokia N800 and N810 with a Diablo image, flashing mode can be enabled by following these steps:&lt;br /&gt;
&lt;br /&gt;
# Switch off the Maemo device (and do not use a charger).&lt;br /&gt;
# Attach a USB cable to the Maemo device and computer.&lt;br /&gt;
# Switch on the Maemo device while holding down the '''Home''' (N800) or '''Swap''' (N810) hardware button.&lt;br /&gt;
&lt;br /&gt;
For Nokia N900 with a Fremantle image, flashing mode can be enabled by following these steps:&lt;br /&gt;
&lt;br /&gt;
# Switch off the Maemo device.&lt;br /&gt;
# Press and hold down the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;'u'&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; key.&lt;br /&gt;
# Connect a USB cable between the Maemo device and host PC while holding down the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;'u'&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; key.&lt;br /&gt;
# When the USB cable is connected, it powers the Maemo device and sets it to flashing mode.&lt;br /&gt;
# When the USB icon appears in the upper right-hand corner, the Maemo device is in flashing mode.&lt;br /&gt;
# Release the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;'u'&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; key.&lt;br /&gt;
&lt;br /&gt;
If performed correctly, the USB image is visible in the upper right-hand corner of the screen.&lt;br /&gt;
&lt;br /&gt;
The Maemo device waits indefinitely for Flasher-3.5 input when it is in flashing mode. If flashing is tried without first setting the Maemo device to flashing mode, image flashing may fail if the Maemo device is not able to change to the flashing mode automatically.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Make sure that the device battery is fully charged before doing any sort of flashing operation because flashing fails if the battery runs out of power during the image flashing operation, and the device may not be able to charge an empty battery after a failure in flashing.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Command line options =&lt;br /&gt;
&lt;br /&gt;
'''SYNOPSIS'''&lt;br /&gt;
&lt;br /&gt;
Usage: &amp;lt;code&amp;gt;flasher-3.5 [OPTIONS]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''OPTIONS'''&lt;br /&gt;
&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;-F, --fiasco=ARG&amp;lt;/code&amp;gt; : Location of a FIASCO image&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;-k, --kernel=ARG&amp;lt;/code&amp;gt; : Location of kernel image&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;-n, --initfs=ARG&amp;lt;/code&amp;gt; : Location of initfs image&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;-r, --rootfs=ARG&amp;lt;/code&amp;gt; : Location of root JFFS2 image&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;--cmt-2nd=ARG&amp;lt;/code&amp;gt; : Location of CMT FIASCO 2nd image&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;--cmt-algo=ARG&amp;lt;/code&amp;gt; : ocation of CMT FIASCO algorithm image&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;--cmt-mcusw=ARG&amp;lt;/code&amp;gt; : Location of CMT FIASCO MCUSW image&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;--cmt-no-verify&amp;lt;/code&amp;gt; : Disable verification of CMT programming&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;-x, --xloader=ARG&amp;lt;/code&amp;gt; : Location of X-Loader image&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;-s, --secondary=ARG&amp;lt;/code&amp;gt; : Location of NOLO secondary bootloader image&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;-2, --2nd=ARG&amp;lt;/code&amp;gt; : Location of NOLO cold flasher (&amp;quot;2nd&amp;quot;) image&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;-u, --unpack[=ARG]&amp;lt;/code&amp;gt; : Unpack a FIASCO image&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;-f, --flash&amp;lt;/code&amp;gt; : Load and flash all supplied images&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;-l, --load&amp;lt;/code&amp;gt; : Only load all supplied images&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;-b, --boot[=ARG]&amp;lt;/code&amp;gt; : Boot the kernel with optional cmdline&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;-R, --reboot&amp;lt;/code&amp;gt; : Reboot the board (e.g. after flashing NOLO)&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;-i, --read-device-id&amp;lt;/code&amp;gt; : rint out the device type&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;-S, --serial-port=ARG&amp;lt;/code&amp;gt; : Serial port used for cold flashing or &amp;quot;usb&amp;quot;&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;-I, --init-port&amp;lt;/code&amp;gt; : Only initialize the serial port&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;-c, --cold-flash&amp;lt;/code&amp;gt; : Cold flash the device&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;-h, --hw-revision=ARG&amp;lt;/code&amp;gt; : Specify product code and hardware revision&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;--enable-rd-mode&amp;lt;/code&amp;gt; : Enable R&amp;amp;amp;D mode on the device&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;--disable-rd-mode&amp;lt;/code&amp;gt; : Disable R&amp;amp;amp;D mode on the device&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;--set-rd-flags[=ARG]&amp;lt;/code&amp;gt; : Set R&amp;amp;amp;D mode flags on the device&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;--clear-rd-flags[=ARG]&amp;lt;/code&amp;gt; : Clear R&amp;amp;amp;D mode flags on the device&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;--query-rd-mode&amp;lt;/code&amp;gt; : Query the device R&amp;amp;amp;D mode status and flags&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;--set-hw-revision[=ARG]&amp;lt;/code&amp;gt; : Set hardware revision override on device&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;--flash-only=ARG&amp;lt;/code&amp;gt; : Flash only certain components&lt;br /&gt;
;&lt;br /&gt;
: &amp;lt;code&amp;gt;-U, --usb-device=ARG&amp;lt;/code&amp;gt; : Specify USB device to use (bus:device address)&lt;br /&gt;
&lt;br /&gt;
Valid &amp;lt;code&amp;gt;--flash-only&amp;lt;/code&amp;gt; options: &amp;lt;code&amp;gt;nolo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;kernel&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;initfs&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;rootfs&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Valid &amp;lt;code&amp;gt;--set-rd-flags&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--clear-rd-flags&amp;lt;/code&amp;gt; options: &amp;lt;code&amp;gt;no-omap-wd&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;no-ext-wd&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;no-lifeguard-reset&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;serial-console&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;no-usb-timeout&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sti-console&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;no-charging&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;force-power-key&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Usage examples =&lt;br /&gt;
&lt;br /&gt;
'''To get a list of supported command line options''', run:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;$ flasher-3.5&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;code&amp;gt;$ flasher-3.5 --set-rd-flags&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to perform commands other than image flashing, then omit the &amp;lt;code&amp;gt;-R&amp;lt;/code&amp;gt; option as rebooting the Maemo device may reset the given configuration change back to normal.&lt;br /&gt;
&lt;br /&gt;
'''To enable R&amp;amp;amp;D mode''' for Maemo device, run:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;$ flasher-3.5 --enable-rd-mode&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''To warm flash an image''' to the Maemo device, run:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;$ flasher-3.5 -F &amp;amp;lt;FIASCO image&amp;amp;gt; -f -R&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;amp;lt;FIASCO image&amp;amp;gt; with the the firmware image you downloaded from Nokia. This flashes a FIASCO image to your Maemo device and reboots the device after it is completed (at which point you can unplug the USB). The procedure is the same for all other image flashing components (for example, separate kernel, rootfs and eMMC images), see the option list for details.&lt;br /&gt;
&lt;br /&gt;
'''To print out Maemo device product code and product hardware revision''', run:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;$ flasher-3.5 -i&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''To cold flash''' (needed usually when the bootloader has been changed), run:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;$ flasher-3.5 -c -h RX-51:&amp;amp;lt;hw id&amp;amp;gt; -F &amp;amp;lt;FIASCO image&amp;amp;gt; -f -R&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The code &amp;lt;code&amp;gt;RX-51&amp;lt;/code&amp;gt; used in the example is the product code for the N900 device. The &amp;lt;code&amp;gt;&amp;amp;lt;hw id&amp;amp;gt;&amp;lt;/code&amp;gt; is the product hardware revision, which is a 4-digit code. Both product code and hardware revision can be found from the type label of the device to be flashed. The type label is on the back of the device, underneath the battery.&lt;br /&gt;
&lt;br /&gt;
'''To flash a kernel''' with separate kernel image, run:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;$ flasher-3.5 -k &amp;amp;lt;kernel image&amp;amp;gt; -f -R&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''To flash just a part of the whole FIASCO image''' (for example, only rootfs), run:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;$ flasher-3.5 -F &amp;amp;lt;FIASCO image&amp;amp;gt; --flash-only=rootfs -R&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This flashes only the rootfs from the &amp;amp;lt;FIASCO image&amp;amp;gt; and reboot the device.&lt;br /&gt;
&lt;br /&gt;
'''To access to the individual parts of the FIASCO image''', run:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;$ flasher-3.5 -F &amp;amp;lt;FIASCO image&amp;amp;gt; -u&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which expands &amp;amp;lt;FIASCO image&amp;amp;gt; to your current directory.&lt;br /&gt;
&lt;br /&gt;
= Tips and Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
* If you get a &amp;quot;Permission denied&amp;quot; error, then make sure you have execution rights to the Flasher-3.5 binary executable.&lt;br /&gt;
* You need to have administrator rights or run command with sudo in Linux if you get errors like this: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Error claiming USB interface: Operation not permitted&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* It may help to connect the USB cable directly to the computer USB ports, avoiding the use of a hub. Using the USB ports in the back of a computer can also work better than using those in the front.&lt;br /&gt;
* Flash always the FIASCO image first and after that the latest available eMMC image, if needed. The eMMC image does not need to be flashed every time when a new FIASCO image is flashed. Flashing the eMMC image also overwrites all data from the internal memory card.&lt;br /&gt;
* If warm flashing fails, try to switch off the power from the Maemo device, remove the USB cable and try again from the beginning.&lt;br /&gt;
* If cold flashing fails, try to warm flash the Maemo device first using the same FIASCO image. After that try cold flashing again.&lt;br /&gt;
* If Maemo Flasher-3.5 is not supported on your operating system you can try to install Maemo SDK Virtual Image from [http://tablets-dev.nokia.com/maemo-dev-env-downloads.php Maemo Development Environment Downloads] page and flash Maemo device from Virtual Image (which includes Ubuntu). This may or may not work for you depending on how well virtualization technology you use supports USB on your hardware.&lt;br /&gt;
&lt;br /&gt;
= Known issues =&lt;br /&gt;
&lt;br /&gt;
This is a list of known issues found from Maemo Flasher-3.5 final release.&lt;br /&gt;
&lt;br /&gt;
* Maemo Flasher-3.5 does not work with 64-bit operating systems. Workaround is to install Maemo SDK Virtual Image and run Maemo Flasher-3.5 from image.&lt;br /&gt;
* Maemo Flasher-3.5 does not work with Mandriva 2010 distro because Flasher-3.5 is not able to locate the correct USB address and timeouts. Workaround is to install Maemo SDK Virtual Image and run Maemo Flasher-3.5 from image.&lt;br /&gt;
* On Windows host PC if Nokia PC Suite has been installed to the environment once Windows has started also PC Suite starts running. If Nokia PC Suite is running when N900 is plugged in to the PC with USB cable and with the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;'u'&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; key held down, Nokia PC Suite gives an error message and Flasher-3.5 does not see the device. Workaround is to exit Nokia PC Suite before plugging in N900 with USB cable and starting Flasher-3.5.&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Using_PluThon</id>
		<title>Documentation/Maemo Eclipse Tutorial/Using PluThon</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Using_PluThon"/>
				<updated>2010-04-09T09:04:32Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Using PluThon =&lt;br /&gt;
&lt;br /&gt;
PluThon supports only Python projects. This chapter briefly shows hot to create Python projects and applications and run, test and debug Python applications with Maemo device.&lt;br /&gt;
&lt;br /&gt;
PluThon requires Python installed on host PC and Maemo Device. See PluThon installation chapters for detailed information how to install PlutThon itself and needed Python development environments. PC Connectivity is needed to connect Maemo Device to host PC and PluThon. See PC Connectivity documentation for details how to install and configure Maemo PC Connectivity to the Maemo Device and Host PC Connectivity to the host PC you are running PluThon Eclipse environment.&lt;br /&gt;
&lt;br /&gt;
Ensure that you can connect to the Maemo device from the host PC (that PC Connectivity has been properly installed and configured) before creating your first project with PluThon.&lt;br /&gt;
&lt;br /&gt;
= Creating PluThon Python projects =&lt;br /&gt;
&lt;br /&gt;
Create new PluThon project from '''File menu &amp;amp;gt; New &amp;amp;gt; PluThon Project''', figure [[#fig:pluthon_usage_project_01_new|7.1]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;New Project Menu&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.1:''' New Project Menu&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:project-01-new.png|Image project-01-new]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PluThon Project Templates ==&lt;br /&gt;
&lt;br /&gt;
Templates define the basic structure of the project. Most of the templates are examples, but you can use these examples also as a base structure for your project.&lt;br /&gt;
&lt;br /&gt;
Select any template under '''Examples'''. Some of the templates are only for &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Diablo&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; device (N800 or N810) and others for &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Fremantle&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; (N900), figure [[#fig:pluthon_usage_project_03_template|7.2]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;PluThon Project Template&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.2:''' PluThon Project Template&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:project-03-template.png|Image project-03-template]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PluThon Project Target ==&lt;br /&gt;
&lt;br /&gt;
Select your connection to the device from the list. Default IP addresses are the same as PC Connectivity uses as default. The connection must be enabled from device PC Connectivity. See the PC Connectivity documentation for more information.&lt;br /&gt;
&lt;br /&gt;
If you only use SSH connection to your device, or you have other IP values in your PC Connectivity properties, you can configure the connection here by right-clicking connection and selecting '''configure'''. Then you need to set '''Host name''' and '''Default User ID''', figures [[#fig:pluthon_usage_project_04_target|7.3]] and [[#fig:pluthon_usage_configure_connection|7.4]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;PluThon Project Target&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.3:''' PluThon Project Target&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:project-04-target.png|Image project-04-target]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;PluThon Project Target&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.4:''' PluThon Project Target&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:configure-connection.png|Image configure-connection]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can configure connections afterwards from '''Window &amp;amp;gt; Preferences &amp;amp;gt; Maemo &amp;amp;gt; Installed Targets''' or use Remote Systems view '''Window &amp;amp;gt; Show View &amp;amp;gt; Other &amp;amp;gt; Remote Systems &amp;amp;gt; Remote Systems'''.&lt;br /&gt;
&lt;br /&gt;
== PluThon Project Metadata ==&lt;br /&gt;
&lt;br /&gt;
'''Basic Settings''' page defines some basic variables used by the selected template. You can insert requested information into fields or leave default values, figure [[#fig:pluthon_usage_project_05_metadata|7.5]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;PluThon Project Configuration&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.5:''' PluThon Project Configuration&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:project-05-metadata.png|Image project-05-metadata]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PluThon Project Interpreter Configuration ==&lt;br /&gt;
&lt;br /&gt;
Python configuration is done on the last page. If existing Python configuration is not found, a wizard suggests creating a new configuration.&lt;br /&gt;
&lt;br /&gt;
Leave all values as default and press the '''Finish''' button to create project, figure [[#fig:pluthon_usage_project_06_configuration|7.6]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;PluThon Project Configuration&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.6:''' PluThon Project Configuration&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:project-06-configuration.png|Image project-06-configuration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there were no previous configurations for your project, ESbox will ask you to create new configuration. Select '''Yes''' to create one, figure [[#fig:pluthon_usage_project_07_interpreter_dialog|7.7]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Python Interpreter Dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.7:''' Python Interpreter Dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:project-07-interpreter-dialog.png|Image project-07-interpreter-dialog]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For the Python interpreter configuration you can select all Python paths and confirm the addition with '''OK''' button, figure [[#fig:pluthon_usage_project_08_interpreter_paths|7.8]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Python Interpreter Path Configuration&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.8:''' Python Interpreter Path Configuration&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:project-08-interpreter-paths.png|Image project-08-interpreter-paths]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Validating PluThon Project Packages on Maemo Device ==&lt;br /&gt;
&lt;br /&gt;
PluThon suggests package validation when a new project is created. Answer '''Yes''' to package validations, figure [[#fig:pluthon_usage_project_09_validate_dialog|7.9]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Validate Packages Dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.9:''' Validate Packages Dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:project-09-validate-dialog.png|Image project-09-validate-dialog]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PluThon installs the required dependencies into the Maemo device after you press '''Finnish''' button on Package Validation Wizard, figure [[#fig:pluthon_usage_project_10_validate_wizard|7.10]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Validate Packages Wizard&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.10:''' Validate Packages Wizard&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:project-10-validate-wizard.png|Image project-10-validate-wizard]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Accept any packages PluThon suggests to install and close validation after the packages have been installed.&lt;br /&gt;
&lt;br /&gt;
Package validation can be invoked from menu afterwards. Select '''Project &amp;amp;gt; Project Menu &amp;amp;gt; Validate installed packages'''.&lt;br /&gt;
&lt;br /&gt;
During a validation project, dependencies are scanned from projects using Python package imports from source files.&lt;br /&gt;
&lt;br /&gt;
= Running Python Application on Maemo Device =&lt;br /&gt;
&lt;br /&gt;
In order to run applications on Maemo devices, the Maemo PC Connectivity package must be installed on the device and the Host PC Connectivity package for the host PC. See the PluThon installation chapters for more information.&lt;br /&gt;
&lt;br /&gt;
You can run Python applications with PluThon by right-clicking a project and choosing '''Run As &amp;amp;gt; PluThon Application''', figure [[#fig:pluthon_usage_run_01_run_as|7.11]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Run as PluThon Application&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.11:''' Run as PluThon Application&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:run-01-run-as.png|Image run-01-run-as]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next, select the Python file to be run (do not select setup.py because it is used only for Debian package creation), figure [[#fig:pluthon_usage_run_02_script|7.12]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Select Executable&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.12:''' Select Executable&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:run-02-script.png|Image run-02-script]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then select the download method as Copy Programs (SSH) (as SBRSH requires configuration), figure [[#fig:pluthon_usage_run_03_download|7.13]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Select Download Method&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.13:''' Select Download Method&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:run-03-download.png|Image run-03-download]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now see the program running on the Maemo device.&lt;br /&gt;
&lt;br /&gt;
You can use VNC Viewer to control the Maemo device and your application running on the device. Choose '''Window &amp;amp;gt; Show View &amp;amp;gt; Other &amp;amp;gt; VNC Viewer'''.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  The &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;x11vnc&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; service must be installed on the Maemo device either separately (apt-get install x11vnc) or as part of Maemo PC Connectivity.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Debugging PluThon Application on Maemo Device =&lt;br /&gt;
&lt;br /&gt;
In order to debug the project, set at least one breakpoint into one of the source files where you want to start debugging. Open the source file and place the breakpoint at some position by right-clicking the left source side panel and choosing '''Add Breakpoint''', figure [[#fig:pluthon_usage_debug_02_add_breakpoint|7.14]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Add Breakpoint&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.14:''' Add Breakpoint&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:debug-02-add-breakpoint.png|Image debug-02-add-breakpoint]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Launch your project in debug mode by right-clicking project and choosing '''Debug As &amp;amp;gt; PluThon Application''' and accept changing to debug perspective, figure [[#fig:pluthon_usage_debug_01_menu|7.15]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Debug as PluThon Application&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.15:''' Debug as PluThon Application&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:debug-01-menu.png|Image debug-01-menu]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From the debug perspective, you can stop and continue execution, step lines, inspect variables, and so on. See Figures [[#fig:pluthon_usage_python_debug_03_perspective|7.16]] and [[#fig:pluthon_usage_debug_04_variables|7.17]].&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  You can switch back and forth between perspectives from top-right corner.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Debug View&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.16:''' Debug View&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:debug-03-debug-view.png|Image debug-03-debug-view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Variables View&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.17:''' Variables View&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:debug-04-variables-view.png|Image debug-04-variables-view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Debian Packaging PluThon Project =&lt;br /&gt;
&lt;br /&gt;
== Generating Setup Script ==&lt;br /&gt;
&lt;br /&gt;
The setup script (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;setup.py&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;) is used to create the Debian installation package for Python projects.&lt;br /&gt;
&lt;br /&gt;
In setup script generator you need to define metadata, packages, executables and datafiles. This information is then used to create &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;setup.py&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; script for the project, figure [[#fig:pluthon_usage_debian_01_setup_wizard|7.18]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Debian Package Setup Wizard&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.18:''' Debian Package Setup Wizard&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:debian-01-setup-wizard.png|Image debian-01-setup-wizard]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PluThon provides an automated wizard for creating Debian installation packages with this script. You can create the script from '''File &amp;amp;gt; New &amp;amp;gt; Other &amp;amp;gt; PyDev &amp;amp;gt; Setup Script''', figure [[#fig:pluthon_usage_debian_02_setup_wizard|7.19]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Debian Package Setup Project&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.19:''' Debian Package Setup Project&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:debian-02-setup-project.png|Image debian-02-setup-project]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;setup.py&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; script you need to define certain metadata for the installation pacakge, figure [[#fig:pluthon_usage_debian_03_setup_parameters|7.20]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Debian Package Setup Parameters&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.20:''' Debian Package Setup Parameters&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:debian-03-setup-parameters.png|Image debian-03-setup-parameters]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Information about packages included in the installation package, figure [[#fig:pluthon_usage_debian_04_setup_package|7.21]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Debian Package Setup Packages&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.21:''' Debian Package Setup Packages&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:debian-04-setup-package.png|Image debian-04-setup-package]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Information about extra resources such as modules, scripts and data files included in the installation package, figure [[#fig:pluthon_usage_debian_05_setup_data|7.22]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Debian Package Setup Data&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.22:''' Debian Package Setup Data&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:debian-05-setup-data.png|Image debian-05-setup-data]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can find more information about the Python setup script from [http://docs.python.org/distutils/setupscript.html Python distutils documentation].&lt;br /&gt;
&lt;br /&gt;
== Create Debian Installation Package ==&lt;br /&gt;
&lt;br /&gt;
You can export a project to the Debian installation package from '''File &amp;amp;gt; Export &amp;amp;gt; PluThon &amp;amp;gt; Export to Debian Package'''. This command requires that &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;setup.py&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; script has been defined for the project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Export to Debian Package&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.23:''' Export to Debian Package&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:debian-08-export-setup.png|Image debian-08-export-setup]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In Debian package export you only need to select the project and setup script. The package is created on the Maemo device using bdist-maemo distutils packages, figure [[#fig:pluthon_usage_debian_08_export_setup|7.23]].&lt;br /&gt;
&lt;br /&gt;
== Install Debian Package to Maemo Device ==&lt;br /&gt;
&lt;br /&gt;
To install a created Debian package to the Maemo device, right-click project and select '''Install Debian Package on Device''', figure [[#fig:pluthon_usage_debian_06_install_menu|7.24]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Install Debian Package Menu&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.24:''' Install Debian Package Menu&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:debian-06-install-menu.png|Image debian-06-install-menu]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From the '''Install Debian Package''' wizard select '''Browse''' and set '''Package location''' to created package, select the correct connection and install using the '''Finish''' button, figure [[#fig:pluthon_usage_debian_07_install|7.25]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Install Debian Package Wizard&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 7.25:''' Install Debian Package Wizard&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:debian-07-install.png|Image debian-07-install]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Getting_Started_with_Maemo_Eclipse</id>
		<title>Documentation/Maemo Eclipse Tutorial/Getting Started with Maemo Eclipse</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Getting_Started_with_Maemo_Eclipse"/>
				<updated>2010-04-09T09:04:31Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Getting Started with Maemo Eclipse =&lt;br /&gt;
&lt;br /&gt;
This document is designed to help people who are unfamiliar with Maemo Eclipse support. It presents an introduction to the Eclipse environment in general and shows how the Maemo ESbox and PluThon products encapsulate Maemo development.&lt;br /&gt;
&lt;br /&gt;
Eclipse is an open-source extensible software development platform. Its roots are in developing integrated development environments (IDEs) for different languages and environments. The Eclipse framework has been used, for example, to implement development tools for languages like Java, C/C++, Python, and XML.&lt;br /&gt;
&lt;br /&gt;
ESbox is a product built on Eclipse for developing C/C++ and Python applications with Maemo SDK for Maemo devices. ESbox has some special support also for Qt4 development, which uses C++ as programming language.&lt;br /&gt;
&lt;br /&gt;
PluThon is a product built on Eclipse for developing Python applications without Maemo SDK for Maemo devices. With PluThon, development is done directly with a Maemo device instead of running and debugging the application first with Maemo SDK.&lt;br /&gt;
&lt;br /&gt;
This chapter first presents some generic instructions and terminology useful for the Maemo Eclipse environment, and then provides actual installation and usage instructions for ESbox and PluThon.&lt;br /&gt;
&lt;br /&gt;
= Eclipse Workspace =&lt;br /&gt;
&lt;br /&gt;
The first time you start ESbox or PluThon, it asks you to choose the workspace folder figure [[#fig:eclipse_tutorial_select_workspace|2.1]]. By default, a directory underneath the product directory is selected. Any writeable location may be used for workspace folder, but avoid directories with spaces in the name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Selecting a workspace folder&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 2.1:''' Selecting a workspace folder&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:select_workspace.png|Image select_workspace]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The workspace holds projects and configuration settings. Generally, all work is stored in projects. A project may range in scope from a single application or library to a suite of programs, tests, documentation, and so on. Projects cannot be nested, although they may refer to each other in ordering builds.&lt;br /&gt;
&lt;br /&gt;
Eclipse projects have ''Project Natures'', which determine what builders are associated with the project and what commands are available. You do not directly interact with natures; instead, new project wizards, import wizards, or project conversion wizards apply appropriate natures to the projects.&lt;br /&gt;
&lt;br /&gt;
In traditional Eclipse usage, each project corresponds to a subdirectory of the workspace directory. However, in ESbox projects must be created in a location visible to Scratchbox, which is used as a base for Maemo SDK cross-compilation environment. When creating projects in ESbox always select a location inside your home directory in Scratchbox. With PluThon, programs are always copied or mounted onto a device, so the project location is more flexible.&lt;br /&gt;
&lt;br /&gt;
Projects hold nested files and folders. Normally each folder corresponds to a subdirectory of the project directory, but a folder can also be linked to a directory anywhere in the filesystem. Projects, folders, files, and links are called ''Workspace Resources'' in Eclipse. Other content on your disk, such as SDK contents, are located outside the workspace and are called ''External Resources''. Unless otherwise noted, ''Resources'' refers to workspace resources.&lt;br /&gt;
&lt;br /&gt;
To see where a particular resource resides on the disk, right-click it, select '''Properties''', and refer to the '''Resource''' node. The '''Location''' field displays the disk location.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Properties view&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 2.2:''' Properties view&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:properties_view.png|Image properties_view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The workspace includes an important feature: it maintains a ''Local History'' of changes done to each resource. This makes it possible to compare a previously saved resource with older revisions. This history also minimises the risk of losing resources. However, the local history is limited in size, depending on the configuration.&lt;br /&gt;
&lt;br /&gt;
In addition to the local history, you can integrate support for version control systems, called ''Team Providers'' in Eclipse, to support CVS, Subversion, Mercurial, git, and so on.&lt;br /&gt;
&lt;br /&gt;
= Eclipse user interface =&lt;br /&gt;
&lt;br /&gt;
Eclipse runs in a window called ''Workbench''. Figure [[#fig:eclipse_tutorial_workbench|2.3]] shows the most important Workbench components.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Basic Eclipse elements&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 2.3:''' Basic Eclipse elements&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:workbench.png|Image workbench]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The basic elements of the environment include:&lt;br /&gt;
&lt;br /&gt;
# Workbench: Eclipse's graphical user interface, a single application window that at any given time contains a number of different types of panes called views, and one special pane, the editor area.&lt;br /&gt;
# Perspective: the current set and layout of the views and editors in the workbench window. Each perspective provides several preselected sets of views arranged in a predetermined way, which means that you do not have to worry about what views to choose or how to arrange current views. Actions such as closing, opening, or rearranging views modifies the perspective.&lt;br /&gt;
# View: a visual container to display a particular specialized user interface. Typically, a view contains a data grid or tree structure. As Eclipse can illustrate the same information in many different ways, it has many different kinds of views. For example, the ''Package Explorer'' view represents programming projects from a high-level perspective, while the ''Navigator'' view shows the low-level filesystem layout of the project.&lt;br /&gt;
# Short Cut Bar: a set of icons that enables the user to access different perspectives quickly.&lt;br /&gt;
# Menu Bar: a set of content-sensitive actions that enables the execution of some predefined function.&lt;br /&gt;
# Tool Bar: a set of context-sensitive actions that enables the execution of some predefined function. All the items found within the toolbar appear within the menu bar.&lt;br /&gt;
# Editor: the primary tool used to display and manipulate data. Eclipse includes different types of editors for different types of documents. When you select (or create) a document in Eclipse, it opens a default editor based on the file type. You can also explicitly select which editor to use ('''File -&amp;amp;gt; Open With'''), and this preference is recorded. For example, ESbox and PluThon include specialised C/C++ and Python source editors, but you may also choose to edit source as raw text.&lt;br /&gt;
&lt;br /&gt;
The workspace preferences and settings for Eclipse are contained in one main place: '''Windows -&amp;amp;gt; Preferences'''. This dialog contains the union of preference settings for all the components installed into Eclipse. Make use of the '''Filter text''' field, since it can help you find topics in the pages. Almost all settings will take effect when you select '''Ok''' or '''Apply'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Preferences dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 2.4:''' Preferences dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:preferences_dialog.png|Image preferences_dialog]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful shortcuts =&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Ctrl-Shift-R&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Cmd-Shift-R&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;): open any resource in the workspace&lt;br /&gt;
* &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Ctrl-Shift-L&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Cmd-Shift-L&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;): quick key shortcut dialog&lt;br /&gt;
* &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Ctrl-`&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;: (in C/C++ editor) swap header and source &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Ctrl-3&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;: find almost any user interface in your installation &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Eclipse and ESbox/PluThon =&lt;br /&gt;
&lt;br /&gt;
The ESbox and PluThon products add support to Eclipse for Maemo SDK and Maemo devices. To integrate ESbox and PluThon to the Maemo device, a connectivity framework called Maemo PC Connectivity needs to be installed on the Maemo device and another framework called Host PC Connectivity needs to be installed on the host PC. These PC Connectivity products implement the connectivity between the Maemo device and the host PC to create a base for the Maemo development environment.&lt;br /&gt;
&lt;br /&gt;
Important entry points:&lt;br /&gt;
&lt;br /&gt;
* '''Window -&amp;amp;gt; Preferences -&amp;amp;gt; Maemo'''&amp;lt;nowiki&amp;gt;: in the event of bugs, navigate here and enable &amp;lt;/nowiki&amp;gt;'''Log commands'''. The command log is important for diagnosing problems.&lt;br /&gt;
* '''Window -&amp;amp;gt; Preferences -&amp;amp;gt; Maemo -&amp;amp;gt; Installed Targets'''&amp;lt;nowiki&amp;gt;: the detected Maemo SDKs on your system, and the Maemo-compatible device connections are here. This tree appears in various wizards provided by these products, and sometimes in combo boxes. Anywhere this UI appears, you can get a menu of useful commands by right-clicking. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* '''File -&amp;amp;gt; New -&amp;amp;gt; Other -&amp;amp;gt; Maemo Installers'''&amp;lt;nowiki&amp;gt;: the wizards for installing a full development environment, including a virtual disk image for ESbox are here. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ESbox performs builds and launches by generating essentially the same commands you would otherwise enter on the command line inside Maemo SDK, with the advantage that you do not have to manually enter them.&lt;br /&gt;
&lt;br /&gt;
When not running Eclipse IDE and ESbox on a Linux/x86 host, you must use a Maemo SDK Virtual Image, because the Maemo SDK runs only on Linux/x86. ESbox transparently sends commands to the virtual image and Maemo SDK over SSH. Running Eclipse IDE and PluThon does not require Maemo SDK or Maemo SDK Virtual Image, as it uses Maemo device to launch applications.&lt;br /&gt;
&lt;br /&gt;
When developing an application locally, ESbox automatically launches it in Maemo SDK (which may reside inside Maemo SDK Virtual Image) in a local X server. When launching or debugging remotely, ESbox lets you select a Maemo device and it copies your program or mounts its directory from the host PC to a Maemo device for you.&lt;br /&gt;
&lt;br /&gt;
PluThon uses the PyDev project to provide Python editing and code completion. There are no project builds as Python is an interpreted programming language and thus Maemo SDK is not needed on a host PC. All launches of Python applications from Eclipse are remote, meaning no Scratchbox is needed.&lt;br /&gt;
&lt;br /&gt;
= Using the ESbox and PluThon Help Documentation =&lt;br /&gt;
&lt;br /&gt;
The ESbox and PluThon help documentation was implemented using the Eclipse IDE Help system. This system lets you browse and search help documentation. The documentation is organized into topics to make the search easier. The help system also supplies a text search capability for finding the information you need by search phrase or keyword, and context-sensitive help for finding information to describe the particular function you are working with. You can access the help system in the workbench by two ways: in a separated '''Help window''' as shown in figure [[#fig:eclipse_tutorial_help_menu|2.5]] or using the '''Help view''' as shown in figure [[#fig:eclipse_tutorial_help_search|2.6]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Help in a separate Window&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 2.5:''' Help in a separate Window&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:help_menu.png|Image help_menu]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Help in the Help View&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 2.6:''' Help in the Help View&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:help_search.png|Image help_search]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you access Help in a separate Window you see a Window like figure [[#fig:eclipse_tutorial_help_esbox|2.7]]. On the left you can see all Help Contents topics, and their information is shown on the right.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;ESbox Help&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 2.7:''' ESbox Help&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:help_esbox.png|Image help_esbox]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The second way of accessing Help is to make a help documentation search. For example, if you want to know more details about Maemo Targets, all you need to do is to open the '''Help View''' and search for these keywords, as shown in figure [[#fig:eclipse_tutorial_help_view_esbox|2.8]]. All related topics are returned. This search can also be done in the separate '''Help Window'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Help View&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 2.8:''' Help View&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:help_view_esbox.png|Image help_view_esbox]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PluThon Help Documentation can be accessed in the same way as ESbox help as shown in figure [[#fig:eclipse_tutorial_help_pluthon|2.9]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;PluThon Help Documentation&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 2.9:''' PluThon Help Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:help_pluthon.png|Image help_pluthon]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial</id>
		<title>Documentation/Maemo Eclipse Tutorial</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial"/>
				<updated>2010-04-09T09:04:31Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Nokia Corporation = MAEMO ECLIPSE TUTORIAL =&amp;lt;div class=&amp;quot;author_info&amp;quot;&amp;gt;'''maemo.org''''''18 February 2010'''&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;margins&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[{{PAGENAME}}/Preface|Preface]]&lt;br /&gt;
* [[{{PAGENAME}}/Glossary|Glossary]]&lt;br /&gt;
* [[{{PAGENAME}}/Introduction|Introduction]]&lt;br /&gt;
* [[{{PAGENAME}}/Getting Started with Maemo Eclipse|Getting Started with Maemo Eclipse]]&lt;br /&gt;
* [[{{PAGENAME}}/Installation Methods|Installation Methods]]&lt;br /&gt;
* [[{{PAGENAME}}/Installing PluThon|Installing PluThon]]&lt;br /&gt;
* [[{{PAGENAME}}/Installing ESbox|Installing ESbox]]&lt;br /&gt;
* [[{{PAGENAME}}/Setting Up ESbox|Setting Up ESbox]]&lt;br /&gt;
* [[{{PAGENAME}}/Using PluThon|Using PluThon]]&lt;br /&gt;
* [[{{PAGENAME}}/Using ESbox|Using ESbox]]&lt;br /&gt;
* [[{{PAGENAME}}/Eclipse Tracing|Eclipse Tracing]]&lt;br /&gt;
* [[{{PAGENAME}}/Eclipse Memory Profiling|Eclipse Memory Profiling]]&lt;br /&gt;
* [[{{PAGENAME}}/Eclipse Performance Profiling|Eclipse Performance Profiling]]&lt;br /&gt;
* [[{{PAGENAME}}/Bibliography|Bibliography]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Using_ESbox</id>
		<title>Documentation/Maemo Eclipse Tutorial/Using ESbox</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Using_ESbox"/>
				<updated>2010-04-09T09:04:30Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Using ESbox =&lt;br /&gt;
&lt;br /&gt;
ESbox supports C, C++, Python and Qt4 projects. This chapter briefly describes how to create different types of projects and applications and how to run, test and debug applications using Maemo SDK and a Maemo device.&lt;br /&gt;
&lt;br /&gt;
ESbox requires that C/C++, Python and Qt4 development environments are installed on the host PC where Maemo SDK is run and on the Maemo device. For detailed instructions on how to install ESbox and the required development environments, see ESbox installation chapters. You need PC Connectivity to connect the Maemo device to the host PC and ESbox. For instructions on how to install and configure Maemo PC Connectivity on the Maemo device and Maemo Host PC Connectivity on the host PC where the ESbox Eclipse environment is run, see PC Connectivity documentation.&lt;br /&gt;
&lt;br /&gt;
Before creating your first project with ESbox, make sure that you can connect to your Maemo device from the host PC (that PC Connectivity has been properly installed and configured).&lt;br /&gt;
&lt;br /&gt;
= Creating C/C++ and Qt4 Projects =&lt;br /&gt;
&lt;br /&gt;
== C/C++ and Qt4 Templates ==&lt;br /&gt;
&lt;br /&gt;
Templates define the basic structure of the project. Most of the templates are examples but you can also use them as a basic structure for your project.&lt;br /&gt;
&lt;br /&gt;
To create a new C or C++ project, select '''File &amp;amp;gt; New &amp;amp;gt; Project''', figure [[#fig:esbox_usage_project_new|8.1]].&lt;br /&gt;
&lt;br /&gt;
* C &amp;amp;gt; C Maemo Project&lt;br /&gt;
* C++ &amp;amp;gt; C++ Maemo Project&lt;br /&gt;
&lt;br /&gt;
For Qt4 projects, select C++ project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;New Project Menu&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.1:''' New Project Menu&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:project-Python-new.png|Image project-Python-new]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ESbox supports simple Qt4, Makefile and Autotools projects, figure [[#fig:esbox_usage_c_01_projects|8.2]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;New C/C++ Project&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.2:''' New C/C++ Project&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-01-projects.png|Image c-01-projects]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select any of the available templates on the '''Template Project Type''' page, figure [[#fig:esbox_usage_c_02_templates|8.3]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;C/C++ Project Template&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.3:''' C/C++ Project Template&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-02-templates.png|Image c-02-templates]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  '''Maemo 4''' templates are only for Diablo targets and '''Maemo 5''' templates for Fremantle. Select the correct template depending on your installation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== C/C++ and Qt4 Targets ==&lt;br /&gt;
&lt;br /&gt;
You can select multiple targets for a project. Optimized targets are compiled using compiler optimization while debug targets are compiled with debug options.&lt;br /&gt;
&lt;br /&gt;
If you want to run a project on a Maemo device, select the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;ARMEL&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; target. To run a project on the emulator, select the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;X86&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; target.&lt;br /&gt;
&lt;br /&gt;
Select all targets for a project, figure [[#fig:esbox_usage_c_03_targets|8.4]]. You can change the targets after you have created the project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;C/C++ Project Target&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.4:''' C/C++ Project Target&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-03-targets.png|Image c-03-targets]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you do not see any targets on the '''Project Configuration''' page, check that Maemo SDK targets are installed and install them if necessary. For more information on how to install Maemo SDK and targets for ESbox, see ESbox installation chapters.&lt;br /&gt;
&lt;br /&gt;
== C/C++ and Qt4 Metadata ==&lt;br /&gt;
&lt;br /&gt;
Other project pages define different metadata the template uses. You can specify additional information in the fields or use the default values, figure [[#fig:esbox_usage_c_04_metadata|8.5]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;C/C++ Project Metadata&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.5:''' C/C++ Project Metadata&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-04-metadata.png|Image c-04-metadata]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After defining the values, click '''Finish''' to create a project.&lt;br /&gt;
&lt;br /&gt;
== Validating C/C++ and Qt4 Project Packages for Maemo SDK ==&lt;br /&gt;
&lt;br /&gt;
When you have created a new project, ESbox suggests package validation, figure [[#fig:esbox_usage_c_05_validate|8.6]]. If you are not sure that the required development environments have been installed for your targets, click '''Yes'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Validate Packages Dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.6:''' Validate Packages Dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-05-validate.png|Image c-05-validate]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ESbox installs all the required dependencies for your project for the selected targets, if they are not installed already, figure [[#fig:esbox_usage_c_06_validate_wizard|8.7]].&lt;br /&gt;
&lt;br /&gt;
If ESbox asks you about changing the target, click '''Yes''' to accept. Accept and install any packages ESbox suggests, and close the package validation wizard when the installation is complete.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Validate Packages Wizard&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.7:''' Validate Packages Wizard&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-06-validate-wizard.png|Image c-06-validate-wizard]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also validate project packages afterwards. To start the validation, select '''Project &amp;amp;gt; Project Menu &amp;amp;gt; Validate Installed Packages'''.&lt;br /&gt;
&lt;br /&gt;
During validation, the projects are scanned for dependencies using the following information:&lt;br /&gt;
&lt;br /&gt;
* Autotools projects: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;PKG_CONFIG_CHECK&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; macros in configure.ac&lt;br /&gt;
* Makefile projects: default metapackages for the project type and libraries detected through &amp;lt;code&amp;gt;pkg-config&amp;lt;/code&amp;gt; invocations&lt;br /&gt;
&lt;br /&gt;
= Running C/C++ and Qt4 Applications on Maemo SDK =&lt;br /&gt;
&lt;br /&gt;
First, select the build configuration. Change the build configuration to &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;DIABLO_X86 (Debug)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;FREMANTLE_X86 (Debug)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To activate the selected configuration, right-click the project and select '''Build Configurations &amp;amp;gt; Set active''', figure [[#fig:esbox_usage_c_07_set_target|8.8]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Set C/C++ Project Target&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.8:''' Set C/C++ Project Target&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-07-set-target.png|Image c-07-set-target]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To add or remove targets, select '''Manage''' in the same menu.&lt;br /&gt;
&lt;br /&gt;
The project is ready to be launched on Maemo SDK. To launch it, right-click the project and select '''Run As &amp;amp;gt; Maemo Local Application''', figure [[#fig:esbox_usage_c_08_run_as|8.9]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Run C/C++ Project as Local Application&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.9:''' Run C/C++ Project as Local Application&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-08-run-as.png|Image c-08-run-as]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If Maemo Application Framework is not running, ESbox asks you to launch it. When you have launched the Application Framework successfully, you can see the Application Framework and the program running, figure [[#fig:esbox_usage_c_09_result|8.10]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;C/C++ Project Local Launch Result&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.10:''' C/C++ Project Local Launch Result&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-09-result.png|Image c-09-result]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Running C/C++ and Qt4 Applications on a Maemo Device =&lt;br /&gt;
&lt;br /&gt;
To be able to run your application on a Maemo device, Maemo PC Connectivity must be installed on the device and Maemo Host PC Connectivity on the host PC. For more information, see ESbox installation chapters.&lt;br /&gt;
&lt;br /&gt;
Because the device uses &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;ARMEL&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; binaries, you must to change the target platform to &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;DIABLO_ARMEL&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;FREMANTLE_ARMEL&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; and rebuild your application for the Maemo device.&lt;br /&gt;
&lt;br /&gt;
First, make sure that &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;DIABLO_ARMEL&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;FREMANTLE_ARMEL&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; target is selected by right-clicking the project and selecting '''Properties &amp;amp;gt; Build Configurations &amp;amp;gt; Manage''', figure [[#fig:esbox_usage_c_remote_01_manage|8.11]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;C/C++ Project Manage Target Menu&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.11:''' C/C++ Project Manage Target Menu&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-remote-01-manage.png|Image c-remote-01-manage]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set the target to &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;DIABLO_ARMEL&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;FREMANTLE_ARMEL&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, figure [[#fig:esbox_usage_c_remote_02_targets|8.12]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;C/C++ Project Manage Targets&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.12:''' C/C++ Project Manage Targets&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-remote-02-targets.png|Image c-remote-02-targets]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Right-click the project, select '''Build Configurations &amp;amp;gt; Set Active''' and activate &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;DIABLO_ARMEL (Debug)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;FREMANTLE_ARMEL (Debug)&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, figure [[#fig:esbox_usage_c_remote_03_set_target|8.13]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Set C/C++ Project Target&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.13:''' Set C/C++ Project Target&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-remote-03-set-target.png|Image c-remote-03-set-target]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Validating C/C++ and Qt4 Project Packages on a Maemo Device ==&lt;br /&gt;
&lt;br /&gt;
To be able to run your application on the Maemo device, you need to make sure that all the required runtime dependencies for your application are available on the device.&lt;br /&gt;
&lt;br /&gt;
Select '''Project Menu &amp;amp;gt; Validate Installed Packages'''. On the first page, select the project to be validated, figure [[#fig:esbox_usage_c_remote_04_validate_device|8.14]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Validate Packages Menu&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.14:''' Validate Packages Menu&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-remote-04-validate-device.png|Image c-remote-04-validate-device]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On the '''Target Selection''' page, select the correct Maemo device connection and &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;ARMEL&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; target, Figure [[#fig:esbox_usage_c_remote_05_validate_targets|8.15]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Validate Package Targets&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.15:''' Validate Package Targets&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-remote-05-validate-targets.png|Image c-remote-05-validate-targets]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start the validation, click '''Finish''' on the last page. This installs the required packages for the selected project on the Maemo device.&lt;br /&gt;
&lt;br /&gt;
You can also validate project packages afterwards. To start the validation, select '''Project &amp;amp;gt; Project Menu &amp;amp;gt; Validate Installed Packages'''.&lt;br /&gt;
&lt;br /&gt;
== Running C/C++ and Qt4 Projects on a Maemo Device ==&lt;br /&gt;
&lt;br /&gt;
To be able to run your application on a Maemo device, Maemo PC Connectivity must be installed on the device and Maemo Host PC Connectivity on the host PC. For more information, see ESbox installation chapters.&lt;br /&gt;
&lt;br /&gt;
After you have set the target to &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;ARMEL&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; and built your application as &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;ARMEL&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, you can run your application on the Maemo device. To run the application, right-click the project and select '''Run As &amp;amp;gt; Maemo Remote Application''', figure [[#fig:esbox_usage_c_remote_06_run|8.16]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Run C/C++ Project as Remote Maemo Application&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.16:''' Run C/C++ Project as Remote Maemo Application&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-remote-06-run.png|Image c-remote-06-run]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select SSH as the connection type (using the SBRSH connection type requires additional configuration), figure [[#fig:esbox_usage_c_remote_07_use_ssh|8.17]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Connection Type Dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.17:''' Connection Type Dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-remote-07-use-ssh.png|Image c-remote-07-use-ssh]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the device connection, figure [[#fig:esbox_usage_c_remote_06_run|8.16]]. Use USB connection because it is faster than Bluetooth or WLAN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Select Device Connection Dialog&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.18:''' Select Device Connection Dialog&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-remote-08-select-connection.png|Image c-remote-08-select-connection]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can now see your application running on the Maemo device.&lt;br /&gt;
&lt;br /&gt;
You can use VNC Viewer to control the Maemo device and your application running on it. Select '''Window &amp;amp;gt; Show View &amp;amp;gt; Other &amp;amp;gt; VNC Viewer'''.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  To use VNC Viewer, the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;x11vnc&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; service must be installed on the Maemo device either separately (apt-get install x11vnc) or as part of Maemo PC Connectivity.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Debugging C/C++ and Qt4 Applications =&lt;br /&gt;
&lt;br /&gt;
To be able to debug a project, you must set at least one breakpoint into one of the source files. To add a breakpoint somewhere, open a source file, right-click on the left source side panel and select '''Add Breakpoint''', figure [[#fig:esbox_usage_c_debug_01_breakpoint|8.19]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Adding Breakpoint to C/C++ Source File&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.19:''' Adding Breakpoint to C/C++ Source File&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-debug-01-breakpoint.png|Image c-debug-01-breakpoint]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To launch your project in debug mode, right-click the project and select '''Debug As &amp;amp;gt; Maemo Local or Remote Application'''. When prompted, accept changing to the debug perspective, figure [[#fig:esbox_usage_c_debug_02_debug|8.20]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Debug as Maemo Application Menu&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.20:''' Debug as Maemo Application Menu&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-debug-02-debug.png|Image c-debug-02-debug]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the debug perspective, you can stop and continue the execution, step lines, inspect variables, and so on. See Figures [[#fig:esbox_usage_c_debug_03_perspective|8.21]] and [[#fig:esbox_usage_c_debug_04_variables|8.22]].&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  You can switch back and forth between perspectives by selecting from the top right corner.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;C/C++ Project Debug View&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.21:''' C/C++ Project Debug View&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-debug-03-perspective.png|Image c-debug-03-perspective]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Inspect C/C++ Variables&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.22:''' Inspect C/C++ Variables&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-debug-04-variables.png|Image c-debug-04-variables]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Creating Python Projects =&lt;br /&gt;
&lt;br /&gt;
ESbox Python projects require that Python is installed on the host PC. For more information, see ESbox installation chapters.&lt;br /&gt;
&lt;br /&gt;
== Python Templates ==&lt;br /&gt;
&lt;br /&gt;
Templates define the basic structure of the project. Most of the templates are examples but you can also use them as a basic structure for your project.&lt;br /&gt;
&lt;br /&gt;
To create a new Python project, select '''File &amp;amp;gt; New &amp;amp;gt; Project''' and then '''Python Maemo Project''', figure [[#fig:esbox_usage_project_python_new|8.23]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;New Project Menu&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.23:''' New Project Menu&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:project-Python-new.png|Image project-Python-new]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select any of the Python example templates on the '''Template''' page, figure [[#fig:esbox_usage_python_01_template|8.24]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Python Project Template&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.24:''' Python Project Template&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:python-01-template.png|Image python-01-template]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python Targets ==&lt;br /&gt;
&lt;br /&gt;
Select &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;DIABLO_X86&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;FREMANTLE_X86&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; as the target, figure [[#fig:esbox_usage_python_02_target|8.25]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Python Project Target&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.25:''' Python Project Target&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:python-02-target.png|Image python-02-target]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python Metadata ==&lt;br /&gt;
&lt;br /&gt;
The '''Basic Settings''' page defines different metadata the selected template uses. You can specify additional information in the fields or use the default values, figure [[#fig:esbox_usage_python_03_metadata|8.26]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Python Project Metadata&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.26:''' Python Project Metadata&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:python-03-metadata.png|Image python-03-metadata]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python Configuration ==&lt;br /&gt;
&lt;br /&gt;
You can define the Python configuration settings on the last page. If the wizard cannot find an existing Python configuration, it suggests to create a new configuration.&lt;br /&gt;
&lt;br /&gt;
You can use the default values and click '''Finish''' to a create project, figure [[#fig:esbox_usage_python_04_grammar|8.27]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Python Project Configuration&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.27:''' Python Project Configuration&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:python-04-grammar.png|Image python-04-grammar]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is no previous configuration for your project, ESbox asks you to create a new configuration. To create one, click '''Yes'''.&lt;br /&gt;
&lt;br /&gt;
For the Python interpreter configuration, you can add all the Python paths and confirm this by clicking '''OK''', figure [[#fig:esbox_usage_python_05_path|8.28]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Python Project Interpreter Paths&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.28:''' Python Project Interpreter Paths&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:python-05-path.png|Image python-05-path]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Validating Python Project Packages ==&lt;br /&gt;
&lt;br /&gt;
When you have created a new project, ESbox suggests package validation. Click '''Yes''' to accept, figure [[#fig:esbox_usage_python_c_05_validate|8.29]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Validate Packages&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.29:''' Validate Packages&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-05-validate.png|Image c-05-validate]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click '''Finish''' on the Package Validation Wizard dialog, figure [[#fig:esbox_usage_python_c_06_validate_wizard|8.30]]. ESbox installs all the required dependencies for the selected targets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Validate Packages Wizard&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.30:''' Validate Packages Wizard&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-06-validate-wizard.png|Image c-06-validate-wizard]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If ESbox asks you about changing the target, click '''Yes''' to accept. Accept and install any packages ESbox suggests, and close the package validation wizard when the installation is complete.&lt;br /&gt;
&lt;br /&gt;
You can also validate project packages afterwards. To start the validation, select '''Project &amp;amp;gt; Project Menu &amp;amp;gt; Validate Installed Packages'''.&lt;br /&gt;
&lt;br /&gt;
During validation, the projects are scanned for dependencies using Python package imports from the source files.&lt;br /&gt;
&lt;br /&gt;
= Running Python Applications on Maemo SDK =&lt;br /&gt;
&lt;br /&gt;
First, select the build configuration. Change the build configuration to &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;DIABLO_X86&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;FREMANTLE_X86&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Right-click the project and select '''Properties''', figures [[#fig:esbox_usage_python_06_properties|8.31]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Python Project Properties&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.31:''' Python Project Properties&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:python-06-properties.png|Image python-06-properties]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select '''Maemo Build Configurations''' and activate the configuration, figures [[#fig:esbox_usage_python_07_configuration|8.32]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Python Project Build Configuration&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.32:''' Python Project Build Configuration&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:python-07-configuration.png|Image python-07-configuration]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To launch the project on Maemo SDK, right-click the project and select '''Run As &amp;amp;gt; Python Maemo Local Application''', figure [[#fig:esbox_usage_python_08_run_as|8.33]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Python Project Run as Local Application&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.33:''' Python Project Run as Local Application&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:python-08-run-as.png|Image python-08-run-as]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the file you want to run on Maemo SDK. Do not select setup.py because it is used only for Debian package creation, figure [[#fig:esbox_usage_python_09_run_file|8.34]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Python Project Select File on Launch&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.34:''' Python Project Select File on Launch&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:python-09-run-file.png|Image python-09-run-file]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If Maemo Application Framework is not running, ESbox asks you to launch it. When you have launched Maemo Application Framework successfully, you can see the Application Framework and the program running, figure [[#fig:esbox_usage_python_10_result|8.35]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Python Project Local Launch Result&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.35:''' Python Project Local Launch Result&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:python-10-result.png|Image python-10-result]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Running Python Applications on a Maemo Device =&lt;br /&gt;
&lt;br /&gt;
To be able to run your Python application on a Maemo device, Maemo PC Connectivity must be installed on the device and Maemo Host PC Connectivity on the host PC. For more information, see ESbox installation chapters.&lt;br /&gt;
&lt;br /&gt;
First, make sure that &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;DIABLO_ARMEL&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;FREMANTLE_ARMEL&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; target is selected by right-clicking the project and selecting '''Maemo Build Configurations'''. Select &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;DIABLO_ARMEL&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;FREMANTLE_ARMEL&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; as the target, figure [[#fig:esbox_usage_python_remote_02_target|8.36]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Select Python Project Target&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.36:''' Select Python Project Target&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:python-remote-02-target.png|Image python-remote-02-target]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is no configuration for the target, ESbox asks you to create one. To configure a new target, click '''Select all'''.&lt;br /&gt;
&lt;br /&gt;
== Validating Python Project Packages on a Maemo Device ==&lt;br /&gt;
&lt;br /&gt;
To be able to run your application on a Maemo device, you need to make sure that all the required runtime dependencies for your application are available on the device.&lt;br /&gt;
&lt;br /&gt;
Select '''Project Menu &amp;amp;gt; Validate Installed Packages'''. On the first page, select the project to be validated, figure [[#fig:esbox_usage_python_c_remote_04_validate_device|8.37]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Validate Packages Menu&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.37:''' Validate Packages Menu&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-remote-04-validate-device.png|Image c-remote-04-validate-device]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On the '''Target Selection''' page, select the correct Maemo device connection and &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;ARMEL&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; target, Figure [[#fig:esbox_usage_python_c_remote_05_validate_targets|8.38]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Validate Package Targets&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.38:''' Validate Package Targets&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:c-remote-05-validate-targets.png|Image c-remote-05-validate-targets]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start the validation, click '''Finish''' on the last page. This installs the required packages for the selected project on the Maemo device.&lt;br /&gt;
&lt;br /&gt;
During validation, the projects are scanned for dependencies using Python package imports from the source files.&lt;br /&gt;
&lt;br /&gt;
== Running Python Projects on a Maemo Device ==&lt;br /&gt;
&lt;br /&gt;
To be able to run your application on a Maemo device, Maemo PC Connectivity must be installed on the device and Maemo Host PC Connectivity on the host PC. For more information, see ESbox installation chapters.&lt;br /&gt;
&lt;br /&gt;
After you have set the target to &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;ARMEL&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; you can run your application on the Maemo device. To run the application, right-click the project and select '''Run As &amp;amp;gt; Maemo Remote Application''', figure [[#fig:esbox_usage_python_remote_03_run|8.39]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Python Project Run as Remote Application&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.39:''' Python Project Run as Remote Application&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:python-remote-03-run.png|Image python-remote-03-run]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the Python file you want to run. Do not select setup.py because it is used only for Debian package creation. Select SSH as the connection type (using SBRSH requires additional configuration). Select the correct device connection.&lt;br /&gt;
&lt;br /&gt;
You can now see your application running on the Maemo device.&lt;br /&gt;
&lt;br /&gt;
You can use VNC Viewer to control the Maemo device and your application running on it. Select '''Window &amp;amp;gt; Show View &amp;amp;gt; Other &amp;amp;gt; VNC Viewer'''.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  To be able to use VNC Viewer, the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;x11vnc&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; service must be installed on the Maemo device either separately (apt-get install x11vnc) or as part of Maemo PC Connectivity.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Debugging Python Applications =&lt;br /&gt;
&lt;br /&gt;
To be able to debug a project, you must set at least one breakpoint into one of the source files. To add a breakpoint somewhere, open a source file, right-click on the left source side panel and select '''Add Breakpoint''', figure [[#fig:esbox_usage_python_debug_01_breakpoint|8.40]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Add Breakpoint to Python Project&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.40:''' Add Breakpoint to Python Project&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:python-debug-01-breakpoint.png|Image python-debug-01-breakpoint]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To launch your project in debug mode, right-click the project and select '''Debug As &amp;amp;gt; Maemo Local or Remote Application'''. When prompted, accept changing to the debug perspective, figure [[#fig:esbox_usage_python_debug_02_debug|8.41]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Debug Python Project as&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.41:''' Debug Python Project as&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:python-debug-02-debug.png|Image python-debug-02-debug]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the debug perspective, you can stop and continue the execution, step lines, inspect variables, and so on. See Figures [[#fig:esbox_usage_python_debug_03_perspective|8.42]] and [[#fig:esbox_usage_python_debug_04_variables|8.43]].&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  You can switch back and forth between perspectives by selecting from the top right corner.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Python Debug View&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.42:''' Python Debug View&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:python-debug-03-perspective.png|Image python-debug-03-perspective]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Inspect Python Variables&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.43:''' Inspect Python Variables&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:python-debug-04-variables.png|Image python-debug-04-variables]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Debian Packaging ESbox Project =&lt;br /&gt;
&lt;br /&gt;
You can create Debian installation packages for your C/C++, Qt4 and Python projects using ESbox wizards. ESbox also provides some tools to help in creating the Debian package structure, and building and installing the package.&lt;br /&gt;
&lt;br /&gt;
== Debian Package Structure ==&lt;br /&gt;
&lt;br /&gt;
Debian structure is &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;debian&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; folder under project directory. If you do not have Debian structure in your project you can create it by right clicking project and choosing '''Debian Package &amp;amp;gt; Create Debian Structure'''.&lt;br /&gt;
&lt;br /&gt;
Python projects need setup.py script to create a Debian package and it should be in the project root folder. You can create setup.py from the last page of the '''Structure''' wizard.&lt;br /&gt;
&lt;br /&gt;
ESbox does not automate the whole Debian structure creation process, so you might need to manually modify the files in &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;debian&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; folder. A Debian installation package is built using &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Makefile&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; located at &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;debian/rules&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; directory. Other files are usually install scripts and metadata.&lt;br /&gt;
&lt;br /&gt;
You can find complete information on the Debian installation package structure from [http://www.debian.org/doc/maint-guide/ Debian New Maintainers' Guide]&lt;br /&gt;
&lt;br /&gt;
== Building Debian Package ==&lt;br /&gt;
&lt;br /&gt;
ESbox can create a Debian installation package from your project by right clicking project and choosing '''Debian Package &amp;amp;gt; Build Debian Package'''. If the project does not have Debian structure defined, the wizard helps you to create one. You must select the destination where the new Debian package is created.&lt;br /&gt;
&lt;br /&gt;
== Installing Debian Package ==&lt;br /&gt;
&lt;br /&gt;
After you have built a Debian installation package, you can install it inside ESbox by right-clicking project and choosing '''Debian Package &amp;amp;gt; Install Debian Package'''.&lt;br /&gt;
&lt;br /&gt;
= Importing Projects from Repository =&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
This feature assumes you know a little bit about the workings of Debian packages. If not, the full details are in [http://www.debian.org/doc/FAQ/ch-pkg_basics.en.html The Debian GNU/Linux FAQ; Chapter 7 - Basics of the Debian package management system].&lt;br /&gt;
&lt;br /&gt;
== Repositories and package types ==&lt;br /&gt;
&lt;br /&gt;
In the Debian package manager &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;apt&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; (used in Scratchbox and Maemo devices), the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;sources.list&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; repository configuration files contain two kinds of entries: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;deb&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;deb-src&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; repositories. Both point to external or local repositories of packages (called system packages here). &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;deb&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; repositories point to binary packages while &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;deb-src&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; repositories point to the (usually in sync) source packages for those binary packages.&lt;br /&gt;
&lt;br /&gt;
One source package may generate several binary packages; for instance, one for programs and primary data, one for auxiliary data, one for libraries, and one for development.&lt;br /&gt;
&lt;br /&gt;
In &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;apt&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, when fetching the sources for a binary package, you start with an interesting binary package and find its corresponding source package (for example, &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;apt-get source &amp;amp;lt;package&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Source package structure ==&lt;br /&gt;
&lt;br /&gt;
The sources for a package come usually in three files: a ''control file'' (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*.dsc&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;), an ''archive'' (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*.tar.gz&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*.tar.bz2&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;), and a ''patch'' (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*.diff.gz&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;). &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;apt-get source&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; command invokes the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;dpkg-source&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; command to expand the archive and apply the patch. The control file is used when rebuilding the binary package.&lt;br /&gt;
&lt;br /&gt;
Once extracted, the contents of the original patched sources vary wildly. The contents may contain a bare-bones &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Makefile&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; project, an autotools-based project, a nest of programs and libraries and test code, or even another archive.&lt;br /&gt;
&lt;br /&gt;
There is one guarantee, though: the package expands to contain a &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;debian&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; directory and its various control files (see the &amp;quot;Source packages&amp;quot; chapter of the [http://www.debian.org/doc/debian-policy/ch-source.html Debian Policy Manual] for more details).&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;debian/rules&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; file is an executable &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Makefile&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; which is the primary means of interaction with the source from the perspective of a Debian package. In other words, even if the extracted sources contain autoconf files or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Makefiles&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, you must use &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;debian/rules&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; to configure, build, clean, install, and re-package the package.&lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;debian/rules configure&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;debian/rules build&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;debian/rules install&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; are typical ways to use a source package.&lt;br /&gt;
&lt;br /&gt;
It must be mentioned that even &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;debian/rules&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; can have varying degrees of fluctuation in the targets it provides. Most packages not developed in the Debian project itself come from a large community of people who think differently, and the targets vary accordingly. While the utility &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;dh_make&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; tries to promote a standard set of guidelines, some projects may, for instance, lack a &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;configure&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; target (or have several), lack a &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;build&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; target (or have several), and so on.&lt;br /&gt;
&lt;br /&gt;
ESbox attempts to corral this kind of diversity with its import wizard.&lt;br /&gt;
&lt;br /&gt;
== Using the Wizard ==&lt;br /&gt;
&lt;br /&gt;
Find the wizard under '''File &amp;amp;gt; Import &amp;amp;gt; ESbox &amp;amp;gt; Project from Debian Repository''', figure [[#fig:esbox_usage_import_package_wizard|8.44]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Import&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.44:''' Import&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:ImportPackageWizard.png|Image ImportPackageWizard]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the package to import, figure [[#fig:esbox_usage_import_package_select|8.45]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Import ESbox Project from Repository - Select Package&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.45:''' Import ESbox Project from Repository - Select Package&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:ImportPackageSelect.png|Image ImportPackageSelect]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The target providing packages is one of the Scratchbox targets on the host PC.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  The target must have the necessary &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;deb-src&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; entries in &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;sources.list&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;. Standard Maemo SDK configurations have such entries by default.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The package selector shows a tree of packages organized by category. You can search by typing in the filter (for words in the name or description) or typing in the tree (for the name alone).&lt;br /&gt;
&lt;br /&gt;
The '''Fetch build dependencies''' option ensures that, in addition to fetching the source for the selected package, any packages needed to build the source are installed as well.&lt;br /&gt;
&lt;br /&gt;
The '''Always re-fetch source components''' option asks the wizard to always go to the network and find the source components (the .dsc file, archives, and patches) for the package. This may be necessary if you have modified the package locally.&lt;br /&gt;
&lt;br /&gt;
The '''Delete source components''' option deletes the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;.dsc&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; file, source archives, and patches after extraction.&lt;br /&gt;
&lt;br /&gt;
Next, select the build targets for the package, figure [[#fig:esbox_usage_import_package_project|8.46]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Import ESbox Project from Repository - Project Configuration&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.46:''' Import ESbox Project from Repository - Project Configuration&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:ImportPackageProject.png|Image ImportPackageProject]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The next page prepares for the source fetch, figure [[#fig:esbox_usage_import_package_fetch0|8.47]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.47:''' Import ESbox Project from Repository - Fetching and Importing, proxy&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:ImportPackageFetch0.png|Image ImportPackageFetch0]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Visit the link to ensure your proxy is configured, or else the download does not work.&lt;br /&gt;
&lt;br /&gt;
Press '''Next''' to start the process, figure [[#fig:esbox_usage_import_package_fetch1|8.48]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.48:''' Import ESbox Project from Repository - Fetching and Importing, fetching&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:ImportPackageFetch1.png|Image ImportPackageFetch1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the fetch fails â usually indicated by a long pause after the '''Building dependency tree''' message - press '''Cancel''' to abort the process. You can select '''View Log''' from the dialog, press '''Back''', then press '''Next''' again to retry.&lt;br /&gt;
&lt;br /&gt;
The next page lets you choose the project type and builder for the package.&lt;br /&gt;
&lt;br /&gt;
This is a normal case, figure [[#fig:esbox_usage_import_package_convert1|8.49]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Import ESbox Project from Repository - Convert Project&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.49:''' Import ESbox Project from Repository - Convert Project&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:ImportPackageConvert1.png|Image ImportPackageConvert1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here, the project (sysstat from earlier pages) expands into a project with a &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Makefile&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;. Also (off-screen) there are C sources and headers. Thus, the wizard is able to guess the project type. This page, therefore, is merely informative and you can press '''Next'''.&lt;br /&gt;
&lt;br /&gt;
An imported package may, however, be provided as a compressed archive with patches. In this case, you can preconfigure the project to extract the sources and decide whether the project is really the one you are looking for.&lt;br /&gt;
&lt;br /&gt;
The following screenshot shows the inimitable bash shell, which is packaged as an archive, figure [[#fig:esbox_usage_import_package_convert2|8.50]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Import ESbox Project from Repository - Convert Project, compressed archive&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.50:''' Import ESbox Project from Repository - Convert Project, compressed archive&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:ImportPackageConvert2.png|Image ImportPackageConvert2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To handle this case, the wizard selects a build rule, which appears to be a configuration rule. This would be expected to extract the archive and apply the patches.&lt;br /&gt;
&lt;br /&gt;
You can manually select the rule for configuration, if desired. For example, bash can be built in several configurations for different footprints. Here are the rules found in bash's &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;debian/rules&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, figure [[#fig:esbox_usage_import_package_convert3|8.51]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Import ESbox Project from Repository - Convert Project, rule selection&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.51:''' Import ESbox Project from Repository - Convert Project, rule selection&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:ImportPackageConvert3.png|Image ImportPackageConvert3]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select a rule and click '''Setup project...''' to run the build for the given rule. The build results go to the Console behind the wizard.&lt;br /&gt;
&lt;br /&gt;
For &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;bash&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, and probably other packages, this configure step actually proceeds to build the entire program and run its tests â you may '''Cancel''' after the archive has been extracted and the patches have been applied, then proceed with the wizard, figure [[#fig:esbox_usage_import_package_convert3b|8.52]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Import ESbox Project from Repository - Convert Project, building&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.52:''' Import ESbox Project from Repository - Convert Project, building&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:ImportPackageConvert3b.png|Image ImportPackageConvert3b]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the configuration step has been run, the conversion page updates its guess about the project, figure [[#fig:esbox_usage_import_package_convert4|8.53]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Import ESbox Project from Repository - Convert Project, updated&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 8.53:''' Import ESbox Project from Repository - Convert Project, updated&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:ImportPackageConvert4.png|Image ImportPackageConvert4]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the project type and builder type are known, you can '''Finish''' the wizard.&lt;br /&gt;
&lt;br /&gt;
Projects imported from Debian packages can be edited, navigated, built, and launched like normal ESbox projects. You can, of course, also recreate Debian packages from them.&lt;br /&gt;
&lt;br /&gt;
== Related Topics ==&lt;br /&gt;
&lt;br /&gt;
* [https://garage.maemo.org/svn/esbox/trunk/org.maemo.esbox.help/html/tasks/ConfiguringCppBuild.html Configuring C/C++ Builds]&lt;br /&gt;
* [https://garage.maemo.org/svn/esbox/trunk/org.maemo.esbox.help/html/tasks/ConvertingESboxProjects.html Converting ESbox Projects]&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Glossary</id>
		<title>Documentation/Maemo Eclipse Tutorial/Glossary</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Glossary"/>
				<updated>2010-04-09T09:04:30Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Glossary =&lt;br /&gt;
&lt;br /&gt;
; '''ABI'''&lt;br /&gt;
: Application Binary Interface, providing object code level compatibility.&lt;br /&gt;
; '''API'''&lt;br /&gt;
: Application Programming Interface, providing source code level compatibility.&lt;br /&gt;
; '''applet'''&lt;br /&gt;
: A small application that integrates to ''Hildon Desktop''.&lt;br /&gt;
; '''ARMEL'''&lt;br /&gt;
: A name that e.g. Debian uses for the little endian ARM EABI (''ABI'' for the ARM architecture).&lt;br /&gt;
; '''Bluetooth'''&lt;br /&gt;
: is an open wireless protocol for exchanging data over short distances (using short length radio waves) from fixed and mobile devices, creating personal area networks (PANs).&lt;br /&gt;
; '''CDT'''&lt;br /&gt;
: Eclipse C/C++ Development Toolkit.&lt;br /&gt;
; '''CIFS'''&lt;br /&gt;
: Common Internet File System (also known as Server Message Block, SMB) operates as an application-layer network protocol mainly used to provide shared access to files, printers, serial ports, and miscellaneous communications between nodes on a network.&lt;br /&gt;
; '''CVS'''&lt;br /&gt;
: Concurrent Versions System.&lt;br /&gt;
; '''devkit'''&lt;br /&gt;
: The part of ''Maemo SDK'' that contains software development tools. Maemo SDK contains multiple devkits.&lt;br /&gt;
; '''DHCP'''&lt;br /&gt;
: Dynamic Host Configuration Protocol is a computer networking protocol used by hosts (DHCP clients) to retrieve IP address assignments and other configuration information.&lt;br /&gt;
; '''DSDP'''&lt;br /&gt;
: Eclipse Device Software Development Platform.&lt;br /&gt;
; '''DSF'''&lt;br /&gt;
: Eclipse Debugger Services Framework.&lt;br /&gt;
; '''ECF'''&lt;br /&gt;
: Eclipse Communication Framework.&lt;br /&gt;
; '''ESbox'''&lt;br /&gt;
: Eclipse product implementing integration between Eclipse IDE and Maemo SDK.&lt;br /&gt;
; '''GDB'''&lt;br /&gt;
: GNU Project debugger.&lt;br /&gt;
; '''GUI'''&lt;br /&gt;
: Graphical User Interface.&lt;br /&gt;
; '''GTK'''&lt;br /&gt;
: Toolkit for creating graphical user interfaces with support for cross platform compatibility.&lt;br /&gt;
; '''Hildon'''&lt;br /&gt;
: Application framework used in the ''Maemo platform''. Developed by Nokia and based on GNOME/GTK+ technologies, currently in the process of becoming an upstream project in gnome.org.&lt;br /&gt;
; '''Hildon Desktop'''&lt;br /&gt;
: The main user interface component of Maemo Chinook, rewrite of ''Maemo desktop''.&lt;br /&gt;
; '''ID'''&lt;br /&gt;
: Identifier.&lt;br /&gt;
; '''IDE'''&lt;br /&gt;
: Integrated Development Environment like Eclipse or QtCreator.&lt;br /&gt;
; '''IP'''&lt;br /&gt;
: Internet Protocol is a protocol used for communicating data across a packet-switched internetwork.&lt;br /&gt;
; '''JDK'''&lt;br /&gt;
: Java Development Kit.&lt;br /&gt;
; '''JRE'''&lt;br /&gt;
: Java Runtime Environment.&lt;br /&gt;
; '''JVM'''&lt;br /&gt;
: Jave Virtual Machine.&lt;br /&gt;
; '''ltrace'''&lt;br /&gt;
: Debugging utility to monitor the library calls used by a program and all the signals it receives. It can also show system calls, used by program.&lt;br /&gt;
; '''Maemo'''&lt;br /&gt;
: Software platform for mobile devices developed by Nokia, based on GNU/Linux and GNOME/GTK+ technologies. It includes proprietary components to make it work on the Nokia Maemo compatible device.&lt;br /&gt;
; '''maemo.org'''&lt;br /&gt;
: Developer community web site maintained by Nokia, main point of reference for open source and third-party developers in general.&lt;br /&gt;
; '''Mica'''&lt;br /&gt;
: Maemo IDE Common Architecture, Eclipse plugin development framework used by ESbox, PluThon and other Maemo Eclipse products.&lt;br /&gt;
; '''NFS'''&lt;br /&gt;
: Network File System is a network file system protocol allowing a user on a client computer to access files over a network in a manner similar to how local storage is accessed.&lt;br /&gt;
; '''OProfile'''&lt;br /&gt;
: System-wide profiler for Linux systems.&lt;br /&gt;
; '''OS'''&lt;br /&gt;
: Operating System or sometimes Open Source.&lt;br /&gt;
; '''PluThon'''&lt;br /&gt;
: Eclipse product implementing on-device Python development environment.&lt;br /&gt;
; '''Pydev'''&lt;br /&gt;
: Python IDE for Eclipse, which can be used in Python development.&lt;br /&gt;
; '''rootstrap'''&lt;br /&gt;
: Part of the SDK that contains selected software components from rootfs. Rootstrap is the root file system of a target inside Scratchbox.&lt;br /&gt;
; '''RSE'''&lt;br /&gt;
: Eclipse Remote System Explorer.&lt;br /&gt;
; '''rsync'''&lt;br /&gt;
: is a software application which synchronizes files and directories from one location to another while minimizing data transfer using delta encoding when appropriate.&lt;br /&gt;
; '''Samba'''&lt;br /&gt;
: is a free software re-implementation of SMB/CIFS networking protocol providing file and print services for various Microsoft Windows clients and can integrate with a Windows Server domain.&lt;br /&gt;
; '''SBRSH'''&lt;br /&gt;
: Scratchbox Remote Shell remote command execution system similar to RSH and SSH and designed for slow devices and Scratchbox's special requirements in mind.&lt;br /&gt;
; '''Scratchbox'''&lt;br /&gt;
: cross-compilation toolkit designed to make embedded Linux application development easier and to cross-compile an entire Linux distribution.&lt;br /&gt;
; '''SDK'''&lt;br /&gt;
: Software Development Kit.&lt;br /&gt;
; '''SSH'''&lt;br /&gt;
: Secure Shell network protocol that allows data to be exchanged using a secure channel between two networked devices.&lt;br /&gt;
; '''SSHFS'''&lt;br /&gt;
: SSH Filesystem or Secure SHell Filesystem is a file system client that may be used on operating systems for which an implementation of FUSE is available.&lt;br /&gt;
; '''TCF'''&lt;br /&gt;
: Eclipse Target Communication Framework.&lt;br /&gt;
; '''toolchain'''&lt;br /&gt;
: Part of the SDK that contains ARM cross compilation tools, such as compiler and linker.&lt;br /&gt;
; '''UI'''&lt;br /&gt;
: User Interface.&lt;br /&gt;
; '''USB'''&lt;br /&gt;
: Universal Serial Bus is a specification to establish communication between devices and a host controller (usually personal computers).&lt;br /&gt;
; '''Valgrind'''&lt;br /&gt;
: Tool suite for debugging and profiling Linux programs.&lt;br /&gt;
; '''VM'''&lt;br /&gt;
: Virtual Machine.&lt;br /&gt;
; '''VNC'''&lt;br /&gt;
: Virtual Network Computing is a graphical desktop sharing system that uses the RFB protocol to remotely control another computer transmiting the keyboard and mouse events from one computer to another and relaying the graphical screen updates back in the other direction, over a network.&lt;br /&gt;
; '''X11'''&lt;br /&gt;
: X Window System is a computer software system and network protocol that provides a GUI for networked computers.&lt;br /&gt;
; '''XML'''&lt;br /&gt;
: eXtensible Markup Language.&lt;br /&gt;
&lt;br /&gt;
= Maemo Releases =&lt;br /&gt;
&lt;br /&gt;
; '''Mistral'''&lt;br /&gt;
: Maemo 2.0 release for Nokia 770 device. Corresponds to the Nokia Internet Tablet SE 2006 version 2.01.2006.26-8.&lt;br /&gt;
; '''Scirocco'''&lt;br /&gt;
: Maemo 2.1 release for Nokia 770 device. Includs mainly bugfixes and some other enhancements. Corresponds to Nokia Internet Tablet SE 2006 version 2.2006.39-14.&lt;br /&gt;
; '''Gregale'''&lt;br /&gt;
: Maemo 2.2 release for Nokia 770 device (bugfixes and enhancements).&lt;br /&gt;
; '''Bora'''&lt;br /&gt;
: Maemo 3.x releases for Nokia N800 device. Corresponds to Internet Tablet OS releases &amp;quot;1.2006.47-20&amp;quot;, &amp;quot;2.2006.51-6&amp;quot; (Maemo 3.0), &amp;quot;3.2007.10-7&amp;quot; (Maemo 3.1) and &amp;quot;4.2007.26-8&amp;quot;+&amp;quot;4.2007.38-2&amp;quot; (Maemo 3.2).&lt;br /&gt;
; '''Chinook'''&lt;br /&gt;
: Maemo 4.0.x releases for Nokia N800 and N810 devices. Corresponds to Internet Tablet OS releases &amp;quot;1.2007.44-4&amp;quot; (Maemo 4.0) and &amp;quot;2.2007.51-3&amp;quot; (Maemo 4.0.1)&lt;br /&gt;
; '''Diablo'''&lt;br /&gt;
: Maemo 4.1.x releases for Nokia N800, N810 and N810 WiMAX devices. Corresponds to Internet Tablet OS releases &amp;quot;4.2008.23-14&amp;quot; (Maemo 4.1), &amp;quot;4.2008.36-5&amp;quot; (Maemo 4.1.1) and &amp;quot;5.2008.43-7&amp;quot; (Maemo 4.1.2)&lt;br /&gt;
; '''Fremantle'''&lt;br /&gt;
: Maemo 5.x releases for N900 device. Corresponds to Maemo 5 OS release &amp;quot;1.2009.42-11&amp;quot; + eMMC content &amp;quot;1.2009.41-1&amp;quot; (Maemo 5) and OS release &amp;quot;2.2009.51-1&amp;quot; + eMMC content &amp;quot;1.2009.41-1&amp;quot; (Maemo 5 Update)&lt;br /&gt;
; '''Harmattan'''&lt;br /&gt;
: Maemo 6.x releases, corresponds to Maemo 6 OS release &amp;quot;x.2010.xx-x&amp;quot;&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Eclipse_Performance_Profiling</id>
		<title>Documentation/Maemo Eclipse Tutorial/Eclipse Performance Profiling</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Eclipse_Performance_Profiling"/>
				<updated>2010-04-09T09:04:29Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Eclipse Performance Profiling =&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
To obtain high-quality applications to be deployed on user's mobile devices, making sure that your application is bug-free is not enough. Mobile devices have limited resources, mainly CPU processing and memory. Also the way that applications interact with system resources impacts directly on performance. It is very problematic if your application crashes during execution. However, it can be worse if the application freezes due to excessive CPU processing, for example. The OProfile tool can be used to monitor your application and define bottle necks in real-world systems. In order to find problems in performance, Maemo SDK also provides OProfile packages so it can be used to profiling Maemo applications as well Internet Tablet environments.&lt;br /&gt;
&lt;br /&gt;
Maemo Eclipse IDE integration products (ESbox and PluThon) provide support to profiling applications by using OProfile profiling and monitoring tool. This tutorial starts with a quickly introduction to OProfile profiling and monitoring tool. After that, it demonstrates how you can profile C/C++, Qt4 and Python applications at ESbox and PluThon using the OProfile tool integration. Finally, you can see how to interpret OProfile output at ESbox and PluThon.&lt;br /&gt;
&lt;br /&gt;
= OProfile =&lt;br /&gt;
&lt;br /&gt;
OProfile is an open source project that helps you to identify common performance issues, such as loop unrolling, poor cache utilization, inefficient type conversion and redundant operations, branch mispredictions, and so on. OProfile collects information about different counters: interrupt handlers, shared libraries, and much more. OProfile generates different outputs, ranging from simple tables with numbers that describe the total of samples registered during monitoring, to call graphs with detailed information about shared libraries. You can also obtain detailed source annotation, instruction-level reports and call graphs.&lt;br /&gt;
&lt;br /&gt;
To start collecting profiling data, it is necessary to start &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;opcontrol&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; tool. It is OProfile tool that collects the information that is then used to generate profiling reports. After profiling information has been collected with &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;opcontrol&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; tool you can generate the reports you want to with &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;opreport&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; tool.&lt;br /&gt;
&lt;br /&gt;
You can use OProfile on Maemo devices. However, you need to enable it on the kernel, so OProfile can monitor the system and applications. For more information about this step, see chapter [[#Configuring your Maemo device]].&lt;br /&gt;
&lt;br /&gt;
= OProfile and IDE Integration =&lt;br /&gt;
&lt;br /&gt;
Both Maemo Eclipse IDE integration products ESbox and PluThon provide support for OProfile tool for C/C++, Qt4 and Python projects only on Maemo device environments. It does make sense to profile Maemo applications on Scratchbox with OProfile: it would catch also host machine interruptions, signals and produce a lot of other useless information so the result would not be accurate.&lt;br /&gt;
&lt;br /&gt;
OProfile support on ESbox and PluThon uses the command &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;opreport -a -l -g&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; to generate profiling reports. In such cases, OProfile generates the report with source file and line for each symbol (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;-g&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;) and it also accumulates sample and percentage counts in the symbol list (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;-a&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;). This section shows how to profile your applications at ESbox and PluThon and how to analyse profiling results.&lt;br /&gt;
&lt;br /&gt;
== Configuring your Maemo device ==&lt;br /&gt;
&lt;br /&gt;
If you want to configure your device to profile Maemo applications, you need to enable the Maemo device kernel to execute OProfile on it. For more information, see documentation from the OProfile site like ''OProfile Manual'' &amp;lt;ref name=r4&amp;gt;OProfile Manual. http://oprofile.sourceforge.net/doc/index.html&amp;lt;/ref&amp;gt; and from maemo.org site like ''OProfiling with Maemo'' &amp;lt;ref name=r3&amp;gt;OProfiling with Maemo. http://maemo.org/development/tools/doc/diablo/oprofile/&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
ESbox and PluThon products can configure the OProfile environment for you. If the system detects that your Maemo device kernel is not properly configured, a dialog prompts the user (figure [[#fig:eclipse_performance_profiling_prompt_kernel|11.1]]) to configure the kernel for OProfile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Profiling application with OProfile&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 11.1:''' Profiling application with OProfile&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:oprofile-04.png|Image oprofile-04]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Profiling your Maemo application ==&lt;br /&gt;
&lt;br /&gt;
At first, you must create a C/C++, Qt4 or Python project and select an &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;ARMEL&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; Scratchbox target. To run OProfile, right-click on the application (binary for C/C++ and qt4 projects or the Python script for Python projects) and select '''Profile As &amp;amp;gt; Remote OProfile Profiler''', figure [[#fig:eclipse_performance_profiling_oprofile-menu|11.2]]. If the tool is not properly installed at the selected target, the system can automatically install it for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;OProfile Launch Menu&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 11.2:''' OProfile Launch Menu&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:oprofile-01.png|Image oprofile-01]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ESbox and PluThon runs your application on the Maemo device and the result is shown in the OProfile view, figure [[#fig:eclipse_performance_profiling_oprofile-view-05|11.3]]. All statistics found by OProfile are shown in an OProfile viewer, see chapter [[#Analyzing results]] for more details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;OProfile View&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 11.3:''' OProfile View&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:oprofile-05.png|Image oprofile-05]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  If you are planning to run the OProfile profiler more than once, you will probably need to clear current OProfile view before running the current program. For that, you just need to click the '''Delete Current Sample''' button on the OProfile view toolbar. If you do not, current results are merged with the older ones.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Analyzing results ==&lt;br /&gt;
&lt;br /&gt;
Each line of OProfile viewer contains the following information:&lt;br /&gt;
&lt;br /&gt;
; '''Samples'''&lt;br /&gt;
: Shows the number of samples for each symbol.&lt;br /&gt;
; '''Acummulate samples'''&lt;br /&gt;
: Outputs accumulate sample.&lt;br /&gt;
; '''Percentage'''&lt;br /&gt;
: Shows the percentage regarding to total samples for each binary image.&lt;br /&gt;
; '''Acummulate percentage'''&lt;br /&gt;
: Shows the accumulate percentage.&lt;br /&gt;
; '''Line info'''&lt;br /&gt;
: Provides source file and line for each symbol. If the source file is not provided, the label (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;no location information&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;) is shown instead.&lt;br /&gt;
; '''Application name'''&lt;br /&gt;
: Shows the name of binary image.&lt;br /&gt;
; '''Symbol name'''&lt;br /&gt;
: Shows the symbol name. If the symbol name cannot be retrived, the label (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;no symbols&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;) is shown instead.&lt;br /&gt;
&lt;br /&gt;
On the following figure [[#fig:eclipse_performance_profiling_oprofile-view-08|11.4]], there is an example of OProfile chapter from a Maemo C project:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;OProfile View&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 11.4:''' OProfile View&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:oprofile-08.png|Image oprofile-08]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this example, we used a very simple GTK application, which only contains a simple label. On the third line (the selected line), information about library &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;ld-2.5.so&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; is shown in the table. For example, in about 12.030 samples (columm '''Cum. Samples'''), the library was used on 10.879 samples (4.59%). Its symbol name is known as &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/lib/ld-2.5.so&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; (columm '''Symbol Name'''). This library does provides source file, so no information can be shown on '''Line Info''' columm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Setting_Up_ESbox</id>
		<title>Documentation/Maemo Eclipse Tutorial/Setting Up ESbox</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Setting_Up_ESbox"/>
				<updated>2010-04-09T09:04:28Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Setting Up ESbox =&lt;br /&gt;
&lt;br /&gt;
= Setting up Maemo SDK Virtual Image =&lt;br /&gt;
&lt;br /&gt;
The Maemo SDK, Scratchbox, and rootstraps run only on Linux/x86. If you want to use ESbox in Windows or MacOS X - or even Linux/x86-64 - then you can do this by hooking up ESbox with an appropriately configured virtual machine.&lt;br /&gt;
&lt;br /&gt;
Recommended virtual machine images are provided by the [http://maemovmware.garage.maemo.org/2nd_edition Maemo SDK Virtual Image] project. That project covers the configuration and installation issues specific to the virtual machine itself. Although the project includes the term ''vmware'', the images (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*.vmdk&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; files) available there work with all the supported virtualization technology (VMware, VirtualBox and QEMU). This document covers configuring ESbox to use images to support other than native Debian-based Linux systems.&lt;br /&gt;
&lt;br /&gt;
ESbox has the concept of ''Build Machines'' to distinguish the Eclipse host from the machine where C/C++ programs are built and Python programs are interpreted. For Linux/x86 hosts, the host can serve as a build machine. For other hosts, only a virtual machine can be a build machine.&lt;br /&gt;
&lt;br /&gt;
ESbox uses an SSH connection with the virtual machine to perform builds, launch/debug applications, and configure Scratchbox installations and rootstraps, and a Samba connection to share project files between the machines.&lt;br /&gt;
&lt;br /&gt;
An essential aspect of using ESbox with a VM is setting up ''shared folders''. In order to use all the features in Eclipse, projects and the SDK rootstrap must be visible both to the host and the VM. See chapter [[#Setting Up Shared Folders]] for an overview and setup instructions.&lt;br /&gt;
&lt;br /&gt;
== Virtual Machine Engines Supported ==&lt;br /&gt;
&lt;br /&gt;
ESbox supports VMware, QEMU, and VirtualBox virtualisation technologies for the Maemo SDK Virtual Image.&lt;br /&gt;
&lt;br /&gt;
* VMware Workstation/Server 6.x (or Player 2.5.x and 3.x) is supported and recommended for speed. We have detected some problems using VMware Player 3.0. It seems that SSH dropouts are common in this version. VMware Player 2.5.x seems to work fine.&lt;br /&gt;
* VirtualBox 2.1 or newer is supported and recommended for freedom and consistency of behavior across operating systems.&lt;br /&gt;
* QEMU 0.9.0 and newer may be used for freedom and ease of setup, but is quite slow, even when accelerated.&lt;br /&gt;
&lt;br /&gt;
== Virtual Machine Images ==&lt;br /&gt;
&lt;br /&gt;
ESbox runs best with a preconfigured Ubuntu Server-based Maemo SDK Virtual Image, which has a minimal footprint. This &amp;quot;Server&amp;quot; image is configured to provide the best interaction with ESbox. The &amp;quot;Server&amp;quot; image may be used with any of the virtualisation engines above.&lt;br /&gt;
&lt;br /&gt;
The ESbox wizard '''File &amp;amp;gt; New &amp;amp;gt; Other &amp;amp;gt; Maemo Installers &amp;amp;gt; Maemo SDK Virtual Image''' lets you fetch and install the recommended images maintained by the [http://maemovmware.garage.maemo.org/ Maemo SDK Virtual Image] project in concert with the Maemo Eclipse Integration project. The &amp;quot;Server&amp;quot; image comes &amp;quot;bare&amp;quot;, without any pre-installed Maemo SDK. ESbox supports installing Maemo SDK and development environments for C/C++, Python and Qt4 from the installer wizard.&lt;br /&gt;
&lt;br /&gt;
As an lternative to the &amp;quot;Server&amp;quot; image, you can try a Ubuntu Desktop-based Maemo SDK Virtual Image if you want a full out-of-the-box ready environment pre-installed. This &amp;quot;Desktop&amp;quot; image contains fully-configured ESbox and Maemo Diablo and Fremantle SDK development environments inside.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  You should not use the &amp;quot;Desktop&amp;quot; image with native ESbox installation (configuration where Eclipse IDE has been installed to the host PC instead of Maemo SDK Virtual Image) as the &amp;quot;Desktop&amp;quot; image already includes ESbox pre-installed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If you want to use your own virtual image instead of Maemo SDK Virtual Images, ensure it has SSH and Samba support. For SSH, the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;UseDNS&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; flag should be switched off, and to support Samba, you may need an often-running cron job to resynchronize the clock with the host, to avoid timestamp drift issues when building, see the chapter [[#Clock synchronization]].&lt;br /&gt;
&lt;br /&gt;
=== Networking Setup ===&lt;br /&gt;
&lt;br /&gt;
A very important aspect of the ESbox and VM configuration is the ''networking mode''. Modern VM engines usually allow three modes for how the VM virtualizes network access: ''host'', ''NAT'', and ''bridged''.&lt;br /&gt;
&lt;br /&gt;
''Host'' is useless for ESbox, since it implies that the outside world cannot see the VM, and ESbox would be on the outside. Don't use this mode.&lt;br /&gt;
&lt;br /&gt;
''NAT'' is a mode where the VM shares the IP address of the host. This is useful in a lot of cases with ESbox, but it is not appropriate in the default configuration recommended by ESbox, where the address &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;127.0.0.1:2222&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; is used to talk to the VM.&lt;br /&gt;
&lt;br /&gt;
* Shared folders cannot be exposed from the VM to the host, which makes it difficult to use C/C++ indexing and searches with the Maemo SDK. This is because we cannot use port forwarding to remap the Windows CIFS ports to distinguish the hosts from the VMs.&lt;br /&gt;
* SBRSH does not work, since the device communicates with &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;sbrsh&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; running under Scratchbox, but the IP address is the same as the host, which does not run the server. Complex port forwarding could make this work too, but it is not worth the effort.&lt;br /&gt;
&lt;br /&gt;
VMware does provide a &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;vmnet8&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; interface for NAT which has a unique IP address. Unfortunately, this doesn not work reliably.&lt;br /&gt;
&lt;br /&gt;
If you are able to get this working, then you ''can'' use NAT with shared folders and SBRSH.&lt;br /&gt;
&lt;br /&gt;
Since it is not an easy setup, we don not recommend using this mode, unless you know what you are doing, or you have no other choice (for example, QEMU).&lt;br /&gt;
&lt;br /&gt;
''Bridged'' is a mode where the virtual machine has its own IP address on the LAN. To all intents and purposes it appears to be a distinct machine on the network. This gives it enough flexibility to support the shared folder mappings and SBRSH usage mentioned above.&lt;br /&gt;
&lt;br /&gt;
On the other hand, Bridged mode introduces the inconvenience that the DHCP-assigned address of the VM may change between restarts of the machine. This means you need to manually correct the address (for example, in the '''Machine Access''' pane described below). But ESbox provides helpful dialogs reminding you that you may need to update this address and I myself have used it successfully for months.&lt;br /&gt;
&lt;br /&gt;
So, ''Bridged'' mode is the best of the three options and we recommend this one. This is the default for the &amp;quot;server image&amp;quot; provided by the maemovmware project. If you want to change to NAT, you need to reconfigure the networking devices for the given image in the VM engine of choice. See your documentation for details.&lt;br /&gt;
&lt;br /&gt;
== ESbox Build Machine Configuration ==&lt;br /&gt;
&lt;br /&gt;
Configuration is under '''Window &amp;amp;gt; Preferences &amp;amp;gt; ESbox &amp;amp;gt; Build Machines'''. If you navigate here before configuring anything, or try to create a project and launch first, you will get a message directing you to the page, figure [[#fig:virtual_machine_dialog_select_build_machine|6.1]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Build machine selection reminder&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.1:''' Build machine selection reminder&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:dialog-select-build-machine.png|Image dialog-select-build-machine]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You need to select a virtual machine engine (or '''Manual configuration''') and adjust the settings on all the pages accordingly. Each engine has product-specific configuration.&lt;br /&gt;
&lt;br /&gt;
Any selected build machine has a unique configuration in ''Machine Access'' (the user name, password, target/host addresses and ports) and ''Shared Folders'' (the shares providing a mapping between the host and target filesystems) tabs. All machines except for ''Manually Launched'' have a VM-specific configuration tab as well.&lt;br /&gt;
&lt;br /&gt;
== Virtual Machine Specific Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== VMware Configuration ===&lt;br /&gt;
&lt;br /&gt;
The '''Product type''' field lets you select along multiple available VMware engines if you have more than one installed. This is mostly useful if you have installed VMware Workstation or Server, but want to use VMware Player (since they exist in the same directory).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;VMware Options&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.2:''' VMware Options&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:prefs-esbox-build-machines-vmware.png|Image prefs-esbox-build-machines-vmware]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The '''Installation directory''' field should point to either the directory containing &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;vmrun&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;vmware&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;vmplayer&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; (in any host) or the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;VMware Fusion[.app]&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; application or library support directory (in Mac OS X).&lt;br /&gt;
&lt;br /&gt;
ESbox prefers to use &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;vmrun[.exe]&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; for all operations as a command-line controller for virtual machine operations (enumerating, launching, and stopping virtual machines). ESbox is flexible and will look up the directory tree from the specified location to locate the expected executable. If you only have VMware Player, or only want to use player, point to the directory where &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;vmplayer[.exe]&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; exists and set the Product Type to '''Player'''.&lt;br /&gt;
&lt;br /&gt;
The VMX path is the primary file describing the virtual machine (which disk images it uses, what its networking configuration is, and so on). You can edit its settings in a running VMware client.&lt;br /&gt;
&lt;br /&gt;
=== VirtualBox Configuration ===&lt;br /&gt;
&lt;br /&gt;
The '''Executable''' should be the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;VBoxManage&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; program, which is the command line controller for VirtualBox. ESbox uses this to detect whether machines are running, which machines are available (under the '''Virtual Machine''' dropdown), and to launch and stop machines.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;VirtualBox Options&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.3:''' VirtualBox Options&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:prefs-esbox-build-machines-virtualbox.png|Image prefs-esbox-build-machines-virtualbox]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The '''Command''' pattern spells out how VBoxManage is launched (where &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;$VIRTUALBOX&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; is the &amp;quot;executable&amp;quot; path). This probably needs no changes.&lt;br /&gt;
&lt;br /&gt;
The '''Virtual Machine''' dropdown allows you to select one of the registered VirtualBox machine instances. In VirtualBox, all machine instances must be registered. See the [http://maemovmware.garage.maemo.org/2nd_edition/create_vbox_machine.html Maemo SDK Virtual Image] documentation for details.&lt;br /&gt;
&lt;br /&gt;
=== QEMU Configuration ===&lt;br /&gt;
&lt;br /&gt;
The '''Installation Directory''' should point to the top-level directory where the QEMU data files (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*.bin&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;) are located. This may differ from the executable's path.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;QEMU Options&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.4:''' QEMU Options&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:prefs-esbox-build-machines-qemu.png|Image prefs-esbox-build-machines-qemu]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The '''Executable''' is the filename (inside the installation directory) or a full path to the qemu executable.&lt;br /&gt;
&lt;br /&gt;
The '''Command pattern''' is the template used to launch QEMU. Most likely the only edits you would apply would be to remove some of the options (like &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;-kernel-kqemu&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;-usb&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, etc.) or to add additional redirections. See the [http://www.nongnu.org/qemu/user-doc.html QEMU documentation] for a description of these options.&lt;br /&gt;
&lt;br /&gt;
The '''Memory size (Mb)''' tells how much RAM to allot to the virtual machine. This should usually be at least 512 Mb for C/C++ compilation.&lt;br /&gt;
&lt;br /&gt;
The '''Disk image(s)''' field is a comma-separated list of full paths to disk images. These images are assigned, in order, to &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/dev/hda&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/dev/hdb&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, and so on. QEMU supports multiple kinds of disk images (see docs for details). You can use the same maemovmware project VMware &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*.vmdk&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; images here.&lt;br /&gt;
&lt;br /&gt;
=== Machine Access ===&lt;br /&gt;
&lt;br /&gt;
Some fields in the '''Machine Access''' settings should be preconfigured to match the images from the Maemo SDK Virtual Image project, but you need to edit the address and port settings depending on your networking configuration, figure [[#fig:virtual_machine_prefs_esbox_build_machines_machine_access|6.5]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Machine access&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.5:''' Machine access&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:prefs-esbox-build-machines-machine-access.png|Image prefs-esbox-build-machines-machine-access]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use the '''Autoselect Network Settings''' button to try to guess the networking settings from current virtual machine settings and the host machine's network interfaces. This assumes the virtual machine engine, image, and configuration have all been specified correctly. In any case, this is a guess, so read the diagnostic messages, figure [[#fig:virtual_machine_prefs_esbox_build_machines_autoselect_nat|6.6]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Autoselect NAT&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.6:''' Autoselect NAT&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:prefs-esbox-build-machines-autoselect-nat.png|Image prefs-esbox-build-machines-autoselect-nat]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note, when configuring a virtual machine using Bridged networking, it is impossible to guess the actual address the machine will have. By default, ESbox selects the ''network address'' (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*.0&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;) and warns you to update it, figure [[#fig:virtual_machine_autoselect_bridged|6.7]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Autoselect bridged&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.7:''' Autoselect bridged&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:prefs-esbox-build-machines-autoselect-bridged.png|Image prefs-esbox-build-machines-autoselect-bridged]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use the '''Validate''' button to launch the machine or find a running instance and run through a series of tests to validate that the machine is configured properly. If Scratchbox is not yet installed on the target machine, then validation does not pass all the tests.&lt;br /&gt;
&lt;br /&gt;
After closing the dialog, use the '''Apply''' button to accept the changes and launch the virtual machine, if needed.&lt;br /&gt;
&lt;br /&gt;
If you have previously configured a Build Machine and have changed the settings, ESbox may present this dialog, figure [[#fig:virtual_machine_shut_down_vm|6.8]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Shut down?&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.8:''' Shut down?&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-shut-down-vm.png|Image esbox-shut-down-vm]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the machine and disk are the same as the running machine, and you are just synchronizing network settings, you may be able to leave it running. In any event, the supported VM engines themselves are not able to write to the same disk images opened by another engine.&lt;br /&gt;
&lt;br /&gt;
=== More Details ===&lt;br /&gt;
&lt;br /&gt;
The Machine Access tab allows you to configure the networking and authentication with the VM. '''User''' is the account which acts as the agent for all operations with the VM. It should be the same user who owns the Scratchbox installation(s). '''Password''' is the password for the user account.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  For Maemo SDK Virtual Images, the default user is &amp;quot;maemo&amp;quot; and the password is &amp;quot;maemo&amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Target address''' is the address used to access the VM. This may be an IP address or a name. If the '''Autoselect Settings''' button cannot figure it out, you need to discover this experimentally, by watching the boot-time messages, or logging in and using &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/sbin/ifconfig&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; to see what address is assigned to &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;eth0&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Target SSH port''' is the SSH port. This defaults to 2222 for NAT configurations. The default for normal SSH usage is &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;22&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, but if the Target address is &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;127.0.0.1&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, this port must be remapped to avoid conflicts with the host.&lt;br /&gt;
&lt;br /&gt;
For VirtualBox, this port must match the configuration established for a machine via VBoxManage before the machine is launched. See more instructions from the [http://maemovmware.garage.maemo.org/2nd_edition/vbox_installers.html Maemo SDK Virtual Image VirtualBox configuration] document, the [http://maemovmware.garage.maemo.org/2nd_edition/create_vbox_machine.html Maemo SDK Virtual Image port forwarding] document, or the Network Address Translation chapter of the VirtualBox manual.&lt;br /&gt;
&lt;br /&gt;
For VMware, the port must be configured using the '''Virtual Network Editor &amp;amp;gt; NAT &amp;amp;gt; Edit &amp;amp;gt; PortForwarding...''' dialog. Redirect SSH by adding a '''Incoming TCP port''' entry with '''Host Port''' &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;22&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, '''Virtual Machine Address''' matching the Target Address, and a '''Port''' like &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;2222&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;2244&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; matching the Target SSH Port setting.&lt;br /&gt;
&lt;br /&gt;
In Windows VMware, if the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;VMnet1&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;VMnet8&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; devices are not enabled or do not work as expected, be sure they are associated with TCP/IP services. In some situations, these can remain unconfigured. Go to '''Control Panel &amp;amp;gt; Network Connections''' and bring up '''Properties''' for '''VMware Virtual Ethernet Adapter for ...'''. In the '''General''' tab, under '''This connection uses the following items:''', enable '''Internet Protocol (TCP/IP)'''&lt;br /&gt;
&lt;br /&gt;
If you use both VirtualBox and VMware, be sure to use different SSH ports when enabling port forwarding; otherwise they conflict.&lt;br /&gt;
&lt;br /&gt;
For QEMU, this option dictates which port is used, since it is controlled when the machine is launched.&lt;br /&gt;
&lt;br /&gt;
'''Host address''' is the name of the host as seen from the VM - this is never &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;127.0.0.1&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;! The value depends on the kind of networking you are using with the VM. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For VMware, see the '''VM &amp;amp;gt; Removable Devices &amp;amp;gt; Network Adapter''' menu.&lt;br /&gt;
&lt;br /&gt;
For VirtualBox, see the '''machine &amp;amp;gt; Settings &amp;amp;gt; Network &amp;amp;gt; Adapter''' dialog. If necessary, you can find this by logging into the VM (maemo/maemo) and invoking &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/sbin/ifconfig&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For QEMU, the default is &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;10.0.2.2&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; since the IP is shared with the VM and a private subnet is used to reference the host.&lt;br /&gt;
&lt;br /&gt;
== Shared Folders ==&lt;br /&gt;
&lt;br /&gt;
On the '''Shared Folders''' tab, specify the shared folders that ESbox uses to map filesystem paths between the host and VM filesystem. Here you specify mappings for the existing and configured shared folders in the host and VM. You must manually configure file sharing yourself.&lt;br /&gt;
&lt;br /&gt;
See [http://esbox.garage.maemo.org/2nd_edition/shared_folders.html ESbox Shared Folders] document for an overview and setup instructions.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Currently ESbox only supports Samba (Windows/CIFS) shared folders.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  To expose shares from the VM to the host, you must use Bridged networking in the VM. Otherwise you need to understand a lot about port forwarding.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
The default shares are suggestions for the most common setup, so that projects can be built for multiple Scratchbox targets, and so indexing can work. See [http://esbox.garage.maemo.org/2nd_edition/shared_folders.html ESbox Shared Folders] document for details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Shared folders&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.9:''' Shared folders&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:prefs-esbox-build-machines-shared-folders.png|Image prefs-esbox-build-machines-shared-folders]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If '''Local share?''' is yes, you need to configure file sharing on your host and expose a share which can be mounted by the VM. This typically is yes for normal usage (since the Eclipse workspace must be on the local machine). If the setting is no, then in the Maemo SDK VM images, expose the mount in &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/samba/smb.conf&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Add Host Share...''' lets you add an entry from the shared folders exposed on the host. These must be manually configured.&lt;br /&gt;
&lt;br /&gt;
'''Add VM Share...''' lets you add an entry from the shared folders exposed from the virtual machine. This requires that the VM be launched and validated before the button is enabled.&lt;br /&gt;
&lt;br /&gt;
ESbox can automatically mount folders from the host to the virtual machine and from the virtual machine to the host. This dialog appears when ESbox wants to mount a share:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;SMB Mount&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.10:''' SMB Mount&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-mount-share.png|Image esbox-mount-share]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The '''username''' is, by default, the same as the main user account on the given machine, but you may change it if needed, depending on the share's permissions.&lt;br /&gt;
&lt;br /&gt;
The '''workgroup/domain''' may not be required unless you are logged into a Windows domain.&lt;br /&gt;
&lt;br /&gt;
The '''password''' is remembered for future launches of the mount during the current Eclipse session, but it is discarded if the mount fails.&lt;br /&gt;
&lt;br /&gt;
To prevent ESbox from trying to mount the share, change the '''Auto mount?''' setting to '''No'''.&lt;br /&gt;
&lt;br /&gt;
=== Dynamic shared folder status ===&lt;br /&gt;
&lt;br /&gt;
The '''Check folder status while editing''' checkbox dynamically validates the shared folders against a running VM, to assist with some issues that may be tedious to debug by using '''Validate Machines'''.&lt;br /&gt;
&lt;br /&gt;
To use this:&lt;br /&gt;
&lt;br /&gt;
# Be sure the '''Machine Access &amp;amp;gt; Target Address''' and '''Host Address''' fields are valid.&lt;br /&gt;
# Be sure the VM has been launched (using '''Launch Machine''' or a previous '''Validate Machine''' invocation).&lt;br /&gt;
# Enable the checkbox.&lt;br /&gt;
# Edit the entries in the table. The status is updated as you change the fields.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Shared folders&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.11:''' Shared folders&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:prefs-esbox-build-machines-shared-folders-2.png|Image prefs-esbox-build-machines-shared-folders-2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ESbox Virtual Machine Behavior ==&lt;br /&gt;
&lt;br /&gt;
=== Launching ===&lt;br /&gt;
&lt;br /&gt;
Usually, only an explicit user action (like starting a wizard, validating the VM, or viewing ESbox or Maemo preference panels) requires the VM to be running. ESbox connects to a running virtual machine that responds to the configured machine engine, target address, and SSH port in the Machine Access settings. If the specified engine or configured image is not running, then ESbox prompts you to launch the configured machine, figure [[#fig:virtual_machine_launch_vm|6.12]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Virtual Machine Needed&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.12:''' Virtual Machine Needed&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-launch-vm.png|Image esbox-launch-vm]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If the virtual machine is running, but the target cannot be contacted (that is, the SSH address is incorrect), it presents this variant, which indicates the network settings are probably incorrect, figure [[#fig:virtual_machine_launch_vm_bad_network|6.13]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Virtual Machine Needed, network problem&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.13:''' Virtual Machine Needed, network problem&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-launch-vm-bad-network.png|Image esbox-launch-vm-bad-network]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Check the '''Build Machines''' preferences to validate that the '''Machine Access''' settings match.&lt;br /&gt;
# Check '''Network Connections''' preferences in case you are behind a proxy but the VM is not. ESbox uses the proxy settings for all network operations.&lt;br /&gt;
# Check the [http://maemovmware.garage.maemo.org/ Maemo SDK Virtual Image] documentation in case you need to finish configuring your VM. This can be a laborious process if you are using NAT networking, as documented elsewhere in this document.&lt;br /&gt;
&lt;br /&gt;
Both dialogs allow you to launch the virtual machine anew or take one of the actions under '''Help''' (which cancels the current operation) and let you look for other solutions.&lt;br /&gt;
&lt;br /&gt;
Choose '''Launch now''' when you know the machine is not running, and you want ESbox to start it.&lt;br /&gt;
&lt;br /&gt;
Choose '''It's running''' if the machine is running and there was a configuration problem that was fixed in the meantime - for example, ESbox was trying to contact the VM before the SSH server was started, or you have just corrected the virtual machine's settings (you ran &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;dhclient&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or switched between NAT and Bridged modes so that the given address works), or you have fixed the Network Proxy settings in the meantime.&lt;br /&gt;
&lt;br /&gt;
If ESbox still cannot detect the machine, it reports a failure. If you think the VM is running but ESbox tells you it &amp;quot;has stopped running&amp;quot;, be sure you are using exactly the same machine (watch out for multiple copies on your disk, since the full path to the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*.vmx&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; file matters).&lt;br /&gt;
&lt;br /&gt;
Choose '''Cancel''', of course, if you do not want to start the virtual machine. This cancels any operation that requested it.&lt;br /&gt;
&lt;br /&gt;
While the VM is launching, this dialog is shown, figure [[#fig:virtual_machine_launching_vm|6.14]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Launching Virtual Machine&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.14:''' Launching Virtual Machine&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-launching-vm.png|Image esbox-launching-vm]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The dialog remains for a few seconds after boot time. You can expand it in case the machine has booted but the dialog remains, figure [[#fig:virtual_machine_launching_vm_expanded|6.15]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Launching Virtual Machine, expanded&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.15:''' Launching Virtual Machine, expanded&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-launching-vm-expanded.png|Image esbox-launching-vm-expanded]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Closing this dialog does not cancel any operation. It is only informative, to help you look for common problems and solutions while configuring the machine.&lt;br /&gt;
&lt;br /&gt;
=== Shared folder mappings ===&lt;br /&gt;
&lt;br /&gt;
Once you have configured mapping that expose the project to the VM, ESbox automatically selects a project location inside a shared folder for you, when you create or import a project, figure [[#fig:virtual_machine_new_project_vm|6.16]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Default project location&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.16:''' Default project location&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-new-project-vm.png|Image esbox-new-project-vm]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In fact, if the dialog presents an error about the project location not being visible, this means your shared folder mappings are insufficient, because no valid mapping satisfies the goal. This mapping depends on the mapping constraints for the union of the selected targets, figure [[#fig:virtual_machine_new_project_vm_bad|6.17]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Project location, not visible&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.17:''' Project location, not visible&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-new-project-vm-bad.png|Image esbox-new-project-vm-bad]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once you have established mappings exposing the Maemo SDK to the host, ESbox uses these mappings to populate the C/C++ indexer settings when you create, import, or convert a project, figure [[#fig:virtual_machine_indexer_settings|6.18]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Indexer settings&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.18:''' Indexer settings&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-project-indexer-settings.png|Image esbox-project-indexer-settings]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(If you need to change your shared folder setup, or change other things that invalidate these settings, you can use '''Project &amp;amp;gt; Index &amp;amp;gt; Reset Paths and Symbols or Project &amp;amp;gt; Index &amp;amp;gt; Add Missing Paths and Symbols''' to regenerate them from the current mappings.)&lt;br /&gt;
&lt;br /&gt;
== Clock synchronization ==&lt;br /&gt;
&lt;br /&gt;
When you perform C/C++ builds in ESbox, it is essential that the clock settings in the host and the virtual machine match, since they share a Samba filesystem whose timestamps determine whether any work needs to be done. If they mismatch, then either your Make output is littered with &amp;quot;timestamp drift&amp;quot; messages or your programs are not rebuilt as expected.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, the virtual machine engine and configuration influence the clock in different ways. (For example, in VMware, the clock may act differently depending on whether the VMware Tools are installed.) You will need to manually configure your system and experiment to make things work.&lt;br /&gt;
&lt;br /&gt;
One approach is:&lt;br /&gt;
&lt;br /&gt;
# Log into the virtual machine.&lt;br /&gt;
# Disable the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/cron.minutely/00resetclock&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; script (that is, comment out the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;hwclock&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; command). This currently runs without appropriate options in respect to the timezone. But note that the clock can drift (without VM engine tools support).&lt;br /&gt;
# Reconfigure the time zone to match the one you use in the host, using &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;sudo dpkg-reconfigure tzdata&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
# Edit &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/default/rcS&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; and set &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;UTC=no&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
# Edit &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/profile&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; and comment out the line: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;export TZ=Europe/London&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
# Reboot.&lt;br /&gt;
# Sync the clock. Run &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;sudo /sbin/hwclock -localtime -hctosys&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
# Verify the time, using &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;date&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;. This should match the current time on the host.&lt;br /&gt;
&lt;br /&gt;
Now, you can create files in a shared folder and validate their timestamps to match those on the host. In my experiments with VMware Fusion on OS X, unfortunately, the timstamps were off by as much as 5 seconds. So this led to several annoying messages if I built several times in a row, but it is manageable.&lt;br /&gt;
&lt;br /&gt;
== PC Connectivity Interaction ==&lt;br /&gt;
&lt;br /&gt;
Here are some tips and tricks for using [http://pc-connectivity.garage.maemo.org/ PC Connectivity] with ESbox and virtual machines.&lt;br /&gt;
&lt;br /&gt;
=== Using USB, Bluetooth, WLAN ad-hoc Networking (static IPs) ===&lt;br /&gt;
&lt;br /&gt;
USB, WLAN Ad-Hoc, and Bluetooth connections use static addresses (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;192.168.*.15&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;). The default network routing configurations for the host mean that they are only able to directly communicate back and forth with one &amp;quot;machine&amp;quot; at a time. In most cases, you should connect the machine to the host, rather than the virtual machine. Eclipse manages most of the SSH traffic with the device, so the host needs to be able to see the device at its static address. The host cannot see network traffic inside the VM.&lt;br /&gt;
&lt;br /&gt;
Conversely, from the device point of view, the device can only see the machine it is connected to. For cases where the device needs to open a socket from the host, the device must be able to see the host at the host address (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;192.168.*.14&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;). This includes Python debugging and SBRSH.&lt;br /&gt;
&lt;br /&gt;
Note: if you are using NAT networking with the virtual machine, the VM is also able to see the device at the static address. This is the best of both worlds.&lt;br /&gt;
&lt;br /&gt;
Note: When using SBRSH, you most likely need to use WLAN instead of a static IP configuration. The device must be visible on the network inside the virtual machine and the host machine, since SBRSH runs under Scratchbox, and the device needs to mount filesystems from the VM and host.&lt;br /&gt;
&lt;br /&gt;
=== Using WLAN Networking ===&lt;br /&gt;
&lt;br /&gt;
WLAN networking is the most flexible option, as long as your virtual machine is configured for Bridged networking, where it has its own DHCP-acquired address. In this model, the host, the VM, and the device are all peers on the LAN. Thus, the device is visible to the host and the VM, and the device can see the host and the VM.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, of course, WLAN is very slow and prone to packet loss. It can be more difficult to use when debugging, for example.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
'''Cannot access the machine'''&lt;br /&gt;
&lt;br /&gt;
* If ESbox cannot guess your network properly, look at the boot screen for the VM or login to the VM (maemo/maemo) and run &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;sudo dhclient&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; to validate the assigned IP address for the VM, if you are not getting a connection. Only in the case of NAT should you enter &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;127.0.0.1&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; as the Target address in ESbox. For non-NAT cases, the host address is usually &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;xx.xx.xx.2&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; of the target address.&lt;br /&gt;
* &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;ping&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; is a very useful feature. In case of connection problems, cross-check the address displayed, for example, in a launch configuration or in the RSE connection, and verify that you can see if they are from your host or your VM (depending on context).&lt;br /&gt;
* If you are having trouble accessing port forwarding over SSH, note that VMware's virtual network port mappings apply even when it is not hosting a running VM. In such cases, select different target ports for other VM engines.&lt;br /&gt;
&lt;br /&gt;
'''Scratchbox not found'''&lt;br /&gt;
&lt;br /&gt;
* If you have first set up a machine and have had some difficulties with configuring it, you can set ESbox up to make it detect Scratchbox and targets. Go to '''Window &amp;amp;gt; Preferences &amp;amp;gt; Maemo &amp;amp;gt; Installed Targets''' and hit '''Refresh'''.&lt;br /&gt;
&lt;br /&gt;
'''Shared folder issues'''&lt;br /&gt;
&lt;br /&gt;
* See [http://esbox.garage.maemo.org/2nd_edition/shared_folders.html ESbox Shared Folders] document, troubleshooting chapter for more information.&lt;br /&gt;
&lt;br /&gt;
'''Device access issues'''&lt;br /&gt;
&lt;br /&gt;
* The device must be connected to the host (not the VM) in most cases, except for SBRSH (which must use WLAN in most cases).&lt;br /&gt;
* Watch out for firewall software thwarting you. It may block all access to your device. Allow traffic to the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;192.168.*&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; IP range.&lt;br /&gt;
* If your LAN uses &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;192.168.{2,3,4}.*&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; for its own DHCP server, and you want to use the static USB, Bluetooth, or WLAN ad-hoc connections, you need to have separate subnets. Reconfigure these static addresses in the PC-Connectivity Manager and in your host configuration.&lt;br /&gt;
* Avoid host-only networking configurations in your VM. Otherwise you are unable to contact the device or the Internet.&lt;br /&gt;
* SBRSH needs to communicate in three ways: between the host (running Eclipse), the VM (hosting Scratchbox and running the sbrsh client), and the device (running the sbrsh daemon). In most cases, you must use WLAN for this to work, unless you know how to manually configure routing tables to do this over USB or Bluetooth or the ad-hoc WLAN connection.&lt;br /&gt;
&lt;br /&gt;
'''Virtual machine launching when not using ESbox'''&lt;br /&gt;
&lt;br /&gt;
* Eclipse sometimes triggers builds for all projects in the workspace, which may be a problem if you are using other products in your installation and do not want to be prompted to launch the VM.&lt;br /&gt;
* The easiest solution is to switch the '''Build Machine''' to '''None'''. (With this setting, you cannot use most ESbox actions, since no installed targets except for Remote Connections are recognized.) An alternative is to use the '''Manually Launched Machine''' setting. If you use ESbox commands, it fails to connect immediately if no machine responds to the address.&lt;br /&gt;
* Alternately, a configured build machine can live alongside other products if you avoid allowing Eclipse to build ESbox projects: Close ESbox projects or Disable '''Project &amp;amp;gt; Build Automatically''' and Disable '''Window &amp;amp;gt; Preferences &amp;amp;gt; Run/Debug &amp;amp;gt; Build (if required) Before Launching'''&lt;br /&gt;
&lt;br /&gt;
= Setting Up Shared Folders =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Shared folders are needed when you run ESbox with a virtual machine outside the Debian Linux/x86 host. See [http://esbox.garage.maemo.org/2nd_edition/virtual_machines.html ESbox Using Virtual Machines] and chapter [[#Setting up Maemo SDK Virtual Image]] for the primary documentation on virtual machines.&lt;br /&gt;
&lt;br /&gt;
In this configuration, the Maemo SDK (build tools, rootstrap, and so on) is contained inside the filesystem of a virtual machine, and is not directly accessible to the host. Conversely, the projects that you create and edit in Eclipse are created in the host filesystem, and are not directly accessible to the VM.&lt;br /&gt;
&lt;br /&gt;
In order for most ESbox features to work, you must set up and configure shared folders to connect these filesystems together.&lt;br /&gt;
&lt;br /&gt;
* Set up: you must manually set up file sharing in your host and in your VM if you are using a custom image not provided by the [http://maemovmware.garage.maemo.org/ Maemo SDK Virtual Image] project.&lt;br /&gt;
* Configure: you must tell ESbox what shares you have configured on the '''ESbox &amp;amp;gt; Build Machines preference''' page like described in [http://esbox.garage.maemo.org/2nd_edition/virtual_machines.html ESbox Using Virtual Imges] documents and chapter [[#Shared Folders]].&lt;br /&gt;
&lt;br /&gt;
See a diagram explaining how this works in an example Windows configuration, figure [[#fig:virtual_machine_exbox_shared_folder_mapping|6.19]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;ESbox shared folder mapping&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.19:''' ESbox shared folder mapping&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-shared-folder-mapping.png|Image esbox-shared-folder-mapping]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Sharing Eclipse Projects ===&lt;br /&gt;
&lt;br /&gt;
In Eclipse, projects are traditionally created in the host filesystem. Projects are created in the host filesystem by convention. CDT has some support for creating projects on a network using EFS, but EFS-based projects are not properly supported by all the 3rd party plugins that ESbox uses.&lt;br /&gt;
&lt;br /&gt;
The Maemo SDK needs to be able to &amp;quot;see&amp;quot; the project location in order to build your project, so the project location should be inside a directory, which is shared to the virtual machine. For example, in Windows, you may have a shared folder &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;c:/textbackslash/maemo/shared&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;. You create projects somewhere inside this tree. The share has read-write permissions so the build can generate object files and executables. The Eclipse workspace itself does not have to live inside the shared folder, but it can be simpler to understand.&lt;br /&gt;
&lt;br /&gt;
At the same time, the shared folder from the host must be mounted in the VM in a location visible to the rootstrap, so that the SDK build tools can locate your C/C++ sources and headers or Python scripts.&lt;br /&gt;
&lt;br /&gt;
Scratchbox 1 uses a sandbox model, whch means only files inside certain directories of &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/scratchbox&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; are visible. It is best to select a directory that does not change locations for different rootstraps, such as the user's home directory inside SB1. A suitable location is &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/scratchbox/users/&amp;amp;lt;user&amp;amp;gt;/home/&amp;amp;lt;user&amp;amp;gt;/shared&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For Scratchbox 2, a similar kind of sandboxing occurs, but it is slightly less restrictive. We recommend mounting any shares inside the user's home directory. A suitable location is &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/home/&amp;amp;lt;user&amp;amp;gt;/shared&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  This choice exposes occasional problems when Unix filesystem semantics are not fully emulated over Samba shares, such as when softlinks are created by build scripts, and building is a little slower than with a native filesystem. But we chose to optimize for ease of Eclipse integration and speed of IDE/editor/debugger-time activity over&amp;lt;br&amp;gt;build-time performance.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sharing Maemo SDK ===&lt;br /&gt;
&lt;br /&gt;
CDT's C/C++ indexer parses the sources and headers of C/C++ projects, so you can look up &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;#includes&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; and use code completion, symbol lookup, cross-referencing, type/call hierarchies, and so on. The indexer data is also used to resolve symbols for use by Maemo C++ hover help.&lt;br /&gt;
&lt;br /&gt;
For this parsing to be complete and cover most of the identifiers defined or referenced in your project, the Maemo SDK headers need to be visible to the indexer. The easiest way to do this with the stock C/C++ Includes and Symbols UI is to have the Maemo SDK visible to the host filesystem. CDT supports offline or precompiled indexes, which would obviate the need to directly expose the SDK to the host. This feature was not implemented in ESbox but, it is worthwhile to expose the SDK contents to the host so you can browse Maemo headers in the editor.&lt;br /&gt;
&lt;br /&gt;
This kind of sharing is not required for normal build, launch, or debug operations.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  For sharing from the VM to the host, the network adapter setup in the VM should be Bridged Networking.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
NAT networking requires port forwarding over the CIFS port 445 to avoid conflicting with the SMB/CIFS server in host PC, but Windows at least does not easily allow you to specify an alternate CIFS port with programs like &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;NET USE&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;. Also, in Mac OS X, VMware Fusion does not appear to support user-configured port forwarding.&lt;br /&gt;
&lt;br /&gt;
The virtual machine must export shares so the Maemo rootstraps can be mounted in the host. You want to capture the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;compilers&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;users/.../targets&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; directories for Scratchbox 1 (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/scratchbox&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; captures both) and the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/home/.../.maemo-sdk&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; directory for Scratchbox 2 (the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/home/&amp;amp;lt;user&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; directory is good enough).&lt;br /&gt;
&lt;br /&gt;
The [http://maemovmware.garage.maemo.org/ Maemo SDK Virtual Images] will export these shares by default.&lt;br /&gt;
&lt;br /&gt;
== Default Shared Folders Configuration ==&lt;br /&gt;
&lt;br /&gt;
ESbox publishes default shares when you configure a new build machine. For Eclipse project sharing, ESbox provides these shares:&lt;br /&gt;
&lt;br /&gt;
* Local share = Yes&lt;br /&gt;
* Share path = &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;c:/maemo/shared&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/home/&amp;amp;lt;user&amp;amp;gt;/Public&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* Mount path = &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/scratchbox/users/maemo/home/maemo/shared&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
* Local share = Yes&lt;br /&gt;
* Share path = &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;c:/ maemo/shared&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/home/&amp;amp;lt;user&amp;amp;gt;/Public&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* Mount path = &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/home/maemo/shared&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Feel free to change the Share Path to whatever you have on your system. The Mount Paths, though, have been selected specially. They point into the user's home on the VM so that Scratchbox 1 and Scratchbox 2 can see the projects in the same Scratchbox-relative directory at build time. Additionally, they point to a location that map the same no matter which target you are building.&lt;br /&gt;
&lt;br /&gt;
For Maemo SDK sharing, ESbox provides these shares:&lt;br /&gt;
&lt;br /&gt;
* Local share? = No&lt;br /&gt;
* Share path = &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/scratchbox&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* Mount path = &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;S:&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/Volumes/scratchbox&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
&lt;br /&gt;
* Local share? = No&lt;br /&gt;
* Share path = &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/home/maemo&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* Mount path = &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;T:&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/Volumes/maemo&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again, change the Mount Path according to your preferences.&lt;br /&gt;
&lt;br /&gt;
These shares allow access to enough of the SDK to allow full C/C++ indexing. The home directory is exposed mainly because Scratchbox 2 places SDKs under &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;~/.maemo-sdk&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;. However, we suggest the whole home directory, which may be useful, if you want to move files back and forth between the host and VM.&lt;br /&gt;
&lt;br /&gt;
== How to Make Shares in Windows XP ==&lt;br /&gt;
&lt;br /&gt;
Take these steps to share a folder like &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;c:/maemo/shared&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; (or whatever you prefer).&lt;br /&gt;
&lt;br /&gt;
=== Enabling sharing services ===&lt;br /&gt;
&lt;br /&gt;
Be sure to enable '''Windows File &amp;amp;amp; Print Sharing'''. You will see it on a fresh system when you first select '''Sharing &amp;amp;amp; Security...''' from a folder's context menu in Windows Explorer. Alternately, visit '''Control Panel &amp;amp;gt; Administrative Tools &amp;amp;gt; Services''' and enable the '''Server''' service.&lt;br /&gt;
&lt;br /&gt;
=== Exporting shares ===&lt;br /&gt;
&lt;br /&gt;
Under Windows Explorer, right click on a folder and select '''Sharing and Security...''', figure [[#fig:shared_folders_xp_share_menu|6.20]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Sharing and Security...&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.20:''' Sharing and Security...&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:xp-share-menu.png|Image xp-share-menu]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You will see a dialog for configuring a share, figure [[#fig:shared_folders_xp_share_dialog|6.21]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;shared Properties&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.21:''' shared Properties&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:xp-share-dialog.png|Image xp-share-dialog]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Check '''Share this folder'''.&lt;br /&gt;
&lt;br /&gt;
Edit the '''Share name''', if needed. You need to enter the same value in the Shared Folders page. Usually this is the same as the last segment of the shared folder.&lt;br /&gt;
&lt;br /&gt;
For '''User limit''', you may choose to limit the number of users. ESbox will attempt to share a folder into a VM only once, even if you have multiple mappings established, by using bind mounts to mirror the original mount.&lt;br /&gt;
&lt;br /&gt;
Edit the '''Permissions''' and ensure that your local user account (who runs Eclipse) has '''Full Control''' (change and read). The build process needs to write object files, dependencies, and executables, figure [[#fig:shared_folders_xp_share_permissions|6.22]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Share Permissions&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.22:''' Share Permissions&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:xp-share-permissions.png|Image xp-share-permissions]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Export a single folder rather than a drive. It is inherently unsafe to export entire drives, and ESbox does not propose adding mappings for exported drives.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== How to Make Shares in Windows Vista ==&lt;br /&gt;
&lt;br /&gt;
Take these steps to share a folder like &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;c:/maemo/shared&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; (or whatever you prefer).&lt;br /&gt;
&lt;br /&gt;
=== Enable file sharing services ===&lt;br /&gt;
&lt;br /&gt;
Under '''Control Panel &amp;amp;gt; Network and Internet &amp;amp;gt; Network and Sharing Center''', the entry '''Sharing and Discovery &amp;amp;gt; File sharing''' should be '''On''', figure [[#fig:shared_folders_vista_share_config|6.23]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Sharing and Discovery&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.23:''' Sharing and Discovery&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:vista-share-config.png|Image vista-share-config]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Exporting shares ===&lt;br /&gt;
&lt;br /&gt;
Under Windows Explorer, right click on a folder and select '''Share...''', figure [[#fig:shared_folders_vista_menu_share|6.24]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Share...&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.24:''' Share...&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:vista-menu-share.png|Image vista-menu-share]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensure that your local user account (who runs Eclipse) is in the share list, and has '''Permission Level''' = '''Owner''' (read and write). The build process needs to write and delete object files, dependencies, and executables, figure [[#fig:shared_folders_vista_share_permissions|6.25]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Share permissions&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.25:''' Share permissions&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:vista-share-permissions.png|Image vista-share-permissions]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Export a single folder rather than a drive. It is inherently unsafe to export entire drives, and ESbox does not propose adding mappings for exported drives.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== How to Make Shares in Windows 7 ==&lt;br /&gt;
&lt;br /&gt;
Take these steps to share a folder like &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;c:/maemo/shared&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; (or whatever you prefer).&lt;br /&gt;
&lt;br /&gt;
=== Enable sharing ===&lt;br /&gt;
&lt;br /&gt;
Under '''Control Panel &amp;amp;gt; Network and Internet &amp;amp;gt; Choose homegroup and sharing options &amp;amp;gt; Change advanced sharing settings...''', the entry '''Turn on file and printer sharing''' should be selected, figure [[#fig:shared_folders_w7_sharing_options|6.26]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;File and printer sharing&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.26:''' File and printer sharing&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:w7-sharing-options.png|Image w7-sharing-options]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Exporting shares ===&lt;br /&gt;
&lt;br /&gt;
Under Windows Explorer, right click on a folder and select '''Properties''', figure [[#fig:shared_folders_w7_sharing_menu|6.27]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Properties&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.27:''' Properties&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:w7-sharing-menu.png|Image w7-sharing-menu]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select '''Share''', figure [[#fig:shared_folders_w7_sharing_folder_properties|6.28]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Share...&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.28:''' Share...&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:w7-sharing-folder-properties.png|Image w7-sharing-folder-properties]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensure that your local user account (who runs Eclipse) is in the share list, and has '''Permission Level''' = '''Owner''' (read and write). The build process needs to write and delete object files, dependencies, and executables.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Export a single folder rather than a drive. It is inherently unsafe to export entire drives, and ESbox does not propose adding mappings for exported drives.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== How to Make Shares in Mac OS X ==&lt;br /&gt;
&lt;br /&gt;
=== Enabling Windows/SMB File Sharing ===&lt;br /&gt;
&lt;br /&gt;
Open '''System Preferences &amp;amp;gt; Sharing'''. Click the lock and enter an administrator's credentials to make changes.&lt;br /&gt;
&lt;br /&gt;
Enable '''File Sharing'''. Click '''Options....'''&lt;br /&gt;
&lt;br /&gt;
Check the option '''Share files and folders using SMB'''. This is the protocol used for Windows-style file sharing, figure [[#fig:shared_folders_osx_share_smb_enable|6.29]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Enable SMB sharing&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.29:''' Enable SMB sharing&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:osx-share-smb-enable.png|Image osx-share-smb-enable]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Click '''Options....'''&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  In Snow Leopard (10.6 or newer), you have to enable encrypted password support in Samba in the virtual machine. Inside the VM, edit &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/samba/smb.conf&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; and change the line under the &amp;quot;Authentication&amp;quot; section: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;encrypt passwords = false&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; to &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;encrypt passwords = true&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If this is not done, you encounter numerous failed password attempts. Other host operating systems and Samba/SMB/CIFS versions may not allow usage of unencrypted passwords.&lt;br /&gt;
&lt;br /&gt;
=== Exporting Shares ===&lt;br /&gt;
&lt;br /&gt;
Use the default shares for your account (''Public'', which is under &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/home/&amp;amp;lt;user&amp;amp;gt;/Public&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;), or create new ones. Ensure your user account (who runs Eclipse) has '''Read and Write''' permissions, figure [[#fig:shared_folders_osx_share_prefs|6.30]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;File Sharing&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.30:''' File Sharing&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:osx-share-prefs.png|Image osx-share-prefs]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The '''Share name''' used in ESbox comes from the label under '''Shared Folders'''.&lt;br /&gt;
&lt;br /&gt;
== How to Make Shares in Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Enabling File Sharing ===&lt;br /&gt;
&lt;br /&gt;
This also uses &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Windows-style&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; file sharing. However, when the host and VM both run Linux, and you are using a modern version of Samba (3.x), POSIX file semantics are supported, so there is no loss of functionality (permissions, softlinks, and so on are preserved). Ensure that the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;samba&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; package is installed from your distribution's package repository and that &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/samba/smb.conf&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; file exists.&lt;br /&gt;
&lt;br /&gt;
=== Exporting Shares (Manual) ===&lt;br /&gt;
&lt;br /&gt;
'''Method 1'''&lt;br /&gt;
&lt;br /&gt;
If you are in the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;sambashare&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; group, you may define a user share directly. This is done by adding an entry to &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/var/lib/samba/usershares&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; (or, to the path defined by the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;usershare path&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; option in &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/samba/smb.conf&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; file. Try &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;testparm -s -parameter-name='usershare path'&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; to see the setting).&lt;br /&gt;
&lt;br /&gt;
Add a text file to this directory whose name is the Share name (for example, &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;public&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;). Specify its contents like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#VERSION 3&lt;br /&gt;
 path=/home/localuser/Public&lt;br /&gt;
 comment=&lt;br /&gt;
 usershare_acl=S-1-1-0:F&lt;br /&gt;
 guest_ok=yes&lt;br /&gt;
 directory mask=755&lt;br /&gt;
 create mask=644&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The share will immediately become available.&lt;br /&gt;
&lt;br /&gt;
If your Samba server is older, you may need to use this format:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#VERSION 2&lt;br /&gt;
 path=/home/localuser/Public&lt;br /&gt;
 comment=&lt;br /&gt;
 usershare_acl=S-1-1-0:F&lt;br /&gt;
 guest_ok=y&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Method 2'''&lt;br /&gt;
&lt;br /&gt;
Alternately, you may add the share directly to the Samba configuration. Edit the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/etc/samba/smb.conf&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; file as root.&lt;br /&gt;
&lt;br /&gt;
Add an entry like the following to the end of the file:&lt;br /&gt;
&lt;br /&gt;
 [Public]&lt;br /&gt;
 writable = yes&lt;br /&gt;
 public = yes&lt;br /&gt;
 browseable = yes&lt;br /&gt;
 path = /home/localuser/Public&lt;br /&gt;
&lt;br /&gt;
Substitute appropriate values for &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;path&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; and select a custom share name instead of &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Public&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; in brackets. The bracketed section name is the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Share name&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; used in ESbox.&lt;br /&gt;
&lt;br /&gt;
Then restart samba with: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;$ sudo killall -HUP smbd&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Exporting Shares (GNOME) ===&lt;br /&gt;
&lt;br /&gt;
Alternately, under GNOME and Nautilus, you may export shares through theUI, by using the '''Sharing Options''' item on a folder's context menu, figure [[#fig:shared_folders_gnome_share_menu|6.31]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Sharing Options&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.31:''' Sharing Options&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:gnome-share-menu.png|Image gnome-share-menu]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Check '''Share this folder'''. Type in the '''Share name''' to use (which will serve the same role in the ESbox Shared Folders configuration). If you are using this folder for hosting projects, enable '''Allow other people to write in this folder'''.&lt;br /&gt;
&lt;br /&gt;
You may also need to enable '''Guest access''' if you do not have the same user accounts in the host and VM, figure [[#fig:shared_folders_gnome_share_dialog|6.32]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Folder Sharing&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.32:''' Folder Sharing&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:gnome-share-dialog.png|Image gnome-share-dialog]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Such shares are created as user shares, as described above.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
'''Shared folder configuration problems'''&lt;br /&gt;
&lt;br /&gt;
If you cannot mount to shared folders published from Windows, and you get the error &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;mount error 12 = cannot allocate memory&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, then this is a host issue. Certain virus scanners may reset a registry setting to an inappropriately low value, making it impossible to export shares. You can fix this in your Windows registry.&lt;br /&gt;
&lt;br /&gt;
Edit the key HKEY_ LOCAL_ MACHINE\System\CurrentControlSet \Services\LanmanServer\Parameters\IRPStackSize. Define it as a DWORD value (if missing). Set it to a value in the decimal range 15 to 18. The documentation is unclear what this value indicates, but it is probably a power-of-two. It may require some experimentation. The new setting will only be read when the sharing service is restarted. You may do this via '''Control Panel &amp;amp;gt; Administrative Tools &amp;amp;gt; Services &amp;amp;gt; Server''' and restart, or if you have got more time to spare, reboot your system.&lt;br /&gt;
&lt;br /&gt;
Also see the [http://support.microsoft.com/default.aspx?scid=kb;en-us;177078 Microsoft Knowledge Base] article for more information.&lt;br /&gt;
&lt;br /&gt;
'''Time synchronzation problems'''&lt;br /&gt;
&lt;br /&gt;
Be careful about the time synchronization configuration in the VM or the timezone used in the VM image.&lt;br /&gt;
&lt;br /&gt;
If you see warnings like:&lt;br /&gt;
&lt;br /&gt;
 make: Warning: File &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Makefile&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; has modification time &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;1.1e+07&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; in the future &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;rm -f *.o helloworld&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; make: warning: Clock skew detected. Your build may be incomplete.&lt;br /&gt;
&lt;br /&gt;
then install the appropriate virtualization tools to ensure the time is synchronized.&lt;br /&gt;
&lt;br /&gt;
When using VirtualBox, please install Guest Additions to fix the time synchronization. In VMware, install VMware Tools. Alternately, log into to VM and change the timezone. There is not consistent behaviour between VM engines, so some tweaking may be required. You may need to be connected to a LAN for the PC &amp;amp;lt;-&amp;amp;gt; VM communication to work properly. Otherwise shared folders will not be mountable and you may get mysterious timeouts instead.&lt;br /&gt;
&lt;br /&gt;
If you use Windows and your VM uses NAT, it is unlikely that you are able to mount folders from the VM without significant advanced networking setup effort. You would need to use port forwarding to see ports 139 and 445 from the VM without conflicting with the host's own sharing protocol. Windows does not provide an obvious way to use SMB with different ports and you need to set up some sort of virtual host over SSH to forward SMB traffic.&lt;br /&gt;
&lt;br /&gt;
'''Autotools projects fail to build Makefile'''&lt;br /&gt;
&lt;br /&gt;
If you have created or imported an autotools-based project, and run autoconf and configure, but make reports errors like: &amp;lt;code&amp;gt;make: *** No rule to make target 'all'. Stop.&amp;lt;/code&amp;gt; the reason may be compatibility problem between older &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;autoconf&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; versions and Samba shares.&lt;br /&gt;
&lt;br /&gt;
This may be due to a known file truncation issue that occurs when using &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;autoconf&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; 2.62 or older over Samba shares. Due to trying to rename files before closing them, the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;configure&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; files will be truncated, preventing Makefiles from being generated. Current Maemo SDKs may still ship these old versions of &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;autoconf&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
ESbox can repair the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;autoconf&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; installation in Scratchbox for you if you install it using the Scratchbox 1 installer wizard. Or, if you have an old image or have manually installed Scratchbox 1, you can right-click the Scratchbox node (for example, in '''Window &amp;amp;gt; Preferences &amp;amp;gt; Maemo &amp;amp;gt; Installed Targets''') and select '''Patch autoconf'''. A wizard guides you through the process of repairing the installation.&lt;br /&gt;
&lt;br /&gt;
= Setting up X Server =&lt;br /&gt;
&lt;br /&gt;
== Setting up X Server on Windows ==&lt;br /&gt;
&lt;br /&gt;
ESbox has been tested with the Cygwin/X server. Cygwin/X server is recommended since Cygwin is required also for other functionality like SSH.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  There are serious issues with the Cygwin 1.7 X11 server when used in Windows 7 (or Windows Vista), meaning that Maemo applications crash the server. Use the Cygwin 1.5.25-15 version instead if you encounter issues. See [http://garage.maemo.org/tracker/?func=detail&amp;amp;atid=1420&amp;amp;aid=4897&amp;amp;group_id=192 this bug] for current status.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You do not need to install all of Cygwin to use X server. It is sufficient to download the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;setup.exe&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; Cygwin installer from the [http://www.cygwin.com/ Cygwin site] and to select the '''X11/xorg-xserver''', '''X11/xinit''' and '''X11/xdpyinfo''' packages.&lt;br /&gt;
&lt;br /&gt;
=== Runtime display requirements for Fremantle SDKs ===&lt;br /&gt;
&lt;br /&gt;
Fremantle requires a 16-bit color depth for the display. Because Cygwin/X X11 server uses the default display depth from the host PC operating system, you will see the following Eclipse dialog if you launch Eclipse IDE in some other than 16-bit display mode, figure [[#fig:x_setup_windows_color_depth_warning|6.33]].&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Fremantle platform requires X11 server to use 16-bit color depth. Because Cygwin X11 server uses the display depth of the Windows desktop, Windows desktop color depth for host PC must be changed to 16-bit, if depth is something different by default.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Colour depth warning&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.33:''' Colour depth warning&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:warning_color_depth.png|Image warning_color_depth]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some mouse pointer workarounds in earlier versions of ESbox are no longer needed. If they are still set, you see this dialog asking permission to modify your '''ESbox &amp;amp;gt; X Server''' command launch parameters, figure [[#fig:x_setup_windows_mouse_pointer_warning|6.34]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Mouse pointer warning&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.34:''' Mouse pointer warning&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:warning_options.png|Image warning_options]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also see the combined warning if both changes are needed, figure [[#fig:x_setup_windows_combined_warning|6.35]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Combined warning&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.35:''' Combined warning&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:warning_color_depth_options.png|Image warning_color_depth_options]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to change colour depth in Windows XP ===&lt;br /&gt;
&lt;br /&gt;
Right-click the desktop, and then click '''Properties''', figure [[#fig:x_setup_windows_xp_desktop|6.36]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Windows XP desktop properties&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.36:''' Windows XP desktop properties&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:xp_desktop.png|Image xp_desktop]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click the '''Settings''' tab.&lt;br /&gt;
&lt;br /&gt;
Click the drop-down list in the '''Color Quality''' field and select '''Medium (16 bit)'''.&lt;br /&gt;
&lt;br /&gt;
Click '''OK''', figure [[#fig:x_setup_windows_xp_desktop_properties|6.37]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Windows XP Display Properties&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.37:''' Windows XP Display Properties&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:xp_display_properties.png|Image xp_display_properties]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to change colour depth in Windows Vista ===&lt;br /&gt;
&lt;br /&gt;
Right-click the desktop, and then click '''Personalize''', figure [[#fig:x_setup_windows_vista_desktop|6.38]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Windows Vista desktop properties&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.38:''' Windows Vista desktop properties&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:vista_desktop.png|Image vista_desktop]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click the '''Display Settings''', figure [[#fig:x_setup_windows_vista_control_panel|6.39]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Windows Vista Personalization&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.39:''' Windows Vista Personalization&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:vista_control_panel.png|Image vista_control_panel]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click the drop-down list in the '''Colors''' field and select '''Medium (16 bit)'''.&lt;br /&gt;
&lt;br /&gt;
Click '''Ok''', figure [[#fig:x_setup_windows_vista_display_properties|6.40]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Windows Vista Display Settings&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.40:''' Windows Vista Display Settings&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:vista_display_properties.png|Image vista_display_properties]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== How to change the display colour depth in Windows 7 ===&lt;br /&gt;
&lt;br /&gt;
Open the Control panel ('''Start &amp;amp;gt; Control Panel'''), figure [[#fig:x_setup_windows_7_control_panel_menu|6.41]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Windows 7 Start menu&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.41:''' Windows 7 Start menu&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:7_control_panel_menu.png|Image 7_control_panel_menu]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click '''Adjust screen resolution''' under '''Appearance and Personalization''', figure [[#fig:x_setup_windows_7_appearance_personalization|6.42]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Windows 7 Control Panel&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.42:''' Windows 7 Control Panel&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:7_appearance_personalization.png|Image 7_appearance_personalization]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click '''Advanced settings''', figure [[#fig:x_setup_windows_7_screen_resolution|6.43]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Windows 7 Screen Resolution&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.43:''' Windows 7 Screen Resolution&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:7_screen_resolution.png|Image 7_screen_resolution]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click the '''Monitor''' tab, figure [[#fig:x_setup_windows_7_monitor_tab|6.44]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Windows 7 Monitor tab&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.44:''' Windows 7 Monitor tab&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:7_monitor_tab.png|Image 7_monitor_tab]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Under '''Colors''', select '''High Color (16 bit)''', and then click '''OK'''.&lt;br /&gt;
&lt;br /&gt;
== Setting up X Server on Mac OS X ==&lt;br /&gt;
&lt;br /&gt;
=== Installing the server ===&lt;br /&gt;
&lt;br /&gt;
The Xephyr server is recommended since it tracks the newest X server extensions used by Fremantle. Find this in the [http://xquartz.macosforge.org/trac/wiki/X112.3.3 Xquartz project].&lt;br /&gt;
&lt;br /&gt;
=== Runtime display requirements for Fremantle SDKs ===&lt;br /&gt;
&lt;br /&gt;
Fremantle requires a 16-bit color depth for the display. Because Xephyr X11 server uses the default display depth from the host PC operating system you will see Eclipse dialog with warning if you launch Eclipse IDE in some other than 16-bit display mode. Set up your host PC display to have '''Thousands''' of colours in the '''System Preferences &amp;amp;gt; Display field'''.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Fremantle platform requires X11 server to use 16-bit color depth. Because Xephyr X11 server uses the display depth of the Mac OS X desktop, Mac OS X desktop color depth for host PC must be changed to 16-bit, if depth is something different by default.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If ESbox notices that you are trying to run X in an incorrect configuration, it asks you to disable the MIT-SHM option, which is a workaround that fixes the issue, figure [[#fig:x_setup_mac_shm_warning|6.45]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;MIT-SHM extension warning&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 6.45:''' MIT-SHM extension warning&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:shm_warning.png|Image shm_warning]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click '''Yes''' to warning above to disable MIT-SHM extension in the command launch pattern in the '''ESbox &amp;amp;gt; X Server''' preference page and restart the server.&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Installation_Methods</id>
		<title>Documentation/Maemo Eclipse Tutorial/Installation Methods</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Installation_Methods"/>
				<updated>2010-04-09T09:04:28Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Installation Methods =&lt;br /&gt;
&lt;br /&gt;
= PC Connectivity =&lt;br /&gt;
&lt;br /&gt;
In order to communicate with your Maemo device, a set of daemons and utilities needs to be installed to the host PC and Maemo device.&lt;br /&gt;
&lt;br /&gt;
Find the complete description and installation instructions on the [http://pc-connectivity.garage.maemo.org/ PC Connectivity project web site] and ''Maemo PC Connectivity Tutorial'' &amp;lt;ref name=r2&amp;gt;Maemo PC Connectivity Tutorial. http://library.maemodocs.nokia.com&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Maemo PC Connectivity ==&lt;br /&gt;
&lt;br /&gt;
On the Maemo device, you need the other half of PC Connectivity, Maemo PC Connectivity, containing the servers that match the clients installed on the host PC side with Host PC Connectivity. The Maemo PC Connectivity requires either Diablo or Fremantle based Maemo device (N800, N810 or N900).&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  You can update your Maemo device operating system using the '''File &amp;amp;gt; New &amp;amp;gt; Other &amp;amp;gt; Maemo Installers &amp;amp;gt; Flash Images to Device''' Eclipse IDE wizard or Maemo Flasher-3.5 command line tool.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Install the Maemo PC Connectivity on the Mameo device before installing Maemo ESbox or PluThon Eclipse IDE environments.&lt;br /&gt;
&lt;br /&gt;
== Host PC Connectivity ==&lt;br /&gt;
&lt;br /&gt;
Host PC Connectivity provides host-side software, like SSH and SBRSH clients, Rsync, FTP client, and the TightVNC viewer. These are packaged together conveniently for installation on Linux, Windows, and Mac OS X Intel.&lt;br /&gt;
&lt;br /&gt;
Install the Host PC Connectivity on the host PC before installing Maemo ESbox or PluThon Eclipse IDE environments.&lt;br /&gt;
&lt;br /&gt;
= Installation via Product Archives =&lt;br /&gt;
&lt;br /&gt;
The Product Archives come in two parts: a common archive, containing the bulk of the installation, and an OS-specific archive. If your host OS is not represented, please use Maemo update sites installation for the best results.&lt;br /&gt;
&lt;br /&gt;
The distributed archives can be extracted anywhere on your system to provide a full Eclipse Ganymede SR2 environment with ESbox or PluThon and all its dependencies pre-installed.&lt;br /&gt;
&lt;br /&gt;
The installation from product archives is upgradeable to new versions using Maemo Update Site.&lt;br /&gt;
&lt;br /&gt;
== Product Archives ==&lt;br /&gt;
&lt;br /&gt;
For ESbox download archives from [https://garage.maemo.org/frs/?group_id=192 ESbox Garage project download] page.&lt;br /&gt;
&lt;br /&gt;
For PluThon download archives from [https://garage.maemo.org/frs/?group_id=247 PluThon Garage project download] page.&lt;br /&gt;
&lt;br /&gt;
=== Linux/x86 ===&lt;br /&gt;
&lt;br /&gt;
ESbox archives:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;esbox_2.0.0-R20091216-common.zip&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;esbox_2.0.0-R20091216-linux.gtk.x86.zip&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PluThon archives:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;pluthon_2.0.0-R20091216-common.zip&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;pluthon_2.0.0-R20091216-linux.gtk.x86.zip&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  In Ubuntu 9.10, Fedora 11, or other platforms using GTK+ 2.18 and/or Mozilla xulrunner 1.19, you must launch ESbox with the script &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;esbox.sh&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; and PluThon with the script &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;pluthon.sh&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; included in the archives. Otherwise, Eclipse will fail to start and/or will have erratic UI. See [http://mou.me.uk/2009/10/31/fixing-eclipse-in-ubuntu-9-10-karmic-koala/ this post for GTK+ details] and [http://mou.me.uk/2009/10/31/fixing-eclipse-in-ubuntu-9-10-karmic-koala/ this bug for xulrunner information].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Windows/x86 ===&lt;br /&gt;
&lt;br /&gt;
ESbox archives:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;esbox_2.0.0-R20091216-common.zip&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;esbox_2.0.0-R20091216-win32.win32.x86.zip&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PluThon archives:&lt;br /&gt;
&lt;br /&gt;
* pluthon_2.0.0-R20091216-common.zip&lt;br /&gt;
* &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;pluthon_2.0.0-R20091216-win32.win32.x86.zip&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mac OS X/Intel ===&lt;br /&gt;
&lt;br /&gt;
ESbox archives:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;esbox_2.0.0-R20091216-common.zip&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;esbox_2.0.0-R20091216-macosx.carbon.x86.zip&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PluThon archives:&lt;br /&gt;
&lt;br /&gt;
* pluthon_2.0.0-R20091216-common.zip&lt;br /&gt;
* &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;pluthon_2.0.0-R20091216-macosx.carbon.x86.zip&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing and Running ==&lt;br /&gt;
&lt;br /&gt;
Extract and install the archives for your operating system: Unzip the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*-common.zip&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; and &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*-&amp;amp;lt;host OS&amp;amp;gt;.zip&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; archive into the same directory of your choice.&lt;br /&gt;
&lt;br /&gt;
If you use a Sun Java JRE, you can edit &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;esbox.ini&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;pluthon.ini&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; to adjust maximum memory usage (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;-Xmx&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;-XX:MaxPermSize&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Run the main executable or script:&lt;br /&gt;
&lt;br /&gt;
; '''Linux'''&lt;br /&gt;
: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;./esbox.sh&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;./pluthon.sh&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
; '''Win32'''&lt;br /&gt;
: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;./esbox.exe&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;./pluthon.exe&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
; '''Mac OS X'''&lt;br /&gt;
: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;./esbox.app/Contents/MacOS/esbox&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;./pluthon.app/Contents/MacOS/esbox&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Installation via Maemo Update Site =&lt;br /&gt;
&lt;br /&gt;
When you install ESbox, PluThon and Mica components through the Maemo update site, all needed dependencies (like CDT, PyDev, RSE, DSF, etc.) are installed automatically.&lt;br /&gt;
&lt;br /&gt;
== Eclipse Installation ==&lt;br /&gt;
&lt;br /&gt;
If you do not yet have Eclipse IDE installed, follow these instructions.&lt;br /&gt;
&lt;br /&gt;
Download Eclipse Ganymede SR2 (3.4.2) for your host. We suggest a package bundled with CDT:&lt;br /&gt;
&lt;br /&gt;
* [http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/ganymede/SR2/eclipse-cpp-ganymede-SR2-win32.zip Win32]&lt;br /&gt;
* [http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/ganymede/SR2/eclipse-cpp-ganymede-SR2-linux-gtk.tar.gz Linux 32-bit]&lt;br /&gt;
* [http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/ganymede/SR2/eclipse-cpp-ganymede-SR2-macosx-carbon.tar.gz Max OS X]&lt;br /&gt;
* ...or visit the [http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/ganymede/SR2/ Eclipse Ganymede SR2 Build page]. You must use Eclipse 3.4.2.&lt;br /&gt;
* The Maemo update site will ensure all needed additional packages are installed, so you can also start from a different Eclipse package.&lt;br /&gt;
* Other hosts are not officially supported for Maemo development but you are welcome to try installation or trying to use the Maemo SDK Virtual Image to run Maemo Eclipse development environment.&lt;br /&gt;
&lt;br /&gt;
Extract the archive somewhere on your machine (for example &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/home/user&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; on Linux).&lt;br /&gt;
&lt;br /&gt;
For Linux or Mac OS X:&lt;br /&gt;
&lt;br /&gt;
 $ cd /home/user&lt;br /&gt;
  $ tar xvzf eclipse-cpp-ganymede-SR2-host-windowsystem.tar.gz&lt;br /&gt;
&lt;br /&gt;
or, for Win32, use Winzip or another zip utility to extract the archive.&lt;br /&gt;
&lt;br /&gt;
Start Eclipse by running the Eclipse executable included with the release. The executable file is called &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;eclipse&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, and is located in the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;eclipse&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; sub-directory of the install:&lt;br /&gt;
&lt;br /&gt;
 $ /home/user/eclipse/eclipse&lt;br /&gt;
&lt;br /&gt;
In recent Linux distributions like Ubuntu 9.10 or Fedora 11, GTK+ 2.18 and Mozilla's xulrunner have changed in ways that cause problems with Eclipse. See more information about [http://mou.me.uk/2009/10/31/fixing-eclipse-in-ubuntu-9-10-karmic-koala/ GTK+ issues from this email] and [https://garage.maemo.org/tracker/index.php?func=detail&amp;amp;aid=4689&amp;amp;group_id=192&amp;amp;atid=1420 xulrunner issue from this bug report].&lt;br /&gt;
&lt;br /&gt;
If the xulrunner problem affects you, you will need to launch Eclipse as shown below:&lt;br /&gt;
&lt;br /&gt;
 $ GDK_NATIVE_WINDOWS=true /home/user/eclipse/eclipse -vmargs -Dorg.eclipse.swt.browser.XULRunnerPath=path...&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;path...&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; is the path to xulrunner 1.8, usually under &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/usr/lib/xulrunner/xulrunner&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; or &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/usr/bin/xulrunner&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;. In Ubuntu this package is named &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;xulrunner&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
See [http://mou.me.uk/2009/10/31/fixing-eclipse-in-ubuntu-9-10-karmic-koala/ this post for GTK+ details] and [https://garage.maemo.org/tracker/index.php?func=detail&amp;amp;aid=4689&amp;amp;group_id=192&amp;amp;atid=1420 this bug for xulrunner information].&lt;br /&gt;
&lt;br /&gt;
For the sake of convenience, there are ready made scripts available to use for ESbox and PluThon that implement this workaround. For ESbox, use [https://garage.maemo.org/svn/mica/build/continuous_integration/esbox.sh this] &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;esbox.sh&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; script and for PluThon, use [https://garage.maemo.org/svn/mica/build/continuous_integration/pluthon.sh this] &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;pluthon.sh&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; script to launch Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
For more detailed information about Eclipse 3.4 environment, see the [http://www.eclipse.org/eclipse/development/readme_eclipse_3.4.2.html Eclipse 3.4.2 Project Release Notes].&lt;br /&gt;
&lt;br /&gt;
== ESbox and PluThon Installation ==&lt;br /&gt;
&lt;br /&gt;
Verify that your network proxy is configured (if needed) in '''Window &amp;amp;gt; Preferences &amp;amp;gt; General &amp;amp;gt; Network Connections'''.&lt;br /&gt;
&lt;br /&gt;
Select '''Help &amp;amp;gt; Software Updates...''' from the main menu bar, figure [[#fig:update_site_update_menu|3.1]].&lt;br /&gt;
&lt;br /&gt;
These instructions given are for ESbox installation through the Maemo Update Site, but can also be applied for the PluThon installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Software Updates&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.1:''' Software Updates&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-update-menu.png|Image esbox-update-menu]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the '''Available Software''' tab, figure [[#fig:update_site_update_available|3.2]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Software Updates and Add-ons&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.2:''' Software Updates and Add-ons&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-update-available.png|Image esbox-update-available]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add three update sites via '''Add site....'''&lt;br /&gt;
&lt;br /&gt;
* ESbox update site is: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;http://maemoide.nokia.com/updates/2.0/esbox&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, figure [[#fig:update_site_add_esbox|3.3]].&lt;br /&gt;
* PluThon update site is: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;http://maemoide.nokia.com/updates/2.0/pluthon&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
* Mica update site is: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;http://maemoide.nokia.com/updates/2.0/mica&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, figure [[#fig:update_site_add_mica|3.4]].&lt;br /&gt;
&lt;br /&gt;
Example how to add ESbox update site:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Update Site, Add ESbox&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.3:''' Update Site, Add ESbox&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-update-site-add-esbox.png|Image esbox-update-site-add-esbox]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example how to add Mica update site:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Update Site, Add Mica&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.4:''' Update Site, Add Mica&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-update-site-add-mica.png|Image esbox-update-site-add-mica]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mica is a generic framework named Maemo IDE Common Architecture underneath the ESbox and PluThon products.&lt;br /&gt;
&lt;br /&gt;
Open the '''ESbox''' (or '''PluThon''') tree and select '''ESbox 2nd Edition''' (or '''PluThon 2nd Edition''') inside, then click '''Install''', figure [[#fig:update_site_selection|3.5]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Software Updates and Add-ons, ESbox 2nd Edition&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.5:''' Software Updates and Add-ons, ESbox 2nd Edition&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-update-selection.png|Image esbox-update-selection]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can select the '''ESbox 2nd Edition Source''', '''PluThon 2nd Edition Source''' and '''Mica 2nd Edition Source''' as well as following the [http://mica.garage.maemo.org/2nd_edition/setup.html Mica development setup instructions] if you want to develop against ESbox or PluThon.&lt;br /&gt;
&lt;br /&gt;
Verify the installed items, then click '''Next''', figure [[#fig:update_site_install|3.6]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Install&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.6:''' Install&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-update-install.png|Image esbox-update-install]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Review the licenses, then click '''Next''', figure [[#fig:update_site_install_licenses|3.7]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Review licenses&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.7:''' Review licenses&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-update-install-licenses.png|Image esbox-update-install-licenses]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The '''ESbox 2nd Edition''' selection brings in everything from ESbox and Mica, and the '''PluThon 2nd Edition''' selection brings in everything from PluThon and Mica. You can individually select the items under the '''ESbox''', '''PluThon''' and '''Mica''' nodes on the '''Available Software''' page, if you desire. This will make it easier to uninstall individual components later.&lt;br /&gt;
&lt;br /&gt;
Click '''Finish''' and the installation will be performed. Accept the offer to restart Eclipse, figure [[#fig:update_site_restart|3.8]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Restart Eclipse&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.8:''' Restart Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-update-restart.png|Image esbox-update-restart]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Updating from an earlier than R2.0.0 release ==&lt;br /&gt;
&lt;br /&gt;
If you used the archive files for installation, you can follow the instructions below to update your installation to the latest ESbox or PluThon version.&lt;br /&gt;
&lt;br /&gt;
Select '''Help &amp;amp;gt; Software Updates...''' from the main menu bar, figure [[#fig:update_site_update_menu_2|3.9]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Software Updates&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.9:''' Software Updates&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-update-menu.png|Image esbox-update-menu]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you installed directly from a repository archive (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*.zip&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;) file, rather than from the web, follow the below steps first:&lt;br /&gt;
&lt;br /&gt;
# Select the '''Available Software''' tab.&lt;br /&gt;
# Click the '''Manage Repositories...''' button.&lt;br /&gt;
# Remove the old archive entries (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;esbox-repository*.zip&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;pluthon-repository*.zip&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;mica-repository*.zip&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;)&lt;br /&gt;
# Add new update sites through '''Add site...''' pointing to the new repository archives.&lt;br /&gt;
&lt;br /&gt;
Select the '''Installed Software''' tab, figure [[#fig:update_site_update_installed|3.10]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Installed Software&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.10:''' Installed Software&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-update-installed.png|Image esbox-update-installed]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click the '''Update...''' button.&lt;br /&gt;
&lt;br /&gt;
Eclipse should display an '''Operation in progress...''' dialog and take a little time to query the configured update sites and should find the new versions of ESbox, PluThon and Mica features (as well as possibly other installed features).&lt;br /&gt;
&lt;br /&gt;
Verify that ESbox, PluThon and Mica features are listed and checked, then click '''Next''', figure [[#fig:update_site_update_available_2|3.11]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Available Updates&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.11:''' Available Updates&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-update-available-2.png|Image esbox-update-available-2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Review the licenses, then click '''Next''', figure [[#fig:update_site_update_licenses|3.12]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Review licenses&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.12:''' Review licenses&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-update-install-licenses.png|Image esbox-update-install-licenses]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click '''Finish''' and the update is performed. Accept the offer to restart Eclipse, figure [[#fig:update_site_restart_2|3.13]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Restart Eclipse&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.13:''' Restart Eclipse&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-update-restart.png|Image esbox-update-restart]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
If you see this dialog: figure [[#fig:update_site_can_not_complete|3.14]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Cannot complete the request&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.14:''' Cannot complete the request&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-update-cannot-complete.png|Image esbox-update-cannot-complete]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
followed by this dialog: figure [[#fig:update_site_already_installed|3.15]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Cannot complete the request, details&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.15:''' Cannot complete the request, details&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:esbox-update-already-installed.png|Image esbox-update-already-installed]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Messages about '''Cannot find a solution...''' usually means the given features or plugins are already installed, or that older versions were installed from a different site. Try using '''Software Updates... &amp;amp;gt; Installed Software &amp;amp;gt; Update...''' instead.&lt;br /&gt;
&lt;br /&gt;
If you have an older ESbox or PluThon installation with features and plugins installed from another URL, use '''Software Updates... &amp;amp;gt; Installed Software &amp;amp;gt; Uninstall...''' to remove the ESbox or PluThon installation. This may make Eclipse unlaunchable - if so, launch Eclipse as shown below:&lt;br /&gt;
&lt;br /&gt;
 $ ./esbox.sh -application org.eclipse.sdk.ide&lt;br /&gt;
&lt;br /&gt;
until Eclipse is reinstalled from the current location.&lt;br /&gt;
&lt;br /&gt;
= Installing Help Content =&lt;br /&gt;
&lt;br /&gt;
Both ESbox and PluThon support the use of Maemo release documentation from the Eclipse IDE, both remotely and locally. You can configure the Eclipse environment to access Maemo online release documentation from the Maemo Info Center service. The same documentation available from the Maemo Info Center can also be downloaded to the host PC and installed locally on the Eclipse help system.&lt;br /&gt;
&lt;br /&gt;
== Remote Help Content ==&lt;br /&gt;
&lt;br /&gt;
The Mica framework included in ESbox and PluThon can use the Eclipse hover remote help system to access online documentation. For Maemo platform releases, the online documentation for each release is available from [http://maemoide.nokia.com/ Maemo Info Center service].&lt;br /&gt;
&lt;br /&gt;
For more information about Hover help, see the ESbox or the PluThon Help topic '''Getting Started &amp;amp;gt; Using Hover Help for Maemo API Libraries'''.&lt;br /&gt;
&lt;br /&gt;
You need to configure the Maemo Info Center to use the Maemo 5 Fremantle SDK help inside Eclipse:&lt;br /&gt;
&lt;br /&gt;
Open the '''Help &amp;amp;gt; Content''' preference page, figure [[#fig:update_site_help_infocenter_prefs|3.16]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Help Content Preferences&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.16:''' Help Content Preferences&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:help-infocenter-prefs.png|Image help-infocenter-prefs]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add a Maemo Info Center site, noting to update the host (no &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;http://&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; prefix) and the path, which is Maemo platform specific (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;/fremantle&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; for Maemo 5 Fremantle release), figure [[#fig:update_site_help_infocenter_prefs_add|3.17]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Edit Maemo Docs Library Information&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.17:''' Edit Maemo Docs Library Information&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:help-infocenter-prefs-add.png|Image help-infocenter-prefs-add]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, use '''Help &amp;amp;gt; Content''' and you will see the entries under '''Maemo 5''' categories.&lt;br /&gt;
&lt;br /&gt;
== Local Content ==&lt;br /&gt;
&lt;br /&gt;
If you prefer, you may also install all Maemo release documentation locally so that no network connection is needed when accessing Maemo documentation. Locally installed documentation is also faster to access and search than online documentation from the Maemo Info Center.&lt;br /&gt;
&lt;br /&gt;
This content is only available from the Maemo update site. You can also install Maemo release documentation locally in case you installed ESbox or PluThon from a full-product archive instead of Maemo update site.&lt;br /&gt;
&lt;br /&gt;
These instructions assume you have already installed the Eclipse ESBox or PluThon product using either Maemo Eclipse product archives or update sites.&lt;br /&gt;
&lt;br /&gt;
Verify that your network proxy is configured (if needed) in '''Window &amp;amp;gt; Preferences &amp;amp;gt; General &amp;amp;gt; Network Connections'''.&lt;br /&gt;
&lt;br /&gt;
Select '''Help &amp;amp;gt; Software Updates...''' from the main menu bar, figure [[#fig:update_site_help_pluthon_update_menu|3.18]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Software Updates...&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.18:''' Software Updates...&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:pluthon-update-menu.png|Image pluthon-update-menu]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the '''Available Software''' tab, figure [[#fig:update_site_help_update_available|3.19]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Software Updates and Add-ons&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.19:''' Software Updates and Add-ons&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:help-update-available.png|Image help-update-available]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add a Documentation update site via '''Add site....'''. Maemo Fremantle documentation update site is &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;http://maemoide.nokia.com/downloads/fremantle/&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, figure [[#fig:update_site_help_update_site_add|3.20]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Update Site - Add Documentation&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.20:''' Update Site - Add Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:help-update-site-add.png|Image help-update-site-add]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select one or more of the '''Maemo ... Help''' features and then click ''''''Install, figure [[#fig:update_site_help_update_selection|3.21]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Software Updates and Add-Ons, Selection&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.21:''' Software Updates and Add-Ons, Selection&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:help-update-selection.png|Image help-update-selection]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Verify the installed items, then click '''Next''', figure [[#fig:update_site_help_update_install|3.22]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Confirm Installation&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.22:''' Confirm Installation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:help-update-install.png|Image help-update-install]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Review the licenses, then click '''Next''', figure [[#fig:update_site_help_update_install_licenses|3.23]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Accept Licenses&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.23:''' Accept Licenses&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:help-update-install-licenses.png|Image help-update-install-licenses]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click '''Finish''' and the installation is performed. You may be able to '''Apply Changes''' if you have not already opened help or turned on hover help. Otherwise accept the offer to restart Eclipse, figure [[#fig:update_site_help_pluthon_update_restart|3.24]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Apply Changes Or Restart&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 3.24:''' Apply Changes Or Restart&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:pluthon-update-restart.png|Image pluthon-update-restart]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Introduction</id>
		<title>Documentation/Maemo Eclipse Tutorial/Introduction</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Introduction"/>
				<updated>2010-04-09T09:04:27Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Instead of using the Maemo development environment command line tools to create C/C++, Python or Qt applications for the Maemo platform, it is possible to use an Eclipse, Ganymede-based IDE to make applications development easier for Maemo devices.&lt;br /&gt;
&lt;br /&gt;
Maemo Eclipse IDE integration supports following Maemo devices and platform releases:&lt;br /&gt;
&lt;br /&gt;
* Nokia N800, N810 and N810 WiMAX Edition with Diablo 4.1.x.&lt;br /&gt;
* Nokia N900 with Fremantle 5.x, see figure [[#fig:eclipse-tutorial-introduction-n900|1.1]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Maemo device - N900&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 1.1:''' Maemo device - N900&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Nokia_N900_38.png|Image Nokia_N900_38]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maemo Eclipse support includes the ESbox product that supports C/C++, Python and Qt programming together with Maemo SDK and Maemo devices. ESBox has full integration to both the Scratchbox-based Maemo SDK environment and Maemo devices.&lt;br /&gt;
&lt;br /&gt;
In addition to the ESbox product, Maemo Eclipse integration provides also the PluThon product that supports Python development with Maemo devices. The PluThon environment does not use Maemo SDK but is an on-device development environment where Python application development happens directly within the Maemo device.&lt;br /&gt;
&lt;br /&gt;
Both ESbox and PluThon can be used on all major platforms (Linux, Windows and Mac OS X). On all supported operating systems Eclipse IDE is run natively on host PC. On Debian-based Linux systems the Maemo SDK can be installed antively to the host PC. On other Linux variants (like Fedora) and non-Linux systems (like Windows and Mac OS X) where the Maemo SDK cannot be installed, it is possible to use a virtual machine or a remote Debian based Linux system to host the Maemo SDK. ESbox will translate all IDE UI commands to SDK commands behind the scenes.&lt;br /&gt;
&lt;br /&gt;
ESbox and PluThon run inside Eclipse with CDT (C/C++ Development Tools) installed. The Eclipse environment requires a Java virtual machine to run properly; Java&amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;TM&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt;Platform, Standard Edition 6 (Java&amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;TM&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt;SE 6) or above is recommended. ESbox also needs Scratchbox and Maemo SDK targets for building components and developing applications.&lt;br /&gt;
&lt;br /&gt;
Note that ESbox has native support to develop also Qt applications. This makes the development of Qt applications easier than using Maemo SDK only, since no command line execution is required to build and execute the application in the Maemo SDK target or Maemo device.&lt;br /&gt;
&lt;br /&gt;
Maemo Eclipse integration has support for basic profiling tools for Maemo applications development. Profiling is one of the most important techniques available for programmers for discovering problems in applications. By profiling an application, it becomes immediately apparent where the overwhelming memory and CPU burdens exist, and allows you to quickly correct them. Maemo Eclipse provides support for the Valgrind memory profiler, the OProfile system-wide profiler and the Ltrace library call monitor for both C/C++ and Python Projects.&lt;br /&gt;
&lt;br /&gt;
Ltrace is a tracing tool which runs a specified tracing for an application or a library. While the tool is executing, ltrace intercepts and records the dynamic library calls which are called by the executed process and the signals received by that process. On a Maemo environment, Ltrace is supported on both a Maemo SDK x86 target and a Maemo device.&lt;br /&gt;
&lt;br /&gt;
Eclipse Ltrace support launches your application on the Maemo SDK target or the Maemo device for tracing, and the result is shown in specific Ltrace view. All Library and System calls are shown as a tree: parent nodes and child nodes for each new nested call.&lt;br /&gt;
&lt;br /&gt;
Valgrind is a framework for building dynamic analysis tools. You can use Valgrind to profile your applications. It detects memory management (memory leaks, use of uninitialised memory, and so forth) and thread bugs. For Maemo, Valgrind is only supported on X86/Linux and thus only on the Maemo SDK x86 target. To be able to use Valgrind profiling you have to select a X86 Scratchbox target to run your application.&lt;br /&gt;
&lt;br /&gt;
Eclipse Valgrind support runs your application on the the X86 target and the result is shown on a specific Valgrind view. All problems found by Valgrind are shown as a tree: the problems as parent nodes and the details of the problems as children nodes.&lt;br /&gt;
&lt;br /&gt;
OProfile is a system-wide profiler for Linux systems and can profile all running code. It consists of a kernel driver and a daemon for collecting sample data, and several post-profiling tools for turning data into information. On the Maemo environment OProfile is supported only on Maemo devices to obtain a high quality of profiling information. Eclipse uses ssh to remotely execute the OProfile and collect profiling information on the Maemo device. Thus, it is necessary to properly install the application to be profiled and the OProfile framework on the Maemo device before the profiling can be done.&lt;br /&gt;
&lt;br /&gt;
The Eclipse OProfile support runs your application on the Maemo device, and you can control the OProfile from the Eclipse OProfile view. After the OProfile has stopped the profiling, the result will be shown in the specific OProfile View.&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Installing_ESbox</id>
		<title>Documentation/Maemo Eclipse Tutorial/Installing ESbox</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Installing_ESbox"/>
				<updated>2010-04-09T09:04:26Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Installing ESbox =&lt;br /&gt;
&lt;br /&gt;
ESbox is an [http://www.eclipse.org/ Eclipse-based] IDE. It is based on Eclipse Ganymede (3.4.2) and CDT (Eclipse C/C++ Development Toolkit) and PyDev (Python IDE for Eclipse) and provides C/C++, Qt4 and Python support, source editing, project building, run/debug/profiling, and Debian installation package creation and deployment. ESbox communicates transparently with Scratchbox cross-compilation environment and one or more Maemo SDKs to let you develop Maemo applications. ESbox can also flash your Maemo devices and communicate with them using the various network clients and servers available with the PC Connectivity project.&lt;br /&gt;
&lt;br /&gt;
With ESbox, Scratchbox, Maemo SDK(s), and PC Connectivity installed, you can flash your Maemo device, run, debug, and profile applications locally with Maemo SDK and remotely with Maemo device, create Debian installation packages for your application and install the application to the Maemo device.&lt;br /&gt;
&lt;br /&gt;
Maemo PC Connectivity must be installed to the Maemo device and host PC before all features provided by Maemo Eclipse IDE are usable. See more information from ''Maemo PC Connectivity Tutorial'' &amp;lt;ref name=r2&amp;gt;Maemo PC Connectivity Tutorial. http://library.maemodocs.nokia.com&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= ESbox IDE =&lt;br /&gt;
&lt;br /&gt;
ESbox may be installed completely from an archive or added to an existing Eclipse 3.4.2 installation from Maemo update sites.&lt;br /&gt;
&lt;br /&gt;
ESbox may be installed in a variety of hosts. The &amp;quot;Supported Environments&amp;quot; chapter [[#Supported Environments]] describes these. The &amp;quot;Installing ESbox IDE&amp;quot; section [[#Installing ESbox IDE]] describes how to install ESbox.&lt;br /&gt;
&lt;br /&gt;
== Supported Maemo Releases ==&lt;br /&gt;
&lt;br /&gt;
The supported [http://tablets-dev.nokia.com/ Maemo releases] are:&lt;br /&gt;
&lt;br /&gt;
* Maemo 4.1.2 Diablo (OS2008) with N800, N810 and N810 WiMAX Edition devices&lt;br /&gt;
* Maemo 5.0 Fremantle (OS2009) with N900 device&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Older releases may work but Maemo PC Connectivity is not supported on them. If you use older releases, you must manually set up networking, SSH, and SBRSH.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Scratchbox and Maemo SDK ===&lt;br /&gt;
&lt;br /&gt;
To build and run C/C++, Qt4 or Python applications you will need to install the Maemo SDK development environment for a Linux/x86 machine (either to your host PC or to the Maemo SDK Virtual Image).&lt;br /&gt;
&lt;br /&gt;
Scratchbox enables building and running programs in a transparent cross-compilation and cross-execution environment. Scratchbox 1 is the primary cross environment for Maemo Fremantle and Diablo development.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Scratchbox 2 is a newer cross compilation environment but it is not officially supported or tested for Fremantle or ESbox.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Maemo SDKs supported by ESbox and Scratchbox 1 are:&lt;br /&gt;
&lt;br /&gt;
* Maemo 4.1.2 Diablo SDK&lt;br /&gt;
* Maemo 5.0.x Fremantle SDK&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Older Maemo SDKs may work but are not officially supported.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Maemo SDKs are open-source, but some components installed on the Maemo device and available to the Maemo SDK rootstraps are closed-source. These Nokia closed binaries must be installed for Fremantle SDKs to operate properly under emulation.&lt;br /&gt;
&lt;br /&gt;
ESbox can install Scratchbox 1, Diablo and Fremantle Maemo SDKs, and Nokia closed binaries for you for native Linux host PC or to the Ubuntu Server SDK Virtual Image using installation wizards under '''File &amp;amp;gt; New &amp;amp;gt; Other &amp;amp;gt; Maemo Installers'''.&lt;br /&gt;
&lt;br /&gt;
== ESbox Development Environment ==&lt;br /&gt;
&lt;br /&gt;
The ESbox development environment consists of Eclipse IDE, Scratchbox, one or more Maemo SDKs and Maemo device. If host PC operating system is not able to run Scratchbox and Maemo SDK natively also Maemo SDK Virtual Image is needed. These are essential to ESbox development environment and ESbox is useless without them.&lt;br /&gt;
&lt;br /&gt;
ESbox does not ship with Scratchbox or any Maemo SDK, but it includes installation wizards that allow you to install them. See '''File &amp;amp;gt; New &amp;amp;gt; Other &amp;amp;gt; Maemo Installers &amp;amp;gt; Scratchbox 1''' and '''... &amp;amp;gt; Scratchbox 1 Targets'''.&lt;br /&gt;
&lt;br /&gt;
If you want to install Scratchbox and Maemo SDKs yourself, see [http://maemo.org/development/sdks/ the Maemo SDK site] for more information.&lt;br /&gt;
&lt;br /&gt;
For C/C++, Qt4 and Python development, you need to install some Maemo C debugging tools and scripts, Maemo C++ bindings, Maemo Python runtime and bindings and Maemo Qt4 libraries to the Maemo SDK rootstraps and Maemo device.&lt;br /&gt;
&lt;br /&gt;
ESbox provides a command via '''Project &amp;amp;gt; Validate Installed Packages''' menu which will do all needed installations for C/C++, Python and Qt4 development environemnts for you. This validation operation is done also automatically when you create a new C/C++, Python or Qt4 project.&lt;br /&gt;
&lt;br /&gt;
=== Using Maemo SDK Virtual Image for non-Linux ===&lt;br /&gt;
&lt;br /&gt;
Only Debian based Linux/x86 hosts are able to natively run Scratchbox and Maemo SDKs. In other hosts, you must run Scratchbox and the Maemo SDK inside a Maemo SDK Virtual Image. ESbox fully supports using Maemo virtual images and VMware, VirtualBox or QEMU virtualization technologies in this manner.&lt;br /&gt;
&lt;br /&gt;
The Maemo Eclipse integration provides an empty Ubuntu Server based Maemo SDK Virtual Image suitable for use with VMware, VirtualBox, and QEMU. See the [http://maemovmware.garage.maemo.org/ Maemo SDK Virtual Image project page] for more information on configuring and installing Maemo SDK Virtual Images.&lt;br /&gt;
&lt;br /&gt;
You will need to configure ESbox to use the chosen virtualization environment (see chapter [/node8.html#sec:esbox_installation_setting_up_esbox_using_a_virtual_machine 6.1]) so that ESbox knows where to install Scratchbox and the Maemo SDKs.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Supported Environments&amp;quot; chapter [[#Supported Environments]] describes the virtualization technologies supported. For ESbox, you can install a Ubuntu Server based Maemo SDK Virtual Image using installation wizard '''File &amp;amp;gt; New &amp;amp;gt; Other &amp;amp;gt; Maemo Installers &amp;amp;gt; Maemo SDK Virtual Image'''. Installation wizard will install the whole Maemo Development environment with Scratchbox and Maemo SDK for you.&lt;br /&gt;
&lt;br /&gt;
= Supported Environments =&lt;br /&gt;
&lt;br /&gt;
== Host Operating Systems Supported ==&lt;br /&gt;
&lt;br /&gt;
Supported operating systems for host PC are listed in table 5.1. Only 32-bit operating systems are supported and tested, e.g. Maemo does not provide official support for any 64-bit operating system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|+ '''Table 5.1:''' Host Operating Systems Supported for ESbox&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Host Operating System'''&lt;br /&gt;
! width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Officially Supported'''&lt;br /&gt;
! width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Virtual Image Required'''&lt;br /&gt;
! width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Tested'''&lt;br /&gt;
! width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Note'''&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Ubuntu 8.04 Hardy&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | No&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Ubuntu 8.10 Intrepid&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | No&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Ubuntu 9.04 Jaunty&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | No&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Ubuntu 9.10 Karmic&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | No&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | 3&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Fedora 11/12&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | No&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | 1,3&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Other Linux distros&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | No&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | No&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | 1,2&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Windows XP SP3&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Windows Vista SP2&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | No&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | 2&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Windows 7&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | No&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | 2&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Mac OS X x86 Leopard&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Mac OS X x86 Snow Leopard&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Mac OS X PPC Leopard&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | No&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | No&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | 1,2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; '''Note 1'''&lt;br /&gt;
: ESbox should work if Eclipse IDE, Maemo SDK Virtual Image and Host PC Connectivity runs properly (there are known problems in this OS).&lt;br /&gt;
; '''Note 2'''&lt;br /&gt;
: The Host PC Connectivity has not been fully ported to this OS causing restrictions to the supported functionality.&lt;br /&gt;
; '''Note 3'''&lt;br /&gt;
: On newer Linux distributions, some components like GTK+ and xulrunner have changed in ways that make Eclipse difficult to launch. You need to use provided &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;esbox.sh&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; script to launch ESbox and work around the issues.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Cygwin 1.5 is part of Host PC Connectivity for Windows and works fine in Maemo environment but supports only Windows XP. Cygwin 1.7 which supports also Windows 7 and Windows Vista has problems with X11 server preventing Maemo to fully supporting Windows 7 and Windows Vista operatring systems.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Virtual Image environments supported ==&lt;br /&gt;
&lt;br /&gt;
Maemo SDK Virtual Images support VMware, VirtualBox and QEMU virtualization technologies to use to run images. You can use technology that is the best for your host PC configuration. The recommended technology is VMware because its performance is much better than QEMU and its licensing policy is better than VirtualBox with its PUEL license that allows only personal usage for evaluation purposes.&lt;br /&gt;
&lt;br /&gt;
=== VMware Player / Workstation / Server ===&lt;br /&gt;
&lt;br /&gt;
Workstation or Server recommended for easiest configuration. With VMware Player, if you want to reconfigure the memory size or change the disk assignments, you need to hand-edit &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*.vmx&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; files. With Player, you may not be able to use official VMware Tools to accelerate the virtualization performance (because official VMware Tools may not be delivered together with the VMware Player installation) but you need to install Open VM Tools delivered together with the Maemo SDK Virtual Image.&lt;br /&gt;
&lt;br /&gt;
Installation of official VMware tools or Open VM Tools (delivered with Maemo SDK Virtual Image) is recommended for better performance.&lt;br /&gt;
&lt;br /&gt;
VMware Player 3.0 includes official VMware Tools and e.g. memory size can be configured without hand-editing &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*.vmx&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; but it may have SSH connection problems. VMware Player version 2.5 is recommended over version 3.0 because 3.0 version may have problems also keeping SSH connection alive. For Mac OS X VMware Fusion must be used instead of VMware Player.&lt;br /&gt;
&lt;br /&gt;
=== Sun VirtualBox 2.2 or Newer ===&lt;br /&gt;
&lt;br /&gt;
VirtualBox performance is almost egual to VMware and configuration is easy, but VirtualBox Open Source version cannot be used because it does not have good enough support for USB and licensing of PUEL version restricts usage only for personal and evaluation purposes.&lt;br /&gt;
&lt;br /&gt;
Installation of GuestAdditions (delivered with Maemo SDK Virtual Image) is recommended for better performance.&lt;br /&gt;
&lt;br /&gt;
=== QEMU System Emulation ===&lt;br /&gt;
&lt;br /&gt;
Works, but is not recommended. The performance is quite slow.&lt;br /&gt;
&lt;br /&gt;
Installation of KQEMU QEMU Accelerator for QEMU is almost mandatory, if it is available for your operating system.&lt;br /&gt;
&lt;br /&gt;
== X Servers supported ==&lt;br /&gt;
&lt;br /&gt;
When running or debugging locally during development, an X11 server runs on the Eclipse host PC and displays your programs in the Maemo Application Framework.&lt;br /&gt;
&lt;br /&gt;
X servers are available on all supported operating systems, but the Fremantle SDK imposes some high requirements on the X server. Linux-on-Linux development will yield the best results (both quality and performance wise). On other operating systems, there are workarounds for known issues.&lt;br /&gt;
&lt;br /&gt;
For Linux:&lt;br /&gt;
&lt;br /&gt;
* The Xephyr X server is recommended.&lt;br /&gt;
* Installation for Debian Linux: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;sudo apt-get install xserver-xephyr&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* Installation for Fedora Linux: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;sudo yum install xorg-x11-xserver-Xephyr&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Windows:&lt;br /&gt;
&lt;br /&gt;
* The X server from the Cygwin/X project is recommended.&lt;br /&gt;
* See chapter [/node8.html#sec:esbox_installation_setting_up_x_server_on_windows 6.3.1] for more details.&lt;br /&gt;
&lt;br /&gt;
For Mac OS X:&lt;br /&gt;
&lt;br /&gt;
* The Xephyr X server is recommended. This runs natively in Quartz.&lt;br /&gt;
* See chapter [/node8.html#sec:esbox_installation_setting_up_x_server_on_mac_os_x 6.3.2] for more details.&lt;br /&gt;
&lt;br /&gt;
= Installing ESbox IDE =&lt;br /&gt;
&lt;br /&gt;
== Java Runtime ==&lt;br /&gt;
&lt;br /&gt;
ESbox is an Eclipse application, which needs Java to run.&lt;br /&gt;
&lt;br /&gt;
Eclipse 3.4.2 requires Java 1.5 or newer:&lt;br /&gt;
&lt;br /&gt;
* [http://java.sun.com/javase/downloads/index_jdk5.jsp Sun Java 5.0] or [http://java.sun.com/javase/downloads/index.jsp Sun Java 6]&lt;br /&gt;
* [http://www.ibm.com/developerworks/java/jdk/index.html IBM JRE 5.0+]&lt;br /&gt;
* [http://openjdk.java.net/ OpenJDK 6+]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  GNU gcj is not supported.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
You can find these JREs as packages in your distribution or download them directly from their websites.&lt;br /&gt;
&lt;br /&gt;
== Method 1: Full Product Archive (recommended) ==&lt;br /&gt;
&lt;br /&gt;
* ESbox is distributed as a full Eclipse product archive, which contains Eclipse, the Mica framework, and ESbox. This is the easiest way to ensure you have the right versions of the plugins and features.&lt;br /&gt;
* Download it, extract it, and get started! Follow these instructions [/node5.html#sec:eclipse_tutorial_installation_product_archives 3.2]&lt;br /&gt;
&lt;br /&gt;
== Method 2: Eclipse Update Site ==&lt;br /&gt;
&lt;br /&gt;
* If you have a custom Eclipse 3.4.2 installation or want to build one, you can use the Eclipse Software Updates mechanism to download and install and upgrade ESbox and Mica from the Internet.&lt;br /&gt;
* Newer versions of Eclipse than 3.4.x are not supported due to hard dependencies for Eclipse packages being used.&lt;br /&gt;
* Follow these instructions [/node5.html#sec:eclipse_tutorial_installation_via_update_site 3.3]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Both the installation via the Full Product Archive and the Eclipse Update Site can be upgraded using Eclipse's Software Updates.&lt;br /&gt;
|}&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Bibliography</id>
		<title>Documentation/Maemo Eclipse Tutorial/Bibliography</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Bibliography"/>
				<updated>2010-04-09T09:04:26Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bibliography ==&lt;br /&gt;
&lt;br /&gt;
; 1&lt;br /&gt;
: Ltrace Man Page. &amp;lt;tt&amp;gt;http://linux.die.net/man/1/ltrace&amp;lt;/tt&amp;gt;.&lt;br /&gt;
; 2&lt;br /&gt;
: Maemo PC Connectivity Tutorial. &amp;lt;tt&amp;gt;http://library.maemodocs.nokia.com&amp;lt;/tt&amp;gt;.&lt;br /&gt;
; 3&lt;br /&gt;
: OProfiling with Maemo. &amp;lt;tt&amp;gt;http://maemo.org/development/tools/doc/diablo/oprofile/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
; 4&lt;br /&gt;
: OProfile Manual. &amp;lt;tt&amp;gt;http://oprofile.sourceforge.net/doc/index.html&amp;lt;/tt&amp;gt;.&lt;br /&gt;
; 5&lt;br /&gt;
: Valgrind Manual. &amp;lt;tt&amp;gt;http://valgrind.org/docs/manual/manual.html&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Installing_PluThon</id>
		<title>Documentation/Maemo Eclipse Tutorial/Installing PluThon</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Installing_PluThon"/>
				<updated>2010-04-09T09:04:25Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Installing PluThon =&lt;br /&gt;
&lt;br /&gt;
PluThon is an [http://www.eclipse.org Eclipse-based IDE] that provides Python development support, source editing, project building, on-device run/debug/profiling as well as on-device Debian installation package creation and deployment. It is based on Eclipse Ganymede (3.4.2) and PyDev (Python IDE for Eclipse). PluThon communicates with your Maemo device using the various network clients and servers that Maemo PC Connectivity project provides.&lt;br /&gt;
&lt;br /&gt;
With PluThon and Maemo PC Connectivity installed, you can flash your Maemo device, run, debug, and profile Python applications on Maemo devices. You can also create Debian installation packages for your application and install the application on the Maemo device.&lt;br /&gt;
&lt;br /&gt;
Maemo PC Connectivity must be installed to the Maemo device and host PC before all features provided by Maemo Eclipse IDE are usable. See more information from ''Maemo PC Connectivity Tutorial'' &amp;lt;ref name=r2&amp;gt;Maemo PC Connectivity Tutorial. http://library.maemodocs.nokia.com&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= PluThon IDE =&lt;br /&gt;
&lt;br /&gt;
You can install PluThon completely from an archive or add it to an existing Eclipse 3.4.2 installation through Maemo update sites.&lt;br /&gt;
&lt;br /&gt;
You can install PluThon on a variety of hosts. The &amp;quot;Supported Environments&amp;quot; section [[#Supported Environments]] describes the supported hosts. The &amp;quot;Installing PluThon IDE&amp;quot; section [[#Installing PluThon IDE]] describes how to install PluThon.&lt;br /&gt;
&lt;br /&gt;
== Supported Maemo Releases ==&lt;br /&gt;
&lt;br /&gt;
The supported [http://tablets-dev.nokia.com/ Maemo releases] are:&lt;br /&gt;
&lt;br /&gt;
* Maemo 4.1.2 Diablo (OS2008) with N800, N810, and N810 WiMAX Edition&lt;br /&gt;
* Maemo 5.0 Fremantle (OS2009) with N900&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Older releases may work but Maemo PC Connectivity is not supported on them. If you use older releases, you must manually set up networking, SSH, and SBRSH.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== PluThon Development Environment ==&lt;br /&gt;
&lt;br /&gt;
The PluThon development environment consists of Eclipse IDE and a Maemo device. These are essential and you cannot use PluThon without them.&lt;br /&gt;
&lt;br /&gt;
Even though PluThon deploys applications that run entirely on a device, you need a Python interpreter installed locally to support the editor and the run/debug mechanism in PyDev.&lt;br /&gt;
&lt;br /&gt;
It is recommended that you use the same version of Python that is on the Maemo device, currently Python 2.5. For more information, see the instructions [http://www.python.org/download/releases/2.5.4/ at Python 2.5.4 official release]. PluThon configures PyDev to read the library sources of the host for code completion. If you are not concerned about differences, you can also install Python 2.4 or 2.6 on the host.&lt;br /&gt;
&lt;br /&gt;
Python runtime and bindings libraries must be installed on the Maemo device. To install these, select '''Project &amp;amp;gt; Validate Installed Packages'''. This validation operation is also done automatically when you create a new Python project.&lt;br /&gt;
&lt;br /&gt;
= Supported Environments =&lt;br /&gt;
&lt;br /&gt;
== Host Operating Systems Supported ==&lt;br /&gt;
&lt;br /&gt;
Supported operating systems for host PC are listed in table 4.1. Only 32-bit operating systems are supported and tested, e.g. Maemo does not provide official support for any 64-bit operating system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot;&lt;br /&gt;
|+ '''Table 4.1:''' Host Operating Systems Supported for Pluthon&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Host Operating System'''&lt;br /&gt;
! width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Officially Supported'''&lt;br /&gt;
! width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Tested'''&lt;br /&gt;
! width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | '''Note'''&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Ubuntu 8.04 Hardy&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Ubuntu 8.10 Intrepid&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Ubuntu 9.04 Jaunty&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Ubuntu 9.10 Karmic&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | 3&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Fedora 11/12&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | No&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | 1,3&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Other Linux distros&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | No&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | No&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | 1,2&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Windows XP SP3&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Windows Vista SP2&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | No&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | 2&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Windows 7&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | No&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | 2&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Mac OS X x86 Leopard&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Mac OS X x86 Snow Leopard&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Yes&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;200&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | Mac OS X PPC Leopard&lt;br /&gt;
| width=&amp;quot;75&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | No&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | No&lt;br /&gt;
| width=&amp;quot;50&amp;quot; align=&amp;quot;LEFT&amp;quot; valign=&amp;quot;TOP&amp;quot; | 1,2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; '''Note 1'''&lt;br /&gt;
: PluThon should work if Eclipse IDE and Host PC Connectivity runs properly.&lt;br /&gt;
; '''Note 2'''&lt;br /&gt;
: The Host PC Connectivity has not been fully ported to this OS causing restrictions to the supported functionality.&lt;br /&gt;
; '''Note 3'''&lt;br /&gt;
: On newer Linux distributions, some components like GTK+ and xulrunner have changed in ways that make Eclipse difficult to launch. You need to use provided &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;pluthon.sh&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; script to launch ESbox and work around the issues.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Cygwin 1.5 is part of Host PC Connectivity for Windows and works fine in Maemo environment but supports only Windows XP. Cygwin 1.7 which supports also Windows 7 and Windows Vista has problems with X11 server preventing Maemo to fully supporting Windows 7 and Windows Vista operatring systems.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Installing PluThon IDE =&lt;br /&gt;
&lt;br /&gt;
== Java Runtime ==&lt;br /&gt;
&lt;br /&gt;
Eclipse 3.4.2 requires Java 1.5 or newer:&lt;br /&gt;
&lt;br /&gt;
* [http://java.sun.com/javase/downloads/index_jdk5.jsp Sun Java 5.0] or [http://java.sun.com/javase/downloads/index.jsp Sun Java 6]&lt;br /&gt;
* [http://www.ibm.com/developerworks/java/jdk/index.html IBM JRE 5.0+]&lt;br /&gt;
* [http://openjdk.java.net/ OpenJDK 6+]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  GNU gcj is not supported.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These JREs are available as packages in your distribution or you can download them directly from the above websites.&lt;br /&gt;
&lt;br /&gt;
== Method 1: Full Product Archive (Recommended) ==&lt;br /&gt;
&lt;br /&gt;
* PluThon is distributed as a full Eclipse product archive that contains Eclipse, the Mica framework, and PluThon. This is the easiest way to ensure you have the right versions of the plugins and features.&lt;br /&gt;
* Download the product archive, extract it, and get started. Follow these instructions [/node5.html#sec:eclipse_tutorial_installation_product_archives 3.2]&lt;br /&gt;
&lt;br /&gt;
== Method 2: Eclipse Update Site ==&lt;br /&gt;
&lt;br /&gt;
* If you already have a custom Eclipse 3.4.2 installation or want to build one, you can use the Eclipse Software Updates mechanism to download, install and upgrade PluThon and Mica from the Internet.&lt;br /&gt;
* Newer versions of Eclipse than 3.4.x are not supported because of the hard dependencies on the Eclipse packages used.&lt;br /&gt;
* Follow these instructions [/node5.html#sec:eclipse_tutorial_installation_via_update_site 3.3]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  You can upgrade the installation (done either using Full Product Archive or the Eclipse Update Site) through Eclipse Software Updates.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Eclipse_Tracing</id>
		<title>Documentation/Maemo Eclipse Tutorial/Eclipse Tracing</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Eclipse_Tracing"/>
				<updated>2010-04-09T09:04:24Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Eclipse Tracing =&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
IDE Integration provides support for Ltrace library call monitor profiling, available for ESbox and PluThon products. This tutorial presents a brief introduction to Ltrace and shows how to profile your applications at ESbox and PluThon using the Ltrace. Furthermore, it helps you understand how to interpret Ltrace debugging results.&lt;br /&gt;
&lt;br /&gt;
In some cases, it might be useful to verify which are system calls and signals involved during a certain application execution. Ltrace is a profiling tool, which runs a specified command until it exits. While the command is executing, Ltrace intercepts and records the dynamic library calls, which are called by the executed process and the signals received by that process. It can also monitor system calls used by a program.&lt;br /&gt;
&lt;br /&gt;
= Ltrace and Eclipse IDE Integration =&lt;br /&gt;
&lt;br /&gt;
Maemo Eclipse IDE integration products (ESbox and PluThon) provide support for Ltrace tool for C/C++, Qt4 and Python projects on Maemo SDK and device environments. ESbox and PluThon use the command &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;ltrace -S -T&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; to run Ltrace: &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;-S&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; option to display system calls as well as library calls and &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;-T&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; option to show the time spent inside each call. There are other options for Ltrace not used at IDE Integration, they can be found at &amp;lt;ref name=r1&amp;gt;Ltrace Man Page. http://linux.die.net/man/1/ltrace&amp;lt;/ref&amp;gt;. This section shows how to profile your applications at ESbox and PluThon and how to analyse profiling results.&lt;br /&gt;
&lt;br /&gt;
== Profiling your Maemo application with Ltrace ==&lt;br /&gt;
&lt;br /&gt;
At first, you must create a C/C++, Qt4 or Python Maemo Project and select the target. After that, run the application with the Ltrace tool. The running can be local and remote for ESbox projects and remote for PluThon projects, as shown below.&lt;br /&gt;
&lt;br /&gt;
=== Local Ltrace Profiling ===&lt;br /&gt;
&lt;br /&gt;
To locally run LTrace on ESbox, right-click on the application (binary for C/C++ and Qt4 projects or the Python script for Python projects) and select '''Profile As &amp;amp;gt; Local Ltrace Profiler''', figure [[#fig:eclipse_tracing_ltrace-menu-local|9.1]]. If the &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;ltrace&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; tool is not properly installed at the selected target, the system can automatically install it, figure [[#fig:eclipse_tracing_install-ltrace|9.2]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Locally Profiling application with Ltrace&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 9.1:''' Locally Profiling application with Ltrace&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:ltrace-menu-local.png|Image ltrace-menu-local]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Installing Ltrace at target&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 9.2:''' Installing Ltrace at target&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:install-ltrace.png|Image install-ltrace]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After Ltrace starts, ESbox launches your application on the SDK target and the result is shown in the Ltrace view, figure [[#fig:eclipse_tracing_ltrace-view-local|9.3]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Local Ltrace View&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 9.3:''' Local Ltrace View&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:ltrace-view-local.png|Image ltrace-view-local]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All library and system calls are shown as a table tree: parent nodes representing initial library or system calls and child nodes for each new nested call. Each node or line has four columns: Order, Call, Exit code and Time. By clicking on any column headers you can sort the lines by that column, and if you click again on the same column the sorter direction is inverted. Column '''Order''' is used as default sorter column.&lt;br /&gt;
&lt;br /&gt;
=== Remote Ltrace Profiling ===&lt;br /&gt;
&lt;br /&gt;
To remotely run LTrace on PluThon (or ESbox), right-click on the Python project and select '''Profile As &amp;amp;gt; PluThon Remote Ltrace Python Profiler''', figure [[#fig:eclipse_tracing_ltrace-menu-remote|9.4]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Remotely Profiling application with Ltrace&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 9.4:''' Remotely Profiling application with Ltrace&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:ltrace-menu-remote.png|Image ltrace-menu-remote]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After Ltrace starts, PluThon launches your application on the Device and the result is shown in the Ltrace view as described before, figure [[#fig:eclipse_tracing_ltrace-view-remote|9.5]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Remote Ltrace View&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 9.5:''' Remote Ltrace View&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:ltrace-view-remote.png|Image ltrace-view-remote]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  If you are planning to run the Ltrace profiler more than once, you do not have to worry about cleaning current Ltrace view results, because this is done automatically before each new profiling. However, if you need to clean the Ltrace view during the profiling, you just need to click '''Delete Current ltrace lines''' button on the Ltrace view toolbar, so the view is reset and keeps receiving current ltrace results.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Analyzing results ==&lt;br /&gt;
&lt;br /&gt;
During Ltrace profiling, all library and system calls are monitored and listed as a new node/line at Ltrace view. Each line has four columns:&lt;br /&gt;
&lt;br /&gt;
* Order: the position of the call in the table tree view. This column restarts for each nested call.&lt;br /&gt;
* Description: the description of the library or system call.&lt;br /&gt;
* Exit: exit code of the call.&lt;br /&gt;
* Time: the time spent inside the call. This records the time difference between the beginning and the end of the call.&lt;br /&gt;
&lt;br /&gt;
Let us analyse an Ltrace profiling using a Python Project at target &amp;lt;code&amp;gt;DIABLO_X86&amp;lt;/code&amp;gt;. After running the Python project with Ltrace you see the following results at Ltrace view, figure [[#fig:eclipse_tracing_ltrace-results-1|9.6]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Ltrace results - initial lines&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 9.6:''' Ltrace results - initial lines&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:ltrace-results-1.png|Image ltrace-results-1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First, on the initial lines, we can see some system calls indicating that the program is being linked and loaded. For example, line 6 represents a system call named &amp;lt;code&amp;gt;SYS_open&amp;lt;/code&amp;gt; that exited with code -2 and took 0.000018 seconds to finish.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Ltrace results - program&amp;amp;#39;s main statement&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 9.7:''' Ltrace results - program's main statement&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:ltrace-results-2.png|Image ltrace-results-2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
From the latest Ltrace lines (figure [[#fig:eclipse_tracing_ltrace-results-2|9.7]]) we can see at line 85 that the program reached the main statement, called &amp;lt;code&amp;gt;__libc_start_main&amp;lt;/code&amp;gt;. Notice also that the main statement has children nodes, that is, it has called another nested call (&amp;lt;code&amp;gt;PY_Main&amp;lt;/code&amp;gt;) that has called another nested calls, and so on.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Eclipse_Memory_Profiling</id>
		<title>Documentation/Maemo Eclipse Tutorial/Eclipse Memory Profiling</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Eclipse_Memory_Profiling"/>
				<updated>2010-04-09T09:04:24Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Eclipse Memory Profiling =&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
Even if a developer provides an extensible round of tests, a certain type of problems cannot be easily detected by unit tests. In addition, such kind of problems may break the application and also disturb the normal execution of the platform. For example, a memory leak is a potential problem on applications for mobile devices, because it certainly consumes an important and limited resource. Maemo SDK provides Valgrind, a profiling tool often used to detect memory-related errors, such as memory leaks and problems on memory allocation.&lt;br /&gt;
&lt;br /&gt;
Maemo IDE integration ESbox product provides support for profiling applications by using Valgrind memory profiler. This tutorial starts with a quick introduction to the Valgrind profiling tool. After that, it demonstrates how you can profile C/C++, Qt4 and Python applications at ESbox using the Valgrind memory profiler tool integration. Finally, you can see how to interpret Valgrind output at ESbox.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Valgrind memory profiling cannot be used with Maemo PluThon Eclipse IDE. Valgrind profiler be run only with Scratchbox and Maemo SDK for x86 binaries and Maemo PluThon does not support those (it is on-device development environment for Maemo devices).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Valgrind Memory Profiling =&lt;br /&gt;
&lt;br /&gt;
Valgrind is an Open Source suite of tools for debugging and profiling Linux programs. For Maemo environment it i susable only for x86 binaries. It is a powerful and easy-to-use tool that can save you a lot of debugging time. Since Valgrind works by simulating the x86 processor and instrumenting the binaries on the fly, it can control the program execution completely. On the downside, it makes program execution 10-300 times slower than normal, depending on the used Valgrind tools, and can take a huge amount of memory.&lt;br /&gt;
&lt;br /&gt;
The Valgrind tool suite provides a number of debugging and profiling tools:&lt;br /&gt;
&lt;br /&gt;
; '''Cachegrind'''&lt;br /&gt;
: It is a profiler for cache memory. Cachegrind performs simulation of the I1, D1 and L2 caches in order to detect cache misses, wrong references and much more.&lt;br /&gt;
; '''Callgrind'''&lt;br /&gt;
: It is an extension of Cachegrind. It provides the same information as Cachegrind plus extra information about callgraphs.&lt;br /&gt;
; '''Massif'''&lt;br /&gt;
: It provides profilling information about heap memory by taking regular snapshots of a program's heap.&lt;br /&gt;
; '''Helgrind'''&lt;br /&gt;
: It is a useful tool to detect race conditions on multithreading applications, such as deadlocks.&lt;br /&gt;
; '''Memcheck'''&lt;br /&gt;
: It detects memory-management bugs on application. Memcheck keeps track of the validity (if a memory location is properly initialized) and addressability (if the memory address points to a valid memory block).&lt;br /&gt;
&lt;br /&gt;
Since Valgrind tools instrument the code in order to obtain more accurate information about application execution, Memcheck is often used because it provides detailed information about memory problems, which are very common in mobile application development. It can detect many memory-related errors that are common in C and C++ programs and that can lead to crashes and unpredictable behaviour. Memcheck is the default tool on Maemo environment. The &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;-leak-check&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; option turns on the detailed memory leak detector. Memcheck will issue messages about memory errors and leaks that it detects.&lt;br /&gt;
&lt;br /&gt;
= Valgrind and IDE Integration =&lt;br /&gt;
&lt;br /&gt;
ESbox provides support only for the Valgrind memory (Memcheck) profiler tool for C/C++, Qt4 and Python projects. It uses the command &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;valgrind -q -tool=memcheck -leak-check=yes&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; to run Valgrind memory check tool (Memcheck) with detailed memory leak detector. This section shows how to profile your applications at ESbox and how to analyse profiling results.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
You do not need to care about Valgrind installation. Once ESbox starts to profile your application with Valgrind, the system checks if necessary packages are properly installed in the environment. If they are not, ESbox installs and configure them. All these steps are performed by Validation Packages wizards, as shown in figure [[#fig:eclipse_memory_profiling_install-valgrind|10.1]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Installing Valgrind at target&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 10.1:''' Installing Valgrind at target&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:install-valgrind.png|Image install-valgrind]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Profiling your Maemo application with Valgrind ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  Valgrind does not run on ARM Linux platform. Therefore, you can only use Valgrind with X86 Maemo SDK rootstraps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
At first, you must create a C/C++, Qt4 or Python Maemo Project and select an X86 Scratchbox target. To run Valgrind, right-click on the application (binary for C/C++ and Qt4 projects or the Python script for Python projects) and select '''Profile As &amp;amp;gt; Local Valgrind Memory Profiler''', figure [[#fig:eclipse_memory_profiling_valgrind-menu|10.2]]. If the tool is not properly installed at the selected target, the system can automatically install it for you, figure [[#fig:eclipse_memory_profiling_install-valgrind|10.1]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Profiling application with Valgrind&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 10.2:''' Profiling application with Valgrind&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:valgrind-menu.png|Image valgrind-menu]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ESbox runs your application on the Maemo SDK X86 target and the result is shown in the Valgrind view, figure [[#fig:eclipse_memory_profiling_valgrind-view|10.3]]. All problems found by Valgrind are shown as a tree: problems as parent nodes and their details as children nodes. Valgrind error messages are explained at chapter [[#Analyzing results]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Valgrind View&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 10.3:''' Valgrind View&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:valgrind-view.png|Image valgrind-view]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:dialog-information.png]]&lt;br /&gt;
| '''Note:'''  If you are planning to run the Valgrind profiler more than once, you will probably need to clear current Valgrind view results before running the current program. For that, you just need to click the '''Delete Current Sample''' button on the Valgrind view toolbar. If you do not, current results are merged with the older ones.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Analyzing results ==&lt;br /&gt;
&lt;br /&gt;
During Valgrind memory profiling, different problems can be detected, such as:&lt;br /&gt;
&lt;br /&gt;
* Accessing memory locations that must not be accessed, for example, overrunning and underrunning heap blocks, overrunning the top of the stack, and accessing memory after it has been freed.&lt;br /&gt;
* Using undefined values, that is, values that have not been initialised, or that have been derived from other undefined values.&lt;br /&gt;
* Incorrect freeing of heap memory, such as double-freeing heap blocks, or mismatched use of &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;malloc/new/new[]&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; versus &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;free/delete/delete[]&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;.&lt;br /&gt;
* Overlapping src and dst pointers in &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;memcpy&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; and related functions.&lt;br /&gt;
* Memory leaks.&lt;br /&gt;
&lt;br /&gt;
This section presents a quick summary about some kinds of Valgrind error messages and how to interpret them.&lt;br /&gt;
&lt;br /&gt;
=== Heap block overrun ===&lt;br /&gt;
&lt;br /&gt;
A heap block overrun happens when you try to access (read/write) a block on heap memory that was not properly allocated. For example, an array of 10 integers is created (e.g, &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;array[10]&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;), but you try to access the 11th element, which does not exist. Most C compilers do not warn about this problem, and it is often a potential source of bugs. Most error messages look like the following one, which describes the heap block overrun problem, figure [[#fig:eclipse_memory_profiling_heap-block|10.4]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Heap block overrun&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 10.4:''' Heap block overrun&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:valgrind-1.png|Image valgrind-1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You must read each error message carefully to understand its information.&lt;br /&gt;
&lt;br /&gt;
* The number between &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;==&amp;lt;/nowiki&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; symbols is the process ID (for example, &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;7068&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;).&lt;br /&gt;
* The parent node (&amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Invalid read of size 4&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;) tells you what kind of error it is. Here, this message says that the program performed an illegal 4-byte read of address &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;0x406CDC7&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;, which, as far as Memcheck can tell, is not a valid stack address, nor corresponds to any current heap blocks or recently freed heap blocks.&lt;br /&gt;
* Details of the problems are shown as children nodes: a stack trace tells you where the problem occurred.&lt;br /&gt;
* The code addresses (for example, &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;0x406CDC7&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;) are usually unimportant, but occasionally crucial for tracking down weird bugs.&lt;br /&gt;
* Some error messages have a second component which describes the memory address involved.&lt;br /&gt;
&lt;br /&gt;
=== Memory leaks ===&lt;br /&gt;
&lt;br /&gt;
Another kind of common error is the memory leak, which happens when you do not free previously allocated memory resources, for example arrays. For memory leaks, Valgrind outputs the following messages, figure [[#fig:eclipse_memory_profiling_memory-leak|10.5]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Memory leak&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 10.5:''' Memory leak&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:valgrind-2-memory-leak.png|Image valgrind-2-memory-leak]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Message details tells you where the memory leak is happening. However, it does not tell you why the memory leaks. Among few kinds of leaks, there are two important categories.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Definitely lost&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;: when the program is really leaking memory. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;Probably lost&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;nowiki&amp;gt;: when the program is possibly leaking memory. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Uninitialised values ===&lt;br /&gt;
&lt;br /&gt;
Memory check also reports uses of uninitialised values, commonly with the message conditional jump or move depends on uninitialised value(s), figure [[#fig:eclipse_memory_profiling_unini-values|10.6]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Uninitialised values&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 10.6:''' Uninitialised values&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:valgrind-3-uninitialised-values.png|Image valgrind-3-uninitialised-values]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An uninitialised-value error is reported when your program uses a value which has not been initialised. In our example, the undefined value was used somewhere inside the &amp;lt;code&amp;gt;_dl_relocate_object&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== System calls with invalid parameters ===&lt;br /&gt;
&lt;br /&gt;
Another common error is a system call with invalid parameters, figure [[#fig:eclipse_memory_profiling_invalid-parameter|10.7]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| summary=&amp;quot;Invalid parameters&amp;quot;&lt;br /&gt;
|+ align=&amp;quot;BOTTOM&amp;quot; |'''Figure 10.7:''' Invalid parameters&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:valgrind-4.png|Image valgrind-4]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This error message shows that there is some uninitialised memory pointed to by &amp;lt;span&amp;gt;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;buf&amp;lt;/font&amp;gt;&amp;lt;/span&amp;gt; System call parameter.&lt;br /&gt;
&lt;br /&gt;
There are also other kinds of error messages not listed at this document. More information about them can be found at ''Valgrind Manual'' &amp;lt;ref name=r5&amp;gt;Valgrind Manual. http://valgrind.org/docs/manual/manual.html&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Preface</id>
		<title>Documentation/Maemo Eclipse Tutorial/Preface</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Eclipse_Tutorial/Preface"/>
				<updated>2010-04-09T09:04:23Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Preface =&lt;br /&gt;
&lt;br /&gt;
= Legal notice =&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 2008-2010 Nokia Corporation&lt;br /&gt;
&lt;br /&gt;
Nokia and Maemo are trademarks or registered trademarks of Nokia Corporation. Other product and company names mentioned herein may be trademarks or trade names of their respective owners.&lt;br /&gt;
&lt;br /&gt;
= Disclaimer =&lt;br /&gt;
&lt;br /&gt;
The information in this document is provided &amp;quot;as is,&amp;quot; with no warranties whatsoever, including any warranty of merchantability, fitness for any particular purpose, or any warranty otherwise arising out of any proposal, specification, or sample. This document is provided for informational purposes only. Nokia Corporation disclaims all liability, including liability for infringement of any proprietary rights, relating to implementation of information presented in this document. Nokia Corporation does not warrant or represent that such use will not infringe such rights.&lt;br /&gt;
&lt;br /&gt;
Nokia Corporation retains the right to make changes to this material at any time, without notice.&lt;br /&gt;
&lt;br /&gt;
= Licenses =&lt;br /&gt;
&lt;br /&gt;
This document is licensed under the [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License, version 1.2].&lt;br /&gt;
&lt;br /&gt;
Permission is granted to copy, distribute and/or modify documentation under the terms of the GNU Free Documentation License, version 1.2 or any later version published by the Free Software Foundation. Please refer to the copyright notice in each piece of documentation for Invariant Sections, Front-Cover Texts or Back-Cover Texts, if any, as defined in the License.&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Documentation_Guidelines/Maemo_document_structure</id>
		<title>Documentation/Maemo Documentation Guidelines/Maemo document structure</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Documentation_Guidelines/Maemo_document_structure"/>
				<updated>2010-04-09T08:48:14Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Maemo document structure =&lt;br /&gt;
&lt;br /&gt;
A typical Maemo document has the following structure:&lt;br /&gt;
&lt;br /&gt;
 '''Cover page'''&lt;br /&gt;
  '''Preface'''&lt;br /&gt;
  '''Table of Contents'''&lt;br /&gt;
  '''List of Figures'''&lt;br /&gt;
  '''List of Tables'''&lt;br /&gt;
  '''Glossary'''&lt;br /&gt;
  '''Chapter Introduction'''&lt;br /&gt;
  - introduction to the whole document&lt;br /&gt;
  '''Chapter AAAAAA'''&lt;br /&gt;
  '''Section Introduction'''&lt;br /&gt;
  - introduction to the chapter&lt;br /&gt;
  - links to example applications&lt;br /&gt;
  - links to API documents&lt;br /&gt;
  '''Section BBBBBB'''&lt;br /&gt;
  '''SubSection bbbbbb'''&lt;br /&gt;
  '''SubSubSection dddddd'''&lt;br /&gt;
  '''Paragraph pppppp'''&lt;br /&gt;
  '''Section CCCCCC'''&lt;br /&gt;
  '''Section Summary'''&lt;br /&gt;
  - summary of the chapter&lt;br /&gt;
  - links for further reading&lt;br /&gt;
  '''Chapter XXXXXX'''&lt;br /&gt;
  '''Section Introduction'''&lt;br /&gt;
  - introduction to the chapter&lt;br /&gt;
  - links to example applications&lt;br /&gt;
  - links to API documents&lt;br /&gt;
  '''Section YYYYYY'''&lt;br /&gt;
  '''Section Summary'''&lt;br /&gt;
  - summary of the chapter&lt;br /&gt;
  - links for further reading&lt;br /&gt;
  '''Bibliography'''&lt;br /&gt;
  '''Appendix'''&lt;br /&gt;
&lt;br /&gt;
The document structure given below assumes that each document chapter (except '''Introduction''' chapter for the whole document) is independent from other chapters and can be reused also for other documents, if needed.&lt;br /&gt;
&lt;br /&gt;
; '''Cover page'''&lt;br /&gt;
: must have title, publishing date and references to both Nokia Corporation and maemo.org. Cover page will not be included to the table of contents.&lt;br /&gt;
; '''Preface'''&lt;br /&gt;
: must be based on tempates available as appendixes for this ''Maemo Documentation Guidelines'' document. Base license must be [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License, version 1.2] and if document includes code examples copyrighted by Nokia they must use MIT-style license. Preface will not be included to the table of contents.&lt;br /&gt;
; '''List of Figures and Tables'''&lt;br /&gt;
: chapters are optional, for PDF documents only and will not be included to the table of contents.&lt;br /&gt;
; '''Glossary'''&lt;br /&gt;
: chapter is optional and will not be included to the table of contents.&lt;br /&gt;
; '''Introduction'''&lt;br /&gt;
: chapter for the whole document and sections for each chapter are mandatory and they do not have Subsections. Introduction section for each chapter must include links to supporting example applications and API documents used in that chapter.&lt;br /&gt;
; '''Chapter'''&lt;br /&gt;
: always starts from a new page and is independent from other chapters. Chapters can have four different level sections in their internal structure.&lt;br /&gt;
; '''Summary'''&lt;br /&gt;
: section for each chapter is optional but if used, should give reader links for further reading.&lt;br /&gt;
; '''Bibliography'''&lt;br /&gt;
: chapter is optional.&lt;br /&gt;
; '''Appendix'''&lt;br /&gt;
: chapters are optional. Each appendix must start from new page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Documentation_Guidelines/B._Maemo_FDL-MIT_license_page</id>
		<title>Documentation/Maemo Documentation Guidelines/B. Maemo FDL-MIT license page</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Documentation_Guidelines/B._Maemo_FDL-MIT_license_page"/>
				<updated>2010-04-09T08:48:14Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= B. Maemo FDL-MIT license page =&lt;br /&gt;
&lt;br /&gt;
Maemo legal page tempate for Maemo documents that uses [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License, version 1.2] as base license and MIT-style license for code examples copyrighted by Nokia.&lt;br /&gt;
&lt;br /&gt;
= B.1 Preface =&lt;br /&gt;
&lt;br /&gt;
= B.2 Legal notice =&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 2008-2010 Nokia Corporation&lt;br /&gt;
&lt;br /&gt;
Nokia and Maemo are trademarks or registered trademarks of Nokia Corporation. Other product and company names mentioned herein may be trademarks or trade names of their respective owners.&lt;br /&gt;
&lt;br /&gt;
= B.3 Disclaimer =&lt;br /&gt;
&lt;br /&gt;
The information in this document is provided &amp;quot;as is,&amp;quot; with no warranties whatsoever, including any warranty of merchantability, fitness for any particular purpose, or any warranty otherwise arising out of any proposal, specification, or sample. This document is provided for informational purposes only. Nokia Corporation disclaims all liability, including liability for infringement of any proprietary rights, relating to implementation of information presented in this document. Nokia Corporation does not warrant or represent that such use will not infringe such rights.&lt;br /&gt;
&lt;br /&gt;
Nokia Corporation retains the right to make changes to this material at any time, without notice.&lt;br /&gt;
&lt;br /&gt;
= B.4 Licenses =&lt;br /&gt;
&lt;br /&gt;
This document is licensed under the [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License, version 1.2].&lt;br /&gt;
&lt;br /&gt;
Permission is granted to copy, distribute and/or modify documentation under the terms of the GNU Free Documentation License, version 1.2 or any later version published by the Free Software Foundation. Please refer to the copyright notice in each piece of documentation for Invariant Sections, Front-Cover Texts or Back-Cover Texts, if any, as defined in the License.&lt;br /&gt;
&lt;br /&gt;
The code examples copyrighted by Nokia Corporation and included in this document are licensed to you under MIT-style license. License text for that MIT-style license is as follows:&lt;br /&gt;
&lt;br /&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the &amp;quot;Software&amp;quot;), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:&lt;br /&gt;
&lt;br /&gt;
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.&lt;br /&gt;
&lt;br /&gt;
THE SOFTWARE IS PROVIDED &amp;quot;AS IS&amp;quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	<entry>
		<id>http://bugs.maemo.org/Documentation/Maemo_Documentation_Guidelines/Glossary</id>
		<title>Documentation/Maemo Documentation Guidelines/Glossary</title>
		<link rel="alternate" type="text/html" href="http://bugs.maemo.org/Documentation/Maemo_Documentation_Guidelines/Glossary"/>
				<updated>2010-04-09T08:48:13Z</updated>
		
		<summary type="html">&lt;p&gt;Wikiuser:&amp;#32;importing documentation, see Meta:Problems in the LaTeX2HTML2Wiki import process&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Glossary =&lt;br /&gt;
&lt;br /&gt;
; '''API'''&lt;br /&gt;
: Application Programming Interface, providing source code level compatibility.&lt;br /&gt;
; '''ESbox'''&lt;br /&gt;
: Eclipse product implementing integration between Eclipse IDE and Maemo SDK.&lt;br /&gt;
; '''GUI'''&lt;br /&gt;
: Graphical User Interface.&lt;br /&gt;
; '''IP'''&lt;br /&gt;
: Internet Protocol is a protocol used for communicating data across a packet-switched internetwork.&lt;br /&gt;
; '''LaTeX'''&lt;br /&gt;
: is a document markup language and document preparation system for the TeX typesetting program.&lt;br /&gt;
; '''Maemo'''&lt;br /&gt;
: Software platform for mobile devices developed by Nokia, based on GNU/Linux and GNOME/GTK+ technologies. It includes proprietary components to make it work on the Nokia Maemo compatible device.&lt;br /&gt;
; '''maemo.org'''&lt;br /&gt;
: Developer community web site maintained by Nokia, main point of reference for open source and third-party developers in general.&lt;br /&gt;
; '''Mica'''&lt;br /&gt;
: Maemo IDE Common Architecture, Eclipse plugin development framework used by ESbox, PluThon and other Maemo Eclipse products.&lt;br /&gt;
; '''OS'''&lt;br /&gt;
: Operating System or sometimes Open Source.&lt;br /&gt;
; '''PluThon'''&lt;br /&gt;
: Eclipse product implementing on-device Python development environment.&lt;br /&gt;
; '''Scratchbox'''&lt;br /&gt;
: cross-compilation toolkit designed to make embedded Linux application development easier and to cross-compile an entire Linux distribution.&lt;br /&gt;
; '''SDK'''&lt;br /&gt;
: Software Development Kit.&lt;br /&gt;
; '''TeX'''&lt;br /&gt;
: is a typesetting system that allows anybody to produce high-quality books using a reasonable amount of effort, and to provide a system that would give the exact same results on all computers.&lt;br /&gt;
; '''UI'''&lt;br /&gt;
: User Interface.&lt;br /&gt;
; '''XML'''&lt;br /&gt;
: eXtensible Markup Language.&lt;br /&gt;
&lt;br /&gt;
= Maemo Releases =&lt;br /&gt;
&lt;br /&gt;
; '''Mistral'''&lt;br /&gt;
: Maemo 2.0 release for Nokia 770 device. Corresponds to the Nokia Internet Tablet SE 2006 version 2.01.2006.26-8.&lt;br /&gt;
; '''Scirocco'''&lt;br /&gt;
: Maemo 2.1 release for Nokia 770 device. Includs mainly bugfixes and some other enhancements. Corresponds to Nokia Internet Tablet SE 2006 version 2.2006.39-14.&lt;br /&gt;
; '''Gregale'''&lt;br /&gt;
: Maemo 2.2 release for Nokia 770 device (bugfixes and enhancements).&lt;br /&gt;
; '''Bora'''&lt;br /&gt;
: Maemo 3.x releases for Nokia N800 device. Corresponds to Internet Tablet OS releases &amp;quot;1.2006.47-20&amp;quot;, &amp;quot;2.2006.51-6&amp;quot; (Maemo 3.0), &amp;quot;3.2007.10-7&amp;quot; (Maemo 3.1) and &amp;quot;4.2007.26-8&amp;quot;+&amp;quot;4.2007.38-2&amp;quot; (Maemo 3.2).&lt;br /&gt;
; '''Chinook'''&lt;br /&gt;
: Maemo 4.0.x releases for Nokia N800 and N810 devices. Corresponds to Internet Tablet OS releases &amp;quot;1.2007.44-4&amp;quot; (Maemo 4.0) and &amp;quot;2.2007.51-3&amp;quot; (Maemo 4.0.1)&lt;br /&gt;
; '''Diablo'''&lt;br /&gt;
: Maemo 4.1.x releases for Nokia N800, N810 and N810 WiMAX devices. Corresponds to Internet Tablet OS releases &amp;quot;4.2008.23-14&amp;quot; (Maemo 4.1), &amp;quot;4.2008.36-5&amp;quot; (Maemo 4.1.1) and &amp;quot;5.2008.43-7&amp;quot; (Maemo 4.1.2)&lt;br /&gt;
; '''Fremantle'''&lt;br /&gt;
: Maemo 5.x releases for N900 device. Corresponds to Maemo 5 OS release &amp;quot;1.2009.42-11&amp;quot; + eMMC content &amp;quot;1.2009.41-1&amp;quot; (Maemo 5) and OS release &amp;quot;2.2009.51-1&amp;quot; + eMMC content &amp;quot;1.2009.41-1&amp;quot; (Maemo 5 Update)&lt;br /&gt;
; '''Harmattan'''&lt;br /&gt;
: Maemo 6.x releases, corresponds to Maemo 6 OS release &amp;quot;x.2010.xx-x&amp;quot;&lt;/div&gt;</summary>
		<author><name>Wikiuser</name></author>	</entry>

	</feed>