Compare commits

..

5 commits

Author SHA1 Message Date
Felix Buehler
ca9a3149a5 hardware/graphics: add AMD option
Some checks are pending
/ Build Nix targets (push) Waiting to run
2025-05-04 13:41:46 +02:00
Felix Buehler
981c43c186 machine/newton: deduplicate dm-snapshot module 2025-05-04 13:19:03 +02:00
Felix Buehler
567a339d57 core: deduplicate dm-snapshot module 2025-05-04 13:17:37 +02:00
Felix Buehler
0dbec2dda1 flake: update 2025-05-04 13:05:52 +02:00
Felix Buehler
2e7bd3794f flake: enable flake-checker 2025-05-04 13:00:24 +02:00
6 changed files with 45 additions and 28 deletions

18
flake.lock generated
View file

@ -207,11 +207,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1745955289, "lastModified": 1746341346,
"narHash": "sha256-mmV2oPhQN+YF2wmnJzXX8tqgYmUYXUj3uUUBSTmYN5o=", "narHash": "sha256-WjupK5Xpc+viJlJWiyPHp/dF4aJItp1BPuFsEdv2/fI=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "72081c9fbbef63765ae82bff9727ea79cc86bd5b", "rev": "0833dc8bbc4ffa9cf9b0cbfccf1c5ec8632fc66e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -222,11 +222,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1746055187, "lastModified": 1746183838,
"narHash": "sha256-3dqArYSMP9hM7Qpy5YWhnSjiqniSaT2uc5h2Po7tmg0=", "narHash": "sha256-kwaaguGkAqTZ1oK0yXeQ3ayYjs8u/W7eEfrFpFfIDFA=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "3e362ce63e16b9572d8c2297c04f7c19ab6725a5", "rev": "bf3287dac860542719fe7554e21e686108716879",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -276,11 +276,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1745930157, "lastModified": 1746232882,
"narHash": "sha256-y3h3NLnzRSiUkYpnfvnS669zWZLoqqI6NprtLQ+5dck=", "narHash": "sha256-MHmBH2rS8KkRRdoU/feC/dKbdlMkcNkB5mwkuipVHeQ=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "46e634be05ce9dc6d4db8e664515ba10b78151ae", "rev": "7a2622e2c0dbad5c4493cb268aba12896e28b008",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -85,6 +85,7 @@
enable = true; enable = true;
settings.noLambdaPatternNames = true; settings.noLambdaPatternNames = true;
}; };
flake-checker.enable = true;
markdownlint.enable = true; markdownlint.enable = true;
nixfmt-rfc-style.enable = true; nixfmt-rfc-style.enable = true;
shellcheck.enable = true; shellcheck.enable = true;

View file

@ -13,7 +13,6 @@ _: {
]; ];
kernelModules = [ kernelModules = [
"dm-snapshot"
"e1000e" "e1000e"
"nvme" "nvme"
]; ];

View file

@ -14,7 +14,6 @@
"virtio_pci" "virtio_pci"
"virtio_scsi" "virtio_scsi"
]; ];
boot.initrd.kernelModules = [ "dm-snapshot" ];
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View file

@ -17,14 +17,15 @@ in
my.hardware = { my.hardware = {
bluetooth.enable = true; bluetooth.enable = true;
debug.enable = true; debug.enable = true;
drive-monitor = { drive-monitor.enable = true;
enable = true;
};
firmware = { firmware = {
enable = true; enable = true;
inherit cpuFlavor; inherit cpuFlavor;
}; };
graphics.cpuFlavor = cpuFlavor; graphics = {
enable = true;
inherit cpuFlavor;
};
id-card.enable = true; id-card.enable = true;
keychron.enable = true; keychron.enable = true;
monitor.enable = true; monitor.enable = true;

View file

@ -9,29 +9,46 @@ let
in in
{ {
options.my.hardware.graphics = with lib; { options.my.hardware.graphics = with lib; {
enable = mkEnableOption "graphics configuration";
cpuFlavor = mkOption { cpuFlavor = mkOption {
type = with types; nullOr (enum [ "intel" ]); type =
with types;
nullOr (enum [
"amd"
"intel"
]);
default = null; default = null;
example = "intel"; example = "intel";
description = "Which kind of GPU"; description = "Which kind of GPU";
}; };
}; };
config = lib.mkMerge [ config = lib.mkIf cfg.enable (
# Intel GPU lib.mkMerge [
(lib.mkIf (cfg.cpuFlavor == "intel") { {
nixpkgs.config.packageOverrides = pkgs: { hardware.graphics.enable = true;
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; }; }
}; # Intel GPU
hardware.graphics = { (lib.mkIf (cfg.cpuFlavor == "intel") {
enable = true; nixpkgs.config.packageOverrides = pkgs: {
extraPackages = with pkgs; [ vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
};
hardware.graphics.extraPackages = with pkgs; [
intel-media-driver # LIBVA_DRIVER_NAME=iHD intel-media-driver # LIBVA_DRIVER_NAME=iHD
vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium) vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
vaapiVdpau vaapiVdpau
libvdpau-va-gl libvdpau-va-gl
]; ];
}; })
})
]; (lib.mkIf (cfg.cpuFlavor == "amd") {
hardware.graphics.extraPackages = with pkgs; [
amdvlk
];
hardware.graphics.extraPackages32 = with pkgs; [
driversi686Linux.amdvlk
];
})
]
);
} }