diff --git a/slimbook/hero/rpl-rtx/README.txt b/slimbook/hero/rpl-rtx/README.txt index 5052e9c48..44478722a 100644 --- a/slimbook/hero/rpl-rtx/README.txt +++ b/slimbook/hero/rpl-rtx/README.txt @@ -2,13 +2,33 @@ This configuration is for the Slimbook Hero with an i7-13620H and an RTX 4060. Model name: SLIMBOOK HERO-RPL-RTX. -To run software on you Nvidia GPU, use the `nvidia-offload` command. For example: +To run software on your Nvidia GPU, use the `nvidia-offload` command. For example: ``` nvidia-offload `nix-shell -p glxinfo --run 'glxgears'` ``` For more information, visit: https://wiki.nixos.org/wiki/NVIDIA#Offload_mode +
System information ```bash +>neofetch +OS: NixOS 24.11.20241216.3945713 (Vicuna) x86_64 +Host: SLIMBOOK HERO-RPL-RTX +Kernel: 6.6.66 +Uptime: 37 mins +Packages: 1296 (nix-system), 893 (nix-user), 2 (nix-default), 9 (flatpak) +Shell: bash 5.2.37 +Resolution: 2560x1440 +DE: GNOME 47.1 (Wayland) +WM: Mutter +WM Theme: Adwaita +Theme: Adwaita [GTK2/3] +Icons: Adwaita [GTK2/3] +Terminal: kgx +CPU: 13th Gen Intel i7-13620H (16) @ 4.700GHz +GPU: Intel Raptor Lake-P [UHD Graphics] +GPU: NVIDIA GeForce RTX 4060 Max-Q / Mobile +Memory: 4448MiB / 15734MiB + $ lspci -nn 00:00.0 Host bridge [0600]: Intel Corporation Device [8086:a715] 00:01.0 PCI bridge [0604]: Intel Corporation Raptor Lake PCI Express 5.0 Graphics Port (PEG010) [8086:a70d] @@ -34,3 +54,65 @@ $ lspci -nn 03:00.0 Non-Volatile memory controller [0108]: Micron Technology Inc 2550 NVMe SSD (DRAM-less) [1344:5416] (rev 01) 04:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15) ``` +
+ +## Power Management +My testing shows suspend issues (tested in GNOME) when using `hardware.nvidia.powerManagement.enabled = true`, regardless of the value of `hardware.nvidia.powerManagement.finegrained`. +This seems related to this [issue](https://github.com/NixOS/nixpkgs/issues/336723), which is offered a solution in [this discouse thread](https://discourse.nixos.org/t/suspend-resume-cycling-on-system-resume/32322/12) with this config: + +
+```nix +systemd = { + services."gnome-suspend" = { + description = "suspend gnome shell"; + before = [ + "systemd-suspend.service" + "systemd-hibernate.service" + "nvidia-suspend.service" + "nvidia-hibernate.service" + ]; + wantedBy = [ + "systemd-suspend.service" + "systemd-hibernate.service" + ]; + serviceConfig = { + Type = "oneshot"; + ExecStart = ''${pkgs.procps}/bin/pkill -f -STOP ${pkgs.gnome-shell}/bin/gnome-shell''; + }; + }; + services."gnome-resume" = { + description = "resume gnome shell"; + after = [ + "systemd-suspend.service" + "systemd-hibernate.service" + "nvidia-resume.service" + ]; + wantedBy = [ + "systemd-suspend.service" + "systemd-hibernate.service" + ]; + serviceConfig = { + Type = "oneshot"; + ExecStart = ''${pkgs.procps}/bin/pkill -f -CONT ${pkgs.gnome-shell}/bin/gnome-shell''; + }; + }; + }; +``` +
+ +At the same time, the Nvidia driver reports power management to still be working even with `nvidia.powerManagement.enable = false`: +```bash +>cat /proc/driver/nvidia/gpus/0000:01:00.0/power +Runtime D3 status: Enabled (fine-grained) +Video Memory: Off + +GPU Hardware Support: + Video Memory Self Refresh: Supported + Video Memory Off: Supported + +S0ix Power Management: + Platform Support: Supported + Status: Disabled +``` + +For more information see the [Nvidia documentation](https://download.nvidia.com/XFree86/Linux-x86_64/565.77/README/powermanagement.html), chapters 21 and 22. diff --git a/slimbook/hero/rpl-rtx/default.nix b/slimbook/hero/rpl-rtx/default.nix index e6e88a0a2..8e99f4c44 100644 --- a/slimbook/hero/rpl-rtx/default.nix +++ b/slimbook/hero/rpl-rtx/default.nix @@ -16,14 +16,14 @@ }; nvidia = { prime = { - # Make sure to use the correct Bus ID values for your system! intelBusId = lib.mkDefault "PCI:0:2:0"; nvidiaBusId = lib.mkDefault "PCI:1:0:0"; }; powerManagement = { - enable = lib.mkDefault false; + enable = lib.mkDefault false; # Causes sleep issues. See README for more information finegrained = lib.mkDefault false; }; + dynamicBoost.enable = true; }; };