AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CPU und GPU Temperatur auslesen

Ein Thema von mabac17 · begonnen am 14. Okt 2016 · letzter Beitrag vom 16. Okt 2016
Antwort Antwort
mabac17

Registriert seit: 14. Okt 2016
2 Beiträge
 
#1

CPU und GPU Temperatur auslesen

  Alt 14. Okt 2016, 22:28
Ich möchte gerne selbst meine PC Lüfter steuern. Hierzu benötige ich allerdings die Temperaturen der einzelnen Komponenten. Wie kann ich diese am Einfachsten erhalten?
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.898 Beiträge
 
Delphi 12 Athens
 
#2

AW: CPU und GPU Temperatur auslesen

  Alt 14. Okt 2016, 22:49
Verstehe ich das so das du Sensoren auf die Bauteile kleben willst ?

Dann könnten vielleicht 1-Wire Sensoren passen, aber die sind womöglich nicht besonders schnell und genau.
https://de.wikipedia.org/wiki/1-Wire

Oder willst du die internen Sensoren der CPU auslesen ?
So in der Art:
http://www.delphipraxis.net/89408-cp...-auslesen.html


Rollo

Geändert von Rollo62 (14. Okt 2016 um 22:52 Uhr)
  Mit Zitat antworten Zitat
mabac17

Registriert seit: 14. Okt 2016
2 Beiträge
 
#3

AW: CPU und GPU Temperatur auslesen

  Alt 14. Okt 2016, 22:51
Für mich wäre grundsätzlich beides ok
Bei den Internen Sensore habe ich gehört, dass die scheinbar schwer auszulesen sind. Dafür wären die natürlich um Welten komfortabler.
Den Thread habe ich gesehen, aber da kam ja glaub nicht wirklich zu einem Ergebnis.

Temperatursensoren haben das Problem, dass sie schwer zum Beispiel auf der CPU anzubringen sind, da da ja noch ein Kühler draufsitzt

Geändert von mabac17 (14. Okt 2016 um 22:56 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#4

AW: CPU und GPU Temperatur auslesen

  Alt 14. Okt 2016, 23:38
Der Sensor muß aber auch nicht genau auf das Bauteil.

Wenn du eh den Kühlkörper kühlst, reicht auch dessen Temperatur.
Möglichst nah am heizenden Teil oder weiter weg (nur nicht direkt am kühlenden Teil) ... jenachdem wie groß deine Hysterese sein soll.

Es bringt da auch nichts, wenn der Sensor direkt an der Heizung wäre, denn selbst wenn diese Seite mal kurz "extrem" heiß wird, weil die plötzlich anfängt mit rechnen und sofort dein Lüfter voll aufdreht, dann dauert es eh etwas, bis die neue Hitze durch den Kühlkörper bis hin zur neuen Kältequelle (dem schnelleren Luftstrom) durchgereicht wurde.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
jus

Registriert seit: 22. Jan 2005
343 Beiträge
 
Delphi 2007 Professional
 
#5

AW: CPU und GPU Temperatur auslesen

  Alt 15. Okt 2016, 01:59
Für mich wäre grundsätzlich beides ok
Bei den Internen Sensore habe ich gehört, dass die scheinbar schwer auszulesen sind. Dafür wären die natürlich um Welten komfortabler.
Den Thread habe ich gesehen, aber da kam ja glaub nicht wirklich zu einem Ergebnis.

Temperatursensoren haben das Problem, dass sie schwer zum Beispiel auf der CPU anzubringen sind, da da ja noch ein Kühler draufsitzt
Soll das Programm nur für eine spezielle CPU funktionieren oder für alle CPUs? Wenn es um neuere Intel CPUs geht, da habe ich mich vor einiger Zeit kurz damit beschäftigt. Bei moderneren Intel CPUs braucht man im Prinzip nur das MSR Register 19h (steht in diversen Intel Dokus drin) auslesen. Das Problem ist nur, dass das Auslesen von MSR Register für User Mode (Ring3) unter Windows gesperrt ist. Es ist nur in Ring0 möglich. Die Lösung ist, dass man dies über einen Treiber macht, da der Treiber in Ring0 ist. Einen Treiber mit der nur den Befehl RDMSR ausführt, könnte man zwar schnell mit der WDK machen, aber dann gibt es noch die Problematik, dass der Treiber am besten zertifiziert sein soll, damit Windows da nicht meckert usw. ..... Um die Sache abzukürzen, es gibt bereits fertige Treiber mit der Fähigkeit, das MSR Register auszulesen, die auch zertifiziert sind, wenn ich mich nicht irre von openlibsys.org. Um die Lizenzgeschichte mußt du dich halt selber kümmern, in meinem Fall war das nur für den Hausgebrauch. Sprich, man braucht nur, soweit ich mich erinnere, die WinRing0.dll und die WinRing0.sys in das Programmverzeichnis reinzukopieren und die WinRing0.dll in Delphi zu laden.

Im Prinzip schaut dann der Sourcecode dann in Delphi ungefähr so aus:
Delphi-Quellcode:
var
  Form1: TForm1;

function InitializeDll: LongBool; stdcall; external 'WinRing0.dllname 'InitializeOls';
procedure DeinitializeDll; stdcall; external 'WinRing0.dllname 'DeinitializeOls';
function Rdmsr(index:dWORD;var eax,edx:dWORD): LongBool; stdcall; external 'WinRing0.dllname 'Rdmsr';

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  eax,edx:dword;
begin
  RdMSR($19C, eax,edx) ;
  Memo1.Lines.Add('MSR $19C: ');
  Memo1.Lines.Add('eax: '+IntToHex(eax,8));
  Memo1.Lines.Add('edx: '+IntToHex(edx,8));
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  DeinitializeDll;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  ergebnis: LongBool;
begin
  ergebnis:=InitializeDll;
  if ergebnis then Memo1.Lines.Add('InitializeDll: OK')
  else Memo1.Lines.Add('InitializeDll: NOT OK');
end;
Ob der obige Source 100% funktioniert habe ich nicht ausgetestet, da ich die WinRing0 Sachen nicht mehr auf meine Platte finde. Es gibt aber hier im Forum einige Sourcen zum Thema. Mußt halt mal die Suche anwerfen.

Lg,
jus

Nachtrag: Habe die WinRing0 Sachen doch noch gefunden und unter Delphi 2007 ausprobiert, sprich 32bit Anwendung. Ich mußte die Project1.exe extra unter Windows 7 als Administrator starten, damit der Treiber geladen wurde. Falls du ein 64bit Programm machst, brauchst du aber die WinRing0x64.dll und WinRing0x64.sys.

Geändert von jus (15. Okt 2016 um 02:19 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.898 Beiträge
 
Delphi 12 Athens
 
#6

AW: CPU und GPU Temperatur auslesen

  Alt 15. Okt 2016, 08:15
Ja klar, muss natürlich mit wärmeleitkleber gemacht werden und vielleicht gg. Lüfter geschützt sein.
Die Frage ist eben wozu das gemacht werden soll.

Aber der Sinn von AUSSEN angeklebten Sensoren sehe ich nicht wirklich ein,
denn es hängt das was aussen ist nicht mit dem inneren 1:1 zusammen.
Das wird natürlich sehr ungenau, und man müsste sich das irgendwie selber kalibieren, um z.B. die echte Chiptemperatur zu bekommen.

Sensoren an GPU, Speicher und was sonst noch macht Sinn um ein Board zu Testen, die Sensoren beeinflussen die Bauteile aber u.U. sehr stark.
Besser wäre dann Thermografie, aber ich denke dem TE geht es eigentlich nur um die Main CPU.
Da ist das beste der interne Sensor.


Rollo

Geändert von Rollo62 (15. Okt 2016 um 08:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: CPU und GPU Temperatur auslesen

  Alt 15. Okt 2016, 08:37
Warum selber machen?
Schau mal hier herein:http://www.alcpu.com/CoreTemp/

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#8

AW: CPU und GPU Temperatur auslesen

  Alt 15. Okt 2016, 08:56
Der OPENHARDWAREMONITOR mit WMI-Server stellt die Daten für weitere Verwendung zur Verfügung.
http://www.delphipraxis.net/181868-o...r-mit-wmi.html

Für EIGENE Temperaturmessungen gibt es HIER auch was.

Geändert von t.roller (15. Okt 2016 um 09:02 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#9

AW: CPU und GPU Temperatur auslesen

  Alt 16. Okt 2016, 15:49
wenn's selbst gebaut werden soll :
http://www.tinkerunity.org/forum/ind...ic,3584.0.html
Stromquelle --> PT100 --> DualAnalogIn-Bricklet --> MasterBrick (Tinkerforge).
Zu dem Schaltplan gibt's ein Programm zur Bauteilberechnung.
Die Anbindung der Tinkerforge-Komponenten an Delphi (Pascal) ist einfach.
Markus H.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz