Hello all, Below are two separate issues carelessly smashed into one e-mail - if you have any comments on either one then I'm all ears.
-------- x86 --------- After building Genode+Fiasco [1] I can run the hello demo and scout demo (from "build/bin/*") on top of Linux, but I can't seem to boot bare metal. I'm copying the binaries from "<compound-build>/genode.fiasco_x86/bin", getting bootstrap and sigma0 from "<compound-build>/l4env/bin/...", and L4 kernel from "<compound-build>/fisco_x86/main".
When I boot, the kernel starts up, prints a pc and sp (I notice "Roottask" has a stack address of all zeros). And quickly restarts. I'd paste output but it auto restarts and I don't have a serial port to over which I could collect output.
The config (this is one, I've tried lots of alterations): ############## <config> <start> <filename>vesa_drv</filename> <ram_quota>2M</ram_quota> </start> <start> <filename>timer</filename> <ram_quota>0x20000</ram_quota> </start> <start> <filename>nitpicker</filename> <ram_quota>1M</ram_quota> </start> <start> <filename>hello_server</filename> <ram_quota>1M</ram_quota> </start> <start> <filename>hello_client</filename> <ram_quota>1M</ram_quota> </start> </config> #################
And the grub entry: ############# title L4 Fiasco + Genode (10.02) kernel /bootstrap -modaddr=0x03000000 module /fiasco nowait -nokdb -tbuf_entries=16384 -serial_esc module /sigma0 module /core module /init module /config module /vesa_drv module /nitpicker module /timer module /launchpad module /testnit module /scout module /nitlog module /liquid_fb module /hello_server module /hello_client ###############
Any help? Let me know if you want more info.
[1] http://genode.org/community/wiki/GenodeOnL4Fiasco
-------- ARM -------- Separately, I'm having trouble building Fiasco on ARM - basically its missing types.h. Am I missing a step?
After altering specs.conf "SPECS = genode fiasco_arm" And after setting tools.conf to point at my cross compiler:
[tommd@...36... genode-arm]$ cp tool/builddir/etc/build.conf.fiasco_x86 tool/builddir/etc/build.conf.fiasco_arm [tommd@...36... genode-arm]$ ./tool/builddir/create_builddir fiasco_arm GENODE_DIR=. BUILD_DIR=~/dev/genode-arm/3rd-build/genode-fiasco_arm L4_DIR=~/dev/genode-arm/3rd-build/3rd/l4env successfully created build directory at /home/tommd/dev/genode-arm/3rd-build/genode-fiasco_arm [tommd@...36... genode-arm]$ make -C ~/dev/genode-arm/3rd-build/genode-fiasco_arm/ make: Entering directory `/home/tommd/dev/genode-arm/3rd-build/genode-fiasco_arm'
Processing /home/tommd/dev/genode-arm/base-fiasco/src/core/arm/target.mk ------------------------------------------------------------------------ Library avl_tree COMPILE avl_tree_avl_tree.o MERGE avl_tree.lib.a Library slab COMPILE slab_slab.o MERGE slab.lib.a Library allocator_avl COMPILE allocator_avl_allocator_avl.o MERGE allocator_avl.lib.a Library cxx COMPILE cxx_exception.o COMPILE cxx_guard.o COMPILE cxx_malloc_free.o In file included from /home/tommd/dev/genode-arm/base/include/base/typed_capability.h:17, from /home/tommd/dev/genode-arm/base/include/parent/capability.h:17, from /home/tommd/dev/genode-arm/base/include/base/env.h:20, from /home/tommd/dev/genode-arm/base/src/base/cxx/malloc_free.cc:17: /home/tommd/dev/genode-arm/base-fiasco/include/base/capability.h:18: fatal error: l4/sys/types.h: No such file or directory compilation terminated. make[4]: *** [cxx_malloc_free.o] Error 1 make[3]: *** [cxx.tag] Error 2 make[2]: *** [all_sequence] Error 2 make[1]: *** [single_target] Error 2 make: *** [.] Error 2 make: Leaving directory `/home/tommd/dev/genode-arm/3rd-build/genode-fiasco_arm'
Any help on either of these would be much appreciated. I'd love to use/contribute to Genode but if I can't build it myself / be self sufficient (perhaps I should be embarrassed) then I'm far from helpful!
Cheers, Thomas
Hi Thomas,
-------- x86 --------- After building Genode+Fiasco [1] I can run the hello demo and scout demo (from "build/bin/*") on top of Linux, but I can't seem to boot bare metal. I'm copying the binaries from "<compound-build>/genode.fiasco_x86/bin", getting bootstrap and sigma0 from "<compound-build>/l4env/bin/...", and L4 kernel from "<compound-build>/fisco_x86/main".
When I boot, the kernel starts up, prints a pc and sp (I notice "Roottask" has a stack address of all zeros). And quickly restarts. I'd paste output but it auto restarts and I don't have a serial port to over which I could collect output.
it is hard to guess what is going wrong without having the serial output. To ake sure that there are no build or configuration-related problems, it would be good to first try booting your setup on Qemu, with the '-serial stdio' argument.
However, there is one known problem about running Fiasco on machines with a lot of memory, which causes the symptom you just described. You may try limiting the amount of memory used by Fiasco by adding a '-maxmem' argument to 'bootstrap'. For example, I use the following 'menu.lst' entry:
title Genode demo scenario kernel /fiasco/bootstrap -maxmem=64 -modaddr=0x02000000 module /fiasco/fiasco -serial -serial_esc module /fiasco/sigma0 module /genode/core module /genode/init module /config/example/config module /genode/timer module /genode/ps2_drv module /genode/pci_drv module /genode/vesa_drv module /genode/launchpad module /genode/nitpicker module /genode/liquid_fb module /genode/nitlog module /genode/testnit module /genode/scout
-------- ARM -------- Separately, I'm having trouble building Fiasco on ARM - basically its missing types.h. Am I missing a step?
After altering specs.conf "SPECS = genode fiasco_arm" And after setting tools.conf to point at my cross compiler:
I have to admit that I haven't tried running Fiasco on ARM since three years. We have not actively maintained this configuration.
From the error message, it looks like an include search path is missing.
To investigate, you can enable the verbose build output:
make core VERBOSE=
When the build fails, please check the '-I' arguments and look if the path containing 'l4/sys/types.h' is there.
I suspect that you are using our '3rd_fiasco.tar.bz' snapshot. This snapshot does only support x86 as this is the only hardware platform we are currently using Fiasco with. For running Genode on Fiasco/ARM, you will have to check out and configure the original TUDOS subversion repository:
http://www.inf.tu-dresden.de/index.php?node_id=1735&ln=en
Cheers Norman