]>
Commit | Line | Data |
---|---|---|
b83d0a64 SB |
1 | \r |
2 | CloudHv is a port of OVMF for the Cloud Hypervisor project.\r | |
3 | \r | |
4 | The Cloud Hypervisor project\r | |
5 | ----------------------------\r | |
6 | \r | |
7 | Cloud Hypervisor is a Virtual Machine Monitor that runs on top of KVM. The\r | |
8 | project focuses on exclusively running modern, cloud workloads, on top of a\r | |
9 | limited set of hardware architectures and platforms. Cloud workloads refers to\r | |
10 | those that are usually run by customers inside a cloud provider. This means\r | |
11 | modern operating systems with most I/O handled by paravirtualised devices\r | |
12 | (i.e. virtio), no requirement for legacy devices, and 64-bit CPUs.\r | |
13 | \r | |
14 | https://github.com/cloud-hypervisor/cloud-hypervisor\r | |
15 | \r | |
16 | Design\r | |
17 | ------\r | |
18 | \r | |
19 | Based on Cloud Hypervisor's motto to reduce the emulation as much as possible,\r | |
20 | the project logically decided to support the PVH boot specification as the only\r | |
21 | way of booting virtual machines. That includes both direct kernel boot and OVMF\r | |
22 | firmware which must be generated as PVH ELF binaries.\r | |
23 | PVH allows information like location of ACPI tables and location of guest RAM\r | |
24 | ranges to be shared without the need of an extra emulated device like a CMOS.\r | |
25 | \r | |
26 | Features\r | |
27 | --------\r | |
28 | \r | |
29 | * Serial console\r | |
30 | * EFI shell\r | |
31 | * virtio-pci\r | |
32 | \r | |
33 | Build\r | |
34 | -----\r | |
35 | \r | |
36 | The way to build the CloudHv target is as follows:\r | |
37 | \r | |
38 | OvmfPkg/build.sh -p OvmfPkg/CloudHv/CloudHvX64.dsc -a X64 -b DEBUG\r | |
39 | \r | |
40 | Usage\r | |
41 | -----\r | |
42 | \r | |
43 | Assuming Cloud Hypervisor is already built, one can start a virtual machine as\r | |
44 | follows:\r | |
45 | \r | |
46 | ./cloud-hypervisor \\r | |
47 | --cpus boot=1 \\r | |
48 | --memory size=1G \\r | |
49 | --kernel Build/CloudHvX64/DEBUG_GCC5/FV/CLOUDHV.fd \\r | |
50 | --disk path=/path/to/disk.raw\r | |
51 | \r | |
52 | Releases\r | |
53 | --------\r | |
54 | \r | |
55 | In edk2-stable202202, CloudHv is generated as data-only binary.\r | |
56 | Starting with edk2-stable202205, CloudHv is generated as a PVH ELF binary to\r | |
57 | reduce the amount of emulation needed from Cloud Hypervisor.\r | |
58 | For TDX, things are handled differently and PVH is not used, which is why the\r | |
59 | firmware is always generated as a data-only binary.\r | |
60 | \r | |
61 | +-------------------+----------------+\r | |
62 | | | CloudHv |\r | |
63 | +-------------------+----------------+\r | |
64 | | edk2-stable202202 | Data binary |\r | |
65 | +-------------------+----------------+\r | |
66 | | edk2-stable202205 | PVH ELF binary |\r | |
67 | +-------------------+----------------+\r |