Skip to content

M1 Support

Christophe Fergeau edited this page Jun 20, 2022 · 4 revisions

M1 support has been available since CRC 2.4.1. It is limited to podman bundles because of page size incompatibilities between the M1 virtualization hardware and RHEL kernel.

Technical details

M1 support uses vfkit which is a small binary wrapper which maps command line arguments to the API provided by the macOS virtualization framework. It does this using the go bindings provided by https://github.com/Code-Hex/vz The main reason for needing this separate vfkit binary is that when creating VMs with macOS virtualization framework, their lifetime is tied to the process which created them. This is why we need a separate process which will stay alive as long as the VM is needed.

There is no separate machine driver for vfkit, it's integrated directly in crc codebase, similarly to what is done for hyperv.