From 56d07af588fc1a15650179897db3c54c52903216 Mon Sep 17 00:00:00 2001 From: Brian McGillion Date: Thu, 11 Apr 2024 16:04:32 +0400 Subject: [PATCH] Bump microvm.nix to enable latest features Signed-off-by: Brian McGillion --- flake.lock | 25 +++++++++++++--- .../microvm/virtualization/microvm/appvm.nix | 22 ++++++++++---- .../microvm/virtualization/microvm/guivm.nix | 18 ++++++++--- .../microvm/virtualization/microvm/netvm.nix | 12 ++++++-- targets/lenovo-x1/guivmExtraModules.nix | 30 ++++++++++--------- 5 files changed, 77 insertions(+), 30 deletions(-) diff --git a/flake.lock b/flake.lock index 1253b0a27..ac236faf8 100644 --- a/flake.lock +++ b/flake.lock @@ -247,14 +247,15 @@ ], "nixpkgs": [ "nixpkgs" - ] + ], + "spectrum": "spectrum" }, "locked": { - "lastModified": 1701202812, - "narHash": "sha256-ym/Rd4tR4i2d1WdPNKaeeIz/UoyfnCe5UBZbUl1M0PM=", + "lastModified": 1712654305, + "narHash": "sha256-CNdpLnGOUZfIhBanAFVF7t1xstaQGL4w6sQPrVeLlus=", "owner": "astro", "repo": "microvm.nix", - "rev": "89bb7a5230a4820736a43e058c8d2a2c560d672b", + "rev": "ee0068ca87bdabbde3cc39b7af807c0302d0304c", "type": "github" }, "original": { @@ -431,6 +432,22 @@ "type": "github" } }, + "spectrum": { + "flake": false, + "locked": { + "lastModified": 1708358594, + "narHash": "sha256-e71YOotu2FYA67HoC/voJDTFsiPpZNRwmiQb4f94OxQ=", + "ref": "refs/heads/main", + "rev": "6d0e73864d28794cdbd26ab7b37259ab0e1e044c", + "revCount": 614, + "type": "git", + "url": "https://spectrum-os.org/git/spectrum" + }, + "original": { + "type": "git", + "url": "https://spectrum-os.org/git/spectrum" + } + }, "systems": { "locked": { "lastModified": 1681028828, diff --git a/modules/microvm/virtualization/microvm/appvm.nix b/modules/microvm/virtualization/microvm/appvm.nix index 2481666f6..6aa265d2d 100644 --- a/modules/microvm/virtualization/microvm/appvm.nix +++ b/modules/microvm/virtualization/microvm/appvm.nix @@ -103,12 +103,22 @@ ]; writableStoreOverlay = lib.mkIf config.ghaf.development.debug.tools.enable "/nix/.rw-store"; - qemu.extraArgs = [ - "-M" - "q35,accel=kvm:tcg,mem-merge=on,sata=off" - "-device" - "vhost-vsock-pci,guest-cid=${toString cid}" - ]; + qemu = { + extraArgs = [ + "-M" + "accel=kvm:tcg,mem-merge=on,sata=off" + "-device" + "vhost-vsock-pci,guest-cid=${toString cid}" + ]; + + machine = + { + # Use the same machine type as the host + x86_64-linux = "q35"; + aarch64-linux = "virt"; + } + .${configHost.nixpkgs.hostPlatform.system}; + }; }; fileSystems."/run/waypipe-ssh-public-key".options = ["ro"]; diff --git a/modules/microvm/virtualization/microvm/guivm.nix b/modules/microvm/virtualization/microvm/guivm.nix index b8200e874..8dee3cdde 100644 --- a/modules/microvm/virtualization/microvm/guivm.nix +++ b/modules/microvm/virtualization/microvm/guivm.nix @@ -94,10 +94,20 @@ ]; writableStoreOverlay = lib.mkIf config.ghaf.development.debug.tools.enable "/nix/.rw-store"; - qemu.extraArgs = [ - "-device" - "vhost-vsock-pci,guest-cid=${toString cfg.vsockCID}" - ]; + qemu = { + extraArgs = [ + "-device" + "vhost-vsock-pci,guest-cid=${toString cfg.vsockCID}" + ]; + + machine = + { + # Use the same machine type as the host + x86_64-linux = "q35"; + aarch64-linux = "virt"; + } + .${configHost.nixpkgs.hostPlatform.system}; + }; }; imports = [ diff --git a/modules/microvm/virtualization/microvm/netvm.nix b/modules/microvm/virtualization/microvm/netvm.nix index bb47d575c..f3e513b0d 100644 --- a/modules/microvm/virtualization/microvm/netvm.nix +++ b/modules/microvm/virtualization/microvm/netvm.nix @@ -35,8 +35,6 @@ nixpkgs.buildPlatform.system = configHost.nixpkgs.buildPlatform.system; nixpkgs.hostPlatform.system = configHost.nixpkgs.hostPlatform.system; - microvm.hypervisor = "qemu"; - networking = { firewall.allowedTCPPorts = [53]; firewall.allowedUDPPorts = [53]; @@ -88,6 +86,7 @@ microvm = { optimize.enable = true; + hypervisor = "qemu"; shares = [ { tag = "ro-store"; @@ -96,6 +95,15 @@ } ]; writableStoreOverlay = lib.mkIf config.ghaf.development.debug.tools.enable "/nix/.rw-store"; + qemu = { + machine = + { + # Use the same machine type as the host + x86_64-linux = "q35"; + aarch64-linux = "virt"; + } + .${configHost.nixpkgs.hostPlatform.system}; + }; }; imports = [../../../common]; diff --git a/targets/lenovo-x1/guivmExtraModules.nix b/targets/lenovo-x1/guivmExtraModules.nix index d5afa52b4..f5f18fecc 100644 --- a/targets/lenovo-x1/guivmExtraModules.nix +++ b/targets/lenovo-x1/guivmExtraModules.nix @@ -136,20 +136,22 @@ # Early KMS needed for GNOME to work inside GuiVM boot.initrd.kernelModules = ["i915"]; - microvm.qemu.extraArgs = [ - # Lenovo X1 Lid button - "-device" - "button" - # Lenovo X1 battery - "-device" - "battery" - # Lenovo X1 AC adapter - "-device" - "acad" - # Connect sound device to hosts pulseaudio socket - "-audiodev" - "pa,id=pa1,server=unix:/run/pulse/native" - ]; + microvm.qemu = { + extraArgs = [ + # Lenovo X1 Lid button + "-device" + "button" + # Lenovo X1 battery + "-device" + "battery" + # Lenovo X1 AC adapter + "-device" + "acad" + # Connect sound device to hosts pulseaudio socket + "-audiodev" + "pa,id=pa1,server=unix:/run/pulse/native" + ]; + }; }; in [ ./sshkeys.nix