Jump to content
1,156 posts in this topic

Recommended Posts

I got a warning differently to The Kings' plugin http://www.insanelym...dpost&p=1795969

About CPU multipliers, the last IntelThermal works good.

 

Feb 18 00:54:41 localhost kernel[0]: Found ATI Radeon 6738

Feb 18 00:54:41 localhost kernel[0]: NCT677x: [Warning] wrong vendor id (0xffff), continue loading...

Feb 18 00:54:41 localhost kernel[0]: NCT677x: found Nuvoton NCT6776F

Feb 18 00:54:41 localhost kernel[0]: IntelThermal: CPU family 0x6, model 0x2a, stepping 0x7, cores 4, threads 8, TJmax 98

 

 

Schermata 02-2455976 alle 00.58.59.png

Link to comment
Share on other sites

Hello,

 

To fix Hardware id detection in WindbondW386x.cpp

 

Replace value 0

UInt16 vendor = UInt16( ( readByte(0, WINBOND_VENDOR_ID_REGISTER) << 8 ) | readByte(0, WINBOND_VENDOR_ID_REGISTER) );

 

According to data sheet, you need to select good byte to read.

UInt16 vendor = UInt16( ( readByte(0x80, WINBOND_VENDOR_ID_REGISTER) << 8 ) | readByte(0, WINBOND_VENDOR_ID_REGISTER) );

 

Tested on Asus P5B. :)

 

Feb 22 20:51:03 localhost kernel[0]: FireWire (OHCI) TI ID 8023 built-in now active, GUID 0011d800012e2a2c; max speed s400.

Feb 22 20:51:03 localhost kernel[0]: W836x: found Winbond W83627DHG

Feb 22 20:51:03 localhost kernel[0]: IntelThermal: CPU family 0x6, model 0xf, stepping 0x6, cores 1, threads 2, TJmax 80

 

Regards

  • Like 1
Link to comment
Share on other sites

Hello,

 

To fix Fan detection in WindbondW386x.cpp

 

//if (OSNumber* fanlimit = configuration ? OSDynamicCast(OSNumber, configuration->getObject("FANINLIMIT")) : 0)

// fanLimit = fanlimit->unsigned8BitValue();

 

OSNumber* fanlimit = configuration ? OSDynamicCast(OSNumber, configuration->getObject("FANINLIMIT")) : 0;

 

Fix Fan in my case with Asus P5B.

Now two Fans appear in monitor, one is Cpu other is Power Supply.

 

Regards

  • Like 1
Link to comment
Share on other sites

Hello, To fix Fan detection in WindbondW386x.cpp //if (OSNumber* fanlimit = configuration ? OSDynamicCast(OSNumber, configuration->getObject("FANINLIMIT")) : 0) // fanLimit = fanlimit->unsigned8BitValue(); OSNumber* fanlimit = configuration ? OSDynamicCast(OSNumber, configuration->getObject("FANINLIMIT")) : 0; Fix Fan in my case with Asus P5B. Now two Fans appear in monitor, one is Cpu other is Power Supply. Regards

 

This fix keep fanLimit as is. Default value for fanLimit is 3 or depending of chip model. As I understand, without any fix fanLimit sets to 0... :worried_anim:

 

Fixed! Uploaded. Not tested, need feedback.

Link to comment
Share on other sites

works, thx a lot!

1d69e0f: W836x: found Winbond W83627DHG

 

i have to edit each time:

  <dict>
   <key>Default</key>
   <dict>
 <key>FANIN0</key>
 <string></string>
 <key>FANIN1</key>
 <string>CPU</string>
 <key>FANIN2</key>
 <string></string>
 <key>FANIN3</key>
 <string></string>
 <key>FANIN4</key>
 <string></string>
 <key>FANINLIMIT</key>
 <integer>2</integer>
 <key>TEMPIN0FORCED</key>
 <true/>
 <key>TEMPIN1FORCED</key>
 <false/>
   </dict>
  </dict>

Link to comment
Share on other sites

This fix keep fanLimit as is. Default value for fanLimit is 3 or depending of chip model. As I understand, without any fix fanLimit sets to 0... :worried_anim:

 

Fixed! Uploaded. Not tested, need feedback.

 

Hello,

 

fanLimit was good just before execute this line.

fanLimit = fanlimit->unsigned8BitValue(); -> result is 0.

 

 

Now, works fine.

 

But this line is not needed test gives 0.

if (fanlimit && fanlimit->unsigned8BitValue() > 0) fanLimit = fanlimit->unsigned8BitValue();

 

 

Regards

Link to comment
Share on other sites

hi kozlek, your set of monitoring kexts works beautifully on the system in signature, apart nvclockx (updated from your git repository just yesterday)

The temperature detected is not correct, you can see below the difference between windows and osx

 

post-449896-0-38459000-1329999333_thumb.png post-449896-0-79661500-1329999352_thumb.jpg

 

Thanks for your work and your attention.

Cheers.

Link to comment
Share on other sites

Hello,

 

fanLimit was good just before execute this line.

fanLimit = fanlimit->unsigned8BitValue(); -> result is 0.

 

 

Now, works fine.

 

But this line is not needed test gives 0.

if (fanlimit && fanlimit->unsigned8BitValue() > 0) fanLimit = fanlimit->unsigned8BitValue();

 

 

Regards

 

This line is needed. The logic is to prevent from reading from unavailable registers... I am not sure but it seems not all models has full fan registers set. I took it from open hardware monitor. They are limiting number of fan depending on model.

Link to comment
Share on other sites

F718x: [Warning] found unsupported chip ID=0x10 REVISION=0x7

 

please can you add a support for this chip also

 

Fintek F71869A

 

this is what the Lm-sensor return to me

 

 

Found `Fintek F71869A Super IO Sensors' Success!

(address 0x295, driver `f71882fg')

 

Thanks for your Help

lm78.txt

Link to comment
Share on other sites

on the X-code i change all the value of

 

F71869 with F71869A

 

 

and also here to much the value for the Id 10 and the revision 07

 

 

case 0x10:

{

switch (revision)

{

case 0x07:

model = F71869A;

logicalDeviceNumber = FINTEK_HARDWARE_MONITOR_LDN;

break;

}

 

the KEXT is loaded with no problem

 

 

Feb 24 15:03:43 localhost kernel[0]: IntelThermal: CPU family 0x6, model 0x2a, stepping 0x7, cores 4, threads 8, TJmax 98

Feb 24 15:03:43 localhost kernel[0]: F718x: found Fintek F71869A

 

 

but i get a wrong value

 

please check the snapshot

post-216126-0-86957000-1330086640_thumb.jpg

Link to comment
Share on other sites

on the X-code i change all the value of F71869 with F71869A and also here to much the value for the Id 10 and the revision 07 case 0x10: { switch (revision) { case 0x07: model = F71869A; logicalDeviceNumber = FINTEK_HARDWARE_MONITOR_LDN; break; } the KEXT is loaded with no problem Feb 24 15:03:43 localhost kernel[0]: IntelThermal: CPU family 0x6, model 0x2a, stepping 0x7, cores 4, threads 8, TJmax 98 Feb 24 15:03:43 localhost kernel[0]: F718x: found Fintek F71869A but i get a wrong value please check the snapshot

 

lmsensors like OpenHardwareMonitor uses the same logic to get temperatures from most of supported Fintek chipsets. Could you run openhardwaremonitor on windows and capture the screen?

 

hi kozlek, your set of monitoring kexts works beautifully on the system in signature, apart nvclockx (updated from your git repository just yesterday)

The temperature detected is not correct, you can see below the difference between windows and osx

 

post-449896-0-38459000-1329999333_thumb.png post-449896-0-79661500-1329999352_thumb.jpg

 

Thanks for your work and your attention.

Cheers.

 

Please, install attached debug version of NVClock and show me your kernel.log

NVClockX.kext.zip

Link to comment
Share on other sites

OK! Here's the kernel log with the nvclock debug version.... tnx

kerneldebug.rtf

 

Seems NVClock wasn't found integrated monitoring device so trying to read temperature directly from video registers but:

 

/* Reading of the internal gpu sensor, it not entirely correct yet */

static int nv50_get_gpu_temp(void *sensor)

{

int temp;

int correction=0;

float offset;

float slope;

/* For now use a hardcoded offset and gain. This isn't correct but I don't know how the new temperture table works yet; this at least gives something */

offset = -227.0;

slope = 430.0/10000.0;

if(nv_card->debug)

{

printf("NV_20008 (0x20008): %08x\n", nv_card->PMC[0x20008/4]);

printf("slope=%f, offset=%f, correction=%d\n", slope, offset, correction);

}

 

temp = nv_card->PMC[0x20008/4] & 0x1fff;

return (int)(temp * slope + offset) + correction;

}

 

Link to comment
Share on other sites

×
×
  • Create New...