staging.inyokaproject.org

How-To Fancontrol via GPU Themperatur?

Status: Ungelöst | Ubuntu-Version: Ubuntu GNOME 20.04 (Focal Fossa)
Antworten |

Snippy

Anmeldungsdatum:
19. September 2021

Beiträge: Zähle...

Mion,

ich habe jetzt schion mal mir Fancontrol_GUI rum gespiel und nach Antworten gesucht.

Leider funktionier das bei mir nicht so richtig.

Ich habe eine Wasserkühlung und müsste deshalb mien Gehäuselüfter anhand der GPU Themeratur steuen.

Unter Windows ging das recht easy mit Speedfan. Kennt da zufällig jemand ne Möglichkeit wie das unter Linux machbar währe?

Mit Fancontol_gui habe ich folgende probleme.

- GPU Themp steht nicht zur verfügung

- Gehäuselüfter werden zwar gefunden, Einstellungen bewirken allerdings keine Änderung der Tatsächlichen Lüftergeschwindigkeit.

Alternativ würde ich auch in mein ASRock BIOS/UEFI wandern. Aber das erkennt auch nur CPU und MainBoard Temperaturen.

hakel2020

Anmeldungsdatum:
21. Januar 2021

Beiträge: 1169

Google mal, dazu gibt es ja reichlich Diskussionen im Netz.

Die GPU ist im Prinzip hart im Nehmen, aber du kannst es ja an die Mainbordtemp. koppeln. "Gute" Asrock MBs haben eine recht ordentlich Lüfterkontrolle.

Ich würde das in jedem Fall über die Hardware regeln, das ist "robuster" im Alltag.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 10978

Was für eine GPU hast du denn? Generell sollte man mit lm sensors oder nvidia-smi (wenn der proprietäre nvidia-Treiber verwendet wird):

nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader 

an die Temperatur kommen. Und dann brauchst du halt noch einen programmatischen Weg auf diesen Wert zu reagieren und das in eine Drehzahlvorgabe umzusetzen.

Was mir noch nicht klar ist - warum kann deine Wasserkühlung nicht die Temperaturen von Kühlkreislauf und Umgebung messen und darauf reagieren? Das ist doch - unter der Voraussetzung, dass die Pumpe genügend Kühlmittel bewegt - das einzige physikalisch relevante Kriterium, dass die Temperaturdifferenz des Kühlmittels zur Umgebung nicht zu groß wird (wenn die Umgebungstemperatur selbst zu hoch wird, können die Lüfter eh nur noch heiße Luft umrühren) und dann läuft das auch unabhängig vom Betriebssystem (das kann dann ggf. noch warnen, wenn die Temperaturen der Komponenten zu hoch werden).

Snippy

(Themenstarter)

Anmeldungsdatum:
19. September 2021

Beiträge: 2

Ich habe zwei Nvidea 980Ti. Meine Problem ist halt das mien Gehäse eigentlich zu klein ist. Daher habe ich zwei ulta laute Noctua Lüfter. Die sollen dann im idle laufen und beim Zocken dan entsprechen anfangen zu Arbeiten.

nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader 

gibt mir auch die Richtige Themperatur aus. Wenn ich die jetzt irgendwie in Fancontrol_GUI rein bekommen würde währe ich dem Ziel ja schon mal ein ganzes STück dichter.

Um die Temperaturen von Kühlkreislauf zu messen müsste ich ja auch erstmal ein Thermometer einbauen und dan die Werte irgendwie genauso in eine Löftersteuerung bekommen. 🤔

Und hakel2020? Du meinst ich soll mir die Themeratur von der Bridge oder so nehmen?

hakel2020

Anmeldungsdatum:
21. Januar 2021

Beiträge: 1169

Themeratur von der Bridge oder so nehmen

Warum nicht?

Bei zwei 980ern im kleinen GH sollte die Umgebungstemp. flott ansteigen. Natürlich mußt du dann noch die Kurve entsprechend anpassen. Aber ein MB, das zwei 980er schluckt, bietet da sicher etwas "Gutes" an. 👍

Damit kann/muß man sich sschon etwas beschäftigen - Feinjustierung.

Im Idle sollten selbst 980 nur mäßig Strom schlucken, da sollte ein ruhiges Arbeiten möglich sein.

Aber das mußt du alles vor Ort klären, GH Lüfter würde ich immer konstant mitlaufen lassen, damit sich nichts aufbaut.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 10978

Snippy schrieb:

Wenn ich die jetzt irgendwie in Fancontrol_GUI rein bekommen würde währe ich dem Ziel ja schon mal ein ganzes STück dichter.

Fancontrol_GUI ist nur ein grafisches Frontend für fancontrol, das regelt selber nichts. Und fancontrol bzw. lm-sensors beschränkt sich AFAIK auf die vom Kernel angebotenen Device-Nodes für Lüfter und Sensoren.

Es gibt Beispielcode für ein Kernel-Modul, das so einen Sensor emulieren kann und das lm-sensors als ISA-Device erkennt: stoth68000/dummy-hwmon-driver - wenn man das baut und lädt, kann man den Wert für die Temperatur als root aus dem Userspace heraus setzen, also z.B.:

1
2
3
4
5
6
7
8
9
#!/bin/bash
sensor_input=$(dirname $(grep -F -l klvoltage /sys/class/hwmon/hwmon*/name))/temp1_input

while :
do
    temperature=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader | head -n1)
    echo $(( 1000 * temperature )) > "$sensor_input"
    sleep 1
done

Mit ein bisschen Zeitaufwand kann man noch den Namen von Modul und Sensoren anpassen und sinnvolle Minimal- und Maximalwerte vorgeben.

Man könnte das Problem z.B. auch per Shell-Skript ohne fancontrol lösen, da muss man dann halt noch die Pfade für die von Kernel exponierten sysfs-Knoten für die Lüfteranschlüsse und Sensoren auf dem Mainboard anpassen und das Auslesen der Temperatur per nvidia-settings aktivieren: https://gist.github.com/Ropid/33eeaff2df82789350e371c04b9df2ee

Snippy schrieb:

Um die Temperaturen von Kühlkreislauf zu messen müsste ich ja auch erstmal ein Thermometer einbauen

Ja, das ist aber doch normalerweise das mindeste, was man macht, wenn man einen Kühlkreislauf aufbaut, sonst weiß man ja nicht, ob die Pumpe und die übrigen Komponenten im vom Hersteller vorgesehene Temperaturbereich betrieben werden - das schwankt ja je nach Modell und kann von 35°C (wie bei "normalen" Aquariumpumpen) bis über 60°C reichen - nachdem die Temperaturen im Kreislauf recht homogen sind (je nach abzuführender Wärmeenergie würde ich da in etwa mit 1-3 Grad Unterschied vor und hinter dem Radiator rechnen), reicht es normalerweise einen Sensor in den Ausgleichsbehälter zu hängen, dann kenn man die Vorlauftemperatur vor der Pumpe und einen im Bereich der Lufteinlässe, dann weiß man, wie warm die Luft ist, die über den Radiator streicht.

und dan die Werte irgendwie genauso in eine Löftersteuerung bekommen.

Da reicht ein µC, an dem die Temperatursensoren hängen und der dann anhand einer Lookup-Tabelle (die man für sein individuelles System erstellen muss) ein PWM-Signal für den oder die Lüfter erzeugt. Das funktioniert dann unabhängig vom Betriebssystem.

Antworten |