From 1d266956268eef9e9d34f5e07a30403537b7cb25 Mon Sep 17 00:00:00 2001 From: Xiangyang Wu Date: Wed, 10 Nov 2021 10:39:33 +0800 Subject: [PATCH] doc: refine enable s5 document Lifecycle Manager will be refined in v2.7, this patch will refine enable s5 document to align with the latest code. v1-->v2: Remove the prompt from all instructions in this document. Tracked-On: #6652 Signed-off-by: Xiangyang Wu --- doc/getting-started/getting-started.rst | 13 +- doc/tutorials/enable_s5.rst | 326 +++++++++++------- doc/tutorials/images/s5-scenario-2.dot | 2 +- .../images/s5_overall_architecture.png | Bin 29892 -> 20960 bytes 4 files changed, 208 insertions(+), 133 deletions(-) diff --git a/doc/getting-started/getting-started.rst b/doc/getting-started/getting-started.rst index 84b16f1f2..042de9220 100644 --- a/doc/getting-started/getting-started.rst +++ b/doc/getting-started/getting-started.rst @@ -527,6 +527,7 @@ Build ACRN disk="/media/$USER/"$(ls /media/$USER) cp linux-5.10.52-acrn-sos-x86.tar.gz $disk/ cp ~/acrn-work/acrn-hypervisor/build/hypervisor/acrn.bin $disk/ + cp ~/acrn-work/acrn-hypervisor/build/hypervisor/serial.conf $disk/ cp ~/acrn-work/my_board/output/launch_uos_id3.sh $disk/ cp ~/acrn-work/acpica-unix-20210105/generate/unix/bin/iasl $disk/ cp ~/acrn-work/acrn-hypervisor/build/acrn-2.6-unstable.tar.gz $disk/ @@ -535,6 +536,9 @@ Build ACRN Even though our sample default scenario defines six User VMs, we're only going to launch one of them, so we'll only need the one launch script. + .. note:: The :file:`serial.conf` is only generated if non standard vUARTs (not COM1~COM4) + are configured for Service VM in scenario XML file. + #. Insert the USB disk you just used into the target system and run these commands to copy the tar files locally: @@ -567,6 +571,7 @@ Build ACRN sudo mkdir -p /boot/acrn/ sudo cp $disk/acrn.bin /boot/acrn + sudo cp $disk/serial.conf /etc sudo cp $disk/iasl /usr/sbin/ cp $disk/launch_uos_id3.sh ~/acrn-work sudo umount $disk/ @@ -576,7 +581,13 @@ Build ACRN Install ACRN ************ -In the following steps, you will configure GRUB on the target system. +In the following steps, you will install serial configuration tool and configure GRUB on the target system. + +#. Install serial configuration tool in the target system as follows: + + .. code-block:: bash + + sudo apt-get install setserial #. On the target, find the root filesystem (rootfs) device name by using the ``lsblk`` command: diff --git a/doc/tutorials/enable_s5.rst b/doc/tutorials/enable_s5.rst index 8b988a1c1..1a6cb0beb 100644 --- a/doc/tutorials/enable_s5.rst +++ b/doc/tutorials/enable_s5.rst @@ -9,8 +9,8 @@ Introduction S5 is one of the `ACPI sleep states `_ that refers to the system being shut down (although some power may still be supplied to certain devices). In this document, S5 means the function to -shut down the **User VMs**, **the Service VM**, the hypervisor, and the -hardware. In most cases, directly shutting down the power of a computer +shut down the **User VMs**, **Service VM**, the hypervisor, and the +hardware. In most cases, directly powering off a computer system is not advisable because it can damage some components. It can cause corruption and put the system in an unknown or unstable state. On ACRN, the User VM must be shut down before powering off the Service VM. Especially for @@ -31,135 +31,200 @@ The diagram below shows the overall architecture: S5 overall architecture -- **Scenario I**: +- **vUART channel**: - The User VM's serial port device (``ttySn``) is emulated in the - Device Model, the channel from the Service VM to the User VM: - - .. graphviz:: images/s5-scenario-1.dot - :name: s5-scenario-1 - -- **Scenario II**: - - The User VM's (like RT-Linux or other RT-VMs) serial port device - (``ttySn``) is emulated in the Hypervisor, - the channel from the Service OS to the User VM: + The User VM's serial port device (``/dev/ttySn``) is emulated in the + Hypervisor. The channel from the Service VM to the User VM: .. graphviz:: images/s5-scenario-2.dot :name: s5-scenario-2 -Initiate a system S5 from within a User VM (e.g. HMI) -===================================================== +Lifecycle Manager Overview +========================== + +As part of the S5 reference design, a Lifecycle Manager daemon (``life_mngr`` in Linux, +``life_mngr_win.exe`` in Windows) runs in the Service VM and User VMs to implement S5. +Operator or user can use ``s5_trigger_linux.py`` or ``s5_trigger_win.py`` script to initialize +a system S5 in the Service VM or User VMs. The Lifecycle Manager in the Service VM and +User VMs wait for system S5 request on the local socket port. + +Initiate a System S5 from within a User VM (e.g., HMI) +====================================================== As shown in the :numref:`s5-architecture`, a request to Service VM initiates the shutdown flow. This could come from a User VM, most likely the HMI (running Windows or Linux). -When a human operator initiates the flow, the Lifecycle Manager (``life_mngr``) running in that -User VM will send the request via the vUART to the Lifecycle Manager in the Service VM which in -turn acknowledges the request and triggers the following flow. +When a human operator initiates the flow through running ``s5_trigger_linux.py`` or ``s5_trigger_win.py``, +the Lifecycle Manager (``life_mngr``) running in that User VM sends the system S5 request via +the vUART to the Lifecycle Manager in the Service VM which in turn acknowledges the request. +The Lifecycle Manager in Service VM sends ``poweroff_cmd`` request to User VMs, when the Lifecycle Manager +in User VMs receives ``poweroff_cmd`` request, it sends ``ack_poweroff`` to the Service VM; +then it shuts down the User VMs. If the User VMs is not ready to shut down, it can ignore the +``poweroff_cmd`` request. -.. note:: The User VM need to be authorized to be able to request a Shutdown, this is achieved by adding - ``--pm_notify_channel uart,allow_trigger_s5`` in the launch script of that VM. - And, there is only one VM in the system can be configured to request a shutdown. If there is a second User - VM launched with ``--pm_notify_channel uart,allow_trigger_s5``, ACRN will stop launching it and throw - out below error message: - ``initiate a connection on a socket error`` - ``create socket to connect life-cycle manager failed`` +.. note:: The User VM need to be authorized to be able to request a system S5, this is achieved + by configuring ``ALLOW_TRIGGER_S5`` in the Lifecycle Manager service configuration :file:`/etc/life_mngr.conf` + in the Service VM. There is only one User VM in the system can be configured to request a shutdown. + If this configuration is wrong, the system S5 request from User VM is rejected by + Lifecycle Manager of Service VM, the following error message is recorded in Lifecycle Manager + log :file:`/var/log/life_mngr.log` of Service VM: + ``The user VM is not allowed to trigger system shutdown`` -Trigger the User VM's S5 -======================== +Initiate a System S5 within the Service VM +========================================== -On the Service VM side, it uses the ``acrnctl`` tool to trigger the User VM's S5 flow: -``acrnctl stop user-vm-name``. Then, the Device Model sends a ``shutdown`` command -to the User VM through a channel. If the User VM receives the command, it will send an ``ACKED`` -to the Device Model. It is the Service VM's responsibility to check whether the User VMs -shut down successfully or not, and to decide when to shut the Service VM itself down. +On the Service VM side, it uses the ``s5_trigger_linux.py`` to trigger the system S5 flow. Then, +the Lifecycle Manager in service VM sends a ``poweroff_cmd`` request to the lifecycle manager in each +User VM through the vUART channel. If the User VM receives this request, it will send an ``ack_poweroff`` +to the lifecycle manager in Service VM. It is the Service VM's responsibility to check whether the +User VMs shut down successfully or not, and to decide when to shut the Service VM itself down. -User VM "Lifecycle Manager" -=========================== - -As part of the S5 reference design, a Lifecycle Manager daemon (``life_mngr`` in Linux, -``life_mngr_win.exe`` in Windows) runs in the User VM to implement S5. It waits for the shutdown -request from the Service VM on the serial port. The simple protocol between the Service VM and -User VM is as follows: when the daemon receives ``shutdown``, it sends ``ACKED`` to the Service VM; -then it shuts down the User VM. If the User VM is not ready to shut down, -it can ignore the ``shutdown`` command. +.. note:: Service VM is always allowed to trigger system S5 by default. .. _enable_s5: Enable S5 ********* -The procedure for enabling S5 is specific to the particular OS: +1. Configure communication vUART for Service VM and User VMs: -* For Linux (LaaG) or Windows (WaaG), include these lines in the launch script: + Add these lines in the hypervisor scenario XML file manually: - .. code-block:: bash + Example:: - # Power Management (PM) configuration using vUART channel - pm_channel="--pm_notify_channel uart" - pm_by_vuart="--pm_by_vuart pty,/run/acrn/life_mngr_"$vm_name - pm_vuart_node="-s 1:0,lpc -l com2,/run/acrn/life_mngr_"$vm_name + /* VM0 */ + SERVICE_VM + ... + + VUART_LEGACY_PIO + CONFIG_COM_BASE + 0 + 1 + 1 + + + VUART_LEGACY_PIO + CONFIG_COM_BASE + 0 + 2 + 2 + + ... + /* VM1 */ + POST_STD_VM + ... + + VUART_LEGACY_PIO + COM2_BASE + COM2_IRQ + 0 + 1 + + ... + /* VM2 */ + POST_STD_VM + ... + + VUART_LEGACY_PIO + INVALID_COM_BASE + COM2_IRQ + 0 + 2 + + + VUART_LEGACY_PIO + COM2_BASE + COM2_IRQ + 0 + 2 + + ... + /* VM3 */ + ... - acrn-dm -A -m $mem_size -s 0:0,hostbridge \ - ... - $pm_channel \ - $pm_by_vuart \ - $pm_vuart_node \ - ... + .. note:: These vUART is emulated in the hypervisor; expose the node as ``/dev/ttySn``. + For the User VM with the minimal VM ID, the communication vUART id should be 1. + For other User VMs, the vUART (id is 1) shoulbe be configured as invalid, the communication + vUART id should be 2 or others. -* For RT-Linux, include these lines in the launch script: +2. Build the Lifecycle Manager daemon, ``life_mngr``: - .. code-block:: bash + .. code-block:: none - # Power Management (PM) configuration - pm_channel="--pm_notify_channel uart" - pm_by_vuart="--pm_by_vuart tty,/dev/ttyS1" + cd acrn-hypervisor + make life_mngr - /usr/bin/acrn-dm -A -m $mem_size -s 0:0,hostbridge \ - ... - $pm_channel \ - $pm_by_vuart \ - ... +#. For Service VM, LaaG VM and RT-Linux VM, run the Lifecycle Manager daemon: - .. note:: For RT-Linux, the vUART is emulated in the hypervisor; expose the node as ``/dev/ttySn``. - -#. For LaaG and RT-Linux VMs, run the lifecycle manager daemon: - - a. Use these commands to build the lifecycle manager daemon, ``life_mngr``. + a. Copy ``life_mngr.conf``, ``s5_trigger_linux.py``, ``user_vm_shutdown.py``, ``life_mngr``, + and ``life_mngr.service`` into the Service VM and User VMs. .. code-block:: none - $ cd acrn-hypervisor - $ make life_mngr + scp build/misc/services/s5_trigger_linux.py root@:~/ + scp build/misc/services/life_mngr root@:/usr/bin/ + scp build/misc/services/life_mngr.conf root@:/etc/life_mngr/ + scp build/misc/services/life_mngr.service root@:/lib/systemd/system/ - #. Copy ``life_mngr`` and ``life_mngr.service`` into the User VM: + scp misc/services/life_mngr/user_vm_shutdown.py root@:~/ + + .. note:: :file:`user_vm_shutdown.py` is only needed to be copied into Service VM. + + #. Edit options in ``/etc/life_mngr/life_mngr.conf`` in the Service VM. .. code-block:: none - $ scp build/misc/services/life_mngr root@:/usr/bin/life_mngr - $ scp build/misc/services/life_mngr.service root@:/lib/systemd/system/life_mngr.service + VM_TYPE=service_vm + VM_NAME=Service_VM + DEV_NAME=tty:/dev/ttyS8,/dev/ttyS9,/dev/ttyS10,/dev/ttyS11,/dev/ttyS12,/dev/ttyS13,/dev/ttyS14 + ALLOW_TRIGGER_S5=/dev/ttySn - #. Use the below commands to enable ``life_mngr.service`` and restart the User VM. + .. note:: The mapping between User VM ID and communication serial device name (``/dev/ttySn``) + in the :file:`/etc/serial.conf`. If ``/dev/ttySn`` is configured in the ``ALLOW_TRIGGER_S5``, + this means system shutdown is allowed to be triggered in the corresponding User VM. + + #. Edit options in ``/etc/life_mngr/life_mngr.conf`` in the User VM. .. code-block:: none - # chmod +x /usr/bin/life_mngr - # systemctl enable life_mngr.service - # reboot + VM_TYPE=user_vm + VM_NAME= + DEV_NAME=tty:/dev/ttyS1 + #ALLOW_TRIGGER_S5=/dev/ttySn + + .. note:: The User VM name in this configuration file should be consistent with the VM name in the + launch script for the Post-launched User VM or the VM name which is specified in the hypervisor + scenario XML for the Pre-launched User VM. + + #. Use the following commands to enable ``life_mngr.service`` and restart the Service VM and User VMs. + + .. code-block:: none + + sudo chmod +x /usr/bin/life_mngr + sudo systemctl enable life_mngr.service + sudo reboot + + .. note:: For the Pre-launched User VM, need restart Lifecycle Manager service manually + after Lifecycle Manager in Service VM starts. #. For the WaaG VM, run the lifecycle manager daemon: - a) Build the ``life_mngr_win.exe`` application:: + a) Build the ``life_mngr_win.exe`` application and ``s5_trigger_win.py``:: - $ cd acrn-hypervisor - $ make life_mngr + cd acrn-hypervisor + make life_mngr - .. note:: If there is no ``x86_64-w64-mingw32-gcc`` compiler, you can run ``sudo apt install gcc-mingw-w64-x86-64`` - on Ubuntu to install it. + .. note:: If there is no ``x86_64-w64-mingw32-gcc`` compiler, you can run + ``sudo apt install gcc-mingw-w64-x86-64`` on Ubuntu to install it. + + #) Copy ``s5_trigger_win.py`` into the WaaG VM. #) Set up a Windows environment: - I) Download the :kbd:`Visual Studio 2019` tool from ``_, + 1) Download the Python3 from ``_, install + "Python 3.8.10" in WaaG. + + #) If Lifecycle Manager for WaaG will be built in Windows, + download the Visual Studio 2019 tool from ``_, and choose the two options in the below screenshots to install "Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019 (x86 or X64)" in WaaG: @@ -167,6 +232,8 @@ The procedure for enabling S5 is specific to the particular OS: .. figure:: images/Microsoft-Visual-C-install-option-2.png + .. note:: If Lifecycle Manager for WaaG is built in Linux, Visual Studio 2019 tool is not needed for WaaG. + #) In WaaG, use the :kbd:`Windows + R` shortcut key, input ``shell:startup``, click :kbd:`OK` and then copy the ``life_mngr_win.exe`` application into this directory. @@ -179,15 +246,15 @@ The procedure for enabling S5 is specific to the particular OS: .. figure:: images/open-com-success.png -#. If the Service VM is being shut down (transitioning to the S5 state), it can call - ``acrnctl stop vm-name`` to shut down the User VMs. +#. If ``s5_trigger_linux.py`` is run in the Service VM, the Service VM will shut down (transitioning to the S5 state), + it sends poweroff request to shut down the User VMs. .. note:: S5 state is not automatically triggered by a Service VM shutdown; this needs - to be run before powering off the Service VM. + to run ``s5_trigger_linux.py`` in the Service VM. How to Test *********** - As described in :ref:`vuart_config`, two vUARTs are defined in + As described in :ref:`vuart_config`, two vUARTs are defined for User VM in pre-defined ACRN scenarios: vUART0/ttyS0 for the console and vUART1/ttyS1 for S5-related communication (as shown in :ref:`s5-architecture`). @@ -204,49 +271,45 @@ How to Test #. Refer to the :ref:`enable_s5` section to set up the S5 environment for the User VMs. - .. note:: RT-Linux's UUID must use ``495ae2e5-2603-4d64-af76-d4bc5a8ec0e5``. Also, the - shared EFI image is required for launching the RT-Linux VM. - .. note:: Use the ``systemctl status life_mngr.service`` command to ensure the service is working on the LaaG or RT-Linux: .. code-block:: console * life_mngr.service - ACRN lifemngr daemon - Loaded: loaded (/usr/lib/systemd/system/life_mngr.service; enabled; vendor p> - Active: active (running) since Tue 2019-09-10 07:15:06 UTC; 1min 11s ago - Main PID: 840 (life_mngr) + Loaded: loaded (/lib/systemd/system/life_mngr.service; enabled; vendor preset: enabled) + Active: active (running) since Thu 2021-11-11 12:43:53 CST; 36s ago + Main PID: 197397 (life_mngr) .. note:: For WaaG, we need to close ``windbg`` by using the ``bcdedit /set debug off`` command IF you executed the ``bcdedit /set debug on`` when you set up the WaaG, because it occupies the ``COM2``. -#. Use the ``acrnctl stop`` command on the Service VM to trigger S5 to the User VMs: +#. Use the ``user_vm_shutdown.py`` in the Service VM to shut down the User VMs: - .. code-block:: console + .. code-block:: none - # acrnctl stop vm1 + sudo python3 ~/user_vm_shutdown.py + + .. note:: The User VM name is configured in the :file:`life_mngr.conf` of User VM. #. Use the ``acrnctl list`` command to check the User VM status. - .. code-block:: console + .. code-block:: none - # acrnctl list - vm1 stopped + sudo acrnctl list + stopped System Shutdown *************** -Using a coordinating script, ``misc/life_mngr/s5_trigger.sh``, in conjunction with -the lifecycle manager in each VM, graceful system shutdown can be performed. +Using a coordinating script, ``s5_trigger_linux.py`` or ``s5_trigger_win.py``, +in conjunction with the Lifecycle Manager in each VM, graceful system shutdown +can be performed. -.. note:: Please install ``s5_trigger.sh`` manually to root's home directory. - - .. code-block:: none - - $ sudo install -p -m 0755 -t ~root misc/life_mngr/s5_trigger.sh - -In the ``hybrid_rt`` scenario, the script can send a shutdown command via ``ttyS1`` -in the Service VM, which is connected to ``ttyS1`` in the pre-launched VM. The -lifecycle manager in the pre-launched VM receives the shutdown command, sends an +In the ``hybrid_rt`` scenario, operator can use the script to send a system shutdown +request via ``/var/lib/life_mngr/monitor.sock`` to User VM which is configured to be allowed to +trigger system S5, this system shutdown request is forwarded to the Service VM, the +Service VM sends poweroff request to each User VMs (Pre-launched VM or Post-launched VM) +through vUART. The Lifecycle Manager in the User VM receives the poweroff request, sends an ack message, and proceeds to shut itself down accordingly. .. figure:: images/system_shutdown.png @@ -254,22 +317,23 @@ ack message, and proceeds to shut itself down accordingly. Graceful system shutdown flow -#. The HMI Windows Guest uses the lifecycle manager to send a shutdown request to - the Service VM -#. The lifecycle manager in the Service VM responds with an ack message and - executes ``s5_trigger.sh`` -#. After receiving the ack message, the lifecycle manager in the HMI Windows Guest - shuts down the guest -#. The ``s5_trigger.sh`` script in the Service VM shuts down the Linux Guest by - using ``acrnctl`` to send a shutdown request -#. After receiving the shutdown request, the lifecycle manager in the Linux Guest - responds with an ack message and shuts down the guest -#. The ``s5_trigger.sh`` script in the Service VM shuts down the Pre-launched RTVM - by sending a shutdown request to its ``ttyS1`` -#. After receiving the shutdown request, the lifecycle manager in the Pre-launched - RTVM responds with an ack message -#. The lifecycle manager in the Pre-launched RTVM shuts down the guest using - standard PM registers -#. After receiving the ack message, the ``s5_trigger.sh`` script in the Service VM - shuts down the Service VM -#. The hypervisor shuts down the system after all of its guests have shut down +#. The HMI in the Windows VM uses ``s5_trigger_win.py`` to send + system shutdown request to the Lifecycle Manager, Lifecycle Manager + forwards this request to Lifecycle Manager in the Service VM. +#. The Lifecycle Manager in the Service VM responds with an ack message and + sends ``poweroff_cmd`` request to Windows VM. +#. After receiving the ``poweroff_cmd`` request, the Lifecycle Manager in the HMI + Windows VM responds with an ack message, then shuts down VM. +#. The Lifecycle Manager in the Service VM sends ``poweroff_cmd`` request to + Linux User VM. +#. After receiving the ``poweroff_cmd`` request, the Lifecycle Manager in the + Linux User VM responds with an ack message, then shuts down VM. +#. The Lifecycle Manager in the Service VM sends ``poweroff_cmd`` request to + Pre-launched RTVM. +#. After receiving the ``poweroff_cmd`` request, the Lifecycle Manager in + the Pre-launched RTVM responds with an ack message. +#. The Lifecycle Manager in the Pre-launched RTVM shuts down the VM using + ACPI PM registers. +#. After receiving the ack message from all user VMs, the Lifecycle Manager + in the Service VM shuts down VM. +#. The hypervisor shuts down the system after all VMs have shut down. diff --git a/doc/tutorials/images/s5-scenario-2.dot b/doc/tutorials/images/s5-scenario-2.dot index 453c54472..9df1c4622 100644 --- a/doc/tutorials/images/s5-scenario-2.dot +++ b/doc/tutorials/images/s5-scenario-2.dot @@ -2,5 +2,5 @@ digraph G { node [shape=plaintext fontsize=12]; rankdir=LR; bgcolor="transparent"; - "ACRN-DM" -> "Service VM:/dev/ttyS1" -> "ACRN hypervisor" -> "User VM:/dev/ttyS1" [arrowsize=.5]; + "Service VM:/dev/ttyS8" -> "ACRN hypervisor" -> "User VM:/dev/ttyS1" [arrowsize=.5]; } diff --git a/doc/tutorials/images/s5_overall_architecture.png b/doc/tutorials/images/s5_overall_architecture.png index aefc24bdb74f3fd129ebb49baee6e4d62b6f9b67..015c0434917c4d57b5f2baa1a014858c81c161f1 100644 GIT binary patch literal 20960 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 SLJNEcxu$kgHDB2(=>GzgS=a{v literal 29892 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