mirror of
https://github.com/NixOS/nixos-hardware
synced 2024-11-26 21:09:42 +01:00
Merge #515
515: Update config of Lenovo legion 16ach6h r=Mic92 a=LostAttractor Co-authored-by: ChaosAttractor <46527539+LostAttractor@users.noreply.github.com>
This commit is contained in:
commit
25010a042c
8 changed files with 66 additions and 14 deletions
|
@ -129,6 +129,8 @@ See code for all available configurations.
|
|||
| [Lenovo Legion 5 15arh05h](lenovo/legion/15arh05h) | `<nixos-hardware/lenovo/legion/15arh05h>` |
|
||||
| [Lenovo Legion 7 Slim 15ach6](lenovo/legion/15ach6) | `<nixos-hardware/lenovo/legion/15ach6>` |
|
||||
| [Lenovo Legion 5 Pro 16ach6h](lenovo/legion/16ach6h) | `<nixos-hardware/lenovo/legion/16ach6h>` |
|
||||
| [Lenovo Legion 5 Pro 16ach6h (Hybrid)](lenovo/legion/16ach6h/hybrid)| `<nixos-hardware/lenovo/legion/16ach6h/hybrid>` |
|
||||
| [Lenovo Legion 5 Pro 16ach6h (Nvidia)](lenovo/legion/16ach6h/nvidia)| `<nixos-hardware/lenovo/legion/16ach6h/nvidia>` |
|
||||
| [Lenovo ThinkPad E14 (AMD)](lenovo/thinkpad/e14/amd) | `<nixos-hardware/lenovo/thinkpad/e14/amd>` |
|
||||
| [Lenovo ThinkPad E14 (Intel)](lenovo/thinkpad/e14/intel) | `<nixos-hardware/lenovo/thinkpad/e14/intel>` |
|
||||
| [Lenovo ThinkPad E470](lenovo/thinkpad/e470) | `<nixos-hardware/lenovo/thinkpad/e470>` |
|
||||
|
|
|
@ -63,6 +63,8 @@
|
|||
lenovo-legion-15ach6 = import ./lenovo/legion/15ach6;
|
||||
lenovo-legion-15arh05h = import ./lenovo/legion/15arh05h;
|
||||
lenovo-legion-16ach6h = import ./lenovo/legion/16ach6h;
|
||||
lenovo-legion-16ach6h-hybrid = import ./lenovo/legion/16ach6h/hybrid;
|
||||
lenovo-legion-16ach6h-nvidia = import ./lenovo/legion/16ach6h/nvidia;
|
||||
lenovo-legion-16ithg6 = import ./lenovo/legion/16ithg6;
|
||||
lenovo-thinkpad = import ./lenovo/thinkpad;
|
||||
lenovo-thinkpad-e14-amd = import ./lenovo/thinkpad/e14/amd;
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
## Introduction
|
||||
Due to the introduction of DDG feature, you may toggle DDG frequently, so for the default settings of this laptop, we use "specialization" feature of Nix so that you can easily select the required graphics card driver in the startup menu.
|
||||
**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
|
||||
|
||||
## Setup at the time of testing
|
||||
```
|
||||
$ nix-info -m
|
||||
|
|
|
@ -1,18 +1,11 @@
|
|||
{ lib, ... }:
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../../common/cpu/amd
|
||||
../../../common/gpu/amd
|
||||
../../../common/gpu/nvidia/prime.nix
|
||||
../../../common/pc/laptop
|
||||
../../../common/pc/laptop/ssd
|
||||
];
|
||||
imports = [ ./hybrid ];
|
||||
|
||||
hardware.nvidia.prime = {
|
||||
amdgpuBusId = "PCI:6:0:0";
|
||||
nvidiaBusId = "PCI:1:0:0";
|
||||
specialisation.ddg.configuration = {
|
||||
# This specialisation is for the case where "DDG" (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.
|
||||
services.xserver.videoDrivers = [ "nvidia" ]; # This will override services.xserver.videoDrivers = lib.mkDefault [ "amdgpu" "nvidia" ];
|
||||
hardware.nvidia.prime.offload.enable = false;
|
||||
};
|
||||
|
||||
services.thermald.enable = lib.mkDefault true;
|
||||
}
|
||||
}
|
BIN
lenovo/legion/16ach6h/edid/16ach6h.bin
Normal file
BIN
lenovo/legion/16ach6h/edid/16ach6h.bin
Normal file
Binary file not shown.
15
lenovo/legion/16ach6h/edid/default.nix
Normal file
15
lenovo/legion/16ach6h/edid/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
{ config, pkgs, lib, ...}:
|
||||
|
||||
let
|
||||
# This file was obtained from the display while "DDG" mode was enabled.
|
||||
chip_edid = pkgs.runCommandNoCC "chip_edid" { } ''
|
||||
mkdir -p $out/lib/firmware/edid
|
||||
cp ${./16ach6h.bin} $out/lib/firmware/edid/16ach6h.bin
|
||||
'';
|
||||
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";
|
||||
}
|
28
lenovo/legion/16ach6h/hybrid/default.nix
Normal file
28
lenovo/legion/16ach6h/hybrid/default.nix
Normal file
|
@ -0,0 +1,28 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../../../common/cpu/amd
|
||||
../../../../common/gpu/amd
|
||||
../../../../common/gpu/nvidia/prime.nix
|
||||
../../../../common/pc/laptop
|
||||
../../../../common/pc/laptop/ssd
|
||||
../edid
|
||||
];
|
||||
|
||||
hardware = {
|
||||
amdgpu.loadInInitrd = lib.mkDefault false;
|
||||
|
||||
nvidia = {
|
||||
modesetting.enable = lib.mkDefault true;
|
||||
powerManagement.enable = lib.mkDefault true;
|
||||
|
||||
prime = {
|
||||
amdgpuBusId = "PCI:6:0:0";
|
||||
nvidiaBusId = "PCI:1:0:0";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.thermald.enable = lib.mkDefault true;
|
||||
}
|
7
lenovo/legion/16ach6h/nvidia/default.nix
Normal file
7
lenovo/legion/16ach6h/nvidia/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [ ../hybrid ];
|
||||
services.xserver.videoDrivers = [ "nvidia" ]; # This will override services.xserver.videoDrivers = lib.mkDefault [ "amdgpu" "nvidia" ];
|
||||
hardware.nvidia.prime.offload.enable = false;
|
||||
}
|
Loading…
Reference in a new issue