Compare commits

...

4 commits

Author SHA1 Message Date
Leonardo Eugênio 239802be49 update 2025-02-04 23:47:20 -03:00
Leonardo Eugênio bfe92e0ed9 flake: add nix-output-monitor 2025-02-04 23:46:58 -03:00
Leonardo Eugênio ed834c5013 Revert "amdgpu: update fan controller"
This reverts commit ffd977ef39.
2025-02-01 22:51:38 -03:00
Leonardo Eugênio 1b56af47cb Revert "amdgpu: remove manual fan control"
This reverts commit 1336203f52.
2025-02-01 22:19:20 -03:00
6 changed files with 116 additions and 28 deletions

View file

@ -209,11 +209,11 @@
]
},
"locked": {
"lastModified": 1737038063,
"narHash": "sha256-rMEuiK69MDhjz1JgbaeQ9mBDXMJ2/P8vmOYRbFndXsk=",
"lastModified": 1738148035,
"narHash": "sha256-KYOATYEwaKysL3HdHdS5kbQMXvzS4iPJzJrML+3TKAo=",
"owner": "nix-community",
"repo": "disko",
"rev": "bf0abfde48f469c256f2b0f481c6281ff04a5db2",
"rev": "18d0a984cc2bc82cf61df19523a34ad463aa7f54",
"type": "github"
},
"original": {
@ -481,11 +481,11 @@
]
},
"locked": {
"lastModified": 1737861961,
"narHash": "sha256-LIRtMvAwLGb8pBoamzgEF67oKlNPz4LuXiRPVZf+TpE=",
"lastModified": 1738466368,
"narHash": "sha256-PZhUjtvQZOH3PO0EYdTpQvcqkgkq1NkP2A6w9SPHYsk=",
"owner": "Mic92",
"repo": "nix-index-database",
"rev": "79b7b8eae3243fc5aa9aad34ba6b9bbb2266f523",
"rev": "46a8f5fc9552b776bfc5c5c96ea3bede33f68f52",
"type": "github"
},
"original": {
@ -504,11 +504,11 @@
"nixpkgs-24_11": "nixpkgs-24_11"
},
"locked": {
"lastModified": 1737201600,
"narHash": "sha256-JBh5+g8oQteQdQqbO07dGHBRQo/NGI61JPlTjdfQ1pk=",
"lastModified": 1737736848,
"narHash": "sha256-VrUfCXBXYV+YmQ2OvVTeML9EnmaPRtH+POrNIcJp6yo=",
"owner": "simple-nixos-mailserver",
"repo": "nixos-mailserver",
"rev": "ade37b2765032f83d2d4bd50b6204a40a4c05eb4",
"rev": "6b425d13f5a9d73cb63973d3609acacef4d1e261",
"type": "gitlab"
},
"original": {
@ -551,11 +551,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1737885589,
"narHash": "sha256-Zf0hSrtzaM1DEz8//+Xs51k/wdSajticVrATqDrfQjg=",
"lastModified": 1738680400,
"narHash": "sha256-ooLh+XW8jfa+91F1nhf9OF7qhuA/y1ChLx6lXDNeY5U=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "852ff1d9e153d8875a83602e03fdef8a63f0ecf8",
"rev": "799ba5bffed04ced7067a91798353d360788b30d",
"type": "github"
},
"original": {
@ -612,11 +612,11 @@
},
"nixpkgs_5": {
"locked": {
"lastModified": 1737885640,
"narHash": "sha256-GFzPxJzTd1rPIVD4IW+GwJlyGwBDV1Tj5FLYwDQQ9sM=",
"lastModified": 1738574474,
"narHash": "sha256-rvyfF49e/k6vkrRTV4ILrWd92W+nmBDfRYZgctOyolQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4e96537f163fad24ed9eb317798a79afc85b51b7",
"rev": "fecfeb86328381268e29e998ddd3ebc70bbd7f7c",
"type": "github"
},
"original": {
@ -922,11 +922,11 @@
"nixpkgs": "nixpkgs_6"
},
"locked": {
"lastModified": 1737483750,
"narHash": "sha256-5An1wq5U8sNycOBBg3nsDDgpwBmR9liOpDGlhliA6Xo=",
"lastModified": 1738680491,
"narHash": "sha256-8X7tR3kFGkE7WEF5EXVkt4apgaN85oHZdoTGutCFs6I=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "f2cc121df15418d028a59c9737d38e3a90fbaf8f",
"rev": "64dbb922d51a42c0ced6a7668ca008dded61c483",
"type": "github"
},
"original": {
@ -937,11 +937,11 @@
},
"vpsadminos": {
"locked": {
"lastModified": 1737943400,
"narHash": "sha256-2BqPlxdK4vvZYtYL+wVhch+U9/ZJrue5/t+VJsWqc+8=",
"lastModified": 1738687007,
"narHash": "sha256-cCFjJCknS2eVxCo6A1H+cffq0+7m0s18wE//bQDS28g=",
"owner": "vpsfreecz",
"repo": "vpsadminos",
"rev": "bced91cd0b47d61e648d1c254351206a3395c08a",
"rev": "c9040809be5e730ff5488ec0c9ecc9cd46c75df8",
"type": "github"
},
"original": {

View file

@ -1,4 +1,4 @@
{ pkgs, ... }:
{ pkgs, lib, ... }:
let
undervoltGpu = pkgs.writeShellScript "undervolt-gpu" ''
set -xe
@ -17,6 +17,17 @@ in
"amdgpu.ppfeaturemask=0xfffd7fff" # enable undervolting
];
systemd.services.amd-fan-control = {
script = ''
${lib.getExe pkgs.amd-fan-control} /sys/class/drm/card1/device 60 85
'';
serviceConfig = {
Restart = "always";
RestartSec = 10;
};
wantedBy = [ "multi-user.target" ];
};
hardware.graphics.enable32Bit = true;
hardware.graphics.extraPackages = with pkgs; [

61
scripts/amd-fan-control Executable file
View file

@ -0,0 +1,61 @@
#!/usr/bin/env bash
set -e
DEVICE="$1" # eg: /sys/class/drm/card1/device
HWMON=$(echo "$DEVICE"/hwmon/hwmon*)
exit() {
echo "Setting controll to auto" >&2
echo 2 > "$HWMON/pwm1_enable"
}
trap exit EXIT INT
bail() {
echo "Error: $@" >&2
echo "Exiting..." >&2
exit 1
}
if ! [ -d "$HWMON" ]; then
bail "Invalid HWMON"
fi
TEMP_INPUT="$HWMON/temp2_input"
if ! [ -f $TEMP_INPUT ]; then
bail "Invalid TEMP_INPUT"
fi
TEMP_MIN="$2"
TEMP_MAX="$3"
if [ -z "$TEMP_MIN" ];then
bail "No minimum temperature provided"
fi
if [ -z "$TEMP_MAX" ];then
bail "No maximum temperature provided"
fi
PWM_MIN=0
PWM_MAX=255
echo "Running..." >&2
while true; do
TEMPERATURE_RAW=$(cat "$TEMP_INPUT")
TEMPERATURE="$(( $TEMPERATURE_RAW / 1000 ))"
# Remap from a number between 60_000..90_000 to 0..255
PWM=$(( ($TEMPERATURE - $TEMP_MIN) * $PWM_MAX / ($TEMP_MAX - $TEMP_MIN) ))
if [ "$PWM" -gt $PWM_MAX ]; then
PWM=$PWM_MAX
elif [ "$PWM" -lt $PWM_MIN ]; then
PWM=$PWM_MIN
fi
echo 1 > "$HWMON/pwm1_enable"
echo "$PWM" > "$HWMON/pwm1"
sleep .1s
done

View file

@ -23,6 +23,7 @@
in
with final;
createScripts {
amd-fan-control = [ bash ];
br = [ ];
bmenu = [
bemenu

25
switch
View file

@ -1,12 +1,25 @@
#!/usr/bin/env bash
set -euo pipefail
nix fmt
git --no-pager diff
nixos-rebuild \
switch \
--use-remote-sudo \
--print-build-logs \
--flake .# \
"$@"
run() {
nixos-rebuild \
switch \
--use-remote-sudo \
--print-build-logs \
--flake .# \
"$@"
}
if which nom >/dev/null; then
run --verbose \
--log-format internal-json \
"$@" \
|& nom --json
else
run "$@"
fi

View file

@ -44,6 +44,8 @@
usbutils
# dracula-theme # gtk theme
adwaita-icon-theme # default gnome cursors
nix-output-monitor
];
services.geoclue2.enable = true;