grub: Add file with cloud helping stuff

This file will detect whether to do certain actions depending on the
environment it is running on.

Currently this detects whether IPFire is booting up on AWS EC2 and
selects the serial console boot entry.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
This commit is contained in:
Michael Tremer
2021-07-27 10:07:08 +00:00
committed by Arne Fitzenreiter
parent ff1953f7ad
commit 1e848ad3d4
5 changed files with 33 additions and 0 deletions

26
config/grub2/00_cloud Normal file
View File

@@ -0,0 +1,26 @@
#!/bin/sh
# This is an IPFire helper script for GRUB to enable the serial console
# on AWS instances at the time of the first boost
set -e
# Do nothing if first boot isn't enabled
if [ "${GRUB_FIRST_BOOT}" != "true" ]; then
exit 0
fi
. "${pkgdatadir}/grub-mkconfig_lib"
if [ -z "${boot_device_id}" ]; then
boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
fi
cat <<EOF
# Read the system manufacturer string from the BIOS
smbios --type 1 --get-string 4 --set system_manufacturer
# Are we on Amazon EC2?
if [ "\$system_manufacturer" = "Amazon EC2" ]; then
next_entry=gnulinux-serial-${boot_device_id}
fi
EOF

View File

@@ -4,6 +4,7 @@ boot/grub/splash.png
#etc/bash_completion.d/grub
etc/default/grub
#etc/grub.d
etc/grub.d/00_cloud
etc/grub.d/00_header
etc/grub.d/10_linux
etc/grub.d/20_linux_xen

View File

@@ -5,6 +5,7 @@ boot/grub/splash.png
#etc/bash_completion.d/grub
etc/default/grub
#etc/grub.d
etc/grub.d/00_cloud
etc/grub.d/00_header
etc/grub.d/10_linux
etc/grub.d/20_linux_xen

View File

@@ -5,6 +5,7 @@ boot/grub/splash.png
#etc/bash_completion.d/grub
etc/default/grub
#etc/grub.d
etc/grub.d/00_cloud
etc/grub.d/00_header
etc/grub.d/10_linux
etc/grub.d/20_linux_xen

View File

@@ -125,6 +125,10 @@ ifeq "$(BUILD_PC)" "1"
touch /boot/grub/grub.cfg
endif
# Install our own helpers
install -v -m 644 $(DIR_SRC)/config/grub2/00_cloud \
/etc/grub.cfg
# Install background image
-mkdir -pv /boot/grub
install -m 644 $(DIR_SRC)/config/grub2/splash.png /boot/grub/splash.png