Guten Tag
Für ein Programm, welches ich gerne schreiben möchte, bräuchte ich Daten
aus dem Bios. Wie machen das die Programme, wie Speed-Fan? Ich kenne
mich da noch so gar nicht aus. Bisher habe ich mich nur mit Programme
beschäftigt, bei denen ich die ganze Schaltung (also auch die Sensoren)
auf einer Experimentierplatine hatte.
Eine andere Idee, die ich hatte wäre ein vorhandenes Programm auf seinen
Code zu entschlüsseln...
Wie bringe ich die Auslastung und die Temperatur einer CPU also auf
einen externen Bildschirm?
Dankeschön und Grüsse
Hallo,
direkt aus dem "Bios" bekommst du das auch nicht mit sinnvollem Aufwand
heraus. Der einfachere Weg ist, ein PC-Programm zu schreiben, welches
das Betriebssystem über entsprechende Funktionsaufrufe einfach nach den
interessierenden Parametern fragt. Das Programm bereitet die Daten
entsprechend auf und sendet sie über eine Schnittstelle deiner Wahl
(USB, RS232, ... ) an den Mikrocontroller. Der macht dann nicht sehr
viel mehr, als die Daten nochmal zu verwursten und auf dem Display
auszugeben.
Viele Grüße
Christian
Spartaner schrieb:> Wie bringe ich die Auslastung und die Temperatur einer CPU also auf> einen externen Bildschirm?
Fertige Software verwenden.
Beispiele:
LCDsmartie (windows)
LCD4Linux, LCDproc (Linux)
Vorteil: Damit geht dann gleich viel mehr als nur CPU-Last und
Temperatur. z.B. aktueller Musiktitel aus Winamp, oder Benachrichtigung
bei eingehenden Mails, oder, oder, oder ....
Die PC-Software kann dann entweder per Plugin o.Ä. an deine Hardware
angepasst werden, oder (einfacher) die Hardware an die PC-Software.
(Google: LCDsmartie+Arduino+LCD für Beispiele)
Spartaner schrieb:> Für ein Programm, welches ich gerne schreiben möchte, bräuchte ich Daten> aus dem Bios.> Wie bringe ich die Auslastung und die Temperatur einer CPU also auf> einen externen Bildschirm?
du brauchst keine daten aus dem bios, sondern daten aus den
überwachungssensoren deines mainboard (für temperatur, lüfterdrehzahl).
die CPU-auslastung kann man hardwareseitig garnicht abfragen (afaik),
das sind werte die aus dem scheduler des kernels kommen.
das bios macht im endeffekt nichts anderes: die bausteine abfragen. das
problem ist, das es einen bunten zoo von sensorchips gibt (siehe z.b.
lm-sensors treiber module), auch bekannt als "das schöne an standards
ist, das man so viele davon haben kann".
solltest du trotzem ein eigenes programm schreiben wollen, würde ich den
umgekehrten kommunikationsweg vorschlagen: das programm pollt die werte
aus dem system, und überträgt sie (seriell, besser usb) an den µC.
Embedded schrieb:> Planlos schrieb:>> Winamp>> In welchem Jahrtausend bist du denn stecken geblieben
Müsste so 1998 gewesen sein, als ich von Windows (MSDN-Abo, NT3.5,
NT3.51, NT4, ...) auf Unix (Solaris, Irix, SCO (brrr), Linux) als
Primär-Betriebssystem umgestiegen (worden) bin.
Damals war der Winamp aktuell, und der einzige Player der auch auf einem
486DX2-66 einigermaßen "stotterfrei" lief.
Also: Ja, Windows-Mäßig stecke ich mit einem Bein noch im vorherigem
Jahrtausend.
Erstmals Danke für die vielen Antworten.
c.m. schrieb:> bunten zoo von sensorchips
Ist man langsam nicht bestrebt, alle Sensoren in den Prozessor selbst zu
integrieren? Ich war der Meinung, die Temperaturmessung der CPU war
ursprünglich unter ihm auf der Hauptplatine angeordnet und nun befindet
sich eine Schaltung mit einer Diode zur Temperaturmessung in der CPU
selbst.
c.m. schrieb:> solltest du trotzem ein eigenes programm schreiben wollen, würde ich den> umgekehrten kommunikationsweg vorschlagen: das programm pollt die werte> aus dem system, und überträgt sie (seriell, besser usb) an den µC.
Diesen weg wollte ich ursprünglich gehen, aber ich weiss nicht, wie ich
meinem Programm sagen soll, wo es die Daten herholen soll (BUS-Abfrage)?
Die Idee von LCDSmartie find ich ganz toll, aber ich hätte es halt gerne
selber geschrieben :-)
Martin schrieb:> für speedfan gibt es addons die die Daten zB auf einem externen LCD> Display ausgeben
Wie heisst das Addon denn?
Grüsse
Planlos schrieb:> Embedded schrieb:>> Planlos schrieb:>>> Winamp>>>> In welchem Jahrtausend bist du denn stecken geblieben
Als ich herausfand, dass es Simpsons/Futurama oder Family-Guy im 24h
online Stream auf Winamp gab, hab ich mich in das Teil verliebt!!! Die
Sendungs-Loops laufen bestimmt auch heute noch!
Sparteaner schrieb:> Planlos schrieb:>> Embedded schrieb:>>> Planlos schrieb:>>>> Winamp>>>>>> In welchem Jahrtausend bist du denn stecken geblieben>> Als ich herausfand, dass es Simpsons/Futurama oder Family-Guy im 24h> online Stream auf Winamp gab, hab ich mich in das Teil verliebt!!! Die> Sendungs-Loops laufen bestimmt auch heute noch!
Ich hab es vorletzte Woche nicht mehr gefunden - hab mal den alten
"Werkstattrechner" hochgefahren und in der WinAmp Playlist den Link zum
Family Guy & American Dad Channel gesehen...war leider offline. =/
Sparteaner schrieb:> Ist man langsam nicht bestrebt, alle Sensoren in den Prozessor selbst zu> integrieren? Ich war der Meinung, die Temperaturmessung der CPU war> ursprünglich unter ihm auf der Hauptplatine angeordnet und nun befindet> sich eine Schaltung mit einer Diode zur Temperaturmessung in der CPU> selbst.
Vor ein paar Jahren war im Prozessor eine Diode, die jedoch extern
ausgewertet wurde. Mittlerweile ist der Sensor digital und in der CPU.
Es gibt jedoch meist noch viele andere Sensoren, da die CPU ja nicht das
einzige Bauteil in einem Rechner ist...
Um das DTS auszulesen musst du das richtige MSR finden (so macht das
denk ich Speedfan) und dieses auswerten. Aber Vorsicht, der Inhalt des
Registers gibt keine absolute Temperatur zurück, sondern die Differenz
zu Tjmax.
Sparteaner schrieb:> Ist man langsam nicht bestrebt, alle Sensoren in den Prozessor selbst zu> integrieren? Ich war der Meinung, die Temperaturmessung der CPU war> ursprünglich unter ihm auf der Hauptplatine angeordnet und nun befindet> sich eine Schaltung mit einer Diode zur Temperaturmessung in der CPU> selbst.
Das wäre dann ein Sensor, nicht alle. Wie soll die Temperatur des
Chipsatzes, des Speichers, der Festplatte, der Spannungswandler, die
Drehzahl der Lüfter oder das Spannungsniveau der 12V- und 5V-Ausgänge
des Netzteils im Prozessor gemessen werden?
api oderr nicht schrieb:> Was nun Männer? Gibt es ein BIOS API für die Sensoren oder kocht jeder> Boardhersteller sein eigenes geheimes Süppchen?
Teilweise, wenn implementiert gibts ein paar über ACPI.
Für den Embedded Controller gibts keinen Standard. Falls es eine SuperIO
gibt und daran die Sensoren/Lüfter angeschlossen sind, ist es evtl.
möglich die Daten direkt auszulesen.
X2 schrieb:> Um das DTS auszulesen musst du das richtige MSR finden (so macht das> denk ich Speedfan) und dieses auswerten. Aber Vorsicht, der Inhalt des> Registers gibt keine absolute Temperatur zurück, sondern die Differenz> zu Tjmax.
Irgendwie raucht mir gerade ein bisschen der Kopf. Was ist MSR?
Registry? Was bedeutet das `j`?
Gut die Werte müsste ich dann umschlüsseln so dass es später in der
LCD-Anzeige stimmt.
Wäre es möglich, die Temperaturwerte direkt aus der Software SpeedFan
zu entnehmen und diese in den Mikrokontroller zu übertragen?
MSR:
https://en.wikipedia.org/wiki/Model-specific_register
Welches MSR nun Temperatur enthält und wie diese Codiert ist, ist je
nach CPU-Generation, Hersteller usw. natürlich anders. Wenn's nicht nur
auf deinem Rechner laufen soll: Viel Spaβ :)
Speedfan-Plugin ist möglich und viel, viel einfacher, weil da jemand
anderes schon die ganze Arbeit gemacht hat.
Das oben genannte LCDsmartie hat z.B. ein solches Speedfan-Plugin.
LCDsmartie auf uC und uC auf LCD gäb es ja auch schon fertig.
d.H. such dir den Teil der Kette
Hardware - Speedfan - LCDsmartie - uC - LCD
raus, den du nicht fix-und-fertig verwenden willst, sondern selber bauen
magst, und tu das.
Planlos schrieb:> Speedfan-Plugin ist möglich und viel, viel einfacher, weil da jemand> anderes schon die ganze Arbeit gemacht hat.
Aber er wollte es doch selber programmieren ;-)
Gibts das unter Linux nicht alles in irgendwelchen device-files bereits
fertig aufbereitet?
Ein schnelles googeln hat folgendes ergeben:
http://ti-omap.blogspot.de/2013/05/cpu-board-temp.html
Aber keine Ahnung ob die Werte brauchbar sind und ob man damit alle
Sensoren erschlagen kann.
Hallo Spartaner,
ein anderes Stichwort wäre "SMBus".
Vielleicht magst Du Dir ja mal HWMonitor von cpuid.com anschauen.
Zumindest sieht man, was harwareübergreifend möglich ist. Für etwas Geld
kann man da auch ein API kaufen.
Beste Grüße
hrool
Du kannst auch mal hier schauen:
http://openhardwaremonitor.org/
Entweder mal im Sourcecode nachsehen und/oder die DLL benutzen. Das
Auslesen der Temperatur(en) klappt komischerweise meist nur mit
erweiterten Rechten bzw. Adminrechten (liegt aber nicht an dieser
Bibliothek). Ob es bei dir damit generell funktioniert, kannst du auch
erst einmal mit
http://www.cputhermometer.com/
ausprobieren (verwendet auch Open Hardware Monitor).