From 0ac609b5d88eb551c44b4d73b580c4300575e14a Mon Sep 17 00:00:00 2001 From: Amy Reyes Date: Wed, 22 Sep 2021 19:12:07 -0700 Subject: [PATCH] doc: create ACRN config tool/board inspector docs - Create ACRN config tool doc based on info in existing "Intro to ACRN Configuration" doc, add clarifications - Create board inspector tool doc based on info in existing "Intro to ACRN Configuration" doc, add clarifications - Create launch config options doc based on info in existing "Intro to ACRN Configuration" doc, similar to existing scenario config options doc - Update refs that no longer exist - Create hypervisor makefile options doc, combining makefile info from "Intro to ACRN Configuration" doc and "Build ACRN from Source" doc - Clarify why you need config files, difference between scenario vs. launch VM settings - Updates are intended to reflect v2.6 code Signed-off-by: Amy Reyes --- doc/develop.rst | 4 + doc/getting-started/getting-started.rst | 4 + doc/getting-started/overview_dev.rst | 4 +- doc/reference/config-options-launch.rst | 103 ++++ doc/reference/hardware.rst | 2 +- doc/reference/hv-make-options.rst | 199 ++++++ doc/release_notes/release_notes_2.5.rst | 2 +- doc/tutorials/acrn_configuration_tool.rst | 583 ++++-------------- doc/tutorials/acrn_configurator_tool.rst | 216 +++++++ doc/tutorials/board_inspector_tool.rst | 121 ++++ doc/tutorials/cpu_sharing.rst | 2 +- doc/tutorials/images/choose_launch.png | Bin 0 -> 41879 bytes doc/tutorials/images/configure_launch.png | Bin 0 -> 67307 bytes doc/tutorials/images/configure_launch_add.png | Bin 0 -> 67455 bytes doc/tutorials/nvmx_virtualization.rst | 4 +- 15 files changed, 762 insertions(+), 482 deletions(-) create mode 100644 doc/reference/config-options-launch.rst create mode 100644 doc/reference/hv-make-options.rst create mode 100644 doc/tutorials/acrn_configurator_tool.rst create mode 100644 doc/tutorials/board_inspector_tool.rst create mode 100644 doc/tutorials/images/choose_launch.png create mode 100644 doc/tutorials/images/configure_launch.png create mode 100644 doc/tutorials/images/configure_launch_add.png diff --git a/doc/develop.rst b/doc/develop.rst index 7325bfb7b..dd1f8d7d6 100644 --- a/doc/develop.rst +++ b/doc/develop.rst @@ -52,7 +52,11 @@ Configuration and Tools :maxdepth: 1 tutorials/acrn_configuration_tool + tutorials/board_inspector_tool + tutorials/acrn_configurator_tool reference/config-options + reference/config-options-launch + reference/hv-make-options user-guides/hv-parameters user-guides/kernel-parameters user-guides/acrn-shell diff --git a/doc/getting-started/getting-started.rst b/doc/getting-started/getting-started.rst index e358e9cdb..d9f63ceee 100644 --- a/doc/getting-started/getting-started.rst +++ b/doc/getting-started/getting-started.rst @@ -172,6 +172,8 @@ To set up the ACRN build environment on the development computer: cd acrn-kernel git checkout release_2.6 +.. _gsg-board-setup: + .. rst-class:: numbered-step Prepare the Target and Generate a Board Configuration File @@ -382,6 +384,8 @@ Generate a Board Configuration File cp $disk/my_board.xml ~/acrn-work sudo umount $disk +.. _gsg-dev-setup: + .. rst-class:: numbered-step Generate a Scenario Configuration File and Launch Script diff --git a/doc/getting-started/overview_dev.rst b/doc/getting-started/overview_dev.rst index c84e0033a..e8fea1520 100644 --- a/doc/getting-started/overview_dev.rst +++ b/doc/getting-started/overview_dev.rst @@ -196,7 +196,7 @@ The tool generates a board configuration file specific to your hardware. settings or PCI ports, you must generate a new board configuration file. The :ref:`gsg` provides step-by-step instructions for using the tool. For more -information about the tool, see :ref:`acrn_config_workflow`. +information about the tool, see :ref:`board_inspector_tool`. .. _overview_dev_config_editor: @@ -252,7 +252,7 @@ successful, the tool generates your custom launch script. the parameters manually. See :ref:`acrn_config_data`. The :ref:`gsg` walks you through a simple example of using the tool. For more -information about the tool, see :ref:`acrn_config_tool_ui`. +information about the tool, see :ref:`acrn_configurator_tool`. |icon_host| Step 5: Build ACRN ****************************** diff --git a/doc/reference/config-options-launch.rst b/doc/reference/config-options-launch.rst new file mode 100644 index 000000000..cc75f4523 --- /dev/null +++ b/doc/reference/config-options-launch.rst @@ -0,0 +1,103 @@ +.. _launch-config-options: + +Launch Configuration Options +############################## + +As explained in :ref:`acrn_configuration_tool`, launch configuration files +define post-launched User VM settings. This document describes these option settings. + +``uos``: + Specify the User VM with its relative ID to Service VM by the ``id`` + attribute. + +``uos_type``: + Specify the User VM type, such as ``CLEARLINUX``, ``ANDROID``, ``ALIOS``, + ``PREEMPT-RT LINUX``, ``GENERIC LINUX``, ``WINDOWS``, ``YOCTO``, ``UBUNTU``, + ``ZEPHYR`` or ``VXWORKS``. + +``rtos_type``: + Specify the User VM Real-time capability: Soft RT, Hard RT, or none of them. + +``mem_size``: + Specify the User VM memory size in megabytes. + +``gvt_args``: + GVT arguments for the VM. Set it to ``gvtd`` for GVT-d, otherwise it's + for GVT-g arguments. The GVT-g input format: + ``low_gm_size high_gm_size fence_sz``, + The recommendation is ``64 448 8``. Leave it blank to disable the GVT. + +``vbootloader``: + Virtual bootloader type; currently only supports OVMF. + +``vuart0``: + Specify whether the device model emulates the vUART0(vCOM1); refer to + :ref:`vuart_config` for details. If set to ``Enable``, the vUART0 is + emulated by the device model; if set to ``Disable``, the vUART0 is + emulated by the hypervisor if it is configured in the scenario XML. + +``poweroff_channel``: + Specify whether the User VM power off channel is through the IOC, + power button, or vUART. + +``allow_trigger_s5``: + Allow VM to trigger s5 shutdown flow, this flag works with + ``poweroff_channel`` + ``vuart1(pty)`` and ``vuart1(tty)`` only. + +``enable_ptm``: + Enable the Precision Timing Measurement (PTM) feature. + +``usb_xhci``: + USB xHCI mediator configuration. Input format: + ``bus#-port#[:bus#-port#: ...]``, e.g.: ``1-2:2-4``. + Refer to :ref:`usb_virtualization` for details. + +``shm_regions``: + List of shared memory regions for inter-VM communication. + +``shm_region`` (a child node of ``shm_regions``): + configure the shared memory regions for current VM, input format: + ``hv:/<;shm name>; (or dm:/;), <;shm size in MB>;``. Refer + to :ref:`ivshmem-hld` for details. + +``console_vuart``: + Enable a PCI-based console vUART. Refer to :ref:`vuart_config` for details. + +``communication_vuarts``: + List of PCI-based communication vUARTs. Refer to :ref:`vuart_config` for + details. + +``communication_vuart`` (a child node of ``communication_vuarts``): + Enable a PCI-based communication vUART with its ID. Refer to + :ref:`vuart_config` for details. + +``passthrough_devices``: + Select the passthrough device from the lspci list. Currently we support: + ``usb_xdci``, ``audio``, ``audio_codec``, ``ipu``, ``ipu_i2c``, + ``cse``, ``wifi``, ``bluetooth``, ``sd_card``, + ``ethernet``, ``sata``, and ``nvme``. + +``network`` (a child node of ``virtio_devices``): + The virtio network device setting. + Input format: ``tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX]``. + +``block`` (a child node of ``virtio_devices``): + The virtio block device setting. + Input format: ``[blk partition:][img path]`` e.g.: ``/dev/sda3:./a/b.img``. + +``console`` (a child node of ``virtio_devices``): + The virtio console device setting. + Input format: + ``[@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]``. + +``cpu_affinity``: + List of pCPU that this VM's vCPUs are pinned to. + +.. note:: + + The ``configurable`` and ``readonly`` attributes are used to mark + whether the item is configurable for users. When ``configurable="n"`` + and ``readonly="y"``, the item is not configurable from the web + interface. When ``configurable="n"``, the item does not appear on the + interface. diff --git a/doc/reference/hardware.rst b/doc/reference/hardware.rst index a1e9bbe22..3ee4331c8 100644 --- a/doc/reference/hardware.rst +++ b/doc/reference/hardware.rst @@ -108,7 +108,7 @@ For general instructions setting up ACRN on supported hardware platforms, visit If an XML file is not provided by project ACRN for your board, we recommend you use the board inspector tool to generate an XML file specifically for your board. -Refer to the :ref:`acrn_configuration_tool` for more details on using the board inspector +Refer to :ref:`board_inspector_tool` for more details on using the board inspector tool. diff --git a/doc/reference/hv-make-options.rst b/doc/reference/hv-make-options.rst new file mode 100644 index 000000000..c5bd884ef --- /dev/null +++ b/doc/reference/hv-make-options.rst @@ -0,0 +1,199 @@ +.. _hypervisor-make-options: + +Hypervisor Makefile Options +########################### + +The ACRN hypervisor source code provides a makefile to build the ACRN +hypervisor binary and associated components. + +Assuming that you are at the top level of the ``acrn-hypervisor`` directory, +you can run the ``make`` command to start the build. See :ref:`acrn_configuration_tool` for information about required input files. + +Build Options +************* + +The following table shows ACRN-specific command-line options: + +.. list-table:: + :widths: 33 77 + :header-rows: 1 + + * - Option + - Description + + * - ``BOARD`` + - Required. Path to the board configuration file. + + * - ``SCENARIO`` + - Required. Path to the scenario configuration file. + + * - ``RELEASE`` + - Optional. Build a release version or a debug version. Valid values + are ``y`` for release version or ``n`` for debug version. (Default + is ``n``.) + + * - ``hypervisor`` + - Optional. Build the hypervisor only. + + * - ``devicemodel`` + - Optional. Build the Device Model only. + + * - ``tools`` + - Optional. Build the tools only. + + * - ``O`` + - Optional. Path to the directory where the built files will be stored. + (Default is the ``build`` directory.) + +Example of a command to build the debug version: + +.. code-block:: none + + make BOARD=~/acrn-work/my_board.xml SCENARIO=~/acrn-work/industry.xml + +Example of a command to build the release version: + +.. code-block:: none + + make BOARD=~/acrn-work/my_board.xml SCENARIO=~/acrn-work/industry.xml RELEASE=y + +Example of a command to build the release version (hypervisor only): + +.. code-block:: none + + make BOARD=~/acrn-work/my_board.xml SCENARIO=~/acrn-work/industry.xml RELEASE=y hypervisor + +Example of a command to build the release version of the Device Model and tools: + +.. code-block:: none + + make RELEASE=y devicemodel tools + +Example of a command to put the built files in the specified directory +(``build-nuc``): + +.. code-block:: none + + make O=build-nuc BOARD=~/acrn-work/my_board.xml SCENARIO=~/acrn-work/industry.xml + +ACRN uses XML files to summarize board characteristics and scenario settings. +The ``BOARD`` and ``SCENARIO`` variables accept board/scenario names as well +as paths to XML files. When board/scenario names are given, the build system +searches for XML files with the same names under ``misc/config_tools/data/``. +When paths (absolute or relative) to the XML files are given, the build system +uses the files pointed at. If relative paths are used, they are considered +relative to the current working directory. + +.. _acrn_makefile_targets: + +Makefile Targets for Configuration +*********************************** + +ACRN source also includes the following makefile targets to aid customization. + +.. list-table:: + :widths: 33 77 + :header-rows: 1 + + * - Target + - Description + + * - ``hvdefconfig`` + - Generate configuration files (a bunch of C source files) in the build + directory without building the hypervisor. This target can be used when + you want to customize the configurations based on a predefined scenario. + + * - ``hvshowconfig`` + - Print the target ``BOARD``, ``SCENARIO`` and build type (debug or + release) of a build. + + * - ``hvdiffconfig`` + - After modifying the generated configuration files, you can use this + target to generate a patch that shows the differences made. + + * - ``hvapplydiffconfig PATCH=/path/to/patch`` + - Register a patch to be applied on the generated configuration files + every time they are regenerated. The ``PATCH`` variable specifies the + path (absolute or relative to current working directory) of the patch. + Multiple patches can be registered by invoking this target multiple + times. + +Example of ``hvshowconfig`` to query the board, scenario, and build +type of an existing build: + +.. code-block:: none + + $ make BOARD=tgl-rvp SCENARIO=hybrid_rt hypervisor + ... + $ make hvshowconfig + Build directory: /path/to/acrn-hypervisor/build/hypervisor + This build directory is configured with the settings below. + - BOARD = tgl-rvp + - SCENARIO = hybrid_rt + - RELEASE = n + +Example of ``hvdefconfig`` to generate the configuration files in the +build directory, followed by an example of editing one of the configuration +files manually (``scenario.xml``) and then building the hypervisor: + +.. code-block:: none + + make BOARD=nuc7i7dnb SCENARIO=industry hvdefconfig + vim build/hypervisor/.scenario.xml + #(Modify the XML file per your needs) + make + +A hypervisor build remembers the board and scenario previously configured. +Thus, there is no need to duplicate ``BOARD`` and ``SCENARIO`` in the second +``make`` above. + +While the scenario configuration files can be changed manually, we recommend +you use the :ref:`ACRN configurator tool `, which +provides valid options and descriptions of the configuration entries. + +The targets ``hvdiffconfig`` and ``hvapplydiffconfig`` are provided for users +who already have offline patches to the generated configuration files. Prior to +v2.4, the generated configuration files are also in the repository. Some users +may already have chosen to modify these files directly to customize the +configurations. + +.. note:: + + We highly recommend new users save and maintain customized configurations in + XML, not in patches to generated configuration files. + +Example of how to use ``hvdiffconfig`` to generate a patch and save +it to ``config.patch``: + +.. code-block:: console + + acrn-hypervisor$ make BOARD=ehl-crb-b SCENARIO=hybrid_rt hvdefconfig + ... + acrn-hypervisor$ vim build/hypervisor/configs/scenarios/hybrid_rt/pci_dev.c + (edit the file manually) + acrn-hypervisor$ make hvdiffconfig + ... + Diff on generated configuration files is available at /path/to/acrn-hypervisor/build/hypervisor/config.patch. + To make a patch effective, use 'applydiffconfig PATCH=/path/to/patch' to register it to a build. + ... + acrn-hypervisor$ cp build/hypervisor/config.patch config.patch + +Example of how to use ``hvapplydiffconfig`` to apply +``config.patch`` to a new build: + +.. code-block:: console + + acrn-hypervisor$ make clean + acrn-hypervisor$ make BOARD=ehl-crb-b SCENARIO=hybrid_rt hvdefconfig + ... + acrn-hypervisor$ make hvapplydiffconfig PATCH=config.patch + ... + /path/to/acrn-hypervisor/config.patch is registered for build directory /path/to/acrn-hypervisor/build/hypervisor. + Registered patches will be applied the next time 'make' is invoked. + To unregister a patch, remove it from /path/to/acrn-hypervisor/build/hypervisor/configs/.diffconfig. + ... + acrn-hypervisor$ make hypervisor + ... + Applying patch /path/to/acrn-hypervisor/config.patch: + patching file scenarios/hybrid_rt/pci_dev.c + ... \ No newline at end of file diff --git a/doc/release_notes/release_notes_2.5.rst b/doc/release_notes/release_notes_2.5.rst index 77fa92c16..6681897ac 100644 --- a/doc/release_notes/release_notes_2.5.rst +++ b/doc/release_notes/release_notes_2.5.rst @@ -91,7 +91,7 @@ installed by executing the following command: sudo pip3 install lxml .. note:: - Refer to :ref:`acrn_config_workflow` for a complete list of tools required to + Refer to :ref:`gsg` for a complete list of tools required to run the board inspector. With the prerequisites done, copy the entire board inspector folder from diff --git a/doc/tutorials/acrn_configuration_tool.rst b/doc/tutorials/acrn_configuration_tool.rst index 5eaba8434..cdd1602c7 100644 --- a/doc/tutorials/acrn_configuration_tool.rst +++ b/doc/tutorials/acrn_configuration_tool.rst @@ -9,25 +9,24 @@ well as configure hypervisor capabilities and provision VMs. ACRN configuration consists of the following key components. - - Configuration data saved as XML files. - - A configuration toolset that helps users to generate and edit configuration - data. The toolset includes: +* Configuration data saved as XML files. +* A configuration toolset that helps users to generate and edit configuration + data. The toolset includes: - - A **board inspector** that collects board-specific information on target - machines. - - A **configuration editor** that lets you edit configuration data via a web-based UI. + - **Board inspector**: Collects board-specific information on target + machines. + - **ACRN configurator**: Enables you to edit configuration data via a + web-based UI. The following sections introduce the concepts and tools of ACRN configuration from the aspects below. - - :ref:`acrn_config_types` introduces the objectives and main contents of - different types of configuration data. - - :ref:`acrn_config_workflow` overviews the steps to customize ACRN - configuration using the configuration toolset. - - :ref:`acrn_config_data` explains the location and format of configuration - data saved as XML files. - - :ref:`acrn_config_tool_ui` gives detailed instructions on using the - configuration editor. +* :ref:`acrn_config_types` introduces the objectives and main contents of + different types of configuration data. +* :ref:`acrn_config_workflow` overviews the steps to customize ACRN + configuration using the configuration toolset. +* :ref:`acrn_config_data` explains the location and format of configuration + data saved as XML files. .. _acrn_config_types: @@ -35,232 +34,126 @@ Types of Configurations *********************** ACRN includes three types of configurations: board, scenario, and launch. The -following sections briefly describe the objectives and main contents of each -type. +configuration data are saved in three XML files. The following sections briefly +describe the objectives and main contents of each file. -Board Configuration -=================== +Board Configuration File +======================== -The board configuration stores hardware-specific information extracted on the -target platform. It describes the capacity of hardware resources (such as -processors and memory), platform power states, available devices, and BIOS -versions. This information is used by ACRN configuration tool to check feature -availability and allocate resources among VMs, as well as by ACRN hypervisor to -initialize and manage the platform at runtime. +The board configuration file stores hardware-specific information extracted +from the target platform. Examples of information: -The board configuration is scenario-neutral by nature. Thus, multiple scenario +* Capacity of hardware resources (such as processors and memory) +* Platform power states +* Available devices +* BIOS versions + +You need a board configuration file to create scenario configurations. The +board configuration is scenario-neutral by nature. Thus, multiple scenario configurations can be based on the same board configuration. -Scenario Configuration -====================== +You also need a board configuration file to build an ACRN hypervisor. The +build process uses the file to build a hypervisor that can +initialize and manage the platform at runtime. -The scenario configuration defines a working scenario by configuring hypervisor -capabilities and defining VM attributes and resources. You can specify the -following in scenario configuration. +Scenario Configuration File +=========================== - - Hypervisor capabilities +The scenario configuration file defines a working scenario by configuring +hypervisor capabilities and defining some VM attributes and resources. +We call these settings "static" because they are used to build the hypervisor. +You can specify the following information in a scenario configuration: - - Availability and settings of hypervisor features, such as debugging - facilities, scheduling algorithm, ivshmem, and security features. - - Hardware management capacity of the hypervisor, such as maximum PCI devices - and maximum interrupt lines supported. - - Memory consumption of the hypervisor, such as the entry point and stack - size. +* Hypervisor capabilities - - VM attributes and resources + - Availability and settings of hypervisor features, such as debugging + facilities, scheduling algorithm, inter-VM shared memory (ivshmem), + and security features. + - Hardware management capacity of the hypervisor, such as maximum PCI devices + and maximum interrupt lines supported. + - Memory consumption of the hypervisor, such as the entry point and stack + size. - - VM attributes, such as VM names. - - Maximum number of VMs supported. - - Resources allocated to each VM, such as number of vCPUs, amount of guest - memory, and pass-through devices. - - Guest OS settings, such as boot protocol and guest kernel parameters. - - Settings of virtual devices, such as virtual UARTs. +* VM attributes and resources -For pre-launched VMs, the VM attributes and resources are exactly the amount of -resource allocated to them. For post-launched VMs, the number of vCPUs define -the upper limit the Service VM can allocate to them and settings of virtual -devices still apply. Other resources are under the control of the Service VM and -can be dynamically allocated to post-launched VMs. + - VM attributes, such as VM names. + - Maximum number of VMs supported. + - Resources allocated to each VM, such as number of vCPUs, amount of guest + memory, and pass-through devices. + - User VM settings, such as boot protocol and VM OS kernel parameters. + - Settings of virtual devices, such as virtual UARTs. -The scenario configuration is used by ACRN configuration tool to reserve -sufficient memory for the hypervisor to manage the VMs at build time, as well as -by ACRN hypervisor to initialize its capabilities and set up the VMs at runtime. +You need a scenario configuration file to build an ACRN hypervisor. The +build process uses the file to build a hypervisor that can initialize its capabilities and set up the VMs at runtime. -Launch Configuration -==================== +The scenario configuration defines User VMs as follows: -The launch configuration defines the attributes and resources of a -post-launched VM. The main contents are similar to the VM attributes and -resources in scenario configuration. The launch configuration is used to generate shell scripts that -invoke ``acrn-dm`` to create post-launched VMs. Unlike board and scenario -configurations used at build time or by ACRN hypervisor, launch -configuration are used dynamically in the Service VM. +* For pre-launched User VMs, the scenario configuration defines all attributes + and resources (these VMs have static configurations by nature). The VM + attributes and resources are exactly the amount + of resources allocated to them. + +* For post-launched User VMs, the scenario configuration defines only static + attributes and resources. Other resources are under the control of the + Service VM and can be dynamically allocated to these VMs via launch + scripts. + +Launch Configuration File for Launch Scripts +============================================ + +The launch configuration file applies only to scenarios that have +post-launched User VMs. The file defines certain attributes and +resources of the post-launched VMs specified in the scenario configuration +file. We call these settings "dynamic" because they are used at runtime. + +You need a launch configuration file to generate a launch script (shell script) for each post-launched User VM. The launch script invokes the +Service VM's :ref:`Device Model ` ``acrn-dm`` to create +the VM. Unlike board and scenario configurations used at build time or by +ACRN hypervisor, launch configurations are used dynamically in the Service VM. .. _acrn_config_workflow: Using ACRN Configuration Toolset ******************************** -ACRN configuration toolset is provided to create and edit configuration -data. The toolset can be found in ``misc/config_tools``. +The ACRN configuration toolset enables you to create +and edit configuration data. The toolset consists of the following: -Here is the workflow to customize ACRN configurations using the configuration -toolset. +* :ref:`Board inspector tool ` +* :ref:`ACRN configurator tool ` -#. Get the board info. +As introduced in :ref:`overview_dev`, configuration takes place at Steps 3 and 4 in the overall development process: - a. Set up a native Linux environment on the target board. Make sure the - following tools are installed and the kernel boots with the following - command line options. +.. image:: ../getting-started/images/overview_flow.png - | **Native Linux requirement:** - | **Release:** Ubuntu 18.04+ - | **Tools:** cpuid, rdmsr, lspci, lxml, dmidecode (optional) - | **Kernel cmdline:** "idle=nomwait intel_idle.max_cstate=0 intel_pstate=disable" - - #. Copy the ``board_inspector`` directory into the target file system and then run the - ``sudo python3 board_inspector.py $(BOARD)`` command. - #. A ``$(BOARD).xml`` that includes all needed hardware-specific information - is generated under the current working directory. Here, ``$(BOARD)`` is the - specified board name. - -#. Customize your needs. - - a. Copy ``$(BOARD).xml`` to the host development machine. - #. Run the ACRN configuration editor (available at - ``misc/config_tools/config_app/acrn_configurator.py``) on the host machine and import - the ``$(BOARD).xml``. Select your working scenario under **Scenario Setting** - and input the desired scenario settings. The tool will do validation checks - on the input based on the ``$(BOARD).xml``. The customized settings can be - exported to your own ``$(SCENARIO).xml``. If you have a customized scenario - XML file, you can also import it to the editor for modification. - #. In ACRN configuration editor, input the launch script parameters for the - post-launched User VM under **Launch Setting**. The editor will validate - the input based on both the ``$(BOARD).xml`` and ``$(SCENARIO).xml`` and then - export settings to your ``$(LAUNCH).xml``. - - .. note:: Refer to :ref:`acrn_config_tool_ui` for more details on - the configuration editor. - -#. Build with your XML files. Refer to :ref:`gsg` to build - the ACRN hypervisor with your XML files on the host machine. - -#. Deploy VMs and run ACRN hypervisor on the target board. - -.. figure:: images/offline_tools_workflow.png - :align: center - - Configuration Workflow - -.. _acrn_makefile_targets: - -Makefile Targets for Configuration -================================== - -In addition to the ``BOARD`` and ``SCENARIO`` variables, ACRN source also -includes the following makefile targets to aid customization. - -.. list-table:: - :widths: 20 50 - :header-rows: 1 - - * - Target - - Description - - * - ``hvdefconfig`` - - Generate configuration files (a bunch of C source files) in the - build directory without building the hypervisor. This target can be used - when you want to customize the configurations based on a predefined - scenario. - - * - ``hvshowconfig`` - - Print the target ``BOARD``, ``SCENARIO`` and build type (debug or - release) of a build. - - * - ``hvdiffconfig`` - - After modifying the generated configuration files, you can use this - target to generate a patch that shows the differences made. - - * - ``hvapplydiffconfig PATCH=/path/to/patch`` - - Register a patch to be applied on the generated configuration files - every time they are regenerated. The ``PATCH`` variable specifies the path - (absolute or relative to current working directory) of the - patch. Multiple patches can be registered by invoking this target - multiple times. - -The targets ``hvdiffconfig`` and ``hvapplydiffconfig`` -are provided for users who already have offline patches to the generated -configuration files. Prior to v2.4, the generated configuration files are also -in the repository. Some users may already have chosen to modify these files -directly to customize the configurations. - -.. note:: - We highly recommend new users save and maintain customized configurations - in XML, not in patches to generated configuration files. - -Here is an example how to use the ``hvdiffconfig`` to generate a patch and save -it to ``config.patch``. - -.. code-block:: console - - acrn-hypervisor$ make BOARD=ehl-crb-b SCENARIO=hybrid_rt hvdefconfig - ... - acrn-hypervisor$ vim build/hypervisor/configs/scenarios/hybrid_rt/pci_dev.c - (edit the file manually) - acrn-hypervisor$ make hvdiffconfig - ... - Diff on generated configuration files is available at /path/to/acrn-hypervisor/build/hypervisor/config.patch. - To make a patch effective, use 'applydiffconfig PATCH=/path/to/patch' to register it to a build. - ... - acrn-hypervisor$ cp build/hypervisor/config.patch config.patch - -The example below shows how to use ``hvapplydiffconfig`` to apply -``config.patch`` to a new build. - -.. code-block:: console - - acrn-hypervisor$ make clean - acrn-hypervisor$ make BOARD=ehl-crb-b SCENARIO=hybrid_rt hvdefconfig - ... - acrn-hypervisor$ make hvapplydiffconfig PATCH=config.patch - ... - /path/to/acrn-hypervisor/config.patch is registered for build directory /path/to/acrn-hypervisor/build/hypervisor. - Registered patches will be applied the next time 'make' is invoked. - To unregister a patch, remove it from /path/to/acrn-hypervisor/build/hypervisor/configs/.diffconfig. - ... - acrn-hypervisor$ make hypervisor - ... - Applying patch /path/to/acrn-hypervisor/config.patch: - patching file scenarios/hybrid_rt/pci_dev.c - ... +ACRN source also includes makefile targets to aid customization. See :ref:`hypervisor-make-options`. .. _acrn_config_data: ACRN Configuration Data *********************** -ACRN configuration data are saved in three XML files: ``board``, ``scenario``, -and ``launch`` XML. The ``board`` XML contains board configuration and is -generated by the board inspector on the target machine. The ``scenario`` and -``launch`` XMLs, containing scenario and launch configurations respectively, can -be customized by using the configuration editor. End users can load their own -configurations by importing customized XMLs or by saving the configurations by -exporting XMLs. +The following sections explain the format of the board, scenario, and launch configuration files. Although we recommend using the ACRN configuration toolset to create these files, this reference may be useful for advanced usage and troubleshooting. -The predefined XMLs provided by ACRN are located in the ``misc/config_tools/data/`` +ACRN source code offers predefined XMLs in the ``misc/config_tools/data/`` directory of the ``acrn-hypervisor`` repo. Board XML Format ================ -The board XML has an ``acrn-config`` root element and a ``board`` attribute: +The board XML has an ``acrn-config`` root element and a +``board`` attribute: .. code-block:: xml -Board XML files are input to the configuration editor and the build system, and are not -intended for end users to modify. +The ``board`` attribute defines the board name and must match the +``board`` attribute in the scenario configuration file and the launch +configuration file. The file name of the board configuration file +(example: ``my_board.xml``) doesn’t affect the board name. + +Board XML files are input to the ACRN configurator tool and the build system, and are not intended for end users to modify. Scenario XML Format =================== @@ -272,292 +165,32 @@ The scenario XML has an ``acrn-config`` root element as well as ``board`` and -See :ref:`scenario-config-options` for a full explanation of available scenario -XML elements. Users are recommended to tweak the configuration data by using -ACRN configuration editor. +The ``board`` attribute specifies the board name and must match the ``board`` +attribute in the board configuration file. +The ``scenario`` attribute specifies the scenario name, followed by hypervisor and VM settings. + +See :ref:`scenario-config-options` for a full explanation of available scenario +XML elements. Launch XML Format ================= -The launch XML has an ``acrn-config`` root element as well as ``board``, -``scenario`` and ``uos_launcher`` attributes: +The launch XML has an ``acrn-config`` root element as well as +``board``, ``scenario`` and ``uos_launcher`` attributes: .. code-block:: xml -Attributes of the ``uos_launcher`` specify the number of User VMs that the -current scenario has: +The ``board`` attribute specifies the board name and must match the ``board`` +attribute in the board configuration file and the scenario configuration file. -``uos``: - Specify the User VM with its relative ID to Service VM by the ``id`` attribute. +The ``scenario`` attribute specifies the scenario name and must match the +``scenario`` attribute in the scenario configuration file. -``uos_type``: - Specify the User VM type, such as ``CLEARLINUX``, ``ANDROID``, ``ALIOS``, - ``PREEMPT-RT LINUX``, ``GENERIC LINUX``, ``WINDOWS``, ``YOCTO``, ``UBUNTU``, - ``ZEPHYR`` or ``VXWORKS``. +The ``uos_launcher`` attribute specifies the number of post-launched User VMs +in a scenario. -``rtos_type``: - Specify the User VM Real-time capability: Soft RT, Hard RT, or none of them. - -``mem_size``: - Specify the User VM memory size in megabytes. - -``gvt_args``: - GVT arguments for the VM. Set it to ``gvtd`` for GVT-d. - Leave it blank to disable the GVT. - -``vbootloader``: - Virtual bootloader type; currently only supports OVMF. - -``vuart0``: - Specify whether the device model emulates the vUART0(vCOM1); refer to - :ref:`vuart_config` for details. If set to ``Enable``, the vUART0 is - emulated by the device model; if set to ``Disable``, the vUART0 is - emulated by the hypervisor if it is configured in the scenario XML. - -``poweroff_channel``: - Specify whether the User VM power off channel is through the IOC, - power button, or vUART. - -``allow_trigger_s5``: - Allow VM to trigger s5 shutdown flow, this flag works with ``poweroff_channel`` - ``vuart1(pty)`` and ``vuart1(tty)`` only. - -``enable_ptm``: - Enable the Precision Timing Measurement (PTM) feature. - -``usb_xhci``: - USB xHCI mediator configuration. Input format: - ``bus#-port#[:bus#-port#: ...]``, e.g.: ``1-2:2-4``. - Refer to :ref:`usb_virtualization` for details. - -``shm_regions``: - List of shared memory regions for inter-VM communication. - -``shm_region`` (a child node of ``shm_regions``): - configure the shared memory regions for current VM, input format: - ``hv:/<;shm name>; (or dm:/;), <;shm size in MB>;``. Refer to :ref:`ivshmem-hld` for details. - -``console_vuart``: - Enable a PCI-based console vUART. Refer to :ref:`vuart_config` for details. - -``communication_vuarts``: - List of PCI-based communication vUARTs. Refer to :ref:`vuart_config` for details. - -``communication_vuart`` (a child node of ``communication_vuarts``): - Enable a PCI-based communication vUART with its ID. Refer to :ref:`vuart_config` for details. - -``passthrough_devices``: - Select the passthrough device from the lspci list. Currently we support: - ``usb_xdci``, ``audio``, ``audio_codec``, ``ipu``, ``ipu_i2c``, - ``cse``, ``wifi``, ``bluetooth``, ``sd_card``, - ``ethernet``, ``sata``, and ``nvme``. - -``network`` (a child node of ``virtio_devices``): - The virtio network device setting. - Input format: ``tap_name,[vhost],[mac=XX:XX:XX:XX:XX:XX]``. - -``block`` (a child node of ``virtio_devices``): - The virtio block device setting. - Input format: ``[blk partition:][img path]`` e.g.: ``/dev/sda3:./a/b.img``. - -``console`` (a child node of ``virtio_devices``): - The virtio console device setting. - Input format: - ``[@]stdio|tty|pty|sock:portname[=portpath][,[@]stdio|tty|pty:portname[=portpath]]``. - -``input`` (a child node of ``virtio_devices``): - The virtio input device setting. - Input format: ``/dev/input/eventX[,serial]``. - -``cpu_affinity``: - List of pCPU that this VM's vCPUs are pinned to. - -.. note:: - - The ``configurable`` and ``readonly`` attributes are used to mark - whether the item is configurable for users. When ``configurable="n"`` - and ``readonly="y"``, the item is not configurable from the web - interface. When ``configurable="n"``, the item does not appear on the - interface. - -.. _acrn_config_tool_ui: - -Use the ACRN Configuration Editor -********************************* - -The ACRN configuration editor provides a web-based user interface for the following: - -- reads board info -- configures and validates scenario and launch configurations -- generates launch scripts for the specified post-launched User VMs. -- dynamically creates a new scenario configuration and adds or deletes VM - settings in it -- dynamically creates a new launch configuration and adds or deletes User VM - settings in it - -Prerequisites -============= - -- Clone the ACRN hypervisor repo - - .. code-block:: bash - - $ git clone https://github.com/projectacrn/acrn-hypervisor - -- Install ACRN configuration editor dependencies: - - .. code-block:: bash - - $ cd ~/acrn-hypervisor/misc/config_tools/config_app - $ sudo pip3 install -r requirements - - -Instructions -============ - -#. Launch the ACRN configuration editor: - - .. code-block:: bash - - $ python3 acrn_configurator.py - -#. Open a browser and navigate to the website - ``_ automatically, or you may need to visit this - website manually. Make sure you can connect to open network from browser - because the editor needs to download some JavaScript files. - - .. note:: The ACRN configuration editor is supported on Chrome, Firefox, - and Microsoft Edge. Do not use Internet Explorer. - - The website is shown below: - - .. figure:: images/config_app_main_menu.png - :align: center - :name: ACRN config tool main menu - -#. Set the board info: - - a. Click **Import Board info**. - - .. figure:: images/click_import_board_info_button.png - :align: center - - #. Upload the board XML you have generated from the ACRN board inspector. - - #. After board XML is uploaded, you will see the board name from the - Board info list. Select the board name to be configured. - - .. figure:: images/select_board_info.png - :align: center - -#. Load or create the scenario configuration by selecting among the following: - - - Choose a scenario from the **Scenario Setting** menu that lists all - user-defined scenarios for the board you selected in the previous step. - - - Click the **Create a new scenario** from the **Scenario Setting** menu to - dynamically create a new scenario configuration for the current board. - - - Click the **Load a default scenario** from the **Scenario Setting** menu, - and then select one default scenario configuration to load a predefined - scenario XML for the current board. - - The default scenario XMLs are located at - ``misc/config_tools/data/[board]/``. You can edit the scenario name when - creating or loading a scenario. If the current scenario name is duplicated - with an existing scenario setting name, rename the current scenario name or - overwrite the existing one after the confirmation message. - - .. figure:: images/choose_scenario.png - :align: center - - Note that you can also use a customized scenario XML by clicking **Import - XML**. The configuration editor automatically directs to the new scenario - XML once the import is complete. - -#. The configurable items display after one scenario is created, loaded, - or selected. Following is an industry scenario: - - .. figure:: images/configure_scenario.png - :align: center - - - You can edit these items directly in the text boxes, or you can choose - single or even multiple items from the drop-down list. - - - Read-only items are marked as gray. - - - Hover the mouse cursor over the item to display the description. - -#. Dynamically add or delete VMs: - - - Click **Add a VM below** in one VM setting, and then select one VM type - to add a new VM under the current VM. - - - Click **Remove this VM** in one VM setting to remove the current VM for - the scenario setting. - - When one VM is added or removed in the scenario, the configuration editor - reassigns the VM IDs for the remaining VMs by the order of Pre-launched VMs, - Service VMs, and Post-launched VMs. - - .. figure:: images/configure_vm_add.png - :align: center - -#. Click **Export XML** to save the scenario XML; you can rename it in the - pop-up model. - - .. note:: - Save the customized scenario XML to a specific folder by inputting the - absolute path to this folder in the **Scenario XML Path** field. If you - don't specify a path, the scenario xml file will be saved to - default folder: ``acrn-hypervisor/../user_config/[board]/``. - - Before saving the scenario XML, the configuration editor validates the - configurable items. If errors exist, the configuration editor lists all - incorrectly configured items and shows the errors as below: - - .. figure:: images/err_acrn_configuration.png - :align: center - - After the scenario is saved, the page automatically directs to the saved - scenario XMLs. Delete the configured scenario by clicking **Export XML** -> **Remove**. - -The **Launch Setting** is quite similar to the **Scenario Setting**: - -#. Upload board XML or select one board as the current board. - -#. Load or create one launch configuration by selecting among the following: - - - Click **Create a new launch script** from the **Launch Setting** menu. - - - Click **Load a default launch script** from the **Launch Setting** menu. - - - Select one launch XML from the menu. - - - Import a local launch XML by clicking **Import XML**. - -#. Select one scenario for the current launch configuration from the **Select - Scenario** drop-down box. - -#. Configure the items for the current launch configuration. - -#. Add or remove User VM (UOS) launch scripts: - - - Add a UOS launch script by clicking **Configure an UOS below** for the - current launch configuration. - - - Remove a UOS launch script by clicking **Remove this VM** for the - current launch configuration. - -#. Save the current launch configuration to the ``user_config`` XML folder by - clicking **Export XML**. The configuration editor validates the current - configuration and lists all incorrectly configured items. - -#. Click **Generate Launch Script** to save the current launch configuration and - then generate the launch script. - - .. figure:: images/generate_launch_script.png - :align: center +See :ref:`launch-config-options` for a full explanation of available launch +XML elements. \ No newline at end of file diff --git a/doc/tutorials/acrn_configurator_tool.rst b/doc/tutorials/acrn_configurator_tool.rst new file mode 100644 index 000000000..c6612e7ad --- /dev/null +++ b/doc/tutorials/acrn_configurator_tool.rst @@ -0,0 +1,216 @@ +.. _acrn_configurator_tool: + +ACRN Configurator Tool +###################### + +This guide describes all features and uses of the tool. + +About the ACRN Configurator Tool +********************************* + +The ACRN configurator tool ``acrn_configurator.py`` provides a web-based +user interface to help you customize your +:ref:`ACRN configuration `. Capabilities: + +- reads board information from the specified board configuration file +- provides a GUI to help you configure and validate scenario and + launch configuration files +- generates launch scripts for the specified post-launched User VMs +- dynamically creates a new scenario configuration and adds or deletes VM + settings in it +- dynamically creates a new launch configuration and adds or deletes User VM + settings in it + +The tool guides you to configure ACRN in a particular order, due to +dependencies among the different types of configuration files. Here's an +overview of what to expect: + +#. Import the board configuration file that you generated via the + :ref:`board inspector tool `. + +#. Customize your scenario configuration file by defining hypervisor and + VM settings that will be used to build the ACRN hypervisor. + +#. If your scenario has post-launched User VMs, customize launch scripts + that the Service VM will use to create the VMs + and allocate resources to them dynamically at runtime. + Customizing launch scripts involves these steps: + + a. Configure settings for all post-launched User VMs in your scenario + and save the configuration in a launch configuration file. + + #. Generate the launch scripts. The ACRN configurator creates one + launch script for each VM defined in the launch configuration file. + +Generate a Scenario Configuration File and Launch Scripts +********************************************************* + +The following steps describe all options in the ACRN configurator for generating a custom scenario configuration file and launch scripts. + +#. Make sure the development computer is set up and ready to launch the ACRN + configurator, according to :ref:`gsg-dev-setup` in the Getting Started Guide. + +#. Launch the ACRN configurator. This example assumes the tool is in the + ``~/acrn-work/`` directory. Feel free to modify the command as needed. + + .. code-block:: bash + + python3 ~/acrn-work/acrn-hypervisor/misc/config_tools/config_app/acrn_configurator.py + +#. Your web browser should open the website ``_ + automatically, or you may need to visit this website manually. The ACRN + configurator is supported on Chrome and Firefox. + +#. Click the **Import Board info** button and browse to your board + configuration file. After the file is uploaded, make sure the board name + is selected in the **Board info** drop-down list and the board information + appears. + +#. Start the scenario configuration process by selecting an option from the + **Scenario Setting** menu on the top banner of the UI or by importing a + scenario configuration file via the **Import XML** button. The 4 options + are described below: + + * Click **Create a new scenario** from the **Scenario Setting** menu to + dynamically create a new scenario configuration for the current board. + + * Click **Load a default scenario** from the **Scenario Setting** menu to + select a :ref:`predefined scenario configuration `. + + * Click the **Scenario Setting** menu and select a scenario from the list + under **scenario setting list**. + + .. image:: images/choose_scenario.png + :align: center + + * Click the **Import XML** button to import a customized scenario + configuration file. + The file must be one that was written for the current board. Any mismatch + in the board name and the one found in the scenario configuration file you + are trying to import will lead to an error message. + +#. When the scenario configuration file is available for editing, the + configurable items appear below the **Scenario Setting** row. You may + need to scroll down to see them. Example: + + .. image:: images/configure_scenario.png + :align: center + + * You can edit these items directly in the text boxes, or you can choose + single or even multiple items from the drop-down list. + + * Read-only items are marked as gray. + + * Hover the mouse cursor over the item to see the description. + +#. Add or delete VMs: + + * Click **Add a VM below** in a VM’s settings, and then select a VM type + to add a new VM under the current VM. + + * Click **Remove this VM** in a VM’s settings to remove the VM from the + scenario. + + When a VM is added or removed, the configurator reassigns the VM IDs for + the remaining VMs by the order of pre-launched User VMs, Service VM, and + post-launched User VMs. + + .. image:: images/configure_vm_add.png + :align: center + +#. Click **Export XML** to save the scenario configuration file. A dialog box + appears, enabling you to save the file to a specific folder by inputting the + absolute path to this folder. If you don’t specify a path, the file will be + saved to the default folder: +  ``acrn-hypervisor/../user_config/``. + + Before saving the scenario configuration file, the configurator validates + the configurable items. If errors exist, the configurator lists all + incorrectly configured items and shows the errors. Example: + + .. image:: images/err_acrn_configuration.png + :align: center + + After the scenario is saved, the page automatically displays the saved scenario configuration file. + +#. To delete a scenario configuration file, click **Export XML** > **Remove**. + The configurator will delete the loaded file, even if you change the name of + the file in the dialog box. + +#. If your scenario has post-launched User VMs, continue to the next step + to create launch scripts for those VMs. If your scenario doesn't have + post-launched User VMs, you can skip to the final step to close the tool. + +#. Start the launch script configuration process by + selecting an option from the **Launch Setting** menu on the top banner of + the UI or by importing a launch configuration file via the **Import XML** + button. The 4 options are described below: + + * Click **Create a new launch script** from the **Launch Setting** menu to + dynamically create a new launch configuration for the current board. + + * Click **Load a default launch script** from the **Launch Setting** menu to + select a predefined launch configuration. + + * Click the **Launch Setting** menu and select a launch configuration + from the list under **launch setting list**. + + .. image:: images/choose_launch.png + :align: center + + * Click the **Import XML** button to import a customized launch + configuration file. + +#. Select a scenario for the current launch configuration from the +  **Select Scenario** drop-down box. + +#. When the launch configuration file is available for editing, the + configurable items appear below the **Launch Setting** row. You may need + to scroll down to see them. Example: + + .. image:: images/configure_launch.png + :align: center + + * You can edit these items directly in the text boxes, or you can choose + single or even multiple items from the drop-down list. + + * Read-only items are marked as gray. + + * Hover the mouse cursor over the item to see the description. + +#. Add or remove User VM (UOS) launch scripts: + + * Click **Configure an UOS below** to add a User VM launch script. + + * Click **Remove this VM** to remove a User VM launch script. + + .. image:: images/configure_launch_add.png + :align: center + +#. Click **Export XML** to save the launch configuration file. A dialog box + appears, enabling you to save the file to a specific folder by inputting the + absolute path to this folder. If you don’t specify a path, the file will + be saved to the default folder: +  ``acrn-hypervisor/../user_config/``. + + Before saving the launch configuration file, the configurator validates the + configurable items. If errors exist, the configurator lists all incorrectly + configured items and shows the errors. + +#. To delete a launch configuration file, click **Export XML** > **Remove**. + The configurator will delete the loaded file, even if you change the name of + the file in the dialog box. + +#. Click **Generate Launch Script** to save the current launch configuration + and then generate a launch script for each VM defined in the launch + configuration. + + .. image:: images/generate_launch_script.png + :align: center + +#. Confirm that the launch scripts appear in the + ``/output`` directory. + +#. When you are done using the tool, close the browser and press + :kbd:`CTRL` + :kbd:`C` to terminate the + ``acrn_configurator.py`` program running in the terminal window. \ No newline at end of file diff --git a/doc/tutorials/board_inspector_tool.rst b/doc/tutorials/board_inspector_tool.rst new file mode 100644 index 000000000..018dd72ad --- /dev/null +++ b/doc/tutorials/board_inspector_tool.rst @@ -0,0 +1,121 @@ +.. _board_inspector_tool: + +Board Inspector Tool +#################### + +This guide describes all features and uses of the tool. + +About the Board Inspector Tool +****************************** + +The board inspector tool ``board_inspector.py`` enables you to generate a board +configuration file on the target system. The board configuration file stores +hardware-specific information extracted from the target platform and is used to +customize your :ref:`ACRN configuration `. + +Generate a Board Configuration File +*********************************** + +.. important:: + + Whenever you change the configuration of the board, such as BIOS settings, + additional memory, or PCI devices, you must generate a new board + configuration file. + +The following steps describe all options in the board inspector for generating +a board configuration file. + +#. Make sure the target system is set up and ready to run the board inspector, + according to :ref:`gsg-board-setup` in the Getting Started Guide. + +#. Load the ``msr`` driver, used by the board inspector: + + .. code-block:: bash + + sudo modprobe msr + +#. Run the board inspector tool (``board_inspector.py``) to generate the board + configuration file. This example assumes the tool is in the + ``~/acrn-work/`` directory and ``my_board`` is the desired file + name. Feel free to modify the commands as needed. + + .. code-block:: bash + + cd ~/acrn-work/board_inspector/ + sudo python3 board_inspector.py my_board + + Upon success, the tool displays the following message: + + .. code-block:: console + + PTCT table has been saved to PTCT successfully! + +#. Confirm that the board configuration file ``my_board.xml`` was generated in + the current directory. + +.. _board_inspector_cl: + +Command-Line Options +******************** + +You can configure the board inspector via command-line options. Running the +board inspector with the ``-h`` option yields the following usage message: + +.. code-block:: + + usage: board_inspector.py [-h] [--out OUT] [--basic] [--loglevel LOGLEVEL] + [--check-device-status] board_name + + positional arguments: + + board_name the name of the board that runs the ACRN hypervisor + + optional arguments: + + -h, --help show this help message and exit + + --out OUT the name of board info file + + --basic do not extract advanced information such as ACPI namespace + + --loglevel LOGLEVEL choose log level, e.g. info, warning or error + + --check-device-status + + filter out devices whose _STA object evaluates to 0 + +Details about certain arguments: + +.. list-table:: + :widths: 33 77 + :header-rows: 1 + + * - Argument + - Details + + * - ``board_name`` + - Required. The board name is used as the file name of the board + configuration file and is placed inside the file for other tools to read. + + * - ``--out`` + - Optional. Specify a file path where the board configuration file will be + saved (example: ``~/acrn_work``). If only a filename is provided in this + option, the board inspector will generate the file in the current + directory. + + * - ``--basic`` + - Optional. By default, the board inspector parses the ACPI namespace when + generating board configuration files. This option provides a way to + disable ACPI namespace parsing in case the parsing blocks the generation + of board configuration files. + + * - ``--loglevel`` + - Optional. Choose log level, e.g., info, warning or error. + (Default is warning.) + + * - ``--check-device-status`` + - Optional. On some boards, the device status (reported by the _STA + object) returns 0 while the device object is still useful for + pass-through devices. By default, the board inspector includes the + devices in the board configuration file. This option filters out the + devices, so that they cannot be used. diff --git a/doc/tutorials/cpu_sharing.rst b/doc/tutorials/cpu_sharing.rst index fd8bc7ed8..f93bb3bab 100644 --- a/doc/tutorials/cpu_sharing.rst +++ b/doc/tutorials/cpu_sharing.rst @@ -130,7 +130,7 @@ Scheduler configuration * The scheduler used at runtime is defined in the scenario XML file via the :option:`hv.FEATURES.SCHEDULER` option. The default scheduler - is **SCHED_BVT**. Use the :ref:`ACRN configuration tool ` + is **SCHED_BVT**. Use the :ref:`ACRN configurator tool ` if you want to change this scenario option value. diff --git a/doc/tutorials/images/choose_launch.png b/doc/tutorials/images/choose_launch.png new file mode 100644 index 0000000000000000000000000000000000000000..3da086e9e96eb5e006551534af438ac19e69eee2 GIT binary patch literal 41879 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 U5)MtSG0>u+qN7~#$SUkV0B4IIbN~PV literal 0 HcmV?d00001 diff --git a/doc/tutorials/images/configure_launch.png b/doc/tutorials/images/configure_launch.png new file mode 100644 index 0000000000000000000000000000000000000000..56ed805d775c182d0ca1aafde2c2738cdf70a85a GIT binary patch literal 67307 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�{iEGR9u<)wbw}WCCpJgo`r(}^u~Wd;e;N>u+nVe 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 literal 0 HcmV?d00001 diff --git a/doc/tutorials/images/configure_launch_add.png b/doc/tutorials/images/configure_launch_add.png new file mode 100644 index 0000000000000000000000000000000000000000..88625f85277345c6ec81de7c92924d7668284668 GIT binary patch literal 67455 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 +enable it using the :ref:`ACRN configurator tool ` with these settings: -.. note:: Normally you'd use the configuration tool GUI to edit the scenario XML file. +.. note:: Normally you'd use the configurator tool GUI to edit the scenario XML file. The tool wasn't updated in time for the v2.5 release, so you'll need to manually edit the ACRN scenario XML configuration file to edit the ``SCHEDULER``, ``NVMX_ENABLED``, ``pcpu_id`` , ``guest_flags``, ``legacy_vuart``, and ``console_vuart`` settings for