Project ACRN™
2.7
Project ACRN
v: 2.7
Document Versions
latest
2.6
2.5
2.4
2.3
2.2
2.1
2.0
1.6.1
1.6
1.5
1.4
1.0
projectacrn.org links
Project Home
Wiki
Documentation Home
What Is ACRN
Introduction
Licensing
Key Capabilities
Background
High-Level Architecture
ACRN Device Model Architecture
Device Passthrough
Hardware Support for Device Passthrough
Hypervisor Support for Device Passthrough
Static Configuration Based on Scenarios
Predefined Sample Scenarios
Boot Sequence
Learn More
Getting Started
Supported Hardware
Selecting Hardware
Configuration and Development Overview
Development Environment
General Process for Building an ACRN Hypervisor
Step 1: Select Hardware and Scenario
Select Your Hardware
Select Your Scenario
Step 2: Prepare the Development Computer
Step 3: Generate a Board Configuration File
Configure BIOS Settings
Use the Board Inspector to Generate a Board Configuration File
Step 4: Generate a Scenario Configuration File and Launch Scripts
Generate a Scenario Configuration File
Generate Launch Scripts
Step 5: Build ACRN
Step 6: Install and Run ACRN
Learn More
Getting Started Guide
Prerequisites
Set Up the Hardware
Prepare the Development Computer
Prepare the Target and Generate a Board Configuration File
Install OS on the Target
Configure Target BIOS Settings
Generate a Board Configuration File
Generate a Scenario Configuration File and Launch Scripts
Build ACRN
Install ACRN
Run ACRN and the Service VM
Launch the User VM
Next Steps
Advanced Guides
Advanced Scenario Tutorials
Getting Started Guide for ACRN Hybrid Mode
Set-up base installation
Prepare the Zephyr image
Set-up ACRN on your device
Update Ubuntu GRUB
Hybrid Scenario Startup Check
Getting Started Guide for ACRN Partitioned Mode
Validated Versions
Prerequisites
Update Kernel Image and Modules of Pre-Launched VM
Update ACRN Hypervisor Image
Update Ubuntu GRUB to Boot Hypervisor and Load Kernel Image
Partitioned Scenario Startup Check
Service VM Tutorials
Run Debian as the Service VM
Prerequisites
Validated Versions
Install ACRN on the Debian VM
Enable Network Sharing to Give Network Access to the User VM
Using Yocto Project With ACRN
The meta-acrn Layer
User VM Tutorials
Launch Windows as the Guest VM on ACRN
ACRN Service VM Setup
Setup for Using Windows as the Guest VM
ACRN Windows Verified Feature List
Explanation for acrn-dm Popular Command Lines
Secure Boot Enabling
Activate Windows 10
Run Ubuntu as the User VM
Prerequisites
Build the Ubuntu KVM Image
Launch the Ubuntu Image as the User VM
Enable the Ubuntu Console Instead of the User Interface
Run Debian as the User VM
Prerequisites
Build the Debian KVM Image
Launch the Debian Image as the User VM
Enable the ttyS0 Console on the Debian VM
Run Xenomai as the User VM OS (Real-Time VM)
Build the Xenomai Kernel
Launch the RTVM
Install the Xenomai Libraries and Tools
Run VxWorks as the User VM
Steps for Using VxWorks as User VM
Run Zephyr as the User VM
Introduction to Zephyr
Steps for Using Zephyr as User VM
Configuration Tutorials
Introduction to ACRN Configuration
Types of Configurations
Using ACRN Configuration Toolset
ACRN Configuration Data
Board Inspector Tool
About the Board Inspector Tool
Generate a Board Configuration File
Command-Line Options
ACRN Configurator Tool
About the ACRN Configurator Tool
Generate a Scenario Configuration File and Launch Scripts
Scenario Configuration Options
Common Option Value Types
hv
vm
Launch Configuration Options
Hypervisor Makefile Options
Build Options and Targets
Makefile Targets for Configuration
ACRN Hypervisor Parameters
Generic Hypervisor Parameters
ACRN Kernel Parameters
Generic Kernel Parameters
Device Model Parameters
Emulated PCI Device Types
ACRN Installation via Debian Packages
Set Up Prerequisites
Configure Debian Packaging Details
Run the Package-Building Script
Prepare Your Target System With Ubuntu 18.04
Install Debian Packages on Your Target System
Boot ACRN Using the Multiboot2 Grub Choice
Verify ACRN Is Running
Advanced Features
Enable SGX Virtualization
High-Level ACRN SGX Virtualization Design
Enable SGX Support for Guest
SGX Capability Exposure
Enclave System Function Handling
Other VMExit Control
Future Development
Enable Nested Virtualization
High-Level ACRN Nested Virtualization Design
Restrictions and Constraints
Service VM Configuration
Prepare for Service VM Kernel and rootfs
Launch a Nested Guest VM
Enable vUART Configurations
Introduction
Console Enable List
How to Configure a Console Port
How to Configure a Communication Port
Communication vUART Enable List
Launch Script
Test the Communication Port
vUART Design
COM Port Configurations for Post-Launched VMs
Use PCI-vUART
PCI Interface of ACRN vUART
Index of vUART
Setup ACRN vUART Using Configuration Tools
Kernel Config for Legacy vUART
Kernel Cmdline for PCI-vUART Console
Enable RDT Configuration
RDT Detection and Resource Capabilities
Tuning RDT Resources in HV Debug Shell
Configure RDT for VM Using VM Configuration
Enable vCAT Configuration
Enable Secure Boot in Windows
Generate Platform Key (PK)
Download KEK and DB From Microsoft
Compile OVMF With Secure Boot Support
Use QEMU to Inject Secure Boot Keys Into OVMF
Enable S5 in ACRN
Introduction
S5 Architecture
Enable S5
How to Test
System Shutdown
Enable CPU Sharing in ACRN
Introduction
Scheduling Framework
CPU Affinity
Thread Object State
Scheduler
Example
Enable SR-IOV Virtualization
SR-IOV Architectural Overview
Enable GVT-d in ACRN
Introduction
Verified Version
Prerequisites
Supported Hardware Platform
BIOS Settings
Passthrough the GPU to Guest
Enable the GVT-d GOP Driver
Run Kata Containers on a Service VM
Prerequisites
Install Docker
Install Kata Containers
Run a Kata Container With ACRN
Trusty and Security Services Reference
Trusty Architecture
Trusty Services
Trusty in ACRN
Real-Time VM Application Design Guidelines
Run RTVM With Dedicated Resources/Devices
RTVM With Virtio PMD (Polling Mode Driver) for I/O Sharing
RTVM With HV Emulated Device
DM Emulated Device (Except PMD)
Configure ACRN Using OpenStack and Libvirt
Introduction
Install ACRN
Set Up and Launch LXC/LXD
Set Up ACRN Prerequisites Inside the Container
Set Up Libvirt
Set Up OpenStack
Configure and Create OpenStack Instance
Final Steps
Enable ACRN Over QEMU/KVM
Prerequisites
Prepare Service VM (L1 Guest)
Install ACRN Hypervisor
Bring Up User VM (L2 Guest)
Using GRUB to Boot ACRN
Using Pre-Installed GRUB
Installing Self-Built GRUB
Enable ACRN Secure Boot With GRUB
ACRN Secure Boot Sequence
Generate GPG Key
Setup Standalone GRUB EFI Binary
Enable UEFI Secure Boot
Enable ACRN Secure Boot With EFI-Stub
Introduction
Verified Configurations
Building
Installing (without SB for testing)
Signing
Pre-Launched Preempt-RT Linux Mode in ACRN
Prerequisites
Example of Pre-Launched RT
Enable Inter-VM Communication Based on Ivshmem
Enable Ivshmem Support
Ivshmem DM-Land Usage
Ivshmem HV-Land Usage
Ivshmem Notification Mechanism
Inter-VM Communication Examples
Debug
Enable Serial Port on NUC
Option 1: Using the Serial Port on TGL Intel NUC
Option 2: Enabling PCIe Serial Port on TGL Intel NUC
ACRN Debugging Tools
ACRN Console Command
An Example
ACRN Log
ACRN Trace
ACRN Real-Time (RT) Performance Analysis
vmexit Analysis for ACRN RT Performance
Collecting Performance Monitoring Counters Data
ACRN Real-Time VM Performance Tips
Background
Mandatory Options for an RTVM
Avoid VM-exit Latency
Isolating the Impact of Neighbor VMs
Miscellaneous
ACRN Shell Commands
Command Examples
ACRN-Crashlog
Introduction
Building
Installing
Enabling/Disabling
Usage
Source Code
Acrnprobe
Description
Usage
Architecture
Source Files
Configuration Files
Acrnprobe Configuration
Description
Layout
Properties of Group Members
Crash Tree in Acrnprobe
Sections
Usercrash
Description
Design
Usage
Source Code
Acrnlog
Description
Usage
Build and Install
Acrntrace
Description
Usage
Build and Install
Acrnctl and Acrnd
Description
Acrnd
Build and Install
Developer Reference
Design Guides
ACRN Hypervisor: Modular Design
Overview
Principles
Architecture
References
High-Level Design Guides
Overview
Hypervisor
Device Model
Emulated Devices
Virtio Devices
Power Management
Tracing and Logging
Security
Software Design Guidelines
Error Detection and Error Handling
Module Level Configuration Design Guidelines
References
Trusty TEE
Introduction
Trusty Architecture
Trusty Specific Hypercalls
Trusty Boot Flow
EPT Hierarchy
L1 Terminal Fault Mitigation
Overview
L1TF Problem in ACRN
L1TF Mitigation in ACRN
Mitigation Recommendations
Mitigation Status
Contribute Guides
Contribution Guidelines
Technical Steering Committee (TSC)
Licensing
Developer Certification of Origin (DCO)
Prerequisites
Repository Layout
Submitting Issues
Contribution Tools and Git Setup
Coding Style
Contribution Workflow
Commit Guidelines
Coding Guidelines
C Programming Language Coding Guidelines
Assembly Language Coding Guidelines
Documentation Guidelines
Headings
Content Highlighting
Lists
Multi-Column Lists
Tables
File Names and Commands
Branch-Specific File Links
Internal Cross-Reference Linking
Non-ASCII Characters
Code and Command Examples
Images
Tabs, Spaces, and Indenting
Background Colors
Drawings
Alternative Tabbed Content
Instruction Steps
First Instruction Step
Second Instruction Step
Configuration Option Documentation
Documentation Generation
Drawings Using Graphviz
Simple Directed Graph
Adding Edge Labels
Tables
Finite-State Machine
ACRN Documentation Generation
Documentation Overview
Set Up the Documentation Working Folders
Install the Documentation Tools
Documentation Presentation Theme
Run the Documentation Processors
Publish Content
Document Versioning
Filter Expected Warnings
API Documentation
API Documentation
Hypercall APIs
Device Model APIs
Release Notes
ACRN v2.7 (Dec 2021)
What’s New in v2.7
Upgrading to v2.7 From Previous Releases
Generate New Board XML
Update Configuration Options
Document Updates
Fixed Issues Details
Known Issues
ACRN v2.6 (Sep 2021)
What’s New in v2.6
Upgrading to v2.6 From Previous Releases
Generate New Board XML
Add New Configuration Options
Document Updates
Fixed Issues Details
Known Issues
ACRN v2.5.1 (Aug 2021)
What’s New in v2.5.1
Fixed Issues Details
ACRN v2.5 (Jun 2021)
What’s New in v2.5
Upgrading to v2.5 From Previous Releases
Generate New Board XML
Add New Configuration Options
Document Updates
Fixed Issues Details
Known Issues
ACRN v2.4 (Apr 2021)
What’s New in v2.4
ACRN Configuration and Build
Upgrading to v2.4 From Previous Releases
Additional Dependencies
Configuration File Format
New Configuration Options
Build Commands
Patches on Generated Sources
Document Updates
Deprivileged Boot Mode Support
Fixed Issues Details
Known Issues
ACRN v2.3 (Dec 2020)
What’s New in v2.3
Document Updates
Fixed Issues Details
Known Issues
ACRN v2.2 (Sep 2020)
What’s New in v2.2
Document Updates
Fixed Issues Details
Known Issues
ACRN v2.1 (Aug 2020)
What’s New in v2.1
Fixed Issues Details
Known Issues
ACRN v2.0 (Jun 2020)
Version 2.0 Key Features (Comparing With v1.0)
ACRN Architecture Upgrade to Support Hybrid Mode
New Hardware Platform Support
Pre-Launched Safety VM Support
Post-Launched VM Support via OVMF
Post-Launched Real-Time VM Support
Real-Time VM Performance Optimizations
CPU Sharing Support
Large Selection of OSs for User VMs
GRUB Bootloader
SR-IOV Support
Graphics Passthrough Support
Shared Memory Based Inter-Vm Communication
Configuration Tool Support
Kata Containers Support
VM Orchestration
Document Updates
Fixed Issues Details
Known Issues
ACRN v1.6.1 (May 2020)
Version 1.6.1 Major Features
What’s New in v1.6.1
Document Updates
Fixed Issues Details
Known Issues
Change Log
ACRN v1.6 (Mar 2020)
Version 1.6 Major Features
What’s New in v1.6
Document Updates
New Features Details
Fixed Issues Details
Known Issues
Change Log
ACRN v1.5 (Jan 2020)
Version 1.5 Major Features
What’s New in v1.5
Document Updates
Fixed Issues Details
Known Issues
Change Log
ACRN v1.4 (Oct 2019)
Version 1.4 Major Features
What’s New in v1.4
Document Updates
Security Vulnerabilities
New Features Details
Fixed Issues Details
Known Issues
Change Log
ACRN v1.3 (Sep 2019)
Version 1.3 Major Features
What’s New in v1.3
Document Updates
New Features Details
Fixed Issues Details
Known Issues
Change Log
ACRN v1.2 (Aug 2019)
Version 1.2 Major Features
What’s New in v1.2
Document Updates
New Features Details
Fixed Issues Details
Known Issues
Change Log
ACRN v1.1 (Jun 2019)
Version 1.1 Major Features
Hybrid Mode Introduced
Support for New Guest Operating Systems
Document Updates
New Features Details
Fixed Issues Details
Known Issues
Change Log
ACRN v1.0.2 (Nov 2019)
Change Log in v1.0.2 Since v1.0.1
ACRN v1.0.1 (July 2019)
Change Log in Version 1.0.1 Since Version 1.0
ACRN v1.0 (May 2019)
Version 1.0 Major Features
Hardware Support
APL UP2 Board With SBL Firmware
Enable Post-Launched RTVM Support for Real-Time UOS in ACRN
Enable Cache QOS With CAT
Enable QoS Based on runC Container
S5 Support for RTVM
OVMF Support Initial Patches Merged in ACRN
Support ACPI Power Key Mediator
VT-x, VT-d
PIC/IOAPIC/MSI/MSI-X/PCI/LAPIC
Ethernet
Mass Storage
USB (xDCI)
USB Mediator (xHCI)
Wi-Fi
IPU (MIPI CSI-2, HDMI-In)
Bluetooth
GVT-g for ACRN
GPU - Preemption
GPU - Display Surface Sharing via Hyper DMA
Virtio Standard Is Supported
Device Pass-Through Support
GPIO Virtualization
New ACRN Tools
Document Updates
New Features Details
Fixed Issues Details
Known Issues
Change Log
ACRN v0.8 (Apr 2019)
Version 0.8 New Features
GPIO Virtualization
Enable QoS Based on runC Container
S5 Support for RTVM
Document Updates
New Features Details
Fixed Issues Details
Known Issues
Change Log
ACRN v0.7 (Mar 2019)
Version 0.7 New Features
Enable Cache QOS With CAT
Support ACPI Power Key Mediator
Document Updates
New Features Details
Fixed Issues Details
Known Issues
Change Log
ACRN v0.6 (Feb 2019)
Version 0.6 New Features
Fixed Issues
Known Issues
Change Log
ACRN v0.5 (Jan 2019)
Version 0.5 New Features
Fixed Issues
Known Issues
Change Log
ACRN v0.4 (Dec 2018)
Version 0.4 New Features
Fixed Issues
Known Issues
Change Log
ACRN v0.3 (Nov 2018)
Version 0.3 New Features
Fixed Issues
Known Issues
Change Log
ACRN v0.2 (Sep 2018)
Version 0.2 New Features
VT-x, VT-d
PIC/IOAPIC/MSI/MSI-X/PCI/LAPIC
Ethernet
Storage (eMMC)
USB (xDCI)
USB Mediator (xHCI and DRD)
CSME
WiFi
IPU (MIPI-CS2, HDMI-In)
Bluetooth
GPU - Preemption
GPU - Display Surface Sharing via Hyper DMA
S3
Fixed Issues
Known Issues
Change Log
ACRN v0.1 (July 2018)
Version 0.1 New Features
Hardware Support
GVT-g for ACRN
Virtio Standard Is Supported
Device Pass-Through Support
Hypervisor Configuration
New ACRN Tools
Known Issues
Change Log
Security Advisory
Addressed in ACRN v2.7
Addressed in ACRN v2.6
Addressed in ACRN v2.5
Addressed in ACRN v2.3
Addressed in ACRN v2.1
Addressed in ACRN v1.6.1
Addressed in ACRN v1.6
Addressed in ACRN v1.4
FAQ
What Hardware Does ACRN Support?
Glossary of Terms
Index
Project ACRN™
2.7
»
Search
Please activate JavaScript to enable the search functionality.