mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-09-07 03:40:27 +00:00
doc: Remove apl gsg and merge contents into rt gsg
Change APL getting started guide to KBL getting started guide; Merge some of the contents into preempt-rt getting started guide; Move the modified kbl getting started guide to the behind of the configuration tutorials; Fix issues for acrn_quick_setup.sh script. Signed-off-by: lirui34 <ruix.li@intel.com>
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
function print_help()
|
||||
{
|
||||
echo "Usage:"
|
||||
echo "Launch this script as: sudo $0 -s 31080"
|
||||
echo "Launch this script as: sudo $0 -s 31470"
|
||||
echo -e "\t-s to upgrade Service VM"
|
||||
echo -e "\t-u to upgrade User VM"
|
||||
echo -e "\t-p to specify a proxy server (HTTPS)"
|
||||
@@ -42,9 +42,6 @@ skip_download_uos=0
|
||||
# switcher for disabling reboot device
|
||||
disable_reboot=0
|
||||
|
||||
# acrn.efi path
|
||||
acrn_efi_path=/usr/lib/acrn/acrn.nuc6cayh.sdc.efi
|
||||
|
||||
function upgrade_sos()
|
||||
{
|
||||
# Check Service VM version
|
||||
@@ -53,6 +50,14 @@ function upgrade_sos()
|
||||
|
||||
echo "Upgrading Service VM..."
|
||||
|
||||
# get board name
|
||||
BOARD_NAME=`cat /sys/devices/virtual/dmi/id/board_name`
|
||||
BOARD_NAME=${BOARD_NAME,,}
|
||||
[[ -z $BOARD_NAME ]] && echo "Unknown board name." && exit 1
|
||||
echo "Board name is: $BOARD_NAME"
|
||||
# set default scenario name
|
||||
scenario=sdc
|
||||
|
||||
# setup mirror and proxy url while specified with m and p options
|
||||
[[ -n $mirror ]] && echo "Setting swupd mirror to: $mirror" && swupd mirror -s $mirror
|
||||
[[ -n $proxy ]] && echo "Setting proxy to: $proxy" && export https_proxy=$proxy
|
||||
@@ -77,6 +82,18 @@ function upgrade_sos()
|
||||
echo "Adding the service-os and systemd-networkd-autostart bundles..."
|
||||
swupd bundle-add service-os systemd-networkd-autostart 2>/dev/null
|
||||
|
||||
# get acrn.efi path
|
||||
acrn_efi_path=/usr/lib/acrn/acrn.$BOARD_NAME.$scenario.efi
|
||||
if [[ ! -f $acrn_efi_path ]]; then
|
||||
echo "$acrn_efi_path doesn't exist."
|
||||
echo "Use one of these efi images from /usr/lib/acrn."
|
||||
echo "------"
|
||||
ls /usr/lib/acrn/acrn.*.$scenario.efi -1
|
||||
echo "------"
|
||||
echo "Copy the efi image to $acrn_efi_path, then run the script again."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mount $efi_partition /mnt
|
||||
echo "Add /mnt/EFI/acrn folder"
|
||||
mkdir -p /mnt/EFI/acrn
|
||||
@@ -89,17 +106,22 @@ function upgrade_sos()
|
||||
cp -a $acrn_efi_path /mnt/EFI/acrn/acrn.efi
|
||||
if [[ $? -ne 0 ]]; then echo "Fail to copy $acrn_efi_path" && exit 1; fi
|
||||
|
||||
new_kernel=`ls /mnt/EFI/org.clearlinux/*sos* -tl | grep kernel | head -n1 | awk -F'/' '{print $5}'`
|
||||
new_kernel=${new_kernel#kernel-}
|
||||
new_kernel=`ls /usr/lib/kernel/org*sos* -tl | head -n1 | awk -F'/' '{print $5}'`
|
||||
echo "Getting latest Service OS kernel version: $new_kernel"
|
||||
|
||||
echo "Add default (5 seconds) boot wait time."
|
||||
clr-boot-manager set-timeout 5 || { echo "Faild to add default boot wait time" && exit 1; }
|
||||
clr-boot-manager set-timeout 5 || { echo "Fail to add default boot wait time" && exit 1; }
|
||||
clr-boot-manager update
|
||||
|
||||
echo "Set $new_kernel as default boot kernel."
|
||||
clr-boot-manager set-kernel $new_kernel || { echo "Fail to set $new_kernel as default boot kernel." && exit 1; }
|
||||
|
||||
# Rename Clear-linux-iot-lts2018-sos conf to acrn.conf
|
||||
conf_directory=/mnt/loader/entries/
|
||||
conf=`sed -n 2p /mnt/loader/loader.conf | sed "s/default //"`
|
||||
cp -r ${conf_directory}${conf}.conf ${conf_directory}acrn.conf 2>/dev/null || \
|
||||
{ echo "${conf_directory}${conf}.conf does not exist." && exit 1; }
|
||||
sed -i 2"s/$conf/acrn/" /mnt/loader/loader.conf
|
||||
|
||||
echo "Check ACRN efi boot event"
|
||||
check_acrn_bootefi=`efibootmgr | grep ACRN | wc -l`
|
||||
if [[ "$check_acrn_bootefi" -ge 1 ]]; then
|
||||
@@ -113,9 +135,10 @@ function upgrade_sos()
|
||||
efibootmgr | grep 'Linux bootloader' | cut -d'*' -f1 | cut -d't' -f2 | head -n$number | xargs -i efibootmgr -b {} -B >/dev/null
|
||||
fi
|
||||
|
||||
echo "Add new ACRN efi boot event"
|
||||
efibootmgr -c -l "\EFI\acrn\acrn.efi" -d $partition -p 1 -L "ACRN" >/dev/null
|
||||
|
||||
echo "Add new ACRN efi boot event, uart is disabled by default."
|
||||
set -x
|
||||
efibootmgr -c -l "\EFI\acrn\acrn.efi" -d $partition -p 1 -L "ACRN" -u "uart=disabled" >/dev/null
|
||||
{ set +x; } 2>/dev/null
|
||||
echo "Service OS setup done!"
|
||||
else
|
||||
echo "Fail to upgrade Service VM to $sos_ver."
|
||||
@@ -218,7 +241,7 @@ do
|
||||
;;
|
||||
h) print_help
|
||||
;;
|
||||
i) acrn_efi_path=/usr/lib/acrn/acrn.kbl-nuc-i7.industry.efi
|
||||
i) scenario=industry
|
||||
;;
|
||||
?) print_help
|
||||
;;
|
||||
|
@@ -1,596 +0,0 @@
|
||||
.. _getting-started-apl-nuc:
|
||||
|
||||
Getting Started Guide for the Intel NUC
|
||||
#######################################
|
||||
|
||||
The Intel |reg| NUC is the primary tested platform for ACRN development,
|
||||
and its setup is described below.
|
||||
|
||||
|
||||
Hardware Setup
|
||||
**************
|
||||
|
||||
The Intel Apollo Lake NUC (APL) and the Intel Kaby Lake NUC (KBL),
|
||||
described in :ref:`hardware`, are currently supported for ACRN development.
|
||||
|
||||
Note that we can enable the serial console on the `KBL <https://www.amazon.com/Intel-Business-Mini-Technology-BLKNUC7i7DNH1E/dp/B07CCQ8V4R>`__ (NUC7i7DN), but this is not supported on the APL (NUC6CAYH).
|
||||
|
||||
.. _connect_serial_port:
|
||||
|
||||
Connecting to the serial port
|
||||
=============================
|
||||
|
||||
If you do not need a serial console, ignore this section.
|
||||
|
||||
Neither the APL nor the KBL NUCs contain an external serial port interface.
|
||||
However, the KBL NUC has a serial port header you can
|
||||
expose with a serial DB9 header cable. You can build this cable yourself;
|
||||
refer to the `KBL NUC product specification
|
||||
<https://www.intel.com/content/dam/support/us/en/documents/mini-pcs/nuc-kits/NUC7i7DN_TechProdSpec.pdf>`__
|
||||
as shown below:
|
||||
|
||||
.. figure:: images/KBL-serial-port-header.png
|
||||
:align: center
|
||||
|
||||
KBL serial port header details
|
||||
|
||||
|
||||
.. figure:: images/KBL-serial-port-header-to-RS232-cable.jpg
|
||||
:align: center
|
||||
|
||||
KBL `serial port header to RS232 cable
|
||||
<https://www.amazon.com/dp/B07BV1W6N8/ref=cm_sw_r_cp_ep_dp_wYm0BbABD5AK6>`_
|
||||
|
||||
|
||||
Or you can `purchase
|
||||
<https://www.amazon.com/dp/B07BV1W6N8/ref=cm_sw_r_cp_ep_dp_wYm0BbABD5AK6>`_
|
||||
such a cable.
|
||||
|
||||
You'll also need an `RS232 DB9 female to USB cable
|
||||
<https://www.amazon.com/Adapter-Chipset-CableCreation-Converter-Register/dp/B0769DVQM1>`__,
|
||||
or an `RS232 DB9 female/female (NULL modem) cross-over cable
|
||||
<https://www.amazon.com/SF-Cable-Null-Modem-RS232/dp/B006W0I3BA>`__
|
||||
to connect to your host system.
|
||||
|
||||
Note that If you want to use the RS232 DB9 female/female cable, choose the ``cross-over`` type rather than ``straight-through`` type.
|
||||
|
||||
Firmware update on the NUC
|
||||
==========================
|
||||
|
||||
You may need to update to the latest UEFI firmware for the NUC hardware.
|
||||
Follow these `BIOS Update Instructions
|
||||
<https://www.intel.com/content/www/us/en/support/articles/000005636.html>`__
|
||||
for downloading and flashing an updated BIOS for the NUC.
|
||||
|
||||
|
||||
Software Setup
|
||||
**************
|
||||
|
||||
.. _set-up-CL:
|
||||
|
||||
Set up a Clear Linux Operating System
|
||||
=====================================
|
||||
|
||||
We begin by installing Clear Linux as the development OS on the NUC.
|
||||
The Clear Linux release includes an ``acrn.nuc6cayh.sdc.efi`` hypervisor application
|
||||
that will be added to the EFI partition (by the quick setup script or
|
||||
manually, as described below).
|
||||
|
||||
.. note::
|
||||
|
||||
Refer to the ACRN :ref:`release_notes` for the Clear Linux OS
|
||||
version number tested with a specific ACRN release. Adjust the
|
||||
instruction below to reference the appropriate version number of Clear
|
||||
Linux OS (we use version 31080 as an example).
|
||||
|
||||
#. Download the compressed Clear Linux OS installer image from
|
||||
https://download.clearlinux.org/releases/31080/clear/clear-31080-live-server.iso.xz
|
||||
and follow the `Clear Linux OS Installation Guide
|
||||
<https://clearlinux.org/documentation/clear-linux/get-started/bare-metal-install-server>`_
|
||||
as a starting point for installing the Clear Linux OS onto your platform.
|
||||
Follow the recommended options for choosing an **Advanced options**
|
||||
installation type, and using the platform's storage as the target device
|
||||
for installation (overwriting the existing data).
|
||||
|
||||
When setting up Clear Linux on your NUC:
|
||||
|
||||
#. Launch the Clear Linux OS installer boot menu.
|
||||
#. With Clear Linux OS highlighted, select **Enter**.
|
||||
#. Log in with your root account and new password.
|
||||
#. Run the installer using the following command::
|
||||
|
||||
$ clr-installer
|
||||
|
||||
#. From the Main menu, select **Configure Installation Media** and set
|
||||
**Destructive Installation** to your desired hard disk.
|
||||
#. Select **Telemetry** to set Tab to highlight your choice.
|
||||
#. Press :kbd:`A` to show the **Advanced** options.
|
||||
#. Select **Select additional bundles** and add bundles for
|
||||
**desktop-autostart**, **editors**, **network-basic**, and **user-basic**.
|
||||
#. Select **Manager User** to add an administrative user **clear** and
|
||||
password.
|
||||
#. Select **Install**.
|
||||
#. Select **Confirm Install** in the **Confirm Installation** window to start the installation.
|
||||
|
||||
#. After installation is complete, boot into Clear Linux OS, log in as
|
||||
**clear** (using the password you set earlier).
|
||||
|
||||
#. The instructions below provide details for setting
|
||||
up the ACRN Hypervisor, Service OS, and Guest OS. Along with the
|
||||
manual step details, We also provide an automated script that does all
|
||||
these steps for you, so you can skip these manual steps. See the
|
||||
`quick-setup-guide`_ section below to use the automated setup script.
|
||||
|
||||
.. _quick-setup-guide:
|
||||
|
||||
Use the script to set up ACRN automatically
|
||||
===========================================
|
||||
|
||||
We provide an `acrn_quick_setup.sh script
|
||||
<https://raw.githubusercontent.com/projectacrn/acrn-hypervisor/master/doc/getting-started/acrn_quick_setup.sh>`__
|
||||
in the ACRN GitHub repo to quickly and automatically set up the SOS and UOS
|
||||
and generate a customized script for launching the UOS.
|
||||
|
||||
This script requires the Clear Linux version number you'd like to set up
|
||||
for the ACRN SOS and UOS. The specified version must be greater than or
|
||||
equal to the Clear Linux version currently installed on the NUC. You can see
|
||||
your current Clear Linux version with this command:
|
||||
|
||||
$ cat /etc/os-release
|
||||
|
||||
The following instructions use Clear Linux version 31080. Specify the Clear Linux version you want to use.
|
||||
|
||||
Follow these steps:
|
||||
|
||||
#. Install and log in to Clear Linux.
|
||||
|
||||
#. Open a terminal.
|
||||
|
||||
#. Download the ``acrn_quick_setup.sh`` script to set up the SOS. (If you don't need a proxy to get the script, skip the ``export`` command.)
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ export https_proxy=https://myproxy.mycompany.com:port
|
||||
$ cd ~
|
||||
$ wget https://raw.githubusercontent.com/projectacrn/acrn-hypervisor/master/doc/getting-started/acrn_quick_setup.sh
|
||||
|
||||
$ sudo sh acrn_quick_setup.sh -s 31080
|
||||
Password:
|
||||
Upgrading SOS...
|
||||
Disable auto update...
|
||||
Running systemctl to disable updates
|
||||
Clear Linux version 31080 is already installed. Continuing to setup SOS...
|
||||
Adding the service-os, kernel-iot-lts2018 and systemd-networkd-autostart bundles...
|
||||
Loading required manifests...
|
||||
Downloading packs (104.41 MB) for:
|
||||
- kernel-iot-lts2018-sos
|
||||
- iasimage
|
||||
- service-os
|
||||
- kernel-iot-lts2018
|
||||
- systemd-networkd-autostart
|
||||
...100%
|
||||
Finishing packs extraction...
|
||||
No extra files need to be downloaded
|
||||
Installing bundle(s) files...
|
||||
...100%
|
||||
Calling post-update helper scripts
|
||||
none
|
||||
Successfully installed 3 bundles
|
||||
Add /mnt/EFI/acrn folder
|
||||
Copy /usr/lib/acrn/acrn.nuc6cayh.sdc.efi to /mnt/EFI/acrn/acrn.efi
|
||||
Check ACRN efi boot event
|
||||
Clean all ACRN efi boot event
|
||||
Check linux bootloader event
|
||||
Clean all Linux bootloader event
|
||||
Add new ACRN efi boot event
|
||||
Getting latest Service OS kernel version: org.clearlinux.iot-lts2018-sos.4.19.73-92
|
||||
Add default (5 seconds) boot wait time.
|
||||
New timeout value is: 5
|
||||
Set org.clearlinux.iot-lts2018-sos.4.19.73-92 as default boot kernel.
|
||||
Service OS setup done!
|
||||
Rebooting Service OS to take effects.
|
||||
Rebooting.
|
||||
|
||||
.. note::
|
||||
This script is using ``/dev/sda1`` as the default EFI System Partition
|
||||
ESP). If the ESP is different based on your hardware, you can specify
|
||||
it using the ``-e`` option. For example, to set up the SOS on an NVMe
|
||||
SSD, you could specify:
|
||||
|
||||
sudo sh acrn_quick_setup.sh -s 31080 -e /dev/nvme0n1p1
|
||||
|
||||
If you don't need to reboot automatically after setting up the SOS, you
|
||||
can specify the ``-d`` parameter (don't reboot).
|
||||
|
||||
#. After the system reboots, log in as the **clear** user. Verify that the SOS booted successfully by checking the ``dmesg`` log:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ sudo dmesg | grep ACRN
|
||||
Password:
|
||||
[ 0.000000] Hypervisor detected: ACRN
|
||||
[ 1.252840] ACRNTrace: Initialized acrn trace module with 4 cpu
|
||||
[ 1.253291] ACRN HVLog: Failed to init last hvlog devs, errno -19
|
||||
[ 1.253292] ACRN HVLog: Initialized hvlog module with 4 cpu
|
||||
|
||||
#. Continue by setting up a Guest OS using the ``acrn_quick_setup.sh``
|
||||
script with the ``-u`` option (and the same Clear Linux version
|
||||
number):
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ sudo sh acrn_quick_setup.sh -u 31080
|
||||
Password:
|
||||
Upgrading UOS...
|
||||
Downloading UOS image: https://download.clearlinux.org/releases/31080/clear/clear-31080-kvm.img.xz
|
||||
% Total % Received % Xferd Average Speed Time Time Time Current
|
||||
Dload Upload Total Spent Left Speed
|
||||
14 248M 14 35.4M 0 0 851k 0 0:04:57 0:00:42 0:04:15 293k
|
||||
|
||||
After the download is complete, you'll get this output.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
Unxz UOS image: clear-31080-kvm.img.xz
|
||||
Get UOS image: clear-31080-kvm.img
|
||||
Upgrade UOS done...
|
||||
Now you can run this command to start UOS...
|
||||
$ sudo /root/launch_uos_31080.sh
|
||||
|
||||
#. Launch the UOS using the customized launch_uos script (with sudo):
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ sudo /root/launch_uos_31080.sh
|
||||
Password:
|
||||
|
||||
cpu1 online=0
|
||||
cpu2 online=0
|
||||
cpu3 online=0
|
||||
passed gvt-g optargs low_gm 64, high_gm 448, fence 8
|
||||
SW_LOAD: get ovmf path /usr/share/acrn/bios/OVMF.fd, size 0x200000
|
||||
pm by vuart node-index = 0
|
||||
logger: name=console, level=4
|
||||
logger: name=kmsg, level=3
|
||||
logger: name=disk, level=5
|
||||
vm_create: vm1
|
||||
VHM api version 1.0
|
||||
vm_setup_memory: size=0x80000000
|
||||
open hugetlbfs file /run/hugepage/acrn/huge_lv1/vm1/D279543825D611E8864ECB7A18B34643
|
||||
open hugetlbfs file /run/hugepage/acrn/huge_lv2/vm1/D279543825D611E8864ECB7A18B34643
|
||||
level 0 free/need pages:1/1 page size:0x200000
|
||||
level 1 free/need pages:2/2 page size:0x40000000
|
||||
|
||||
try to setup hugepage with:
|
||||
level 0 - lowmem 0x0, biosmem 0x200000, highmem 0x0
|
||||
level 1 - lowmem 0x80000000, biosmem 0x0, highmem 0x0
|
||||
total_size 0x180000000
|
||||
|
||||
mmap ptr 0x0x7f792ace5000 -> baseaddr 0x0x7f7940000000
|
||||
mmap 0x80000000@0x7f7940000000
|
||||
touch 2 pages with pagesz 0x40000000
|
||||
mmap 0x200000@0x7f7a3fe00000
|
||||
touch 1 pages with pagesz 0x200000
|
||||
...
|
||||
[ 1.414873] Run /usr/lib/systemd/systemd-bootchart as init process
|
||||
[ 1.521343] systemd[1]: systemd 242 running in system mode. (+PAM +AUDIT -SELINUX +IMA -APPARMOR -SMACK -SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 -IDN -PCRE2 default-hierarchy=legacy)
|
||||
[ 1.531173] systemd[1]: Detected virtualization acrn.
|
||||
[ 1.533287] systemd[1]: Detected architecture x86-64.
|
||||
[ 1.542775] systemd[1]: Failed to bump fs.file-max, ignoring: Invalid argument
|
||||
[ 1.681326] systemd[1]: File /usr/lib/systemd/system/systemd-journald.service:12 configures an IP firewall (IPAddressDeny=any), but the local system does not support BPF/cgroup based firewalling.
|
||||
[ 1.689540] systemd[1]: Proceeding WITHOUT firewalling in effect! (This warning is only shown for the first loaded unit using IP firewalling.)
|
||||
[ 1.734816] [drm] Cannot find any crtc or sizes
|
||||
[ 1.860168] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
|
||||
[ 1.870434] systemd[1]: Listening on udev Kernel Socket.
|
||||
[ 1.875555] systemd[1]: Created slice system-serial\x2dgetty.slice.
|
||||
[ 1.878446] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
|
||||
[ 2.075891] random: systemd-random-: uninitialized urandom read (512 bytes read)
|
||||
[ 2.239775] [drm] Cannot find any crtc or sizes
|
||||
[ 3.011537] systemd-journald[133]: Received request to flush runtime journal from PID 1
|
||||
[ 3.386326] i8042: PNP: PS/2 Controller [PNP0303:KBD,PNP0f13:MOU] at 0x60,0x64 irq 1,12
|
||||
[ 3.429277] i8042: Warning: Keylock active
|
||||
[ 3.556872] serio: i8042 KBD port at 0x60,0x64 irq 1
|
||||
[ 3.610010] serio: i8042 AUX port at 0x60,0x64 irq 12
|
||||
[ 3.658689] Adding 33788k swap on /dev/vda2. Priority:-2 extents:1 across:33788k
|
||||
[ 4.034712] random: dbus-daemon: uninitialized urandom read (12 bytes read)
|
||||
[ 4.101122] random: tallow: uninitialized urandom read (4 bytes read)
|
||||
[ 4.119713] random: dbus-daemon: uninitialized urandom read (12 bytes read)
|
||||
[ 4.223296] virtio_net virtio1 enp0s4: renamed from eth0
|
||||
[ 4.342645] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input1
|
||||
[ 4.560662] IPv6: ADDRCONF(NETDEV_UP): enp0s4: link is not ready
|
||||
Unhandled ps2 mouse command 0xe1
|
||||
[ 4.725622] IPv6: ADDRCONF(NETDEV_CHANGE): enp0s4: link becomes ready
|
||||
[ 5.114339] input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/input/input3
|
||||
|
||||
clr-a632ec84744d4e02974fe1891130002e login:
|
||||
|
||||
#. Log in as root. Specify the new password. Verify that you are running in the UOS by checking the kernel release version or seeing if acrn devices are visible:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# uname -r
|
||||
4.19.73-92.iot-lts2018
|
||||
# ls /dev/acrn*
|
||||
ls: cannot access '/dev/acrn*': No such file or directory
|
||||
|
||||
The UOS does not have ``/dev/acrn*`` devices. If you are in the SOS,
|
||||
you will see results such as these:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ uname -r
|
||||
4.19.73-92.iot-lts2018-sos
|
||||
$ ls /dev/acrn*
|
||||
/dev/acrn_hvlog_cur_0 /dev/acrn_hvlog_cur_2 /dev/acrn_trace_0 /dev/acrn_trace_2 /dev/acrn_vhm
|
||||
/dev/acrn_hvlog_cur_1 /dev/acrn_hvlog_cur_3 /dev/acrn_trace_1 /dev/acrn_trace_3
|
||||
|
||||
You have successfully set up Clear Linux at the Service and User OS and started up a UOS VM.
|
||||
|
||||
.. _manual-setup-guide:
|
||||
|
||||
Manually Set Up ACRN
|
||||
====================
|
||||
|
||||
Instead of using the quick setup script, you can also set up ACRN, SOS,
|
||||
and UOS manually. Follow these steps:
|
||||
|
||||
#. Install Clear Linux on the NUC, log in as the **clear** user,
|
||||
and open a terminal window.
|
||||
#. Disable the auto-update feature. Clear Linux OS is set to automatically update itself. We recommend that you disable this feature to have more control over when updates happen. Use this command:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ sudo swupd autoupdate --disable
|
||||
|
||||
.. note::
|
||||
When enabled, the Clear Linux OS installer automatically checks for updates and installs the latest version available on your system. To use a specific version (such as 31080), enter the following command after the installation is complete:
|
||||
|
||||
``sudo swupd repair --picky -V 31080``
|
||||
|
||||
#. If you have an older version of Clear Linux OS already installed
|
||||
on your hardware, use this command to upgrade the Clear Linux OS
|
||||
to version 31080 (or newer):
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ sudo swupd update -V 31080 # or newer version
|
||||
|
||||
#. Use the ``sudo swupd bundle-add`` command to add these Clear Linux OS bundles:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ sudo swupd bundle-add service-os systemd-networkd-autostart
|
||||
|
||||
+----------------------------+-------------------------------------------+
|
||||
| Bundle | Description |
|
||||
+============================+===========================================+
|
||||
| service-os | Adds the acrn hypervisor, acrn |
|
||||
| | devicemodel, and Service OS kernel |
|
||||
+----------------------------+-------------------------------------------+
|
||||
| systemd-networkd-autostart | Enables systemd-networkd as the default |
|
||||
| | network manager |
|
||||
+----------------------------+-------------------------------------------+
|
||||
|
||||
.. _add-acrn-to-efi:
|
||||
|
||||
Add the ACRN hypervisor to the EFI Partition
|
||||
============================================
|
||||
|
||||
In order to boot the ACRN SOS on the platform, you must add it to the EFI
|
||||
partition. Follow these steps:
|
||||
|
||||
#. Mount the EFI partition and verify you have the following files:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ sudo ls -1 /boot/EFI/org.clearlinux
|
||||
bootloaderx64.efi
|
||||
freestanding-00-intel-ucode.cpio
|
||||
freestanding-i915-firmware.cpio.xz
|
||||
kernel-org.clearlinux.iot-lts2018-sos.4.19.73-92
|
||||
kernel-org.clearlinux.native.5.3.1-838
|
||||
loaderx64.efi
|
||||
|
||||
.. note::
|
||||
On the Clear Linux OS, the EFI System Partition (e.g. ``/dev/sda1``)
|
||||
is mounted under ``/boot`` by default. The Clear Linux project releases updates often, sometimes twice a day, so make note of the specific kernel versions (iot-lts2018) listed on your system, as you will need them later.
|
||||
|
||||
The EFI System Partition (ESP) may be different based on your hardware.
|
||||
It will typically be something like ``/dev/mmcblk0p1`` on platforms
|
||||
that have an on-board eMMC or ``/dev/nvme0n1p1`` if your system has
|
||||
a non-volatile storage media attached via a PCI Express (PCIe) bus
|
||||
(NVMe).
|
||||
|
||||
#. Add the ``acrn.nuc6cayh.sdc.efi`` hypervisor application (included in the Clear
|
||||
Linux OS release) to the EFI partition. Use these commands:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ sudo mkdir /boot/EFI/acrn
|
||||
$ sudo cp /usr/lib/acrn/acrn.nuc6cayh.sdc.efi /boot/EFI/acrn/acrn.efi
|
||||
|
||||
#. Configure the EFI firmware to boot the ACRN hypervisor by default.
|
||||
|
||||
The ACRN hypervisor (``acrn.efi``) is an EFI executable that's
|
||||
loaded directly by the platform EFI firmware. It then loads the
|
||||
Service OS bootloader. Use the ``efibootmgr`` utility to configure the EFI
|
||||
firmware and add a new entry that loads the ACRN hypervisor.
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ sudo efibootmgr -c -l "\EFI\acrn\acrn.efi" -d /dev/sda -p 1 -L "ACRN"
|
||||
|
||||
.. note::
|
||||
|
||||
Be aware that a Clear Linux OS update that includes a kernel upgrade will
|
||||
reset the boot option changes you just made. A Clear Linux OS update could
|
||||
happen automatically (if you have not disabled it as described above),
|
||||
if you later install a new bundle to your system, or simply if you
|
||||
decide to trigger an update manually. Whenever that happens,
|
||||
double-check the platform boot order using ``efibootmgr -v`` and
|
||||
modify it if needed.
|
||||
|
||||
The ACRN hypervisor (``acrn.efi``) accepts two command-line parameters
|
||||
that tweak its behavior:
|
||||
|
||||
1. ``bootloader=``: this sets the EFI executable to be loaded once the hypervisor
|
||||
is up and running. This is typically the bootloader of the Service OS.
|
||||
The default value is to use the Clear Linux OS bootloader, i.e.:
|
||||
``\EFI\org.clearlinux\bootloaderx64.efi``.
|
||||
#. ``uart=``: this tells the hypervisor where the serial port (UART) is found or
|
||||
whether it should be disabled. There are three forms for this parameter:
|
||||
|
||||
#. ``uart=disabled``: this disables the serial port completely.
|
||||
#. ``uart=bdf@<BDF value>``: this sets the PCI serial port based on its BDF.
|
||||
For example, use ``bdf@0:18.1`` for a BDF of 0:18.1 ttyS1.
|
||||
#. ``uart=port@<port address>``: this sets the serial port address.
|
||||
|
||||
.. note::
|
||||
|
||||
``uart=port@<port address>`` is required if you want to enable the serial console.
|
||||
Run ``dmesg |grep ttyS0`` to get port address from the output, and then
|
||||
add the ``uart`` parameter into the ``efibootmgr`` command.
|
||||
|
||||
|
||||
Here is a more complete example of how to configure the EFI firmware to load the ACRN
|
||||
hypervisor and set these parameters:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ sudo efibootmgr -c -l "\EFI\acrn\acrn.efi" -d /dev/sda -p 1 -L "ACRN NUC Hypervisor" \
|
||||
-u "bootloader=\EFI\org.clearlinux\bootloaderx64.efi uart=disabled"
|
||||
|
||||
Here is an example of how to enable a serial console for the KBL NUC:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ sudo efibootmgr -c -l "\EFI\acrn\acrn.efi" -d /dev/sda -p 1 -L "ACRN NUC Hypervisor" \
|
||||
-u "bootloader=\EFI\org.clearlinux\bootloaderx64.efi uart=port@0x3f8"
|
||||
|
||||
#. Add a timeout period for the Systemd-Boot to wait; otherwise, it will not
|
||||
present the boot menu and will always boot the base Clear Linux OS:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ sudo clr-boot-manager set-timeout 5
|
||||
$ sudo clr-boot-manager update
|
||||
|
||||
#. Set the kernel-iot-lts2018 kernel as the default kernel:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ sudo clr-boot-manager list-kernels
|
||||
* org.clearlinux.native.5.3.1-838
|
||||
org.clearlinux.iot-lts2018-sos.4.19.73-92
|
||||
|
||||
Set the default kernel from ``org.clearlinux.native.5.3.1-838`` to
|
||||
``org.clearlinux.iot-lts2018-sos.4.19.73-92``:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ sudo clr-boot-manager set-kernel org.clearlinux.iot-lts2018-sos.4.19.73-92
|
||||
$ sudo clr-boot-manager list-kernels
|
||||
org.clearlinux.native.5.3.1-838
|
||||
* org.clearlinux.iot-lts2018-sos.4.19.73-92
|
||||
|
||||
|
||||
#. Reboot and wait until the boot menu is displayed, as shown below:
|
||||
|
||||
.. code-block:: console
|
||||
:emphasize-lines: 1
|
||||
:caption: ACRN Service OS Boot Menu
|
||||
|
||||
Clear Linux OS (Clear-linux-iot-lts2018-sos-4.19.73-92)
|
||||
Clear Linux OS (Clear-linux-native.5.3.1-838)
|
||||
Reboot Into Firmware Interface
|
||||
|
||||
#. After booting up the ACRN hypervisor, the Service OS launches
|
||||
automatically by default, and the Clear Linux OS desktop show with the **clear** user (or you can login remotely with an "ssh" client).
|
||||
If there is any issue which makes the GNOME desktop not successfully display,, then the system will go to the shell console.
|
||||
|
||||
#. From the ssh client, log in as the **clear** user. Use the password you set previously when you installed the Clear Linux OS.
|
||||
|
||||
#. After rebooting the system, check that the ACRN hypervisor is running properly with:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ sudo dmesg | grep ACRN
|
||||
[ 0.000000] Hypervisor detected: ACRN
|
||||
[ 1.253093] ACRNTrace: Initialized acrn trace module with 4 cpu
|
||||
[ 1.253535] ACRN HVLog: Failed to init last hvlog devs, errno -19
|
||||
[ 1.253536] ACRN HVLog: Initialized hvlog module with 4 cpu
|
||||
|
||||
If you see log information similar to this, the ACRN hypervisor is running properly
|
||||
and you can start deploying a User OS. If not, verify the EFI boot options, and SOS
|
||||
kernel settings are correct (as described above).
|
||||
|
||||
|
||||
ACRN Network Bridge
|
||||
===================
|
||||
|
||||
The ACRN bridge has been set up as a part of systemd services for device
|
||||
communication. The default bridge creates ``acrn_br0`` which is the bridge and ``tap0`` as an initial setup. The files can be found in ``/usr/lib/systemd/network``. No additional setup is needed since systemd-networkd is
|
||||
automatically enabled after a system restart.
|
||||
|
||||
Set up Reference UOS
|
||||
====================
|
||||
|
||||
#. On your platform, download the pre-built reference Clear Linux OS UOS
|
||||
image version 31080 (or newer) into your (root) home directory:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ cd ~
|
||||
$ mkdir uos
|
||||
$ cd uos
|
||||
$ curl https://download.clearlinux.org/releases/31080/clear/clear-31080-kvm.img.xz -o uos.img.xz
|
||||
|
||||
Note that if you want to use or try out a newer version of Clear Linux OS as the UOS, download the latest from http://download.clearlinux.org/image/. Make sure to adjust the steps described below accordingly (image file name and kernel modules version).
|
||||
|
||||
#. Uncompress it:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ unxz uos.img.xz
|
||||
|
||||
#. Deploy the UOS kernel modules to the UOS virtual disk image (note that you'll need to use the same **iot-lts2018** image version number noted in Step 1 above):
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ sudo losetup -f -P --show uos.img
|
||||
$ sudo mount /dev/loop0p3 /mnt
|
||||
$ sudo mount /dev/loop0p1 /mnt/boot
|
||||
$ sudo swupd bundle-add --path=/mnt kernel-iot-lts2018
|
||||
$ uos_kernel_conf=`ls -t /mnt/boot/loader/entries/ | grep Clear-linux-iot-lts2018 | head -n1`
|
||||
$ uos_kernel=${uos_kernel_conf%.conf}
|
||||
$ sudo echo "default $uos_kernel" > /mnt/boot/loader/loader.conf
|
||||
$ sudo umount /mnt/boot
|
||||
$ sudo umount /mnt
|
||||
$ sync
|
||||
|
||||
#. Edit and run the ``launch_uos.sh`` script to launch the UOS.
|
||||
|
||||
A sample `launch_uos.sh
|
||||
<https://raw.githubusercontent.com/projectacrn/acrn-hypervisor/master/devicemodel/samples/nuc/launch_uos.sh>`__
|
||||
is included in the Clear Linux OS release, and
|
||||
is also available in the acrn-hypervisor/devicemodel GitHub repo (in the samples
|
||||
folder) as shown here:
|
||||
|
||||
.. literalinclude:: ../../../../devicemodel/samples/nuc/launch_uos.sh
|
||||
:caption: devicemodel/samples/nuc/launch_uos.sh
|
||||
:language: bash
|
||||
|
||||
By default, the script is located in the ``/usr/share/acrn/samples/nuc/``
|
||||
directory. You can run it to launch the User OS:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ cd /usr/share/acrn/samples/nuc/
|
||||
$ sudo ./launch_uos.sh
|
||||
|
||||
#. You have successfully booted the ACRN hypervisor, SOS, and UOS:
|
||||
|
||||
.. figure:: images/gsg-successful-boot.png
|
||||
:align: center
|
||||
|
||||
Successful boot
|
13
doc/getting-started/changelog_QuickSetupScript.txt
Normal file
13
doc/getting-started/changelog_QuickSetupScript.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
Release v1.4
|
||||
|
||||
- Fix ACRN bootloader not clean up issue.
|
||||
- Add board_name and scenario variants use the right ACRN efi image.
|
||||
- Add new parameter to set up ACRN as industry scenario.
|
||||
|
||||
Release v1.3
|
||||
|
||||
- Use "clr-boot-manager" tool to set up ACRN kernel.
|
||||
|
||||
Release v0.8
|
||||
|
||||
- Support Service VM and User VM upgrading.
|
Binary file not shown.
Before Width: | Height: | Size: 33 KiB |
@@ -6,9 +6,9 @@ Getting Started Guide for ACRN Industry Scenario
|
||||
Verified version
|
||||
****************
|
||||
|
||||
- Clear Linux version: **31080**
|
||||
- ACRN-hypervisor tag: **v1.3**
|
||||
- ACRN-Kernel(Service VM kernel): **acrn-2019w39.1-140000p**
|
||||
- Clear Linux version: **31470**
|
||||
- ACRN-hypervisor tag: **v1.4**
|
||||
- ACRN-Kernel(Service VM kernel): **4.19.78-95.iot-lts2018-sos**
|
||||
- ACRN-Kernel(Preempt-RT kernel): **acrn-2019w39.1-143000p**
|
||||
|
||||
Prerequisites
|
||||
@@ -20,16 +20,17 @@ for the RTVM.
|
||||
|
||||
- Intel Kaby Lake (aka KBL) NUC platform with two disks inside
|
||||
(refer to :ref:`the tables <hardware_setup>` for detailed information).
|
||||
- Follow below steps to install Clear Linux OS (Ver: 31080) onto both disks on the KBL NUC:
|
||||
- If you need to enable the serial port on KBL NUC, navigate to the :ref:`troubleshooting <connect_serial_port>` to prepare the cable.
|
||||
- Follow below steps to install Clear Linux OS (Ver: 31470) onto both disks on the KBL NUC:
|
||||
|
||||
.. _Clear Linux OS Server image:
|
||||
https://download.clearlinux.org/releases/31080/clear/clear-31080-live-server.iso.xz
|
||||
https://download.clearlinux.org/releases/31470/clear/clear-31470-live-server.iso.xz
|
||||
|
||||
#. Create a bootable USB drive on Linux*:
|
||||
|
||||
a. Download and decompress the `Clear Linux OS Server image`_::
|
||||
|
||||
$ unxz clear-31080-live-server.iso.xz
|
||||
$ unxz clear-31470-live-server.iso.xz
|
||||
|
||||
#. Plug in the USB drive.
|
||||
#. Use the ``lsblk`` command line to identify the USB drive:
|
||||
@@ -48,24 +49,25 @@ for the RTVM.
|
||||
#. Unmount all the ``/dev/sdc`` partitions and burn the image onto the USB drive::
|
||||
|
||||
$ umount /dev/sdc* 2>/dev/null
|
||||
$ sudo dd if=./clear-31080-live-server.iso of=/dev/sdc oflag=sync status=progress bs=4M
|
||||
$ sudo dd if=./clear-31470-live-server.iso of=/dev/sdc oflag=sync status=progress bs=4M
|
||||
|
||||
#. Plug in the USB drive to the KBL NUC and boot from USB.
|
||||
#. Launch the Clear Linux OS installer boot menu.
|
||||
#. With Clear Linux OS highlighted, select **Enter**.
|
||||
#. With Clear Linux OS highlighted, select :kbd:`Enter`.
|
||||
#. Log in with your root account and new password.
|
||||
#. Run the installer using the following command::
|
||||
|
||||
# clr-installer
|
||||
|
||||
#. From the Main menu, select **Configure Installation Media** and set
|
||||
**Destructive Installation** to your desired hard disk.
|
||||
#. Select **Telemetry** to set Tab to highlight your choice.
|
||||
#. Press :kbd:`A` to show the **Advanced** options.
|
||||
#. Select **Select additional bundles** and add bundles for
|
||||
#. From the Main menu, select :kbd:`Configure Installation Media` and set
|
||||
:kbd:`Destructive Installation` to your desired hard disk.
|
||||
#. Select :kbd:`Telemetry` to set Tab to highlight your choice.
|
||||
#. Press :kbd:`A` to show the :kbd:`Advanced` options.
|
||||
#. Select :kbd:`Select additional bundles` and add bundles for
|
||||
**network-basic**, and **user-basic**.
|
||||
#. Select **Install**.
|
||||
#. Select **Confirm Install** in the **Confirm Installation** window to start the installation.
|
||||
#. Select :kbd:`Automatic OS Updates` and choose :kbd:`No [Disable]`.
|
||||
#. Select :kbd:`Install`.
|
||||
#. Select :kbd:`Confirm Install` in the :kbd:`Confirm Installation` window to start the installation.
|
||||
|
||||
.. _step-by-step instruction:
|
||||
https://docs.01.org/clearlinux/latest/get-started/bare-metal-install-server.html
|
||||
@@ -90,12 +92,19 @@ Hardware Setup
|
||||
| | | Graphics | - UHD Graphics 620 |
|
||||
| | | | - Two HDMI 2.0a ports supporting 4K at 60 Hz |
|
||||
| | +----------------------+-----------------------------------------------------------+
|
||||
| | | System memory | - 8GiB SODIMM DDR4 2400 MHz |
|
||||
| | | System memory | - 8GiB SODIMM DDR4 2400 MHz [1]_ |
|
||||
| | +----------------------+-----------------------------------------------------------+
|
||||
| | | Storage capabilities | - SATA: 1TB WDC WD10SPZX-22Z |
|
||||
| | | | - NVMe: 256G Intel Corporation SSD Pro 7600p/760p/E 6100p |
|
||||
+----------------------+-------------------+----------------------+-----------------------------------------------------------+
|
||||
|
||||
.. [1] The maximum supported memory size for ACRN is 16GB. If you are using
|
||||
32GB memory, follow the :ref:`config_32GB_memory` instruction to modify the
|
||||
``hypervisor/arch/x86/Kconfig`` and then use ``make FIRMWARE=uefi BOARD=nuc7i7dnb
|
||||
SCENARIO=industry hypervisor`` command to make the latest ACRN hypervisor
|
||||
which is supported 32GB memory. For more detailed instruction about how to build ACRN
|
||||
from the source code, refer to this :ref:`guide <getting-started-building>`.
|
||||
|
||||
Set up the ACRN Hypervisor for industry scenario
|
||||
************************************************
|
||||
|
||||
@@ -125,36 +134,11 @@ Use the pre-installed industry ACRN hypervisor
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
# ./acrn_quick_setup.sh -s 31080 -d -i
|
||||
# ./acrn_quick_setup.sh -s 31470 -d -i
|
||||
|
||||
.. note:: ``-i`` option means the industry hypervisor image will be used:
|
||||
``acrn.kbl-nuc-i7.industry.efi``.
|
||||
|
||||
These outputs show the script is running correctly and
|
||||
industry hypervisor is also installed:
|
||||
|
||||
.. code-block:: console
|
||||
:emphasize-lines: 9
|
||||
|
||||
Upgrading Service VM...
|
||||
Disable auto update...
|
||||
Running systemctl to disable updates
|
||||
Clear Linux version 31080 is already installed. Continuing to setup Service VM...
|
||||
Adding the service-os and systemd-networkd-autostart bundles...
|
||||
Loading required manifests...
|
||||
2 bundles were already installed
|
||||
Add /mnt/EFI/acrn folder
|
||||
Copy /usr/lib/acrn/acrn.kbl-nuc-i7.industry.efi to /mnt/EFI/acrn/acrn.efi
|
||||
Getting latest Service OS kernel version: org.clearlinux.iot-lts2018-sos.4.19.73-92
|
||||
Add default (5 seconds) boot wait time.
|
||||
New timeout value is: 5
|
||||
Set org.clearlinux.iot-lts2018-sos.4.19.73-92 as default boot kernel.
|
||||
Check ACRN efi boot event
|
||||
Clean all ACRN efi boot event
|
||||
Check linux bootloader event
|
||||
Clean all Linux bootloader event
|
||||
Add new ACRN efi boot event
|
||||
Service OS setup done!
|
||||
.. note:: ``-i`` option means the industry scenario efi image will be used, e.g.
|
||||
``acrn.nuc7i7dnb.industry.efi``. For the detailed usage of the ``acrn_quick_setup.sh`` script,
|
||||
move to this :ref:`quick setup ACRN guide <quick-setup-guide>` or just type ``./acrn_quick_setup.sh -h``.
|
||||
|
||||
#. Use ``efibootmgr -v`` command to check the ACRN boot order:
|
||||
|
||||
@@ -165,7 +149,7 @@ Use the pre-installed industry ACRN hypervisor
|
||||
Timeout: 1 seconds
|
||||
BootOrder: 0001,0002,000C,000D,0008,000E,000B,0003,0000,0004,0007
|
||||
Boot0000* Windows Boot Manager VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...o................
|
||||
Boot0001* ACRN HD(1,GPT,c6715698-0f6e-4e27-bb1b-bf7779c1486d,0x800,0x47000)/File(\EFI\acrn\acrn.efi)
|
||||
Boot0001* ACRN HD(1,GPT,c6715698-0f6e-4e27-bb1b-bf7779c1486d,0x800,0x47000)/File(\EFI\acrn\acrn.efi)u.a.r.t.=.d.i.s.a.b.l.e.d.
|
||||
Boot0002* Linux bootloader HD(3,GPT,b537f16f-d70f-4f1b-83b4-0f11be83cd83,0xc1800,0xded3000)/File(\EFI\org.clearlinux\bootloaderx64.efi)
|
||||
Boot0003* CentOS VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)
|
||||
Boot0004* CentOS Linux VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)
|
||||
@@ -179,6 +163,10 @@ Use the pre-installed industry ACRN hypervisor
|
||||
.. note:: Ensure the ACRN is the first boot order, or you may use ``efibootmgr -o 1`` command to move it
|
||||
to the first order.
|
||||
|
||||
.. note:: If you need to enable the serial port, run the following command before reboot:
|
||||
|
||||
``efibootmgr -c -l '\EFI\acrn\acrn.efi' -d /dev/sda -p 1 -L ACRN -u "uart=port@0x3f8"``
|
||||
|
||||
#. Reboot KBL NUC.
|
||||
|
||||
#. Use ``dmesg`` command to ensure the Service VM boots:
|
||||
@@ -214,11 +202,19 @@ Use the ACRN industry out-of-the-box image
|
||||
|
||||
# dd if=sos-industry-31080.img of=/dev/sda bs=4M oflag=sync status=progress
|
||||
|
||||
#. Configure the EFI firmware to boot the ACRN hypervisor by default::
|
||||
#. Configure the EFI firmware to boot the ACRN hypervisor by default:
|
||||
|
||||
::
|
||||
|
||||
# efibootmgr -c -l "\EFI\acrn\acrn.efi" -d /dev/sda -p 1 -L "ACRN"
|
||||
# efibootmgr -c -l "\EFI\acrn\acrn.efi" -d /dev/sda -p 1 -L "ACRN" -u "uart=disabled"
|
||||
|
||||
#. Unplug the U disk and reboot the test machine. After the Clear Linux OS boots,
|
||||
Or use the following command to enable the serial port:
|
||||
|
||||
::
|
||||
|
||||
# efibootmgr -c -l "\EFI\acrn\acrn.efi" -d /dev/sda -p 1 -L "ACRN" -u "uart=port@0x3f8"
|
||||
|
||||
#. Reboot the test machine. After the Clear Linux OS boots,
|
||||
log in as “root” for the first time.
|
||||
|
||||
.. _install_rtvm:
|
||||
@@ -273,16 +269,18 @@ Install and launch the Preempt-RT VM
|
||||
.. code-block:: none
|
||||
:emphasize-lines: 6
|
||||
|
||||
/usr/bin/acrn-dm -A -m $mem_size -c $1 -s 0:0,hostbridge \
|
||||
/usr/bin/acrn-dm -A -m $mem_size -s 0:0,hostbridge \
|
||||
--lapic_pt \
|
||||
--rtvm \
|
||||
--virtio_poll 1000000 \
|
||||
-U 495ae2e5-2603-4d64-af76-d4bc5a8ec0e5 \
|
||||
-s 2,passthru,02/00/0 \
|
||||
-s 3,virtio-console,@stdio:stdio_port \
|
||||
-s 8,virtio-net,tap0 \
|
||||
$pm_channel $pm_by_vuart \
|
||||
--ovmf /usr/share/acrn/bios/OVMF.fd \
|
||||
hard_rtvm
|
||||
|
||||
}
|
||||
|
||||
#. Upon deployment completion, launch the RTVM directly on your KBL NUC::
|
||||
@@ -309,6 +307,14 @@ suite rt-tests.
|
||||
Pre-Configurations
|
||||
==================
|
||||
|
||||
Firmware update on the NUC
|
||||
--------------------------
|
||||
|
||||
If you need to update to the latest UEFI firmware for the NUC hardware.
|
||||
Follow these `BIOS Update Instructions
|
||||
<https://www.intel.com/content/www/us/en/support/articles/000005636.html>`__
|
||||
for downloading and flashing an updated BIOS for the NUC.
|
||||
|
||||
Recommended BIOS settings
|
||||
-------------------------
|
||||
|
||||
@@ -410,10 +416,6 @@ In our recommended configuration, two cores are allocated to the RTVM:
|
||||
core 0 for housekeeping and core 1 for RT tasks. In order to achieve
|
||||
this, follow the below steps to allocate all housekeeping tasks to core 0:
|
||||
|
||||
#. Modify the script to use two cores before launching RTVM::
|
||||
|
||||
# sed -i "s/launch_hard_rt_vm 1/launch_hard_rt_vm 2/" /usr/share/acrn/samples/nuc/launch_hard_rt_vm.sh
|
||||
|
||||
#. Launch RTVM::
|
||||
|
||||
# /usr/share/acrn/samples/nuc/launch_hard_rt_vm.sh
|
||||
@@ -462,11 +464,12 @@ Run cyclictest
|
||||
#. Use the following command to start cyclictest::
|
||||
|
||||
# cyclictest -a 1 -p 80 -m -N -D 1h -q -H 30000 --histfile=test.log
|
||||
|
||||
- Usage:
|
||||
|
||||
Parameter descriptions:
|
||||
|
||||
:-a 1: to bind the RT task to core 1
|
||||
:-p 80: to set the priority of the highest prio thread
|
||||
:-m: lock current and future memory allocations
|
||||
:-N: print results in ns instead of us (default us)
|
||||
:-D 1h: to run for 1 hour, you can change it to other values
|
||||
:-q: quiee mode; print a summary only on exit
|
||||
@@ -475,9 +478,72 @@ Run cyclictest
|
||||
Troubleshooting
|
||||
***************
|
||||
|
||||
.. _connect_serial_port:
|
||||
|
||||
Use serial port on KBL NUC
|
||||
==========================
|
||||
|
||||
You can enable the serial console on the
|
||||
`KBL NUC <https://www.amazon.com/Intel-Business-Mini-Technology-BLKNUC7i7DNH1E/dp/B07CCQ8V4R>`_
|
||||
(NUC7i7DNH). The KBL NUC has a serial port header you can
|
||||
expose with a serial DB9 header cable. You can build this cable yourself;
|
||||
refer to the `KBL NUC product specification
|
||||
<https://www.intel.com/content/dam/support/us/en/documents/mini-pcs/nuc-kits/NUC7i7DN_TechProdSpec.pdf>`_
|
||||
as shown below:
|
||||
|
||||
.. figure:: images/KBL-serial-port-header.png
|
||||
:scale: 80
|
||||
|
||||
KBL serial port header details
|
||||
|
||||
|
||||
.. figure:: images/KBL-serial-port-header-to-RS232-cable.jpg
|
||||
:scale: 80
|
||||
|
||||
KBL `serial port header to RS232 cable
|
||||
<https://www.amazon.com/dp/B07BV1W6N8/ref=cm_sw_r_cp_ep_dp_wYm0BbABD5AK6>`_
|
||||
|
||||
|
||||
Or you can `purchase
|
||||
<https://www.amazon.com/dp/B07BV1W6N8/ref=cm_sw_r_cp_ep_dp_wYm0BbABD5AK6>`_
|
||||
such a cable.
|
||||
|
||||
You'll also need an `RS232 DB9 female to USB cable
|
||||
<https://www.amazon.com/Adapter-Chipset-CableCreation-Converter-Register/dp/B0769DVQM1>`_,
|
||||
or an `RS232 DB9 female/female (NULL modem) cross-over cable
|
||||
<https://www.amazon.com/SF-Cable-Null-Modem-RS232/dp/B006W0I3BA>`_
|
||||
to connect to your host system.
|
||||
|
||||
Note that If you want to use the RS232 DB9 female/female cable, choose the ``cross-over``
|
||||
type rather than ``straight-through`` type.
|
||||
|
||||
.. _efi image not exist:
|
||||
|
||||
EFI image doesn't exist
|
||||
=======================
|
||||
|
||||
You might see the error message if you are running the ``acrn_quick_setup.sh`` script
|
||||
on an older Clear Linux OS ( < 31470 ):
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
/usr/lib/acrn/acrn.nuc7i7dnb.industry.efi doesn't exist.
|
||||
Use one of these efi images from /usr/lib/acrn.
|
||||
------
|
||||
/usr/lib/acrn/acrn.kbl-nuc-i7.industry.efi
|
||||
------
|
||||
Copy the efi image to /usr/lib/acrn/acrn.nuc7i7dnb.industry.efi, then run the script again.
|
||||
|
||||
To fix it, just rename the existing efi image to ``/usr/lib/acrn/acrn.nuc7i7dnb.industry.efi`` and
|
||||
then run the script again::
|
||||
|
||||
# cp -r /usr/lib/acrn/acrn.kbl-nuc-i7.industry.efi /usr/lib/acrn/acrn.nuc7i7dnb.industry.efi
|
||||
# ./acrn_quick_setup.sh -s <target version> -i -d
|
||||
|
||||
.. _enabling the network on RTVM:
|
||||
|
||||
**Enabling the network on RTVM**
|
||||
Enabling the network on RTVM
|
||||
============================
|
||||
|
||||
If you need to access the internet, you must add the following command line to the
|
||||
``launch_hard_rt_vm.sh`` script before launch it:
|
||||
@@ -485,7 +551,7 @@ If you need to access the internet, you must add the following command line to t
|
||||
.. code-block:: none
|
||||
:emphasize-lines: 8
|
||||
|
||||
/usr/bin/acrn-dm -A -m $mem_size -c $1 -s 0:0,hostbridge \
|
||||
/usr/bin/acrn-dm -A -m $mem_size -s 0:0,hostbridge \
|
||||
--lapic_pt \
|
||||
--rtvm \
|
||||
--virtio_poll 1000000 \
|
||||
@@ -496,4 +562,6 @@ If you need to access the internet, you must add the following command line to t
|
||||
$pm_channel $pm_by_vuart \
|
||||
--ovmf /usr/share/acrn/bios/OVMF.fd \
|
||||
hard_rtvm
|
||||
|
||||
}
|
||||
|
||||
|
@@ -49,11 +49,11 @@ Software setup
|
||||
|
||||
Setting up the ACRN hypervisor (and associated components) on the UP2
|
||||
board is no different than other hardware platforms so please follow
|
||||
the instructions provided in the :ref:`getting-started-apl-nuc`, with
|
||||
the instructions provided in the :ref:`rt_industry_setup`, with
|
||||
the additional information below.
|
||||
|
||||
There are a few parameters specific to the UP2 board that differ from
|
||||
what is referenced in the :ref:`getting-started-apl-nuc` section:
|
||||
what is referenced in the :ref:`rt_industry_setup` section:
|
||||
|
||||
1. Serial Port settings
|
||||
#. Storage device name
|
||||
@@ -118,4 +118,4 @@ Running the hypervisor
|
||||
|
||||
Now that the hypervisor and Service OS have been installed on your UP2 board,
|
||||
you can proceed with the rest of the instructions in the
|
||||
:ref:`getting-started-apl-nuc` and install the User OS (UOS).
|
||||
:ref:`kbl-nuc-sdc` and install the User OS (UOS).
|
||||
|
Reference in New Issue
Block a user