diff --git a/doc/getting-started/building-from-source.rst b/doc/getting-started/building-from-source.rst index 4f1c3eef6..95791d0ba 100644 --- a/doc/getting-started/building-from-source.rst +++ b/doc/getting-started/building-from-source.rst @@ -15,13 +15,6 @@ The hypervisor binary is generated based on Kconfig configuration settings. Instructions about these settings can be found in :ref:`getting-started-hypervisor-configuration`. -.. note:: - A generic configuration named ``hypervisor/arch/x86/configs/generic.config`` - is provided to help developers try out ACRN more easily. - This configuration works for most x86-based platforms; it is supported - with limited features. It can be enabled by specifying ``BOARD=generic`` - in the ``make`` command line. - One binary for all platforms and all usage scenarios is currently not supported, primarily because dynamic configuration parsing is restricted in the ACRN hypervisor for the following reasons: @@ -146,7 +139,12 @@ INDUSTRY: HYBRID: This scenario defines a hybrid use case with three VMs: one - pre-launched VM, one pre-launched Service VM, and one post-launched + pre-launched Safety VM, one pre-launched Service VM, and one post-launched + Standard VM. + +HYBRID_RT: + This scenario defines a hybrid use case with three VMs: one + pre-launched RTVM, one pre-launched Service VM, and one post-launched Standard VM. Assuming that you are at the top level of the acrn-hypervisor directory, perform the following: @@ -166,11 +164,19 @@ Assuming that you are at the top level of the acrn-hypervisor directory, perform $ make all BOARD=whl-ipc-i5 SCENARIO=hybrid RELEASE=0 +* Build the ``HYBRID_RT`` scenario on the ``whl-ipc-i7``: + + .. code-block:: none + + $ make all BOARD=whl-ipc-i7 SCENARIO=hybrid_rt RELEASE=0 + * Build the ``SDC`` scenario on the ``nuc6cayh``: .. code-block:: none - $ make all BOARD=nuc6cayh SCENARIO=sdc RELEASE=0 + $ make all BOARD_FILE=$PWD/misc/vm_configs/xmls/board-xmls/nuc6cayh.xml \ + SCENARIO_FILE=$PWD/misc/vm_configs/xmls/config-xmls/nuc6cayh/sdc.xml + See the :ref:`hardware` document for information about platform needs for each scenario. @@ -200,10 +206,10 @@ top level of the acrn-hypervisor directory. The configuration file, named .. code-block:: none $ cd hypervisor - $ make defconfig BOARD=nuc6cayh + $ make defconfig BOARD=nuc7i7dnb SCENARIO=industry The BOARD specified is used to select a ``defconfig`` under -``arch/x86/configs/``. The other command line-based options (e.g. +``misc/vm_configs/scenarios/``. The other command line-based options (e.g. ``RELEASE``) take no effect when generating a defconfig. To modify the hypervisor configurations, you can either edit ``.config`` @@ -217,8 +223,9 @@ configurations and build the hypervisor using the updated ``.config``: # Modify the configurations per your needs $ cd ../ # Enter top-level folder of acrn-hypervisor source - $ make menuconfig -C hypervisor BOARD=kbl-nuc-i7 - + $ make menuconfig -C hypervisor + # modify your own "ACRN Scenario" and "Target board" that want to build + # in pop up menu Note that ``menuconfig`` is python3 only. @@ -261,8 +268,8 @@ of the acrn-hypervisor directory): .. code-block:: none - $ make BOARD_FILE=$PWD/misc/acrn-config/xmls/board-xmls/nuc7i7dnb.xml \ - SCENARIO_FILE=$PWD/misc/acrn-config/xmls/config-xmls/nuc7i7dnb/industry.xml FIRMWARE=uefi TARGET_DIR=xxx + $ make BOARD_FILE=$PWD/misc/vm_configs/xmls/board-xmls/nuc7i7dnb.xml \ + SCENARIO_FILE=$PWD/misc/vm_configs/xmls/config-xmls/nuc7i7dnb/industry.xml FIRMWARE=uefi TARGET_DIR=xxx .. note:: diff --git a/doc/tutorials/acrn_configuration_tool.rst b/doc/tutorials/acrn_configuration_tool.rst index d1f817466..335b318fa 100644 --- a/doc/tutorials/acrn_configuration_tool.rst +++ b/doc/tutorials/acrn_configuration_tool.rst @@ -26,7 +26,7 @@ The hypervisor configuration uses the ``Kconfig`` mechanism. The configuration file is located at ``acrn-hypervisor/hypervisor/arch/x86/Kconfig``. A board-specific ``defconfig`` file, for example -``acrn-hypervisor/hypervisor/arch/x86/configs/$(BOARD).config`` +``acrn-hypervisor/misc/vm_configs/scenarios/$(SCENARIO)/$(BOARD)/$(BOARD).config`` is loaded first; it is the default ``Kconfig`` for the specified board. Board configuration @@ -38,7 +38,7 @@ board settings, root device selection, and the kernel cmdline. It also includes **scenario-irrelevant** hardware-specific information such as ACPI/PCI and BDF information. The reference board configuration is organized as ``*.c/*.h`` files located in the -``acrn-hypervisor/hypervisor/arch/x86/configs/$(BOARD)/`` folder. +``acrn-hypervisor/misc/vm_configs/boards/$(BOARD)/`` folder. VM configuration ================= @@ -51,10 +51,12 @@ to launch post-launched User VMs. Scenario based VM configurations are organized as ``*.c/*.h`` files. The reference scenarios are located in the -``acrn-hypervisor/hypervisor/scenarios/$(SCENARIO)/`` folder. +``acrn-hypervisor/misc/vm_configs/scenarios/$(SCENARIO)/`` folder. +The board specific configurations on this scenario is stored in the +``acrn-hypervisor/misc/vm_configs/scenarios/$(SCENARIO)/$(BOARD)/`` folder. User VM launch script samples are located in the -``acrn-hypervisor/devicemodel/samples/`` folder. +``acrn-hypervisor/misc/vm_configs/sample_launch_scripts/`` folder. ACRN configuration XMLs *********************** @@ -77,7 +79,7 @@ Board XML format ================ The board XMLs are located in the -``acrn-hypervisor/misc/acrn-config/xmls/board-xmls/`` folder. +``acrn-hypervisor/misc/vm_configs/xmls/board-xmls/`` folder. The board XML has an ``acrn-config`` root element and a ``board`` attribute: .. code-block:: xml @@ -90,7 +92,7 @@ about the format of board XML and should not modify it. Scenario XML format =================== The scenario XMLs are located in the -``acrn-hypervisor/misc/acrn-config/xmls/config-xmls/`` folder. The +``acrn-hypervisor/misc/vm_configs/xmls/config-xmls/`` folder. The scenario XML has an ``acrn-config`` root element as well as ``board`` and ``scenario`` attributes: @@ -326,7 +328,7 @@ Additional scenario XML elements: Launch XML format ================= The launch XMLs are located in the -``acrn-hypervisor/misc/acrn-config/xmls/config-xmls/`` folder. +``acrn-hypervisor/misc/vm_configs/xmls/config-xmls/`` folder. The launch XML has an ``acrn-config`` root element as well as ``board``, ``scenario`` and ``uos_launcher`` attributes: @@ -599,7 +601,7 @@ Instructions scenario setting for the current board. The default scenario configuration xmls are located at - ``acrn-hypervisor/misc/acrn-config/xmls/config-xmls/[board]/``. + ``acrn-hypervisor/misc/vm_configs/xmls/config-xmls/[board]/``. We 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 @@ -644,7 +646,7 @@ Instructions .. note:: All customized scenario xmls will be in user-defined groups which are - located in ``acrn-hypervisor/misc/acrn-config/xmls/config-xmls/[board]/user_defined/``. + located in ``acrn-hypervisor/misc/vm_configs/xmls/config-xmls/[board]/user_defined/``. Before saving the scenario xml, the configuration app validates the configurable items. If errors exist, the configuration app lists all @@ -665,9 +667,9 @@ Instructions otherwise, the source code is generated into default folders and overwrite the old ones. The board-related configuration source code is located at - ``acrn-hypervisor/hypervisor/arch/x86/configs/[board]/`` and the + ``acrn-hypervisor/misc/vm_configs/boards/[board]/`` and the scenario-based VM configuration source code is located at - ``acrn-hypervisor/hypervisor/scenarios/[scenario]/``. + ``acrn-hypervisor/misc/vm_configs/scenarios/[scenario]/``. The **Launch Setting** is quite similar to the **Scenario Setting**: