[Announce] ACRN Open Source Ver2.4 Release Notes
We are very pleased to announce Version 2.4 release of ACRN. You can see the release blog from https://projectacrn.org/blog/ and detailed Release Notes in website https://projectacrn.github.io/latest/release_notes/release_notes_2.4.html
What’s New in v2.4
Extensive work was done to redesign how ACRN configuration is handled, update the build process to use the new configuration system, and update the corresponding documentation. This is a significant change and improvement to how you configure ACRN but also impacts existing projects, as explained in the next section.
We’ve also validated the hybrid_rt scenario on the next generation of Intel® Core™ processors (codenamed Elkhart Lake) and enabled software SRAM and cache locking for real time performance on Elkhart Lake.
· ACRN Configuration and Build:
The following major changes on ACRN configuration and build process have been integrated into v2.4:
· Metadata of configuration entries, including documentation and attributes, has been removed from scenario XMLs.
· The C sources generated from board and scenario XMLs are no longer maintained in the repository. Instead they’ll be generated as part of the hypervisor build. Users can now find them under configs/ of the build directory.
· Kconfig is no longer used for configuration. Related build targets, such as defconfig, now apply to the configuration files in XML.
· The make command-line variables BOARD and BOARD_FILE have been unified. Users can now specify BOARD=xxx when invoking make with xxx being either a board name or a (relative or absolute) path to a board XML file. SCENARIO and SCENARIO_FILE have been unified in the same way.
For complete instructions to get started with the new build system, refer to Build ACRN From Source. For an introduction on the concepts and workflow of the new configuration mechanism, refer to Introduction to ACRN Configuration.
· Document Updates:
With the changes to ACRN configuration noted above, we made substantial updates to the ACRN documentation around configuration and options, as listed here:
Additional new or updated reference documents are also available, including:
Upgrading to v2.4 From Previous Releases
We highly recommended that you follow the instructions below to upgrade to v2.4 from previous ACRN releases.
· Additional Dependencies
Python version 3.6 or higher is required to build ACRN v2.4.
In addition, the following new tools and packages are needed to build ACRN v2.4:
$ sudo apt install libxml2-utils xsltproc
$ sudo pip3 install lxml xmlschema
· Configuration File Format
Starting with release v2.4, Kconfig is no longer used, and the contents of scenario XML files have been simplified. You need to upgrade your own Kconfig-format files or scenario XML files if you maintain any.
For Kconfig-format file, you must translate your configuration to a scenario XML file where all previous Kconfig configuration entries are also available. Refer to Scenario Configuration Options for the full list of settings available in scenario XML files.
· New Configuration Options
The following element is added to scenario XML files in v2.4:
· Build Commands
We recommend you update the usage of variables BOARD_FILE and SCENARIO_FILE, which are being deprecated, and RELEASE:
BOARD_FILE should be replaced with BOARD. You should not specify BOARD and BOARD_FILE at the same time.
Similarly, SCENARIO_FILE should be replaced with SCENARIO.
The value of RELEASE should be either y (previously was 1) or n (previously was 0).
BOARD_FILE and SCENARIO_FILE can still be used but will take effect only if BOARD and SCENARIO are not defined. They will be deprecated in a future release.
· Patches on Generated Sources
The C files generated from board and scenario XML files have been removed from the repository in v2.4. Instead they will be generated in the build output when building the hypervisor.
Typically you should be able to customize your scenario by modifying the scenario XML file rather than the generated files directly. But if that is not possible, you can still register one or more patches that will be applied to the generated files by following the instructions in Makefile Targets for Configuration.
Modifying generated files is not a recommended practice. If you find a configuration that is not flexible enough to meet your needs, please let us know by sending mail to the acrn-dev mailing list or submitting a GitHub issue.
Best & Regards