Hi everyone,
It's been a long while since I have messed with Genode and a lot (of really good things) have happened since. I can't wait to get more into the system again (and finally play with Sculpt).
To start I'm trying to building the demo for x86 systems (I am targeting a APU2D4 system from PC.Engines) with seL4 as the kernel. Below is what I have run to setup and build the system (on Ubuntu 18.04.1 LTS):
``` sudo apt install make libsdl-dev tclsh expect qemu xorriso e2tools byacc autoconf2.64 autogen bison flex subversion g++ git gperf libxml2-utils xsltproc gdisk texinfo gprbuild gnat cd genode-19.08/ ./tool/tool_chain x86 ./tool/ports/prepare_port sel4 ./tool/depot/create genodelabs/pkg/x86_64/drivers_interactive-linux genodelabs/bin/x86_64/base-sel4-x86 genodelabs/bin/x86_64/demo genodelabs/bin/x86_64/global_keys_handler genodelabs/bin/x86_64/init genodelabs/bin/x86_64/nit_focus genodelabs/bin/x86_64/nitpicker genodelabs/bin/x86_64/report_rom genodelabs/bin/x86_64/rom_filter CROSS_DEV_PREFIX=/usr/local/genode/tool/19.05/bin/genode-x86- ./tool/ports/prepare_port grub2 ./tool/create_builddir x86_64 cd build/x86_64/ vim etc/build.conf make init make clean make run/demo ```
Note that I updated "etc/build.conf" so that 'KERNEL=sel4', 'BOARD=linux', parallel build is enabled and added 'RUN_OPT += --include image/iso' The "make init" command completes without error. The "make run/demo" however spits out this:
``` including /home/adam/genode-19.08/tool/run/boot_dir/sel4 including /home/adam/genode-19.08/tool/run/image/iso including /home/adam/genode-19.08/repos/os/run/demo.run building targets: app/status_bar test/nitpicker spawn make app/status_bar test/nitpicker make[1]: Entering directory '/home/adam/genode-19.08/build/x86_64' checking library dependencies... Library ldso-startup COMPILE startup.o MERGE ldso-startup.lib.a Library ld CONVERT ld.symbols.s ASSEMBLE ld.symbols.o MERGE ld.abi.so Library base MERGE base.lib.a Program test/nitpicker/testnit CONVERT binary_default.tff.o Program app/status_bar/status_bar COMPILE test.o COMPILE main.o LINK testnit LINK status_bar make[1]: Leaving directory '/home/adam/genode-19.08/build/x86_64' genode build completed checking configuration syntax CHECK init building targets: kernel/sel4 spawn make kernel/sel4 make[1]: Entering directory '/home/adam/genode-19.08/build/x86_64' checking library dependencies... Library-description file kernel-sel4-linux.mk is missing var/libdeps:23: *** missing separator. Stop. Makefile:286: recipe for target 'gen_deps_and_build_targets' failed make[1]: *** [gen_deps_and_build_targets] Error 2 make[1]: Leaving directory '/home/adam/genode-19.08/build/x86_64' Error: Genode build failed Makefile:323: recipe for target 'run/demo' failed make: *** [run/demo] Error 252 ```
Just to be sane I also tried using the HW kernel (after grabbing the needed things) getting even weirder but similar results:
``` cd genode-19.08/ ./tool/depot/create genodelabs/bin/x86_64/base-hw-pc CROSS_DEV_PREFIX=/usr/local/genode/tool/19.05/bin/genode-x86- cd build/x86_64 make KERNEL=hw BOARD=linux run/demo including /home/adam/genode-19.08/tool/run/power_on/linux including /home/adam/genode-19.08/tool/run/log/linux including /home/adam/genode-19.08/tool/run/boot_dir/hw including /home/adam/genode-19.08/tool/run/image/iso including /home/adam/genode-19.08/repos/os/run/demo.run building targets: app/status_bar test/nitpicker spawn make app/status_bar test/nitpicker make[1]: Entering directory '/home/adam/genode-19.08/build/x86_64' checking library dependencies... Library ldso-startup COMPILE startup.o MERGE ldso-startup.lib.a Library ld CONVERT ld.symbols.s ASSEMBLE ld.symbols.o MERGE ld.abi.so Library base MERGE base.lib.a COMPILE test.o Program app/status_bar/status_bar CONVERT binary_default.tff.o Program test/nitpicker/testnit COMPILE main.o LINK testnit LINK status_bar make[1]: Leaving directory '/home/adam/genode-19.08/build/x86_64' genode build completed checking configuration syntax CHECK init building targets: bootstrap/hw core/hw spawn make bootstrap/hw core/hw make[1]: Entering directory '/home/adam/genode-19.08/build/x86_64' checking library dependencies... Library-description file bootstrap-hw-linux.mk is missing Library-description file core-hw-linux.mk is missing make[1]: Leaving directory '/home/adam/genode-19.08/build/x86_64' genode build completed error copying "bin/core-hw-linux.o": no such file or directory while executing "file copy -force bin/core-hw-[board].o [run_dir]/genode/core-hw.o " (procedure "run_boot_dir" line 27) invoked from within "run_boot_dir $binaries" (procedure "build_boot_image" line 34) invoked from within "build_boot_image { status_bar testnit launchpad.config }" (file "/home/adam/genode-19.08/repos/os/run/demo.run" line 216) 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/adam/genode-19.08/tool/run/run" line 1006) Makefile:323: recipe for target 'run/demo' failed make: *** [run/demo] Error 1 ```
At this point I think something is up with my environment but I have no idea where to begin. Any pointers? Thanks and happy weekend everyone!
Hello,
On 13.09.19 19:59, Adam T. Wiethuechter wrote:
It's been a long while since I have messed with Genode and a lot (of really good things) have happened since. I can't wait to get more into the system again (and finally play with Sculpt).
welcome back.
Note that I updated "etc/build.conf" so that 'KERNEL=sel4', 'BOARD=linux', parallel build is enabled and added 'RUN_OPT += --include image/iso'
the BOARD variable is meant to describe the target, which is in your case a native PC - so 'BOARD=pc' should help here.
Cheers,
Alex,
Thanks for the quick response. Your suggestion got me to prepare a few more things and then finally something built successfully and instantly booted into QEMU (which was black screen).
``` cd genode-19.08 ./tool/ports/prepare_port dde_linux libc x86emu ./tool/depot/create genodelabs/pkg/x86_64/drivers_interactive-pc CROSS_DEV_PREFIX=/usr/local/genode/tool/19.05/bin/genode-x86- cd build/x86_64 vim etc/build.conf make run/demo including /home/adam/genode-19.08/tool/run/power_on/qemu including /home/adam/genode-19.08/tool/run/log/qemu including /home/adam/genode-19.08/tool/run/image/iso including /home/adam/genode-19.08/tool/run/boot_dir/sel4 including /home/adam/genode-19.08/tool/run/image/iso including /home/adam/genode-19.08/repos/os/run/demo.run building targets: app/status_bar test/nitpicker spawn make app/status_bar test/nitpicker make[1]: Entering directory '/home/adam/genode-19.08/build/x86_64' checking library dependencies... Library ldso-startup COMPILE startup.o MERGE ldso-startup.lib.a Library ld CONVERT ld.symbols.s ASSEMBLE ld.symbols.o MERGE ld.abi.so Library base MERGE base.lib.a COMPILE main.o Program app/status_bar/status_bar Program test/nitpicker/testnit CONVERT binary_default.tff.o COMPILE test.o LINK testnit LINK status_bar make[1]: Leaving directory '/home/adam/genode-19.08/build/x86_64' genode build completed checking configuration syntax CHECK init building targets: kernel/sel4 spawn make kernel/sel4 make[1]: Entering directory '/home/adam/genode-19.08/build/x86_64' checking library dependencies... MERGE kernel-sel4-pc.lib.a Library kernel-sel4-pc [MKDIR] arch/object [MKDIR] plat/64/plat_mode/machine [MKDIR] src/arch/x86/api [MKDIR] plat/machine [MKDIR] src/arch/x86/object [TOUCH] sources_list_updated [CPP] linker.lds_pp [PBF_GEN] arch/object/structures.pbf [PBF_GEN] 64/mode/api/shared_types.pbf [PBF_GEN] plat/64/plat_mode/machine/hardware.pbf [BF_GEN] arch/object/structures_gen.h [BF_GEN] plat/64/plat_mode/machine/hardware_gen.h [BF_GEN] 64/mode/api/shared_types_gen.h [CPP_GEN] kernel_all.c [CPP] src/arch/x86/64/traps.s_pp [CPP] src/arch/x86/64/head.s_pp [CPP] src/arch/x86/multiboot.s_pp [CPP] src/arch/x86/64/machine_asm.s_pp [CPP] kernel_all.c_pp [AS] src/arch/x86/multiboot.o [AS] src/arch/x86/64/machine_asm.o [AS] src/arch/x86/64/traps.o [AS] src/arch/x86/64/head.o [Circular includes] kernel_all.c_pp [CP] kernel_final.c [CC] kernel_final.s [AS] kernel.o # Clear any .arch directive from the .s file in case we are assembling # for a different architecture. This happens when the compiler supports # a subset architecture compared to the assembler. For example where the # compiler only supports armv7-a, where the assembler supports armv7ve [LD] kernel.elf [STRIP] kernel.elf.strip rm src/arch/x86/64/machine_asm.s_pp src/arch/x86/multiboot.s_pp plat/64/plat_mode/machine/hardware_gen.h src/arch/x86/64/head.s_pp 64/mode/api/shared_types_gen.h src/arch/x86/64/traps.s_pp arch/object/structures_gen.h Program kernel/sel4/sel4-pc make[1]: Leaving directory '/home/adam/genode-19.08/build/x86_64' genode build completed using 'core-sel4.o' as 'core.o' install bootloader creating ISO image... xorriso 1.4.8 : RockRidge filesystem manipulator, libburnia project.
spawn qemu-system-x86_64 -no-kvm -display sdl -serial mon:stdio -m 512 -cdrom var/run/demo.iso -machine q35 qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5] Bender: Hello World.
Boot config: parsing cmdline 'sel4 disable_iommu' Boot config: console_port = 0x3f8 Boot config: debug_port = 0x3f8 Boot config: disable_iommu = true module #0: start=0xf5c5000 end=0xffff330 size=0xa3a330 name='image.elf' 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 1fedf000 type 1 Adding physical memory region 0x100000-0x1ffdf000 Physical Memory Region from 1ffdf000 size 21000 type 2 Physical Memory Region from b0000000 size 10000000 type 2 Physical Memory Region from fed1c000 size 4000 type 2 Physical Memory Region from fffc0000 size 40000 type 2 Got framebuffer info in multiboot2. Current video mode is at physical address=fd000000 pitch=10240 resolution=2560x1600@32 type=1 Detected 1 boot module(s): Kernel loaded to: start=0x200000 end=0xaa5000 size=0x8a5000 entry=0x201209 ACPI: RSDT paddr=0x1ffe20c5 ACPI: RSDT vaddr=0x1ffe20c5 ACPI: FADT paddr=0x1ffe1ee5 ACPI: FADT vaddr=0x1ffe1ee5 ACPI: FADT flags=0x84a5 ACPI: MADT paddr=0x1ffe1fd9 ACPI: MADT vaddr=0x1ffe1fd9 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=0x18a4000 v_entry=0x2000018 v_start=0x2000000 v_end=0x38a4000 p_start=0x10000000 p_end=0x118a4000 Moving loaded userland images to final location: from=0x10000000 to=0xaa5000 size=0x18a4000 Starting node #0 with APIC ID 0 Mapping kernel window is done vt-x: not supported Booting all finished, dropped to user space :phys_mem_16k: Allocator 0x2fe7b30 dump: Block: [0000000000200000,0000000000240000) size=256K avail=256K max_avail=256K => mem_size=262144 (0 MB) / mem_avail=262144 (0 MB)
Warning: device memory in range [0000000100000000,0000000200000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000200000000,0000000400000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000400000000,0000000800000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000800000000,0000001000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000001000000000,0000002000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000002000000000,0000004000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000004000000000,0000008000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000008000000000,0000408000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000408000000000,0000608000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000608000000000,0000708000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000708000000000,0000788000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000788000000000,00007c8000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [00007c8000000000,00007e8000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [00007e8000000000,00007f8000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [00007f8000000000,0000800000000000) is unavailable (due to limited untyped cnode range) virtual address layout of core: overall [0000000000002000,0000000200000000) core image [0000000002000000,00000000038a4000) ipc buffer [00000000038a4000,00000000038a5000) boot_info [00000000038a5000,00000000038a7000) stack area [0000000040000000,0000000050000000) Warning: need physical memory, but Platform object not constructed yet Warning: need physical memory, but Platform object not constructed yet Warning: need physical memory, but Platform object not constructed yet boot module 'status_bar' (131872 bytes) boot module 'input_filter' (200192 bytes) boot module 'init' (345536 bytes) boot module 'scout' (1788016 bytes) boot module 'report_rom' (128160 bytes) boot module 'timer' (120736 bytes) boot module 'en_us.chargen' (13500 bytes) boot module 'launchpad' (829744 bytes) boot module 'ld.lib.so' (1020368 bytes) boot module 'test-libpng_static' (154016 bytes) boot module 'nitlog' (144392 bytes) boot module 'vesa_fb_drv' (367632 bytes) boot module 'ps2_drv' (181488 bytes) boot module 'usb_drv' (1400368 bytes) boot module 'rom_filter' (121520 bytes) boot module 'testnit' (108568 bytes) boot module 'platform_drv' (334464 bytes) boot module 'config' (5603 bytes) boot module 'drivers.config' (4788 bytes) boot module 'nitpicker' (378296 bytes) boot module 'init.xsd' (7148 bytes) boot module 'fb_drv.config' (51 bytes) boot module 'nit_focus' (97520 bytes) boot module 'acpi_drv' (155480 bytes) boot module 'pointer' (154656 bytes) boot module 'launchpad.config' (594 bytes) boot module 'global_keys_handler' (164400 bytes) boot module 'special.chargen' (1346 bytes) boot module 'liquid_fb' (684584 bytes) boot module 'input_filter.config' (768 bytes) Warning: need physical memory, but Platform object not constructed yet Genode 19.08 369 MiB RAM and 261141 caps assigned to init Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x1 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x2 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x4 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x8 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x10 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x20 [init -> drivers -> acpi_drv] Found MADT [init -> drivers -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> drivers -> acpi_drv] MADT IRQ 5 -> GSI 5 flags: 13 [init -> drivers -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 13 [init -> drivers -> acpi_drv] MADT IRQ 10 -> GSI 10 flags: 13 [init -> drivers -> acpi_drv] MADT IRQ 11 -> GSI 11 flags: 13 [init -> drivers -> acpi_drv] Found MCFG [init -> drivers -> acpi_drv] MCFG BASE 0xb0000000 seg 0x0 bus 0x0-0xff [init -> drivers -> acpi_drv] RSDT OEM 'BOCHS ', table id 'BXPCRSDT', revision 1, creator 'BXPC' (1) [init -> drivers -> platform_drv] ECAM/MMCONF range 00:00.0-ff:1f.7 - addr [00000000b0000000,00000000c0000000) [init -> drivers -> platform_drv] Root bridge: 00:00.0 [init -> drivers -> acpi_drv] SMBIOS table (entry point: 0x1a6900 structures: 0xf6920) Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x40 [init -> drivers -> ps2_drv] Using keyboard with scan code set 1 (xlate) [init -> drivers -> usb_drv] Could not read screen resolution in config node [init -> drivers -> usb_drv] Configured HID screen with 0x0 (multitouch=false) [init -> drivers -> usb_drv] No <storage> config node found - not starting the USB Storage (Block) service [init -> drivers -> usb_drv] No <nic> config node found - not starting the USB Nic (Network) service [init -> drivers -> usb_drv] No <raw> config node found - not starting external USB service [init -> drivers -> usb_drv] Enabled UHCI (USB 1.0/1.1) support [init -> drivers -> usb_drv] Enabled EHCI (USB 2.0) support [init -> drivers -> usb_drv] Enabled XHCI (USB 3.0) support [init -> drivers -> ps2_drv] detected ExPS/2 mouse - activating scroll-wheel and 5-button support [init -> drivers -> platform_drv] PS2 uses IRQ, vector 0x1 [init -> drivers -> platform_drv] PS2 uses IRQ, vector 0xc [init -> drivers -> fb_drv] Found PCI VGA at 00:01.0 [init -> drivers -> fb_drv] fb mapped to 0x6000 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x80 [init -> drivers] child "input_filter" requests resources: ram_quota=20480 [init -> drivers -> fb_drv] Found: VESA BIOS version 3.0 [init -> drivers -> fb_drv] OEM: SeaBIOS VBE(C) 2011 [init -> drivers -> fb_drv] Found: physical frame buffer at 0xfd000000 size: 16777216 [init -> drivers -> fb_drv] fb mapped to 0xb000000 [init -> drivers -> fb_drv] using video mode: 1024x768@16 [init -> drivers -> fb_drv] using buffered output Kernel: Thread 'ep' died because of an uncaught exception [init -> drivers -> ps2_drv] Error: Uncaught exception of type 'Genode::Ring_buffer<unsigned char, 1024, Genode::Ring_buffer_synchronized>::Overflow' [init -> drivers -> ps2_drv] Warning: abort called - thread: ep [init -> drivers -> platform_drv] Warning: 1 dangling allocation at allocator destruction time [init -> drivers -> ps2_drv] Error: freeing non-empty slab block [init -> drivers -> ps2_drv] Error: ID space not empty at destruction time [init -> drivers] child "ps2_drv" exited with exit value 1 no RM attachment (READ pf_addr=0x25120 pf_ip=0x1005a60 from pager_object: pd='init -> drivers -> platform_drv' thread='ep') Warning: invalid signal-context capability Warning: page-fault, pager_object: pd='init -> drivers -> platform_drv' thread='ep' ip=0x1005a60 pf-addr=0x25120 ```
Looks like I have some runtime errors now (in QEMU)? I'm going to try this on actual hardware as well and see what happens.
73's, Adam Wiethuechter, Jr Software Engineer Critical Technologies Inc. (CTI) Desk: (315)-793-0248 x157 Cell: (315)-552-4298 adam.wiethuechter@critical.com
On 9/13/19 2:56 PM, Alexander Boettcher wrote:
Hello,
On 13.09.19 19:59, Adam T. Wiethuechter wrote:
It's been a long while since I have messed with Genode and a lot (of really good things) have happened since. I can't wait to get more into the system again (and finally play with Sculpt).
welcome back.
Note that I updated "etc/build.conf" so that 'KERNEL=sel4', 'BOARD=linux', parallel build is enabled and added 'RUN_OPT += --include image/iso'
the BOARD variable is meant to describe the target, which is in your case a native PC - so 'BOARD=pc' should help here.
Cheers,
Just got the ISO image (found in build/x86_64/var/run/demo.iso, just dd onto SD card) to start up and display via Minicom.
``` Booting `Genode on seL4'
Bender: Hello World.
Boot config: parsing cmdline 'sel4 disable_iommu' Boot config: console_port = 0x3f8 Boot config: debug_port = 0x3f8 Boot config: disable_iommu = true module #0: start=0xf5c5000 end=0xffff330 size=0xa3a330 name='image.elf' 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 cfdab000 type 1 Adding physical memory region 0x100000-0xcfeab000 Physical Memory Region from cfeab000 size 155000 type 2 Physical Memory Region from f8000000 size 4000000 type 2 Physical Memory Region from fed40000 size 5000 type 2 Physical Memory Region from 1000000000 size 2f000000 type 1 Adding physical memory region 0x100000000-0x12f000000 Detected 1 boot module(s): Kernel loaded to: start=0x200000 end=0xaa5000 size=0x8a5000 entry=0x201209 ACPI: RSDT paddr=0xcfeac030 ACPI: RSDT vaddr=0xcfeac030 ACPI: FADT paddr=0xcfead8f0 ACPI: FADT vaddr=0xcfead8f0 ACPI: FADT flags=0x3c5a5 ACPI: MADT paddr=0xcfeadc20 ACPI: MADT vaddr=0xcfeadc20 ACPI: MADT apic_addr=0xfee00000 ACPI: MADT flags=0x1 ACPI: MADT_APIC apic_id=0x0 ACPI: MADT_APIC apic_id=0x1 ACPI: MADT_APIC apic_id=0x2 ACPI: MADT_APIC apic_id=0x3 ACPI: MADT_IOAPIC ioapic_id=4 ioapic_addr=0xfec00000 gsib=0 ACPI: MADT_IOAPIC ioapic_id=5 ioapic_addr=0xfec20000 gsib=24 ACPI: Not recording this IOAPIC, only support 1 ACPI: MADT_ISO bus=0 source=0 gsi=2 flags=0x0 ACPI: MADT_ISO bus=0 source=9 gsi=9 flags=0xf ACPI: 4 CPU(s) detected ELF-loading userland images from boot modules: size=0x18a4000 v_entry=0x2000018 v_start=0x2000000 v_end=0x38a4000 p_start=0x10000000 p_end=0x118a4000 Moving loaded userland images to final location: from=0x10000000 to=0xaa5000 size=0x18a4000 Starting node #0 with APIC ID 0 Mapping kernel window is done vt-x: not supported Starting node #1 with APIC ID 1 vt-x: not supported Starting node #2 with APIC ID 2 vt-x: not supported Starting node #3 with APIC ID 3 vt-x: not supported Booting all finished, dropped to user space :phys_mem_16k: Allocator 0x2fe7b30 dump: Block: [0000000000200000,0000000000240000) size=256K avail=256K max_avail=256K => mem_size=262144 (0 MB) / mem_avail=262144 (0 MB)
Warning: memory in range [0000000100000000,0000000120000000) is unavailable (due to limited untyped cnode range) Warning: memory in range [0000000120000000,0000000128000000) is unavailable (due to limited untyped cnode range) Warning: memory in range [0000000128000000,000000012c000000) is unavailable (due to limited untyped cnode range) Warning: memory in range [000000012e000000,000000012e400000) is unavailable (due to limited untyped cnode range) Warning: memory in range [000000012e400000,000000012e600000) is unavailable (due to limited untyped cnode range) Warning: memory in range [000000012e600000,000000012e700000) is unavailable (due to limited untyped cnode range) Warning: memory in range [000000012e700000,000000012e780000) is unavailable (due to limited untyped cnode range) Warning: memory in range [000000012e780000,000000012e7c0000) is unavailable (due to limited untyped cnode range) Warning: memory in range [000000012e7e0000,000000012e7e1000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [000000012f000000,0000000130000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000130000000,0000000140000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000140000000,0000000180000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000180000000,0000000200000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000200000000,0000000400000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000400000000,0000000800000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000800000000,0000001000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000001000000000,0000002000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000002000000000,0000004000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000004000000000,0000008000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000008000000000,0000408000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000408000000000,0000608000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000608000000000,0000708000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000708000000000,0000788000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000788000000000,00007c8000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [00007c8000000000,00007e8000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [00007e8000000000,00007f8000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [00007f8000000000,0000800000000000) is unavailable (due to limited untyped cnode range) virtual address layout of core: overall [0000000000002000,0000000200000000) core image [0000000002000000,00000000038a4000) ipc buffer [00000000038a4000,00000000038a5000) boot_info [00000000038a5000,00000000038a7000) stack area [0000000040000000,0000000050000000) Warning: need physical memory, but Platform object not constructed yet Warning: need physical memory, but Platform object not constructed yet Warning: need physical memory, but Platform object not constructed yet Warning: need physical memory, but Platform object not constructed yet Warning: need physical memory, but Platform object not constructed yet Warning: need physical memory, but Platform object not constructed yet boot module 'status_bar' (131872 bytes) boot module 'input_filter' (200192 bytes) boot module 'init' (345536 bytes) boot module 'scout' (1788016 bytes) boot module 'report_rom' (128160 bytes) boot module 'timer' (120736 bytes) boot module 'en_us.chargen' (13500 bytes) boot module 'launchpad' (829744 bytes) boot module 'ld.lib.so' (1020368 bytes) boot module 'test-libpng_static' (154016 bytes) boot module 'nitlog' (144392 bytes) boot module 'vesa_fb_drv' (367632 bytes) boot module 'ps2_drv' (181488 bytes) boot module 'usb_drv' (1400368 bytes) boot module 'rom_filter' (121520 bytes) boot module 'testnit' (108568 bytes) boot module 'platform_drv' (334464 bytes) boot module 'config' (5603 bytes) boot module 'drivers.config' (4788 bytes) boot module 'nitpicker' (378296 bytes) boot module 'init.xsd' (7148 bytes) boot module 'fb_drv.config' (51 bytes) boot module 'nit_focus' (97520 bytes) boot module 'acpi_drv' (155480 bytes) boot module 'pointer' (154656 bytes) boot module 'launchpad.config' (594 bytes) boot module 'global_keys_handler' (164400 bytes) boot module 'special.chargen' (1346 bytes) boot module 'liquid_fb' (684584 bytes) boot module 'input_filter.config' (768 bytes) Warning: need physical memory, but Platform object not constructed yet Genode 19.08 3256 MiB RAM and 261141 caps assigned to init Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x1 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x2 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x4 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x8 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x10 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x20 [init -> drivers -> acpi_drv] Found MCFG [init -> drivers -> acpi_drv] MCFG BASE 0xf8000000 seg 0x0 bus 0x0-0x40 [init -> drivers -> acpi_drv] Found MADT [init -> drivers -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> drivers -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> drivers -> acpi_drv] XSDT OEM 'COREv4', table id 'COREBOOT', revision 0, creator 'CORE' (538511107) Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x40 [init -> drivers -> platform_drv] ECAM/MMCONF range 00:00.0-40:1f.7 - addr [00000000f8000000,00000000fc100000) [init -> drivers -> acpi_drv] SMBIOS table (entry point: 0x1c6280 structures: 0xcfeab020) [init -> drivers -> platform_drv] Root bridge: 00:18.0 [init -> drivers -> platform_drv] 00:02.2 - bridge 01:00.0 [init -> drivers -> platform_drv] 00:02.3 - bridge 02:00.0 [init -> drivers -> platform_drv] 00:02.4 - bridge 03:00.0 [init -> drivers -> platform_drv] 00:02.5 - bridge 04:00.0 enabled Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x80 [init -> drivers -> fb_drv] Error: PCI VGA card not found. [init -> drivers -> fb_drv] Error: H/W driver init failed [init -> drivers -> fb_drv] Error: __cxa_guard_abort called Kernel: Thread 'ep' died because of an uncaught exception [init -> drivers -> fb_drv] Error: Uncaught exception of type 'Framebuffer::Fatal' [init -> drivers -> fb_drv] Warning: abort called - thread: ep [init -> drivers] child "fb_drv" exited with exit value 1 [init -> drivers -> usb_drv] Could not read screen resolution in config node [init -> drivers -> usb_drv] Configured HID screen with 0x0 (multitouch=false) [init -> drivers -> usb_drv] No <storage> config node found - not starting the USB Storage (Block) service [init -> drivers -> usb_drv] No <nic> config node found - not starting the USB Nic (Network) service [init -> drivers -> usb_drv] No <raw> config node found - not starting external USB service [init -> drivers -> usb_drv] Enabled UHCI (USB 1.0/1.1) support [init -> drivers -> usb_drv] Enabled EHCI (USB 2.0) support [init -> drivers -> usb_drv] Enabled XHCI (USB 3.0) support [init -> drivers -> platform_drv] Warning: Out_of_caps during Device_component construction [init -> drivers -> usb_drv] ioremap: mapped phys 0xf7ea2000 (size 8192) to virt 0x20000 [init -> drivers -> usb_drv] ioremap: return sub range phys 0xf7ea2000 (size 8192) to virt 0x20000 [init -> drivers -> usb_drv] dev_info: xHCI Host Controller [init -> drivers -> usb_drv] dev_info: new USB bus registered, assigned bus number 1 [init -> drivers -> usb_drv] dev_info: hcc params 0x014040c3 hci version 0x100 quirks 0x00000410 [init -> drivers -> platform_drv] 00:10.0 adjust IRQ as reported by ACPI: 5 -> 18 Warning: virtual void Stack_area_region_map::detach(Genode::Region_map::Local_addr): not implemented Warning: free not implemented [init -> drivers -> platform_drv] Error: IRQ-session creation failed (ram_quota=6K, cap_quota=4, irq_number=0, irq_trigger=0, irq_polarity=0, device_config_phys=0xf8080000) [init -> drivers -> platform_drv] 00:10.0 uses IRQ, vector 0x12, MSI 64bit capable, non-maskable [init -> drivers -> usb_drv] dev_info: USB hub found [init -> drivers -> usb_drv] dev_info: 2 ports detected [init -> drivers -> usb_drv] dev_info: xHCI Host Controller [init -> drivers -> usb_drv] dev_info: new USB bus registered, assigned bus number 2 [init -> drivers -> usb_drv] dev_info: We don't know the algorithms for LPM for this host, disabling LPM. [init -> drivers -> usb_drv] dev_info: USB hub found [init -> drivers -> usb_drv] dev_info: 2 ports detected [init -> drivers -> usb_drv] ioremap: mapped phys 0xf7ea6000 (size 256) to virt 0x17000 [init -> drivers -> usb_drv] ioremap: return sub range phys 0xf7ea6000 (size 256) to virt 0x17000 [init -> drivers -> usb_drv] dev_info: EHCI Host Controller [init -> drivers -> usb_drv] dev_info: new USB bus registered, assigned bus number 3 [init -> drivers -> usb_drv] dev_info: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy qh workaround [init -> drivers -> platform_drv] 00:13.0 adjust IRQ as reported by ACPI: 5 -> 18 [init -> drivers -> platform_drv] 00:13.0 uses IRQ, vector 0x12, non-maskable [init -> drivers -> usb_drv] dev_info: irq 130, io mem 0xf7ea6000 [init -> drivers -> usb_drv] dev_info: USB 2.0 started, EHCI 1.00 [init -> drivers -> usb_drv] dev_info: USB hub found [init -> drivers -> usb_drv] dev_info: 2 ports detected [init -> drivers -> usb_drv] dev_info: new high-speed USB device number 2 using ehci-pci [init -> drivers -> usb_drv] dev_info: USB hub found [init -> drivers -> usb_drv] dev_info: 4 ports detected ```
I think its just the fact that APU series has no GUI that I am not seeing anything else. What does worry me though is this: "[init -> drivers -> platform_drv] Warning: Out_of_caps during Device_component construction". Sounds like I ran out of something, which may not be good considering my goal is to hopefully get Sculpt working on this hardware.
Is there another demo/test application I can use that functions with serial communication to further test and develop with (seeing as I don't have an video ouput) or will I have to roll my own?
Thanks again!
73's, Adam Wiethuechter, Jr Software Engineer Critical Technologies Inc. (CTI) Desk: (315)-793-0248 x157 Cell: (315)-552-4298 adam.wiethuechter@critical.com
On 9/13/19 4:53 PM, Adam T. Wiethuechter wrote:
Alex,
Thanks for the quick response. Your suggestion got me to prepare a few more things and then finally something built successfully and instantly booted into QEMU (which was black screen).
cd genode-19.08 ./tool/ports/prepare_port dde_linux libc x86emu ./tool/depot/create genodelabs/pkg/x86_64/drivers_interactive-pc CROSS_DEV_PREFIX=/usr/local/genode/tool/19.05/bin/genode-x86- cd build/x86_64 vim etc/build.conf make run/demo including /home/adam/genode-19.08/tool/run/power_on/qemu including /home/adam/genode-19.08/tool/run/log/qemu including /home/adam/genode-19.08/tool/run/image/iso including /home/adam/genode-19.08/tool/run/boot_dir/sel4 including /home/adam/genode-19.08/tool/run/image/iso including /home/adam/genode-19.08/repos/os/run/demo.run building targets: app/status_bar test/nitpicker spawn make app/status_bar test/nitpicker make[1]: Entering directory '/home/adam/genode-19.08/build/x86_64' checking library dependencies... Library ldso-startup COMPILE startup.o MERGE ldso-startup.lib.a Library ld CONVERT ld.symbols.s ASSEMBLE ld.symbols.o MERGE ld.abi.so Library base MERGE base.lib.a COMPILE main.o Program app/status_bar/status_bar Program test/nitpicker/testnit CONVERT binary_default.tff.o COMPILE test.o LINK testnit LINK status_bar make[1]: Leaving directory '/home/adam/genode-19.08/build/x86_64' genode build completed checking configuration syntax CHECK init building targets: kernel/sel4 spawn make kernel/sel4 make[1]: Entering directory '/home/adam/genode-19.08/build/x86_64' checking library dependencies... MERGE kernel-sel4-pc.lib.a Library kernel-sel4-pc [MKDIR] arch/object [MKDIR] plat/64/plat_mode/machine [MKDIR] src/arch/x86/api [MKDIR] plat/machine [MKDIR] src/arch/x86/object [TOUCH] sources_list_updated [CPP] linker.lds_pp [PBF_GEN] arch/object/structures.pbf [PBF_GEN] 64/mode/api/shared_types.pbf [PBF_GEN] plat/64/plat_mode/machine/hardware.pbf [BF_GEN] arch/object/structures_gen.h [BF_GEN] plat/64/plat_mode/machine/hardware_gen.h [BF_GEN] 64/mode/api/shared_types_gen.h [CPP_GEN] kernel_all.c [CPP] src/arch/x86/64/traps.s_pp [CPP] src/arch/x86/64/head.s_pp [CPP] src/arch/x86/multiboot.s_pp [CPP] src/arch/x86/64/machine_asm.s_pp [CPP] kernel_all.c_pp [AS] src/arch/x86/multiboot.o [AS] src/arch/x86/64/machine_asm.o [AS] src/arch/x86/64/traps.o [AS] src/arch/x86/64/head.o [Circular includes] kernel_all.c_pp [CP] kernel_final.c [CC] kernel_final.s [AS] kernel.o # Clear any .arch directive from the .s file in case we are assembling # for a different architecture. This happens when the compiler supports # a subset architecture compared to the assembler. For example where the # compiler only supports armv7-a, where the assembler supports armv7ve [LD] kernel.elf [STRIP] kernel.elf.strip rm src/arch/x86/64/machine_asm.s_pp src/arch/x86/multiboot.s_pp plat/64/plat_mode/machine/hardware_gen.h src/arch/x86/64/head.s_pp 64/mode/api/shared_types_gen.h src/arch/x86/64/traps.s_pp arch/object/structures_gen.h Program kernel/sel4/sel4-pc make[1]: Leaving directory '/home/adam/genode-19.08/build/x86_64' genode build completed using 'core-sel4.o' as 'core.o' install bootloader creating ISO image... xorriso 1.4.8 : RockRidge filesystem manipulator, libburnia project. spawn qemu-system-x86_64 -no-kvm -display sdl -serial mon:stdio -m 512 -cdrom var/run/demo.iso -machine q35 qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5] Bender: Hello World. Boot config: parsing cmdline 'sel4 disable_iommu' Boot config: console_port = 0x3f8 Boot config: debug_port = 0x3f8 Boot config: disable_iommu = true module #0: start=0xf5c5000 end=0xffff330 size=0xa3a330 name='image.elf' 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 1fedf000 type 1 Adding physical memory region 0x100000-0x1ffdf000 Physical Memory Region from 1ffdf000 size 21000 type 2 Physical Memory Region from b0000000 size 10000000 type 2 Physical Memory Region from fed1c000 size 4000 type 2 Physical Memory Region from fffc0000 size 40000 type 2 Got framebuffer info in multiboot2. Current video mode is at physical address=fd000000 pitch=10240 resolution=2560x1600@32 type=1 Detected 1 boot module(s): Kernel loaded to: start=0x200000 end=0xaa5000 size=0x8a5000 entry=0x201209 ACPI: RSDT paddr=0x1ffe20c5 ACPI: RSDT vaddr=0x1ffe20c5 ACPI: FADT paddr=0x1ffe1ee5 ACPI: FADT vaddr=0x1ffe1ee5 ACPI: FADT flags=0x84a5 ACPI: MADT paddr=0x1ffe1fd9 ACPI: MADT vaddr=0x1ffe1fd9 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=0x18a4000 v_entry=0x2000018 v_start=0x2000000 v_end=0x38a4000 p_start=0x10000000 p_end=0x118a4000 Moving loaded userland images to final location: from=0x10000000 to=0xaa5000 size=0x18a4000 Starting node #0 with APIC ID 0 Mapping kernel window is done vt-x: not supported Booting all finished, dropped to user space :phys_mem_16k: Allocator 0x2fe7b30 dump: Block: [0000000000200000,0000000000240000) size=256K avail=256K max_avail=256K => mem_size=262144 (0 MB) / mem_avail=262144 (0 MB) Warning: device memory in range [0000000100000000,0000000200000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000200000000,0000000400000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000400000000,0000000800000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000800000000,0000001000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000001000000000,0000002000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000002000000000,0000004000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000004000000000,0000008000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000008000000000,0000408000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000408000000000,0000608000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000608000000000,0000708000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000708000000000,0000788000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000788000000000,00007c8000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [00007c8000000000,00007e8000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [00007e8000000000,00007f8000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [00007f8000000000,0000800000000000) is unavailable (due to limited untyped cnode range) virtual address layout of core: overall [0000000000002000,0000000200000000) core image [0000000002000000,00000000038a4000) ipc buffer [00000000038a4000,00000000038a5000) boot_info [00000000038a5000,00000000038a7000) stack area [0000000040000000,0000000050000000) Warning: need physical memory, but Platform object not constructed yet Warning: need physical memory, but Platform object not constructed yet Warning: need physical memory, but Platform object not constructed yet boot module 'status_bar' (131872 bytes) boot module 'input_filter' (200192 bytes) boot module 'init' (345536 bytes) boot module 'scout' (1788016 bytes) boot module 'report_rom' (128160 bytes) boot module 'timer' (120736 bytes) boot module 'en_us.chargen' (13500 bytes) boot module 'launchpad' (829744 bytes) boot module 'ld.lib.so' (1020368 bytes) boot module 'test-libpng_static' (154016 bytes) boot module 'nitlog' (144392 bytes) boot module 'vesa_fb_drv' (367632 bytes) boot module 'ps2_drv' (181488 bytes) boot module 'usb_drv' (1400368 bytes) boot module 'rom_filter' (121520 bytes) boot module 'testnit' (108568 bytes) boot module 'platform_drv' (334464 bytes) boot module 'config' (5603 bytes) boot module 'drivers.config' (4788 bytes) boot module 'nitpicker' (378296 bytes) boot module 'init.xsd' (7148 bytes) boot module 'fb_drv.config' (51 bytes) boot module 'nit_focus' (97520 bytes) boot module 'acpi_drv' (155480 bytes) boot module 'pointer' (154656 bytes) boot module 'launchpad.config' (594 bytes) boot module 'global_keys_handler' (164400 bytes) boot module 'special.chargen' (1346 bytes) boot module 'liquid_fb' (684584 bytes) boot module 'input_filter.config' (768 bytes) Warning: need physical memory, but Platform object not constructed yet Genode 19.08 369 MiB RAM and 261141 caps assigned to init Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x1 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x2 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x4 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x8 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x10 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x20 [init -> drivers -> acpi_drv] Found MADT [init -> drivers -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> drivers -> acpi_drv] MADT IRQ 5 -> GSI 5 flags: 13 [init -> drivers -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 13 [init -> drivers -> acpi_drv] MADT IRQ 10 -> GSI 10 flags: 13 [init -> drivers -> acpi_drv] MADT IRQ 11 -> GSI 11 flags: 13 [init -> drivers -> acpi_drv] Found MCFG [init -> drivers -> acpi_drv] MCFG BASE 0xb0000000 seg 0x0 bus 0x0-0xff [init -> drivers -> acpi_drv] RSDT OEM 'BOCHS ', table id 'BXPCRSDT', revision 1, creator 'BXPC' (1) [init -> drivers -> platform_drv] ECAM/MMCONF range 00:00.0-ff:1f.7 - addr [00000000b0000000,00000000c0000000) [init -> drivers -> platform_drv] Root bridge: 00:00.0 [init -> drivers -> acpi_drv] SMBIOS table (entry point: 0x1a6900 structures: 0xf6920) Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x40 [init -> drivers -> ps2_drv] Using keyboard with scan code set 1 (xlate) [init -> drivers -> usb_drv] Could not read screen resolution in config node [init -> drivers -> usb_drv] Configured HID screen with 0x0 (multitouch=false) [init -> drivers -> usb_drv] No <storage> config node found - not starting the USB Storage (Block) service [init -> drivers -> usb_drv] No <nic> config node found - not starting the USB Nic (Network) service [init -> drivers -> usb_drv] No <raw> config node found - not starting external USB service [init -> drivers -> usb_drv] Enabled UHCI (USB 1.0/1.1) support [init -> drivers -> usb_drv] Enabled EHCI (USB 2.0) support [init -> drivers -> usb_drv] Enabled XHCI (USB 3.0) support [init -> drivers -> ps2_drv] detected ExPS/2 mouse - activating scroll-wheel and 5-button support [init -> drivers -> platform_drv] PS2 uses IRQ, vector 0x1 [init -> drivers -> platform_drv] PS2 uses IRQ, vector 0xc [init -> drivers -> fb_drv] Found PCI VGA at 00:01.0 [init -> drivers -> fb_drv] fb mapped to 0x6000 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x80 [init -> drivers] child "input_filter" requests resources: ram_quota=20480 [init -> drivers -> fb_drv] Found: VESA BIOS version 3.0 [init -> drivers -> fb_drv] OEM: SeaBIOS VBE(C) 2011 [init -> drivers -> fb_drv] Found: physical frame buffer at 0xfd000000 size: 16777216 [init -> drivers -> fb_drv] fb mapped to 0xb000000 [init -> drivers -> fb_drv] using video mode: 1024x768@16 [init -> drivers -> fb_drv] using buffered output Kernel: Thread 'ep' died because of an uncaught exception [init -> drivers -> ps2_drv] Error: Uncaught exception of type 'Genode::Ring_buffer<unsigned char, 1024, Genode::Ring_buffer_synchronized>::Overflow' [init -> drivers -> ps2_drv] Warning: abort called - thread: ep [init -> drivers -> platform_drv] Warning: 1 dangling allocation at allocator destruction time [init -> drivers -> ps2_drv] Error: freeing non-empty slab block [init -> drivers -> ps2_drv] Error: ID space not empty at destruction time [init -> drivers] child "ps2_drv" exited with exit value 1 no RM attachment (READ pf_addr=0x25120 pf_ip=0x1005a60 from pager_object: pd='init -> drivers -> platform_drv' thread='ep') Warning: invalid signal-context capability Warning: page-fault, pager_object: pd='init -> drivers -> platform_drv' thread='ep' ip=0x1005a60 pf-addr=0x25120
Looks like I have some runtime errors now (in QEMU)? I'm going to try this on actual hardware as well and see what happens. 73's, Adam Wiethuechter, Jr Software Engineer Critical Technologies Inc. (CTI) Desk: (315)-793-0248 x157 Cell: (315)-552-4298 adam.wiethuechter@critical.com On 9/13/19 2:56 PM, Alexander Boettcher wrote:
Hello,
On 13.09.19 19:59, Adam T. Wiethuechter wrote:
It's been a long while since I have messed with Genode and a lot (of really good things) have happened since. I can't wait to get more into the system again (and finally play with Sculpt).
welcome back.
Note that I updated "etc/build.conf" so that 'KERNEL=sel4', 'BOARD=linux', parallel build is enabled and added 'RUN_OPT += --include image/iso'
the BOARD variable is meant to describe the target, which is in your case a native PC - so 'BOARD=pc' should help here.
Cheers,
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
On 13.09.19 23:31, Adam T. Winchester wrote:
Just got the ISO image (found in build/x86_64/var/run/demo.iso, just dd onto SD card) to start up and display via Minicom.
Good.
not implemented - resources leaked: 0x20 [init -> drivers -> acpi_drv] Found MCFG [init -> drivers -> acpi_drv] MCFG BASE 0xf8000000 seg 0x0 bus 0x0-0x40 [init -> drivers -> acpi_drv] Found MADT [init -> drivers -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> drivers -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> drivers -> acpi_drv] XSDT OEM 'COREv4', table id 'COREBOOT', revision 0, creator 'CORE' (538511107) Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x40 [init -> drivers -> platform_drv] ECAM/MMCONF range 00:00.0-40:1f.7 - addr [00000000f8000000,00000000fc100000) [init -> drivers -> acpi_drv] SMBIOS table (entry point: 0x1c6280 structures: 0xcfeab020) [init -> drivers -> platform_drv] Root bridge: 00:18.0 [init -> drivers -> platform_drv] 00:02.2 - bridge 01:00.0 [init -> drivers -> platform_drv] 00:02.3 - bridge 02:00.0 [init -> drivers -> platform_drv] 00:02.4 - bridge 03:00.0 [init -> drivers -> platform_drv] 00:02.5 - bridge 04:00.0 enabled Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x80 [init -> drivers -> fb_drv] Error: PCI VGA card not found. [init -> drivers -> fb_drv] Error: H/W driver init failed [init -> drivers -> fb_drv] Error: __cxa_guard_abort called Kernel: Thread 'ep' died because of an uncaught exception [init -> drivers -> fb_drv] Error: Uncaught exception of type 'Framebuffer::Fatal' [init -> drivers -> fb_drv] Warning: abort called - thread: ep [init -> drivers] child "fb_drv" exited with exit value 1 [init -> drivers -> usb_drv] Could not read screen resolution in config node
You may try the fb_boot_drv [0][1] instead of the vesa driver. Mainly you let grub2 set up the graphic device and if this succeeds, the driver will just us the prepared framebuffer and the fixed resolution. The driver should work independent of whether you boot uefi or legacy boot, as long as grub2 manages to setup things.
I attached a diff below where you see the possible set screws. Please note that the patch in the demo.run is just a bad hack. If the fb_boot_drv works for you, you should consider to create another drivers_interactive-pc package which contains the fb_boot-drv instead of the vesa driver.
[0] https://genode.org/documentation/release-notes/17.08#Support_for_boot-time_i... [1] https://lists.genode.org/pipermail/users/2017-October/005548.html
[init -> drivers -> usb_drv] dev_info: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy qh workaround
Just as note, AMD is not regularly/officially tested/supported by Genode Labs - but used/tested by enthusiasts nevertheless also with Sculpt.
I think its just the fact that APU series has no GUI that I am not seeing anything else. What does worry me though is this: "[init -> drivers -> platform_drv] Warning: Out_of_caps during Device_component construction". Sounds like I ran out of something, which may not be good considering my goal is to hopefully get Sculpt working on this hardware.
Is there another demo/test application I can use that functions with serial communication to further test and develop with (seeing as I don't have an video ouput) or will I have to roll my own?
Thanks again!
diff --git a/repos/os/run/demo.run b/repos/os/run/demo.run index 6b9642f4b6..2a8bc3cd85 100644 --- a/repos/os/run/demo.run +++ b/repos/os/run/demo.run @@ -213,7 +213,11 @@ puts $launchpad_config_fd {<config> </config>} close $launchpad_config_fd
-build_boot_image { status_bar testnit launchpad.config } +build { drivers/framebuffer/boot } + +exec cp bin/fb_boot_drv bin/vesa_fb_drv + +build_boot_image { status_bar testnit launchpad.config vesa_fb_drv }
if {[get_cmd_switch --autopilot]} { run_genode_until {[init -> scout] png is.*\n} 40 diff --git a/tool/run/boot_dir/nova b/tool/run/boot_dir/nova index 73f0e4d934..b97cff8703 100644 --- a/tool/run/boot_dir/nova +++ b/tool/run/boot_dir/nova @@ -114,7 +114,7 @@ proc run_boot_dir {binaries} { puts $fh "set timeout=0"
# choose best graphic mode - puts $fh "set gfxpayload=auto" + puts $fh "set gfxpayload=1024x768@32"
if {[have_include image/uefi]} { puts $fh "insmod gfxterm" diff --git a/tool/run/boot_dir/sel4 b/tool/run/boot_dir/sel4 index 14f2dbafcb..2f04260d8e 100644 --- a/tool/run/boot_dir/sel4 +++ b/tool/run/boot_dir/sel4 @@ -84,7 +84,8 @@ proc run_boot_dir {binaries} { set fh [open "[run_dir]/boot/grub/grub.cfg" "WRONLY CREAT TRUNC"] puts $fh "set timeout=0" # tell grub2 to prefer 32bit framebuffer resolution - puts $fh "set gfxpayload="0x0x32"" +# puts $fh "set gfxpayload="0x0x32"" + puts $fh "set gfxpayload=1024x768x32" puts $fh "menuentry 'Genode on seL4' {" puts $fh " insmod multiboot2" puts $fh " multiboot2 /boot/bender phys_max=256M $serial_bender_opt"
Hey Alex,
just a small note below.
On Sat, Sep 14, 2019 at 11:48:39 CEST, Alexander Boettcher wrote:
On 13.09.19 23:31, Adam T. Winchester wrote:
[init -> drivers -> fb_drv] Error: H/W driver init failed [init -> drivers -> fb_drv] Error: __cxa_guard_abort called Kernel: Thread 'ep' died because of an uncaught exception [init -> drivers -> fb_drv] Error: Uncaught exception of type 'Framebuffer::Fatal' [init -> drivers -> fb_drv] Warning: abort called - thread: ep [init -> drivers] child "fb_drv" exited with exit value 1 [init -> drivers -> usb_drv] Could not read screen resolution in config node
You may try the fb_boot_drv [0][1] instead of the vesa driver.
The board used [1] seems to be quite similar to the APU.2C4 used by Sid Hussmann [3]. As I also own one of those I'm pretty sure they completely lack a VGA device because the addressed application scenario is mostly network equipment.
[1] https://www.apu-board.de/produkte/apu2d4.html [2] https://lists.genode.org/pipermail/users/2019-September/006891.html
Greets
Sure, a demo with graphical output makes absolutely no sense if the hardware has no such device.
Thanks.
On 2019-09-14 12:56, Christian Helmuth wrote:
Hey Alex,
just a small note below.
On Sat, Sep 14, 2019 at 11:48:39 CEST, Alexander Boettcher wrote:
On 13.09.19 23:31, Adam T. Winchester wrote:
[init -> drivers -> fb_drv] Error: H/W driver init failed [init -> drivers -> fb_drv] Error: __cxa_guard_abort called Kernel: Thread 'ep' died because of an uncaught exception [init -> drivers -> fb_drv] Error: Uncaught exception of type 'Framebuffer::Fatal' [init -> drivers -> fb_drv] Warning: abort called - thread: ep [init -> drivers] child "fb_drv" exited with exit value 1 [init -> drivers -> usb_drv] Could not read screen resolution in config node
You may try the fb_boot_drv [0][1] instead of the vesa driver.
The board used [1] seems to be quite similar to the APU.2C4 used by Sid Hussmann [3]. As I also own one of those I'm pretty sure they completely lack a VGA device because the addressed application scenario is mostly network equipment.
[1] https://www.apu-board.de/produkte/apu2d4.html [2] https://lists.genode.org/pipermail/users/2019-September/006891.html
Greets
I attempted your fix to change the driver, with no change in results. Again, I think has to do with that the hardware only has a serial port (no video output). Being a limit of the hardware I am not too worried, its something I expected I would run into and have to work around either way. Also thanks for the heads up on AMD side of things, chances are I will be back with questions regarding that if I run into anything serious.
I think I am in a good state now to try some other things and create my own little application in the framework to talk to my target device. To the tutorials I go!
Below is the output of the fixes you suggested running on the hardware. This includes the other fix that got the demo to work in QEMU. I also attempted the other permutations (both in QEMU and on hardware) which I can supply if requested.
``` Booting `Genode on seL4'
Bender: Hello World.
Boot config: parsing cmdline 'sel4 disable_iommu' Boot config: console_port = 0x3f8 Boot config: debug_port = 0x3f8 Boot config: disable_iommu = true module #0: start=0xf5ff000 end=0xffff330 size=0xa00330 name='image.elf' 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 cfdab000 type 1 Adding physical memory region 0x100000-0xcfeab000 Physical Memory Region from cfeab000 size 155000 type 2 Physical Memory Region from f8000000 size 4000000 type 2 Physical Memory Region from fed40000 size 5000 type 2 Physical Memory Region from 1000000000 size 2f000000 type 1 Adding physical memory region 0x100000000-0x12f000000 Detected 1 boot module(s): Kernel loaded to: start=0x200000 end=0xaa5000 size=0x8a5000 entry=0x201209 ACPI: RSDT paddr=0xcfeac030 ACPI: RSDT vaddr=0xcfeac030 ACPI: FADT paddr=0xcfead8f0 ACPI: FADT vaddr=0xcfead8f0 ACPI: FADT flags=0x3c5a5 ACPI: MADT paddr=0xcfeadc20 ACPI: MADT vaddr=0xcfeadc20 ACPI: MADT apic_addr=0xfee00000 ACPI: MADT flags=0x1 ACPI: MADT_APIC apic_id=0x0 ACPI: MADT_APIC apic_id=0x1 ACPI: MADT_APIC apic_id=0x2 ACPI: MADT_APIC apic_id=0x3 ACPI: MADT_IOAPIC ioapic_id=4 ioapic_addr=0xfec00000 gsib=0 ACPI: MADT_IOAPIC ioapic_id=5 ioapic_addr=0xfec20000 gsib=24 ACPI: Not recording this IOAPIC, only support 1 ACPI: MADT_ISO bus=0 source=0 gsi=2 flags=0x0 ACPI: MADT_ISO bus=0 source=9 gsi=9 flags=0xf ACPI: 4 CPU(s) detected ELF-loading userland images from boot modules: size=0x186a000 v_entry=0x2000018 v_start=0x2000000 v_end=0x386a000 p_start=0x10000000 p_end=0x1186a000 Moving loaded userland images to final location: from=0x10000000 to=0xaa5000 size=0x186a000 Starting node #0 with APIC ID 0 Mapping kernel window is done vt-x: not supported Starting node #1 with APIC ID 1 vt-x: not supported Starting node #2 with APIC ID 2 vt-x: not supported Starting node #3 with APIC ID 3 vt-x: not supported Booting all finished, dropped to user space :phys_mem_16k: Allocator 0x2fe7b30 dump: Block: [0000000000200000,0000000000240000) size=256K avail=256K max_avail=256K => mem_size=262144 (0 MB) / mem_avail=262144 (0 MB)
Warning: memory in range [0000000100000000,0000000120000000) is unavailable (due to limited untyped cnode range) Warning: memory in range [0000000120000000,0000000128000000) is unavailable (due to limited untyped cnode range) Warning: memory in range [0000000128000000,000000012c000000) is unavailable (due to limited untyped cnode range) Warning: memory in range [000000012e000000,000000012e400000) is unavailable (due to limited untyped cnode range) Warning: memory in range [000000012e400000,000000012e600000) is unavailable (due to limited untyped cnode range) Warning: memory in range [000000012e600000,000000012e700000) is unavailable (due to limited untyped cnode range) Warning: memory in range [000000012e700000,000000012e780000) is unavailable (due to limited untyped cnode range) Warning: memory in range [000000012e780000,000000012e7c0000) is unavailable (due to limited untyped cnode range) Warning: memory in range [000000012e7e0000,000000012e7e1000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [000000012f000000,0000000130000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000130000000,0000000140000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000140000000,0000000180000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000180000000,0000000200000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000200000000,0000000400000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000400000000,0000000800000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000800000000,0000001000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000001000000000,0000002000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000002000000000,0000004000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000004000000000,0000008000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000008000000000,0000408000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000408000000000,0000608000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000608000000000,0000708000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000708000000000,0000788000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000788000000000,00007c8000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [00007c8000000000,00007e8000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [00007e8000000000,00007f8000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [00007f8000000000,0000800000000000) is unavailable (due to limited untyped cnode range) virtual address layout of core: overall [0000000000002000,0000000200000000) core image [0000000002000000,000000000386a000) ipc buffer [000000000386a000,000000000386b000) boot_info [000000000386b000,000000000386d000) stack area [0000000040000000,0000000050000000) Warning: need physical memory, but Platform object not constructed yet Warning: need physical memory, but Platform object not constructed yet Warning: need physical memory, but Platform object not constructed yet Warning: need physical memory, but Platform object not constructed yet Warning: need physical memory, but Platform object not constructed yet Warning: need physical memory, but Platform object not constructed yet boot module 'status_bar' (131872 bytes) boot module 'input_filter' (200192 bytes) boot module 'init' (345536 bytes) boot module 'scout' (1788016 bytes) boot module 'report_rom' (128160 bytes) boot module 'timer' (120736 bytes) boot module 'en_us.chargen' (13500 bytes) boot module 'launchpad' (829744 bytes) boot module 'ld.lib.so' (1020368 bytes) boot module 'test-libpng_static' (154016 bytes) boot module 'nitlog' (144392 bytes) boot module 'vesa_fb_drv' (127432 bytes) boot module 'ps2_drv' (181488 bytes) boot module 'usb_drv' (1400368 bytes) boot module 'rom_filter' (121520 bytes) boot module 'testnit' (108568 bytes) boot module 'platform_drv' (334464 bytes) boot module 'config' (5603 bytes) boot module 'drivers.config' (4788 bytes) boot module 'nitpicker' (378296 bytes) boot module 'init.xsd' (7148 bytes) boot module 'fb_drv.config' (51 bytes) boot module 'nit_focus' (97520 bytes) boot module 'acpi_drv' (155480 bytes) boot module 'pointer' (154656 bytes) boot module 'launchpad.config' (594 bytes) boot module 'global_keys_handler' (164400 bytes) boot module 'special.chargen' (1346 bytes) boot module 'liquid_fb' (684584 bytes) boot module 'input_filter.config' (768 bytes) Warning: need physical memory, but Platform object not constructed yet Genode 19.08 3256 MiB RAM and 261141 caps assigned to init Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x1 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x2 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x4 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x8 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x10 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x20 [init -> drivers -> fb_drv] Error: No boot framebuffer information available. [init -> drivers -> fb_drv] Error: __cxa_guard_abort called Kernel: Thread 'ep' died because of an uncaught exception [init -> drivers -> fb_drv] Error: Uncaught exception of type 'Genode::Service_denied' [init -> drivers -> fb_drv] Warning: abort called - thread: ep [init -> drivers -> acpi_drv] Found MCFG Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x40 [init -> drivers -> acpi_drv] MCFG BASE 0xf8000000 seg 0x0 bus 0x0-0x40 [init -> drivers -> acpi_drv] Found MADT [init -> drivers -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> drivers] child "fb_drv" exited with exit value 1 [init -> drivers -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> drivers -> acpi_drv] XSDT OEM 'COREv4', table id 'COREBOOT', revision 0, creator 'CORE' (538511107) [init -> drivers -> platform_drv] ECAM/MMCONF range 00:00.0-40:1f.7 - addr [00000000f8000000,00000000fc100000) [init -> drivers -> acpi_drv] SMBIOS table (entry point: 0x1c6280 structures: 0xcfeab020) Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x80 [init -> drivers -> platform_drv] Root bridge: 00:18.0 [init -> drivers -> platform_drv] 00:02.2 - bridge 01:00.0 [init -> drivers -> platform_drv] 00:02.3 - bridge 02:00.0 [init -> drivers -> platform_drv] 00:02.4 - bridge 03:00.0 [init -> drivers -> platform_drv] 00:02.5 - bridge 04:00.0 enabled [init -> drivers -> usb_drv] Could not read screen resolution in config node [init -> drivers -> usb_drv] Configured HID screen with 0x0 (multitouch=false) [init -> drivers -> usb_drv] No <storage> config node found - not starting the USB Storage (Block) service [init -> drivers -> usb_drv] No <nic> config node found - not starting the USB Nic (Network) service [init -> drivers -> usb_drv] No <raw> config node found - not starting external USB service [init -> drivers -> usb_drv] Enabled UHCI (USB 1.0/1.1) support [init -> drivers -> usb_drv] Enabled EHCI (USB 2.0) support [init -> drivers -> usb_drv] Enabled XHCI (USB 3.0) support [init -> drivers -> platform_drv] Warning: Out_of_caps during Device_component construction [init -> drivers -> usb_drv] ioremap: mapped phys 0xf7ea2000 (size 8192) to virt 0x20000 [init -> drivers -> usb_drv] ioremap: return sub range phys 0xf7ea2000 (size 8192) to virt 0x20000 [init -> drivers -> usb_drv] dev_info: xHCI Host Controller [init -> drivers -> usb_drv] dev_info: new USB bus registered, assigned bus number 1 [init -> drivers -> usb_drv] dev_info: hcc params 0x014040c3 hci version 0x100 quirks 0x00000410 [init -> drivers -> platform_drv] 00:10.0 adjust IRQ as reported by ACPI: 5 -> 18 Warning: virtual void Stack_area_region_map::detach(Genode::Region_map::Local_addr): not implemented Warning: free not implemented [init -> drivers -> platform_drv] Error: IRQ-session creation failed (ram_quota=6K, cap_quota=4, irq_number=0, irq_trigger=0, irq_polarity=0, device_config_phys=0xf8080000) [init -> drivers -> platform_drv] 00:10.0 uses IRQ, vector 0x12, MSI 64bit capable, non-maskable [init -> drivers -> usb_drv] dev_info: USB hub found [init -> drivers -> usb_drv] dev_info: 2 ports detected [init -> drivers -> usb_drv] dev_info: xHCI Host Controller [init -> drivers -> usb_drv] dev_info: new USB bus registered, assigned bus number 2 [init -> drivers -> usb_drv] dev_info: We don't know the algorithms for LPM for this host, disabling LPM. [init -> drivers -> usb_drv] dev_info: USB hub found [init -> drivers -> usb_drv] dev_info: 2 ports detected [init -> drivers -> usb_drv] ioremap: mapped phys 0xf7ea6000 (size 256) to virt 0x17000 [init -> drivers -> usb_drv] ioremap: return sub range phys 0xf7ea6000 (size 256) to virt 0x17000 [init -> drivers -> usb_drv] dev_info: EHCI Host Controller [init -> drivers -> usb_drv] dev_info: new USB bus registered, assigned bus number 3 [init -> drivers -> usb_drv] dev_info: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy qh workaround [init -> drivers -> platform_drv] 00:13.0 adjust IRQ as reported by ACPI: 5 -> 18 [init -> drivers -> platform_drv] 00:13.0 uses IRQ, vector 0x12, non-maskable [init -> drivers -> usb_drv] dev_info: irq 130, io mem 0xf7ea6000 [init -> drivers -> usb_drv] dev_info: USB 2.0 started, EHCI 1.00 [init -> drivers -> usb_drv] dev_info: USB hub found [init -> drivers -> usb_drv] dev_info: 2 ports detected [init -> drivers -> usb_drv] dev_info: new high-speed USB device number 2 using ehci-pci [init -> drivers -> usb_drv] dev_info: USB hub found [init -> drivers -> usb_drv] dev_info: 4 ports detected ```
73's, Adam Wiethuechter, Jr Software Engineer Critical Technologies Inc. (CTI) Desk: (315)-793-0248 x157 Cell: (315)-552-4298 adam.wiethuechter@critical.com
On 9/14/19 5:48 AM, Alexander Boettcher wrote:
On 13.09.19 23:31, Adam T. Winchester wrote:
Just got the ISO image (found in build/x86_64/var/run/demo.iso, just dd onto SD card) to start up and display via Minicom.
Good.
not implemented - resources leaked: 0x20 [init -> drivers -> acpi_drv] Found MCFG [init -> drivers -> acpi_drv] MCFG BASE 0xf8000000 seg 0x0 bus 0x0-0x40 [init -> drivers -> acpi_drv] Found MADT [init -> drivers -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> drivers -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> drivers -> acpi_drv] XSDT OEM 'COREv4', table id 'COREBOOT', revision 0, creator 'CORE' (538511107) Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x40 [init -> drivers -> platform_drv] ECAM/MMCONF range 00:00.0-40:1f.7 - addr [00000000f8000000,00000000fc100000) [init -> drivers -> acpi_drv] SMBIOS table (entry point: 0x1c6280 structures: 0xcfeab020) [init -> drivers -> platform_drv] Root bridge: 00:18.0 [init -> drivers -> platform_drv] 00:02.2 - bridge 01:00.0 [init -> drivers -> platform_drv] 00:02.3 - bridge 02:00.0 [init -> drivers -> platform_drv] 00:02.4 - bridge 03:00.0 [init -> drivers -> platform_drv] 00:02.5 - bridge 04:00.0 enabled Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x80 [init -> drivers -> fb_drv] Error: PCI VGA card not found. [init -> drivers -> fb_drv] Error: H/W driver init failed [init -> drivers -> fb_drv] Error: __cxa_guard_abort called Kernel: Thread 'ep' died because of an uncaught exception [init -> drivers -> fb_drv] Error: Uncaught exception of type 'Framebuffer::Fatal' [init -> drivers -> fb_drv] Warning: abort called - thread: ep [init -> drivers] child "fb_drv" exited with exit value 1 [init -> drivers -> usb_drv] Could not read screen resolution in config node
You may try the fb_boot_drv [0][1] instead of the vesa driver. Mainly you let grub2 set up the graphic device and if this succeeds, the driver will just us the prepared framebuffer and the fixed resolution. The driver should work independent of whether you boot uefi or legacy boot, as long as grub2 manages to setup things.
I attached a diff below where you see the possible set screws. Please note that the patch in the demo.run is just a bad hack. If the fb_boot_drv works for you, you should consider to create another drivers_interactive-pc package which contains the fb_boot-drv instead of the vesa driver.
[0] https://genode.org/documentation/release-notes/17.08#Support_for_boot-time_i... [1] https://lists.genode.org/pipermail/users/2017-October/005548.html
[init -> drivers -> usb_drv] dev_info: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy qh workaround
Just as note, AMD is not regularly/officially tested/supported by Genode Labs - but used/tested by enthusiasts nevertheless also with Sculpt.
I think its just the fact that APU series has no GUI that I am not seeing anything else. What does worry me though is this: "[init -> drivers -> platform_drv] Warning: Out_of_caps during Device_component construction". Sounds like I ran out of something, which may not be good considering my goal is to hopefully get Sculpt working on this hardware.
Is there another demo/test application I can use that functions with serial communication to further test and develop with (seeing as I don't have an video ouput) or will I have to roll my own?
Thanks again!
diff --git a/repos/os/run/demo.run b/repos/os/run/demo.run index 6b9642f4b6..2a8bc3cd85 100644 --- a/repos/os/run/demo.run +++ b/repos/os/run/demo.run @@ -213,7 +213,11 @@ puts $launchpad_config_fd {<config> </config>} close $launchpad_config_fd
-build_boot_image { status_bar testnit launchpad.config } +build { drivers/framebuffer/boot }
+exec cp bin/fb_boot_drv bin/vesa_fb_drv
+build_boot_image { status_bar testnit launchpad.config vesa_fb_drv }
if {[get_cmd_switch --autopilot]} { run_genode_until {[init -> scout] png is.*\n} 40 diff --git a/tool/run/boot_dir/nova b/tool/run/boot_dir/nova index 73f0e4d934..b97cff8703 100644 --- a/tool/run/boot_dir/nova +++ b/tool/run/boot_dir/nova @@ -114,7 +114,7 @@ proc run_boot_dir {binaries} { puts $fh "set timeout=0"
# choose best graphic mode
puts $fh "set gfxpayload=auto"
puts $fh "set gfxpayload=1024x768@32"
if {[have_include image/uefi]} { puts $fh "insmod gfxterm"
diff --git a/tool/run/boot_dir/sel4 b/tool/run/boot_dir/sel4 index 14f2dbafcb..2f04260d8e 100644 --- a/tool/run/boot_dir/sel4 +++ b/tool/run/boot_dir/sel4 @@ -84,7 +84,8 @@ proc run_boot_dir {binaries} { set fh [open "[run_dir]/boot/grub/grub.cfg" "WRONLY CREAT TRUNC"] puts $fh "set timeout=0" # tell grub2 to prefer 32bit framebuffer resolution
puts $fh "set gfxpayload=\"0x0x32\""
+# puts $fh "set gfxpayload="0x0x32""
puts $fh "menuentry 'Genode on seL4' {" puts $fh " insmod multiboot2" puts $fh " multiboot2 /boot/bender phys_max=256M $serial_bender_opt"puts $fh "set gfxpayload=1024x768x32"
On 13.09.19 22:53, Adam T. Wiethuechter wrote:
[init -> drivers -> platform_drv] PS2 uses IRQ, vector 0x1 [init -> drivers -> platform_drv] PS2 uses IRQ, vector 0xc [init -> drivers -> fb_drv] Found PCI VGA at 00:01.0 [init -> drivers -> fb_drv] fb mapped to 0x6000 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x80 [init -> drivers] child "input_filter" requests resources: ram_quota=20480
I can reproduce at least this message. After increasing the ram quota [0] and rebuilding the respective package [1] it boots up into the GUI. Can you please re-try ?
In case you run your Linux in a VM and get strange mouse events with qemu, please consider the countermeasures in [3].
[0] https://github.com/alex-ab/genode/commit/64e51cb93783561785e83eec7dcd5f617f0... [1] tool/depot/create genodelabs/pkg/x86_64/drivers_interactive-pc CROSS_DEV_PREFIX=/usr/local/genode/tool/19.05/bin/genode-x86- -j4 UPDATE_VERSIONS=1 FORCE=1 [3] https://lists.genode.org/pipermail/users/2017-March/005074.html
Alex,
I applied the changes you suggested here and got the demo to boot in QEMU just as you had. It's super slow and laggy thanks to my machine but it does seem to work.
Interestingly adding your other changes (to switch to the fb_boot_drv) causes QEMU to at least get to outputting "Booting Genode on seL4" only to stop there. This is the output of that particular run if interested.
``` spawn qemu-system-x86_64 -no-kvm -display sdl -serial mon:stdio -m 512 -cdrom var/run/demo.iso -machine q35 qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5] Bender: Hello World.
Boot config: parsing cmdline 'sel4 disable_iommu' Boot config: console_port = 0x3f8 Boot config: debug_port = 0x3f8 Boot config: disable_iommu = true module #0: start=0xf5ff000 end=0xffff330 size=0xa00330 name='image.elf' 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 1fedf000 type 1 Adding physical memory region 0x100000-0x1ffdf000 Physical Memory Region from 1ffdf000 size 21000 type 2 Physical Memory Region from b0000000 size 10000000 type 2 Physical Memory Region from fed1c000 size 4000 type 2 Physical Memory Region from fffc0000 size 40000 type 2 Got framebuffer info in multiboot2. Current video mode is at physical address=b8000 pitch=160 resolution=80x25@16 type=2 Detected 1 boot module(s): Kernel loaded to: start=0x200000 end=0xaa5000 size=0x8a5000 entry=0x201209 ACPI: RSDT paddr=0x1ffe20c5 ACPI: RSDT vaddr=0x1ffe20c5 ACPI: FADT paddr=0x1ffe1ee5 ACPI: FADT vaddr=0x1ffe1ee5 ACPI: FADT flags=0x84a5 ACPI: MADT paddr=0x1ffe1fd9 ACPI: MADT vaddr=0x1ffe1fd9 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=0x186a000 v_entry=0x2000018 v_start=0x2000000 v_end=0x386a000 p_start=0x10000000 p_end=0x1186a000 Moving loaded userland images to final location: from=0x10000000 to=0xaa5000 size=0x186a000 Starting node #0 with APIC ID 0 Mapping kernel window is done vt-x: not supported Booting all finished, dropped to user space :phys_mem_16k: Allocator 0x2fe7b30 dump: Block: [0000000000200000,0000000000240000) size=256K avail=256K max_avail=256K => mem_size=262144 (0 MB) / mem_avail=262144 (0 MB)
Warning: device memory in range [0000000100000000,0000000200000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000200000000,0000000400000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000400000000,0000000800000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000000800000000,0000001000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000001000000000,0000002000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000002000000000,0000004000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000004000000000,0000008000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000008000000000,0000408000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000408000000000,0000608000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000608000000000,0000708000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000708000000000,0000788000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [0000788000000000,00007c8000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [00007c8000000000,00007e8000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [00007e8000000000,00007f8000000000) is unavailable (due to limited untyped cnode range) Warning: device memory in range [00007f8000000000,0000800000000000) is unavailable (due to limited untyped cnode range) virtual address layout of core: overall [0000000000002000,0000000200000000) core image [0000000002000000,000000000386a000) ipc buffer [000000000386a000,000000000386b000) boot_info [000000000386b000,000000000386d000) stack area [0000000040000000,0000000050000000) Warning: need physical memory, but Platform object not constructed yet Warning: need physical memory, but Platform object not constructed yet Warning: need physical memory, but Platform object not constructed yet boot module 'status_bar' (131872 bytes) boot module 'input_filter' (200192 bytes) boot module 'init' (345536 bytes) boot module 'scout' (1788016 bytes) boot module 'report_rom' (128160 bytes) boot module 'timer' (120736 bytes) boot module 'en_us.chargen' (13500 bytes) boot module 'launchpad' (829744 bytes) boot module 'ld.lib.so' (1020368 bytes) boot module 'test-libpng_static' (154016 bytes) boot module 'nitlog' (144392 bytes) boot module 'vesa_fb_drv' (127432 bytes) boot module 'ps2_drv' (181488 bytes) boot module 'usb_drv' (1400368 bytes) boot module 'rom_filter' (121520 bytes) boot module 'testnit' (108568 bytes) boot module 'platform_drv' (334464 bytes) boot module 'config' (5603 bytes) boot module 'drivers.config' (4788 bytes) boot module 'nitpicker' (378296 bytes) boot module 'init.xsd' (7148 bytes) boot module 'fb_drv.config' (51 bytes) boot module 'nit_focus' (97520 bytes) boot module 'acpi_drv' (155480 bytes) boot module 'pointer' (154656 bytes) boot module 'launchpad.config' (594 bytes) boot module 'global_keys_handler' (164400 bytes) boot module 'special.chargen' (1346 bytes) boot module 'liquid_fb' (684584 bytes) boot module 'input_filter.config' (768 bytes) Warning: need physical memory, but Platform object not constructed yet Genode 19.08 369 MiB RAM and 261141 caps assigned to init Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x1 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x2 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x4 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x8 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x10 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x20 [init -> drivers -> fb_drv] Framebuffer with 80x25x16 @ 0xb8000 type=2 pitch=160 [init -> drivers -> fb_drv] Error: unsupported resolution (bpp or/and type) [init -> drivers -> fb_drv] Error: __cxa_guard_abort called Kernel: Thread 'ep' died because of an uncaught exception [init -> drivers -> fb_drv] Error: Uncaught exception of type 'Genode::Service_denied' [init -> drivers -> fb_drv] Warning: abort called - thread: ep [init -> drivers -> acpi_drv] Found MADT [init -> drivers -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> drivers -> acpi_drv] MADT IRQ 5 -> GSI 5 flags: 13 [init -> drivers -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 13 [init -> drivers -> acpi_drv] MADT IRQ 10 -> GSI 10 flags: 13 [init -> drivers -> acpi_drv] MADT IRQ 11 -> GSI 11 flags: 13 [init -> drivers -> acpi_drv] Found MCFG [init -> drivers -> acpi_drv] MCFG BASE 0xb0000000 seg 0x0 bus 0x0-0xff Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x40 [init -> drivers -> acpi_drv] RSDT OEM 'BOCHS ', table id 'BXPCRSDT', revision 1, creator 'BXPC' (1) [init -> drivers] child "fb_drv" exited with exit value 1 [init -> drivers -> platform_drv] ECAM/MMCONF range 00:00.0-ff:1f.7 - addr [00000000b0000000,00000000c0000000) [init -> drivers -> platform_drv] Root bridge: 00:00.0 [init -> drivers -> acpi_drv] SMBIOS table (entry point: 0x1a6900 structures: 0xf6920) Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x80 [init -> drivers -> ps2_drv] Using keyboard with scan code set 1 (xlate) [init -> drivers -> usb_drv] Could not read screen resolution in config node [init -> drivers -> usb_drv] Configured HID screen with 0x0 (multitouch=false) [init -> drivers -> usb_drv] No <storage> config node found - not starting the USB Storage (Block) service [init -> drivers -> usb_drv] No <nic> config node found - not starting the USB Nic (Network) service [init -> drivers -> usb_drv] No <raw> config node found - not starting external USB service [init -> drivers -> usb_drv] Enabled UHCI (USB 1.0/1.1) support [init -> drivers -> usb_drv] Enabled EHCI (USB 2.0) support [init -> drivers -> usb_drv] Enabled XHCI (USB 3.0) support [init -> drivers -> ps2_drv] detected ExPS/2 mouse - activating scroll-wheel and 5-button support [init -> drivers -> platform_drv] PS2 uses IRQ, vector 0x1 [init -> drivers -> platform_drv] PS2 uses IRQ, vector 0xc ```
73's, Adam Wiethuechter, Jr Software Engineer Critical Technologies Inc. (CTI) Desk: (315)-793-0248 x157 Cell: (315)-552-4298 adam.wiethuechter@critical.com
On 9/14/19 5:05 AM, Alexander Boettcher wrote:
On 13.09.19 22:53, Adam T. Wiethuechter wrote:
[init -> drivers -> platform_drv] PS2 uses IRQ, vector 0x1 [init -> drivers -> platform_drv] PS2 uses IRQ, vector 0xc [init -> drivers -> fb_drv] Found PCI VGA at 00:01.0 [init -> drivers -> fb_drv] fb mapped to 0x6000 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x80 [init -> drivers] child "input_filter" requests resources: ram_quota=20480
I can reproduce at least this message. After increasing the ram quota [0] and rebuilding the respective package [1] it boots up into the GUI. Can you please re-try ?
In case you run your Linux in a VM and get strange mouse events with qemu, please consider the countermeasures in [3].
[0] https://github.com/alex-ab/genode/commit/64e51cb93783561785e83eec7dcd5f617f0... [1] tool/depot/create genodelabs/pkg/x86_64/drivers_interactive-pc CROSS_DEV_PREFIX=/usr/local/genode/tool/19.05/bin/genode-x86- -j4 UPDATE_VERSIONS=1 FORCE=1 [3] https://lists.genode.org/pipermail/users/2017-March/005074.html
On 16.09.19 20:25, Adam T. Wiethuechter wrote:
Interestingly adding your other changes (to switch to the fb_boot_drv) causes QEMU to at least get to outputting "Booting Genode on seL4" only to stop there. This is the output of that particular run if interested.
spawn qemu-system-x86_64 -no-kvm -display sdl -serial mon:stdio -m 512 -cdrom var/run/demo.iso -machine q35 qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID.01H:ECX.vmx [bit 5] Bender: Hello World. Boot config: parsing cmdline 'sel4 disable_iommu' Boot config: console_port = 0x3f8 Boot config: debug_port = 0x3f8 Boot config: disable_iommu = true module #0: start=0xf5ff000 end=0xffff330 size=0xa00330 name='image.elf' 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 1fedf000 type 1 Adding physical memory region 0x100000-0x1ffdf000 Physical Memory Region from 1ffdf000 size 21000 type 2 Physical Memory Region from b0000000 size 10000000 type 2 Physical Memory Region from fed1c000 size 4000 type 2 Physical Memory Region from fffc0000 size 40000 type 2 Got framebuffer info in multiboot2. Current video mode is at physical address=b8000 pitch=160 resolution=80x25@16 type=2
As said, if Qemu manages to switch on the graphic mode you are fine. According to your output it is running in text console mode 80x25, so no graphics for you.
Just as reference the working version:
spawn qemu-system-x86_64 -no-kvm -display sdl -serial mon:stdio -m 512 -cdrom var/run/demo.iso -machine q35 Boot config: parsing cmdline 'sel4 disable_iommu' Boot config: console_port = 0x3f8 Boot config: debug_port = 0x3f8 Boot config: disable_iommu = true module #0: start=0xf5c4000 end=0xffff330 size=0xa3b330 name='image.elf' 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 1fedf000 type 1 Adding physical memory region 0x100000-0x1ffdf000 Physical Memory Region from 1ffdf000 size 21000 type 2 Physical Memory Region from b0000000 size 10000000 type 2 Physical Memory Region from fed1c000 size 4000 type 2 Physical Memory Region from fffc0000 size 40000 type 2 Got framebuffer info in multiboot2. Current video mode is at physical address=fd000000 pitch=10240 resolution=2560x1600@32 type=1
As you see, the resolution was setup by grub2 to my internal display resolution.
On 16.09.19 20:40, Alexander Boettcher wrote:
As said, if Qemu manages to switch on the graphic mode you are fine.
sorry, Qemu -> Grub2
Interesting, I wonder why it chose that?
Given my actual hardware does not support video anyways (it only has a serial port) I suppose it is irrelevant. However a useful tidbit in case I switch platforms to one that has video.
Thanks for the help Alex! I'm off to start writing a little app to try some things out now.
73's, Adam Wiethuechter, Jr Software Engineer Critical Technologies Inc. (CTI) Desk: (315)-793-0248 x157 Cell: (315)-552-4298 adam.wiethuechter@critical.com
On 9/16/19 2:40 PM, Alexander Boettcher wrote:
As said, if Qemu manages to switch on the graphic mode you are fine. According to your output it is running in text console mode 80x25, so no graphics for you.