Update per comments

Signed-off-by: Amy Reyes <amy.reyes@intel.com>
This commit is contained in:
Amy Reyes 2021-10-19 16:31:48 -07:00 committed by David Kinder
parent 36fc1024e7
commit c2b10d5dcd
1 changed files with 24 additions and 30 deletions

View File

@ -3,22 +3,23 @@
Configuration and Development Overview Configuration and Development Overview
###################################### ######################################
This overview is for developers who are new or relatively new to ACRN and are This overview is for developers who are new to ACRN and are responsible for
responsible for configuring and building ACRN hypervisors. It will introduce you configuring and building the hypervisor and the VMs for applications. It will
to the general development process, including ACRN components and tools. introduce you to the general development process, including ACRN components and
tools.
The overview covers the process at an abstract and universal level. The overview covers the process at an abstract and universal level.
* Abstract: the overall structure rather than detailed instructions * Abstract: the overall structure rather than detailed instructions
* Universal: applicable to most use cases * Universal: applicable to most use cases
The overview is intended to complement the :ref:`gsg`. The guide provides This overview complements the :ref:`gsg`. The guide provides
step-by-step instructions to enable an ACRN example for first-time use, while step-by-step instructions to enable an ACRN example for first-time use, while
the overview provides background information and serves as a gateway to the overview provides background information and serves as a gateway to
additional features and resources that can help you develop your solution. additional features and resources that can help you develop your solution.
The overview doesn't cover ACRN benefits, use cases, or architecture. See See :ref:`introduction` for information about ACRN benefits, use cases, and
:ref:`introduction` to learn more. architecture.
.. _overview_dev_dev_env: .. _overview_dev_dev_env:
@ -39,8 +40,8 @@ have a serial output, :ref:`here are some tips for connecting a serial output
<connect_serial_port>`. <connect_serial_port>`.
You need a way to copy the built ACRN images and other files between the You need a way to copy the built ACRN images and other files between the
development computer and target system. ACRN documentation, such as the Getting development computer and target system. ACRN documentation, such as the
Started Guide, offers steps for copying via USB disk as a simple solution. :ref:`gsg`, offers steps for copying via USB disk as a simple solution.
General Process for Building an ACRN Hypervisor General Process for Building an ACRN Hypervisor
*********************************************** ***********************************************
@ -87,9 +88,10 @@ ACRN offers three types of VMs:
* **Pre-launched User VMs**: These VMs are automatically launched at boot time * **Pre-launched User VMs**: These VMs are automatically launched at boot time
by the hypervisor. They run independently of other VMs and own dedicated by the hypervisor. They run independently of other VMs and own dedicated
hardware resources, such as a CPU core, memory, and I/O devices. Other VMs, hardware resources, such as a CPU core, memory, and I/O devices. Other VMs,
including the Service VM, may not even be aware of a pre-launched VMs including the Service VM, may not even be aware of a pre-launched VM's
existence. The configuration of pre-launched VMs is static and must be defined existence. The configuration of pre-launched VMs is static and must be defined
at build time. They are well-suited for safety-critical applications. at build time. They are well-suited for safety-critical applications and where
very strict isolation, including from the Service VM, is desirable.
* **Service VM**: A special VM, required for scenarios that have post-launched * **Service VM**: A special VM, required for scenarios that have post-launched
User VMs. The Service VM can access hardware resources directly by running User VMs. The Service VM can access hardware resources directly by running
@ -130,8 +132,8 @@ To help accelerate the configuration process, ACRN offers the following
* **Partitioned scenario:** This scenario has pre-launched User VMs to * **Partitioned scenario:** This scenario has pre-launched User VMs to
demonstrate VM partitioning: the User VMs are independent and isolated, and demonstrate VM partitioning: the User VMs are independent and isolated, and
they do not share resources. There is no need for the Service VM or Device they do not share resources. There is no need for the Service VM or Device
Model since all partitioned VMs run native device drivers and directly access Model because all partitioned VMs run native device drivers and directly
their configured resources. access their configured resources.
* **Hybrid scenario:** This scenario simultaneously supports both sharing and * **Hybrid scenario:** This scenario simultaneously supports both sharing and
partitioning on the consolidated system. It has pre-launched and partitioning on the consolidated system. It has pre-launched and
@ -187,15 +189,8 @@ You must configure all of your target's BIOS settings before running the Board
Inspector tool, because the tool records the current BIOS settings in the board Inspector tool, because the tool records the current BIOS settings in the board
configuration file. configuration file.
ACRN requires the following BIOS settings: ACRN requires the BIOS settings listed in :ref:`gsg-board-setup` of the Getting
Started Guide.
* Enable **VMX** (Virtual Machine Extensions, which provide hardware assist
for CPU virtualization).
* Enable **VT-d** (Intel Virtualization Technology for Directed I/O, which
provides additional support for managing I/O virtualization).
Be sure to configure any other settings that your application needs.
Use the Board Inspector to Generate a Board Configuration File Use the Board Inspector to Generate a Board Configuration File
============================================================== ==============================================================
@ -235,7 +230,7 @@ Generate a Scenario Configuration File
A **scenario configuration file** defines a working scenario by configuring A **scenario configuration file** defines a working scenario by configuring
hypervisor capabilities and defining some VM attributes and resources. We call hypervisor capabilities and defining some VM attributes and resources. We call
these settings “static” because they are used to build the hypervisor. The file these settings "static" because they are used to build the hypervisor. The file
contains: contains:
* All hypervisor settings * All hypervisor settings
@ -251,7 +246,7 @@ validate that your custom scenario is supported by the target hardware.
You can use the tool to create a new scenario configuration file or modify an You can use the tool to create a new scenario configuration file or modify an
existing one, such as a predefined scenario described in existing one, such as a predefined scenario described in
:ref:`overview_dev_hw_scenario`. The tools GUI enables you to edit the :ref:`overview_dev_hw_scenario`. The tool's GUI enables you to edit the
configurable items in the file, such as adding VMs, modifying VM attributes, or configurable items in the file, such as adding VMs, modifying VM attributes, or
deleting VMs. The tool validates your inputs against your board configuration deleting VMs. The tool validates your inputs against your board configuration
file. After validation is successful, the tool generates your custom scenario file. After validation is successful, the tool generates your custom scenario
@ -260,10 +255,10 @@ configuration file in XML format.
Generate Launch Scripts Generate Launch Scripts
======================= =======================
A **launch script** invokes the Service VMs Device Model to create a A **launch script** invokes the Service VM's Device Model to create a
post-launched User VM. The launch script defines settings needed to launch the post-launched User VM. The launch script defines settings needed to launch the
User VM and emulate the devices configured for sharing with that User VM. We User VM and emulate the devices configured for sharing with that User VM. We
call these settings “dynamic” because they are used at runtime. call these settings "dynamic" because they are used at runtime.
Before using the ACRN Configurator to generate a launch script, be sure Before using the ACRN Configurator to generate a launch script, be sure
you have your board configuration file and scenario configuration file. The tool you have your board configuration file and scenario configuration file. The tool
@ -298,7 +293,7 @@ the Service VM. The ACRN kernel source code provides a predefined configuration
file and a makefile to build the ACRN kernel binary and associated components. file and a makefile to build the ACRN kernel binary and associated components.
The kernel build can take 15 minutes or less on a fast computer, but could take The kernel build can take 15 minutes or less on a fast computer, but could take
an hour or more depending on the performance of your development computer. For an hour or more depending on the performance of your development computer. For
more information about the kernel, see :ref:`kernel-parameters`. more information about the kernel parameters, see :ref:`kernel-parameters`.
.. _overview_dev_install: .. _overview_dev_install:
@ -313,8 +308,7 @@ At a high level, you will:
* Copy the built ACRN hypervisor files, Service VM kernel files, and launch * Copy the built ACRN hypervisor files, Service VM kernel files, and launch
scripts from the development computer to the target. The Service VM kernel scripts from the development computer to the target. The Service VM kernel
files replace parts of the Ubuntu installation we installed and used for files replace parts of the Ubuntu installation we installed and used for
running the Board Inspector, with the Linux kernel we built based on the board running the Board Inspector, with the Linux kernel we built.
and scenario configuration.
* Configure GRUB to boot the ACRN hypervisor, pre-launched VMs, and Service VM. * Configure GRUB to boot the ACRN hypervisor, pre-launched VMs, and Service VM.
Reboot the target, and launch ACRN. Reboot the target, and launch ACRN.
@ -329,6 +323,6 @@ Learn More
* To get ACRN up and running for the first time, see the :ref:`gsg` for * To get ACRN up and running for the first time, see the :ref:`gsg` for
step-by-step instructions. step-by-step instructions.
* If you have already completed the Getting Started Guide, see the * If you have already completed the :ref:`gsg` , see the
:ref:`develop_acrn` for more information about complex scenarios, advanced :ref:`develop_acrn` for more information about complex scenarios, advanced
features, and debugging features, and debugging.