Introduction
Getting Started
1.
OpenVMM
1.1.
Running OpenVMM
1.2.
Troubleshooting
1.3.
Next Steps
2.
OpenHCL
2.1.
Running OpenHCL
2.1.1.
On Windows - Hyper-V
2.1.2.
On Windows - OpenVMM
2.1.3.
On Linux
2.2.
Troubleshooting
2.3.
Next Steps
Developer Guide
3.
Getting Started
3.1.
On Linux / WSL2
3.2.
On Windows
3.3.
Building OpenVMM
3.4.
Building OpenHCL
3.4.1.
Building a Custom Kernel
3.5.
Suggested Dev Environment
4.
Testing
4.1.
Unit Tests
4.2.
VMM Tests
4.2.1.
Azure-hosted Test Images
4.3.
Fuzzing
4.3.1.
Running Fuzzers
4.3.2.
Writing Fuzzers
5.
Developer Tools / Utilities
5.1.
cargo xtask
5.2.
cargo xflowey
5.3.
VmgsTool
5.4.
update-rootfs.py
5.5.
igvmfilegen
5.6.
guest_test_uefi
6.
Contributing
6.1.
Coding Conventions
6.2.
Submitting Changes
6.3.
Guide Updates
Reference
7.
OpenVMM Features
7.1.
Configuration and Management
7.1.1.
CLI
7.1.2.
Interactive Console
7.1.3.
gRPC / ttrpc
7.2.
Graphical Console
7.3.
Logging
8.
OpenHCL Features
8.1.
Dynamic Configuration
8.2.
Diagnostics
8.2.1.
Preface: CVM restrictions
8.2.2.
Intro to ohcldiag-dev
8.2.3.
Network packet capture (PCAP)
8.2.4.
Performance analysis
8.2.5.
Tracing
9.
Developer Features
9.1.
Hardware Debugging (gdbstub)
9.2.
Kernel Debugging (KDNET)
10.
Devices
10.1.
Firmware
10.1.1.
UEFI: mu_msvm
10.1.2.
BIOS: Hyper-V PCAT BIOS
10.1.3.
Linux Direct
10.2.
Virtio
10.2.1.
virtio-fs
10.2.2.
virtio-9p
10.2.3.
virtio-serial
10.2.4.
virtio-net
10.2.5.
virtio-pmem
10.3.
VMBus
10.3.1.
storvsp
10.3.2.
netvsp
10.3.3.
vpci
10.3.4.
serial
10.3.5.
framebuffer
10.3.6.
input
10.4.
Emulated
10.4.1.
vTPM
10.4.2.
NVMe
10.4.3.
Serial
10.4.4.
Legacy x86
10.4.4.1.
i440BX + PIIX4 chipset
10.4.4.2.
IDE HDD/Optical
10.4.4.3.
Floppy
10.4.4.4.
PCI
10.4.4.5.
VGA
10.5.
Direct Assigned
11.
Device Backends
11.1.
Serial
11.2.
Graphics and Input
11.3.
Storage
11.4.
Networking
12.
Architecture
12.1.
OpenVMM Architecture
12.1.1.
mesh
12.1.2.
inspect
12.2.
OpenHCL Architecture
OpenVMM Rust Crate API Docs
Light
Rust
Coal
Navy
Ayu
The OpenVMM Guide
Diagnostics
This chapter discusses several of the diagnostic tools available when working with OpenHCL.