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:
parent
32239cf55f
commit
c91a54882f
|
@ -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`
|
||||||
|
|
Loading…
Reference in New Issue