back to nix

This commit is contained in:
Grisha Shipunov 2024-12-31 17:13:04 +01:00
parent 6fed8f89f7
commit 091b092b2e
10 changed files with 92 additions and 225 deletions

View file

@ -1,16 +1,14 @@
{ pkgs, config, ... }: {
boot.initrd.kernelModules = [ "amdgpu" ];
hardware.opengl = {
driSupport = true;
driSupport32Bit = true;
extraPackages = with pkgs; [
rocm-opencl-icd
rocm-opencl-runtime
amdvlk
];
extraPackages32 = with pkgs; [
driversi686Linux.amdvlk
];
};
# hardware.graphics = {
# extraPackages = with pkgs; [
# rocm-opencl-icd
# rocm-opencl-runtime
# amdvlk
# ];
# extraPackages32 = with pkgs; [
# driversi686Linux.amdvlk
# ];
# };
}

View file

@ -3,12 +3,12 @@
./amd.nix
./amd-new-pstate.nix
./hardware-configuration.nix
./irc.nix
# ./irc.nix
./stateful-network.nix
./network.nix
./network-vpns.nix
./secrets.nix
./secure-boot.nix
# ./network.nix
# ./network-vpns.nix
# ./secrets.nix
# ./secure-boot.nix
./zfs.nix
];
@ -31,7 +31,7 @@
supportedLocales = [ "all" ];
};
users.users.grue = {
users.users."0xa" = {
extraGroups = [
"wheel"
"video"
@ -41,7 +41,7 @@
"libvirtd"
];
group = "users";
home = "/home/grue";
home = "/home/0xa";
isNormalUser = true;
uid = 1000;
};
@ -60,6 +60,6 @@
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.05"; # Did you read the comment?
system.stateVersion = "24.11"; # Did you read the comment?
}

View file

@ -9,86 +9,56 @@
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
boot.zfs.extraPools = [ "zpool" ];
fileSystems."/" =
{
device = "toasterpool/nixos/root";
{ device = "zpool/root";
fsType = "zfs";
options = [ "zfsutil" ];
options = [ "zfsutil" ];
};
fileSystems."/nix" =
{
device = "toasterpool/nixos/nix";
{ device = "zpool/nix";
fsType = "zfs";
options = [ "zfsutil" ];
};
fileSystems."/var" =
{
device = "toasterpool/userdata/var";
fsType = "zfs";
options = [ "zfsutil" ];
};
fileSystems."/var/lib" =
{
device = "toasterpool/userdata/var/lib";
fsType = "zfs";
options = [ "zfsutil" ];
};
fileSystems."/var/log" =
{
device = "toasterpool/userdata/var/log";
fsType = "zfs";
options = [ "zfsutil" ];
options = [ "zfsutil" ];
};
fileSystems."/home" =
{
device = "toasterpool/userdata/home";
{ device = "zpool/data/home";
fsType = "zfs";
options = [ "zfsutil" ];
options = [ "zfsutil" ];
};
fileSystems."/home/grue" =
{
device = "toasterpool/userdata/home/grue";
fileSystems."/var" =
{ device = "zpool/data/var";
fsType = "zfs";
options = [ "zfsutil" ];
options = [ "zfsutil" ];
};
fileSystems."/boot" =
{
device = "/dev/disk/by-uuid/7663-6239";
{ device = "/dev/disk/by-uuid/A170-F83D";
fsType = "vfat";
options = [ "X-mount.mkdir" ];
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices = [
{
device = "/dev/disk/by-id/nvme-eui.ace42e002621ff2b2ee4ac0000000001-part2";
randomEncryption = true;
}
];
swapDevices =
[ { device = "/dev/disk/by-partuuid/8a544c8b-1a49-481b-a685-253ef7478b2c";
randomEncryption = true;}
];
# 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.enp1s0f0.useDHCP = lib.mkDefault true;
#networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
networking.interfaces.wlan0.useDHCP = lib.mkDefault true;
# networking.interfaces.enp1s0f0.useDHCP = lib.mkDefault true;
# networking.interfaces.enp5s0f4u1u1.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
# services.fprintd.enable = true;
}

View file

@ -1,5 +1,5 @@
{ pkgs, ... }: {
users.users.grue.extraGroups = [ "networkmanager" ];
users.users."0xa".extraGroups = [ "networkmanager" ];
networking = {
hostName = "toaster";

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: {
{ pkgs, lib, config, ... }: {
services.fstrim.enable = true;
services.zfs = {
autoSnapshot.enable = true;
@ -10,7 +10,19 @@
};
networking.hostId = "dca22577";
boot = {
kernelPackages = pkgs.zfs.latestCompatibleLinuxPackages;
kernelPackages = let
zfsCompatibleKernelPackages = lib.filterAttrs (
name: kernelPackages:
(builtins.match "linux_[0-9]+_[0-9]+" name) != null
&& (builtins.tryEval kernelPackages).success
&& (!kernelPackages.${config.boot.zfs.package.kernelModuleAttribute}.meta.broken)
) pkgs.linuxKernel.packages;
latestKernelPackage = lib.last (
lib.sort (a: b: (lib.versionOlder a.kernel.version b.kernel.version)) (
builtins.attrValues zfsCompatibleKernelPackages
)
);
in latestKernelPackage;
supportedFilesystems = [ "zfs" ];
kernelParams = [ "nohibernate" ];
plymouth.enable = false;