Merge branch 'master' into microsoft/surface/kernel-6.6

This commit is contained in:
mergify[bot] 2024-02-02 00:47:25 +00:00 committed by GitHub
commit 76cea60f68
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 34 additions and 20 deletions

View file

@ -11,11 +11,11 @@
];
hardware.nvidia = {
# PCI-Express Runtime D3 Power Management is enabled by default on this laptop
# But it can fix screen tearing & suspend/resume screen corruption in sync mode
modesetting.enable = lib.mkDefault true;
# Enable DRM kernel mode setting
powerManagement.enable = lib.mkDefault true;
# This will also cause "PCI-Express Runtime D3 Power Management" to be enabled by default
modesetting.enable = lib.mkDefault true;
dynamicBoost.enable = true;
prime = {
amdgpuBusId = "PCI:4:0:0";

View file

@ -29,5 +29,9 @@
# https://bbs.archlinux.org/viewtopic.php?id=266108 says linux >= 5.12 required
boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "5.12") pkgs.linuxPackages_latest;
# sometimes boots to a black screen, and pressing alt+sysrq+k makes the
# display manager start
# fixed by early kernel modesetting
boot.initrd.kernelModules = [ "amdgpu" ];
}

View file

@ -3,6 +3,12 @@ Due to the introduction of DDG feature, you may toggle DDG frequently, so for th
**But It will slow down NixOS evaluation by factor 2 and increase memory usage.**
So if you don't need specialization feature, you can just use hybrid only configuration or nvidia only (DDG only) configuration
## Using multiple drives with this configuration
When using more than one drive, the value of `hardware.nvidia.prime.amdgpuBusId` will change from the default of `PCI:5:0:0`.
Make sure you override this default in your personal configuration. For two drives, it should be `PCI:6:0:0`.
## Setup at the time of testing
```
$ nix-info -m

View file

@ -6,13 +6,6 @@
specialisation.ddg.configuration = {
# This specialisation is for the case where "DDG" (Dual-Direct GFX, A hardware feature that can enable in bios) is enabled, since the amd igpu is blocked at hardware level and the built-in display is directly connected to the dgpu, we no longer need the amdgpu and prime configuration.
system.nixos.tags = [ "Dual-Direct-GFX-Mode" ];
services.xserver.videoDrivers = [ "nvidia" ]; # This will override services.xserver.videoDrivers = lib.mkDefault [ "amdgpu" "nvidia" ];
hardware = {
nvidia.prime.offload.enable = false;
amdgpu = {
amdvlk = false;
opencl = false;
};
};
imports = [ ./nvidia ];
};
}

View file

@ -1,4 +1,4 @@
{ pkgs, ...}:
{ pkgs, ... }:
let
# This file was obtained from the display while "DDG" mode was enabled.
@ -11,5 +11,7 @@ in
hardware.firmware = [ chip_edid ];
boot.kernelParams = [ "drm.edid_firmware=edid/16ach6h.bin" ];
boot.initrd.extraFiles."lib/firmware/edid/16ach6h.bin".source = pkgs.runCommandLocal "chip_edid" { } "cp ${./16ach6h.bin} $out";
# This fails at the moment, https://github.com/NixOS/nixos-hardware/issues/795
# Extra refresh rates seem to work regardless
# boot.initrd.extraFiles."lib/firmware/edid/16ach6h.bin".source = pkgs.runCommandLocal "chip_edid" { } "cp ${./16ach6h.bin} $out";
}

View file

@ -11,6 +11,15 @@
../edid
];
# Still needs to load at some point if we want X11 to work
boot.kernelModules = [ "amdgpu" ];
# modesetting just doesn't work (on X11?), so get rid of it by only explicitly declaring nvidia
# Needed due to https://github.com/NixOS/nixos-hardware/commit/630a8e3e4eea61d35524699f2f59dbc64886357d
# See also https://github.com/NixOS/nixos-hardware/issues/628
# options.services.xserver.drivers will have a amdgpu entry from using the prime stuff in nixpkgs
services.xserver.videoDrivers = [ "nvidia" ];
hardware = {
amdgpu.loadInInitrd = lib.mkDefault false;
@ -19,7 +28,7 @@
powerManagement.enable = lib.mkDefault true;
prime = {
amdgpuBusId = "PCI:6:0:0";
amdgpuBusId = lib.mkDefault "PCI:5:0:0";
nvidiaBusId = "PCI:1:0:0";
};
};

View file

@ -9,8 +9,8 @@ let
src = fetchFromGitHub {
owner = "starfive-tech";
repo = "linux";
rev = "7ccbe4604c1498e880cc63c7e8b45e3c55914d6d";
hash = "sha256-iO7tnnWYfveVbyvVZKL0dDLwONijt1n0RUD1kTkOQew=";
rev = "13eb70da2a73187c8c7aece13d23d68928aa8210";
hash = "sha256-bwB7Pc+Z+MWXPfWYdgtRGuhqjiNHLDGNCY62e4lBGvE=";
};
inherit modDirVersion kernelPatches;