From b5cc169936a0e139383de083510078155733e31a Mon Sep 17 00:00:00 2001 From: Kopatz <7265381+Kropatz@users.noreply.github.com> Date: Wed, 25 Sep 2024 16:51:42 +0200 Subject: [PATCH] nvidia powerlimit and enable webrtc --- home-manager/firefox/config/privacy.nix | 4 +-- modules/hardware/nvidia.nix | 45 +++++++++++++++++-------- systems/pc/configuration.nix | 5 ++- 3 files changed, 37 insertions(+), 17 deletions(-) diff --git a/home-manager/firefox/config/privacy.nix b/home-manager/firefox/config/privacy.nix index 3e04d74..a6c2d30 100644 --- a/home-manager/firefox/config/privacy.nix +++ b/home-manager/firefox/config/privacy.nix @@ -70,11 +70,11 @@ # setting overrides both with " " without disabling WebGL. "webgl.renderer-string-override" = " "; "webgl.vendor-string-override" = " "; - # Disable WebRTC + # Disable WebRTC (disabled) # Disables the WebRTC function, which gives away your local ips. Some addons like # uBlock origin provide settings to prevent WebRTC from exposing local ips without # disabling WebRTC. - "media.peerconnection.enabled" = false; + "media.peerconnection.enabled" = true; # Disable the clipboardevents. # Disable that websites can get notifications if you copy, paste, or cut something # from a web page, and it lets them know which part of the page had been selected. diff --git a/modules/hardware/nvidia.nix b/modules/hardware/nvidia.nix index 422ad07..e7782ee 100644 --- a/modules/hardware/nvidia.nix +++ b/modules/hardware/nvidia.nix @@ -3,6 +3,14 @@ let cfg = config.custom.hardware.nvidia; in { options.custom.hardware.nvidia = { enable = lib.mkEnableOption "Enables nvidia gpus"; + powerLimit = { + enable = lib.mkEnableOption "Increase GPU power limit"; + wattage = lib.mkOption { + type = lib.types.int; + default = 300; + description = "The power limit to set the GPU to"; + }; + }; }; config = let @@ -22,6 +30,9 @@ in { in lib.mkIf cfg.enable (lib.recursiveUpdate nvidiaOption { boot.kernelParams = [ "nvidia-drm.fbdev=1" ]; services.xserver.videoDrivers = [ "nvidia" ]; + services.xserver.deviceSection = '' + Option "Coolbits" "24" + ''; hardware.nvidia = { # Modesetting is required. modesetting.enable = true; @@ -43,20 +54,26 @@ in { 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.mkDriver { - # version = "560.35.03"; - # sha256_64bit = "sha256-8pMskvrdQ8WyNBvkU/xPc/CtcYXCa7ekP73oGuKfH+M="; - # sha256_aarch64 = "sha256-s8ZAVKvRNXpjxRYqM3E5oss5FdqW+tv1qQC2pDjfG+s="; - # openSha256 = "sha256-/32Zf0dKrofTmPZ3Ratw4vDM7B+OgpC4p7s+RHUjCrg="; - # settingsSha256 = "sha256-kQsvDgnxis9ANFmwIwB7HX5MkIAcpEEAHc8IBOLdXvk="; - # persistencedSha256 = - # "sha256-E2J2wYYyRu7Kc3MMZz/8ZIemcZg68rkzvqEwFAL3fFs="; - # preInstall = '' - # rm -f ./libnvidia-egl-wayland.so* - # cp ${pkgs.egl-wayland}/lib/libnvidia-egl-wayland.so.1.* . - # chmod 777 ./libnvidia-egl-wayland.so.1.* - # ''; - #}; + #package = config.boot.kernelPackages.nvidiaPackages.mkDriver { + # version = "560.35.03"; + # sha256_64bit = "sha256-8pMskvrdQ8WyNBvkU/xPc/CtcYXCa7ekP73oGuKfH+M="; + # sha256_aarch64 = "sha256-s8ZAVKvRNXpjxRYqM3E5oss5FdqW+tv1qQC2pDjfG+s="; + # openSha256 = "sha256-/32Zf0dKrofTmPZ3Ratw4vDM7B+OgpC4p7s+RHUjCrg="; + # settingsSha256 = "sha256-kQsvDgnxis9ANFmwIwB7HX5MkIAcpEEAHc8IBOLdXvk="; + # persistencedSha256 = + # "sha256-E2J2wYYyRu7Kc3MMZz/8ZIemcZg68rkzvqEwFAL3fFs="; + # preInstall = '' + # rm -f ./libnvidia-egl-wayland.so* + # cp ${pkgs.egl-wayland}/lib/libnvidia-egl-wayland.so.1.* . + # chmod 777 ./libnvidia-egl-wayland.so.1.* + # ''; + #}; + }; + + systemd.services.nvpl = lib.mkIf cfg.powerLimit.enable { + description = "Increase GPU power limit to ${toString cfg.powerLimit.wattage} watts"; + script = "/run/current-system/sw/bin/nvidia-smi -pl=${toString cfg.powerLimit.wattage}"; + wantedBy = [ "multi-user.target" ]; }; }); } diff --git a/systems/pc/configuration.nix b/systems/pc/configuration.nix index 0be1c99..207b6d3 100644 --- a/systems/pc/configuration.nix +++ b/systems/pc/configuration.nix @@ -40,7 +40,10 @@ services = { syncthing = { enable = true; }; }; hardware = { android.enable = true; - nvidia.enable = true; + nvidia = { + enable = true; + powerLimit.enable = true; + }; firmware.enable = true; ssd.enable = true; wooting.enable = true;