|
3 | 3 | Build ACRN from Source
|
4 | 4 | ######################
|
5 | 5 |
|
| 6 | +Introduction |
| 7 | +************ |
| 8 | + |
| 9 | +Following general embedded system programming model, ACRN hypervisor |
| 10 | +is designed to be customized per hardware platform and per usage scenario, |
| 11 | +rather than one binary for all platforms/all usage scenarios. |
| 12 | + |
| 13 | +Hypervisor binary is generated based on the platform configuration. |
| 14 | +Different platforms with different configurations shall be set up explicitly |
| 15 | +via Kconfig. |
| 16 | +Instruction can be found in :ref:`getting-started-hypervisor-configuration`. |
| 17 | + |
| 18 | +.. note:: |
| 19 | + A generic configuration named ``hypervisor/arch/x86/configs/generic.config`` |
| 20 | + is provided to help developers to try ACRN easily. This configuration |
| 21 | + will likely work for most platforms, supported with limited features. |
| 22 | + This configuration can be enabled by specifying ``BOARD=generic`` in make |
| 23 | + command line. |
| 24 | + |
| 25 | + |
| 26 | +One binary for all platforms/all usage scenarios is not supported because |
| 27 | +dynamic parsing is restricted in ACRN hypervisor, for the following |
| 28 | +considerations: |
| 29 | + |
| 30 | +* **Meet functional safety requirements** Absence of dynamic objects is |
| 31 | + required in functional safety standards. Implementation of the dynamic parsing |
| 32 | + would introduce the dynamic objects more or less. Restricting the dynamic |
| 33 | + parsing would help ACRN hypervisor meet functional safety requirements. |
| 34 | + |
| 35 | +* **Reduce complexity** ACRN is a lightweight reference hypervisor, built for |
| 36 | + embedded IoT. Since the platforms for embedded system is changing frequently, |
| 37 | + support of one binary for all platforms/all usage scenarios will become more |
| 38 | + and more complex. Restricting the dynamic parsing would help reduce the |
| 39 | + complexity of the hypervisor. |
| 40 | + |
| 41 | +* **Keep small footprint** Implementation of the dynamic parsing would introduce |
| 42 | + hundreds or thousands of code. Restricting the dynamic parsing would help keep |
| 43 | + Lines of Code (LOC) of the hypervisor in a desirable range (around 30K). |
| 44 | + |
| 45 | +* **Improve boot up time** Dynamic parsing at run time would increase the boot |
| 46 | + up time. Restricting the dynamic parsing would help improve boot up time of |
| 47 | + the hypervisor. |
| 48 | + |
| 49 | + |
6 | 50 | If you would like to build the ACRN hypervisor, device model, and tools from
|
7 | 51 | source, follow these steps.
|
8 | 52 |
|
|
0 commit comments