doc: update release branch with changed docs

After the release branch is made, we continue with documentation up to
the release date.  This PR includes all those changes for the v3.2
release.

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
This commit is contained in:
David B. Kinder 2023-08-07 09:15:38 -07:00 committed by David Kinder
parent 6ad053fc88
commit 7e28a17a53
13 changed files with 482 additions and 315 deletions

View File

@ -1809,7 +1809,7 @@ LATEX_HIDE_INDICES = NO
# The default value is: NO.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_SOURCE_CODE = NO
# LATEX_SOURCE_CODE = NO
# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
# bibliography, e.g. plainnat, or ieeetr. See
@ -1891,7 +1891,7 @@ RTF_EXTENSIONS_FILE =
# The default value is: NO.
# This tag requires that the tag GENERATE_RTF is set to YES.
RTF_SOURCE_CODE = NO
# RTF_SOURCE_CODE = NO
#---------------------------------------------------------------------------
# Configuration options related to the man page output
@ -1989,7 +1989,7 @@ DOCBOOK_OUTPUT = docbook
# The default value is: NO.
# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
DOCBOOK_PROGRAMLISTING = NO
# DOCBOOK_PROGRAMLISTING = NO
#---------------------------------------------------------------------------
# Configuration options for the AutoGen Definitions output
@ -2187,7 +2187,7 @@ EXTERNAL_PAGES = YES
# powerful graphs.
# The default value is: YES.
CLASS_DIAGRAMS = YES
# CLASS_DIAGRAMS = YES
# You can define message sequence charts within doxygen comments using the \msc
# command. Doxygen will then run the mscgen tool (see:

View File

@ -3,6 +3,45 @@
Security Advisory
#################
Addressed in ACRN v3.0.2
************************
We recommend that all developers using v3.0.1 or earlier upgrade to this v3.0.2
release (or later), which addresses the following security issue discovered in
previous releases. For v3.1 users, these issues are addressed in the v3.2
release:
-----
- Board_inspector: use executables found under system paths
Using partial executable paths in the board inspector may cause unintended
results when another executable has the same name and is also detectable in
the search paths.
Introduce a wrapper module (`external_tools`) which locates executables
only under system paths such as /usr/bin and /usr/sbin and converts partial
executable paths to absolute ones before executing them via the subprocess
module. All invocations to `subprocess.run` or `subprocess.Popen`
throughout the board inspector are replaced with `external_tools.run`, with
the only exception being the invocation to the legacy board parser which
already uses an absolute path to the current Python interpreter.
**Affected Release:** v3.1, v3.0.1 and earlier
- Add tarfile member sanitization to extractall()
A directory traversal vulnerability in the Python tarfile module extractall() functions
could allow user-assisted remote attackers to overwrite arbitrary files via
a ``..`` (dot dot) sequence in filenames in a tar archive, related to CVE-2001-1267.
(Addresses security issue tracked by CVE-2007-4559)
**Affected Release:** v3.1, v3.0.1 and earlier
- PMU (Performance Monitoring Unit) is passed through to an RTVM only for debug mode
Enabling Pass-through PMU counters to RTVM can cause workload interference
in a release build, so enable PMU passthrough only when building ACRN in
debug mode.
**Affected Release:** v3.1, v3.0.1 and earlier
Addressed in ACRN v3.0.1
************************
We recommend that all developers upgrade to this v3.0.1 release (or later), which

View File

@ -46,7 +46,8 @@ extensions = [
# extlinks provides a macro template
extlinks = {
'acrn-issue': ('https://github.com/projectacrn/acrn-hypervisor/issues/%s', '#')
'acrn-issue': ('https://github.com/projectacrn/acrn-hypervisor/issues/%s', '#'),
'acrn-pr': ('https://github.com/projectacrn/acrn-hypervisor/pull/%s', '#')
}
# use intersphinx linking to link to previous version release notes
@ -133,7 +134,7 @@ language = 'en'
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This patterns also effect to html_static_path and html_extra_path
exclude_patterns = ['_build', 'misc/README.rst' ]
exclude_patterns = ['_build', 'misc/README.rst', 'venv' ]
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'

View File

@ -3312,8 +3312,7 @@ each function:
``@post <post-condition description>``.
12) The brief description of the function return value shall be documented
with the format ``@return <brief description of return value>``.
13) A void-returning function shall be documented with the format
``@return None``.
13) A void-returning function shall not be documented with ``@return``.
14) The comments explaining the actual return values shall be documented with
the format ``@retval <return value> <return value explanation>``.
15) If the description of one element needs to span multiple lines, each line

View File

@ -53,11 +53,6 @@ Before you begin, make sure your machines have the following prerequisites:
- USB keyboard and mouse
- Monitor
- Ethernet cable and Internet access
- A second USB disk with minimum 16GB capacity. Format your USB disk with a
file system that supports files greater than 4GB: extFAT or NTFS, but not
FAT32. We'll use this USB disk to copy files between the development
computer and target system. Instead of a USB drive, you can copy files
between systems over the network using the ``scp`` command.
- Local storage device (NVMe or SATA drive, for example). We recommend having
40GB or more of free space.
@ -135,20 +130,12 @@ To set up the ACRN build environment on the development computer:
cd ~/acrn-work
git clone https://github.com/projectacrn/acrn-hypervisor.git
cd acrn-hypervisor
git checkout master
git checkout release_3.2
cd ..
git clone https://github.com/projectacrn/acrn-kernel.git
cd acrn-kernel
git checkout master
#. Configure git with your name and email address:
.. code-block:: none
git config --global user.name "David Developer"
git config --global user.email "david.developer@company.com"
git checkout release_3.2
.. _gsg-board-setup:
@ -297,47 +284,11 @@ Generate a Board Configuration File
In a few seconds, the build generates a board_inspector Debian package in the
parent (``~/acrn-work``) directory.
#. Copy the Board Inspector Debian package from the development computer to the
target system.
#. Use the ``scp`` command to copy the board inspector Debian package from your
development computer to the ``/tmp`` directory on the target system. Replace
``10.0.0.200`` with the target system's IP address you found earlier::
Option 1: Use ``scp``
Use the ``scp`` command to copy the Debian package from your development
computer to the ``/tmp`` directory on the target
system. Replace ``10.0.0.200`` with the target system's IP address you found earlier::
scp ~/acrn-work/python3-acrn-board-inspector*.deb acrn@10.0.0.200:/tmp
Option 2: Use a USB disk
a. On the development computer, insert the USB disk that you intend to use to
copy files.
#. Ensure that there is only one USB disk inserted by running the following
command:
.. code-block:: bash
ls /media/$USER
Confirm that only one disk name appears. You'll use that disk name in the following steps.
#. Copy the Board Inspector Debian package to the USB disk:
.. code-block:: bash
cd ~/acrn-work/
disk="/media/$USER/"$(ls /media/$USER)
cp -r python3-acrn-board-inspector*.deb "$disk"/
sync && sudo umount "$disk"
#. Remove the USB disk from the development computer and insert it into the target system.
#. Copy the Board Inspector Debian package from the USB disk to the target:
.. code-block:: bash
mkdir -p ~/acrn-work
disk="/media/$USER/"$(ls /media/$USER)
cp -r "$disk"/python3-acrn-board-inspector*.deb /tmp
scp ~/acrn-work/python3-acrn-board-inspector*.deb acrn@10.0.0.200:/tmp
#. Now that we've got the Board Inspector Debian package on the target system, install it there:
@ -349,9 +300,9 @@ Generate a Board Configuration File
.. code-block:: bash
reboot
sudo reboot
#. Run the Board Inspector to generate the board configuration file. This
#. Run the Board Inspector on the target system to generate the board configuration file. This
example uses the parameter ``my_board`` as the file name. The Board Inspector
can take a few minutes to scan your target system and create the board XML
file with your target system's information.
@ -359,7 +310,7 @@ Generate a Board Configuration File
.. code-block:: bash
cd ~/acrn-work
sudo board_inspector my_board
sudo acrn-board-inspector my_board
.. note::
@ -373,37 +324,12 @@ Generate a Board Configuration File
ls ./my_board.xml
#. Copy ``my_board.xml`` from the target to the development computer. Again we
have two options:
#. From your development computer, use the ``scp`` command to copy the board
configuration file on your target system back to the ``~/acrn-work``
directory on your development computer. Replace ``10.0.0.200`` with the
target system's IP address you found earlier::
Option 1: Use ``scp``
From your development computer, use the ``scp`` command to copy the board
configuration file from your target system back to the
``~/acrn-work`` directory on your development computer. Replace
``10.0.0.200`` with the target system's IP address you found earlier::
scp acrn@10.0.0.200:~/acrn-work/my_board.xml ~/acrn-work/
Option 2: Use a USB disk
a. Make sure the USB disk is connected to the target.
#. Copy ``my_board.xml`` to the USB disk:
.. code-block:: bash
disk="/media/$USER/"$(ls /media/$USER)
cp ~/acrn-work/my_board.xml "$disk"/
sync && sudo umount "$disk"
#. Insert the USB disk into the development computer.
#. Copy ``my_board.xml`` from the USB disk to the development computer:
.. code-block:: bash
disk="/media/$USER/"$(ls /media/$USER)
cp "$disk"/my_board.xml ~/acrn-work
sync && sudo umount "$disk"
scp acrn@10.0.0.200:~/acrn-work/my_board.xml ~/acrn-work/
.. _gsg-dev-setup:
@ -413,7 +339,7 @@ Generate a Scenario Configuration File and Launch Script
********************************************************
In this step, you will download, install, and use the `ACRN Configurator
<https://github.com/projectacrn/acrn-hypervisor/releases/download/v3.1/acrn-configurator-3.2-unstable.deb>`__
<https://github.com/projectacrn/acrn-hypervisor/releases/download/v3.2/acrn-configurator-3.2.deb>`__
to generate a scenario configuration file and launch script.
A **scenario configuration file** is an XML file that holds the parameters of
@ -429,8 +355,7 @@ post-launched User VM. Each User VM has its own launch script.
.. code-block:: bash
cd ~/acrn-work
wget https://github.com/projectacrn/acrn-hypervisor/releases/download/v3.1/acrn-configurator-3.2-unstable.deb
cp acrn-configurator-3.2-unstable.deb /tmp
wget https://github.com/projectacrn/acrn-hypervisor/releases/download/v3.2/acrn-configurator-3.2.deb -P /tmp
If you already have a previous version of the acrn-configurator installed,
you should first remove it:
@ -443,7 +368,7 @@ post-launched User VM. Each User VM has its own launch script.
.. code-block:: bash
sudo apt install -y /tmp/acrn-configurator-3.2-unstable.deb
sudo apt install -y /tmp/acrn-configurator-3.2.deb
#. Launch the ACRN Configurator:
@ -541,9 +466,9 @@ post-launched User VM. Each User VM has its own launch script.
#. Confirm that the **VM type** is ``Standard``. In the previous step,
``STD`` in the VM name is short for Standard.
#. Scroll down to **Memory size (MB)** and change the value to ``1024``. For
#. Scroll down to **Memory size (MB)** and change the value to ``2048``. For
this example, we will use Ubuntu 22.04 to boot the post-launched VM.
Ubuntu 22.04 needs at least 1024 MB to boot.
Ubuntu 22.04 needs at least 2048 MB to boot.
#. For **Physical CPU affinity**, select pCPU ID ``0``, then click **+** and
select pCPU ID ``1`` to affine (or pin) the VM to CPU cores 0 and 1. (That will
@ -554,13 +479,17 @@ post-launched User VM. Each User VM has its own launch script.
log in to the User VM later in this guide.
#. For **Virtio block device**, click **+** and enter
``/home/acrn/acrn-work/ubuntu-22.04.1-desktop-amd64.iso``. This parameter
``/home/acrn/acrn-work/ubuntu-22.04.2-desktop-amd64.iso``. This parameter
specifies the VM's OS image and its location on the target system. Later
in this guide, you will save the ISO file to that directory. (If you used
a different username when installing Ubuntu on the target system, here's
where you'll need to change the ``acrn`` username to the username you used.)
.. image:: images/configurator-postvm.png
.. image:: images/configurator_postvm01.png
:align: center
:class: drop-shadow
.. image:: images/configurator-postvm02.png
:align: center
:class: drop-shadow
@ -585,14 +514,14 @@ post-launched User VM. Each User VM has its own launch script.
.. rst-class:: numbered-step
Build ACRN
***************
**********
#. On the development computer, build the ACRN hypervisor:
.. code-block:: bash
cd ~/acrn-work/acrn-hypervisor
debian/debian_build.sh clean && debian/debian_build.sh -c ~/acrn-work/MyConfiguration -b my_board.board -s scenario
debian/debian_build.sh clean && debian/debian_build.sh -c ~/acrn-work/MyConfiguration
The build typically takes a few minutes. When done, the build generates several
Debian packages in the parent (``~/acrn-work``) directory:
@ -611,7 +540,7 @@ Build ACRN
acrn-tools_*.deb
grub-acrn_*.deb
The Debian packages contain the ACRN hypervisor and tools to ease installing
These Debian packages contain the ACRN hypervisor and tools to ease installing
ACRN on the target.
#. Build the ACRN kernel for the Service VM:
@ -642,49 +571,21 @@ Build ACRN
.. code-block:: bash
cd ..
ls *.deb
linux-headers-5.15.44-acrn-service-vm_5.15.44-acrn-service-vm-1_amd64.deb
linux-image-5.15.44-acrn-service-vm_5.15.44-acrn-service-vm-1_amd64.deb
linux-image-5.15.44-acrn-service-vm-dbg_5.15.44-acrn-service-vm-1_amd64.deb
linux-libc-dev_5.15.44-acrn-service-vm-1_amd64.deb
ls *acrn-service-vm*.deb
linux-headers-5.15.71-acrn-service-vm_5.15.71-acrn-service-vm-1_amd64.deb
linux-image-5.15.71-acrn-service-vm_5.15.71-acrn-service-vm-1_amd64.deb
linux-image-5.15.71-acrn-service-vm-dbg_5.15.71-acrn-service-vm-1_amd64.deb
linux-libc-dev_5.15.71-acrn-service-vm-1_amd64.deb
#. Copy all the necessary files generated on the development computer to the
target system, using one of these two options:
#. Use the ``scp`` command to copy files from your development computer to the
target system. Replace ``10.0.0.200`` with the target system's IP address
you found earlier::
Option 1: Use ``scp``
Use the ``scp`` command to copy files from your development computer to
the target system.
Replace ``10.0.0.200`` with the target system's IP address you found earlier::
sudo scp ~/acrn-work/acrn*.deb \
~/acrn-work/grub*.deb \
~/acrn-work/*acrn-service-vm*.deb \
~/acrn-work/MyConfiguration/launch_user_vm_id1.sh \
acrn@10.0.0.200:~/acrn-work
Option 2: by USB disk
a. Insert the USB disk into the development computer and run these commands:
.. code-block:: bash
disk="/media/$USER/"$(ls /media/$USER)
cp ~/acrn-work/acrn*.deb "$disk"/
cp ~/acrn-work/grub*.deb "$disk"/
cp ~/acrn-work/*acrn-service-vm*.deb "$disk"/
cp ~/acrn-work/MyConfiguration/launch_user_vm_id1.sh "$disk"/
sync && sudo umount "$disk"
#. Insert the USB disk you just used into the target system and run these
commands to copy the files locally:
.. code-block:: bash
disk="/media/$USER/"$(ls /media/$USER)
cp "$disk"/acrn*.deb ~/acrn-work
cp "$disk"/grub*.deb ~/acrn-work
cp "$disk"/*acrn-service-vm*.deb ~/acrn-work
cp "$disk"/launch_user_vm_id1.sh ~/acrn-work
sync && sudo umount "$disk"
sudo scp ~/acrn-work/acrn*.deb \
~/acrn-work/grub*.deb \
~/acrn-work/*acrn-service-vm*.deb \
~/acrn-work/MyConfiguration/launch_user_vm_id1.sh \
acrn@10.0.0.200:~/acrn-work
.. _gsg-install-acrn:
@ -699,8 +600,18 @@ Install ACRN
.. code-block:: bash
cd ~/acrn-work
sudo apt install ./acrn*.deb ./grub*.deb
sudo apt install ./*acrn-service-vm*.deb
cp ./acrn*.deb ./grub*.deb ./*acrn-service-vm*.deb /tmp
sudo apt install /tmp/acrn*.deb /tmp/grub*.deb /tmp/*acrn-service-vm*.deb
#. Modify the GRUB menu display using ``sudo vi /etc/default/grub``, comment out the hidden style
and changing the timeout to 5 seconds (leave other lines as they are), as shown::
#GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=5
and install the new GRUB menu using::
sudo update-grub
#. Reboot the system:
@ -708,19 +619,25 @@ Install ACRN
reboot
#. Confirm that you see the GRUB menu with the "ACRN multiboot2" entry. Select
it and proceed to booting ACRN. (It may be auto-selected, in which case it
The target system will reboot into the ACRN hypervisor and
start the Ubuntu Service VM.
#. Confirm that you see the GRUB menu with "Ubuntu-ACRN Board Inspector, with 5.15.0-56-generic" entry.
Select it and proceed to booting ACRN. (It may be auto-selected, in which case it
will boot with this option automatically in 5 seconds.)
Example grub menu shown as below:
.. code-block:: console
:emphasize-lines: 5
GNU GRUB version 2.04
────────────────────────────────────────────────────────────────────────────────
Ubuntu
Advanced options for Ubuntu
*Ubuntu GNU/Linux, with ACRN hypervisor
Advanced options for Ubuntu GNU/Linux (with ACRN hypervisor)
Ubuntu-ACRN Board Inspector, with Linux 5.15.71-acrn-service-vm
*Ubuntu-ACRN Board Inspector, with Linux 5.15.0-56-generic
Ubuntu with ACRN hypervisor, with Linux 5.15.71-acrn-service-vm (ACRN 3.2)
Ubuntu with ACRN hypervisor, with Linux 5.15.0-56-generic (ACRN 3.2)
UEFI Firmware Settings
.. _gsg-run-acrn:
@ -732,7 +649,8 @@ Run ACRN and the Service VM
The ACRN hypervisor boots the Ubuntu Service VM automatically.
#. On the target, log in to the Service VM. (It will look like a normal
#. On the target, log in to the Service VM using the ``acrn`` username and
password you set up previously. (It will look like a normal
graphical Ubuntu session.)
#. Verify that the hypervisor is running by checking ``dmesg`` in the Service
@ -753,8 +671,12 @@ The ACRN hypervisor boots the Ubuntu Service VM automatically.
so the Device Model can create a bridge device (acrn-br0) that provides User VMs with
wired network access:
.. warning::
The IP address of Service VM may change after executing the following command.
.. code-block:: bash
cp /usr/share/doc/acrnd/examples/* /etc/systemd/network
sudo systemctl enable --now systemd-networkd
.. _gsg-user-vm:
@ -764,12 +686,12 @@ The ACRN hypervisor boots the Ubuntu Service VM automatically.
Launch the User VM
*******************
#. On the target system, use the web browser to go to the `official Ubuntu website <https://releases.ubuntu.com/jammy/>`__ to
#. On the target system, use the web browser to visit the `official Ubuntu website <https://releases.ubuntu.com/jammy/>`__ and
get the Ubuntu Desktop 22.04 LTS ISO image
``ubuntu-22.04.1-desktop-amd64.iso`` for the User VM. (The same image you
``ubuntu-22.04.2-desktop-amd64.iso`` for the User VM. (The same image you
specified earlier in the ACRN Configurator UI.) Alternatively, instead of
downloading it again, you can use a USB drive or ``scp`` to copy the ISO
image file to the ``~/acrn-work`` directory on the target system.
downloading it again, you could use ``scp`` to copy the ISO
image file from the development system to the ``~/acrn-work`` directory on the target system.
#. If you downloaded the ISO file on the target system, copy it from the
Downloads directory to the ``~/acrn-work/`` directory (the location we said
@ -778,7 +700,7 @@ Launch the User VM
.. code-block:: bash
cp ~/Downloads/ubuntu-22.04.1-desktop-amd64.iso ~/acrn-work
cp ~/Downloads/ubuntu-22.04.2-desktop-amd64.iso ~/acrn-work
#. Launch the User VM:
@ -793,7 +715,7 @@ Launch the User VM
.. code-block:: console
Ubuntu 22.04.1 LTS ubuntu hvc0
Ubuntu 22.04.2 LTS ubuntu hvc0
ubuntu login:
@ -804,16 +726,22 @@ Launch the User VM
.. code-block:: console
Welcome to Ubuntu 22.04.1 LTS (GNU/Linux 5.15.0-43-generic x86_64)
Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.19.0-32-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
0 packages can be updated.
0 updates are security updates.
Expanded Security Maintenance for Applications is not enabled.
Your Hardware Enablement Stack (HWE) is supported until April 2025.
0 updates can be applied immediately.
Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
@ -833,7 +761,7 @@ Launch the User VM
.. code-block:: console
ubuntu@ubuntu:~$ uname -r
5.15.0-43-generic
5.19.0-32-generic
Then open a new terminal window and use the command to see that the Service
VM is running the ``acrn-kernel`` Service VM image:
@ -841,7 +769,7 @@ Launch the User VM
.. code-block:: console
acrn@vecow:~$ uname -r
5.15.44-acrn-service-vm
5.15.71-acrn-service-vm
The User VM has launched successfully. You have completed this ACRN setup.

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

View File

@ -76,7 +76,7 @@ Preparing the Target System
===========================
On the target system, reboot and choose the regular Ubuntu image (not the
Multiboot2 choice created when following the Getting Started Guide).
Ubuntu-ACRN Board Inspector choice created when following the Getting Started Guide).
1. Log in as the **acrn** user. We'll be making ssh connections to the target system
later in these steps, so install the ssh server on the target system using::
@ -108,7 +108,7 @@ As a normal (e.g., **acrn**) user, follow these steps:
1. Install some additional packages in your development computer used for
building the sample application::
sudo apt install -y cloud-guest-utils schroot kpartx qemu-kvm
sudo apt install -y cloud-guest-utils schroot kpartx qemu-utils
#. Check out the ``acrn-hypervisor`` source code branch (already cloned from the
``acrn-hypervisor`` repo when you followed the :ref:`gsg`). We've tagged a
@ -117,7 +117,7 @@ As a normal (e.g., **acrn**) user, follow these steps:
cd ~/acrn-work/acrn-hypervisor
git fetch --all
git checkout master
git checkout release_3.2
#. Build the ACRN sample application source code::
@ -189,10 +189,10 @@ Make the RT_VM Image
.. code-block:: console
linux-headers-5.15.44-rt46-acrn-kernel-rtvm+_5.15.44-rt46-acrn-kernel-rtvm+-1_amd64.deb
linux-image-5.15.44-rt46-acrn-kernel-rtvm+-dbg_5.15.44-rt46-acrn-kernel-rtvm+-1_amd64.deb
linux-image-5.15.44-rt46-acrn-kernel-rtvm+_5.15.44-rt46-acrn-kernel-rtvm+-1_amd64.deb
linux-libc-dev_5.15.44-rt46-acrn-kernel-rtvm+-1_amd64.deb
linux-headers-5.15.71-rt46-acrn-kernel-rtvm+_5.15.71-rt46-acrn-kernel-rtvm+-1_amd64.deb
linux-image-5.15.71-rt46-acrn-kernel-rtvm+-dbg_5.15.71-rt46-acrn-kernel-rtvm+-1_amd64.deb
linux-image-5.15.71-rt46-acrn-kernel-rtvm+_5.15.71-rt46-acrn-kernel-rtvm+-1_amd64.deb
linux-libc-dev_5.15.71-rt46-acrn-kernel-rtvm+-1_amd64.deb
#. Make the RT VM image::
@ -394,43 +394,21 @@ Build the ACRN Hypervisor and Service VM Images
cd ~/acrn-work/acrn-hypervisor
make clean
make BOARD=~/acrn-work/MyConfiguration/my_board.board.xml SCENARIO=~/acrn-work/MyConfiguration/scenario.xml
debian/debian_build.sh clean && debian/debian_build.sh -c ~/acrn-work/MyConfiguration
The build typically takes about a minute. When done, the build
generates a Debian package in the build directory with your board and
working folder name.
generates several Debian packages in the build directory. Only one
with your board and working folder name among these Debian packages
is different from genetated in the Getting Started Guide. So we only
need to copy and reinstall one Debian package to the target system.
This Debian package contains the ACRN hypervisor and tools for
installing ACRN on the target.
#. Build the ACRN kernel for the Service VM (the sample application
requires a newer version of the Service VM than generated in the
Getting Started Guide, so we'll need to generate it again) using a tagged
version of the ``acrn-kernel``::
cd ~/acrn-work/acrn-kernel
git fetch --all
git checkout acrn-v3.1
make distclean
cp kernel_config_service_vm .config
make olddefconfig
make -j $(nproc) deb-pkg
The kernel build can take 15 minutes or less on a fast computer, but
could take one to two hours depending on the performance of your development
computer. When done, the build generates four Debian packages in the
directory above the build root directory:
.. code-block:: console
$ ls ../*acrn-service*.deb
linux-headers-5.15.44-acrn-service-vm_5.15.44-acrn-service-vm-1_amd64.deb
linux-image-5.15.44-acrn-service-vm_5.15.44-acrn-service-vm-1_amd64.deb
linux-image-5.15.44-acrn-service-vm-dbg_5.15.44-acrn-service-vm-1_amd64.deb
linux-libc-dev_5.15.44-acrn-service-vm-1_amd64.deb
#. Use the ACRN kernel for the Service VM already on your development computer
when you followed the Getting Started Guide (the sample application
requires the same version of the Service VM as generated in the
Getting Started Guide, so no need to generate it again).
.. rst-class:: numbered-step
@ -439,91 +417,56 @@ Copy Files from the Development Computer to Your Target System
1. Copy all the files generated on the development computer to the
target system. This includes the sample application executable files,
HMI_VM and RT_VM images, Debian packages for the Service VM and
Hypervisor, launch scripts, and the iasl tool built following the
Getting Started Guide. You can use ``scp`` to copy across the local network,
or use a USB stick:
HMI_VM and RT_VM images, Debian packages for ACRN Hypervisor,
and the launch scripts.
Option 1: use ``scp`` to copy files over the local network
Use ``scp`` to copy files from your development computer to the
``~/acrn-work`` directory on the target (replace the IP address used in
this example with the target system's IP address you found earlier)::
Use ``scp`` to copy files from your development computer to the
``~/acrn-work`` directory on the target (replace the IP address used in
this example with the target system's IP address you found earlier)::
cd ~/acrn-work
cd ~/acrn-work
scp acrn-hypervisor/misc/sample_application/image_builder/build/*_vm.img \
acrn-hypervisor/build/acrn-my_board-MyConfiguration*.deb \
*acrn-service-vm*.deb MyConfiguration/launch_user_vm_id*.sh \
acpica-unix-20210105/generate/unix/bin/iasl \
acrn@10.0.0.200:~/acrn-work
scp acrn-hypervisor/misc/sample_application/image_builder/build/*_vm.img \
acrn-hypervisor*.deb \
MyConfiguration/launch_user_vm_id*.sh \
acrn@10.0.0.200:~/acrn-work
Then on the target system, run these commands::
sudo cp ~/acrn-work/iasl /usr/sbin
sudo ln -s /usr/sbin/iasl /usr/bin/iasl
Option 2: use a USB stick to copy files
Because the VM image files are large, format your USB stick with a file
system that supports files greater than 4GB: extFAT or NTFS, but not FAT32.
Insert a USB stick into the development computer and run these commands::
disk="/media/$USER/"$(ls /media/$USER)
cd ~/acrn-work
cp acrn-hypervisor/misc/sample_application/image_builder/build/*_vm.img rt_vm.img "$disk"
cp acrn-hypervisor/build/acrn-my_board-MyConfiguration*.deb "$disk"
cp *acrn-service-vm*.deb "$disk"
cp MyConfiguration/launch_user_vm_id*.sh "$disk"
cp acpica-unix-20210105/generate/unix/bin/iasl "$disk"
sync && sudo umount "$disk"
Move the USB stick you just used to the target system and run
these commands to copy the files locally::
disk="/media/$USER/"$(ls /media/$USER)
cp "$disk"/*_vm.img ~/acrn-work
cp "$disk"/acrn-my_board-MyConfiguration*.deb ~/acrn-work
cp "$disk"/*acrn-service-vm*.deb ~/acrn-work
cp "$disk"/launch_user_vm_id*.sh ~/acrn-work
sudo cp "$disk"/iasl /usr/sbin/
sudo ln -s /usr/sbin/iasl /usr/bin/iasl
sync && sudo umount "$disk"
.. rst-class:: numbered-step
Install and Run ACRN on the Target System
*****************************************
1. On your target system, install the ACRN Debian package and ACRN
1. On the target system, configure your network according to instruction of below link:
https://www.ubuntupit.com/how-to-configure-and-use-network-bridge-in-ubuntu-linux/
#. On your target system, install the ACRN Debian package and ACRN
kernel Debian packages using these commands::
cd ~/acrn-work
cp ./acrn-hypervisor*.deb ./*acrn-service-vm*.deb /tmp
sudo apt purge acrn-hypervisor
sudo apt install ./acrn-my_board-MyConfiguration*.deb
sudo apt install ./*acrn-service-vm*.deb
sudo apt install /tmp/acrn-hypervisor*.deb /tmp/*acrn-service-vm*.deb
#. Enable networking services for sharing with the HMI User VM::
#. Enable networking services for sharing with the HMI User VM:
.. warning::
The IP address of Service VM may change after executing the following command.
.. code-block:: bash
cp /usr/share/doc/acrnd/examples/* /etc/systemd/network
sudo systemctl enable --now systemd-networkd
#. Reboot the system::
reboot
#. Confirm that you see the GRUB menu with the "ACRN multiboot2" entry. Select
it and press :kbd:`Enter` to proceed to booting ACRN. (It may be
auto-selected, in which case it will boot with this option automatically in 5
seconds.)
.. image:: images/samp-image016.png
:class: drop-shadow
:align: center
This will boot the ACRN hypervisor and launch the Service VM.
#. Log in to the Service VM (using the target's keyboard and HDMI monitor) using
#. The target system will boot automatically into the ACRN hypervisor and
launch the Service VM.
Log in to the Service VM (using the target's keyboard and HDMI monitor) using
the ``acrn`` username.
#. Find the Service VM's IP address (the first IP address shown by this command):
@ -606,7 +549,7 @@ Install and Run ACRN on the Target System
ubuntu login: root
Password:
Welcome to Ubuntu 22.04.1 LTS (GNU/Linux 5.15.44-rt46-acrn-kernel-rtvm+ x86_64)
Welcome to Ubuntu 22.04.1 LTS (GNU/Linux 5.15.71-rt46-acrn-kernel-rtvm+ x86_64)
. . .

View File

@ -66,47 +66,60 @@ level includes the activities described in the lower levels.
.. _ASRock iEP-9010E:
https://www.asrockind.com/en-gb/iEP-9010E
+------------------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+-------------------+
| | | .. rst-class:: |
| | | centered |
| | | |
| | | ACRN Version |
| | +-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+
| Intel Processor Family | Tested Products | .. rst-class:: | .. rst-class:: | .. rst-class:: | .. rst-class:: | .. rst-class:: | .. rst-class:: | .. rst-class:: | .. rst-class:: |
| | | centered | centered | centered | centered | centered | centered | centered | centered |
| | | | | | | | | | |
| | | v1.0 | v1.6.1 | v2.0 | v2.5 | v2.6 | v2.7 | v3.0 | v3.1 |
+========================+============================+===================+===================+===================+===================+===================+===================+===================+===================+
| Alder Lake | | `ASRock iEPF-9010S-EY4`_,| | .. rst-class:: | .. rst-class:: |
| | | `ASRock iEP-9010E`_ | | centered | centered |
| | | | | |
| | | | Release | Community |
+------------------------+----------------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+
| Tiger Lake | `Vecow SPC-7100`_ | | .. rst-class:: |
| | | | centered |
| | | | |
| | | | Maintenance |
+------------------------+----------------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+---------------------------------------+
| Tiger Lake | `NUC11TNHi5`_ | | | | .. rst-class:: | .. rst-class:: | .. rst-class:: |
| | | | | | centered | centered | centered |
| | | | | | | | |
| | | | | | Release | Maintenance | Community |
+------------------------+----------------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+---------------------------------------+
| Whiskey Lake | `WHL-IPC-I5`_ | | | .. rst-class:: | .. rst-class:: | .. rst-class:: |
| | | | | centered | centered | centered |
| | | | | | | |
| | | | | Release | Maintenance | Community |
+------------------------+----------------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-----------------------------------------------------------+
| Kaby Lake | `NUC7i7DNHE`_ | | .. rst-class:: | .. rst-class:: | .. rst-class:: |
| | | | centered | centered | centered |
| | | | | | |
| | | | Release | Maintenance | Community |
+------------------------+----------------------------+-------------------+-------------------+---------------------------------------+-------------------------------------------------------------------------------+
| Apollo Lake | | `NUC6CAYH`_, | .. rst-class:: | .. rst-class:: | .. rst-class:: |
| | | `UP2-N3350`_, | centered | centered | centered |
| | | `UP2-N4200`_, | | | |
| | | `UP2-x5-E3940`_ | Release | Maintenance | Community |
+------------------------+----------------------------+-------------------+-------------------+-----------------------------------------------------------------------------------------------------------------------+
.. _ASUS PN64-E1:
https://www.asus.com/displays-desktops/mini-pcs/pn-series/asus-expertcenter-pn64-e1/
.. important::
We recommend you use a system configuration that includes a serial port.
.. # Note For easier editing, I'm using unicode non-printing spaces in this table to help force the width of the first two columns to help prevent wrapping (using &nbsp; isn't compact enough)
+------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| | | .. rst-class:: |
| | | centered |
| | | |
| | | ACRN Version |
| | +-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------+
| Intel Processor Family | Tested Products                 | .. rst-class:: | .. rst-class:: | .. rst-class:: | .. rst-class:: | .. rst-class:: | .. rst-class:: | .. rst-class:: | .. rst-class:: | .. rst-class:: |
| Code Name | | centered | centered | centered | centered | centered | centered | centered | centered | centered |
| | | | | | | | | | | |
| | | v1.0 | v1.6.1 | v2.0 | v2.5 | v2.6 | v2.7 | v3.0 | v3.1 | v3.2 |
+========================+=================================+===================+===================+===================+===================+===================+===================+===================+===================+===================+
| Raptor Lake | `ASUS PN64-E1`_ | | .. rst-class:: |
| | | | centered |
| | | | |
| | | | Community |
+------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------+-------------------+-------------------+
| Alder Lake | | `ASRock iEPF-9010S-EY4`_, | | .. rst-class:: | .. rst-class:: |
| | | `ASRock iEP-9010E`_ | | centered | centered |
| | | | | |
| | | | Release | Community |
+------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------+---------------------------------------+
| Tiger Lake | `Vecow SPC-7100`_ | | .. rst-class:: |
| | | | centered |
| | | | |
| | | | Maintenance |
+------------------------+---------------------------------+-----------------------------------------------------------+-------------------+---------------------------------------+-----------------------------------------------------------+
| Tiger Lake | `NUC11TNHi5`_ | | .. rst-class:: | .. rst-class:: | .. rst-class:: |
| | | | centered | centered | centered |
| | | | | | |
| | | | Release | Maintenance | Community |
+------------------------+---------------------------------+---------------------------------------+-------------------+-------------------+-------------------+-------------------+-----------------------------------------------------------+
| Whiskey Lake | `WHL-IPC-I5`_ | | .. rst-class:: | .. rst-class:: | .. rst-class:: |
| | | | centered | centered | centered |
| | | | | | |
| | | | Release | Maintenance | Community |
+------------------------+---------------------------------+-------------------+-------------------+-------------------+-------------------+-------------------+-------------------------------------------------------------------------------+
| Kaby Lake | `NUC7i7DNHE`_ | | .. rst-class:: | .. rst-class:: | .. rst-class:: |
| | | | centered | centered | centered |
| | | | | | |
| | | | Release | Maintenance | Community |
+------------------------+---------------------------------+-------------------+-------------------+---------------------------------------+---------------------------------------------------------------------------------------------------+
| Apollo Lake | | `NUC6CAYH`_, | .. rst-class:: | .. rst-class:: | .. rst-class:: |
| | | `UP2-N3350`_, | centered | centered | centered |
| | | `UP2-N4200`_, | | | |
| | | `UP2-x5-E3940`_ | Release | Maintenance | Community |
+------------------------+---------------------------------+-------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
* **Release**: New ACRN features are complete and tested for the listed product.
This product is recommended for this ACRN version. Support for older products
@ -136,4 +149,4 @@ you will use to configure the ACRN hypervisor, as described in the
acrn-user@lists.projectacrn.org mailing list on your findings about
unlisted products.
.. # vim: tw=200
.. # vim: tw=300

View File

@ -0,0 +1,56 @@
.. _release_notes_3.0.2:
ACRN v3.0.2 (Nov 2022)
######################
We are pleased to announce the release of the Project ACRN hypervisor
version 3.0.2 with hot fixes to the v3.0 release.
ACRN is a flexible, lightweight reference hypervisor that is built with
real-time and safety-criticality in mind. It is optimized to streamline
embedded development through an open-source platform. See the
:ref:`introduction` introduction for more information.
All project ACRN source code is maintained in the
https://github.com/projectacrn/acrn-hypervisor repository and includes
folders for the ACRN hypervisor, the ACRN device model, tools, and
documentation. You can download this source code either as a zip or
tar.gz file (see the `ACRN v3.0.2 GitHub release page
<https://github.com/projectacrn/acrn-hypervisor/releases/tag/v3.0.2>`_) or
use Git ``clone`` and ``checkout`` commands::
git clone https://github.com/projectacrn/acrn-hypervisor
cd acrn-hypervisor
git checkout v3.0.2
The project's online technical documentation is also tagged to
correspond with a specific release: generated v3.0 documents can be
found at https://projectacrn.github.io/3.0/. Documentation for the
latest development branch is found at https://projectacrn.github.io/latest/.
ACRN v3.0.2 requires Ubuntu 20.04 (as does v3.0). Follow the instructions in the
:ref:`gsg` to get started with ACRN.
What's New in v3.0.2
********************
Passthrough PMU (performance monitor unit) to user VM only in debug builds
ACRN v2.6 introduced PMU passthrough to RT VMs that have LAPIC passthrough
enabled. This is useful for performance profiling at development time but can
cause workload interference in a production build. PMU passthrough is only
enabled now for a hypervisor debug mode build.
Added tarfile member sanitization to Python tarfile package extractall() calls
A vulnerability in the ACRN Configurator is patched, where files extracted
from a maliciously crafted tarball could be written to somewhere outside the
target directory and cause unsafe behavior.
Run executables with absolute paths in board inspector
Using partial executable paths in the board inspector may cause unintended
results when another executable has the same name and is found via PATH
settings. The board inspector now uses absolute paths to executable.
See :ref:`release_notes_3.0` and :ref:`release_notes_3.0.1` for additional release information.

View File

@ -0,0 +1,188 @@
.. _release_notes_3.2:
ACRN v3.2 (Aug 2023)
####################
We are pleased to announce the release of the Project ACRN hypervisor
version 3.2.
ACRN is a flexible, lightweight reference hypervisor that is built with
real-time and safety-criticality in mind. It is optimized to streamline
embedded development through an open-source platform. See the
:ref:`introduction` introduction for more information.
All project ACRN source code is maintained in the
https://github.com/projectacrn/acrn-hypervisor repository and includes
folders for the ACRN hypervisor, the ACRN device model, tools, and
documentation. You can download this source code either as a zip or
tar.gz file (see the `ACRN v3.2 GitHub release page
<https://github.com/projectacrn/acrn-hypervisor/releases/tag/v3.2>`_) or
use Git ``clone`` and ``checkout`` commands::
git clone https://github.com/projectacrn/acrn-hypervisor
cd acrn-hypervisor
git checkout v3.2
The project's online technical documentation is also tagged to
correspond with a specific release: generated v3.2 documents can be
found at https://projectacrn.github.io/3.2/. Documentation for the
latest development branch is found at https://projectacrn.github.io/latest/.
ACRN v3.2 requires Ubuntu 22.04. Follow the instructions in the
:ref:`gsg` to get started with ACRN.
What's New in v3.2
******************
Enabling New Generation Intel® Processors
ACRN v3.2 release now supports 12th Generation Intel® Atom N-Series Processors
(formerly code named Alder Lake N) and 13th Generation Intel® Core™ Mobile and
Desktop Processors (formerly code named Raptor Lake) with real-time SKUs.
Hypervisor-Managed Processor Performance Policy Controls
The ACRN hypervisor Configurator now provides processor performance policy
control for CPU frequency if the system supports hardware-controlled
performance states (HWP). This ensures that loaded CPUs can run at least at
their guaranteed frequency level.
New Debianization Solution for ACRN
The v3.2 release provides a standardized approach for ACRN debianization.
We provide an option to build each component as a separate Debian package and
allow users to select the binary to deploy at package installation time. Users
can also reselect the binary by reconfiguring the installed package.
Service VM Upgraded to use Ubuntu 22.04
The v3.2 release upgrades the Service VM OS from Ubuntu 20.04 to 22.04.
Upgrading to v3.2 from Previous Releases
****************************************
We recommend you generate a new board XML for your target system with the v3.2
Board Inspector. You should also use the v3.2 Configurator to generate a new
scenario XML file and launch scripts. Scenario XML files and launch scripts
created by previous ACRN versions will not work with the v3.2 ACRN hypervisor
build process and could produce unexpected errors during the build.
Given the scope of changes for the v3.2 release, we have recommendations for how
to upgrade from prior ACRN versions:
1. Start fresh from our :ref:`gsg`. This is the best way to ensure you have a
v3.2-ready board XML file from your target system and generate a new scenario
XML and launch scripts from the new ACRN Configurator that are consistent and
will work for the v3.2 build system.
#. Use the :ref:`upgrader tool <upgrading_configuration>` to attempt upgrading
your configuration files that worked with prior releases. You'll need the
matched pair of scenario XML and launch XML files from a prior configuration,
and use them to create a new merged scenario XML file. See
:ref:`upgrading_configuration` for details.
#. Manually edit your previous older scenario XML and launch XML files to make them
compatible with v3.2. This is not our recommended approach.
Here are some additional details about upgrading to the v3.22 release.
Generate New Board XML
======================
Board XML files, generated by ACRN Board Inspector, contain board information
that is essential for building the ACRN hypervisor and setting up User VMs.
Compared to previous versions, ACRN v3.2 adds the following information to the
board XML file for supporting new features and fixes:
* Add CPU frequency information. (See :acrn-pr:`8174`)
* Get connected displays and add them as child nodes to a corresponding graphics
card. (See :acrn-pr:`8230`)
* Add bdf information to an ioport serial controller. (See :acrn-pr:`8237`)
* Stop running and report an error if VMD is enabled in the BIOS setting. (See
:acrn-pr:`8328`)
* Report an error if a USB device is unplugged or disconnected while extracting
USB device information. (See :acrn-pr:`8326`)
* Handle PCI functions with an undefined header layout. (See :acrn-pr:`8233`)
See the :ref:`board_inspector_tool` documentation for a complete list of steps
to install and run the tool.
Update Configuration Options
============================
As explained in this :ref:`upgrading_configuration` document, we do provide a
tool that can assist upgrading your existing pre-v3.2 scenario XML files in the
new merged v3.2 format. From there, you can use the v3.2 ACRN Configurator UI to
open the upgraded scenario file for viewing and further editing if the upgrader
tool lost meaningful data during the conversion.
The ACRN Configurator adds the following features and fixes to improve the user
experience:
* Support virtio GPU configuration. (See :acrn-pr:`8248`)
* Determine SSRAM_ENABLED value automatically. (See :acrn-pr:`8232`)
* Add "CPU performance policy type" option. (See :acrn-pr:`8174`)
* Add "exclusively owns physical CPUs" checkbox to pre-launched and
post-launched VMs. (See :acrn-pr:`8290`)
* Generate ``config_summary.rst`` when saving scenario XML and launch scripts.
(See :acrn-pr:`8309`)
See the :ref:`scenario-config-options` documentation for details about all the
available configuration options in the new Configurator.
Document Updates
****************
Here are some of the more significant documentation updates from the v3.1 release:
.. rst-class:: rst-columns2
* :ref:`asa`
* :ref:`hld-security`
* :ref:`hv-cpu-virt`
* :ref:`gsg`
* :ref:`GSG_sample_app`
* :ref:`release_notes_3.2`
* :ref:`release_notes_3.0.2`
* :ref:`acrn_configurator_tool`
* :ref:`acrn_doc`
* :ref:`enable_multiple_displays`
* :ref:`acrn-dm_parameters-and-launch-script`
* :ref:`scenario-config-options`
Fixed Issues Details
********************
.. comment example item
- :acrn-issue:`5626` - Host Call Trace once detected
- :acrn-issue:`8435` - Post-launch RTVM and WaaG running simultaneously will cause Windows kernel crash
- :acrn-issue:`8445` - Fix security vulnerability for configurator dependent library
- :acrn-issue:`8454` - Fail to boot RTVM or UaaG when passthru Ethernet controller
- :acrn-issue:`8448` - The script in Sample Application Guide is not working
- :acrn-issue:`8352` - Sample app fails to build for v3.2 RC1
- :acrn-issue:`8439` - Possible null pointer dereference/uninitialized variable/buffer overflow in code
- :acrn-issue:`8435` - Post-launch RTVM and WaaG running simultaneously will cause Windows kernel crash
- :acrn-issue:`8432` - Flickering screen when passing ADL-N and RPL-P platforms
- :acrn-issue:`8413` - hypervisor: 'vm_config' may be used uninitialized [-Werror=maybe-uninitialized]
- :acrn-issue:`8382` - Failed to build with gcc 12
- :acrn-issue:`8422` - Failed to generate config summary and launch scripts if CAT is enabled in configurator
- :acrn-issue:`8395` - Configurator load fails because it needs to download RstCloth packages.
- :acrn-issue:`8380` - Cannot generate XML file for target system
- :acrn-issue:`8388` - Fail to generate board XML because of non-ASCII characters
- :acrn-issue:`8385` - Failed to generate config_summary.rst when board.xml has "module" node under the "processors/die"
- :acrn-issue:`8359` - GSG: change the method of checking kernel version of grub menuentry
- :acrn-issue:`8246` - Debianization improvement
- :acrn-issue:`8344` - debian/debian_build.sh fails when a work folder contains files other than XML
- :acrn-issue:`8111` - Sync between Service VM OS and RTVM failed when startup hence life_mngr cannot work
- :acrn-issue:`8315` - Invoking a command with partial executable path in Board Inspector Python file
- :acrn-issue:`8274` - Wrong kernel cmdline added in grub menu when install acrn-hypervisor
Known Issues
************
- :acrn-issue:`6631` - Kata support is broken since v2.7
- :acrn-issue:`6978` - openstack failed since ACRN v2.7
- :acrn-issue:`7827` - Pre_launched standard VMs cannot share CPU with Service VM in configurator
- :acrn-issue:`8202` - HV fail to boot acrn on QEMU
- :acrn-issue:`8471` - PTM enabling failure on i225 NIC
- :acrn-issue:`8472` - Failed to clear memory for post-launched standard VM
- :acrn-issue:`8473` - Missing VirtIO GPU Windows VF driver

View File

@ -36,7 +36,6 @@ import logging
import mmap
import os
import re
import sre_constants
import sys
import traceback
@ -69,7 +68,7 @@ def config_import_file(filename):
regex = gd['regex']
try:
r = re.compile(regex, re.MULTILINE)
except sre_constants.error as e:
except re.error as e:
logging.error("%s: bytes %d-%d: bad regex: %s",
filename, m.start(), m.end(), e)
raise

View File

@ -291,7 +291,8 @@ body {
counter-reset: step-count;
}
div.numbered-step h2::before {
div.numbered-step h2::before,
section.numbered-step h2::before {
counter-increment: step-count;
content: counter(step-count);
background: #cccccc;