Hi,
i use Genode 15.05 with the corresponding toolchain. Now, i have a problem with the uboot creation script.
For example, when i build the hello-tutorial for hw_pbxa9 platform (in a fresh build directory), i get this error:
make[1]: Verzeichnis »/home/mark/genode_git/build/hw_pbxa9« wird verlassen child process exited abnormally while executing "exec [cross_dev_prefix]readelf -h $elf_img | grep "Entry point address: " | sed -e "s/.*Entry point address: *//"" (procedure "run_image" line 3) invoked from within "run_image $elf_img" (procedure "run_boot_dir" line 119) invoked from within "run_boot_dir $binaries" (procedure "build_boot_image" line 2) invoked from within "build_boot_image { core init hello_client hello_server timer }" (file "/home/mark/genode_git/repos/hello_tutorial/run/hello.run" line 44) invoked from within "source $include_name" ("foreach" body line 6) invoked from within "foreach include_name [get_cmd_arg --include ""] { # first check if the include name is absolute if {[string first "/" $include_name] == 0} { puts ..." (file "/home/mark/genode_git/tool/run/run" line 636) make: *** [run/hello] Fehler 1
Without run option "include image/uboot" the build finished cleanly and image.elf was created correctly.
Regards Mark
Hi Mark,
On 04.09.2015 14:23, Mark Albers wrote:
i use Genode 15.05 with the corresponding toolchain. Now, i have a problem with the uboot creation script.
I don't think that this is the problem but you may try the latest version 15.08 [1]. If you do so, please create a new build directory with the updated 'create_builddir' to avoid inconsistencies.
For example, when i build the hello-tutorial for hw_pbxa9 platform (in a fresh build directory), i get this error:
make[1]: Verzeichnis »/home/mark/genode_git/build/hw_pbxa9« wird verlassen child process exited abnormally while executing "exec [cross_dev_prefix]readelf -h $elf_img | grep "Entry point address: " | sed -e "s/.*Entry point address: *//""
This is strange. I've tested these commands manually and they work just fine. Have you added the following to your '<BUILD_DIR>/etc/build.conf':
REPOSITORIES += $(GENODE_DIR)/repos/hello_tutorial
If yes, could you please send the output of the following:
/usr/local/genode-gcc/bin/genode-arm-readelf --version
...
Without run option "include image/uboot" the build finished cleanly and image.elf was created correctly.
I'm a litte confused. The ARM PBXA9 board is merely used as a reference design with Qemu and an Uboot image is not needed for booting in this case. Thus, '--include image/uboot' doesn't make much sense and the RUN_OPT of a freshly created build directory for hw_pbxa9 normally doesn't contain this argument. However, even if I add it to my RUN_OPT, 'make run/hello' finishes and the corresponding Uboot image [2] gets created.
Cheers, Martin
[1] https://github.com/genodelabs/genode/releases/tag/15.08 [2] <BUILDDIR>/var/run/hello/uImage
Hi Martin,
i'm on version 15.08 now and have created a new build directory. The error is still the same.
I added the hello_tutorial repository, yes. Here is the output of genode-arm-readelf --version: GNU readelf (GNU Binutils) 2.25 Copyright (C) 2014 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or (at your option) any later version. This program has absolutely no warranty.
I used the pbxa9 platform only for test purposes, the problem is the same with another platform.
Regard, Mark
Mark Albers, M. Sc. Institut für Datentechnik und Kommunikationsnetze Technische Universität Braunschweig Hans-Sommer-Straße 66, 38106 Braunschweig Telefon: +49 531 391 3743 Telefax: +49 531 391 4587 E-Mail: albers@...238...
2015-09-07 13:19 GMT+02:00 Martin Stein <martin.stein@...1...>:
Hi Mark,
On 04.09.2015 14:23, Mark Albers wrote:
i use Genode 15.05 with the corresponding toolchain. Now, i have a problem with the uboot creation script.
I don't think that this is the problem but you may try the latest version 15.08 [1]. If you do so, please create a new build directory with the updated 'create_builddir' to avoid inconsistencies.
For example, when i build the hello-tutorial for hw_pbxa9 platform (in a fresh build directory), i get this error:
make[1]: Verzeichnis »/home/mark/genode_git/build/hw_pbxa9« wird
verlassen
child process exited abnormally while executing "exec [cross_dev_prefix]readelf -h $elf_img | grep "Entry point address: " | sed -e "s/.*Entry point address: *//""
This is strange. I've tested these commands manually and they work just fine. Have you added the following to your '<BUILD_DIR>/etc/build.conf':
REPOSITORIES += $(GENODE_DIR)/repos/hello_tutorial
If yes, could you please send the output of the following:
/usr/local/genode-gcc/bin/genode-arm-readelf --version
...
Without run option "include image/uboot" the build finished cleanly and image.elf was created correctly.
I'm a litte confused. The ARM PBXA9 board is merely used as a reference design with Qemu and an Uboot image is not needed for booting in this case. Thus, '--include image/uboot' doesn't make much sense and the RUN_OPT of a freshly created build directory for hw_pbxa9 normally doesn't contain this argument. However, even if I add it to my RUN_OPT, 'make run/hello' finishes and the corresponding Uboot image [2] gets created.
Cheers, Martin
[1] https://github.com/genodelabs/genode/releases/tag/15.08 [2] <BUILDDIR>/var/run/hello/uImage
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Hi Martin,
i'm on version 15.08 now and have created a new build directory. The error is still the same.
I added the hello_tutorial repository, yes. Here is the output of genode-arm-readelf --version: GNU readelf (GNU Binutils) 2.25 Copyright (C) 2014 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or (at your option) any later version. This program has absolutely no warranty.
I used the pbxa9 platform only for test purposes, the problem is the same with another platform.
Regard, Mark
2015-09-07 13:19 GMT+02:00 Martin Stein <martin.stein@...1...>:
Hi Mark,
On 04.09.2015 14:23, Mark Albers wrote:
i use Genode 15.05 with the corresponding toolchain. Now, i have a problem with the uboot creation script.
I don't think that this is the problem but you may try the latest version 15.08 [1]. If you do so, please create a new build directory with the updated 'create_builddir' to avoid inconsistencies.
For example, when i build the hello-tutorial for hw_pbxa9 platform (in a fresh build directory), i get this error:
make[1]: Verzeichnis »/home/mark/genode_git/build/hw_pbxa9« wird
verlassen
child process exited abnormally while executing "exec [cross_dev_prefix]readelf -h $elf_img | grep "Entry point address: " | sed -e "s/.*Entry point address: *//""
This is strange. I've tested these commands manually and they work just fine. Have you added the following to your '<BUILD_DIR>/etc/build.conf':
REPOSITORIES += $(GENODE_DIR)/repos/hello_tutorial
If yes, could you please send the output of the following:
/usr/local/genode-gcc/bin/genode-arm-readelf --version
...
Without run option "include image/uboot" the build finished cleanly and image.elf was created correctly.
I'm a litte confused. The ARM PBXA9 board is merely used as a reference design with Qemu and an Uboot image is not needed for booting in this case. Thus, '--include image/uboot' doesn't make much sense and the RUN_OPT of a freshly created build directory for hw_pbxa9 normally doesn't contain this argument. However, even if I add it to my RUN_OPT, 'make run/hello' finishes and the corresponding Uboot image [2] gets created.
Cheers, Martin
[1] https://github.com/genodelabs/genode/releases/tag/15.08 [2] <BUILDDIR>/var/run/hello/uImage
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Hello Mark,
would you mind to post your complete build.conf. I also added
RUN_OPT += --include image/uboot
to mine and it worked just fine. Additionally, did you change anything from the standard tool-chain setup? Mine is
/usr/local/genode-gcc/bin//genode-arm-gcc etc.
and also
CROSS_DEV_PREFIX=/usr/local/genode-gcc/bin//genode-arm-
You may check via
ps x|grep cross-dev-prefix
while running "make run/hello" without the uboot option.
Greets
Hi Christian,
i didn't change anything on the tool-chain setup an output of 'ps x|grep cross-dev-prefix' includes '--cross-dev-prefix /usr/local/genode-gcc/bin/genode-arm-'.
build.conf (with RUN_OPT += --include image/uboot):
GENODE_DIR = /home/mark/genode_git BASE_DIR = $(GENODE_DIR)/repos/base CONTRIB_DIR = $(GENODE_DIR)/contrib
## ## Kernel-specific base repository ##
REPOSITORIES += $(GENODE_DIR)/repos/base-hw
## ## Kernel-specific run tool configuration ##
RUN_OPT = --include boot_dir/hw \ --include power_on/qemu --include log/qemu RUN_OPT += --include image/uboot
## ## Repositories needed for the default demo scenario ##
REPOSITORIES += $(GENODE_DIR)/repos/base REPOSITORIES += $(GENODE_DIR)/repos/os REPOSITORIES += $(GENODE_DIR)/repos/demo
## ## Optional repositories ##
REPOSITORIES += $(GENODE_DIR)/repos/hello_tutorial
# # Ports of popular open-source libraries and the C library. # # Make sure to execute 'make prepare' in 'libports' prior building. # #REPOSITORIES += $(GENODE_DIR)/repos/libports
# # Ports of popular 3rd-party applications # # The 'ports' repository depends on 'libc' and 'libports'. # Make sure to execute 'make prepare' in 'ports' prior building. # #REPOSITORIES += $(GENODE_DIR)/repos/ports
# # Ports of the Linux TCP/IP stack and Linux drivers (USB) from the Linux kernel # #REPOSITORIES += $(GENODE_DIR)/repos/dde_linux
# # NetBSD file-system support # #REPOSITORIES += $(GENODE_DIR)/repos/dde_rump
# # High-level Genode-specific services and applications # # The 'gems' repository depends on 'libc' and 'libports'. # #REPOSITORIES += $(GENODE_DIR)/repos/gems
Regards Mark
2015-09-07 16:46 GMT+02:00 Christian Helmuth < christian.helmuth@...1...>:
Hello Mark,
would you mind to post your complete build.conf. I also added
RUN_OPT += --include image/uboot
to mine and it worked just fine. Additionally, did you change anything from the standard tool-chain setup? Mine is
/usr/local/genode-gcc/bin//genode-arm-gcc etc.
and also
CROSS_DEV_PREFIX=/usr/local/genode-gcc/bin//genode-arm-
You may check via
ps x|grep cross-dev-prefix
while running "make run/hello" without the uboot option.
Greets
Christian Helmuth Genode Labs
http://www.genode-labs.com/ · http://genode.org/ https://twitter.com/GenodeLabs · /ˈdʒiː.nəʊd/
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Hello Mark,
it seems the tool chain is not the problem here. Another guess would be that your TCL interpreter or shell chokes on the respective exec statement in tool/run/image/uboot
set entrypoint [exec [cross_dev_prefix]readelf -h $elf_img | \ grep "Entry point address: " | \ sed -e "s/.*Entry point address: *//"]
Please try to apply the attached patch to find out if readelf could be executed individually.
Greets
ELF-Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Klasse: ELF32 Daten: 2er-Komplement, Little-Endian Version: 1 (current) OS/ABI: UNIX - System V ABI-Version: 0 Typ: EXEC (ausführbare Datei) Maschine: ARM Version: 0x1 Einstiegspunktadresse: 0x70000000 Beginn der Programm-Header: 52 (Bytes in Datei) Beginn der Sektions-header: 1937584 (Bytes in Datei) Flags: 0x5000202, has entry point, Version5 EABI, soft-float ABI Größe dieses Headers: 52 (Byte) Größe der Programm-Header: 32 (Byte) Number of program headers: 3 Größe der Sektions-Header: 40 (bytes) Anzahl der Sektions-Header: 12 Sektions-Header Stringtabellen-Index: 11 worked
<albers@...238...>
2015-09-09 17:52 GMT+02:00 Christian Helmuth < christian.helmuth@...1...>:
Hello Mark,
it seems the tool chain is not the problem here. Another guess would be that your TCL interpreter or shell chokes on the respective exec statement in tool/run/image/uboot
set entrypoint [exec [cross_dev_prefix]readelf -h $elf_img | \ grep "Entry point address: " | \ sed -e "s/.*Entry point address: *//"]
Please try to apply the attached patch to find out if readelf could be executed individually.
Greets
Christian Helmuth Genode Labs
http://www.genode-labs.com/ · http://genode.org/ https://twitter.com/GenodeLabs · /ˈdʒiː.nəʊd/
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Monitor Your Dynamic Infrastructure at Any Scale With Datadog! Get real-time metrics from all of your servers, apps and tools in one place. SourceForge users - Click here to start your Free Trial of Datadog now! http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140 _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Hello Mark,
as desired the patch revealed the cause of your issue - please look below.
On Wed, Sep 09, 2015 at 06:04:02PM +0200, Mark Albers wrote:
ELF-Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Klasse: ELF32 Daten: 2er-Komplement, Little-Endian Version: 1 (current) OS/ABI: UNIX - System V ABI-Version: 0 Typ: EXEC (ausführbare Datei) Maschine: ARM Version: 0x1 Einstiegspunktadresse: 0x70000000 Beginn der Programm-Header: 52 (Bytes in Datei) Beginn der Sektions-header: 1937584 (Bytes in Datei) Flags: 0x5000202, has entry point, Version5 EABI, soft-float ABI Größe dieses Headers: 52 (Byte) Größe der Programm-Header: 32 (Byte) Number of program headers: 3 Größe der Sektions-Header: 40 (bytes) Anzahl der Sektions-Header: 12 Sektions-Header Stringtabellen-Index: 11
Your locale resp. language settings are German (de), but the "magic" in image/uboot is limited to English (en) output of the readelf tool. You may check this by running your build via
LANGUAGE=en make run/printf vs. LANGUAGE=de make run/printf
This could be a quick fix for you to make progress with the loss of German error messages if something goes wrong. For future, we have to come up with a blue print for robust processing of tool output from the background of differing locales. I don't think just enforcing LC_ALL=C and LANGUAGE=en will help because of the mentioned issue with diagnostic messages only in English.
Thanks for your help to investigate the issue.
Greets
Hi Christian,
thanks for the solution!
Greets Mark
2015-09-10 9:38 GMT+02:00 Christian Helmuth < christian.helmuth@...1...>:
Hello Mark,
as desired the patch revealed the cause of your issue - please look below.
On Wed, Sep 09, 2015 at 06:04:02PM +0200, Mark Albers wrote:
ELF-Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Klasse: ELF32 Daten: 2er-Komplement, Little-Endian Version: 1 (current) OS/ABI: UNIX - System V ABI-Version: 0 Typ: EXEC (ausführbare Datei) Maschine: ARM Version: 0x1 Einstiegspunktadresse: 0x70000000 Beginn der Programm-Header: 52 (Bytes in Datei) Beginn der Sektions-header: 1937584 (Bytes in Datei) Flags: 0x5000202, has entry point, Version5 EABI, soft-float ABI Größe dieses Headers: 52 (Byte) Größe der Programm-Header: 32 (Byte) Number of program headers: 3 Größe der Sektions-Header: 40 (bytes) Anzahl der Sektions-Header: 12 Sektions-Header Stringtabellen-Index: 11
Your locale resp. language settings are German (de), but the "magic" in image/uboot is limited to English (en) output of the readelf tool. You may check this by running your build via
LANGUAGE=en make run/printf vs. LANGUAGE=de make run/printf
This could be a quick fix for you to make progress with the loss of German error messages if something goes wrong. For future, we have to come up with a blue print for robust processing of tool output from the background of differing locales. I don't think just enforcing LC_ALL=C and LANGUAGE=en will help because of the mentioned issue with diagnostic messages only in English.
Thanks for your help to investigate the issue.
Greets
Christian Helmuth Genode Labs
http://www.genode-labs.com/ · http://genode.org/ https://twitter.com/GenodeLabs · /ˈdʒiː.nəʊd/
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Monitor Your Dynamic Infrastructure at Any Scale With Datadog! Get real-time metrics from all of your servers, apps and tools in one place. SourceForge users - Click here to start your Free Trial of Datadog now! http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140 _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main