From be8c206e601e988e4d89e6309169d1df8c2aae6c Mon Sep 17 00:00:00 2001 From: Lyes Saadi Date: Sat, 4 May 2024 21:40:00 +0200 Subject: [PATCH] Trying to compiling everything from source, it works, but isn't worth it --- hardware/x1-extreme-gen4.nix | 84 ++++++++++++++++++++++++++++++------ system.nix | 13 +++++- 2 files changed, 81 insertions(+), 16 deletions(-) diff --git a/hardware/x1-extreme-gen4.nix b/hardware/x1-extreme-gen4.nix index b9a2d59..fb9801f 100644 --- a/hardware/x1-extreme-gen4.nix +++ b/hardware/x1-extreme-gen4.nix @@ -1,4 +1,4 @@ -{ config, ... }: +{ config, pkgs, ... }: { # Optimisation @@ -9,21 +9,67 @@ # system = "x86_64-linux"; # }; - nix.settings.system-features = [ "gccarch-tigerlake" "nixos-test" "benchmark" "big-parallel" "kvm" ]; + # nix.settings.system-features = [ "gccarch-tigerlake" "nixos-test" "benchmark" "big-parallel" "kvm" ]; - # Increasing the limit of files to help with compilation - security.pam.loginLimits = [{ - domain = "*"; - type = "soft"; - item = "nofile"; - value = "8192"; - }]; + # # Increasing the limit of files to help with compilation + # security.pam.loginLimits = [{ + # domain = "*"; + # type = "soft"; + # item = "nofile"; + # value = "8192"; + # }]; - # Disabling failing test + # # Resources Limit + # nix.settings = { + # max-jobs = 7; + # cores = 2; + # }; + + # # OOM configuration + # systemd = { + # # Create a separate slice for nix-daemon that is + # # memory-managed by the userspace systemd-oomd killer + # slices."nix-daemon".sliceConfig = { + # ManagedOOMMemoryPressure = "kill"; + # ManagedOOMMemoryPressureLimit = "50%"; + # }; + # services."nix-daemon".serviceConfig.Slice = "nix-daemon.slice"; + + # # If a kernel-level OOM event does occur anyway, + # # strongly prefer killing nix-daemon child processes + # services."nix-daemon".serviceConfig.OOMScoreAdjust = 1000; + + # services."nix-daemon".serviceConfig.MemoryHigh = "16G"; + # services."nix-daemon".serviceConfig.MemoryMax = "20G"; + # }; + + # # Disabling failing test # nixpkgs.overlays = [ (final: prev: { # orc = prev.orc.overrideAttrs (_: { doCheck = false; }); + # gsl = prev.gsl.overrideAttrs (_: { doCheck = false; }); + # fprintd = prev.fprintd.overrideAttrs (super: { + # # doCheck = false; + # # buildInputs = super.buildInputs or [ ] ++ (with pkgs; [ libpam-wrapper (pkgs.python3.withPackages (python-pkgs: [ python-pkgs.pycairo python-pkgs.dbus-python python-pkgs.python-dbusmock ])) ]); + # mesonCheckFlags = [ + # # PAM related checks are timing out + # "--no-suite" "fprintd" + # ]; + # }); + # # haskellPackages.crypton = pkgs.haskell.lib.overrideCabal prev.crypton (_: { doCheck = false; }); + # # haskellPackages.cryptonite = pkgs.haskell.lib.overrideCabal prev.cryptonite (_: { doCheck = false; }); # }) ]; + # nixpkgs.config.packageOverrides = pkgs: { + # haskellPackages = pkgs.haskellPackages.override { + # overrides = hsSelf: hsSuper: { + # crypton = pkgs.haskell.lib.overrideCabal hsSuper.crypton (_: { doCheck = false; }); + # cryptonite = pkgs.haskell.lib.overrideCabal hsSuper.cryptonite (_: { doCheck = false; }); + # crypton-x509-validation = pkgs.haskell.lib.overrideCabal hsSuper.crypton-x509-validation (oa: { doCheck = false; }); + # tls = pkgs.haskell.lib.overrideCabal hsSuper.tls (oa: { doCheck = false; }); + # }; + # }; + # }; + # NVidia services.xserver.videoDrivers = [ "nvidia" ]; @@ -40,15 +86,25 @@ # Use the open source version of the kernel module # Only available on driver 515.43.04+ - open = true; + open = false; # Enable the nvidia settings menu nvidiaSettings = true; # Optionally, you may need to select the appropriate driver version for your specific GPU - package = config.boot.kernelPackages.nvidiaPackages.stable; - }; + # package = config.boot.kernelPackages.nvidiaPackages.vulkan_beta; + prime = { + offload = { + enable = true; + enableOffloadCmd = true; + }; + + intelBusId = "PCI:0:2:0"; + nvidiaBusId = "PCI:1:0:0"; + }; + }; + # For containers - virtualisation.containers.cdi.dynamic.nvidia.enable = true; + hardware.nvidia-container-toolkit.enable = true; } diff --git a/system.nix b/system.nix index b9c5ae0..1a08e29 100644 --- a/system.nix +++ b/system.nix @@ -12,6 +12,7 @@ boot.loader.systemd-boot.configurationLimit = 10; boot.loader.efi.canTouchEfiVariables = true; boot.plymouth.enable = true; + boot.kernelParams = [ "quiet" ]; boot.supportedFilesystems = [ "ntfs" ]; @@ -26,6 +27,7 @@ # Firmware services.fwupd.enable = true; services.fprintd.enable = true; + security.pam.services.gdm-fingerprint.fprintAuth = false; # Time time.timeZone = "Europe/Paris"; @@ -41,7 +43,7 @@ services.xserver.xkb.layout = "fr"; services.xserver.xkb.variant = "oss"; - services.xserver.libinput.enable = true; + services.libinput.enable = true; # Printing services.printing.enable = true; @@ -65,10 +67,16 @@ # Graphics services.xserver.enable = true; programs.xwayland.enable = true; + environment.sessionVariables.NIXOS_OZONE_WL = "1"; + # GNOME services.xserver.displayManager.gdm.enable = true; services.xserver.desktopManager.gnome.enable = true; + # KDE + # services.desktopManager.plasma6.enable = true; + # programs.ssh.askPassword = lib.mkForce "${pkgs.gnome.seahorse}/libexec/seahorse/ssh-askpass"; + programs.dconf.enable = true; services.flatpak.enable = true; @@ -91,7 +99,8 @@ documentation.enable = true; documentation.man.enable = true; documentation.dev.enable = true; - documentation.nixos.enable = true; + # Fails for some reason + documentation.nixos.enable = false; # Virtualisation virtualisation.libvirtd.enable = true;