Hi,
I am trying Genode with L4/Fiasco on a HP Compaq nx7400 laptop running Debian Lenny/sid. The documentation is at: http://genode.org/community/wiki/GenodeOnL4Fiasco
I have extracted the toolchain to /usr/local/crosstool, built the preconditions and the Fiasco version for Genode, copied all to /boot. My config is shown below:
=== config ===
<config> <start> <filename>ps2_drv</filename> <ram_quota>1M</ram_quota> </start> <start> <filename>timer</filename> <ram_quota>1M</ram_quota> </start> <start> <filename>nitpicker</filename> <ram_quota>1M</ram_quota> </start> <start> <filename>vesa_drv</filename> <ram_quota>1M</ram_quota> </start> <start> <filename>launchpad</filename> <ram_quota>32M</ram_quota> </start> </config>
=== END ===
=== menu.lst ===
title Genode Demo kernel /boot/bootstrap -modaddr=0x03000000 module /boot/fiasco nowait -nokdb -tbuf_entries=16384 -serial_esc module /boot/sigma0 module /boot/core module /boot/init module /boot/config module /boot/ps2_drv module /boot/framebuffer_ux_drv module /boot/nitpicker module /boot/timer module /boot/launchpad module /boot/testnit module /boot/scout module /boot/nitlog module /boot/liquid_fb
=== END ===
On booting, I get boot messages and it hangs at the following:
=== OUTPUT ===
int main(): --- create local services --- int main(): --- start init --- int main(): Ok we have 943 MB transferred to init int main(): --- init created, waiting for exit condition --- [init] our quota limit is 989753328 [init] our used quota is 143360 [init] starting ps2_drv with quota=1048576 [init] using unique child name "ps2_drv" virtual int Genode::Rm_client::pager (Fiasco:Ipc_pager&): no RM attachment (pf=bfeffffc ip=1016034 WRITE from 10.00)
=== END ===
Appreciate any inputs, on how I can boot and test L4/Fiasco with Genode. Do you have an IRC channel for discussion?
Thanks!
SK
Hi,
On Sat, Aug 30, 2008 at 11:52:14PM +0530, Shakthi Kannan wrote:
=== OUTPUT ===
int main(): --- create local services --- int main(): --- start init --- int main(): Ok we have 943 MB transferred to init int main(): --- init created, waiting for exit condition --- [init] our quota limit is 989753328 [init] our used quota is 143360 [init] starting ps2_drv with quota=1048576 [init] using unique child name "ps2_drv" virtual int Genode::Rm_client::pager (Fiasco:Ipc_pager&): no RM attachment (pf=bfeffffc ip=1016034 WRITE from 10.00)
=== END ===
This looks like you're not using the cross compiler. The page fault address "pf=bfeffffc" is in the standard user-level thread control block (UTCB) area of L4/Fiasco, which uses the GS register as UTCB pointer. Your standard Linux C++ compiler uses GS as thread-local storage (TLS) pointer and most likely tries to access thread-local data in the supc++ library.
Please check the etc/tools.conf file in your genode_fiasco build directory for a line similar to:
CROSS_DEV_PREFIX = /usr/local/crosstool/gcc-4.1.1-glibc-2.3.6/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-
Afterwards run "make VERBOSE=" to get a complete log and check which GCC compiler is used. This hint is somewhat "hidden" at the bottom of the wiki page about Genode on L4/Fiasco.
Appreciate any inputs, on how I can boot and test L4/Fiasco with Genode. Do you have an IRC channel for discussion?
As our developer "community" is not that big currently, we only use this mailing list. I hope the latency of 1-3 days is okay for you.
Regards