acrn-hypervisor/misc/sample_application/image_builder/setup_hmi_vm.sh

75 lines
2.0 KiB
Bash

#!/bin/bash
# Copyright (C) 2020-2022 Intel Corporation.
# SPDX-License-Identifier: BSD-3-Clause
logger_prefix="(hmi-vm-rootfs) "
source /root/.bashrc
source logger.sh
function umount_directory() {
target_dir=$1
umount -q ${target_dir} || true
}
function update_package_info() {
apt update -y
# Remove needrestart to disable interactive prompts in apt install
apt remove -y needrestart
apt install -y python3 python3-pip net-tools python3-matplotlib openssh-server \
isc-dhcp-server linux-generic-hwe-$(lsb_release -sr)
pip3 install flask 'numpy>=1.18.5' pandas posix_ipc
}
function install_desktop() {
apt install ubuntu-gnome-desktop -y
}
function cleanup_packages() {
apt autoremove -y
}
function change_root_password() {
passwd root
}
function enable_root_login() {
sed -i -e '3 s/^/#/' /etc/pam.d/gdm-password
sed -i 's/\[daemon\]/& \n AllowRoot=true /' /etc/gdm3/custom.conf
}
function add_normal_user() {
useradd -s /bin/bash -d /home/acrn/ -m -G sudo acrn && \
passwd acrn
}
function enable_services() {
services=(ssh.service isc-dhcp-server)
for service in ${services[*]}
do
systemctl enable ${service}
systemctl unmask ${service}
done
}
function config_ssh() {
sudo sed -ie 's/PasswordAuthentication no/PasswordAuthentication yes/g' \
/etc/ssh/sshd_config
sudo ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
sudo ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
}
# 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 "Updating package information" update_package_info
try_step "Installing GNOME desktop" install_desktop
try_step "Cleaning up packages" cleanup_packages
try_step "Changing the password of the root user" change_root_password
try_step "Enable root user login" enable_root_login
try_step "Adding the normal user acrn" add_normal_user
try_step "Configure the ssh service" config_ssh