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

View file

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

View file

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

View file

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

View file

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

View file

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