Use nixos-hardware for hardware configuration
This removes the manual modules that use options to activate hardware configuration. It seems to general (e.g. newer Intel GPUs require different opencl icd) or not flexible enough (in case of the ssd module). Closes #21.
This commit is contained in:
parent
55fb2cfdda
commit
05a72217aa
|
@ -19,6 +19,10 @@ let
|
||||||
url = https://github.com/NixOS/nixpkgs;
|
url = https://github.com/NixOS/nixpkgs;
|
||||||
shallow = true;
|
shallow = true;
|
||||||
};
|
};
|
||||||
|
nixos-hardware.git = {
|
||||||
|
ref = sources.nixos-hardware.rev;
|
||||||
|
url = https://github.com/NixOS/nixos-hardware;
|
||||||
|
};
|
||||||
config.file = {
|
config.file = {
|
||||||
path = toString ./.;
|
path = toString ./.;
|
||||||
filters = [
|
filters = [
|
||||||
|
|
|
@ -8,14 +8,11 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
sbruder = {
|
sbruder = {
|
||||||
cpu.intel.enable = true;
|
|
||||||
docker.enable = true;
|
docker.enable = true;
|
||||||
games.enable = true;
|
games.enable = true;
|
||||||
gpu.intel.enable = true;
|
|
||||||
gui.enable = true;
|
gui.enable = true;
|
||||||
media-proxy.enable = true;
|
media-proxy.enable = true;
|
||||||
restic.enable = true;
|
restic.enable = true;
|
||||||
ssd.enable = true;
|
|
||||||
unfree.allowSoftware = true;
|
unfree.allowSoftware = true;
|
||||||
wireguard.home = {
|
wireguard.home = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
<nixos-hardware/common/cpu/intel>
|
||||||
|
<nixos-hardware/common/pc/ssd>
|
||||||
];
|
];
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
|
@ -27,6 +29,7 @@
|
||||||
"/" = {
|
"/" = {
|
||||||
device = "/dev/disk/by-uuid/8937d1ac-23cb-456f-9c16-e348acc66bb7";
|
device = "/dev/disk/by-uuid/8937d1ac-23cb-456f-9c16-e348acc66bb7";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
|
options = [ "discard" "noatime" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"/boot" = {
|
"/boot" = {
|
||||||
|
@ -44,4 +47,8 @@
|
||||||
# Most of the time I want to use both screens at the same time and suspend it
|
# Most of the time I want to use both screens at the same time and suspend it
|
||||||
# regularily by closing the lid
|
# regularily by closing the lid
|
||||||
services.logind.lidSwitchDocked = config.services.logind.lidSwitch;
|
services.logind.lidSwitchDocked = config.services.logind.lidSwitch;
|
||||||
|
|
||||||
|
hardware.opengl.extraPackages = with pkgs; [
|
||||||
|
beignet # OpenCL for old intel GPU
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,10 +8,8 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
sbruder = {
|
sbruder = {
|
||||||
cpu.intel.enable = true;
|
|
||||||
docker.enable = true;
|
docker.enable = true;
|
||||||
games.enable = true;
|
games.enable = true;
|
||||||
gpu.amd.enable = true;
|
|
||||||
gui.enable = true;
|
gui.enable = true;
|
||||||
media-proxy.enable = true;
|
media-proxy.enable = true;
|
||||||
restic = {
|
restic = {
|
||||||
|
@ -20,7 +18,6 @@
|
||||||
"/data"
|
"/data"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
ssd.enable = true;
|
|
||||||
unfree.allowSoftware = true;
|
unfree.allowSoftware = true;
|
||||||
wireguard.home = {
|
wireguard.home = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
<nixos-hardware/common/cpu/intel>
|
||||||
|
<nixos-hardware/common/pc/ssd>
|
||||||
];
|
];
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
|
@ -27,6 +29,7 @@
|
||||||
"/" = {
|
"/" = {
|
||||||
device = "/dev/disk/by-uuid/024e31ab-aa98-4070-95be-7980043541ac";
|
device = "/dev/disk/by-uuid/024e31ab-aa98-4070-95be-7980043541ac";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
|
options = [ "discard" "noatime" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"/boot" = {
|
"/boot" = {
|
||||||
|
@ -50,4 +53,16 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||||
|
|
||||||
|
# GPU
|
||||||
|
hardware.opengl.extraPackages = with pkgs; [
|
||||||
|
amdvlk
|
||||||
|
rocm-opencl-icd
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
clinfo
|
||||||
|
radeontop
|
||||||
|
rocm-smi
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./intel.nix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
let
|
|
||||||
cfg = config.sbruder.cpu.intel;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.sbruder.cpu.intel.enable = lib.mkEnableOption "intel cpu configuration";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
hardware.cpu.intel.updateMicrocode = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -34,11 +34,9 @@ in
|
||||||
# All modules are imported but non-essential modules are activated by
|
# All modules are imported but non-essential modules are activated by
|
||||||
# configuration options
|
# configuration options
|
||||||
imports = [
|
imports = [
|
||||||
./cpu
|
|
||||||
./cups.nix
|
./cups.nix
|
||||||
./docker.nix
|
./docker.nix
|
||||||
./fonts.nix
|
./fonts.nix
|
||||||
./gpu
|
|
||||||
./grub.nix
|
./grub.nix
|
||||||
./gui.nix
|
./gui.nix
|
||||||
./initrd-ssh.nix
|
./initrd-ssh.nix
|
||||||
|
@ -52,7 +50,6 @@ in
|
||||||
./pulseaudio.nix
|
./pulseaudio.nix
|
||||||
./restic.nix
|
./restic.nix
|
||||||
./secrets.nix
|
./secrets.nix
|
||||||
./ssd.nix
|
|
||||||
./ssh.nix
|
./ssh.nix
|
||||||
./tools.nix
|
./tools.nix
|
||||||
./udev.nix
|
./udev.nix
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
let
|
|
||||||
cfg = config.sbruder.gpu.amd;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.sbruder.gpu.amd.enable = lib.mkEnableOption "amd gpu configuration";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
hardware.opengl.extraPackages = with pkgs; [
|
|
||||||
amdvlk
|
|
||||||
rocm-opencl-icd
|
|
||||||
];
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
clinfo
|
|
||||||
radeontop
|
|
||||||
rocm-smi
|
|
||||||
];
|
|
||||||
|
|
||||||
# force RGB otput for HDMI (otherwise the default is YCbCr)
|
|
||||||
# see https://gitlab.freedesktop.org/drm/amd/-/issues/476
|
|
||||||
#boot.kernelPatches = [
|
|
||||||
# {
|
|
||||||
# name = "force-rgb";
|
|
||||||
# patch = pkgs.fetchpatch {
|
|
||||||
# url = "https://gitlab.freedesktop.org/drm/amd/uploads/99b3664a49ec759075bde5c454e1d7c2/0001-force-rgb.patch";
|
|
||||||
# sha256 = "03dhnlxx9vlj1x8izh3c3j4r9s75q47nx8kf6mbdxqfy3cj96mjm";
|
|
||||||
# };
|
|
||||||
# }
|
|
||||||
#];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
{ lib, ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./amd.nix
|
|
||||||
./intel.nix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
let
|
|
||||||
cfg = config.sbruder.gpu.intel;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.sbruder.gpu.intel.enable = lib.mkEnableOption "intel gpu configuration";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
hardware.opengl.extraPackages = with pkgs; [
|
|
||||||
beignet
|
|
||||||
vaapiIntel
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
let
|
|
||||||
cfg = config.sbruder.ssd;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.sbruder.ssd = {
|
|
||||||
enable = lib.mkEnableOption "ssd optimisations";
|
|
||||||
fileSystems = lib.mkOption {
|
|
||||||
type = lib.types.listOf lib.types.str;
|
|
||||||
default = [ "/" ];
|
|
||||||
description = "List of file systems to apply optimisations to";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
fileSystems = builtins.listToAttrs
|
|
||||||
(builtins.map
|
|
||||||
(fs: {
|
|
||||||
name = fs;
|
|
||||||
value = {
|
|
||||||
options = [
|
|
||||||
"discard"
|
|
||||||
"noatime"
|
|
||||||
"nodiratime"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
})
|
|
||||||
cfg.fileSystems);
|
|
||||||
|
|
||||||
services.fstrim.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -23,6 +23,18 @@
|
||||||
"url": "https://github.com/krebs/krops/archive/c2fa48550f2bb46009b9cecdb9ac838dc402ce19.tar.gz",
|
"url": "https://github.com/krebs/krops/archive/c2fa48550f2bb46009b9cecdb9ac838dc402ce19.tar.gz",
|
||||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||||
},
|
},
|
||||||
|
"nixos-hardware": {
|
||||||
|
"branch": "master",
|
||||||
|
"description": "A collection of NixOS modules covering hardware quirks.",
|
||||||
|
"homepage": "",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixos-hardware",
|
||||||
|
"rev": "a0d8383c422f85f37fccee5af74b1cb4b52287d9",
|
||||||
|
"sha256": "08w3z19alqrnwpaxppcrlpyw7y5060xha81abhndaxryzvcld2hl",
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://github.com/nixos/nixos-hardware/archive/a0d8383c422f85f37fccee5af74b1cb4b52287d9.tar.gz",
|
||||||
|
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"branch": "nixos-20.09",
|
"branch": "nixos-20.09",
|
||||||
"description": "Nix Packages collection",
|
"description": "Nix Packages collection",
|
||||||
|
|
Loading…
Reference in a new issue