Modularize hardware config
This commit is contained in:
parent
e5e23373da
commit
8e9ee08e09
6 changed files with 30 additions and 69 deletions
|
|
@ -1,8 +1,11 @@
|
||||||
{ pkgs, config, ... }:
|
{ pkgs, config, lib, modulesPath, ... }:
|
||||||
let
|
let
|
||||||
username = config.conf.username;
|
username = config.conf.username;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
# Bootloader.
|
# Bootloader.
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
@ -115,4 +118,10 @@ in
|
||||||
|
|
||||||
swapDevices =
|
swapDevices =
|
||||||
[{ device = "/dev/disk/by-label/SWAP"; }];
|
[{ device = "/dev/disk/by-label/SWAP"; }];
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.${config.conf.cpu}.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
services.fstrim.enable = lib.mkDefault true;
|
||||||
|
nix.settings.auto-optimise-store = true;
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
{ config, lib, modulesPath, ... }:
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[
|
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
|
||||||
# still possible to use this option, but it's recommended to use it in conjunction
|
|
||||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.enp15s0.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.wlp16s0.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
services.fstrim.enable = lib.mkDefault true;
|
|
||||||
nix.settings.auto-optimise-store = true;
|
|
||||||
}
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../../modules/conf.nix
|
../../modules/conf.nix
|
||||||
./dsdt.nix
|
|
||||||
./firmware.nix
|
|
||||||
];
|
];
|
||||||
conf = {
|
conf = {
|
||||||
monitor = "eDP-1";
|
monitor = "eDP-1";
|
||||||
|
|
@ -24,9 +22,4 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware.bluetooth.enable = true;
|
|
||||||
hardware.bluetooth.powerOnBoot = true;
|
|
||||||
|
|
||||||
# for hyprdock
|
|
||||||
services.acpid.enable = true;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,24 +1,15 @@
|
||||||
{ config, lib, modulesPath, ... }:
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
./dsdt.nix
|
||||||
|
./firmware.nix
|
||||||
];
|
];
|
||||||
|
# special hardware modules
|
||||||
boot.initrd.kernelModules = [ ];
|
# TODO: needed?
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
hardware.bluetooth.enable = true;
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
hardware.bluetooth.powerOnBoot = true;
|
||||||
# still possible to use this option, but it's recommended to use it in conjunction
|
# for hyprdock
|
||||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
services.acpid.enable = true;
|
||||||
networking.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.enp15s0.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.wlp16s0.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
services.fstrim.enable = lib.mkDefault true;
|
|
||||||
nix.settings.auto-optimise-store = true;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,7 @@
|
||||||
{ pkgs, config, lib, modulesPath, ... }:
|
{ pkgs, lib, ... }:
|
||||||
{
|
{
|
||||||
imports =
|
# TODO: needed?
|
||||||
[
|
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
fileSystems."/drive2" =
|
fileSystems."/drive2" =
|
||||||
{
|
{
|
||||||
|
|
@ -20,19 +14,6 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
|
||||||
# still possible to use this option, but it's recommended to use it in conjunction
|
|
||||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.enp15s0.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.wlp16s0.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
services.fstrim.enable = lib.mkDefault true;
|
|
||||||
nix.settings.auto-optimise-store = true;
|
|
||||||
|
|
||||||
virtualisation.virtualbox.host.enable = true;
|
virtualisation.virtualbox.host.enable = true;
|
||||||
|
|
||||||
# enable hardware acceleration and rocm
|
# enable hardware acceleration and rocm
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,15 @@
|
||||||
{ lib, config, pkgs, ... }: {
|
{ lib, config, pkgs, ... }: {
|
||||||
options.conf = {
|
options.conf = {
|
||||||
|
cpu = lib.mkOption {
|
||||||
|
# TODO: how to enable arm?
|
||||||
|
default = "amd";
|
||||||
|
type = with lib.types; (enum [ "amd" "intel" ]);
|
||||||
|
example = "intel";
|
||||||
|
description = ''
|
||||||
|
cpu microcode.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
monitor = lib.mkOption {
|
monitor = lib.mkOption {
|
||||||
default = "";
|
default = "";
|
||||||
example = "eDP-1";
|
example = "eDP-1";
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue