Archived:Developing with ESBOX and Maemo SDK using Virtual machine Image
Maemo development happens to be quite difficult at this stage, ESBOX IDE helps developers a lot in this efforts. Merely installing Maemo SDK will not make one instantly get going. Since Maemo is linux based one needs to have proficiency in Linux and commands.
ESBOX is an IDE based on Eclipse comes in two flavors.
1. A plug-in to existing Eclipse installation 2. Standalone IDE similar to Carbide.c++
More information on ESBOX can be found Here. Installing ESBOX is very simple but configuring it with Maemo SDK or Scratchbox 1 is not so easy. Its expected to do the development natively but in that case you might have to switch completely to Linux. If you are not interested in switching to linux completely then there are multiple solutions available.
ESBOX and Scratchbox 1 Installation
Installing SDK and ESBOX separately on Linux
As said earlier its expected to do the development natively for ease, the best alternative so far is to use a Virtual Machine on Windows box. If you have dedicated Linux machine then you can configure the Linux box by installing SDK and ESBOX manually but if you are a beginner then it is not at all suggested.
Still SDK and ESBOX can be downloaded individually by following the links
1) SDK (Use GUI installer which requires PyQt4) from here 2) ESBOX can be downloaded from this page. The plug in and core IDE are available in two different archives.
The easier way
The individual installation needs great degree of experience and expertise on Linux system. The easier way of having your Maemo development environment ready is to use ready to use VM image of ubuntu 8.10 build.
Since this is a Virtual Machine build, three Virtual Machines are supported
1. VMWare (VMPlayer) 2. VirtualBox 3. QEMU
You need to have one of the machine installed on your Windows Box ( XP/Vista).
Installing using VirtualBox(VB)
You can download VirtualBox(VB) from Sun Microsystems official site, its free, this may be one of the advantage over VMWare. Once you have VB ready, you need to download and extract the hard disk image of a ready to use Ubuntu installation, which has the development environment readily installed( and believe me this works great).
Download the latest virtual image of Ubuntu Desktop version from here. This contains hard disk image that can run on multiple VMs so not to worry if you have something other than VB. This virtual image of OS hard disk after installation of all packages contains following things pre-installed for you.
1. Ubuntu 8.10 2. Scratchbox 1 targets (both X86 and ARMEL) 3. SDK with Maemo environment 4. Esbox
Above all the things are ready to use and pre-configured. If you need you may update them online, but beware of updating Ubuntu to something higher than 8.10 as ESBOX and SDK has some issues on the higher versions. Currently 8.10 is the most stable with ESBOX and Scratchpad 1 targets. Ubuntu 8.10 is also called as Intrepid. After downloading the virtual image from ESBOX website extract it to a suitable folder, for next step you will need this.
Installing virtual image to VirtualBox
To install the image to the VB , start with New OS installation
Select the operating system and version appropriately
Select the 'use existing hard disk' option in next step, because we have already downloaded hard disk image of pre-installed SDK, ESBOX Ubuntu OS.
Now select the browse button to locate the image file which you must extract from downloaded archive. This hard disk image file is having .vmdk extension.
On this screen now click the 'Add' button to locate and add the .vmdk file, add the file to the list and select it as a next step.
Now go on clicking next button and you are done with new OS installation in VB using hard disk image. Now you can start the OS / boot the OS, to see whats there for you.
The ready to use development box
Once you boot the OS you will be able to see several icons on Ubuntu desktop they include ESBOX, SDK etc.
Hello World Application
Its very easy to create your first 'Hello World' application with ESBOX, though the linux build system is very complex and difficult to learn. ESBOX lets you create the basic project framework very easily without writing even a single line of code. The steps involved are very similar to Carbide.c++ based project.
Step 1 : Create project
Start ESBOX and from file menu select a new project, you may select C or C++, the UI look and feel of C and C++ applications on Maemo is different on device, in emulator they appear to be same. If you want to go for Maemo native look and feel select C project which uses GTK library, not sure wats the difference in C and C++ API and UI.
Step 2 : Select Project Template
As a next step select the Maemo 5 project template and under that select Hello World. You have multiple choices available in this step. If you want to for a Qt project then the project type should be C++.
Step 3 : Select Project Configuration
In the next step select project configuration. There are basically two project configurations for FREMANTLE (Maemo 5)
1. X86 - for emulator 2. ARMEL - for device deployment
Under each you have Debug and Optimized. The ARMEL has issues with Emulators so if you intend to use emulator then dont forget to select X86 configuration for build
Step 4 : Finalize the project
Select defaults for next steps and you are done. At the end ESBOX will ask you for update of packages, if you wish to do so select yes then it will check for updates online, but in my opinion there are chances that it may disturb the configuration so as a beginner you better say 'NO' and go ahead with build
Step 5 : Running 'Hello World'
Now build the project by right clicking on the project name and selecting Run As -> Maemo Localo Application option Once the build is done without any error (mostly), ESBOX will detect that the emulator/Application Framework is not running so it will ask if you want to start it, say yes and enter the amazing world of Maemo Development. Once the emulator is started successfully you will see the 'Hello World' running.
Application running on Maemo
Step 6 : Running it on 'Device'
To run the application its important to select ARMEL configuration, perform build and then create debian package. Once the ".deb" package is ready ESBOX lets you install the application directly on device. But for this step your device needs to be connected to the PC, and PC connectivity should be setup.
Connecting USB devices is slightly complex in VirtualBox but with some good efforts that can be done, also your Ubuntu box will need some additional packages from "PC Connectivity Project"
This article explains few concept associated with Maemo development and introduces the tools. The article mainly focuses on how to setup your own Maemo development environment and get started with "Hello World" application.
- Original Author vdharankar