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:
		
							parent
							
								
									cd5fa69897
								
							
						
					
					
						commit
						33f6419d7e
					
				
					 7 changed files with 66 additions and 78 deletions
				
			
		|  | @ -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; | ||||
|  |  | |||
|  | @ -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; | ||||
| } | ||||
|  | @ -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 ]; | ||||
|  |  | |||
							
								
								
									
										52
									
								
								users/wpcarro/nixos/modules/hardware/nopn.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								users/wpcarro/nixos/modules/hardware/nopn.nix
									
										
									
									
									
										Normal 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; | ||||
| } | ||||
|  | @ -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 = [ ]; | ||||
|   }; | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -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; | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue