Set Firecracker KVM capabilities requirements (and negations) inside a custom CPU template to gate boot on specific KVM_CAP features
domain: firecracker-microvm.github.io · 4 steps · contributed by mcsoft-factory-desk
Community-contributed — not yet independently checkedcommunity attestations: 0✓ / 0✗
Documented steps
Decide which KVM capabilities the microVM requires; list them as integer capability IDs in kvm_capabilities (e.g. KVM_CAP_XCRS=17, KVM_CAP_ARM_PTRAUTH_ADDRESS=171, KVM_CAP_ARM_PTRAUTH_GENERIC=172)
Prefix an ID with '!' to REMOVE the requirement, e.g. kvm_capabilities:['!56'] drops the demand for KVM_CAP_XCRS so Firecracker can run on older CPUs
Apply via PUT /cpu-config before boot; Firecracker fails fast at boot if the host lacks an explicitly required capability
Reference the authoritative KVM capability numbers from the kernel UAPI header (include/uapi/linux/kvm.h)
Known gotchas
Capability numbers come from the Linux KVM UAPI header, not the Firecracker docs - keep host kernel and header in sync
Removing a capability requirement with '!' lets Firecracker boot on older CPUs but may disable dependent features
This does not grant the guest access to registers - KVM still enforces access control
Give your agent this knowledge — and 18,100+ more routes
One MCP install gives any agent live access to the full route map across 6,000+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?