refactor(wpcarro/nixos): Define shared nopn.nix module

Shared between `ava` and `tarasco`. Also define `lib/default.nix` to share
utility functions like `usermod` between NixOS configurations.

Change-Id: I65b8d37520426e164c9d5f722bee4731a3c6e641
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5942
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
This commit is contained in:
William Carroll 2022-07-05 09:43:52 -07:00 committed by wpcarro
parent cd5fa69897
commit 33f6419d7e
7 changed files with 66 additions and 78 deletions

View file

@ -0,0 +1,5 @@
{ depot, ... }:
{
usermod = name: depot.path.origSrc + ("/users/wpcarro/nixos/modules/${name}");
}

View file

@ -3,6 +3,7 @@
let
inherit (depot.users) wpcarro;
inherit (depot.users.wpcarro.lib) usermod;
wpcarrosEmacs = wpcarro.emacs.nixos {
load = [ ./ava.el ];
@ -15,7 +16,9 @@ let
};
in
{
imports = [ ./hardware.nix ];
imports = [
(usermod "hardware/nopn.nix")
];
# Use the TVL binary cache
tvl.cache.enable = true;

View file

@ -1,31 +0,0 @@
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{
device = "/dev/disk/by-label/NIXROOT";
fsType = "ext4";
};
fileSystems."/boot" =
{
device = "/dev/disk/by-label/NIXBOOT";
fsType = "vfat";
};
swapDevices = [ ];
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
# high-resolution display
hardware.video.hidpi.enable = lib.mkDefault true;
}

View file

@ -3,8 +3,7 @@
let
inherit (depot.users) wpcarro;
usermod = name: depot.path.origSrc + ("/users/wpcarro/nixos/modules/${name}");
inherit (depot.users.wpcarro.lib) usermod;
wpcarrosEmacs = wpcarro.emacs.nixos {
load = [ ./marcus.el ];

View file

@ -0,0 +1,52 @@
# I tried looking up the manufacturer, product name, and version, but
# `dmidecode -t system` reported "To be filled by O.E.M." for each of these
# fields.
{ config, lib, pkgs, modulesPath, ... }:
{
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
fileSystems."/" = {
device = "/dev/disk/by-label/NIXROOT";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-label/NIXBOOT";
fsType = "vfat";
};
boot = {
initrd.availableKernelModules = [
"xhci_pci"
"ehci_pci"
"ahci"
"usb_storage"
"usbhid"
"sd_mod"
];
initrd.kernelModules = [ ];
kernelModules = [ "kvm-intel" ];
extraModulePackages = [ ];
# Can verify these settings with:
# $ lsmod
# ...or:
# $ cat /etc/modprobe.d/nixos.conf
blacklistedKernelModules = [
# Disabling this buggy network driver (and preferring ethernet) to prevent
# my machine from becoming unresponsive.
# TODO(wpcarro): Consider replacing this module with this fork (if NixOS
# isn't already): https://github.com/tomaspinho/rtl8821ce
"rtw88_8821ce"
];
};
swapDevices = [ ];
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
# high-resolution display
hardware.video.hidpi.enable = lib.mkDefault true;
}

View file

@ -3,6 +3,7 @@
let
inherit (depot.users) wpcarro;
inherit (depot.users.wpcarro.lib) usermod;
wpcarrosEmacs = wpcarro.emacs.nixos {
load = [ ./tarasco.el ];
@ -15,7 +16,9 @@ let
};
in
{
imports = [ ./hardware.nix ];
imports = [
(usermod "hardware/nopn.nix")
];
# Use the TVL binary cache
tvl.cache.enable = true;
@ -27,25 +30,6 @@ in
# Support IP forwarding to use this device as a Tailscale exit node.
kernel.sysctl."net.ipv4.ip_forward" = true;
kernel.sysctl."net.ipv6.conf.all.forwarding" = true;
kernelModules = [
"kvm-intel"
];
# Can verify these settings with:
# $ lsmod
# ...or:
# $ cat /etc/modprobe.d/nixos.conf
blacklistedKernelModules = [
# Disabling this buggy network driver (and preferring ethernet) to prevent
# my machine from becoming unresponsive.
# TODO(wpcarro): Consider replacing this module with this fork (if NixOS
# isn't already): https://github.com/tomaspinho/rtl8821ce
"rtw88_8821ce"
];
initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
initrd.kernelModules = [ ];
extraModulePackages = [ ];
};

View file

@ -1,24 +0,0 @@
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[
(modulesPath + "/installer/scan/not-detected.nix")
];
fileSystems."/" = {
device = "/dev/disk/by-label/NIXROOT";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-label/NIXBOOT";
fsType = "vfat";
};
swapDevices = [ ];
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
# high-resolution display
hardware.video.hidpi.enable = lib.mkDefault true;
}