Hello,
I tried to run the genode tutorial.
I first installed it on an AMD Athlon x64 with nForce4- Mainboard. run/demo stopped there after init -> nitpicker] create session with args: label="launchpad", ram_quota=12288
I made a second try on a) a virtualBox machine with brand new installation of Unbuntu 12.04 x64 (git) and b) an old Evo N610c Pentium 4 with Ubuntu 12.04 x86 (14.02 from tar.gz of latest releases)
I think a few Steps are missing within the Step-By-Step tutorial http://genode.org/documentation/developer-resources/client_server_tutorial
As a prestep for “Setting up the build environment” i created a new build directory with './tool/create_builddir linux_x86 BUILD_DIR=build.hello'. As i did not have a lot of files in it, I tried a first ‘make’. In build/etc/build.conf I added REPOSITORIES += $(GENODE_DIR)/hello_testIn the bin directory i created a new config directory with config file.
The server section seems to have only one .h file, I put the three listings in one main.cc file (as later in the document it is mentioned that in target.mk SCR_CC = main.cc an obviously no includes to the other files are given).
Afterwards i tried ‘make hello’ which returned no error.
With ‘cd run’, ‘./core’ only the following output appered:
|int main(): --- create local services --- |int main(): --- start init --- |int main(): transferred 17592186044415 MB to init |int main(): --- init created, waiting for exit condition --- |[init] _map_local: lx_mmap failed (addr_in=0,addr_out=ffffffffffffffed/-19) overmap=0 |[init] C++ runtime: Genode::Rm_session::Region_conflict |[init] void* abort(): abort called
If i try to run it again with dmesg the follwoing output appears: [ 4774.659901] core[12189]: segfault at 7f2ed162e068 ip 00000000010310c9 sp 00000000400ffce0 error 4 in core[1000000+5b000] (equal if i try git verison or archive version)
I also tried to point the repository to the already existing hello_tutorial, but get the same result.
---------------------------------------------------------------------------------------
I also tried the following:
- created a new Ubuntu 12.04 VM. - Installed prerequisites sudo -s make -v ->GNU Make 3.81 apt-get install libSDL-dev apt-get install tk8.5 tcl8.5 apt-get install expect apt-get install byacc apt-get install qemu apt-get install genisoimage - Toolchain tar xPfj genode-toolchain-12.11-x86_64.tar.bz2 - either extracted 14.02 or used git (tried both) tar -xfc genode-14.02.tar.bz2 - Build essentials apt-get install build-essential
Prepared NOVA - In base-nova : make prepare - In libports : make prepare PKG=x86emu
-created a new build directory: ./tool/create_builddir nova_x86_32 BUILD_DIR=build.hellonova - in build.hellonova: make kernel
- from : http://genode.org/documentation/developer-resources/build_system (Please note that the hello.run script does not contain kernel-specific information. Therefore it can be executed from the build directory of any base platform by using:) : make run/hello - Error: No run script
- Added in build.conf REPOSITORIES += $(GENODE_DIR)/hello_tutorial - make run/hello -> [init -> hello_server] Hello::Root_component::Root_component(Genode::Rpc_entrypoint*, Genode::Allocator*): Creating root component. [init -> hello_server] virtual Hello::Session_component* Hello::Root_component::_create_session(const char*): creating hello session. [init] hello_client: no route to service "Timer" [init -> hello_client] C++ runtime: Genode::Parent::Service_denied - In hello_tutorial/config/config added the following to config:: (http://genode.org/documentation/developer-resources/client_server_tutorial) <parent-provides> <service name="CAP"/> <service name="LOG"/> <service name="RM"/> </parent-provides> <default-route> <any-service> <parent/> <any-child/> </any-service> </default-route>
Changed also the quantumto 1M in the directory( https://www.mail-archive.com/genode-main@lists.sourceforge.net/msg01343.html )
- make cleanall , make run/hello –> same problem
- tried also to change route directly ( http://genode.org/documentation/developer-resources/init ) <route> <any-service> <parent/> <any-child/> </any-service> </route>
- make cleanall , make run/hello –> same problem
- Copied config file to build.hellonova/bin/config
- make cleanall , make run/hello –> same problem
- changed /hello_tutorial/run/hello.run Added: <start name="timer"> <resource name="RAM" quantum="1M"/> <provides><service name="Timer"/></provides> </start> (in this file there was only client/server)
- make cleanall , make run/hello –> same problem
I tried to update the repository with a git pull.
Now something changed... -> [init] timer: no route to service "IO_PORT" I now see that in the helo.run there is also a line <service name="SIGNAL"/>
What else could be needed to be changed? And for what is the config file in hello_tutorial_config?
Best regards Wolfgang Schmidt
-------------------
Output of: make run/hello
using run script /home/wolfgang/genode/base-nova/run/env using run script /home/wolfgang/genode/hello_tutorial/run/hello.run building targets: core init hello drivers/timer spawn make core init hello drivers/timer make[1]: Betrete Verzeichnis '/home/wolfgang/genode/build.hellonova' checking library dependencies... Library platform MERGE platform.lib.a Library cxx COMPILE exception.o COMPILE guard.o COMPILE malloc_free.o COMPILE misc.o COMPILE new_delete.o COMPILE unwind.o MERGE supc++.o CONVERT supc++.o MERGE cxx.lib.a Library syscall MERGE syscall.lib.a Library startup COMPILE _main.o ASSEMBLE crt0.o COMPILE init_main_thread.o MERGE startup.lib.a Library base-common COMPILE allocator/allocator_avl.o COMPILE allocator/slab.o COMPILE avl_tree/avl_tree.o COMPILE child/child.o COMPILE console/console.o COMPILE elf/elf_binary.o COMPILE env/cap_map.o COMPILE heap/heap.o COMPILE heap/sliced_heap.o COMPILE ipc/ipc.o COMPILE ipc/pager.o COMPILE lock/lock.o COMPILE pager/x86_32/pager.o COMPILE process/process.o COMPILE server/server.o COMPILE signal/common.o COMPILE signal/signal.o COMPILE thread/context_allocator.o COMPILE thread/thread.o COMPILE thread/thread_context.o COMPILE thread/trace.o MERGE base-common.lib.a Library base COMPILE console/log_console.o COMPILE env/context_area.o COMPILE env/env.o COMPILE env/reinitialize.o COMPILE thread/thread_nova.o MERGE base.lib.a Library alarm COMPILE alarm.o MERGE alarm.lib.a Library timer COMPILE main.o MERGE timer.lib.a Program drivers/timer/timer COMPILE empty.o LINK timer Program hello/client/hello_client COMPILE main.o LINK hello_client Program hello/server/hello_server COMPILE main.o LINK hello_server Library init_pd_args COMPILE pd_args.o MERGE init_pd_args.lib.a Library config COMPILE config.o MERGE config.lib.a Program init/init COMPILE main.o LINK init Program core/core COMPILE context_area.o COMPILE core_mem_alloc.o COMPILE core_printf.o COMPILE core_rm_session.o COMPILE cpu_session_component.o COMPILE cpu_session_extension.o COMPILE cpu_session_support.o COMPILE dataspace_component.o COMPILE dump_alloc.o COMPILE echo.o COMPILE io_mem_session_component.o COMPILE io_mem_session_support.o COMPILE io_port_session_component.o COMPILE irq_session_component.o COMPILE main.o COMPILE pager.o COMPILE pd_session_component.o COMPILE pd_session_extension.o COMPILE platform.o COMPILE platform_pd.o COMPILE platform_services.o COMPILE platform_thread.o COMPILE ram_session_component.o COMPILE ram_session_support.o COMPILE rm_session_component.o COMPILE rm_session_support.o COMPILE rom_session_component.o COMPILE signal_session_component.o COMPILE signal_source_component.o COMPILE thread_start.o COMPILE trace_session_component.o LINK core make[1]: Verlasse Verzeichnis '/home/wolfgang/genode/build.hellonova' genode build completed building targets: kernel spawn make kernel make[1]: Betrete Verzeichnis '/home/wolfgang/genode/build.hellonova' checking library dependencies... Program kernel/hypervisor COMPILE acpi.o COMPILE acpi_dmar.o COMPILE acpi_fadt.o COMPILE acpi_hpet.o COMPILE acpi_madt.o COMPILE acpi_mcfg.o COMPILE acpi_rsdp.o COMPILE acpi_rsdt.o COMPILE acpi_table.o COMPILE avl.o COMPILE bootstrap.o COMPILE buddy.o COMPILE cmdline.o COMPILE console.o COMPILE console_serial.o COMPILE console_vga.o COMPILE counter.o COMPILE cpu.o COMPILE dmar.o COMPILE ec.o COMPILE ec_exc.o COMPILE ec_svm.o COMPILE ec_vmx.o COMPILE entry.o COMPILE fpu.o COMPILE gdt.o COMPILE gsi.o COMPILE hip.o COMPILE hpet.o COMPILE hpt.o COMPILE idt.o COMPILE init.o COMPILE ioapic.o COMPILE keyb.o COMPILE lapic.o COMPILE mca.o COMPILE mdb.o COMPILE memory.o COMPILE mtrr.o COMPILE pci.o /home/wolfgang/genode/base-nova/contrib/src/pci.cpp: In constructor ‘Pci::Pci(unsigned int, unsigned int)’: /home/wolfgang/genode/base-nova/contrib/src/pci.cpp:41:51: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits] COMPILE pd.o COMPILE pt.o COMPILE pte.o COMPILE rcu.o COMPILE regs.o COMPILE sc.o COMPILE slab.o COMPILE sm.o COMPILE space_mem.o COMPILE space_obj.o COMPILE space_pio.o COMPILE start.o COMPILE string.o COMPILE svm.o COMPILE syscall.o COMPILE tss.o COMPILE utcb.o COMPILE vmx.o COMPILE vtlb.o LINK hypervisor make[1]: Verlasse Verzeichnis '/home/wolfgang/genode/build.hellonova' genode build completed using NOVA kernel at /home/wolfgang/genode/build.hellonova/kernel/hypervisor creating ISO image... Warning: -follow-links does not always work correctly; be careful. Size of boot image is 4 sectors -> No emulation Total translation table size: 2048 Total rockridge attributes bytes: 2228 Total directory bytes: 8192 Path table size(bytes): 64 Max brk space used 1c000 1885 extents written (3 MB) spawn qemu-system-x86_64 -no-kvm -cpu core2duo -nographic -cdrom var/run/hello.iso
NOVA Microhypervisor v6-ccc670a (x86_32): Apr 5 2014 14:24:53 [gcc 4.7.2]
[ 0] CORE:0:0:0 6:f:b:0 [0] Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz Hypervisor does not feature VMX Hypervisor does not feature SVM Hypervisor reports 1x1 CPU - boot CPU is 0 Hypervisor info page contains 13 memory descriptors: detected physical memory: 0x0000000000000000 - size: 0x9f400 use physical memory: 0x0000000000000000 - size: 0x9f000 detected physical memory: 0x0000000000100000 - size: 0x17efd000 use physical memory: 0x0000000000100000 - size: 0x17efd000 map multi-boot module: physical 0x17db9000 -> [0x001c5000-0x0028ad44) - core map multi-boot module: physical 0x17e7f000 -> [0x00002000-0x00002235) - config map multi-boot module: physical 0x17e80000 -> [0x00006000-0x00071450) - init map multi-boot module: physical 0x17eec000 -> [0x00075000-0x000cba54) - hello_client map multi-boot module: physical 0x17f43000 -> [0xb0000000-0xb005a278) - hello_server map multi-boot module: physical 0x17f9e000 -> [0x0028e000-0x002eccdc) - timer :virt_alloc: Allocator 186814 dump: Block: [00002000,00004000) size=00002000 avail=00000000 max_avail=00000000 Block: [00004000,00005000) size=00001000 avail=00000000 max_avail=00000000 Block: [00005000,00006000) size=00001000 avail=00000000 max_avail=00000000 Block: [00006000,00073000) size=0006d000 avail=00000000 max_avail=00000000 Block: [00073000,00074000) size=00001000 avail=00000000 max_avail=00000000 Block: [00074000,00075000) size=00001000 avail=00000000 max_avail=00000000 Block: [00075000,000cd000) size=00058000 avail=00000000 max_avail=00000000 Block: [000cd000,000ce000) size=00001000 avail=00000000 max_avail=00000000 Block: [000ce000,000cf000) size=00001000 avail=00000000 max_avail=9fd12000 Block: [000cf000,000d0000) size=00001000 avail=00000000 max_avail=00000000 Block: [000d0000,000d1000) size=00001000 avail=00000000 max_avail=00000000 Block: [000d1000,000d2000) size=00001000 avail=00000000 max_avail=0002c000 Block: [000d2000,000d3000) size=00001000 avail=00000000 max_avail=00000000 Block: [000d3000,000d4000) size=00001000 avail=00000000 max_avail=00000000 Block: [000d4000,00100000) size=0002c000 avail=0002c000 max_avail=0002c000 Block: [001c5000,0028c000) size=000c7000 avail=00000000 max_avail=00000000 Block: [0028c000,0028d000) size=00001000 avail=00000000 max_avail=9fd12000 Block: [0028d000,0028e000) size=00001000 avail=00000000 max_avail=00000000 Block: [0028e000,002ee000) size=00060000 avail=00000000 max_avail=9fd12000 Block: [002ee000,a0000000) size=9fd12000 avail=9fd12000 max_avail=9fd12000 Block: [b0000000,b005c000) size=0005c000 avail=00000000 max_avail=9fd12000 Block: [b005c000,bfeff000) size=0fea3000 avail=0fea3000 max_avail=0fea3000 Block: [bff04000,bfffd000) size=000f9000 avail=000f9000 max_avail=000f9000 => mem_size=2951942144 (2815 MB) / mem_avail=2949488640 (2812 MB) :phys_alloc: Allocator 1857b8 dump: Block: [00001000,00002000) size=00001000 avail=00000000 max_avail=00000000 Block: [00002000,00003000) size=00001000 avail=00000000 max_avail=00000000 Block: [00003000,00004000) size=00001000 avail=00000000 max_avail=00000000 Block: [00004000,00005000) size=00001000 avail=00000000 max_avail=00000000 Block: [00005000,00006000) size=00001000 avail=00000000 max_avail=00000000 Block: [00006000,00007000) size=00001000 avail=00000000 max_avail=155b9000 Block: [00007000,00008000) size=00001000 avail=00000000 max_avail=00000000 Block: [00008000,00009000) size=00001000 avail=00000000 max_avail=00000000 Block: [00009000,0000a000) size=00001000 avail=00000000 max_avail=00000000 Block: [0000a000,0000b000) size=00001000 avail=00000000 max_avail=00093000 Block: [0000b000,0000c000) size=00001000 avail=00000000 max_avail=00000000 Block: [0000c000,0009f000) size=00093000 avail=00093000 max_avail=00093000 Block: [00100000,00101000) size=00001000 avail=00000000 max_avail=155b9000 Block: [00101000,00102000) size=00001000 avail=00000000 max_avail=00000000 Block: [00102000,00400000) size=002fe000 avail=002fe000 max_avail=155b9000 Block: [02800000,17db9000) size=155b9000 avail=155b9000 max_avail=155b9000 => mem_size=362115072 (345 MB) / mem_avail=362061824 (345 MB) :io_mem_alloc: Allocator 187870 dump: Block: [00000000,00001000) size=00001000 avail=00001000 max_avail=00001000 Block: [0009f000,00100000) size=00061000 avail=00061000 max_avail=00061000 Block: [00400000,02800000) size=02400000 avail=02400000 max_avail=e8246000 Block: [17db9000,fffff000) size=e8246000 avail=e8246000 max_avail=e8246000 => mem_size=3932848128 (3750 MB) / mem_avail=3932848128 (3750 MB) int main(): --- create local services --- int main(): --- start init --- int main(): transferred 344 MB to init int main(): --- init created, waiting for exit condition --- [init] Could not open file "ld.lib.so" [init] timer: no route to service "IO_PORT" [init -> hello_server] Hello::Root_component::Root_component(Genode::Rpc_entrypoint*, Genode::Allocator*): Creating root component. [init -> hello_server] virtual Hello::Session_component* Hello::Root_component::_create_session(const char*): creating hello session. [init -> timer] C++ runtime: Genode::Parent::Service_denied [init -> timer] void* abort(): abort called Expect: 'interact' received 'strg+c' and was cancelled