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
:
Verschoben durch User
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)
für speedfan gibt es addons die die Daten zB auf einem externen LCD Display ausgeben
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?
Was nun Männer? Gibt es ein BIOS API für die Sensoren oder kocht jeder Boardhersteller sein eigenes geheimes Süppchen?
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.
Unter Windows könnten die gewünschten Daten ggf. über WMI abrufbar sein (CPU-Temp z.B. wird bei einigen Mainboard über ACPI bereitgestellt, ansonsten ist man quasi genötigt selbst einen Treiber für die wichtigsten Temperatur-Sensoren zu schreiben wie es z.B. speedfan tut) Mit dem WMI Code Creator kann man da einfach mal rumspielen: https://www.microsoft.com/en-us/download/details.aspx?id=8572 http://wutils.com/wmi/root/wmi/msacpi_thermalzonetemperature/ http://wutils.com/wmi/root/wmi/processorperformance/
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
So als kleiner Google Tipp und von Windows eine Stufe runter in Richtung Hardware zu kommen: WinRing0
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).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.