about summary refs log tree commit diff stats
path: root/hosts/tiamat/hardware.nix
blob: d8e62af084b73e1d714bc2ce0ee98391c32768cf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
{
  modulesPath,
  pkgs,
  ...
}: {
  imports = [
    (modulesPath + "/installer/scan/not-detected.nix") # TODO: is this necessary?
  ];

  hardware = {
    #   opengl.extraPackages = with pkgs; [
    #     rocm-opencl-icd # open-cl
    #     amdvlk # or directly through mesa
    #     amd-media-driver # libva
    #   ];
    #
    #   # Force radv, TODO: is this logical?
    #   environment.variables.AMD_VULKAN_ICD = "RADV";

    opengl = {
      enable = true;
      extraPackages = with pkgs; [
        vaapiVdpau
        libvdpau-va-gl

        amdvlk # or directly through mesa
      ];
    };

    cpu.amd.updateMicrocode = true; # Why not?
    bluetooth = {
      enable = true;
      powerOnBoot = true;
    };
  };

  soispha = {
    hardware = {
      enable = true;
      moonlander = {
        enableFlashing = true;
      };
    };
    disks = {
      enable = true;
      disk = "/dev/disk/by-id/nvme-CT1000P5SSD8_21032C857568";
      ssd = true;
      swap = {
        uuid = "057b5041-6fee-4739-84a9-ade8f0f51519";
        resumeOffset = "533760";
      };
    };
  };

  boot = {
    kernelModules = ["kvm-amd"];

    kernelParams = [
      # Avoid loosing the Bluetooth controller to a sleep, from which it never wakes again
      "btusb.enable_autosuspend=n"
    ];

    initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"];
  };
}