Host-based development with Xoo and Xephyr
From Openmoko
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.
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].
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.