[2/4] grub: Add file with cloud helping stuff
Commit Message
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>
---
config/grub2/00_cloud | 26 ++++++++++++++++++++++++++
config/rootfiles/common/aarch64/grub | 1 +
config/rootfiles/common/i586/grub | 1 +
config/rootfiles/common/x86_64/grub | 1 +
lfs/grub | 4 ++++
5 files changed, 33 insertions(+)
create mode 100644 config/grub2/00_cloud
new file mode 100644
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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