acrn-hypervisor/misc/sample_application/image_builder/setup_rt_vm.sh
Liu Long e6de2e5798 SampleApplication: Update the image create scripts
1. Delete the generated images if the create scripts failed.
2. Enable root user login on GUI.
3. Enable systemd service in case there are many error logs.

Tracked-On: #7820
Signed-off-by: Liu Long <long.liu@linux.intel.com>
2022-08-17 18:30:14 +08:00

80 lines
2.4 KiB
Bash

#!/bin/bash
# Copyright (C) 2020-2022 Intel Corporation.
# SPDX-License-Identifier: BSD-3-Clause
logger_prefix="(rt-vm-rootfs) "
source logger.sh
function umount_directory() {
target_dir=$1
umount -q ${target_dir} || true
}
function disable_os_prober() {
if [[ -f /etc/grub.d/30_os-prober ]]; then
mv /etc/grub.d/30_os-prober /etc/grub.d/.30_os-prober
fi
}
function update_package_info() {
apt update -y
}
function install_tools() {
apt install rt-tests -y
}
function update_kernel_cmdline() {
cat <<EOF >> /etc/default/grub
GRUB_CMDLINE_LINUX="rootwait rootfstype=ext4 console=ttyS0,115200 console=tty0 rw nohpet console=hvc0 no_timer_check ignore_loglevel log_buf_len=16M consoleblank=0 tsc=reliable clocksource=tsc tsc=reliable x2apic_phys processor.max_cstate=0 intel_idle.max_cstate=0 intel_pstate=disable mce=ignore_ce audit=0 isolcpus=nohz,domain,1 nohz_full=1 rcu_nocbs=1 nosoftlockup idle=poll irqaffinity=0 no_ipi_broadcast=1"
EOF
}
function install_rt_kernel() {
search_dir=$1
for file in $(ls -r ${search_dir}/*acrn-kernel-*.deb)
do
sudo apt install ${file} -y
done
}
function change_root_password() {
passwd root
}
function disable_services() {
services=(systemd-timesyncd.service \
systemd-journal-flush.service \
apt-daily.service \
apt-daily-upgrade.service \
snapd.autoimport.service \
snapd.seeded.service)
for service in ${services[*]}
do
systemctl disable ${service}
systemctl mask ${service}
done
for timer in $(systemctl list-unit-files | grep -o "^.*\.timer"); do
systemctl disable ${timer}
done
apt-get remove unattended-upgrades -y
}
# Change current working directory to the root to avoid "target is busy" errors
# on unmounting.
cd /
try_step "Unmounting /root" umount_directory /root
try_step "Unmounting /home" umount_directory /home
try_step "Disabling GRUB OS prober" disable_os_prober
try_step "Updating package information" update_package_info
try_step "Installing tools" install_tools
try_step "Updating kernel command line" update_kernel_cmdline
try_step "Installing RT kernel" install_rt_kernel /root
try_step "Changing the password of the root user" change_root_password
try_step "Disabling services that impact real-time performance" disable_services