Hi everybody,
 
We are working on L4, currently especially on the graphical aspect. As we love NitPicker (NitPicker is cool ;)), we want to use it to run L4Linux on top on it.
 
So we have started with a Linux installation (Gentoo Linux), after what we have installed Fiasco, L4Env and L4Linux (2.6.20, next 2.6.21, on top on our recently installed Gentoo, reusing its filesystem). To test our installation, we first use L4Con, but the mouse moves were extremely slow; so next we use DOpE, and it was cool, all worked (network and hard disk via L4Linux, not Ore... Oh is there exist a multiplexer, as Ore, for hard disk ?). But of course, the desktop-in-window aproach does not fully satisfied us, we want a fullscreen aproach so we start investigating on NitPicker.
 
The problem is that all tutorials related to NitPicker + X.org are based on a quite-old version of X.org, before the X.org team adopted the modular approach. So we decide to port the last X.org (1.1.1) to use NitPicker, following instructions found at http://os.inf.tu-dresden.de/pipermail/l4-hackers/2007/002774.html 
 
First we compiled the nitpicker-client ovlwm server, nitovlwm. Then we install into the L4Linux the lxevent program, started after Linux kernel boot, with creation of /dev/lxevent, and the ovltrack program, started via .xinitrc. We had to change a little the Makefile of ovltrack by adding the -Bdynamic option in LIBS. We compiled and generated lxevent_drv.o (X.org mouse driver in xorg.conf). The last step was generating the X.org screen driver, ovlscreen_drv.o. The changes toward previous versions occurs at this step, as now X.org is modular and consists in several small packages. But after resolving a lot of include path problems, importing the needed X.org package to compile the driver, we got the driver ovlscreen_drv.o compiled and copy it into the L4Linux filesystem, modifying xorg.conf to use this driver.
Also we use NitDope, so L4fb driver in L4Linux that creates /dev/fb0.
 
Then we boot our L4-based system, NitPicker, NitDOpE and L4Linux, all start, all was right. The problems come when starting X.org. Indeed, X.org started, the window manager also (WindowMaker), in fact all works... excepts refresh  ! Indeed when moving the mouse on a L4Linux window, the window content is not refreshed, resulting in an unusable window. But clicking outside the window forces the refresh.
 
We know that with DOpE, the refresh is automatic, periodic and so it was working for us. But with NitPicker, we know that the refresh only occurs if a change is made in the client. What we don't know is how this refresh is done, who is responsible for it (ovlscreen, ovltrack, nitovlwm ?), and which are the impacts of using a modular X.org in this process....
 
Is someone can give us some tips on how to make the refresh to occur ? Or details about event forwarding ? Is there other changes to be made that we missed ?
 
Any help will be grateful appreciated. Thanks.
 
--
Nicolas Clermont