lima-vm/lima · error

field `tpm` is not supported in krunkit driver

Error message

field `tpm` is not supported in krunkit driver

What it means

Returned when the instance YAML enables the TPM device, which the krunkit driver does not support.

Source

Thrown at pkg/driver/krunkit/krunkit_driver_darwin_arm64.go:239

		return errors.New("krunkit driver requires macOS 13 or higher to run")
	}
	if cfg.Arch != nil && !limatype.IsNativeArch(*cfg.Arch) {
		return fmt.Errorf("unsupported arch: %#q (krunkit requires native arch)", *cfg.Arch)
	}
	if _, err := exec.LookPath(vmType); err != nil {
		return errors.New("krunkit CLI not found in PATH. Install it via:\nbrew tap slp/krun\nbrew install krunkit")
	}
	// Also check if krunkit version >= 1.2.1 because of the vsock forwarder feature
	if err := checkKrunkitVersion(); err != nil {
		return err
	}

	if cfg.MountType != nil && (*cfg.MountType != limatype.VIRTIOFS && *cfg.MountType != limatype.REVSSHFS) {
		return fmt.Errorf("field `mountType` must be %#q or %#q for krunkit driver, got %#q", limatype.VIRTIOFS, limatype.REVSSHFS, *cfg.MountType)
	}

	if cfg.TPM != nil && *cfg.TPM {
		return errors.New("field `tpm` is not supported in krunkit driver")
	}

	if cfg.NestedVirtualization != nil && *cfg.NestedVirtualization {
		if macOSProductVersion.LessThan(*semver.New("15.0.0")) {
			return errors.New("nested virtualization requires macOS 15 or newer")
		}
	}

	if cfg.OS != nil && *cfg.OS == limatype.WINDOWS {
		return errors.New("currently Windows guest OS is only supported on QEMU")
	}

	return nil
}

func isFedoraConfigured(cfg *limatype.LimaYAML) bool {
	for _, b := range cfg.Base {
		if strings.Contains(strings.ToLower(b.URL), "fedora") {

View on GitHub (pinned to dd909d0973)

Solutions

  1. Disable the `tpm` field in the instance config
  2. Switch to the QEMU driver if TPM is required

Example fix

// before (lima.yaml)
tp: true
// after
tp: false
Defensive patterns

Strategy: validation

Validate before calling

if cfg["tpm"] == true && cfg["vmType"] == "krunkit" {
    return errors.New("tpm is unsupported on krunkit; use vmType vz")
}

Prevention

When it happens

Trigger: Setting `tpm: true` in lima.yaml while vmType is krunkit, then validating or starting the instance.

Common situations: Configs written for the vz driver (which supports TPM) reused with krunkit; enabling TPM for Windows guests that krunkit cannot host anyway.

Related errors


AI-assisted analysis of lima-vm/lima@dd909d0973 (2026-09-01). Data as JSON: /api/errors/a922ea8037de2324. Report an issue: GitHub.