mirror of
https://github.com/NixOS/nixos-hardware
synced 2024-11-27 05:19:43 +01:00
Extract AMD-GPU from Nvidia, to make it easier to choose either
This commit is contained in:
parent
5a8ed531f9
commit
6e5cc385fc
4 changed files with 115 additions and 80 deletions
23
lenovo/yoga/7/14ARH7/amdgpu/default.nix
Normal file
23
lenovo/yoga/7/14ARH7/amdgpu/default.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
# Including this file will enable the AMD-GPU driver
|
||||||
|
|
||||||
|
{ lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (lib) mkDefault;
|
||||||
|
|
||||||
|
in {
|
||||||
|
imports = [
|
||||||
|
../shared.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# AMD RX680
|
||||||
|
services.xserver.videoDrivers = mkDefault [ "amdgpu" ];
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
amdgpu.loadInInitrd = true;
|
||||||
|
opengl.extraPackages = with pkgs; [
|
||||||
|
vaapiVdpau
|
||||||
|
libvdpau-va-gl
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,82 +1,15 @@
|
||||||
{ config, lib, pkgs, ... }:
|
# When using from a Flake, you can access these via imports of the attr key, e.g:
|
||||||
|
#
|
||||||
|
# imports = [
|
||||||
|
# nixos-hardware.nixosModules.lenovo-yoga-7-14ARH7.amdgpu
|
||||||
|
# ];
|
||||||
|
#
|
||||||
|
## or:
|
||||||
|
# imports = [
|
||||||
|
# nixos-hardware.nixosModules.lenovo-yoga-7-14ARH7.nvidia
|
||||||
|
# ];
|
||||||
|
|
||||||
let
|
{
|
||||||
inherit (lib) mkDefault mkMerge;
|
amdgpu = import ./amdgpu;
|
||||||
|
nvidia = import ./nvidia;
|
||||||
in {
|
|
||||||
imports = [
|
|
||||||
../../../../common/cpu/amd
|
|
||||||
# Better power-savings from AMD PState:
|
|
||||||
../../../../common/cpu/amd/pstate.nix
|
|
||||||
../../../../common/gpu/amd
|
|
||||||
## "prime.nix" loads this, aleady:
|
|
||||||
# ../../../../common/gpu/nvidia
|
|
||||||
../../../../common/gpu/nvidia/prime.nix
|
|
||||||
../../../../common/pc/laptop
|
|
||||||
../../../../common/pc/laptop/acpi_call.nix
|
|
||||||
../../../../common/pc/ssd
|
|
||||||
];
|
|
||||||
|
|
||||||
config = mkMerge [
|
|
||||||
{
|
|
||||||
# Configure basic system settings:
|
|
||||||
boot = {
|
|
||||||
kernelModules = [ "kvm-amd" ];
|
|
||||||
kernelParams = [
|
|
||||||
"mem_sleep_default=deep"
|
|
||||||
"pcie_aspm.policy=powersupersave"
|
|
||||||
|
|
||||||
## Supposed to help fix for suspend issues: SSD not correctly working, and Keyboard not responding:
|
|
||||||
## Not needed for the 6.1+ kernels?
|
|
||||||
# "iommu=pt"
|
|
||||||
|
|
||||||
## Fixes for s2idle:
|
|
||||||
## https://www.phoronix.com/news/More-s2idle-Rembrandt-Linux
|
|
||||||
# "acpi.prefer_microsoft_guid=1"
|
|
||||||
## Appears to have been renamed?
|
|
||||||
"acpi.prefer_microsoft_dsm_guid=1"
|
|
||||||
];
|
|
||||||
|
|
||||||
blacklistedKernelModules = [ "nouveau" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
## Graphics settings
|
|
||||||
|
|
||||||
## AMD RX680
|
|
||||||
# services.xserver.videoDrivers = mkDefault [ "amdgpu" ];
|
|
||||||
|
|
||||||
# NVIDIA GeForce RTX 3050 Mobile (Ampere)
|
|
||||||
services.xserver.videoDrivers = mkDefault [ "nvidia" ];
|
|
||||||
|
|
||||||
hardware = {
|
|
||||||
## Enable the Nvidia card, as well as Prime and Offload:
|
|
||||||
amdgpu.loadInInitrd = true;
|
|
||||||
opengl.extraPackages = with pkgs; [
|
|
||||||
vaapiVdpau
|
|
||||||
libvdpau-va-gl
|
|
||||||
];
|
|
||||||
|
|
||||||
nvidia = {
|
|
||||||
modesetting.enable = true;
|
|
||||||
nvidiaSettings = true;
|
|
||||||
|
|
||||||
prime = {
|
|
||||||
offload = {
|
|
||||||
enable = true;
|
|
||||||
enableOffloadCmd = true;
|
|
||||||
};
|
|
||||||
amdgpuBusId = "PCI:4:0:0";
|
|
||||||
nvidiaBusId = "PCI:1:0:0";
|
|
||||||
};
|
|
||||||
|
|
||||||
powerManagement = {
|
|
||||||
enable = true;
|
|
||||||
# finegrained = true
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
47
lenovo/yoga/7/14ARH7/nvidia/default.nix
Normal file
47
lenovo/yoga/7/14ARH7/nvidia/default.nix
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
# Including this file will enable the NVidia driver, and PRIME offload
|
||||||
|
|
||||||
|
{ lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (lib) mkDefault;
|
||||||
|
|
||||||
|
in {
|
||||||
|
imports = [
|
||||||
|
../shared.nix
|
||||||
|
## "prime.nix" loads this, aleady:
|
||||||
|
# ../../../../common/gpu/nvidia
|
||||||
|
../../../../../common/gpu/nvidia/prime.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# NVIDIA GeForce RTX 3050 Mobile (Ampere)
|
||||||
|
services.xserver.videoDrivers = mkDefault [ "nvidia" ];
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
## Enable the Nvidia card, as well as Prime and Offload:
|
||||||
|
amdgpu.loadInInitrd = true;
|
||||||
|
opengl.extraPackages = with pkgs; [
|
||||||
|
vaapiVdpau
|
||||||
|
libvdpau-va-gl
|
||||||
|
];
|
||||||
|
|
||||||
|
nvidia = {
|
||||||
|
modesetting.enable = true;
|
||||||
|
nvidiaSettings = true;
|
||||||
|
|
||||||
|
prime = {
|
||||||
|
offload = {
|
||||||
|
enable = true;
|
||||||
|
enableOffloadCmd = true;
|
||||||
|
};
|
||||||
|
amdgpuBusId = "PCI:4:0:0";
|
||||||
|
nvidiaBusId = "PCI:1:0:0";
|
||||||
|
};
|
||||||
|
|
||||||
|
powerManagement = {
|
||||||
|
enable = true;
|
||||||
|
# Doesn't seem to be reliable, yet?
|
||||||
|
# finegrained = true
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
32
lenovo/yoga/7/14ARH7/shared.nix
Normal file
32
lenovo/yoga/7/14ARH7/shared.nix
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
../../../../common/cpu/amd
|
||||||
|
# Better power-savings from AMD PState:
|
||||||
|
../../../../common/cpu/amd/pstate.nix
|
||||||
|
../../../../common/gpu/amd
|
||||||
|
../../../../common/pc/laptop
|
||||||
|
../../../../common/pc/laptop/acpi_call.nix
|
||||||
|
../../../../common/pc/ssd
|
||||||
|
];
|
||||||
|
|
||||||
|
# Configure basic system settings:
|
||||||
|
boot = {
|
||||||
|
kernelModules = [ "kvm-amd" ];
|
||||||
|
kernelParams = [
|
||||||
|
"mem_sleep_default=deep"
|
||||||
|
"pcie_aspm.policy=powersupersave"
|
||||||
|
|
||||||
|
## Supposed to help fix for suspend issues: SSD not correctly working, and Keyboard not responding:
|
||||||
|
## Not needed for the 6.1+ kernels?
|
||||||
|
# "iommu=pt"
|
||||||
|
|
||||||
|
## Fixes for s2idle:
|
||||||
|
## https://www.phoronix.com/news/More-s2idle-Rembrandt-Linux
|
||||||
|
"acpi.prefer_microsoft_dsm_guid=1"
|
||||||
|
];
|
||||||
|
|
||||||
|
blacklistedKernelModules = [ "nouveau" ];
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue