Hi I have compiled the fiasco and l4 packages in the amd64 environment, now I get some binaries that I try to start the l4 in qemu, next is my menu.lst
color 24 52
title Example entry kernel /bootstrap32 -serial -modaddr 0x2000000 module /main module /sigma0 module /roottask module /omega0
Then in the qemu, it says "Read-write (data) checksum does not match", next is the outputs in the qemu window
L4 Bootstrapper move modules to 2000000 with offset ed0000 move module 4 start 126e000 -> 213e000 move module 3 start 11d0000 -> 20a0000 move module 2 start 119c000 -> 206c000 move module 1 start 1130000 -> 2000000 Scanning /main Scanning /sigma0 Scanning /roottask Bootloader MMAP: [ 0, 9fc00) RAM (1) [ 9fc00, a0000) reserved (2) [ e8000, 100000) reserved (2) [ 100000, 7ff0000) RAM (1) [ 7ff0000, 8000000) ACPI (3) [ fffc0000, 100000000) reserved (2) Relocated mbi to [0x76000-0x760b8] Loading /main Loading /sigma0 Loading /roottask find kernel info page... found kernel info page at 0x1000 [ 1000, 75fff] Kern /main [ 76000, 761b5] Root Multiboot info [ 9fc00, 9ffff] Arch BIOS [ e8000, fffff] Arch BIOS [ 100000, 10a6df] Sigma0 /sigma0 [ 110000, 2c6fff] Root /roottask [ 2d0080, 2daf57] Boot bootstrap [ 300000, 34a8af] Kern /main [ 213e000, 2187e07] Root Modules Memory [ 7ff0000, 7ffffff] Arch BIOS [ fffc0000, ffffffff] Arch BIOS API Version: (87) experimental Sigma0 config ip:0000000000104780 sp:00000000002da990 Roottask config ip:0000000000110000 sp:0000000000000000 Starting kernel /main at 0000000000300ad0
Now i guess there are problems with the "main" binary, but i don't know what it is.
# CONFIG_IA32 is not set CONFIG_AMD64=y # CONFIG_ARM is not set CONFIG_PF_PC=y # CONFIG_PF_UX is not set # CONFIG_PF_REALVIEW is not set # CONFIG_PF_INTEGRATOR is not set # CONFIG_PF_XSCALE is not set # CONFIG_PF_SA1100 is not set CONFIG_ABI_V2=y # CONFIG_ARM_PXA is not set # CONFIG_ARM_SA is not set # CONFIG_ARM_920T is not set # CONFIG_ARM_926 is not set # CONFIG_ARM_1176 is not set # CONFIG_ARM_MPCORE is not set # CONFIG_IA32_486 is not set # CONFIG_IA32_586 is not set # CONFIG_IA32_686 is not set # CONFIG_IA32_P2 is not set # CONFIG_IA32_P3 is not set # CONFIG_IA32_P4 is not set # CONFIG_IA32_PM is not set # CONFIG_IA32_K6 is not set # CONFIG_IA32_K7 is not set # CONFIG_IA32_K8 is not set CONFIG_AMD64_K8=y CONFIG_SCHED_PIT=y # CONFIG_SCHED_RTC is not set # CONFIG_SCHED_APIC is not set # CONFIG_WORKAROUND_AMD_FPU_LEAK is not set
# # Kernel options # # CONFIG_PL0_HACK is not set CONFIG_TASK_CAPS=y # CONFIG_USER_LOCKS is not set CONFIG_ASSEMBLER_IPC_SHORTCUT=y CONFIG_CONTEXT_4K=y CONFIG_IO_PROT=y # CONFIG_IO_PROT_IOPL_3 is not set
# # Debugging # CONFIG_INLINE=y # CONFIG_NDEBUG is not set CONFIG_NO_FRAME_PTR=y CONFIG_STACK_DEPTH=y # CONFIG_LIST_ALLOC_SANITY is not set # CONFIG_BEFORE_IRET_SANITY is not set CONFIG_SERIAL=y CONFIG_JDB=y CONFIG_JDB_MISC=y CONFIG_POWERSAVE_GETCHAR=y # CONFIG_WARN_NONE is not set CONFIG_WARN_WARNING=y # CONFIG_WARN_ANY is not set
# # Compiling # CONFIG_CC="gcc" CONFIG_CXX="g++" CONFIG_HOST_CC="gcc" CONFIG_HOST_CXX="g++" CONFIG_VERBOSE=y CONFIG_MAINTAINER_MODE=y CONFIG_LABEL="" CONFIG_EXPERIMENTAL=y CONFIG_PERF_CNT=y CONFIG_BIT64=y CONFIG_WARN_LEVEL=1 CONFIG_XARCH="amd64" CONFIG_IA32_TARGET="AMD Opteron" CONFIG_ABI="v2" CONFIG_DECEIT_BIT_DISABLES_SWITCH=y
I choose amd64 in the "cpu type" option, then i get the errors I have mentioned, then i keep the default config and when I start the l4 in qemu, it says
Scanning /main This is an invalid binary, fix it.
I don't know why, i hope someone could help me and thanks.
On Mon May 26, 2008 at 19:34:38 +0800, fei li wrote:
I have compiled the fiasco and l4 packages in the amd64 environment, now I get some binaries that I try to start the l4 in qemu, next is my menu.lst
color 24 52
title Example entry kernel /bootstrap32 -serial -modaddr 0x2000000 module /main module /sigma0 module /roottask module /omega0
Then in the qemu, it says "Read-write (data) checksum does not match", next is the outputs in the qemu window
L4 Bootstrapper move modules to 2000000 with offset ed0000 move module 4 start 126e000 -> 213e000 move module 3 start 11d0000 -> 20a0000 move module 2 start 119c000 -> 206c000 move module 1 start 1130000 -> 2000000 Scanning /main Scanning /sigma0 Scanning /roottask Bootloader MMAP: [ 0, 9fc00) RAM (1) [ 9fc00, a0000) reserved (2) [ e8000, 100000) reserved (2) [ 100000, 7ff0000) RAM (1) [ 7ff0000, 8000000) ACPI (3) [ fffc0000, 100000000) reserved (2) Relocated mbi to [0x76000-0x760b8] Loading /main Loading /sigma0 Loading /roottask find kernel info page... found kernel info page at 0x1000 [ 1000, 75fff] Kern /main [ 76000, 761b5] Root Multiboot info [ 9fc00, 9ffff] Arch BIOS [ e8000, fffff] Arch BIOS [ 100000, 10a6df] Sigma0 /sigma0 [ 110000, 2c6fff] Root /roottask [ 2d0080, 2daf57] Boot bootstrap [ 300000, 34a8af] Kern /main [ 213e000, 2187e07] Root Modules Memory [ 7ff0000, 7ffffff] Arch BIOS [ fffc0000, ffffffff] Arch BIOS API Version: (87) experimental Sigma0 config ip:0000000000104780 sp:00000000002da990 Roottask config ip:0000000000110000 sp:0000000000000000 Starting kernel /main at 0000000000300ad0
Now i guess there are problems with the "main" binary, but i don't know what it is.
It's the Fiasco kernel.
I choose amd64 in the "cpu type" option, then i get the errors I have mentioned, then i keep the default config and when I start the l4 in qemu, it says
Scanning /main This is an invalid binary, fix it.
Can you check that the main binary is really an 64-bit binary? (e.g. with file). You should also place a #define VERBOSE_LOAD in the beginning of bootstrap/server/src/startup.cc, recompile and try again. There will be more output to see then.
Adam
Hi I tested it again, now i get the results
L4 Bootstrapper move modules to 2000000 with offset ed0000 move module 4 start 126e000 (ELF) -> 213e000 move module 3 start 11d0000 (ELF) -> 20a0000 move module 2 start 119c000 (ELF) -> 206c000 move module 1 start 1130000 (ELF) -> 2000000 Scanning /main Scanning /sigma0 Scanning /roottask Bootloader MMAP: [ 0, 9fc00) RAM (1) [ 9fc00, a0000) reserved (2) [ e8000, 100000) reserved (2) [ 100000, 7ff0000) RAM (1) [ 7ff0000, 8000000) ACPI (3) [ fffc0000, 100000000) reserved (2) Relocated mbi to [0x76000-0x760b8] Loading /main Loading /sigma0 Loading /roottask find kernel info page... found kernel info page at 0x1000 [ 1000, 75fff] Kern /main [ 76000, 761b5] Root Multiboot info [ 9fc00, 9ffff] Arch BIOS [ e8000, fffff] Arch BIOS [ 100000, 10a6df] Sigma0 /sigma0 [ 110000, 2c6fff] Root /roottask [ 2d0080, 2daf57] Boot bootstrap [ 300000, 34a8af] Kern /main [ 213e000, 2187e07] Root Modules Memory [ 7ff0000, 7ffffff] Arch BIOS [ fffc0000, ffffffff] Arch BIOS API Version: (87) experimental Sigma0 config ip:0000000000104780 sp:00000000002da990 Roottask config ip:0000000000110000 sp:0000000000000000 Starting kernel /main at 0000000000300ad0
I don't know the kernel is 32-bit or 64-bit, how to check it? I compare the two results and find that the newer has "elf" signs, I don't know what to do next.
On Tue May 27, 2008 at 11:45:48 +0800, fei li wrote:
Hi I tested it again, now i get the results
L4 Bootstrapper move modules to 2000000 with offset ed0000 move module 4 start 126e000 (ELF) -> 213e000 move module 3 start 11d0000 (ELF) -> 20a0000 move module 2 start 119c000 (ELF) -> 206c000 move module 1 start 1130000 (ELF) -> 2000000 Scanning /main Scanning /sigma0 Scanning /roottask Bootloader MMAP: [ 0, 9fc00) RAM (1) [ 9fc00, a0000) reserved (2) [ e8000, 100000) reserved (2) [ 100000, 7ff0000) RAM (1) [ 7ff0000, 8000000) ACPI (3) [ fffc0000, 100000000) reserved (2) Relocated mbi to [0x76000-0x760b8] Loading /main Loading /sigma0 Loading /roottask find kernel info page... found kernel info page at 0x1000 [ 1000, 75fff] Kern /main [ 76000, 761b5] Root Multiboot info [ 9fc00, 9ffff] Arch BIOS [ e8000, fffff] Arch BIOS [ 100000, 10a6df] Sigma0 /sigma0 [ 110000, 2c6fff] Root /roottask [ 2d0080, 2daf57] Boot bootstrap [ 300000, 34a8af] Kern /main [ 213e000, 2187e07] Root Modules Memory [ 7ff0000, 7ffffff] Arch BIOS [ fffc0000, ffffffff] Arch BIOS API Version: (87) experimental Sigma0 config ip:0000000000104780 sp:00000000002da990 Roottask config ip:0000000000110000 sp:0000000000000000 Starting kernel /main at 0000000000300ad0
I don't know the kernel is 32-bit or 64-bit, how to check it? I compare the two results and find that the newer has "elf" signs, I don't know what to do next.
'file' or 'readelf' are possible tools for this but the output looks ok. This whole thing works for me. You could send me your main file to have a closer look at it.
Adam
Hi
The full output is
L4 Bootstrapper move modules to 2000000 with offset ed0000 move module 4 start 126e000 (ELF) -> 213e000 move module 3 start 11d0000 (ELF) -> 20a0000 move module 2 start 119c000 (ELF) -> 206c000 move module 1 start 1130000 (ELF) -> 2000000 Scanning /main Scanning /sigma0 Scanning /roottask Bootloader MMAP: [ 0, 9fc00) RAM (1) [ 9fc00, a0000) reserved (2) [ e8000, 100000) reserved (2) [ 100000, 7ff0000) RAM (1) [ 7ff0000, 8000000) ACPI (3) [ fffc0000, 100000000) reserved (2) Relocated mbi to [0x76000-0x760b8] Loading /main Loading /sigma0 Loading /roottask find kernel info page... found kernel info page at 0x1000 [ 1000, 75fff] Kern /main [ 76000, 761b5] Root Multiboot info [ 9fc00, 9ffff] Arch BIOS [ e8000, fffff] Arch BIOS [ 100000, 10a6df] Sigma0 /sigma0 [ 110000, 2c6fff] Root /roottask [ 2d0080, 2daf57] Boot bootstrap [ 300000, 34a8af] Kern /main [ 213e000, 2187e07] Root Modules Memory [ 7ff0000, 7ffffff] Arch BIOS [ fffc0000, ffffffff] Arch BIOS API Version: (87) experimental Sigma0 config ip:0000000000104780 sp:00000000002da990 Roottask config ip:0000000000110000 sp:0000000000000000 Starting kernel /main at 0000000000300ad0
l4-hackers@os.inf.tu-dresden.de