Please see [[Getting OpenMoko working on host with Xephyr]] which might contain more up-to-date information.

+

This page introduces you to the most efficient way to create new software for the Openmoko platform. Note that there is a VMware image where this environment has been prebuilt for you.

+

''Does anyone know where to find this VMWare image??''

==Host-based development==

==Host-based development==

−

This term means you develop most of your application in your standard desktop environment until it's almost finished. Then you can use a [[Toolchain]] to cross-compile your application for the Neo1973. Host-based development is incredibly more efficient since you can use your (typically) fast computer, large monitor, etc.

+

This term means you develop most of your application in your standard desktop environment until it's almost finished. Then you can use a [[Toolchain]] to cross-compile your application for the Neo1973. Host-based development is incredibly more efficient since you can use your (typically) fast computer, large monitor, ... Compiling for your host also means that your edit-run-debug turnaround cycles are much faster, because you can skip the uploading-to-neo step.

==Xoo and Xephyr==

==Xoo and Xephyr==

[http://projects.o-hand.com/xoo/ Xoo] is a GTK2 based graphical wrapper around a ‘Windowed’ X Server. The X server is typically '''Xnest''', the nested X server, or [http://projects.o-hand.com/xephyr Xephyr]. It is intended for embedded developers that want to simulate a target device (with an '''accurate''' display size, working hardware buttons, etc) on a desktop machine.

[http://projects.o-hand.com/xoo/ Xoo] is a GTK2 based graphical wrapper around a ‘Windowed’ X Server. The X server is typically '''Xnest''', the nested X server, or [http://projects.o-hand.com/xephyr Xephyr]. It is intended for embedded developers that want to simulate a target device (with an '''accurate''' display size, working hardware buttons, etc) on a desktop machine.

−

Note that Xoo is not required to simulate OpenMoko hardware - it just improves the presentation.

+

Note that Xoo is not required to simulate Openmoko hardware - it just improves the presentation.

==Prerequisites==

==Prerequisites==

Line 16:

Line 17:

You need to install some software that is usually not present on a desktop system, but used on the Neo1973. Some of this software has already been precompiled by your friendly distribution packager, so you don't need to compile it yourself. Most likely you can install the following packages from your distribution repository:

You need to install some software that is usually not present on a desktop system, but used on the Neo1973. Some of this software has already been precompiled by your friendly distribution packager, so you don't need to compile it yourself. Most likely you can install the following packages from your distribution repository:

−

* xephyr

+

* gtk-doc-tools

−

* xoo

+

* libstartup-notification0-dev

−

* matchbox-window-manager

+

* libapm-dev

−

* matchbox-keyboard

+

* libgpgme11-dev

* libgtk2.0-dev

* libgtk2.0-dev

+

* libebook1.2-dev

* libecal1.2-dev

* libecal1.2-dev

+

* libnotify-dev

+

* libpulse-dev

+

* libcurl4-openssl-dev (or libcurl4-gnutls-dev)

+

* matchbox-window-manager

+

* matchbox-keyboard

+

* pulseaudio

+

* xephyr ( package is called xserver-xephyr on ubuntu and debian )

+

* xoo

+

+

+

Ubuntu-Specific Packages

+

* gnome-common (does this belong above?)

+

* ubuntu-mobile-dev (this depends on many other development packages; some are necessary, others optional)

We have prepared a script for you that starts Xoo and all the necessary X clients in one run. The script is online at

+

* [http://svnweb.openmoko.org/trunk/src/host/xoo/om-launch om-launch]

+

+

==Creating a new application==

+

+

{{todo|...}}

−

We have prepared a script for you that starts Xoo and all the necessary X clients in one run. The script om-run-xoo contains the following commands:

+

==Using a Neo1973 as external GSM modem==

−

{{todo|...}}

+

{{todo|...}}

−

run xoo

+

==Using an external GPS device==

−

set DISPLAY

+

−

set gconf keys

+

−

set GTK2_RC_FILES

+

−

run window manager

+

−

run panel

+

−

run openmoko-dialer

+

−

run openmoko-today

+

−

run neod

+

−

[[Category:Developer software]]

+

{{todo|...}}

−

[[Category:Guides]]

+

−

{{Languages|Getting_OpenMoko_working_on_host_with_Xoo}}

+

{{Languages|Host-based development with Xoo and Xephyr}}

+

[[Category:Emulation]]

Latest revision as of 08:45, 17 February 2009

This page introduces you to the most efficient way to create new software for the Openmoko platform. Note that there is a VMware image where this environment has been prebuilt for you.
Does anyone know where to find this VMWare image??

This term means you develop most of your application in your standard desktop environment until it's almost finished. Then you can use a Toolchain to cross-compile your application for the Neo1973. Host-based development is incredibly more efficient since you can use your (typically) fast computer, large monitor, ... Compiling for your host also means that your edit-run-debug turnaround cycles are much faster, because you can skip the uploading-to-neo step.

Xoo is a GTK2 based graphical wrapper around a ‘Windowed’ X Server. The X server is typically Xnest, the nested X server, or Xephyr. It is intended for embedded developers that want to simulate a target device (with an accurate display size, working hardware buttons, etc) on a desktop machine.

Note that Xoo is not required to simulate Openmoko hardware - it just improves the presentation.

You need to install some software that is usually not present on a desktop system, but used on the Neo1973. Some of this software has already been precompiled by your friendly distribution packager, so you don't need to compile it yourself. Most likely you can install the following packages from your distribution repository:

gtk-doc-tools

libstartup-notification0-dev

libapm-dev

libgpgme11-dev

libgtk2.0-dev

libebook1.2-dev

libecal1.2-dev

libnotify-dev

libpulse-dev

libcurl4-openssl-dev (or libcurl4-gnutls-dev)

matchbox-window-manager

matchbox-keyboard

pulseaudio

xephyr ( package is called xserver-xephyr on ubuntu and debian )

xoo

Ubuntu-Specific Packages

gnome-common (does this belong above?)

ubuntu-mobile-dev (this depends on many other development packages; some are necessary, others optional)

Views

Personal tools

Host-based development

This term means you develop most of your application in your standard desktop environment until it's almost finished. Then you can use a Toolchain to cross-compile your application for the Neo1973. Host-based development is incredibly more efficient since you can use your (typically) fast computer, large monitor, etc.

Xoo and Xephyr

Xoo is a GTK2 based graphical wrapper around a ‘Windowed’ X Server. The X server is typically Xnest, the nested X server, or Xephyr. It is intended for embedded developers that want to simulate a target device (with an accurate display size, working hardware buttons, etc) on a desktop machine.

Note that Xoo is not required to simulate OpenMoko hardware - it just improves the presentation.

Prerequisites

Part I (precompiled software)

You need to install some software that is usually not present on a desktop system, but used on the Neo1973. Some of this software has already been precompiled by your friendly distribution packager, so you don't need to compile it yourself. Most likely you can install the following packages from your distribution repository:

xephyr

xoo

matchbox-window-manager

matchbox-keyboard

libgtk2.0-dev

libecal1.2-dev

Gentoo users run just

# emerge <package>

Debian/Ubuntu

$ sudo apt-get install <package>

For Fedora, you can use

# yum install <package>

For Mandriva, you may try

# urpmi <package>

for any other find a way how to do it in your distro.

Part II (building from source)

You also need some software that is typically not found in your distribution repository, either because it's too new, too specific, or unheard of.

Most likely you will need to compile the following packages for your distribution: