75 lines
2.0 KiB
Bash
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
|