Important

This is the latest documentation for the unstable development branch of Project ACRN (master).
Use the drop-down menu on the left to select documentation for a stable release such as v3.2 or v3.0.

ACRN v3.2 (Aug 2023)

We are pleased to announce the release of the Project ACRN hypervisor version 3.2.

ACRN is a flexible, lightweight reference hypervisor that is built with real-time and safety-criticality in mind. It is optimized to streamline embedded development through an open-source platform. See the What Is ACRN introduction for more information.

All project ACRN source code is maintained in the https://github.com/projectacrn/acrn-hypervisor repository and includes folders for the ACRN hypervisor, the ACRN device model, tools, and documentation. You can download this source code either as a zip or tar.gz file (see the ACRN v3.2 GitHub release page) or use Git clone and checkout commands:

git clone https://github.com/projectacrn/acrn-hypervisor
cd acrn-hypervisor
git checkout v3.2

The project’s online technical documentation is also tagged to correspond with a specific release: generated v3.2 documents can be found at https://projectacrn.github.io/3.2/. Documentation for the latest development branch is found at https://projectacrn.github.io/latest/.

ACRN v3.2 requires Ubuntu 22.04. Follow the instructions in the Getting Started Guide to get started with ACRN.

What’s New in v3.2

Enabling New Generation Intel® Processors

ACRN v3.2 release now supports 12th Generation Intel® Atom N-Series Processors (formerly code named Alder Lake N) and 13th Generation Intel® Core™ Mobile and Desktop Processors (formerly code named Raptor Lake) with real-time SKUs.

Hypervisor-Managed Processor Performance Policy Controls

The ACRN hypervisor Configurator now provides processor performance policy control for CPU frequency if the system supports hardware-controlled performance states (HWP). This ensures that loaded CPUs can run at least at their guaranteed frequency level.

New Debianization Solution for ACRN

The v3.2 release provides a standardized approach for ACRN debianization. We provide an option to build each component as a separate Debian package and allow users to select the binary to deploy at package installation time. Users can also reselect the binary by reconfiguring the installed package.

Service VM Upgraded to use Ubuntu 22.04

The v3.2 release upgrades the Service VM OS from Ubuntu 20.04 to 22.04.

Upgrading to v3.2 from Previous Releases

We recommend you generate a new board XML for your target system with the v3.2 Board Inspector. You should also use the v3.2 Configurator to generate a new scenario XML file and launch scripts. Scenario XML files and launch scripts created by previous ACRN versions will not work with the v3.2 ACRN hypervisor build process and could produce unexpected errors during the build.

Given the scope of changes for the v3.2 release, we have recommendations for how to upgrade from prior ACRN versions:

  1. Start fresh from our Getting Started Guide. This is the best way to ensure you have a v3.2-ready board XML file from your target system and generate a new scenario XML and launch scripts from the new ACRN Configurator that are consistent and will work for the v3.2 build system.

  2. Use the upgrader tool to attempt upgrading your configuration files that worked with prior releases. You’ll need the matched pair of scenario XML and launch XML files from a prior configuration, and use them to create a new merged scenario XML file. See Upgrading ACRN Configurations to Recent Releases for details.

  3. Manually edit your previous older scenario XML and launch XML files to make them compatible with v3.2. This is not our recommended approach.

Here are some additional details about upgrading to the v3.2 release.

Generate New Board XML

Board XML files, generated by ACRN Board Inspector, contain board information that is essential for building the ACRN hypervisor and setting up User VMs. Compared to previous versions, ACRN v3.2 adds the following information to the board XML file for supporting new features and fixes:

  • Add CPU frequency information. (See #8174)

  • Get connected displays and add them as child nodes to a corresponding graphics card. (See #8230)

  • Add bdf information to an ioport serial controller. (See #8237)

  • Stop running and report an error if VMD is enabled in the BIOS setting. (See #8328)

  • Report an error if a USB device is unplugged or disconnected while extracting USB device information. (See #8326)

  • Handle PCI functions with an undefined header layout. (See #8233)

See the Board Inspector Tool documentation for a complete list of steps to install and run the tool.

Update Configuration Options

As explained in this Upgrading ACRN Configurations to Recent Releases document, we do provide a tool that can assist upgrading your existing pre-v3.2 scenario XML files in the new merged v3.2 format. From there, you can use the v3.2 ACRN Configurator UI to open the upgraded scenario file for viewing and further editing if the upgrader tool lost meaningful data during the conversion.

The ACRN Configurator adds the following features and fixes to improve the user experience:

  • Support virtio GPU configuration. (See #8248)

  • Determine SSRAM_ENABLED value automatically. (See #8232)

  • Add “CPU performance policy type” option. (See #8174)

  • Add “exclusively owns physical CPUs” checkbox to pre-launched and post-launched VMs. (See #8290)

  • Generate config_summary.rst when saving scenario XML and launch scripts. (See #8309)

See the Scenario Configuration Options documentation for details about all the available configuration options in the new Configurator.

Document Updates

Here are some of the more significant documentation updates from the v3.1 release:

Fixed Issues Details

  • #8435 - Post-launch RTVM and WaaG running simultaneously will cause Windows kernel crash

  • #8445 - Fix security vulnerability for configurator dependent library

  • #8454 - Fail to boot RTVM or UaaG when passthru Ethernet controller

  • #8448 - The script in Sample Application Guide is not working

  • #8352 - Sample app fails to build for v3.2 RC1

  • #8439 - Possible null pointer dereference/uninitialized variable/buffer overflow in code

  • #8435 - Post-launch RTVM and WaaG running simultaneously will cause Windows kernel crash

  • #8432 - Flickering screen when passing ADL-N and RPL-P platforms

  • #8413 - hypervisor: ‘vm_config’ may be used uninitialized [-Werror=maybe-uninitialized]

  • #8382 - Failed to build with gcc 12

  • #8422 - Failed to generate config summary and launch scripts if CAT is enabled in configurator

  • #8395 - Configurator load fails because it needs to download RstCloth packages.

  • #8380 - Cannot generate XML file for target system

  • #8388 - Fail to generate board XML because of non-ASCII characters

  • #8385 - Failed to generate config_summary.rst when board.xml has “module” node under the “processors/die”

  • #8359 - GSG: change the method of checking kernel version of grub menuentry

  • #8246 - Debianization improvement

  • #8344 - debian/debian_build.sh fails when a work folder contains files other than XML

  • #8111 - Sync between Service VM OS and RTVM failed when startup hence life_mngr cannot work

  • #8315 - Invoking a command with partial executable path in Board Inspector Python file

  • #8274 - Wrong kernel cmdline added in grub menu when install acrn-hypervisor

Known Issues

  • #6631 - Kata support is broken since v2.7

  • #6978 - openstack failed since ACRN v2.7

  • #7827 - Pre_launched standard VMs cannot share CPU with Service VM in configurator

  • #8202 - HV fail to boot acrn on QEMU

  • #8471 - PTM enabling failure on i225 NIC

  • #8472 - Failed to clear memory for post-launched standard VM

  • #8473 - Missing VirtIO GPU Windows VF driver