mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-05-28 18:04:23 +00:00
While we hoped to make the headings consistent over time while doing other edits, we should instead just make the squirrels happy and do them all at once or they'll likely never be made consistent. A python script was used to find the headings, and then a call to https://pypi.org/project/titlecase to transform the title. A visual inspection was used to tweak a few unexpected resulting titles. Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
120 lines
4.4 KiB
ReStructuredText
120 lines
4.4 KiB
ReStructuredText
.. _pre_launched_rt:
|
|
|
|
Pre-Launched Preempt-Rt Linux Mode in ACRN
|
|
##########################################
|
|
|
|
The Pre-Launched Preempt-RT Linux Mode of ACRN, abbreviated as
|
|
Pre-Launched RT mode, is an ACRN configuration scenario. Pre-Launched RT
|
|
mode allows you to boot ACRN with a preempt-rt Linux running in VM0, and
|
|
the Service VM running in VM1. VM0 and VM1 are both pre-launched VMs,
|
|
and their resources are partitioned from those on the physical platform.
|
|
|
|
.. figure:: images/pre_launched_rt.png
|
|
:align: center
|
|
|
|
Prerequisites
|
|
*************
|
|
|
|
Because the Pre-Launched RT VM and Service VM are physically isolated
|
|
from each other, they must have their own devices to run a common OS,
|
|
such as Linux. Also, the platform must support booting ACRN with
|
|
multiple kernel images. So, your platform must have:
|
|
|
|
- Two hard disk drives, one for the Pre-Launched RT and one for the Service
|
|
VM
|
|
- Two network devices
|
|
- GRUB multiboot support
|
|
|
|
Example of Pre-Launched RT
|
|
**************************
|
|
|
|
Take the Whiskey Lake WHL-IPC-I5 board (as described in :ref:`hardware`) for
|
|
example. This platform can connect both an NVMe and a SATA drive and has
|
|
two Ethernet ports. We will passthrough the SATA and Ethernet 03:00.0
|
|
devices into the Pre-Launched RT VM, and give the rest of the devices to
|
|
the Service VM.
|
|
|
|
Install SOS With Grub on NVMe
|
|
=============================
|
|
|
|
As with the Hybrid and Logical Partition scenarios, the Pre-Launched RT
|
|
mode must boot using GRUB. The ACRN hypervisor is loaded as a GRUB
|
|
multiboot kernel, while the Pre-Launched RT kernel and Service VM
|
|
kernels are loaded as multiboot modules. The ACRN hypervisor, Service
|
|
VM, and Pre-Launched RT kernel images are all located on the NVMe drive.
|
|
We recommend installing Ubuntu on the NVMe drive as the Service VM OS,
|
|
which also has the required GRUB image to launch Pre-Launched RT mode.
|
|
Refer to :ref:`rt_industry_ubuntu_setup`, to
|
|
install Ubuntu on the NVMe drive, and use grub to launch the Service VM.
|
|
|
|
Install Pre-Launched RT Filesystem on SATA and Kernel Image on NVMe
|
|
===================================================================
|
|
|
|
Follow the :ref:`install-ubuntu-rtvm-sata` guide to install RT rootfs on SATA drive.
|
|
|
|
The Kernel should
|
|
be on the NVMe drive along with GRUB. You'll need to copy the RT kernel
|
|
to the NVMe drive. Once you have successfully installed and booted
|
|
Ubuntu from the NVMe drive, you'll then need to copy the RT kernel from
|
|
the SATA to the NVMe drive:
|
|
|
|
.. code-block:: none
|
|
|
|
# mount /dev/nvme0n1p1 /boot
|
|
# mount /dev/sda1 /mnt
|
|
# cp /mnt/bzImage /boot/EFI/BOOT/bzImage_RT
|
|
|
|
Build ACRN With Pre-Launched RT Mode
|
|
====================================
|
|
|
|
The ACRN VM configuration framework can easily configure resources for
|
|
Pre-Launched VMs. On Whiskey Lake WHL-IPC-I5, to passthrough SATA and
|
|
Ethernet 03:00.0 devices to the Pre-Launched RT VM, build ACRN with:
|
|
|
|
.. code-block:: none
|
|
|
|
make BOARD_FILE=$PWD/misc/acrn-config/xmls/board-xmls/whl-ipc-i5.xml SCENARIO_FILE=$PWD/misc/acrn-config/xmls/config-xmls/whl-ipc-i5/hybrid_rt.xml RELEASE=0
|
|
|
|
After the build completes, please update ACRN on NVMe. It is
|
|
/boot/EFI/BOOT/acrn.bin, if /dev/nvme0n1p1 is mounted at /boot.
|
|
|
|
Add Pre-Launched RT Kernel Image to GRUB Config
|
|
===============================================
|
|
|
|
The last step is to modify the GRUB configuration file to load the Pre-Launched
|
|
kernel. (For more information about this, see :ref:`Update Grub for the Ubuntu Service VM
|
|
<rt_industry_ubuntu_setup>`.) The grub config file will look something
|
|
like this:
|
|
|
|
.. code-block:: none
|
|
|
|
menuentry 'ACRN multiboot2 hybrid'{
|
|
echo 'loading multiboot2 hybrid...'
|
|
multiboot2 /EFI/BOOT/acrn.bin
|
|
module2 /EFI/BOOT/bzImage_RT RT_bzImage
|
|
module2 /EFI/BOOT/bzImage Linux_bzImage
|
|
module2 /boot/ACPI_VM0.bin ACPI_VM0
|
|
}
|
|
|
|
Reboot the system, and it will boot into Pre-Launched RT Mode
|
|
|
|
.. code-block:: none
|
|
|
|
ACRN:\>vm_list
|
|
VM_UUID VM_ID VM_NAME VM_STATE
|
|
================================ ===== ================================ ========
|
|
26c5e0d88f8a47d88109f201ebd61a5e 0 ACRN PRE-LAUNCHED VM0 Running
|
|
dbbbd4347a574216a12c2201f1ab0240 1 ACRN SOS VM Running
|
|
ACRN:\>
|
|
|
|
Connect console of VM0, via 'vm_console' ACRN shell command (Press
|
|
:kbd:`Ctrl` + :kbd:`Space` to return to the ACRN shell.)
|
|
|
|
.. code-block:: none
|
|
|
|
ACRN:\>vm_console 0
|
|
|
|
----- Entering VM 0 Shell -----
|
|
|
|
root@clr-85a5e9fbac604fbbb92644991f6315df ~ #
|