summaryrefslogtreecommitdiff
path: root/host/hardware/athena.nix
diff options
context:
space:
mode:
Diffstat (limited to 'host/hardware/athena.nix')
-rw-r--r--host/hardware/athena.nix46
1 files changed, 41 insertions, 5 deletions
diff --git a/host/hardware/athena.nix b/host/hardware/athena.nix
index 824f5aa..1628202 100644
--- a/host/hardware/athena.nix
+++ b/host/hardware/athena.nix
@@ -1,14 +1,38 @@
{ config, lib, pkgs, modulesPath, ... }:
-{
+let
+ ivsc-firmware = with pkgs;
+ stdenv.mkDerivation rec {
+ pname = "ivsc-firmware";
+ version = "main";
+
+ src = pkgs.fetchFromGitHub {
+ owner = "intel";
+ repo = "ivsc-firmware";
+ rev = "10c214fea5560060d387fbd2fb8a1af329cb6232";
+ sha256 = "sha256-kEoA0yeGXuuB+jlMIhNm+SBljH+Ru7zt3PzGb+EPBPw=";
+
+ };
+
+ installPhase = ''
+ mkdir -p $out/lib/firmware/vsc/soc_a1_prod
+
+ cp firmware/ivsc_pkg_ovti01a0_0.bin $out/lib/firmware/vsc/soc_a1_prod/ivsc_pkg_ovti01a0_0_a1_prod.bin
+ cp firmware/ivsc_skucfg_ovti01a0_0_1.bin $out/lib/firmware/vsc/soc_a1_prod/ivsc_skucfg_ovti01a0_0_1_a1_prod.bin
+ cp firmware/ivsc_fw.bin $out/lib/firmware/vsc/soc_a1_prod/ivsc_fw_a1_prod.bin
+ '';
+ };
+in {
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
+ hardware.enableRedistributableFirmware = true;
+
boot = {
- initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "vmd" "nvme" "usb_storage" "sd_mod" ];
+ initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "vmd" "nvme" "usb_storage" "sd_mod" "i915" ];
initrd.kernelModules = [ "dm-snapshot" ];
kernelModules = [ "kvm-intel" "fuse" "uinput" ];
extraModulePackages = [ ];
- kernelParams = [ "nvidia-drm.modeset=1" ];
+ kernelParams = [ "nvidia-drm.modeset=1" "mem_sleep_default=deep" "i915.enable_psr=0" ];
loader = {
systemd-boot.enable = true;
@@ -44,6 +68,18 @@
networking.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
- hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
- hardware.ipu6 = { enable = true; platform = "ipu6ep"; };
+ hardware.cpu.intel.updateMicrocode = true;
+
+ hardware.ipu6 = {
+ enable = true;
+ platform = "ipu6ep";
+ };
+
+ hardware.firmware = [
+ ivsc-firmware
+ ];
+
+ environment.systemPackages = with pkgs; [
+ v4l-utils
+ ];
}