From 09c11c6ea51d12f97661b32d2898fbcbcddd75e5 Mon Sep 17 00:00:00 2001 From: Damien Date: Wed, 9 Sep 2026 11:25:35 +0200 Subject: [PATCH] =?UTF-8?q?zramSwap=20pour=20les=20PC=20=C3=A0=20faible=20?= =?UTF-8?q?RAM=20(4=20Go)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ hosts/common/base.nix | 8 ++++++++ installer/installer-base.nix | 18 ++++++++++++++++++ 3 files changed, 28 insertions(+) diff --git a/README.md b/README.md index b4c7f6b..574924a 100644 --- a/README.md +++ b/README.md @@ -373,6 +373,8 @@ Boot BIOS et boot UEFI, sur le parc réel. Test sur 1-2 PC réels d'abord. +PC à seulement 4 Go de RAM : le zram (`installer-base.nix`) doit suffire pour installer `usagers` (Cinnamon + Firefox + LibreOffice + VLC), mais pas testé en dessous de 12 Go pour l'instant. Si ça échoue encore sur du 4 Go réel : alléger la liste de paquets de `usagers` plutôt que d'insister sur le zram seul. + ```bash nix flake check nix build .#nixosConfigurations.usagers.config.system.build.toplevel diff --git a/hosts/common/base.nix b/hosts/common/base.nix index 24903fa..1497973 100644 --- a/hosts/common/base.nix +++ b/hosts/common/base.nix @@ -34,6 +34,14 @@ services.openssh.enable = true; networking.firewall.enable = true; + # Certains PC du parc n'ont que 4 Go de RAM (Cinnamon + Firefox + + # LibreOffice + VLC peuvent solliciter la mémoire) — swap compressé en + # RAM, marche identiquement quelle que soit la machine. + zramSwap = { + enable = true; + memoryPercent = 50; + }; + nix.settings.experimental-features = [ "nix-command" "flakes" diff --git a/installer/installer-base.nix b/installer/installer-base.nix index e3975ca..60ea1c6 100644 --- a/installer/installer-base.nix +++ b/installer/installer-base.nix @@ -13,6 +13,24 @@ in "flakes" ]; + # Le tmpfs racine de l'image live (netboot-minimal.nix) n'a par défaut + # aucune taille explicite -> plafonné à 50% de la RAM par le noyau. Le + # disque cible n'est pas encore monté à ce stade de l'install (le + # paquet complet transite d'abord par ce tmpfs), donc un système + # complet (Cinnamon + Firefox + LibreOffice + VLC...) peut dépasser + # cette limite même avec beaucoup de RAM disponible. + fileSystems."/".options = [ "size=90%" ]; + + # Certains PC du parc n'ont que 4 Go de RAM. Le disque cible ne peut pas + # servir de secours (disko-install l'efface entièrement en une seule + # opération, un swap posé dessus avant serait détruit en cours de + # route) : on utilise du swap compressé en RAM (zram) à la place, qui + # marche pareil en PXE et en USB sans dépendre d'un périphérique externe. + zramSwap = { + enable = true; + memoryPercent = 100; # jusqu'à 1x la RAM en swap compressé (~2-3x effectif) + }; + environment.systemPackages = with pkgs; [ git parted