-
Notifications
You must be signed in to change notification settings - Fork 74
Description
I am attempting to build and run the Gunyah Hypervisor image by following the quickstart.md guide from the gunyah-support-scripts repository.
Environment:
- Operating System: Windows with WSL2
- WSL2 Distribution: Ubuntu 24.04.2 LTS
- WSL2 Version: 2.6.1.0
- WSL2 Kernel: 6.6.87.2-1
- Docker: Docker Desktop is being used.
Problem Description:
After successfully completing all setup steps and repository cloning as described in the quickstart.md guide, I built the Gunyah Hypervisor image (build-gunyah.sh qemu) and generated the device tree binary (run-qemu.sh dtb). However, when running the final command (run-qemu.sh), the process displays some of the initial hypervisor boot messages but then freezes without proceeding to boot the Linux kernel or producing further output. The QEMU instance becomes unresponsive at this point.
Some warnings appeared during the Gunyah Hypervisor image build and device tree binary generation (shown in the trace below).
QEMU and Linux images without Gunyah work correctly (kern-test.sh).
Followed steps:
- Follow the Quick Start guide in
gunyah-support-scripts/quickstart.md. - Navigate to
cd ~/share/gunyah(within the Docker container environment). - Execute
clone-gunyah.shto clone the necessary repositories. - Navigate to
~/share/gunyah(within the Docker container environment). - Run
build-gunyah.sh qemu. - Navigate to
~/mnt/workspace. - Run
run-qemu.sh dtb. - Run
run-qemu.sh.
Expected Behavior:
The run-qemu.sh command should continue to boot the Linux kernel, eventually presenting a shell prompt as shown in the quickstart.md guide's "Test Hypervisor and Linux booting" section.
Actual Behavior:
The execution freezes after displaying the initial hypervisor messages, as shown in the trace below.
Complete Trace:
(gunyah-venv) dbernal @hyp-dev-env:~/share/gunyah$ clone-gunyah.sh
Cloning from repo : https://github.com/quic
Cloning into 'hyp'...
remote: Enumerating objects: 4391, done.
remote: Counting objects: 100% (4391/4391), done.
remote: Compressing objects: 100% (2101/2101), done.
remote: Total 4391 (delta 1909), reused 4119 (delta 1650), pack-reused 0 (from 0)
Receiving objects: 100% (4391/4391), 1.63 MiB | 4.34 MiB/s, done.
Resolving deltas: 100% (1909/1909), done.
Cloning into 'resource-manager'...
remote: Enumerating objects: 944, done.
remote: Counting objects: 100% (944/944), done.
remote: Compressing objects: 100% (473/473), done.
remote: Total 944 (delta 520), reused 799 (delta 385), pack-reused 0 (from 0)
Receiving objects: 100% (944/944), 672.13 KiB | 1.76 MiB/s, done.
Resolving deltas: 100% (520/520), done.
Cloning into 'musl-c-runtime'...
remote: Enumerating objects: 379, done.
remote: Counting objects: 100% (379/379), done.
remote: Compressing objects: 100% (237/237), done.
remote: Total 379 (delta 199), reused 309 (delta 133), pack-reused 0 (from 0)
Receiving objects: 100% (379/379), 231.27 KiB | 947.00 KiB/s, done.
Resolving deltas: 100% (199/199), done.
(gunyah-venv) dbernal @hyp-dev-env:~/share/gunyah$ ls
hyp musl-c-runtime resource-manager
(gunyah-venv) dbernal @hyp-dev-env:~/share/gunyah$ cd ~/share/gunyah
build-gunyah.sh qemu
./configure.py platform=qemu featureset=gunyah-rm-qemu quality=debug ; ninja
[3/3] _mkdir build/qemu
[614/1079] event_parse build/qemu/gunyah-rm-qemu/debug/events.pickle
build/qemu/gunyah-rm-qemu/debug/hyp/mem/memdb_gpt/memdb.ev.pp:11:58: warning: unwinder
memdb_gpt_unwind_partition_add_ram_range() is unused
build/qemu/gunyah-rm-qemu/debug/hyp/mem/memdb_gpt/memdb.ev.pp:13:61: warning: unwinder
memdb_gpt_unwind_partition_remove_ram_range() is unused
build/qemu/gunyah-rm-qemu/debug/hyp/vm/psci/psci.ev.pp:23:23: warning: unwinder
psci_unwind_vcpu_suspend() is unused
build/qemu/gunyah-rm-qemu/debug/hyp/vm/psci/psci.ev.pp:41:39: warning: unwinder
psci_handle_object_deactivate_thread() is unused
build/qemu/gunyah-rm-qemu/debug/hyp/core/vdevice/vdevice.ev.pp:8:34: warning: unwinder
vdevice_unwind_object_create_addrspace() is unused
build/qemu/gunyah-rm-qemu/debug/hyp/vm/virtio_mmio/virtio_mmio.ev.pp:27:38: warning:
unwinder virtio_mmio_unwind_object_activate_virtio_mmio() is unused
[1052/1079] cc
build/qemu/gunyah-rm-qemu/debug/hyp/vm/vcpu/aarch64/obj/context_switch.c.o
hyp/vm/vcpu/aarch64/src/context_switch.c:28:9: warning: PLATFORM_HAS_NO_ETM_BASE is
nonzero; if an ETM is present it may be accessible and could trace the hypervisor.
[-W#pragma-messages]
#pragma message( \
^
1 warning generated.
[1079/1079] ld build/qemu/gunyah-rm-qemu/debug/hyp.elf
./configure.py platform=qemu featureset=gunyah-rm-qemu quality=debug ; ninja
WARNING:tools.build.config_file:Test programs are disabled by default
[2/2] _mkdir build/qemu
[88/88] ld build/qemu/debug/resource-manager
./configure.py platform=qemu featureset=gunyah-rm-qemu quality=debug ; ninja
WARNING:tools.build.config_file:Test programs are disabled by default
[36/36] ld build/runtime
image_pkg_start 0x80067000
inserting...
writing...
created qemu/hypvm.elf
Copied hypvm.elf to /home/dbernal/mnt/workspace/imgs/hypvm.elf
C Runtime entry point : 0x1000
Resource Manager entry point : 0x1a000
(gunyah-venv) dbernal @hyp-dev-env:~/share/gunyah$ cd ~/mnt/workspace
run-qemu.sh dtb
Virtio disk file is not found, will boot without the disk
Generating dtb and exiting...
qemu-system-aarch64: info: dtb dumped to ./imgs/virt_qemu.dtb. Exiting.
input = ./imgs/virt_qemu.dtb
output = ./imgs/virt.dtb
overlay[0] = ./imgs/overlay.dtbo
./imgs/virt.dts:275.3-21: Warning (clocks_property): /pl061 @9030000:clocks: cell 0 is
not a phandle reference
./imgs/virt.dts:300.3-21: Warning (clocks_property): /pl031 @9010000:clocks: cell 0 is
not a phandle reference
./imgs/virt.dts:308.3-28: Warning (clocks_property): /pl011 @9000000:clocks: cell 0 is
not a phandle reference
./imgs/virt.dts:308.3-28: Warning (clocks_property): /pl011 @9000000:clocks: cell 1 is
not a phandle reference
./imgs/virt.dts:266.4-31: Warning (gpios_property): /gpio-keys/poweroff:gpios: cell 0 is
not a phandle reference
Generated dtb ./imgs/virt.dtb
(gunyah-venv) dbernal @hyp-dev-env:~/mnt/workspace$ run-qemu.sh
Virtio disk file is not found, booting without using the disk
[HYP] Hypervisor cold boot, version: gunyah-36ca3a2 debug (2024-01-02 04:48:53 UTC)
[HYP] added heap: partition 0xffffffd60000a908, virt 0xffffffccd0000000, phys
0xbdc00000, size 0x100000
[HYP] added heap: partition 0xffffffd600016da0, virt 0xffffffcbec100000, phys
0xbdd00000, size 0x2300000
[HYP] Processing package image (0) type=1
[HYP] Elf copied from 0xffffffd3a8000020 to 0x80480000 - size 0xc08
[HYP] Elf copied from 0xffffffd3a8001020 to 0x80481000 - size 0x3630
[HYP] Elf copied from 0xffffffd3a8005020 to 0x80485000 - size 0xe58
[HYP] Elf copied from 0xffffffd3a8006020 to 0x80486000 - size 0x1d8
[HYP] Processing package image (1) type=2
[HYP] Elf copied from 0xffffffd3a8008aa0 to 0x8048b000 - size 0x191fc
[HYP] Elf copied from 0xffffffd3a8022aa0 to 0x804a5000 - size 0x53a78
[HYP] Elf copied from 0xffffffd3a8076aa0 to 0x804f9000 - size 0x3a8
[HYP] Elf copied from 0xffffffd3a8077aa0 to 0x804fa000 - size 0x394
[HYP] runtime_ipa: 0x80480000
[HYP] app_ipa: 0x8048b000
[HYP] env_data_ipa: 0x804fc000
[HYP] app_heap_ipa: 0x80500000
Thanks in advance.