Skip to content

run-qemu.sh Freezes in WSL2/Docker-Desktop Setup #40

@DBernal-Developair

Description

@DBernal-Developair

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:

  1. Follow the Quick Start guide in gunyah-support-scripts/quickstart.md.
  2. Navigate to cd ~/share/gunyah (within the Docker container environment).
  3. Execute clone-gunyah.sh to clone the necessary repositories.
  4. Navigate to ~/share/gunyah (within the Docker container environment).
  5. Run build-gunyah.sh qemu.
  6. Navigate to ~/mnt/workspace.
  7. Run run-qemu.sh dtb.
  8. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions