From ca0c093ecd515b69e652ec0406800a997566fe62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonardo=20Eug=C3=AAnio?= Date: Mon, 28 Oct 2024 12:02:31 -0300 Subject: [PATCH 1/2] monolith: extract amdgpu config --- hosts/monolith/amdgpu.nix | 37 ++++++++++++++++++++++++++++++++++++ hosts/monolith/default.nix | 20 ++----------------- hosts/monolith/undervolt.nix | 18 ------------------ 3 files changed, 39 insertions(+), 36 deletions(-) create mode 100644 hosts/monolith/amdgpu.nix delete mode 100644 hosts/monolith/undervolt.nix diff --git a/hosts/monolith/amdgpu.nix b/hosts/monolith/amdgpu.nix new file mode 100644 index 0000000..c02af7e --- /dev/null +++ b/hosts/monolith/amdgpu.nix @@ -0,0 +1,37 @@ +{ pkgs, ... }: +let + undervoltGpu = pkgs.writeShellScript "undervolt-gpu" '' + set -xe + cd $1 + echo "manual" > power_dpm_force_performance_level + echo "1" > pp_power_profile_mode + test -e pp_od_clk_voltage + echo "vo -120" > pp_od_clk_voltage + echo "c" > pp_od_clk_voltage + ''; +in +{ + boot.initrd.kernelModules = [ "amdgpu" ]; + boot.kernelParams = [ + "amdgpu.dcdebugmask=0x10" # amdgpu undervolting bug + "video=DP-1:1920x1080@144" + "amdgpu.ppfeaturemask=0xfffd7fff" # enable undervolting + ]; + + hardware.opengl.driSupport = true; + # # For 32 bit applications + hardware.opengl.driSupport32Bit = true; + + hardware.opengl.extraPackages = with pkgs; [ + libva + libvdpau + vaapiVdpau + rocm-opencl-icd + rocm-opencl-runtime + rocmPackages.rocm-smi + ]; + + services.udev.extraRules = '' + ACTION=="add", SUBSYSTEM=="hwmon", ATTR{name}=="amdgpu", ATTR{power1_cap}="186000000", RUN+="${undervoltGpu} %S%p/device" + ''; +} diff --git a/hosts/monolith/default.nix b/hosts/monolith/default.nix index ff2b193..962addc 100644 --- a/hosts/monolith/default.nix +++ b/hosts/monolith/default.nix @@ -23,7 +23,7 @@ in imports = [ (modulesPath + "/installer/scan/not-detected.nix") ./partition.nix - ./undervolt.nix + ./amdgpu.nix ]; boot.initrd.availableKernelModules = [ "nvme" @@ -52,28 +52,12 @@ in "amdgpu" "zenpower" ]; - boot.kernelParams = [ - "amdgpu.dcdebugmask=0x10" # amdgpu undervolting bug - "video=DP-1:1920x1080@144" - ]; + systemd.sleep.extraConfig = '' HibernateDelaySec=30s SuspendState=mem ''; - hardware.opengl.driSupport = true; - # # For 32 bit applications - hardware.opengl.driSupport32Bit = true; - - hardware.opengl.extraPackages = with pkgs; [ - libva - libvdpau - vaapiVdpau - rocm-opencl-icd - rocm-opencl-runtime - rocmPackages.rocm-smi - ]; - fileSystems."/mnt/old" = { device = "/dev/disk/by-label/BTRFS_ROOT"; fsType = "btrfs"; diff --git a/hosts/monolith/undervolt.nix b/hosts/monolith/undervolt.nix deleted file mode 100644 index 9f60aee..0000000 --- a/hosts/monolith/undervolt.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ pkgs, ... }: -let - undervoltGpu = pkgs.writeShellScript "undervolt-gpu" '' - set -xe - cd $1 - echo "manual" > power_dpm_force_performance_level - echo "1" > pp_power_profile_mode - test -e pp_od_clk_voltage - echo "vo -120" > pp_od_clk_voltage - echo "c" > pp_od_clk_voltage - ''; -in -{ - boot.kernelParams = [ "amdgpu.ppfeaturemask=0xfffd7fff" ]; - services.udev.extraRules = '' - ACTION=="add", SUBSYSTEM=="hwmon", ATTR{name}=="amdgpu", ATTR{power1_cap}="186000000", RUN+="${undervoltGpu} %S%p/device" - ''; -} From 99bb1e74c73494a0a2f21e6b074f2f3c3e908123 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonardo=20Eug=C3=AAnio?= Date: Wed, 30 Oct 2024 01:44:43 -0300 Subject: [PATCH 2/2] phantom: add factorio server --- hosts/phantom/default.nix | 1 + hosts/phantom/factorio-server.nix | 24 ++++++++++++++++++++++++ secrets/phantom-factorio-settings.age | Bin 0 -> 847 bytes secrets/secrets.nix | 1 + 4 files changed, 26 insertions(+) create mode 100644 hosts/phantom/factorio-server.nix create mode 100644 secrets/phantom-factorio-settings.age diff --git a/hosts/phantom/default.nix b/hosts/phantom/default.nix index e5570ee..6a246e4 100644 --- a/hosts/phantom/default.nix +++ b/hosts/phantom/default.nix @@ -21,6 +21,7 @@ ./invidious.nix ./davi.nix ./goofs.nix + ./factorio-server.nix ]; networking.hostName = "phantom"; diff --git a/hosts/phantom/factorio-server.nix b/hosts/phantom/factorio-server.nix new file mode 100644 index 0000000..a4b13b5 --- /dev/null +++ b/hosts/phantom/factorio-server.nix @@ -0,0 +1,24 @@ +{ config, pkgs, ... }: +{ + services.factorio = { + enable = true; + package = pkgs.unstable.factorio-headless.overrideAttrs (_: rec { + version = "2.0.12"; + src = pkgs.fetchurl { + name = "factorio_headless_x64-${version}.tar.xz"; + url = "https://www.factorio.com/get-download/${version}/headless/linux64"; + hash = "sha256-0vgg5eJ6ZEFO0TUixNsByCs8YyPGOArgqnXbT5RIjTE="; + }; + }); + public = true; + lan = true; + openFirewall = true; + admins = [ "lelgenio" ]; + extraSettingsFile = config.age.secrets.phantom-factorio-settings.path; + }; + + age.secrets.phantom-factorio-settings = { + file = ../../secrets/phantom-factorio-settings.age; + mode = "777"; + }; +} diff --git a/secrets/phantom-factorio-settings.age b/secrets/phantom-factorio-settings.age new file mode 100644 index 0000000000000000000000000000000000000000..77eb8bddbb17ce598bbd018de5232c281bc213e4 GIT binary patch literal 847 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!*`Do#{zDlf0_NaqSEF>&$JcCGNy z&n$2X3P?#TaHv&_x14AR!;GS5lX&&YHSb@UDjFD(nJbT4rFs-Qc zHFe4e&eYCKb20Xf^7J*!FR#=tOtVM~wlEJU<1+QNFf?>_O)f6?Eceed@=Pl%$%^nu zNzeAvcQG(`b*ZY12uvxdFfTB0^3e7U$ck{*Hcu-EDNe0O_l*jQu;k*>)zww7^zigc zcC7T$cTF@*cJy{BD)I7-Fe&p5@pIEpstgMB%&n*71%&$Rn^tA#L&$4QB zy@}&2VLov>){?RLtkr#Ufk$lnK8sIc6V1M{wPuU!T7Hj;EQXI6`}bL={+TJ3XQ#=P z?R#&@*Py@LvCa9NYlAn`efAQT-eux>d;V!}e- literal 0 HcmV?d00001 diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 7b5fdd8..65f495a 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -12,6 +12,7 @@ in "monolith-forgejo-runner-token.age".publicKeys = [ main_ssh_public_key ]; "lelgenio-cachix.age".publicKeys = [ main_ssh_public_key ]; "monolith-nix-serve-privkey.age".publicKeys = [ main_ssh_public_key ]; + "phantom-factorio-settings.age".publicKeys = [ main_ssh_public_key ]; "phantom-nextcloud.age".publicKeys = [ main_ssh_public_key ]; "phantom-writefreely.age".publicKeys = [ main_ssh_public_key ]; "phantom-renawiki.age".publicKeys = [ main_ssh_public_key ];