Odczytywanie temperatury procesora (GPU, predkości wiatraka)

0

Od jakiegos juz czasu szukam jak odczytać temperaturę procesora (GPU, predkosc wiatraczka, napiecia na poszczegolnych elementach etc.). Poki co znalazlem kilka 'prawie' rozwiazan ale zadnego z nich nie potrafie wykorzystac.

  • libsensors - odczytanie za pomoca sensorow itp, tak jak to robi linuksowy lm_sensors
  • odczytanie tego z BIOSu, ponoc asm'owe przerwanie 1Ch moze odczytac temperature procesora z BIOS'u - http://groups.google.pl/group/pl.comp.programming/browse_thread/thread/595769f54a113483/6be429b019b51a95?lnk=gst&q=temperatura+procesora#6be429b019b51a95 - niestety nie wiem jak to odpalic i odczytac ;'(
  • na forum znalazlem, ze gdzies w CMOS'ie (?) jest ona zapisana i tez mozna ja jakos odczytac
    Czy ktos moze zmagal sie z tym problemem wczesniej i wie jak to zrobic? Najbardziej zalezalo by mi na tym aby umiec to odczytac wstawka assembler'owa, bo takie rozwiazanie wydaje mi sie najlepsze (tak, zdaje sobie sprawe z tego, ze sa rozne urzadzenia do mierzenia temperatury na procesorze itp., mi wystarczy umiec odczytac ja tylko na mojej konkretnej maszynie). Platforma nie ma znaczenia.
0

Z tym przerwaniem to coś tego znaleźć nie potrafię, a też bym skorzystał.

0

http://www.ctyme.com/intr/int-1c.htm
to jest przerwanie 1C.

W BIOSowych nie ma nic o temperaturze.

0

W pmode nie można korzystać z przerwań... ludzie, ogarnijcie się i więcej lektury !!! No chyba że chcesz to zrobić w 16 bitach...

0

Wnioskuje po wypowiedzi, ze tylko Windows Cie interesuje, wiec ...
Troche info masz w rejestrze

hkey_local_machine -> hardware -> description -> system -> centralprocessor -> 0

Co do odczytu samej temperatury sprzetu w windows skorzystaj z WMI.
Na necie jest troche materialow na ten temat na pewno sobie poradzisz.

0
t0m_k-tmp napisał(a)

Wnioskuje po wypowiedzi, ze tylko Windows Cie interesuje, wiec ...
Troche info masz w rejestrze

hkey_local_machine -> hardware -> description -> system -> centralprocessor -> 0

> Co do odczytu samej temperatury sprzetu w windows skorzystaj z WMI.
> Na necie jest troche materialow na ten temat napewno sobie poradzisz.
no wiec wlasnie, jedynie linuks i rozwiazania na niego mnie interesuja.
0

Ok, mam takie cos

#include <stdio.h>

int wart;

int main(void){
	asm("int $0x1C\n\t" 
 		"movl %eax, %ds"
 		: "=a" (wart)
 		: /* --- */
 		: "%eax", "%ds");
	
	printf("%d\n", wart);
	
	return 0;
}

jednak kompilator wyswietla mi bladerror: unknown register name ‘%ds’ in ‘asm’Sprawdzalem juz czy moze ten rejestr sie jakos inaczej nazywa czy cos takiego i nic takiego nie znalazlem, jest to data segment, czyli jak mniemam ten rejestr gdzie sie zapisuje cos co zostaje zwrocone po przerwaniu 1C.
Co zrobic aby to dzialalo, co jest nie tak?

0

W pmode nie można korzystać z przerwań...

...BIOS-u. i to też zależy jakich, gdzie i kiedy.
Przykładowo w Linuksie funkcje systemowe są pod przerwaniem (int 80h) podobnie jak były w DOS-ie. A przecież to system działający w trybie chronionym…

0

Windows też przerwań używa i to wcale nie mało - 2E do wywołań systemowych (obecnie zastąpione przez sysenter), 2D dla klamotów debuggera, pod bodaj 2A siedzi KiGetTickCount...

1 użytkowników online, w tym zalogowanych: 0, gości: 1