3. Agenda
▹What need to know up front: scenario in mind/Doc/HW
▹Walking Through Getting Started Guide (GSG)
▹ACRN Configuration and Toolset Introduction
5/28/2021 ACRN Installation and Configuration Introduction 3
4. Agenda
▹What need to know up front: scenario in mind/Doc/HW
▹Walking Through Getting Started Guide (GSG)
▹ACRN Configuration and Toolset Introduction
5/28/2021 ACRN Installation and Configuration Introduction 4
5. What need to know up front
5/28/2021 ACRN Installation and Configuration Introduction 5
▹What’s the scenario in your mind:
▹ 1. How many VMs? Do you need a RT VM? Do you need a static partition VM? What OS is for
each VM?
▹ 2. What is the device/resource allocation for each VM? Graphics? Network? Disk? CPU core?
▹ 3. What feature/workload you want run in VM?
▹Technical Documentation
▹ projectacrn.github.io
▹Basic concept in ACRN
▹ Terminology: Service VM/User VM, Pre-launched VM/Post-launched VM
▹ Static/Runtime configuration in ACRN.
▹Getting Started Guide (GSG):
▹ ACRN’s “Hello World” - Getting Started Guide for ACRN Industry Scenario With Ubuntu Service
VM
6. 5/28/2021 ACRN Installation and Configuration Introduction 6
ACRN Docs Site
• Latest ACRN technical documentation
7. Agenda
▹What need to know up front: scenario in mind/Doc/HW
▹Walking Through Getting Started Guide (GSG)
▹ACRN Configuration and Toolset Introduction
5/28/2021 ACRN Installation and Configuration Introduction 7
8. Walking Through GSG - 1
5/28/2021 ACRN Installation and Configuration Introduction 8
▹The target for GSG
▹ Specific HW: Maxtang Intel WHL-U i7-8665U -> TGL NUC
▹ Service VM (Ubuntu) + User VM (Ubuntu + RTVM) + User VM (Windows for HMI)
▹Prerequisites
▹ Peripheral's requirement: Ubuntu bootable USB disk/HDMI Monitors/USB keyboard and
mouse/ethernet cables/ SATA and NVME disk
▹ UART port for debug purpose
▹ Dependency: Ubuntu image, Grub, IASL tools, RTVM image, windows image
▹ BIOS setting: VMX/VT-d, secure boot disabled
▹ ACRN / ACRN-kernel Source code and build env preparation
10. Walking Through GSG - 2
5/28/2021 ACRN Installation and Configuration Introduction 10
▹Major Steps
▹ 1. Hardware connection
▹ 2. Install the Ubuntu User VM (RTVM) on the SATA Disk
▹ 3. Install the Ubuntu Service VM on the NVMe Disk
▹ 4. Build and Install ACRN on Ubuntu
▹ 5. Launch the RTVM
▹ 6. Launch the Windows VM -> Launch Windows as the Guest VM on ACRN
▹Moving forward -> configuration toolset helps
▹ Porting ACRN into new HW
▹ Customized configuration: static partition VM(pre-launched VM),
▹ More features: inter-VM communication, S5, libvirt …
11. Agenda
▹What need to know up front: scenario in mind/Doc/HW
▹Walking Through Getting Started Guide (GSG)
▹ACRN Configuration and Toolset Introduction
▹ Configuration Toolset Overview
▹ Configuration Hierarchy
▹ Configuration Toolset Arch
▹ Configuration Toolset Workflow
5/28/2021 ACRN Installation and Configuration Introduction 11
12. Configuration toolset Overview
Offline Tools
Configuration and Tools
User
1. ACRN Advanced User with basic
ACRN knowledge
2. With scalability and customized
request beyond ACRN default
setting
3. Do not want to modify directly
on C source code
Scenario
1. Run ACRN on HW with different HW
resource, eg. CPU memory, hard disk
2. Run ACRN on different mode:
hybrid, sharing and partition mode
for RT or Safety requirements
3. Run ACRN with different Service VM
OS and User VM OS.
4. Different feature usage requirement,
eg: CPU sharing
Demand
1. Porting ACRN on user’s new HW
platform in ACRN supported
scope.
2. Apply ACRN in user’s
customized scenario and
application.
Advantage/Target
1. Easy to use with basic/advanced
user interface via UI or XML.
2. Clear function definition for
overall function and sub
function
3. Document as supplement
4. Decouple with Hypervisor
source code
Generated .c/.h
Source code for compile
Boot time
configuration files
(VM launch script)
Board inspector
Configuration editor
XMLParser tool
Doc: Configuration
Toolset manual
Pf-checker tool
Board Information
User Scenario
Requirements
Input Output
Packaging tool(Debian)
ACPI Generator Tool
Doc: Configuration
data spec
13. Configuration Hierarchy
5/28/2021 ACRN Installation and Configuration Introduction 13
HHV
Board info: HW/BIOS
HV parse from ACPI info:
DMAR, Cx, Px, reset
HV Max numbers:
emulated MMIO regions,
IOAPICs,Interrupt,PCI device
Mem_size(max)
Max pcpu number
HV feature switch:
CPU sharing- scheduler
RDT/CAT
Relocatable
Serial_IO_type
Debug:
Release/debug
Log level
Log stack
HV configuration
HHV
Pre-launched VM/SOS
Ve820 memory layout
VM memory(SOS/prelaunch VM)
VM PCI device setting
Post-launch VM
Basic: VM name/uuid/vCPU/Memory/Guest OS type
Feature: Guest VM Flag/Severity/VM clos id
Device: VM UART config/PT device/Virtio device
Others: EPC section/MAX KATA VM num
Global VM configuration:
Scenario/Max VM number/max UOS ram size
VM configuration
System configuration/E2E configuration (BKM)
DM configuration
Kernel/bootargs
virtual bootloader
Diff info for different VM:
Rootdevice
Guest Bootargs
Customized RDT resource
Pass through device
Dependency flow
-------------------------------------
Native HW info:
ACPI Info
CPU Number
P/C state table
Native RDT resource info
DMAR info
Diff info for HV:
HV start address
Debug serial settings
Basic:
Board Name
Scenario Name
14. HW/BIOS info User Customization
Board XML Scenario HV/VM XML
(Pre-launched VM and SOS)
DM XML
(Post-launched VM)
Make (Sanity Check)
Board inspector
board_cfg_gen.py scenario_cfg_gen.py
Configuration Tool
launch_cfg_gen.py
Per-board configuration
Board-scenario configuration
.config Vm_configuration.c
Vm_configuration.h
Sample Launch script Or
HW/HV info for DM
ACRN Binary
Configuration editor
hv_cfg_gen.py
Need added
Output
Sanity check
BIOS/HW
support ACRN Sanity check
XMLParser
Manual Edit XML
Platform check tool
Generate
board XML
Configuration data Spec
Configuration Toolset Arch
Data Schema
Generated
code Schema
16. Summary
▹Use Getting Started Guide (GSG) as Starting point
▹Use ACRN configuration tool for customized configuration
▹Next session: How to use configuration Toolset to enable ACRN
on new platform
5/28/2021 ACRN Installation and Configuration Introduction 16