summary refs log tree commit diff
path: root/release/combined/run-vm.nix
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2022-10-09 11:40:35 +0000
committerAlyssa Ross <hi@alyssa.is>2022-11-13 23:58:53 +0000
commitd30f0248583e523eddb716aa931489b11a44e3f6 (patch)
tree39417941eb3d7c5366a0768c4692c83547a2af2a /release/combined/run-vm.nix
parent7266451ab6136d75142e6e45e2bc8c6843bbc994 (diff)
downloadspectrum-d30f0248583e523eddb716aa931489b11a44e3f6.tar
spectrum-d30f0248583e523eddb716aa931489b11a44e3f6.tar.gz
spectrum-d30f0248583e523eddb716aa931489b11a44e3f6.tar.bz2
spectrum-d30f0248583e523eddb716aa931489b11a44e3f6.tar.lz
spectrum-d30f0248583e523eddb716aa931489b11a44e3f6.tar.xz
spectrum-d30f0248583e523eddb716aa931489b11a44e3f6.tar.zst
spectrum-d30f0248583e523eddb716aa931489b11a44e3f6.zip
release: rename from "img"
I think this is more descriptive, and "img" is a name better used for
VM images.

Signed-off-by: Alyssa Ross <hi@alyssa.is>
Message-Id: <20221009114036.463071-6-hi@alyssa.is>
Diffstat (limited to 'release/combined/run-vm.nix')
-rw-r--r--release/combined/run-vm.nix25
1 files changed, 25 insertions, 0 deletions
diff --git a/release/combined/run-vm.nix b/release/combined/run-vm.nix
new file mode 100644
index 0000000..047bc3f
--- /dev/null
+++ b/release/combined/run-vm.nix
@@ -0,0 +1,25 @@
+# SPDX-License-Identifier: MIT
+# SPDX-FileCopyrightText: 2021 Alyssa Ross <hi@alyssa.is>
+
+{ config ? import ../../nix/eval-config.nix {} }: with config.pkgs;
+
+let
+  image = import ./. { inherit config; };
+in
+
+writeShellScript "run-spectrum-installer-vm.sh" ''
+  export PATH=${lib.makeBinPath [ coreutils qemu_kvm ]}
+  img="$(mktemp spectrum-installer-target.XXXXXXXXXX.img)"
+  truncate -s 10G "$img"
+  exec 3<>"$img"
+  rm -f "$img"
+  exec qemu-kvm -cpu host -m 4G -machine q35,kernel-irqchip=split -snapshot \
+    -display gtk,gl=on \
+    -device intel-iommu,intremap=on \
+    -device virtio-vga-gl \
+    -device qemu-xhci \
+    -device usb-storage,drive=drive1,removable=true \
+    -drive file=${qemu_kvm}/share/qemu/edk2-${stdenv.hostPlatform.qemuArch}-code.fd,format=raw,if=pflash,readonly=true \
+    -drive file=${image},id=drive1,format=raw,if=none,readonly=true \
+    -drive file=/proc/self/fd/3,format=raw,if=virtio
+''