From 48966025df3b6ee79594888dc874cfb5bea2186a Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Thu, 15 Apr 2021 09:24:15 +0200 Subject: [PATCH] Add /nix/store bck to store image --- nixos-modules/genode-core.nix | 46 +++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/nixos-modules/genode-core.nix b/nixos-modules/genode-core.nix index 51995c4..eab33c0 100644 --- a/nixos-modules/genode-core.nix +++ b/nixos-modules/genode-core.nix @@ -75,18 +75,21 @@ let config.genode.core.romModules))) }] } ]''); - extraRoutes = lib.concatStringsSep ", " (lib.lists.flatten - (lib.mapAttrsToList (name: value: - map (suffix: '' - { service = - { name = "ROM" - , label = - Sigil.Init.LabelSelector.Type.Partial - { prefix = Some "nixos -> ${name}", suffix = Some "${suffix}" } + extraRoutes = lib.concatStringsSep ", " (lib.lists.flatten (let + toRoutes = prefix: + lib.mapAttrsToList (name: value: + map (suffix: '' + { service = + { name = "ROM" + , label = + Sigil.Init.LabelSelector.Type.Partial + { prefix = Some "${prefix}${name}", suffix = Some "${suffix}" } + } + , route = Sigil.Init.Route.parent (Some "${suffix}") } - , route = Sigil.Init.Route.parent (Some "${suffix}") - } - '') value.coreROMs) config.genode.init.children)); + '') value.coreROMs); + in (toRoutes "" config.genode.core.children) + ++ (toRoutes "nixos -> " config.genode.init.children))); extraCoreChildren = "[ ${ lib.concatStringsSep ", " (lib.mapAttrsToList @@ -293,24 +296,25 @@ in { image = pkgs.callPackage "${modulesPath}/../lib/make-iso9660-image.nix" { contents = erisContents; compressImage = true; + storeContents = lib.attrsets.mapAttrsToList (name: child: { + object = child.configFile; + symlink = "/config/${name}"; + }) config.genode.init.children; volumeID = "sigil-store"; } + "/iso/cd.iso.zst"; guid = lib.uuidFrom (toString image); }; - virtualisation.diskImage = - import ./lib/make-bootable-image.nix { inherit config lib pkgs; }; + virtualisation.diskImage = if config.genode.core.storeBackend == "fs" then + import ./lib/make-bootable-image.nix { inherit config lib pkgs; } + else + null; virtualisation.useBootLoader = config.genode.core.storeBackend == "fs"; - virtualisation.qemu.options = let - blockCommon = - [ "-bios ${pkgs.buildPackages.buildPackages.OVMF.fd}/FV/OVMF.fd" ]; - in { - fs = blockCommon; - net = [ ]; - memory = [ ]; - }.${config.genode.core.storeBackend}; + virtualisation.qemu.options = { + fs = [ "-bios ${pkgs.buildPackages.buildPackages.OVMF.fd}/FV/OVMF.fd" ]; + }.${config.genode.core.storeBackend} or [ ]; };