Host-based development with Xoo and Xephyr

From Openmoko

Revision as of 16:02, 12 June 2007 by Liane shen (Talk | contribs)

Jump to: navigation, search

One of good ways to get started developing is getting rootfs working on host machine, since most of us doesn't have real hardware.

Xoo is a graphical wrapper around Xnest, the nested X server. You can make Xnest look like a particular device's display and set up buttons on that device. This is useful for embedded developers who want to simulate a target device on their desktop machine.

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

Contents

Getting rootfs

Use the Building OpenMoko using the MokoMakefile to get rootfs, just before make openmoko-devel-image run

# sed -i 's/fic-gta01/x86/' build/conf/local.conf

than just run make openmoko-devel-image. After a while(half of day) you should have in build/tmp/image/ file openmoko-devel-image-x86-$(DATE).rootfs.tar.gz mine is here [1].

Build issues

Please see this bug tracker issues if you have problems getting libelf compiled (do_stage fails).

Install Xoo on your host

For gentoo users run just

# emerge xoo

Debian/Ubuntu

# sudo apt-get install xoo xnest

For Fedora (package has been submitted to Fedora for approval, see https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=236297):

# ftp://ftp.xelerance.com/xoo/

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

Making X cooperate

  • Make sure your iptables do not prevent you from connecting to port 6000(x11) on localhost
  • Make sure your X is listening on port 6000(X11) on localhost (netstat is friend)
  • Enable conection from localhost
# xhost localhost

Preparing rootfs

  • Unpack rootfs file in any directory and cd to that dir.
  • Get dev files in rootfs
# sudo mount --bind /dev/ rootfs/dev/
  • Chroot to rootfs
# sudo chroot rootfs /bin/sh

Getting it up

In another term start xoo, good idea is to download [2] and run

# xoo --device neo1973.xml

In chrooted enviroment export display to connect to started xoo

# export DISPLAY=localhost:1.0

and start window manager.

# x-window-manager

By this time you should have matchbox running in Xoo window.

Personal tools

One of good ways to get started developing is getting rootfs working on host machine, since most of us doesn't have real hardware.

Xoo is a graphical wrapper around Xnest, the nested X server. You can make Xnest look like a particular device's display and set up buttons on that device. This is useful for embedded developers who want to simulate a target device on their desktop machine.

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

Getting rootfs

Use the Building OpenMoko using the MokoMakefile to get rootfs, just before make openmoko-devel-image run

# sed -i 's/fic-gta01/x86/' build/conf/local.conf

than just run make openmoko-devel-image. After a while(half of day) you should have in build/tmp/image/ file openmoko-devel-image-x86-$(DATE).rootfs.tar.gz mine is here [1].

Build issues

Please see this bug tracker issues if you have problems getting libelf compiled (do_stage fails).

Install Xoo on your host

For gentoo users run just

# emerge xoo

Debian/Ubuntu

# sudo apt-get install xoo xnest

For Fedora (package has been submitted to Fedora for approval, see https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=236297):

# ftp://ftp.xelerance.com/xoo/

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

Making X cooperate

  • Make sure your iptables do not prevent you from connecting to port 6000(x11) on localhost
  • Make sure your X is listening on port 6000(X11) on localhost (netstat is friend)
  • Enable conection from localhost
# xhost localhost

Preparing rootfs

  • Unpack rootfs file in any directory and cd to that dir.
  • Get dev files in rootfs
# sudo mount --bind /dev/ rootfs/dev/
  • Chroot to rootfs
# sudo chroot rootfs /bin/sh

Getting it up

In another term start xoo, good idea is to download [2] and run

# xoo --device neo1973.xml

In chrooted enviroment export display to connect to started xoo

# export DISPLAY=localhost:1.0

and start window manager.

# x-window-manager

By this time you should have matchbox running in Xoo window.