aboutsummaryrefslogtreecommitdiff
path: root/tools/gen_grub_cdrom.sh
diff options
context:
space:
mode:
authorLoic Guegan <manzerbredes@mailbox.org>2021-04-08 13:07:17 +0200
committerLoic Guegan <manzerbredes@mailbox.org>2021-04-08 13:07:17 +0200
commit958e2dae042ca9e28f23e509d541730f30fa8502 (patch)
tree8911572335763866ed39cc7ec7855131929a0994 /tools/gen_grub_cdrom.sh
parentdb553d05824ae463752c8b528feac963e41d9f1c (diff)
Switch to multiboot2 and improve interrupt management
Diffstat (limited to 'tools/gen_grub_cdrom.sh')
-rwxr-xr-xtools/gen_grub_cdrom.sh31
1 files changed, 31 insertions, 0 deletions
diff --git a/tools/gen_grub_cdrom.sh b/tools/gen_grub_cdrom.sh
new file mode 100755
index 0000000..1b65bf8
--- /dev/null
+++ b/tools/gen_grub_cdrom.sh
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+
+# Ensure to abort on error
+set -e
+
+wai=$(dirname $(readlink -f "$0")) # Current script directory
+outdir="${wai}/../"
+cdrom="${outdir}/cdrom.img"
+isodir="$(mktemp -d)" # Mount point (where the floppy will be mounted temporally
+kernel="$outdir/src/bringelle"
+
+[ ! -e "$kernel" ] && { echo "Bringelle not found!"; exit 1; }
+
+check_for () {
+ command -v "$1" &>/dev/null || { echo "Command $1 not found!"; exit 1; }
+}
+
+check_for grub-mkconfig
+
+mkdir -p $isodir/boot/grub
+cat <<EOT >> $isodir/boot/grub/grub.cfg
+set timeout=0
+menuentry "kernel" {
+ multiboot2 /boot/bringelle
+ boot
+}
+EOT
+cp $kernel "$isodir/boot/"
+grub-mkrescue -o "$cdrom" $isodir
+
+rm -rf "$isodir"