From 7d4cdcd1fde827a3caa1ce60cf8c479121d19f18 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Mon, 20 Nov 2023 13:55:01 +0200 Subject: [PATCH 1/2] BuildSystem: Add missing bootloader install script --- script/install-bootloader.sh | 42 ++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100755 script/install-bootloader.sh diff --git a/script/install-bootloader.sh b/script/install-bootloader.sh new file mode 100755 index 000000000..41d890f3a --- /dev/null +++ b/script/install-bootloader.sh @@ -0,0 +1,42 @@ +#!/bin/sh + +set -e + +if [[ -z $BANAN_DISK_IMAGE_PATH ]]; then + echo "You must set the BANAN_DISK_IMAGE_PATH environment variable" >&2 + exit 1 +fi + +if [[ -z $BANAN_BUILD_DIR ]]; then + echo "You must set the BANAN_BUILD_DIR environment variable" >&2 + exit 1 +fi + +if [[ -z $BANAN_ROOT_DIR ]]; then + echo "You must set the BANAN_ROOT_DIR environment variable" >&2 + exit 1 +fi + +ROOT_PARTITION_INDEX=2 +ROOT_PARTITION_INFO=$(fdisk -x $BANAN_DISK_IMAGE_PATH | grep "^$BANAN_DISK_IMAGE_PATH" | head -$ROOT_PARTITION_INDEX | tail -1) +ROOT_PARTITION_GUID=$(echo $ROOT_PARTITION_INFO | cut -d' ' -f6) + +INSTALLER_BUILD_DIR=$BANAN_ROOT_DIR/bootloader/installer/build +BOOTLOADER_ELF=$BANAN_BUILD_DIR/bootloader/bios/bootloader + +if ! [ -f $BOOTLOADER_ELF ]; then + echo "You must build the bootloader first" >&2 + exit 1 +fi + +if ! [ -d $INSTALLER_BUILD_DIR ]; then + mkdir -p $INSTALLER_BUILD_DIR + cd $INSTALLER_BUILD_DIR + cmake .. +fi + +cd $INSTALLER_BUILD_DIR +make + +echo installing bootloader +$INSTALLER_BUILD_DIR/x86_64-banan_os-bootloader-installer $BOOTLOADER_ELF $BANAN_DISK_IMAGE_PATH $ROOT_PARTITION_GUID From 85a5e81224f5832eca9ab0cbb77897abc25c6095 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Tue, 21 Nov 2023 11:53:50 +0200 Subject: [PATCH 2/2] BuildSystem: Check value of BANAN_UEFI_BOOT with `if ((...)); then` --- script/image-create.sh | 7 +++---- script/qemu.sh | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/script/image-create.sh b/script/image-create.sh index e3b002eae..9daf52a5a 100755 --- a/script/image-create.sh +++ b/script/image-create.sh @@ -41,7 +41,7 @@ MOUNT_DIR="${MOUNT_DIR:-$BANAN_BUILD_DIR/bananmnt}" truncate -s 0 "$BANAN_DISK_IMAGE_PATH" truncate -s $DISK_SIZE "$BANAN_DISK_IMAGE_PATH" -if [ "$BANAN_UEFI_BOOT" == "1" ]; then +if (($BANAN_UEFI_BOOT)); then sed -e 's/\s*\([-\+[:alnum:]]*\).*/\1/' << EOF | fdisk "$BANAN_DISK_IMAGE_PATH" > /dev/null g # gpt n # new partition @@ -92,7 +92,7 @@ sudo mkfs.ext2 -b 1024 -q $PARTITION2 sudo mkdir -p $MOUNT_DIR || { echo "Failed to create banan mount dir."; exit 1; } if [[ "$BANAN_BOOTLOADER" == "GRUB" ]]; then - if [[ "$BANAN_UEFI_BOOT" == "1" ]]; then + if (($BANAN_UEFI_BOOT)); then sudo mkfs.fat $PARTITION1 > /dev/null sudo mount $PARTITION1 "$MOUNT_DIR" sudo mkdir -p "$MOUNT_DIR/EFI/BOOT" @@ -119,7 +119,7 @@ sudo rm -rf $MOUNT_DIR || { echo "Failed to remove banan mount dir."; exit 1; } if [[ "$BANAN_BOOTLOADER" == "GRUB" ]]; then echo > /dev/null elif [[ "$BANAN_BOOTLOADER" == "BANAN" ]]; then - if [[ "$BANAN_UEFI_BOOT" == "1" ]]; then + if (($BANAN_UEFI_BOOT)); then echo "banan bootloader does not support UEFI" >&2 exit 1 fi @@ -128,4 +128,3 @@ else echo "unrecognized bootloader $BANAN_BOOTLOADER" >&2 exit 1 fi - diff --git a/script/qemu.sh b/script/qemu.sh index c472abf85..8683dbcd5 100755 --- a/script/qemu.sh +++ b/script/qemu.sh @@ -9,7 +9,7 @@ if [[ -z $OVMF_PATH ]]; then OVMF_PATH="/usr/share/ovmf/x64/OVMF.fd" fi -if [[ "$BANAN_UEFI_BOOT" == "1" ]]; then +if (($BANAN_UEFI_BOOT)); then BIOS_ARGS="-bios $OVMF_PATH -net none" fi