From e98380107bb353931c6bd55969b614b9d6592de8 Mon Sep 17 00:00:00 2001 From: andromeda Date: Sat, 28 Feb 2026 23:25:10 +0100 Subject: boots in qemu --- package.nix | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 package.nix (limited to 'package.nix') diff --git a/package.nix b/package.nix new file mode 100644 index 0000000..150b46b --- /dev/null +++ b/package.nix @@ -0,0 +1,45 @@ +{ + stdenv, + nasm, + qemu, + ... +}: let + bootImg = "boot"; +in + stdenv.mkDerivation { + pname = "bootler"; + version = "0.1.0"; + src = ./.; + buildPhase = '' + ${nasm}/bin/nasm boot.asm -o ${bootImg} + ''; + installPhase = '' + mkdir -p $out/bin + cp ${bootImg} $out/bin + + # create emulation binary + cat<$out/bin/bootler + #!/usr/bin/env bash + + # create temp dir + mkdir -p ./.bootler + cp $(echo $out)/bin/${bootImg} ./.bootler/${bootImg} + chmod a+w ./.bootler/${bootImg} + + echo "press any key to continue. Qemu will clear the screen..." + read -s -n 1 + + # run image + ${qemu}/bin/qemu-system-x86_64 \ + -nographic \ + -hda ./.bootler/${bootImg} + + # clean up + rm ./.bootler -r + + EOF + + chmod +x $out/bin/${bootImg} + chmod +x $out/bin/bootler + ''; + } -- cgit v1.3.1