diff options
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | dell/xps/15-9500/README.wiki | 14 | ||||
-rw-r--r-- | dell/xps/15-9500/default.nix | 10 | ||||
-rw-r--r-- | dell/xps/15-9500/nvidia/default.nix | 31 | ||||
-rw-r--r-- | dell/xps/15-9500/thermald-conf.xml | 205 | ||||
-rw-r--r-- | dell/xps/15-9500/xps-common.nix | 24 | ||||
-rw-r--r-- | flake.nix | 2 |
7 files changed, 288 insertions, 0 deletions
diff --git a/README.md b/README.md index 2fd51933e535..f1a2113b8b43 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,8 @@ See code for all available configurations. | [Dell XPS 15 9560][] | `<nixos-hardware/dell/xps/15-9560>` | | [Dell XPS 15 9560, intel only][] | `<nixos-hardware/dell/xps/15-9560/intel>` | | [Dell XPS 15 9560, nvidia only][] | `<nixos-hardware/dell/xps/15-9560/nvidia>` | +| [Dell XPS 15 9500][] | `<nixos-hardware/dell/xps/15-9500>` | +| [Dell XPS 15 9500, nvidia][] | `<nixos-hardware/dell/xps/15-9500/nvidia>` | | [Google Pixelbook][] | `<nixos-hardware/google/pixelbook>` | | [Inverse Path USB armory][] | `<nixos-hardware/inversepath/usbarmory>` | | Lenovo IdeaPad Z510 | `<nixos-hardware/lenovo/ideapad/z510>` | diff --git a/dell/xps/15-9500/README.wiki b/dell/xps/15-9500/README.wiki new file mode 100644 index 000000000000..d2e0456bb9c9 --- /dev/null +++ b/dell/xps/15-9500/README.wiki @@ -0,0 +1,14 @@ += Dell XPS 15 9550 = + +== Tested Hardware == + +* CPU: Intel(R) Core(TM) i7-10875H CPU @ 2.30GHz +* RAM: 64 GB +* HDD: 1 TiB SSD +* Screen: 15" 4k (3840✕2160) +* Graphics: NVIDIA Corporation TU117M [GeForce GTX 1650 Ti Mobile], with Intel Graphics too. +* Input: Touchscreen and trackpad. + +== Notes == + +Also tested with Dell WD19TB Thunderbolt Dock. diff --git a/dell/xps/15-9500/default.nix b/dell/xps/15-9500/default.nix new file mode 100644 index 000000000000..8d6d15b5b8d4 --- /dev/null +++ b/dell/xps/15-9500/default.nix @@ -0,0 +1,10 @@ +{ lib, pkgs, ... }: + +{ + imports = [ + ./xps-common.nix + ]; + + # This configuration makes intel default + services.xserver.videoDrivers = lib.mkDefault [ "intel" ]; +} diff --git a/dell/xps/15-9500/nvidia/default.nix b/dell/xps/15-9500/nvidia/default.nix new file mode 100644 index 000000000000..b7150c120095 --- /dev/null +++ b/dell/xps/15-9500/nvidia/default.nix @@ -0,0 +1,31 @@ +{ lib, pkgs, ... }: + +# This creates a new 'nvidia-offload' program that runs the application passed to it on the GPU +let + nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" '' + export __NV_PRIME_RENDER_OFFLOAD=1 + export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0 + export __GLX_VENDOR_LIBRARY_NAME=nvidia + export __VK_LAYER_NV_optimus=NVIDIA_only + exec -a "$0" "$@" + ''; +in +{ + imports = [ + ../xps-common.nix + ]; + + # As per https://nixos.wiki/wiki/Nvidia + services.xserver.videoDrivers = lib.mkDefault [ "nvidia" ]; + environment.systemPackages = [ nvidia-offload ]; + + hardware.nvidia.prime = { + offload.enable = lib.mkDefault true; + + # Bus ID of the Intel GPU. + intelBusId = lib.mkDefault "PCI:0:2:0"; + + # Bus ID of the NVIDIA GPU. + nvidiaBusId = lib.mkDefault "PCI:1:0:0"; + }; +} diff --git a/dell/xps/15-9500/thermald-conf.xml b/dell/xps/15-9500/thermald-conf.xml new file mode 100644 index 000000000000..bc13d3541dcb --- /dev/null +++ b/dell/xps/15-9500/thermald-conf.xml @@ -0,0 +1,205 @@ +<?xml version="1.0"?> + <!-- BEGIN --> + <ThermalConfiguration> + <Platform> + <Name> Auto generated </Name> + <ProductName>XPS 15 9500</ProductName> + <Preference>QUIET</Preference> + <PPCC> + <PowerLimitIndex>0</PowerLimitIndex> + <PowerLimitMinimum>10000</PowerLimitMinimum> + <PowerLimitMaximum>68000</PowerLimitMaximum> + <TimeWindowMinimum>56000</TimeWindowMinimum> + <TimeWindowMaximum>56000</TimeWindowMaximum> + <StepSize>250</StepSize> + </PPCC> + <ThermalZones> + <ThermalZone> + <Type>auto_zone_0</Type> + <TripPoints> + <TripPoint> + <SensorType>SEN2</SensorType> + <Temperature>55000</Temperature> + <Type>Passive</Type> + <CoolingDevice> + <Type>B0D4</Type> + <SamplingPeriod>1</SamplingPeriod> + <TargetState>45000000</TargetState> + </CoolingDevice> + </TripPoint> + <TripPoint> + <SensorType>SEN2</SensorType> + <Temperature>57000</Temperature> + <Type>Passive</Type> + <CoolingDevice> + <Type>B0D4</Type> + <SamplingPeriod>1</SamplingPeriod> + <TargetState>40000000</TargetState> + </CoolingDevice> + </TripPoint> + <TripPoint> + <SensorType>SEN2</SensorType> + <Temperature>60000</Temperature> + <Type>Passive</Type> + <CoolingDevice> + <Type>B0D4</Type> + <SamplingPeriod>1</SamplingPeriod> + <TargetState>35000000</TargetState> + </CoolingDevice> + </TripPoint> + <TripPoint> + <SensorType>SEN2</SensorType> + <Temperature>64000</Temperature> + <Type>Passive</Type> + <CoolingDevice> + <Type>B0D4</Type> + <SamplingPeriod>3</SamplingPeriod> + <TargetState>35000000</TargetState> + </CoolingDevice> + </TripPoint> + <TripPoint> + <SensorType>SEN2</SensorType> + <Temperature>68000</Temperature> + <Type>Passive</Type> + <CoolingDevice> + <Type>B0D4</Type> + <SamplingPeriod>3</SamplingPeriod> + <TargetState>20000000</TargetState> + </CoolingDevice> + </TripPoint> + <TripPoint> + <SensorType>SEN2</SensorType> + <Temperature>70000</Temperature> + <Type>Passive</Type> + <CoolingDevice> + <Type>B0D4</Type> + <SamplingPeriod>3</SamplingPeriod> + <TargetState>15000000</TargetState> + </CoolingDevice> + </TripPoint> + </TripPoints> + </ThermalZone> + <ThermalZone> + <Type>auto_zone_1</Type> + <TripPoints> + <TripPoint> + <SensorType>SEN5</SensorType> + <Temperature>38000</Temperature> + <Type>Passive</Type> + <CoolingDevice> + <Type>B0D4</Type> + <SamplingPeriod>1</SamplingPeriod> + <TargetState>22000000</TargetState> + </CoolingDevice> + </TripPoint> + <TripPoint> + <SensorType>SEN5</SensorType> + <Temperature>39000</Temperature> + <Type>Passive</Type> + <CoolingDevice> + <Type>B0D4</Type> + <SamplingPeriod>1</SamplingPeriod> + <TargetState>17000000</TargetState> + </CoolingDevice> + </TripPoint> + <TripPoint> + <SensorType>SEN5</SensorType> + <Temperature>40000</Temperature> + <Type>Passive</Type> + <CoolingDevice> + <Type>B0D4</Type> + <SamplingPeriod>3</SamplingPeriod> + <TargetState>12000000</TargetState> + </CoolingDevice> + </TripPoint> + <TripPoint> + <SensorType>SEN5</SensorType> + <Temperature>41000</Temperature> + <Type>Passive</Type> + <CoolingDevice> + <Type>B0D4</Type> + <SamplingPeriod>3</SamplingPeriod> + </CoolingDevice> + </TripPoint> + </TripPoints> + </ThermalZone> + <ThermalZone> + <Type>auto_zone_2</Type> + <TripPoints> + <TripPoint> + <SensorType>VIR1</SensorType> + <Temperature>57000</Temperature> + <Type>Passive</Type> + <CoolingDevice> + <Type>B0D4</Type> + <SamplingPeriod>3</SamplingPeriod> + <TargetState>15000000</TargetState> + </CoolingDevice> + </TripPoint> + <TripPoint> + <SensorType>VIR1</SensorType> + <Temperature>60000</Temperature> + <Type>Passive</Type> + <CoolingDevice> + <Type>B0D4</Type> + <SamplingPeriod>3</SamplingPeriod> + </CoolingDevice> + </TripPoint> + </TripPoints> + </ThermalZone> + <ThermalZone> + <Type>auto_zone_3</Type> + <TripPoints> + <TripPoint> + <SensorType>VIR2</SensorType> + <Temperature>76000</Temperature> + <Type>Passive</Type> + <CoolingDevice> + <Type>B0D4</Type> + <SamplingPeriod>1</SamplingPeriod> + </CoolingDevice> + </TripPoint> + </TripPoints> + </ThermalZone> + <ThermalZone> + <Type>auto_zone_4</Type> + <TripPoints> + <TripPoint> + <SensorType>WRLS</SensorType> + <Temperature>80000</Temperature> + <Type>Passive</Type> + <CoolingDevice> + <Type>B0D4</Type> + <SamplingPeriod>1</SamplingPeriod> + </CoolingDevice> + </TripPoint> + </TripPoints> + </ThermalZone> + <ThermalZone> + <Type>auto_zone_5</Type> + <TripPoints> + <TripPoint> + <SensorType>STG1</SensorType> + <Temperature>66000</Temperature> + <Type>Passive</Type> + <CoolingDevice> + <Type>B0D4</Type> + <SamplingPeriod>1</SamplingPeriod> + <TargetState>19000000</TargetState> + </CoolingDevice> + </TripPoint> + <TripPoint> + <SensorType>STG1</SensorType> + <Temperature>90000</Temperature> + <Type>Passive</Type> + <CoolingDevice> + <Type>B0D4</Type> + <SamplingPeriod>1</SamplingPeriod> + </CoolingDevice> + </TripPoint> + </TripPoints> + </ThermalZone> + </ThermalZones> +</Platform> +</ThermalConfiguration> +<!-- END --> diff --git a/dell/xps/15-9500/xps-common.nix b/dell/xps/15-9500/xps-common.nix new file mode 100644 index 000000000000..afa627ddcbda --- /dev/null +++ b/dell/xps/15-9500/xps-common.nix @@ -0,0 +1,24 @@ +{ lib, ... }: +let + thermald-conf = ./thermald-conf.xml; +in +{ + imports = [ + ../../../common/cpu/intel + ../../../common/pc/laptop + ../../../common/pc/laptop/ssd + ]; + + # Boot loader + boot.kernelParams = lib.mkDefault [ "acpi_rev_override" ]; + + # This will save you money and possibly your life! + services.thermald.enable = lib.mkDefault true; + + # Thermald doesn't have a default config for the 9500 yet, the one in this repo was generated with dptfxtract-static: + services.thermald.configFile = lib.mkDefault thermald-conf; + + # Set the tlp config to powersave explictly (this should be default). TLP is enabled in common/pc/laptop. + services.tlp.extraConfig = lib.mkDefault "CPU_SCALING_GOVERNOR_ON_AC=powersave\nCPU_SCALING_GOVERNOR_ON_BAT=powersave"; + +} diff --git a/flake.nix b/flake.nix index c30d3c917ef1..b6e67185feca 100644 --- a/flake.nix +++ b/flake.nix @@ -21,6 +21,8 @@ dell-xps-15-9560 = import ./dell/xps/15-9560; dell-xps-15-9560-intel = import ./dell/xps/15-9560/intel; dell-xps-15-9560-nvidia = import ./dell/xps/15-9560/nvidia; + dell-xps-15-9500 = import ./dell/xps/15-9500; + dell-xps-15-9500-nvidia = import ./dell/xps/15-9500/nvidia; google-pixelbook = import ./google/pixelbook; inversepath-usbarmory = import ./inversepath/usbarmory; lenovo-ideapad-z510 = import ./lenovo/ideapad/z510; |