ESbox is part of Maemo IDE Integration



ESbox is an Eclipse-based IDE. It is based on Eclipse Ganymede (3.4.2) and provides C/C++ and Python support, source editing, project building, run/debug/profiling, and Debian package deployment. ESbox communicates transparently with Scratchbox and one or more Maemo SDKs, available separately, to let you develop Maemo applications. ESbox can also update the image on your Maemo devices and communicate with them using the various network clients and servers available with the PC Connectivity project.

With ESbox, Scratchbox, Maemo SDK(s), and PC Connectivity installed, you can run, debug, and profile locally under emulator running in an X server, and also deploy the application to a Maemo device (N800, N810, N900) to run, debug, and profile on hardware.


ESbox may be installed completely from an archive or added to an existing Eclipse 3.4.2 installation from our update sites.

ESbox may be installed in a variety of hosts. The "Supported Environments" sections describes these. The "Installing ESbox IDE" section describes how to find and install ESbox.

Virtual machine

Only Linux/x86 hosts natively run Scratchbox and Maemo SDKs. In other hosts, you must run Scratchbox and the Maemo SDK inside a Linux/x86 virtual machine. ESbox supports using virtual machines in this manner.

The "Supported Environments" sections describes the VM engines supported.

In ESbox, you can install a server virtual image using File > New > Other > Maemo Installers > Maemo SDK Virtual Image.

Development Environment

The development environment consists of Scratchbox and one or more Maemo SDKs. These are essential to Maemo development environment and ESbox is useless without them.

ESbox does not ship with Scratchbox or any Maemo SDK, but it includes wizards that allow you to install them. See File > New > Other > Maemo Installers > Scratchbox 1 and ... > Scratchbox 1 Targets.

If you want to install these yourself, see the Maemo SDK site for more information.

For Python development, you need an Python interpreter installed on the host machine in order to support the editor and the run/debug mechanism in PyDev. Typically you should use the same version of Python that is on the device, which is currently Python 2.5. See instructions at at Python 2.5.4 official release. ESbox configures Pydev to read the host installation's library sources for code completion. If you're not concerned about differences here, a 2.4 or 2.6 version may be installed on the host.

PC Connectivity

In order to run, debug, profile, or install your application on device, use the PC Connectivity project. It provides convenient installation packages allowing you to use ssh, sbrsh, NFS, rsync, avahi, etc. between your PC and your Maemo device. There is a host component (for the machine running Eclipse, and also for the virtual machine, if you have to use one) and a target component (for the device).

The "Supported Environments" sections describes the Maemo releases and devices supported.

Find the complete description and installation instructions on the PC connectivity project web site.

Supported Environments

Hosts supported

Host Virtual Machine Required Supported? Tested?
Ubuntu 8.04 Hardy, 8.10 Intrepid, 9.04 Jaunty (x86) No [3] Yes Yes
Ubuntu 9.10 Karmic (x86) or other Linux/x86 distros No [3] Mostly [1] [5] Partially
Other Linux Yes Maybe [2] [5] No
Windows XP Yes Yes Yes
Windows Vista/7 Yes Yes Yes
Mac OS X Intel Yes Yes Yes
Mac OS X PPC Yes Maybe [2] [4] No

[1] If the Scratchbox 1 and Maemo SDKs run properly, and Eclipse runs properly, then ESbox should work.

[2] If Eclipse runs properly and virtual machine software runs properly, then ESbox should work. Note that gcj has a lot of problems with Eclipse, so we recommend using a Sun or IBM Java virtual machine.

[3] But you may use a virtual machine, if you want.

[4] The Host components of PC Connectivity have not been fully ported to this host.

[5] On newer Linux distributions, some components like GTK+ and xulrunner have changed in ways that make Eclipse difficult to launch. Please use the provided script (in product archives or download directly here) to launch ESbox and work around the issues.

Virtual machine engines supported

  • VMware Workstation / Server / Player
    • Workstation or Server recommended for easiest configuration. Otherwise, if you want to reconfigure the memory size or change the disk assignments, you need to hand-edit *.vmx files. Also, with Player, you cannot use VMware Tools to accelerate the machine.
  • Sun VirtualBox 2.2 or newer
    • Performance is reasonable and configuration is easy, but it is not as fast as VMware.
  • QEMU system emulation
    • Not recommended, since even with Kqemu acceleration on Windows, the performance is quite slow. Without it, performance is awful.

Maemo Releases supported

The Maemo releases supported are:

  • OS2008 Diablo
  • Maemo 5 Fremantle
  • Older releases may work, but PC Connectivity 2nd Edition is not supported on them; you must manually set up networking, SSH, and SBRSH.

Installing ESbox IDE

Java runtime

ESbox is an Eclipse application, which needs Java to run.

Eclipse 3.4.2 needs Java 1.5 or newer:

You can find these JREs as packages in your distribution or download them directly from their websites.

Method 1: Full Product Archive (recommended)

  • 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.
  • Download it, extract it, and get started! Follow these instructions.

Method 2: Eclipse Update Site

  • 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 Mica and ESbox from the Internet.
  • Newer versions of Eclipse are not supported due to hard dependencies on the CDT tooling being used.
  • Follow these instructions.

NOTE: Both the installation via the Full Product Archive and the Eclipse Update Site can be upgraded using Eclipse's Software Updates.

Development Environment

Virtual machine images (non-Linux)

If you are running ESbox outside of Linux/x86, you install the Scratchbox and Maemo components on a Linux/x86 virtual machine.

The Maemo Eclipse Integration project provides Linux/x86 images suitable for use with VMware, VirtualBox, and QEMU.

  • ESbox can install a Maemo SDK VM image for you using the wizard File > New > Other > Maemo Installers > Maemo SDK VM Image.

You will need to configure ESbox to use the virtual machine so that ESbox knows where to find or install Scratchbox and the Maemo SDKS.

See the Maemo SDK VM Image project page for more information on configuring and installing virtual machines.

Scratchbox and Maemo SDK

To build and run C/C++ or Python applications you will need to install the Maemo development environment in a Linux/x86 machine (either your host or a VM).

  • Scratchbox

    Scratchbox enables building and emulating programs in a transparent cross-compilation and cross-execution environment.

    • Scratchbox 1 is the primary cross environment for Maemo development
    • Scratchbox 2 is a newer cross environment which overcomes several issues with Scratchbox 1, but it is not officially supported or tested in ESbox.
  • Maemo SDKs
    • Maemo 4.1.x Diablo
    • Maemo 5.0.x Fremantle
      • NOTE: Fremantle SDKs require the Nokia closed binaries to function properly.
    • Older SDKs (for either variant of Scratchbox) may work but are not supported.
  • Nokia closed binaries

    Maemo SDKs are open-source, but some components installed on the device and available to the SDK are closed-source. These must be installed for Fremantle SDKs to operate properly under emulation.

  • ESbox can install Scratchbox 1, Diablo/Fremantle Maemo SDKs, and Nokia closed binaries using wizards under File > New > Other > Maemo Installers.

X Server

When running or debugging locally during development, an X11 server runs on the Eclipse host and displays your programs in the Maemo Application Framework (Maemo AF).

NOTE: X servers are available on all platforms, but the Fremantle SDK imposes some high requirements on the X server. Linux-on-Linux development will yield the best results (quality and performance). On other hosts, there are workarounds for known issues.

  • Linux
    • The Xephyr nested server is recommended.
    • In Debian Linux: sudo apt-get install xserver-xephyr
    • In Fedora Linux: sudo yum install xorg-x11-xserver-Xephyr
  • Windows
  • Mac OS X

PC Connectivity

In order to communicate with your Maemo device, a set of daemons and utilities are needed on the host and target to fully communicate with the Maemo device.

Host PC Connectivity

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/x86, Windows, and Mac OS X Intel.

Install the Host PC Connectivity package on the machine running Eclipse.

NOTE: for non-Linux installations, you also need to install Host PC connectivity inside the VM to use sbrsh.

Find the complete details for both on the PC connectivity project web site.

Target (Maemo) PC Connectivity

On the Maemo device, you need the other half of PC Connectivity, containing the servers that match the clients installed on the host side. The PC Connectivity requires either a Diablo and Fremantle release.

Find the complete description and installation instructions on the PC connectivity project web site.

  • ESbox can flash OS images onto your device using the File > New > Other > Maemo Installers > Flash Images to Device wizard.

Maemo SDK Help Content

To finish the installation, see instructions on installing the Maemo SDK documentation and offline hover help support.