mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-10 16:05:49 +00:00
doc: edit agl-vms.rst adjust to v1.3
This commit is contained in:
parent
da469d9e3e
commit
1d8f16a2e9
@ -24,9 +24,9 @@ meter, the In-Vehicle Infotainment (IVI) system, and the rear seat
|
|||||||
entertainment (RSE). For the software, there are three VMs running on
|
entertainment (RSE). For the software, there are three VMs running on
|
||||||
top of ACRN:
|
top of ACRN:
|
||||||
|
|
||||||
* Clear Linux OS runs as the service OS (SOS) to control the cluster meter,
|
* Clear Linux OS runs as the service OS (Service VM) to control the cluster meter,
|
||||||
* an AGL instance runs as a user OS (UOS) controlling the IVI display, and
|
* an AGL instance runs as a user OS (User VM) controlling the IVI display, and
|
||||||
* a second AGL UOS controls the RSE display.
|
* a second AGL User VM controls the RSE display.
|
||||||
|
|
||||||
:numref:`agl-demo-setup` shows the hardware and display images of a
|
:numref:`agl-demo-setup` shows the hardware and display images of a
|
||||||
running demo:
|
running demo:
|
||||||
@ -58,7 +58,7 @@ Here is the hardware used for the demo development:
|
|||||||
* `Tested components and peripherals
|
* `Tested components and peripherals
|
||||||
<http://compatibleproducts.intel.com/ProductDetails?prodSearch=True&searchTerm=NUC7i7DNHE#>`_,
|
<http://compatibleproducts.intel.com/ProductDetails?prodSearch=True&searchTerm=NUC7i7DNHE#>`_,
|
||||||
* 16GB RAM, and
|
* 16GB RAM, and
|
||||||
* 250GB SSD
|
* 120GB SATA SSD
|
||||||
* - eDP display
|
* - eDP display
|
||||||
- `Sharp LQ125T1JX05
|
- `Sharp LQ125T1JX05
|
||||||
<http://www.panelook.com/LQ125T1JX05-E_SHARP_12.5_LCM_overview_35649.html>`_
|
<http://www.panelook.com/LQ125T1JX05-E_SHARP_12.5_LCM_overview_35649.html>`_
|
||||||
@ -109,25 +109,25 @@ The demo setup uses these software components and versions:
|
|||||||
- Version
|
- Version
|
||||||
- Link
|
- Link
|
||||||
* - ACRN hypervisor
|
* - ACRN hypervisor
|
||||||
- 0.3
|
- 1.3
|
||||||
- `ACRN project <https://github.com/projectacrn/acrn-hypervisor>`_
|
- `ACRN project <https://github.com/projectacrn/acrn-hypervisor>`_
|
||||||
* - Clear Linux OS
|
* - Clear Linux OS
|
||||||
- 26200
|
- 31080
|
||||||
- `Clear Linux OS installer image
|
- `Clear Linux OS installer image
|
||||||
<https://download.clearlinux.org/releases/26200/clear/clear-26200-installer.img.xz>`_
|
<https://download.clearlinux.org/releases/31080/clear/clear-31080-kvm.img.xz>`_
|
||||||
* - AGL
|
* - AGL
|
||||||
- Funky Flounder (6.02)
|
- Funky Flounder (6.02)
|
||||||
- `intel-corei7-x64 image
|
- `intel-corei7-x64 image
|
||||||
<https://download.automotivelinux.org/AGL/release/flounder/6.0.2/intel-corei7-64/deploy/images/intel-corei7-64/agl-demo-platform-crosssdk-intel-corei7-64-20181112133144.rootfs.wic.xz>`_
|
<https://download.automotivelinux.org/AGL/release/flounder/6.0.2/intel-corei7-64/deploy/images/intel-corei7-64/agl-demo-platform-crosssdk-intel-corei7-64-20181112133144.rootfs.wic.xz>`_
|
||||||
* - acrn-kernel
|
* - acrn-kernel
|
||||||
- revision acrn-2018w49.3-140000p
|
- revision acrn-2019w39.1-140000p
|
||||||
- `acrn-kernel <https://github.com/projectacrn/acrn-kernel>`_
|
- `acrn-kernel <https://github.com/projectacrn/acrn-kernel>`_
|
||||||
|
|
||||||
Service OS
|
Service OS
|
||||||
==========
|
==========
|
||||||
|
|
||||||
#. Download the compressed Clear Linux OS installer image from
|
#. Download the compressed Clear Linux OS installer image from
|
||||||
https://download.clearlinux.org/releases/26200/clear/clear-26200-installer.img.xz
|
https://download.clearlinux.org/releases/31080/clear/clear-31080-live-server.img.xz
|
||||||
and follow the `Clear Linux OS installation guide
|
and follow the `Clear Linux OS installation guide
|
||||||
<https://clearlinux.org/documentation/clear-linux/get-started/bare-metal-install-server>`_
|
<https://clearlinux.org/documentation/clear-linux/get-started/bare-metal-install-server>`_
|
||||||
as a starting point for installing Clear Linux OS onto your platform.
|
as a starting point for installing Clear Linux OS onto your platform.
|
||||||
@ -145,19 +145,24 @@ Service OS
|
|||||||
|
|
||||||
# swupd autoupdate --disable
|
# swupd autoupdate --disable
|
||||||
|
|
||||||
#. This demo setup uses a specific release version (26200) of Clear
|
#. This demo setup uses a specific release version (31080) of Clear
|
||||||
Linux OS which has been verified to work with ACRN. In case you
|
Linux OS which has been verified to work with ACRN. In case you
|
||||||
unintentionally update or change the Clear Linux OS version, you can
|
unintentionally update or change the Clear Linux OS version, you can
|
||||||
fix it again using::
|
fix it again using::
|
||||||
|
|
||||||
# swupd verify --fix --picky -m 26200
|
# swupd verify --fix --picky -m 31080
|
||||||
|
|
||||||
#. Use the ``swupd bundle-add`` command and add needed Clear Linux
|
#. Use `acrn_quick_setup.sh <https://github.com/projectacrn/acrn-hypervisor/blob/84c2b8819f479c5e6f4641490ff4bf6004f112d1/doc/getting-started/acrn_quick_setup.sh>`_
|
||||||
OS bundles::
|
to automatically install ACRN::
|
||||||
|
|
||||||
|
# sh acrn_quick_setup.sh -s 31080 -i
|
||||||
|
|
||||||
|
#. After installation, the system will automatically start
|
||||||
|
|
||||||
|
#. Reboot the system, choose "ACRN Hypervisor" and launch Clear Linux OS
|
||||||
|
Service VM. If the EFI boot order is not right, use :kbd:`F10`
|
||||||
|
on boot up to enter the EFI menu and choose "ACRN Hypervisor".
|
||||||
|
|
||||||
# swupd bundle-add openssh-server sudo network-basic \
|
|
||||||
kernel-iot-lts2018 os-clr-on-clr os-core-dev \
|
|
||||||
python3-basic dfu-util dtc
|
|
||||||
|
|
||||||
#. Install the graphics UI if necessary. Use only one of the two
|
#. Install the graphics UI if necessary. Use only one of the two
|
||||||
options listed below (this guide uses the first GNOME on Wayland option)::
|
options listed below (this guide uses the first GNOME on Wayland option)::
|
||||||
@ -184,56 +189,7 @@ Service OS
|
|||||||
screen, click on the setting button and choose "GNOME on Wayland". Then
|
screen, click on the setting button and choose "GNOME on Wayland". Then
|
||||||
chose the <username> and enter the password to login.
|
chose the <username> and enter the password to login.
|
||||||
|
|
||||||
|
Building ACRN kernel for AGL (User VM)
|
||||||
#. Build ACRN. In this demo we use the ACRN v0.3 release.
|
|
||||||
Open a terminal window in Clear Linux OS desktop, create a workspace,
|
|
||||||
install needed tools, clone the ACRN Hypervisor repo source, and build ACRN::
|
|
||||||
|
|
||||||
$ mkdir workspace
|
|
||||||
$ cd workspace
|
|
||||||
$ pip3 install kconfiglib
|
|
||||||
$ git clone https://github.com/projectacrn/acrn-hypervisor
|
|
||||||
$ git checkout tags/v0.3
|
|
||||||
$ make PLATFORM=uefi
|
|
||||||
$ sudo make install
|
|
||||||
|
|
||||||
#. Install and enable ACRN::
|
|
||||||
|
|
||||||
$ sudo mount /dev/sda1 /mnt
|
|
||||||
$ sudo mkdir /mnt/EFI/acrn
|
|
||||||
$ sudo cp /usr/lib/acrn/acrn.efi /mnt/EFI/acrn/
|
|
||||||
$ efibootmgr -c -l "\EFI\acrn\acrn.efi" -d /dev/sda -p 1 \
|
|
||||||
-L "ACRN Hypervisor" \
|
|
||||||
-u "bootloader=\EFI\org.clearlinux\bootloaderx64.efi uart=port@0x3f8"
|
|
||||||
|
|
||||||
$ sudo cp /usr/share/acrn/samples/nuc/acrn.conf /mnt/loader/entries/
|
|
||||||
$ sudo vi /mnt/loader/entries/acrn.conf
|
|
||||||
|
|
||||||
|
|
||||||
Modify the acrn.conf file as shown below and save it::
|
|
||||||
|
|
||||||
title The ACRN Service OS
|
|
||||||
|
|
||||||
linux
|
|
||||||
/EFI/org.clearlinux/kernel-org.clearlinux.iot-lts2018-sos.4.19.0-19
|
|
||||||
|
|
||||||
options pci_devices_ignore=(0:18:1) console=tty0 console=ttyS0
|
|
||||||
root=/dev/sda3 rw rootwait ignore_loglevel no_timer_check consoleblank=0
|
|
||||||
i915.nuclear_pageflip=1 i915.avail_planes_per_pipe=0x00000F i915.domain_plane_owners=0x022211110000
|
|
||||||
i915.enable_gvt=1 i915.enable_guc=0 hvlog=2M@0x1FE00000
|
|
||||||
|
|
||||||
#. Set a longer timeout::
|
|
||||||
|
|
||||||
$ sudo clr-boot-manager set-timeout 20
|
|
||||||
$ sudo clr-boot-manager update
|
|
||||||
|
|
||||||
|
|
||||||
#. Reboot the system, choose "ACRN Hypervisor" and launch Clear Linux OS
|
|
||||||
SOS. If the EFI boot order is not right, use :kbd:`F10`
|
|
||||||
on boot up to enter the EFI menu and choose "ACRN Hypervisor".
|
|
||||||
|
|
||||||
|
|
||||||
Building ACRN kernel for AGL (UOS)
|
|
||||||
==================================
|
==================================
|
||||||
|
|
||||||
In this demo, we use acrn-kernel as the baseline for development for AGL.
|
In this demo, we use acrn-kernel as the baseline for development for AGL.
|
||||||
@ -243,25 +199,26 @@ In this demo, we use acrn-kernel as the baseline for development for AGL.
|
|||||||
|
|
||||||
$ cd workspace
|
$ cd workspace
|
||||||
$ git clone https://github.com/projectacrn/acrn-kernel
|
$ git clone https://github.com/projectacrn/acrn-kernel
|
||||||
$ git checkout tags/acrn-2018w49.3-140000p
|
$ git checkout tags/acrn-2019w39.1-140000p
|
||||||
$ make menuconfig
|
$ cp kernel_config_uos .config
|
||||||
|
$ vi .config
|
||||||
|
$ make olddefconfig
|
||||||
|
|
||||||
|
|
||||||
Load the **kernel_uos_config** for the UOS kernel build, and verify
|
Load the **.config** for the User VM kernel build, and verify
|
||||||
the following configs options are on::
|
the following configs options are on::
|
||||||
|
|
||||||
CONFIG_LOCAL_VERSION="-uos"
|
CONFIG_LOCALVERSION="-uos"
|
||||||
CONFIG_SECURITY_SMACK=y
|
CONFIG_SECURITY_SMACK=y
|
||||||
CONFIG_SECURITY_SMACK_BRINGUP=y
|
CONFIG_SECURITY_SMACK_BRINGUP=y
|
||||||
CONFIG_DEFAULT_SECURITY_SMACK=y
|
CONFIG_DEFAULT_SECURITY_SMACK=y
|
||||||
CONFIG_EXT4_FS=y
|
CONFIG_EXT4_FS=y
|
||||||
CONFIG_EXT4_USE_FOR_EXT23=y
|
CONFIG_EXT4_USE_FOR_EXT2=y
|
||||||
CONFIG_EXT4_FS_POSIX_ACL=y
|
CONFIG_EXT4_FS_POSIX_ACL=y
|
||||||
CONFIG_EXT4_FS_SECURITY=y
|
CONFIG_EXT4_FS_SECURITY=y
|
||||||
# CONFIG_MODULES is not set
|
CONFIG_CAN=y
|
||||||
CONFIG_CAN
|
CONFIG_CAN_VCAN=y
|
||||||
CONFIG_CAN_VCAN
|
CONFIG_CAN_SLCAN=y
|
||||||
CONFIG_CAN_SLCAN
|
|
||||||
|
|
||||||
|
|
||||||
#. Build the kernel::
|
#. Build the kernel::
|
||||||
@ -302,46 +259,44 @@ Setting up AGLs
|
|||||||
the following content::
|
the following content::
|
||||||
|
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
function launch_agl()
|
set -x
|
||||||
|
|
||||||
|
offline_path="/sys/class/vhm/acrn_vhm"
|
||||||
|
|
||||||
|
# Check the device file of /dev/acrn_hsm to determine the offline_path
|
||||||
|
if [ -e "/dev/acrn_hsm" ]; then
|
||||||
|
offline_path="/sys/class/acrn/acrn_hsm"
|
||||||
|
fi
|
||||||
|
|
||||||
|
function launch_clear()
|
||||||
{
|
{
|
||||||
|
mac=$(cat /sys/class/net/e*/address)
|
||||||
vm_name=vm$1
|
vm_name=vm$1
|
||||||
|
mac_seed=${mac:9:8}-${vm_name}
|
||||||
|
|
||||||
#check if the vm is running or not
|
#check if the vm is running or not
|
||||||
vm_ps=$(pgrep -a -f acrn-dm)
|
vm_ps=$(pgrep -a -f acrn-dm)
|
||||||
result=$(echo $vm_ps | grep "${vm_name}")
|
result=$(echo $vm_ps | grep -w "${vm_name}")
|
||||||
if [[ "$result" != "" ]]; then
|
if [[ "$result" != "" ]]; then
|
||||||
echo "$vm_name is running, can't create twice!"
|
echo "$vm_name is running, can't create twice!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# create a unique tap device for each VM
|
#logger_setting, format: logger_name,level; like following
|
||||||
tap=tap2
|
logger_setting="--logger_setting console,level=4;kmsg,level=3"
|
||||||
tap_exist=$(ip a | grep "$tap" | awk '{print $1}')
|
|
||||||
if [ "$tap_exist"x != "x" ]; then
|
|
||||||
echo "tap device existed, reuse $tap"
|
|
||||||
else
|
|
||||||
ip tuntap add dev $tap mode tap
|
|
||||||
fi
|
|
||||||
|
|
||||||
# if acrn-br0 exists, add VM's unique tap device under it
|
|
||||||
br_exist=$(ip a | grep acrn-br0 | awk '{print $1}')
|
|
||||||
if [ "$br_exist"x != "x" -a "$tap_exist"x = "x" ]; then
|
|
||||||
echo "acrn-br0 bridge aleady exists, adding new tap device to it..."
|
|
||||||
ip link set "$tap" master acrn-br0
|
|
||||||
ip link set dev "$tap" down
|
|
||||||
ip link set dev "$tap" up
|
|
||||||
fi
|
|
||||||
|
|
||||||
#for memsize setting
|
#for memsize setting
|
||||||
mem_size=2048M
|
mem_size=2048M
|
||||||
|
|
||||||
acrn-dm -A -m $mem_size -c $2 -s 0:0,hostbridge -s 1:0,lpc -l com1,stdio \
|
acrn-dm -A -m $mem_size -c $2 -s 0:0,hostbridge \
|
||||||
-s 2,pci-gvt -G "$3" \
|
-s 2,pci-gvt -G "$3" \
|
||||||
-s 5,virtio-console,@pty:pty_port \
|
-s 3,virtio-blk,/root/agl-ivi.wic \
|
||||||
|
-s 4,virtio-net,tap0 \
|
||||||
|
-s 5,virtio-console,@stdio:stdio_port \
|
||||||
-s 6,virtio-hyper_dmabuf \
|
-s 6,virtio-hyper_dmabuf \
|
||||||
-s 3,virtio-blk,/root/agl_ivi.wic \
|
|
||||||
-s 4,virtio-net,$tap \
|
|
||||||
-s 7,xhci,1-4 \
|
-s 7,xhci,1-4 \
|
||||||
|
$logger_setting \
|
||||||
|
--mac_seed $mac_seed \
|
||||||
-k /root/bzImage-4.19.0-uos \
|
-k /root/bzImage-4.19.0-uos \
|
||||||
-B "root=/dev/vda2 rw rootwait maxcpus=$2 nohpet console=tty0 console=hvc0 \
|
-B "root=/dev/vda2 rw rootwait maxcpus=$2 nohpet console=tty0 console=hvc0 \
|
||||||
console=ttyS0 no_timer_check ignore_loglevel log_buf_len=16M \
|
console=ttyS0 no_timer_check ignore_loglevel log_buf_len=16M \
|
||||||
@ -350,70 +305,67 @@ Setting up AGLs
|
|||||||
i915.enable_guc_submission=0 i915.enable_guc=0" $vm_name
|
i915.enable_guc_submission=0 i915.enable_guc=0" $vm_name
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# offline Service VM CPUs except BSP before launch User VM
|
||||||
# offline SOS CPUs except BSP before launch UOS
|
for i in `ls -d /sys/devices/system/cpu/cpu[1-99]`; do
|
||||||
for i in `ls -d /sys/devices/system/cpu/cpu[2-99]`; do
|
|
||||||
online=`cat $i/online`
|
online=`cat $i/online`
|
||||||
idx=`echo $i | tr -cd "[2-99]"`
|
idx=`echo $i | tr -cd "[1-99]"`
|
||||||
echo cpu$idx online=$online
|
echo cpu$idx online=$online
|
||||||
if [ "$online" = "1" ]; then
|
if [ "$online" = "1" ]; then
|
||||||
echo 0 > $i/online
|
echo 0 > $i/online
|
||||||
echo $idx > /sys/class/vhm/acrn_vhm/offline_cpu
|
# during boot time, cpu hotplug may be disabled by pci_device_probe during a pci module insmod
|
||||||
|
while [ "$online" = "1" ]; do
|
||||||
|
sleep 1
|
||||||
|
echo 0 > $i/online
|
||||||
|
online=`cat $i/online`
|
||||||
|
done
|
||||||
|
echo $idx > ${offline_path}/offline_cpu
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
launch_agl 1 1 "64 448 8" 0x000F00 agl
|
launch_clear 1 1 "64 448 8" 0x000F00 agl
|
||||||
|
|
||||||
#. Create the ``launch_rse.sh`` script for the AGL RSE VM with this
|
#. Create the ``launch_rse.sh`` script for the AGL RSE VM with this content::
|
||||||
content::
|
|
||||||
|
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
function launch_agl()
|
set -x
|
||||||
|
|
||||||
|
offline_path="/sys/class/vhm/acrn_vhm"
|
||||||
|
|
||||||
|
# Check the device file of /dev/acrn_hsm to determine the offline_path
|
||||||
|
if [ -e "/dev/acrn_hsm" ]; then
|
||||||
|
offline_path="/sys/class/acrn/acrn_hsm"
|
||||||
|
fi
|
||||||
|
|
||||||
|
function launch_clear()
|
||||||
{
|
{
|
||||||
|
mac=$(cat /sys/class/net/e*/address)
|
||||||
vm_name=vm$1
|
vm_name=vm$1
|
||||||
|
mac_seed=${mac:9:8}-${vm_name}
|
||||||
|
|
||||||
#check if the vm is running or not
|
#check if the vm is running or not
|
||||||
vm_ps=$(pgrep -a -f acrn-dm)
|
vm_ps=$(pgrep -a -f acrn-dm)
|
||||||
result=$(echo $vm_ps | grep "${vm_name}")
|
result=$(echo $vm_ps | grep -w "${vm_name}")
|
||||||
if [[ "$result" != "" ]]; then
|
if [[ "$result" != "" ]]; then
|
||||||
echo "$vm_name is running, can't create twice!"
|
echo "$vm_name is running, can't create twice!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#logger_setting, format: logger_name,level; like following
|
||||||
# create a unique tap device for each VM
|
logger_setting="--logger_setting console,level=4;kmsg,level=3"
|
||||||
tap=tap1
|
|
||||||
|
|
||||||
tap_exist=$(ip a | grep "$tap" | awk '{print $1}')
|
|
||||||
if [ "$tap_exist"x != "x" ]; then
|
|
||||||
echo "tap device existed, reuse $tap"
|
|
||||||
else
|
|
||||||
ip tuntap add dev $tap mode tap
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# if acrn-br0 exists, add VM's unique tap device under it
|
|
||||||
|
|
||||||
br_exist=$(ip a | grep acrn-br0 | awk '{print $1}')
|
|
||||||
if [ "$br_exist"x != "x" -a "$tap_exist"x = "x" ]; then
|
|
||||||
echo "acrn-br0 bridge aleady exists, adding new tap device to it..."
|
|
||||||
ip link set "$tap" master acrn-br0
|
|
||||||
ip link set dev "$tap" down
|
|
||||||
ip link set dev "$tap" up
|
|
||||||
fi
|
|
||||||
|
|
||||||
#for memsize setting
|
#for memsize setting
|
||||||
mem_size=2048M
|
mem_size=2048M
|
||||||
|
|
||||||
|
acrn-dm -A -m $mem_size -c $2 -s 0:0,hostbridge -U 495ae2e5-2603-4d64-af76-d4bc5a8ec0e5 \
|
||||||
acrn-dm -A -m $mem_size -c $2 -s 0:0,hostbridge -s 1:0,lpc -l com1,stdio \
|
|
||||||
-s 2,pci-gvt -G "$3" \
|
-s 2,pci-gvt -G "$3" \
|
||||||
-s 5,virtio-console,@pty:pty_port \
|
-s 5,virtio-console,@stdio:stdio_port \
|
||||||
-s 6,virtio-hyper_dmabuf \
|
-s 6,virtio-hyper_dmabuf \
|
||||||
-s 3,virtio-blk,/root/agl_rse.wic \
|
-s 3,virtio-blk,/root/agl-rse.wic \
|
||||||
-s 4,virtio-net,tap1 \
|
-s 4,virtio-net,tap0 \
|
||||||
-s 7,xhci,1-5 \
|
-s 7,xhci,1-5 \
|
||||||
|
$logger_setting \
|
||||||
|
--mac_seed $mac_seed \
|
||||||
-k /root/bzImage-4.19.0-uos \
|
-k /root/bzImage-4.19.0-uos \
|
||||||
-B "root=/dev/vda2 rw rootwait maxcpus=$2 nohpet console=tty0 console=hvc0 \
|
-B "root=/dev/vda2 rw rootwait maxcpus=$2 nohpet console=tty0 console=hvc0 \
|
||||||
console=ttyS0 no_timer_check ignore_loglevel log_buf_len=16M \
|
console=ttyS0 no_timer_check ignore_loglevel log_buf_len=16M \
|
||||||
@ -422,19 +374,24 @@ Setting up AGLs
|
|||||||
i915.enable_guc_submission=0 i915.enable_guc=0" $vm_name
|
i915.enable_guc_submission=0 i915.enable_guc=0" $vm_name
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# offline Service VM CPUs except BSP before launch User VM
|
||||||
# offline SOS CPUs except BSP before launch UOS
|
for i in `ls -d /sys/devices/system/cpu/cpu[1-99]`; do
|
||||||
for i in `ls -d /sys/devices/system/cpu/cpu[2-99]`; do
|
|
||||||
online=`cat $i/online`
|
online=`cat $i/online`
|
||||||
idx=`echo $i | tr -cd "[2-99]"`
|
idx=`echo $i | tr -cd "[1-99]"`
|
||||||
echo cpu$idx online=$online
|
echo cpu$idx online=$online
|
||||||
if [ "$online" = "1" ]; then
|
if [ "$online" = "1" ]; then
|
||||||
echo 0 > $i/online
|
echo 0 > $i/online
|
||||||
echo $idx > /sys/class/vhm/acrn_vhm/offline_cpu
|
# during boot time, cpu hotplug may be disabled by pci_device_probe during a pci module insmod
|
||||||
|
while [ "$online" = "1" ]; do
|
||||||
|
sleep 1
|
||||||
|
echo 0 > $i/online
|
||||||
|
online=`cat $i/online`
|
||||||
|
done
|
||||||
|
echo $idx > ${offline_path}/offline_cpu
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
launch_agl 2 1 "64 448 8" 0x070000 agl
|
launch_clear 2 1 "64 448 8" 0x070000 agl
|
||||||
|
|
||||||
|
|
||||||
#. Launch the AGL IVI VM::
|
#. Launch the AGL IVI VM::
|
||||||
@ -528,4 +485,4 @@ Setting up AGLs
|
|||||||
Congratulations! You've successfully launch the demo system. It should
|
Congratulations! You've successfully launch the demo system. It should
|
||||||
look similar to :numref:`agl-demo-setup` at the beginning of this
|
look similar to :numref:`agl-demo-setup` at the beginning of this
|
||||||
document. AGL as IVI and RSE work independently on top
|
document. AGL as IVI and RSE work independently on top
|
||||||
of ACRN and you can interact with them via the touch screen.
|
of ACRN and you can interact with them via the mouse.
|
||||||
|
Loading…
Reference in New Issue
Block a user