pumpkin: adb: enable
[julm/julm-nix.git] / hosts / oignon / hardware.nix
index 2871a03c76b713071d8424ed6fbdddeb31d1e1df..ab3cad22fa8ef73d1321439bf29b950d704c3c63 100644 (file)
@@ -1,71 +1,90 @@
-{ config, lib, pkgs, hostName, ... }:
+{ pkgs, hostName, ... }:
 {
-imports = [
-  ../../nixos/profiles/acpid.nix
-  ../../nixos/profiles/hardware/thinkpad.nix
-  ../../nixos/profiles/zfs.nix
-  ../../nixos/profiles/zramSwap.nix
-];
+  imports = [
+    ../../nixos/profiles/hardware/X201.nix
+    ../../nixos/profiles/zfs.nix
+    ../../nixos/profiles/zramSwap.nix
+  ];
 
-/*
-boot.loader.efi = {
-  canTouchEfiVariables = true;
-  efiSysMountPoint = "/boot/efi";
-};
-*/
-boot.loader.grub = {
-  enable  = true;
-  version = 2;
-  device  = "/dev/disk/by-id/ata-Samsung_SSD_850_PRO_128GB_S1SMNSAFC36436X";
-  configurationLimit = 3;
+  # Setting the machine-id avoids to reencrypt all credentials
+  # when reinstalling NixOS on a new drive.
+  # Manually generated with : uuidgen | tr -d -
+  environment.etc.machine-id.source = ./machine-id.clear;
 
-  #zfsSupport = true;
-  #efiSupport = true;
-  #enableCryptodisk = true;
-};
+  # The 32-bit host id of the host, formatted as 8 hexadecimal characters.
+  # You should try to make this id unique among your hosts.
+  # Manually generated with : uuidgen | head -c8
+  networking.hostId = "ce53d0c3";
 
-fileSystems."/boot" =
-  { device = "/dev/disk/by-partlabel/${hostName}_ssd_boot";
+  /*
+    boot.loader.efi = {
+    canTouchEfiVariables = true;
+    efiSysMountPoint = "/boot/efi";
+    };
+  */
+  boot.loader.grub = {
+    enable = true;
+    memtest86.enable = true;
+    devices = [
+      "/dev/disk/by-id/ata-Samsung_SSD_850_PRO_128GB_S1SMNSAFC36436X"
+    ];
+    configurationLimit = 16;
+
+    #zfsSupport = true;
+    #efiSupport = true;
+    #enableCryptodisk = true;
+  };
+  boot.zfs.requestEncryptionCredentials = [ hostName ];
+
+  hardware.enableRedistributableFirmware = true;
+
+  # Note that gobi_loader -2000 has to be rerun if the SIM is hot swapped
+  services.udev.extraRules = ''
+    ACTION=="add", SUBSYSTEM=="tty", KERNEL=="ttyUSB*", ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9204", RUN+="${pkgs.gobi_loader}/lib/udev/gobi_loader -2000 $env{DEVNAME} /home/julm/files/thinkpad-x201/gobi"
+  '';
+
+  fileSystems."/boot" = {
+    device = "/dev/disk/by-partlabel/${hostName}_ssd_boot";
     fsType = "ext2";
   };
-fileSystems."/boot/efi" =
-  { device = "/dev/disk/by-partlabel/${hostName}_ssd_efi";
+  fileSystems."/boot/efi" = {
+    device = "/dev/disk/by-partlabel/${hostName}_ssd_efi";
     fsType = "vfat";
   };
-swapDevices = [
-  { device = "/dev/disk/by-partlabel/${hostName}_ssd_swap";
-    randomEncryption = {
-      enable = true;
-      cipher = "aes-xts-plain64";
-      source = "/dev/urandom";
-    };
-  }
-];
-
-# The 32-bit host id of the host, formatted as 8 hexadecimal characters.
-# You should try to make this id unique among your hosts.
-# Manually generated with : head -c4 /dev/urandom | od -A none -t x4 | cut -d ' ' -f 2
-networking.hostId = "ce53d0c3";
-
-boot.supportedFilesystems = [ "ntfs" "vfat" ];
-boot.extraModulePackages = [
-  #config.boot.kernelPackages.exfat-nofuse
-];
+  swapDevices = [
+    {
+      device = "/dev/disk/by-partlabel/${hostName}_ssd_swap";
+      randomEncryption = {
+        enable = true;
+        cipher = "aes-xts-plain64";
+        source = "/dev/urandom";
+      };
+    }
+  ];
 
-powerManagement.powertop.enable = true;
-#services.fprintd.enable = true;
+  boot.supportedFilesystems = [
+    "ntfs"
+    "vfat"
+  ];
 
-fileSystems."/" =
-  { device = "${hostName}/root";
+  fileSystems."/" = {
+    device = "${hostName}/root";
     fsType = "zfs";
   };
-fileSystems."/nix" =
-  { device = "${hostName}/nix";
+  fileSystems."/nix" = {
+    device = "${hostName}/nix";
     fsType = "zfs";
   };
-fileSystems."/var" =
-  { device = "${hostName}/var";
+  fileSystems."/var" = {
+    device = "${hostName}/var";
     fsType = "zfs";
   };
 
+  services.pipewire.jack.enable = true;
+
+  services.acpid = {
+    # Suspending not work well on this old computer.
+    lidEventCommands = "";
+  };
+
 }