diff options
author | Maximilian Bosch <maximilian@mbosch.me> | 2019-10-31 23:18:02 +0100 |
---|---|---|
committer | Maximilian Bosch <maximilian@mbosch.me> | 2019-10-31 23:18:02 +0100 |
commit | 86fd2c1e6a602a1086d164b1ab2676c91b3684c6 (patch) | |
tree | 1956a9612999ba0fa473b5439e5748bf54040d21 | |
parent | b48d0f0e39e72db103234ccc0bc5726391bed939 (diff) |
Implement simple option to override grub-i386 dirs
For people with some weird hipster-OS which doesn't have a `/usr/lib`
the current script breaks. Allowing to override the path with an
environment variable seems to be the easiest way to solve this issue for
now.
-rwxr-xr-x | kernel/build.sh | 10 | ||||
-rw-r--r-- | kernel/shell.nix | 3 |
2 files changed, 9 insertions, 4 deletions
diff --git a/kernel/build.sh b/kernel/build.sh index bf8c971..9d48229 100755 --- a/kernel/build.sh +++ b/kernel/build.sh @@ -9,7 +9,8 @@ GRUB_CFG_PATH="src/grub.cfg" ARCH="x86_64" TARGET="$ARCH-uff" RUST_BIN="$TARGET_PATH/$TARGET/debug/libkernel.a" -QUEMU="qemu-system-x86_64 -cdrom $TARGET_PATH/uff.iso" +QEMU="qemu-system-x86_64 -cdrom $TARGET_PATH/uff.iso" +GRUB_i386="${GRUB_i386:-/usr/lib/grub/i386-pc}" cleanup_target() { rm -f $TARGET_PATH/uff.iso &> /dev/null @@ -48,7 +49,8 @@ build_kernel_iso() { mkdir $TMP_PATH/isofiles/boot/grub &> /dev/null cp $TARGET_PATH/kernel.bin $TMP_PATH/isofiles/boot &> /dev/null cp $GRUB_CFG_PATH $TMP_PATH/isofiles/boot/grub/grub.cfg &> /dev/null - grub-mkrescue -d /usr/lib/grub/i386-pc -o $TARGET_PATH/uff.iso $TMP_PATH/isofiles + [ -d "$GRUB_i386" ] || { echo "Grub img $GRUB_i386 does not exist!"; exit 1; } + grub-mkrescue -d "$GRUB_i386" -o $TARGET_PATH/uff.iso $TMP_PATH/isofiles cleanup_temp } @@ -57,11 +59,11 @@ build_init() { } build_launch() { - $QUEMU + $QEMU } build_launch_serial() { - $QUEMU -device isa-debug-exit,iobase=0xf4,iosize=0x04 -serial stdio #-display none + $QEMU -device isa-debug-exit,iobase=0xf4,iosize=0x04 -serial stdio #-display none } build_run() { diff --git a/kernel/shell.nix b/kernel/shell.nix index ba2647a..4fc72af 100644 --- a/kernel/shell.nix +++ b/kernel/shell.nix @@ -2,4 +2,7 @@ with import <nixpkgs> { }; mkShell { name = "uff-os"; buildInputs = [ rustup nasm grub2 cargo-xbuild gcc xorriso ]; + shellHook = '' + export GRUB_i386="${grub2}/lib/grub/i386-pc" + ''; } |