From 64401beff4a0b29841eebcc560ef53a82dc8231e Mon Sep 17 00:00:00 2001 From: Dave Gallant Date: Sat, 23 Jan 2021 02:26:54 -0500 Subject: [PATCH] Add hermes config --- flake.lock | 17 ++++++++++ flake.nix | 11 ++++++- machines/hermes/configuration.nix | 53 +++++++++++++++++++++++++++++++ machines/hermes/hardware.nix | 28 ++++++++++++++++ 4 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 machines/hermes/configuration.nix create mode 100644 machines/hermes/hardware.nix diff --git a/flake.lock b/flake.lock index 1b67497..32f790b 100644 --- a/flake.lock +++ b/flake.lock @@ -21,6 +21,22 @@ "type": "github" } }, + "nixos-hardware": { + "locked": { + "lastModified": 1611383797, + "narHash": "sha256-FIpG2f4+d9UsXCogBTswoPjD/aWZ3dvV5TZjqlL4gyM=", + "owner": "NixOS", + "repo": "nixos-hardware", + "rev": "a0d8383c422f85f37fccee5af74b1cb4b52287d9", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "master", + "repo": "nixos-hardware", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1611179033, @@ -71,6 +87,7 @@ "root": { "inputs": { "home-manager": "home-manager", + "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs", "nixpkgs-master": "nixpkgs-master", "nixpkgs-unstable": "nixpkgs-unstable" diff --git a/flake.nix b/flake.nix index 39e1bb6..197701c 100644 --- a/flake.nix +++ b/flake.nix @@ -7,9 +7,10 @@ nixpkgs.url = "github:NixOS/nixpkgs/nixos-20.09"; nixpkgs-master.url = "github:NixOS/nixpkgs"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; + nixos-hardware.url = github:NixOS/nixos-hardware/master; }; - outputs = { self, home-manager, nixpkgs, nixpkgs-master, nixpkgs-unstable }: { + outputs = { self, home-manager, nixpkgs, nixpkgs-master, nixpkgs-unstable, nixos-hardware }: { nixosConfigurations = let defaultModules = [ home-manager.nixosModules.home-manager @@ -53,6 +54,14 @@ ./machines/hephaestus/hardware.nix ] ++ defaultModules; }; + hermes = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + nixos-hardware.nixosModules.lenovo-thinkpad-t480s + ./machines/hermes/configuration.nix + ./machines/hermes/hardware.nix + ] ++ defaultModules; + }; }; }; } diff --git a/machines/hermes/configuration.nix b/machines/hermes/configuration.nix new file mode 100644 index 0000000..adc81a1 --- /dev/null +++ b/machines/hermes/configuration.nix @@ -0,0 +1,53 @@ +{ config, pkgs, ... }: + +{ + imports = [ ./hardware.nix ]; + + # Use the systemd-boot EFI boot loader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "hermes"; # Define your hostname. + + # The global useDHCP flag is deprecated, therefore explicitly set to false here. + # Per-interface useDHCP will be mandatory in the future, so this generated config + # replicates the default behaviour. + networking.useDHCP = false; + networking.interfaces.wlp61s0.useDHCP = true; + + # Select internationalisation properties. + i18n.defaultLocale = "en_US.UTF-8"; + console = { + font = "Lat2-Terminus16"; + keyMap = "us"; + }; + + # Enable the GNOME 3 Desktop Environment. + services.xserver.enable = true; + services.xserver.displayManager.gdm.enable = true; + services.xserver.desktopManager.gnome3.enable = true; + + # Enable CUPS to print documents. + services.printing.enable = true; + + # Enable sound. + sound.enable = true; + + # Enable 32bit for steam + hardware.pulseaudio.enable = true; + hardware.opengl.driSupport32Bit = true; + hardware.opengl.extraPackages32 = with pkgs.pkgsi686Linux; [ libva ]; + hardware.pulseaudio.support32Bit = true; + + virtualisation.docker.enable = true; + + programs.gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; + + # Open ports in the firewall. + networking.firewall.enable = true; + +} + diff --git a/machines/hermes/hardware.nix b/machines/hermes/hardware.nix new file mode 100644 index 0000000..94bf8ba --- /dev/null +++ b/machines/hermes/hardware.nix @@ -0,0 +1,28 @@ +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/e39690f0-4026-4571-969f-493efa0d1c96"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/B2C8-621E"; + fsType = "vfat"; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/0933f280-888d-4eff-9274-a515bcccca4e"; } + ]; + + powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; +}