Host-based development with Xoo and Xephyr
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.
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 .
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
# 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):
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
- 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  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.
By this time you should have matchbox running in Xoo window.