doc: improve clarity of build-from-source intro

Rather than have the developer make edits, it was easier to merge
PR #3246 and submit a new PR with improvements.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
This commit is contained in:
David B. Kinder 2019-06-12 12:08:30 -07:00 committed by David Kinder
parent 32239cf55f
commit c91a54882f
1 changed files with 29 additions and 30 deletions

View File

@ -6,49 +6,48 @@ Build ACRN from Source
Introduction Introduction
************ ************
Following general embedded system programming model, ACRN hypervisor Following a general embedded system programming model, the ACRN
is designed to be customized per hardware platform and per usage scenario, hypervisor is designed to be customized at build-time per hardware
rather than one binary for all platforms/all usage scenarios. platform and per usage scenario, rather than one binary for all
scenarios.
Hypervisor binary is generated based on the platform configuration. The hypervisor binary is generated based on Kconfig configuration
Different platforms with different configurations shall be set up explicitly settings. Instruction about these settings can be found in
via Kconfig. :ref:`getting-started-hypervisor-configuration`.
Instruction can be found in :ref:`getting-started-hypervisor-configuration`.
.. note:: .. note::
A generic configuration named ``hypervisor/arch/x86/configs/generic.config`` A generic configuration named ``hypervisor/arch/x86/configs/generic.config``
is provided to help developers to try ACRN easily. This configuration is provided to help developers try out ACRN more easily. This configuration
will likely work for most platforms, supported with limited features. will likely work for most x86-based platforms, supported with limited features.
This configuration can be enabled by specifying ``BOARD=generic`` in make This configuration can be enabled by specifying ``BOARD=generic`` in
command line. the make command line.
One binary for all platforms/all usage scenarios is not supported because A primary reason one binary for all platforms and all usage scenarios is
dynamic parsing is restricted in ACRN hypervisor, for the following not supported is because dynamic configuration parsing is restricted in
considerations: ACRN hypervisor, for the following considerations:
* **Meet functional safety requirements** Absence of dynamic objects is * **Meeting functional safety requirements** Absence of dynamic objects is
required in functional safety standards. Implementation of the dynamic parsing required in functional safety standards. Implementation of dynamic parsing
would introduce the dynamic objects more or less. Restricting the dynamic would introduce dynamic objects. Avoiding use of dynamic
parsing would help ACRN hypervisor meet functional safety requirements. parsing would help the ACRN hypervisor meet functional safety requirements.
* **Reduce complexity** ACRN is a lightweight reference hypervisor, built for * **Reduce complexity** ACRN is a lightweight reference hypervisor, built for
embedded IoT. Since the platforms for embedded system is changing frequently, embedded IoT. As new platforms for embedded systems are rapidly introduced,
support of one binary for all platforms/all usage scenarios will become more support for one binary would require more and more complexity in the
and more complex. Restricting the dynamic parsing would help reduce the hypervisor, something we need to avoid.
complexity of the hypervisor.
* **Keep small footprint** Implementation of the dynamic parsing would introduce * **Keep small footprint** Implementation of dynamic parsing would introduce
hundreds or thousands of code. Restricting the dynamic parsing would help keep hundreds or thousands of code. Avoiding dynamic parsing would help keep
Lines of Code (LOC) of the hypervisor in a desirable range (around 30K). Lines of Code (LOC) of the hypervisor in a desirable range (around 30K).
* **Improve boot up time** Dynamic parsing at run time would increase the boot * **Improve boot up time** Dynamic parsing at runtime would increase the boot
up time. Restricting the dynamic parsing would help improve boot up time of up time. Using build-time configuration and not dynamic parsing would help
the hypervisor. improve boot up time of the hypervisor.
If you would like to build the ACRN hypervisor, device model, and tools from You can build the ACRN hypervisor, device model, and tools from
source, follow these steps. source, by following these steps.
Install build tools and dependencies Install build tools and dependencies
************************************ ************************************
@ -195,7 +194,7 @@ The build results are found in the ``build`` directory.
.. note:: .. note::
if you wish to use a different target folder for the build if you wish to use a different target folder for the build
artefacts, set the ``O`` (that is capital letter 'O') to the artifacts, set the ``O`` (that is capital letter 'O') to the
desired value. Example: ``make O=build-nuc BOARD=nuc6cayh``. desired value. Example: ``make O=build-nuc BOARD=nuc6cayh``.
Generating the documentation is described in details in the :ref:`acrn_doc` Generating the documentation is described in details in the :ref:`acrn_doc`