lol

nixos/zram: use nixos/zram-generator as backing implementation

Nick Cao 0814089e a7e095d9

+18 -29
+18 -29
nixos/modules/config/zram.nix
··· 105 105 } 106 106 ]; 107 107 108 - 109 - system.requiredKernelConfig = with config.lib.kernelConfig; [ 110 - (isModule "ZRAM") 111 - ]; 108 + services.zram-generator.enable = true; 112 109 113 - # Disabling this for the moment, as it would create and mkswap devices twice, 114 - # once in stage 2 boot, and again when the zram-reloader service starts. 115 - # boot.kernelModules = [ "zram" ]; 116 - 117 - systemd.packages = [ pkgs.zram-generator ]; 118 - systemd.services."systemd-zram-setup@".path = [ pkgs.util-linux ]; # for mkswap 119 - 120 - environment.etc."systemd/zram-generator.conf".source = 121 - (pkgs.formats.ini { }).generate "zram-generator.conf" (lib.listToAttrs 122 - (builtins.map 123 - (dev: { 124 - name = dev; 125 - value = 126 - let 127 - size = "${toString cfg.memoryPercent} / 100 * ram"; 128 - in 129 - { 130 - zram-size = if cfg.memoryMax != null then "min(${size}, ${toString cfg.memoryMax} / 1024 / 1024)" else size; 131 - compression-algorithm = cfg.algorithm; 132 - swap-priority = cfg.priority; 133 - } // lib.optionalAttrs (cfg.writebackDevice != null) { 134 - writeback-device = cfg.writebackDevice; 135 - }; 136 - }) 137 - devices)); 110 + services.zram-generator.settings = lib.listToAttrs 111 + (builtins.map 112 + (dev: { 113 + name = dev; 114 + value = 115 + let 116 + size = "${toString cfg.memoryPercent} / 100 * ram"; 117 + in 118 + { 119 + zram-size = if cfg.memoryMax != null then "min(${size}, ${toString cfg.memoryMax} / 1024 / 1024)" else size; 120 + compression-algorithm = cfg.algorithm; 121 + swap-priority = cfg.priority; 122 + } // lib.optionalAttrs (cfg.writebackDevice != null) { 123 + writeback-device = cfg.writebackDevice; 124 + }; 125 + }) 126 + devices); 138 127 139 128 }; 140 129