mirror of https://github.com/acidanthera/audk.git
68 lines
2.2 KiB
Plaintext
68 lines
2.2 KiB
Plaintext
|
|
CloudHv is a port of OVMF for the Cloud Hypervisor project.
|
|
|
|
The Cloud Hypervisor project
|
|
----------------------------
|
|
|
|
Cloud Hypervisor is a Virtual Machine Monitor that runs on top of KVM. The
|
|
project focuses on exclusively running modern, cloud workloads, on top of a
|
|
limited set of hardware architectures and platforms. Cloud workloads refers to
|
|
those that are usually run by customers inside a cloud provider. This means
|
|
modern operating systems with most I/O handled by paravirtualised devices
|
|
(i.e. virtio), no requirement for legacy devices, and 64-bit CPUs.
|
|
|
|
https://github.com/cloud-hypervisor/cloud-hypervisor
|
|
|
|
Design
|
|
------
|
|
|
|
Based on Cloud Hypervisor's motto to reduce the emulation as much as possible,
|
|
the project logically decided to support the PVH boot specification as the only
|
|
way of booting virtual machines. That includes both direct kernel boot and OVMF
|
|
firmware which must be generated as PVH ELF binaries.
|
|
PVH allows information like location of ACPI tables and location of guest RAM
|
|
ranges to be shared without the need of an extra emulated device like a CMOS.
|
|
|
|
Features
|
|
--------
|
|
|
|
* Serial console
|
|
* EFI shell
|
|
* virtio-pci
|
|
|
|
Build
|
|
-----
|
|
|
|
The way to build the CloudHv target is as follows:
|
|
|
|
OvmfPkg/build.sh -p OvmfPkg/CloudHv/CloudHvX64.dsc -a X64 -b DEBUG
|
|
|
|
Usage
|
|
-----
|
|
|
|
Assuming Cloud Hypervisor is already built, one can start a virtual machine as
|
|
follows:
|
|
|
|
./cloud-hypervisor \
|
|
--cpus boot=1 \
|
|
--memory size=1G \
|
|
--kernel Build/CloudHvX64/DEBUG_GCC5/FV/CLOUDHV.fd \
|
|
--disk path=/path/to/disk.raw
|
|
|
|
Releases
|
|
--------
|
|
|
|
In edk2-stable202202, CloudHv is generated as data-only binary.
|
|
Starting with edk2-stable202205, CloudHv is generated as a PVH ELF binary to
|
|
reduce the amount of emulation needed from Cloud Hypervisor.
|
|
For TDX, things are handled differently and PVH is not used, which is why the
|
|
firmware is always generated as a data-only binary.
|
|
|
|
+-------------------+----------------+
|
|
| | CloudHv |
|
|
+-------------------+----------------+
|
|
| edk2-stable202202 | Data binary |
|
|
+-------------------+----------------+
|
|
| edk2-stable202205 | PVH ELF binary |
|
|
+-------------------+----------------+
|