Hello,
LANG=en_US.UTF-8 ./init --tut hello-camkes-0
or
LANGUAGE=en_US.UTF-8 ./init --tut hello-camkes-0
did not work.
Seems I was able to resolve this with the following commands:
update-locale LANG=en_US.UTF-8
dpkg-reconfigure locales
update-locale LANG=en_US.UTF-8
export LANG=en_US.UTF-8
After the project built successfully, I tired executing ./simulate and I got the following assertion:
Assertion failed: free_slot_end - free_slot_start >= CONFIG_CAPDL_LOADER_MAX_OBJECTS (../projects/camkes/capdl/capdl-loader-app/src/main.c: parse_bootinfo: 562)
I recieved the below output:
# ./simulate
qemu-system-x86_64 -cpu Nehalem,-vme,+pdpe1gb,-xsave,-xsaveopt,-xsavec,-fsgsbase,-invpcid,enforce -nographic -serial mon:stdio -m size=512M -kernel images/kernel-x86_64-pc99 -initrd images/capdl-loader-image-x86_64-pc99
Boot config: debug_port = 0x3f8
Boot config: disable_iommu = false
Detected 1 boot module(s):
module #0: start=0xa17000 end=0xaef0e8 size=0xd80e8 name='images/capdl-loader-image-x86_64-pc99'
Parsing GRUB physical memory map
Physical Memory Region from 0 size 9fc00 type 1
Physical Memory Region from 9fc00 size 400 type 2
Physical Memory Region from f0000 size 10000 type 2
Physical Memory Region from 100000 size 1fee0000 type 1
Adding physical memory region 0x100000-0x1ffe0000
Physical Memory Region from 1ffe0000 size 20000 type 2
Physical Memory Region from fffc0000 size 40000 type 2
Multiboot gave us no video information
ACPI: RSDP paddr=0xf68c0
ACPI: RSDP vaddr=0xf68c0
ACPI: RSDT paddr=0x1ffe15fc
ACPI: RSDT vaddr=0x1ffe15fc
Kernel loaded to: start=0x100000 end=0xa16000 size=0x916000 entry=0x10125e
ACPI: RSDT paddr=0x1ffe15fc
ACPI: RSDT vaddr=0x1ffe15fc
ACPI: FADT paddr=0x1ffe1458
ACPI: FADT vaddr=0x1ffe1458
ACPI: FADT flags=0x80a5
ACPI: MADT paddr=0x1ffe154c
ACPI: MADT vaddr=0x1ffe154c
ACPI: MADT apic_addr=0xfee00000
ACPI: MADT flags=0x1
ACPI: MADT_APIC apic_id=0x0
ACPI: MADT_IOAPIC ioapic_id=0 ioapic_addr=0xfec00000 gsib=0
ACPI: MADT_ISO bus=0 source=0 gsi=2 flags=0x0
ACPI: MADT_ISO bus=0 source=5 gsi=5 flags=0xd
ACPI: MADT_ISO bus=0 source=9 gsi=9 flags=0xd
ACPI: MADT_ISO bus=0 source=10 gsi=10 flags=0xd
ACPI: MADT_ISO bus=0 source=11 gsi=11 flags=0xd
ACPI: 1 CPU(s) detected
ELF-loading userland images from boot modules:
size=0x210000 v_entry=0x407fef v_start=0x400000 v_end=0x610000 p_start=0xaf0000 p_end=0xd00000
Moving loaded userland images to final location: from=0xaf0000 to=0xa16000 size=0x210000
Starting node #0 with APIC ID 0
Mapping kernel window is done
Booting all finished, dropped to user space
Assertion failed: free_slot_end - free_slot_start >= CONFIG_CAPDL_LOADER_MAX_OBJECTS (../projects/camkes/capdl/capdl-loader-app/src/main.c: parse_bootinfo: 562)
After commenting out the assertion and rebuilding, things seemed to work properly. I see the comment above the assertion says:
/* We need to be able to actual store caps to the maximum number of objects
* we may be dealing with.
* This check can still pass and initialisation fail as we need extra slots for duplicates
* for CNodes and TCBs.
*/
But I still don't quite understand what this assertion is trying to check and why it doesn't really seem needed since commenting it out made things work properly (stdout showed "Hello CAmkES World"). If I were to guess, I'd assume that the check is performed to just make sure there is a decent amount of space to store capabilities in userspace? While I was messing around in the main.c of capdl-loader-app, I wanted to put print statments to see the values of free_slot_end and free_slot_start to get an idea of what these values were, but I didn't see a way to display them to stdout (printf didn't work and I don't know where ZF_LOGD is logging info to).
Regards,
Austin
________________________________
From: Austin Owens
Sent: Saturday, July 20, 2019 5:27 PM
To: devel@sel4.systems