1#!/bin/bash 2#* Copyright (c) 2020-2022 Intel Corporation SPDX-License-Identifier: BSD-3-Clause 3# postinst script for acrn-hypervisor 4# please NOTE !!! scenario_info/board_info changed by python scripts, so do not add content there!!! 5# please NOTE !!! scenario_info/board_info please add in release.json if needed !!! 6set -e 7 8#Build info Start 9 10SCENARIO=(shared) 11 12BOARD=(nuc11tnbi5) 13 14#Build info End 15 16 17#ACRN parameters Start 18 19GENERATED_PARAMS=(cpu_perf_policy=Performance) 20 21#ACRN parameters End 22 23ACRNBIN="/boot/acrn.${SCENARIO}.${BOARD}.bin" 24type=$(findmnt / |awk '$1 == "/" {print $2}') 25 26pattern='^/dev/.* UUID="([^"]+)".* PARTUUID="([^"]+)"' 27while IFS= read -r line; do 28 if [[ $line =~ $pattern ]]; then 29 uuid="${BASH_REMATCH[1]}" 30 partuuid="${BASH_REMATCH[2]}" 31 fi 32done < <(blkid |grep ${type}) 33 34filename="/etc/grub.d/40_custom" 35 36if ls /boot/vmlinuz*acrn-service-vm* 1> /dev/null 2>&1;then 37 service_vm_kernel=$(ls -tr /boot/vmlinuz-*acrn-service-vm* | tail -1) 38else 39 service_vm_kernel=$(ls /boot/vmlinuz-* | tail -1) 40fi 41kernelimg="module2 $service_vm_kernel Linux_bzImage" 42 43if [ $SCENARIO == hybrid ];then 44 echo -e "\E[32m Please put zephyr64.elf in the /boot/ directory" 45 tput sgr0 46 cat>"${filename}"<<EOF 47#!/bin/sh 48exec tail -n +3 \$0 49menuentry 'ACRN multiboot2 ' --id ACRN_deb_multiboot2 { 50 load_video 51 insmod gzio 52 insmod part_gpt 53 insmod ext2 54 search --no-floppy --fs-uuid --set $uuid 55multiboot2 $ACRNBIN root=PARTUUID=$partuuid $GENERATED_PARAMS 56$kernelimg 57module2 /boot/zephyr64.elf Zephyr_ElfImage 58module2 /boot/ACPI_VM0.bin ACPI_VM0 59} 60 61EOF 62elif [ $SCENARIO == hybrid_rt ];then 63 echo -e "\E[32m Please put bzImage_RT in the /boot/ directory" 64 tput sgr0 65 cat>"${filename}"<<EOF 66#!/bin/sh 67exec tail -n +3 \$0 68menuentry 'ACRN multiboot2 ' --id ACRN_deb_multiboot2 { 69 load_video 70 insmod gzio 71 insmod part_gpt 72 insmod ext2 73 search --no-floppy --fs-uuid --set $uuid 74multiboot2 $ACRNBIN root=PARTUUID=$partuuid $GENERATED_PARAMS 75$kernelimg 76module2 /boot/bzImage_RT RT_bzImage 77module2 /boot/ACPI_VM0.bin ACPI_VM0 78} 79 80EOF 81elif [ $SCENARIO == partitioned ];then 82 cat>"${filename}"<<EOF 83#!/bin/sh 84exec tail -n +3 \$0 85menuentry 'ACRN multiboot2 ' --id ACRN_deb_multiboot2 { 86 load_video 87 insmod gzio 88 insmod part_gpt 89 insmod ext2 90 search --no-floppy --fs-uuid --set $uuid 91 echo 'loading ACRN...' 92multiboot2 $ACRNBIN root=PARTUUID=$partuuid $GENERATED_PARAMS 93$kernelimg 94module2 /boot/ACPI_VM0.bin ACPI_VM0 95module2 /boot/ACPI_VM1.bin ACPI_VM1 96} 97 98EOF 99else 100 cat>"${filename}"<<EOF 101#!/bin/sh 102exec tail -n +3 \$0 103menuentry 'ACRN multiboot2 ' --id ACRN_deb_multiboot2 { 104 load_video 105 insmod gzio 106 insmod part_gpt 107 insmod ext2 108 search --no-floppy --fs-uuid --set $uuid 109multiboot2 $ACRNBIN root=PARTUUID=$partuuid $GENERATED_PARAMS 110$kernelimg 111 112} 113 114EOF 115fi 116 117filename='/etc/default/grub' 118sed -i '/GRUB_DEFAULT=/d' ${filename} 119sed -i '/GRUB_TIMEOUT=/d' ${filename} 120sed -i '/GRUB_HIDDEN_TIMEOUT=/d' ${filename} 121sed -i '/GRUB_CMDLINE_LINUX_DEFAULT=/d' ${filename} 122sed -i '/GRUB_CMDLINE_LINUX=/d' ${filename} 123sed -i '/GRUB_TERMINAL=/d' ${filename} 124sed -i '/GRUB_SERIAL_COMMAND=/d' ${filename} 125sed -i '$a GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"' ${filename} 126sed -i '$a GRUB_TERMINAL="console serial"' ${filename} 127sed -i '$a GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"' ${filename} 128sed -i '$a GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"' ${filename} 129sed -i '$a GRUB_DEFAULT=ACRN_deb_multiboot2' ${filename} 130sed -i '$a GRUB_TIMEOUT=20' ${filename} 131 132sync 133update-grub 134 135exit 0 136