Jump to content

1,165 posts in this topic

Recommended Posts

Hi kozlek,

 

Sorry to bother you.. but I can't see the voltages with the new version.

 

Is there a cache somewhere? I have deleted Fakesmc.kext, install using the Installer, and rebuild with Kext Utility.

 

Is there something I missed?

 

Thanks for your work! :)

post-326232-0-86451200-1333872251_thumb.png

Share this post


Link to post
Share on other sites
Advertisement

Hi kozlek,

 

Sorry to bother you.. but I can't see the voltages with the new version.

 

Is there a cache somewhere? I have deleted Fakesmc.kext, install using the Installer, and rebuild with Kext Utility.

 

Is there something I missed?

 

Thanks for your work! :)

 

Please provide you kernel.log and ioreg dump

 

 

 

thanks will try to simulate it on my notebook

 

Ok, we could try to make an example of usage ACPISensors with your system. It will take a time for investigation and tests and we couldn't know if it will be a result, so I am not going to help for everyone who wants to use ACPISensors.

 

I need from you unmodified ACPI tables, from windows or linux live cd. For Windows you can use RWEverything or AIDA64 trial, for linux use Google to find terminal commands you should enter to dump tables

Share this post


Link to post
Share on other sites

Thanks kozlek! Total reinstall brought some light ;)

 

post-65306-0-47347400-1333882050_thumb.png

 

Now, there only two states: lowest x16 und highest x33! In Bios it´s set to max. multiplier x42 in turbo mode ???

 

How are the states generated, or are they static values depending on CPU model?

 

Thanks for clearing up!

Share this post


Link to post
Share on other sites

Please provide you kernel.log and ioreg dump

 

 

 

Ok, we could try to make an example of usage ACPISensors with your system. It will take a time for investigation and tests and we couldn't know if it will be a result, so I am not going to help for everyone who wants to use ACPISensors.

 

I need from you unmodified ACPI tables, from windows or linux live cd. For Windows you can use RWEverything or AIDA64 trial, for linux use Google to find terminal commands you should enter to dump tables

 

ok thanks kozlek

 

here what do you want full acpi dump from windows

 

ACPI Tables.zip

 

if it will work you can make a guide line for acpisensors or if i understood what we must do for that will try write this guide line

 

thanks very much :)

Share this post


Link to post
Share on other sites

ok thanks kozlek

 

here what do you want full acpi dump from windows

 

ACPI Tables.zip

 

if it will work you can make a guide line for acpisensors or if i understood what we must do for that will try write this guide line

 

thanks very much :)

 

Misfortune, sorry. I don't found any useful ACPI code in your tables. There is temperatures and fans and powers names in one of SSDTs but it doesn't contains any registers to read values from. AIDA report txt also contains nothing. Only sensors I can see is on your AIDA screenshot. But I don't know what is DELL SMI and how to get access to it.

Share this post


Link to post
Share on other sites

Misfortune, sorry. I don't found any useful ACPI code in your tables. There is temperatures and fans and powers names in one of SSDTs but it doesn't contains any registers to read values from. AIDA report txt also contains nothing. Only sensors I can see is on your AIDA screenshot. But I don't know what is DELL SMI and how to get access to it.

 

that is right

 

slice said that he know the way for getting access to it but he didnt have intention to make it :(

 

hope if you dont mind to have this intention to make it :)

 

any way iam thankful to you for your attention with my problem ;)

Share this post


Link to post
Share on other sites

Hi kozlek, i would like to inform you that now, the gpu sensor works great here on my 9800gt GFX card.

 

Hi

 

Can I ask for help one more time ?

the same problem here (8800gs g92)

gpu temp shows 15 (slice ver.) or 0 with kozlek latest ver.

should be something about 42-45

 

do I have to change something with nvclockx.kext???

 

this is my kernel.log

 

NVClockX: Card: 0, Device ID: 606, Architecture: 40000, G92 [GeForce 8800 GS]

 

NVClockX: BIOS successfully read

Apr 8 19:16:05 localhost kernel[0]: NVClockX: Parsing BIOS complete

Apr 8 19:16:05 localhost kernel[0]: NVClockX: Adding temperature sensors

 

with windows tools this value: NV_20400 (0x20400): 00000028 shows temp

 

I'm sure this is G92 arch.

maybe with my card I should use G84 getting temp method (I see 0x20400 value) in this method?

 

 

thank you for any help

Share this post


Link to post
Share on other sites

09.04.12 12:29:07,000 kernel: NVClockX: [Warning] it seems your card isn't officialy supported yet
09.04.12 12:29:07,000 kernel: NVClockX: [Warning] please tell the author the pci_id of the card for further investigation
09.04.12 12:29:07,000 kernel: NVClockX: [Warning] continuing anyway
09.04.12 12:29:07,000 kernel: NVClockX: Adding temperature sensors

 

Geräte-ID: 0x1201

Share this post


Link to post
Share on other sites

Hi, finally have fans and voltages showing in the latest release

 

sensors.png

 

Now I am trying to rename them and work out the gain for them in the SuperIOSensors.kext Info.plist

Here is the information displayed in the bios:

 

bios.JPG

 

I have started making a new profile for my motherboard in the Nuvotron NCT677X Monitor section above the ASUS motherboards (as it appears all the profiles have been entered in alphabetical order):

 

<key>ASRock</key>
<dict>
  <key>Z68 Pro3-M</key>
  <dict>
  <key>FANIN0</key>
  <string>CPU Fan</string>
  <key>FANIN1</key>
  <string>Chassis Fan #1</string>
  <key>FANIN2</key>
  <string>Chassis Fan #2</string>
  <key>FANIN3</key>
  <string>Power Fan</string>
  <key>FANIN4</key>
  <string></string>			  
  </dict>
</dict>

 

Do I need to add all the keys that are in the other profiles? Or can I build it up as I work out which fan/temp/voltage is which?

Also, I have not been able to work out which voltages are the 5v and 12v from the dumps I got from AIDA64 and OpenHarwareMonitor.

 

The following is from the OpenHardwareMonitor dump

+- ASRock Z68 Pro3-M (/mainboard)
|  |
|  +- Nuvoton NCT6776F (/lpc/nct6776f)
|  |  +- CPU VCore	  :	0.944	0.944	1.192 (/lpc/nct6776f/voltage/0)
|  |  +- Voltage #2	 :	1.864	1.856	1.872 (/lpc/nct6776f/voltage/1)
|  |  +- AVCC		   :	3.376	 3.36	3.376 (/lpc/nct6776f/voltage/2)
|  |  +- 3VCC		   :	 3.36	3.344	3.376 (/lpc/nct6776f/voltage/3)
|  |  +- Voltage #5	 :	0.152	0.104	0.248 (/lpc/nct6776f/voltage/4)
|  |  +- Voltage #6	 :	1.696	1.696	1.696 (/lpc/nct6776f/voltage/5)
|  |  +- Voltage #7	 :	0.864	0.856	0.864 (/lpc/nct6776f/voltage/6)
|  |  +- 3VSB		   :	3.472	3.472	3.472 (/lpc/nct6776f/voltage/7)

How can I find out what each of the unnamed voltages are?

Share this post


Link to post
Share on other sites

kozlek,

 

 

there are a problem with the last version i lost all the sensors

please can you check it

 

thanks

Share this post


Link to post
Share on other sites

Hi

 

 

Can I ask for help one more time ?

 

the same problem here (8800gs g92)

 

gpu temp shows 15 (slice ver.) or 0 with kozlek latest ver.

 

should be something about 42-45

 

 

do I have to change something with nvclockx.kext???

 

this is my kernel.log

 

NVClockX: Card: 0, Device ID: 606, Architecture: 40000, G92 [GeForce 8800 GS]

 

NVClockX: BIOS successfully read

Apr 8 19:16:05 localhost kernel[0]: NVClockX: Parsing BIOS complete

Apr 8 19:16:05 localhost kernel[0]: NVClockX: Adding temperature sensors

 

with windows tools this value: NV_20400 (0x20400): 00000028 shows temp

 

I'm sure this is G92 arch.

maybe with my card I should use G84 getting temp method (I see 0x20400 value) in this method?

 

 

thank you for any help

 

 

OK

 

I've checked with NVClock Linux port and this is what I got:

 

 

-- General info --

Card: G92 [GeForce 8800 GS]

Architecture: G92 A2

PCI id: 0x0606

Subvendor id: 0x0000

GPU clock: 576.000 MHz

Bustype: PCI-Express

 

-- Shader info --

Clock: 1458.000 MHz

Stream units: 96 (11110011b)

ROP units: 12 (1110b)

-- Memory info --

Amount: 384 MB

Type: 192 bit DDR3

Clock: 848.568 MHz

 

-- PCI-Express info --

Current Rate: 16X

Maximum rate: 16X

 

-- Sensor info --

Sensor: NV50 GPU Internal Sensor (correction=32)

GPU temperature: 48C

 

-- VideoBios information --

Version: 62.92.1f.00.09

Signon message: GeForce 8800 GS VGA BIOS

Performance level 0: gpu 575MHz/shader 1438MHz/memory 850MHz/0.00V/100%

VID mask: 3

Voltage level 0: 0.95V, VID: 0

Voltage level 1: 1.00V, VID: 1

Voltage level 2: 1.05V, VID: 2

Voltage level 3: 1.10V, VID: 3

 

So my card (Architecture: G92 A2 PCI id: 0x0606) should use nv50 (not g84, not g92) get_temp function to get proper TEMP value

 

I've found that in info.cpp of nvclockx

 

 

case 0x600: /* G92 */

case 0x610: /* G92 */

arch = G84; //NV50;

 

so adding my device id (0x0606) and arch = nv50 should fix my problem???

 

can you kozlek make a small change in the code of nvclockx

 

thanks for help , great tool :)

Share this post


Link to post
Share on other sites

hi friend , why there is error in voltage?

I use Fake smc 4.0 and plug in intelthermal.kext and NuvotonNCT677x.kext

Lol

Voltage is very strange in +12 +5 -12 -5

where it is error?

post-410253-0-02485100-1333999744_thumb.png

Share this post


Link to post
Share on other sites

Hi, finally have fans and voltages showing in the latest release

 

 

 

Now I am trying to rename them and work out the gain for them in the SuperIOSensors.kext Info.plist

Here is the information displayed in the bios:

 

 

 

I have started making a new profile for my motherboard in the Nuvotron NCT677X Monitor section above the ASUS motherboards (as it appears all the profiles have been entered in alphabetical order):

 

<key>ASRock</key>
<dict>
  <key>Z68 Pro3-M</key>
  <dict>
  <key>FANIN0</key>
  <string>CPU Fan</string>
  <key>FANIN1</key>
  <string>Chassis Fan #1</string>
  <key>FANIN2</key>
  <string>Chassis Fan #2</string>
  <key>FANIN3</key>
  <string>Power Fan</string>
  <key>FANIN4</key>
  <string></string>			  
  </dict>
</dict>

 

Do I need to add all the keys that are in the other profiles? Or can I build it up as I work out which fan/temp/voltage is which?

Also, I have not been able to work out which voltages are the 5v and 12v from the dumps I got from AIDA64 and OpenHarwareMonitor.

 

The following is from the OpenHardwareMonitor dump

+- ASRock Z68 Pro3-M (/mainboard)
|  |
|  +- Nuvoton NCT6776F (/lpc/nct6776f)
|  |  +- CPU VCore	  :	0.944	0.944	1.192 (/lpc/nct6776f/voltage/0)
|  |  +- Voltage #2	 :	1.864	1.856	1.872 (/lpc/nct6776f/voltage/1)
|  |  +- AVCC		   :	3.376	 3.36	3.376 (/lpc/nct6776f/voltage/2)
|  |  +- 3VCC		   :	 3.36	3.344	3.376 (/lpc/nct6776f/voltage/3)
|  |  +- Voltage #5	 :	0.152	0.104	0.248 (/lpc/nct6776f/voltage/4)
|  |  +- Voltage #6	 :	1.696	1.696	1.696 (/lpc/nct6776f/voltage/5)
|  |  +- Voltage #7	 :	0.864	0.856	0.864 (/lpc/nct6776f/voltage/6)
|  |  +- 3VSB		   :	3.472	3.472	3.472 (/lpc/nct6776f/voltage/7)

How can I find out what each of the unnamed voltages are?

 

Good question. We could make a tests, see post #264

 

kozlek,

 

 

there are a problem with the last version i lost all the sensors

please can you check it

 

thanks

 

As usual I need kernel.log and IOReg dump. Please, provide them.

 

OK

 

I've checked with NVClock Linux port and this is what I got:

 

 

-- General info --

Card: G92 [GeForce 8800 GS]

Architecture: G92 A2

PCI id: 0x0606

Subvendor id: 0x0000

GPU clock: 576.000 MHz

Bustype: PCI-Express

 

-- Shader info --

Clock: 1458.000 MHz

Stream units: 96 (11110011b)

ROP units: 12 (1110b)

-- Memory info --

Amount: 384 MB

Type: 192 bit DDR3

Clock: 848.568 MHz

 

-- PCI-Express info --

Current Rate: 16X

Maximum rate: 16X

 

-- Sensor info --

Sensor: NV50 GPU Internal Sensor (correction=32)

GPU temperature: 48C

 

-- VideoBios information --

Version: 62.92.1f.00.09

Signon message: GeForce 8800 GS VGA BIOS

Performance level 0: gpu 575MHz/shader 1438MHz/memory 850MHz/0.00V/100%

VID mask: 3

Voltage level 0: 0.95V, VID: 0

Voltage level 1: 1.00V, VID: 1

Voltage level 2: 1.05V, VID: 2

Voltage level 3: 1.10V, VID: 3

 

So my card (Architecture: G92 A2 PCI id: 0x0606) should use nv50 (not g84, not g92) get_temp function to get proper TEMP value

 

I've found that in info.cpp of nvclockx

 

 

 

case 0x600: /* G92 */

case 0x610: /* G92 */

arch = G84; //NV50;

 

so adding my device id (0x0606) and arch = nv50 should fix my problem???

 

can you kozlek make a small change in the code of nvclockx

 

thanks for help , great tool :)

 

Just added.. Please, give feedback

 

hi friend , why there is error in voltage?

I use Fake smc 4.0 and plug in intelthermal.kext and NuvotonNCT677x.kext

Lol

Voltage is very strange in +12 +5 -12 -5

where it is error?

 

Sorry, I don't support slice's branch

 

I have Nuvoton NCT6775F which is partially working with this. Anything I can do to help bring full support?

 

See this post.

 

 09.04.12 12:29:07,000 kernel: NVClockX: [Warning] it seems your card isn't officialy supported yet 09.04.12 12:29:07,000 kernel: NVClockX: [Warning] please tell the author the pci_id of the card for further investigation 09.04.12 12:29:07,000 kernel: NVClockX: [Warning] continuing anyway 09.04.12 12:29:07,000 kernel: NVClockX: Adding temperature sensors 

Geräte-ID: 0x1201

 

Added!

Share this post


Link to post
Share on other sites

See this post.

 

I'm not sure if I understand correctly, because I'm failing to see where *exactly* you got the vraw values for 5V and 12V; It seems as though you're saying that should be the value that I currently have reporting from HWMonitor, but the screenshot you provide suggests otherwise. I obtained a dump from both Open Hardware Monitor, and HWMonitor (both in Windows), but I couldn't find your 'vraw' values in what you posted there, either.

 

I obtained my vref values from my BIOS:

vcore - ~1.240
+ 3.30 V - 3.216
+ 5.00 V - 5.064
+12.00 V - 12.830

 

Another downer about the reports I got from Windows is that neither program recognizes my chip as NCT6775F; instead, Open Hardware Monitor detects it as NCT6771F, and HWMonitor detects NCT6771for LPCIO and then NCT6776 for hardware monitors. Everest says W83677HG / NCT6771F.

 

I'm including what I've got so far.

HWMonitor.txt

voltages.txt

sensors.txt

post-338940-0-14736200-1334111485_thumb.png

Share this post


Link to post
Share on other sites

OK, I got some more information from another Windows app (HWinfo32) that corresponds to the information I got from OpenHardwareMonitor

OpenHardwareMonitor							   HWinfo32
CPU VCore	 :	0.944	0.944	1.192 (/lpc/nct6776f/voltage/0)   Vcore	   0.952 V
Voltage #2	:	1.864	1.856	1.872 (/lpc/nct6776f/voltage/1)   +12V	   12.355 V
AVCC		  :	3.376	3.36	3.376 (/lpc/nct6776f/voltage/2)	AVCC		3.376 V
3VCC		  :	 3.36	3.344	3.376 (/lpc/nct6776f/voltage/3)   +3.3V	   3.360 V
Voltage #5	:	0.152	0.104	0.248 (/lpc/nct6776f/voltage/4)   VIN4		0.160 V
Voltage #6	:	1.696	1.696	1.696 (/lpc/nct6776f/voltage/5)   +5V		 5.112 V
Voltage #7	:	0.864	0.856	0.864 (/lpc/nct6776f/voltage/6)   VIN6		0.992 V
3VSB		  :	3.472	3.472	3.472 (/lpc/nct6776f/voltage/7)   3VSB		3.472 V

So this would mean that 12V will be VIN1 in the Info.plist profile and 5V will be VIN5 correct?

These equate to Power Supply 2 and Power Supply 6 in HWMonitor.app right?

 

From my BIOS screenshot I get values of 1.184V, 12.302V, 5.088V and 3.360V for VCore, +12V, +5V and +3.3V

So to get the gain for +12V I have Vref=12.302, Vraw=1.864

Gain = (Vref - Vraw) / Vraw = (12.302 - 1.864) / 1.864 = 10.438 / 1.864 = 5.59978540772532

 

Therefore in the SuperIOSensors.kext Info.plist I would need to enter the following correct?

<key>VIN1</key>
  <dict>
  <key>gain</key>
  <integer>5599</integer>
  <key>name</key>
  <string>Main 12V</string>
  <key>offset</key>
  <integer>0</integer>
  <key>reference</key>
  <integer>0</integer>
</dict>

Share this post


Link to post
Share on other sites

Thanks for help but doesn't work... still gpu temp is 0

maybe adding my device id is not enough???

tried with latest installer :(

 

I'll try to compare some code with this version http://www.projectos...?showtopic=1246

with this, temp is ok 48c

 

thank you for help

 

Ok I think I found something...

(compared with this version http://www.projectos...?showtopic=1246)

 

1) info.cpp

there is no my pci id (case 0x606 arch = nv50) and it works

 

2) nv50.cpp

 

 

static int nv50_get_gpu_temp(void *sensor)

...

slope = 430.0/10000.0;

//here is something like this (working version)

 

if (nv_card->arch & (G92 | GT200)) {

correction = nv_card->bios->sensor_cfg.temp_correction<<2;

}

 

if(nv_card->debug)

...

}

 

3) nv50.cpp

kozlek's ver. /* Temperature monitoring section

 

 

/* Nearly all G92 boards use a ADT7473 except some Asus models. They don't use the bios data properly, so give it its own function */

nv_card->caps |= GPU_TEMP_MONITORING;

nv_card->sensor_name = (char*)STRDUP("GPU Internal Sensor", sizeof("GPU Internal Sensor"));

nv_card->get_gpu_temp = (int(*)(I2CDevPtr))g92_get_gpu_temp;

 

 

working version:

 

 

/* Nearly all G92 boards use a ADT7473 except some Asus models. They don't use the bios data properly, so give it its own function */

nv_card->caps |= GPU_TEMP_MONITORING;

if (g92_get_gpu_temp(0)>0) {

nv_card->sensor_name = (char*)strdup("ASUS GPU Internal Sensor");

nv_card->get_gpu_temp = (int(*)(I2CDevPtr))g92_get_gpu_temp;

} else if (g84_get_gpu_temp(0)>0) {

nv_card->sensor_name = (char*)strdup("G84 GPU Internal Sensor");

nv_card->get_gpu_temp = (int(*)(I2CDevPtr))g84_get_gpu_temp;

} else if (nv50_get_gpu_temp(0)>0) {

nv_card->sensor_name = malloc(64);

sprintf(nv_card->sensor_name,"NV50 GPU Internal Sensor (correction=%d)",

nv_card->bios->sensor_cfg.temp_correction<<2);

nv_card->get_gpu_temp = (int(*)(I2CDevPtr))nv50_get_gpu_temp;

}

 

Sorry about this code format, I'm not an expert

just try to understand the problem

with nvclock -i I see this: NV50 GPU Internal Sensor

so working function for my card is nv50_get_gpu_temp; ???

if so it checks temp_correction with G92 arch

 

it looks like my card is g92 arch but nv50_get_temp function shows right temp??? or I'm wrong :(

 

can I compile the code with changes using xcode???

just need to download nvclockx project, make changes and compile??? or this is not so easy for noob like me :)

thanks for any help

Share this post


Link to post
Share on other sites

ok after reading this post, i get that i need to change Info.plist in SuperIOSensors. The thing that i don't get is the relation between the output of HWMonitor and the labels in Info.plist. I mean the output looks like this:

 

1ceacd183674172.jpg

 

But in Info.plist, i don't have an entry named Main 3.3v, neither Auxiliary 3.3v. I just don't get where this names came from :S and what do i need to change after all. Please Kozlek some help here :P

Share this post


Link to post
Share on other sites

Hello, thx for your nice work !!!

 

kozlek-HWSensors-3b903ff

Asus P5K Pro (SuperIO: found Winbond W83627DHG on port=0x2e address=0x290)again

 

HW Monitor shows Ambient, should be System. Ambient Sensor is missing.

with the older W836x.kext i could change inside the info.plist TEMPIN0FORCED to Yes and System Sensor was shown right.

i never got both sensors at the same time (System/Ambient) inside a monitor app.

 

Voltage 5 V, 12 V still missing or wrong. tell me please if you need more info´s.

 

Just a question, is it a big deal to insert GPU Fan inside NVclock ?

Asus P5k Pro hwm_smbus.txt

Asus P5k Pro HWMonitor.txt

post-282470-0-32692800-1334209856_thumb.png

Share this post


Link to post
Share on other sites

@Carstiman i have a p5kc. I think that p5k pro and p5kc are almost identical so as you can see in my previous post i also have the same output as you in hwmonitor. The thing that i concluded by reading previous posts is that these are raw values read from the Winbond. We need to use "gain" for getting the +12v and +5v. I think that in mine +12v is Power Supply 2. Yours should be the same.

 

But as i mentioned in the previous post i can't figure out where i'm supposed to change the values in Info.plist, because i can't find the names that HWMonitor shows in the Info.plist :S

Share this post


Link to post
Share on other sites

Hi,

 

Thanks for the update.

Most values are showing, but my cpu fan isn't running.

 

Hope you can help, do you need some info from the setup?

 

Thanks.

post-326232-0-70943800-1334264749_thumb.png

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Slice
      The thread splitted from HWSensors3.
       
      Tools to testing Radeon state.
      Load RadeonPCI.kext  
      RadeonPCI.kext.zip
       
      How to load
      sudo chown -R root:wheel ~/Downloads/RadeonPCI.kext sudo chmod -R 755 ~/Downloads/RadeonPCI.kext sudo kextutil -v ~/Downloads/RadeonPCI.kext and use RadeonDump utility
      RadeonDump1.zip
       
      Commands to see temperature
      Polaris
      ./RadeonDump1 -n 6b0,c0300014
      SeaIsaland
      ./RadeonDump1 -n 200,c0300014
       
      Old families
      ./RadeonDump1 -r 714,7f4
       
      Other possible methods to find a register for temperature
      ./RadeonDump1 -n 6b0,c0300e0c
      ./RadeonDump1 -n 6b0,1c5
      ./RadeonDump -n 6b0,d8200ca4
      ./RadeonDump -r 59800,59810
      ./RadeonDump -r 678,680

       
       
       
      01.12.2017
      Latest solution RadeonMonitor.kext here
      works for RX 460,480,580
      not works for HD7790, R9 290X?
       
      06.12.2017
      Here works also with HD7790, R9 290X
       
      14.12.2017
      Support VEGA here
       
      13.12.2017
      Version for test modern cards
      RadeonPCI5.kext.zip
       
      06.04.2020
      Version for Catalina
      RadeonPCI5-v2.kext.zip
    • By kevin_1351
      tl;dr: VirtualSMC causes me a flood of log messages and correlated cpu spikes. FakeSMC doesn't.
       
      Hi, I have almost finalized my Huawei Matebook X Pro Opencore setup and everything is working very well besides wifi/bt ofc (which is about to change).
       
      However, I noticed how the cpu usage sometimes went up a little and when looking at the Console I could see a never-ending flood of:
      default 14:05:05.983292+0100 loginwindow clamshellStateChanged | Clamshell state changed: closed=0, shouldSleepWhenClosed=2 default 14:05:05.982975+0100 kernel PMRD: clamshell closed 0, disabled 0, desktopMode 0, ac 0 sleepDisabled 0 default 14:05:05.982996+0100 kernel PMRD: clamshell closed 0, disabled 0, desktopMode 0, ac 0 sleepDisabled 0 default 14:05:06.985932+0100 kernel PMRD: clamshell closed 0, disabled 0, desktopMode 0, ac 0 sleepDisabled 0 default 14:05:06.985949+0100 kernel PMRD: clamshell closed 0, disabled 0, desktopMode 0, ac 0 sleepDisabled 0 default 14:05:06.986134+0100 loginwindow clamshellStateChanged | Clamshell state changed: closed=0, shouldSleepWhenClosed=2 default 14:05:39.426574+0100 kernel PMRD: clamshell closed 0, disabled 0, desktopMode 0, ac 0 sleepDisabled 0 default 14:05:39.426729+0100 loginwindow clamshellStateChanged | Clamshell state changed: closed=0, shouldSleepWhenClosed=2 default 14:05:39.426585+0100 kernel PMRD: clamshell closed 0, disabled 0, desktopMode 0, ac 0 sleepDisabled 0 default 14:05:41.431085+0100 kernel PMRD: clamshell closed 0, disabled 0, desktopMode 0, ac 0 sleepDisabled 0 default 14:05:41.431097+0100 kernel PMRD: clamshell closed 0, disabled 0, desktopMode 0, ac 0 sleepDisabled 0 default 14:05:41.431246+0100 loginwindow clamshellStateChanged | Clamshell state changed: closed=0, shouldSleepWhenClosed=2 default 14:05:42.433068+0100 kernel PMRD: clamshell closed 0, disabled 0, desktopMode 0, ac 0 sleepDisabled 0 default 14:05:42.433227+0100 loginwindow clamshellStateChanged | Clamshell state changed: closed=0, shouldSleepWhenClosed=2 default 14:05:42.433078+0100 kernel PMRD: clamshell closed 0, disabled 0, desktopMode 0, ac 0 sleepDisabled 0 default 14:05:43.434453+0100 kernel PMRD: clamshell closed 0, disabled 0, desktopMode 0, ac 0 sleepDisabled 0 default 14:05:43.434465+0100 kernel PMRD: clamshell closed 0, disabled 0, desktopMode 0, ac 0 sleepDisabled 0 default 14:05:43.434622+0100 loginwindow clamshellStateChanged | Clamshell state changed: closed=0, shouldSleepWhenClosed=2 default 14:05:44.436155+0100 kernel PMRD: clamshell closed 0, disabled 0, desktopMode 0, ac 0 sleepDisabled 0 default 14:05:44.436166+0100 kernel PMRD: clamshell closed 0, disabled 0, desktopMode 0, ac 0 sleepDisabled 0  
      As you can see, multiple of these per second. Another guy with the same computer is also having this issue and posted a dsdt change to fix it. This fix didn't solve anything though
      He tried to limit the Notify call by implementing a state change requirement before calling Notify.
       
      Here is the original acpi:
      Scope (_SB) { Device (LID) { Name (_HID, EisaId ("PNP0C0D") /* Lid Device */) // _HID: Hardware ID Method (_LID, 0, NotSerialized) // _LID: Lid Status { Local0 = One Local0 = ^^PCI0.LPCB.EC0.RPIN (0x05, 0x06) If ((Local0 == 0x55)) { Local0 = Zero } Else { Local0 = One } ^^PCI0.GFX0.CLID = Local0 Return (Local0) } } Device (PWRB) { Name (_HID, EisaId ("PNP0C0C") /* Power Button Device */) // _HID: Hardware ID Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0B) } } } Scope (_SB.PCI0.LPCB.EC0) { Method (_Q81, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { Local0 = ^^^^LID._LID () If ((Local0 == Zero)) { ADBG ("LID-OFF") SGOV (0x02030009, Zero) SGOV (0x02060000, Zero) } Else { ADBG ("LID-ON") SGOV (0x02030009, One) SGOV (0x02060000, One) Notify (ALSD, 0x80) // Status Change } Notify (LID, 0x80) // Status Change } } Which he changed to: 
      Scope (_SB) { Device (LID) { Name (_OLD, One) // assuming everything else.. the lid should start open? Name (_HID, EisaId ("PNP0C0D") /* Lid Device */) // _HID: Hardware ID Method (_LID, 0, NotSerialized) // _LID: Lid Status { Local0 = One Local0 = ^^PCI0.LPCB.EC0.RPIN (0x05, 0x06) If ((Local0 == 0x55)) { Local0 = Zero } Else { Local0 = One } Return (Local0) } } Device (PNLF) { Name (_HID, EisaId ("APP0002")) // _HID: Hardware ID Name (_CID, "backlight") // _CID: Compatible ID Name (_UID, 0x0A) // _UID: Unique ID Name (_STA, 0x0B) // _STA: Status } Device (PWRB) { Name (_HID, EisaId ("PNP0C0C") /* Power Button Device */) // _HID: Hardware ID Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0B) } } } Scope (_SB.PCI0.LPCB.EC0) { Method (_Q81, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF { Local0 = ^^^^LID._LID () If ((Local0 == Zero)) { ADBG ("LID-OFF") SGOV (0x02030009, Zero) SGOV (0x02060000, Zero) } Else { ADBG ("LID-ON") SGOV (0x02030009, One) SGOV (0x02060000, One) Notify (ALSD, 0x80) // Status Change } If ((^^^^LID._OLD != Local0)) { Notify (LID, 0x80) // Status Change ^^^^LID._OLD = Local0 } } } Besides me not seeing any reason to declare _OLD in LID. The idea itself shouldn't be too bad right? Well, as I said, his fix didn't work.
       
      In fact, to prove that Method _Q81 doesn't have anything to do with the issue at all, I created a Clover/Opencore patch to change _Q81 to XQ81. This resulted in my lid not working at all of course, but the log flooding still persisted!
      So _Q81 doesn't have anything to do with the issue afaik.
       
      Now, further Google searches led me to a chinese post where he tied the issue to VirtualSMC. And indeed, by migrating to FakeSMC the issue is no more.
       
      Unfortunately, I'm very fond of VirtualSMC for various reasons. So I would very much like to keep it. If not I'd have to implement the old way of doing Battery monitoring etcetc. Which isn't very elegant and update proof as it requires DSDT patching.
       
      So, I do believe that the issue may very well be in the DSDT code, perhaps in the ambient light part. I'm not very skilled at this and just started studying the ACPI spec 3 days ago.
       
      Could someone please help me out? Thanks a lot in advance
       
       
      origin.zip
      OC.zip
    • By Slice
      Guys,
      Don't mix 6.18 and 3.41.
       
      There are three different projects for monitoring temperatures, voltages, fans speed and other hardware parameters:
      Initially it was FakeSMC with plugins for producing SMC keys for hardware parameters for different hardware. But sometimes ago Kozlek separated own version of FakeSMC and producing new set of plugins while I stay with good working version 3. So..
      1. FakeSMC v3 with Hardware Sensors3  which I still supported.
      2. FakeSMC v6 (rev1800) by Kozlek and supported by Rehabman. AFAIK both are abandoned and the project is not supported. Or may be maintained by coauthors.
      3. New VirtualSMC by vit9696 with own set of sensors kexts. It depends on Lilu.kext. The project is in active development.
      All three project have incompatible interfaces sensors<->SMC so they are incompatible with each other.
       
      There are applications for monitoring hardware parameters and they commonly depends on these projects.
      1. iStat, iStatMenu, iStatPro compatible with real Macs because they use SMC keys just like those presents in real Macs.
      2. HWMonitorSMC by Navi (initial codes from Kozlek)  used in my HWSensors3.
      3. HWMonitor by Kozlek with graphics like in IntelPowerGadget used in his HWSensors version.
      4. HWMonitorSMC2 by Vector_Sigma tends to be universal supporting all project. It also may use sensors information produces by Apple graphics and by IntelPowerGadget.
       
      Let us discuss here differences and common ideas for this projects.
       
×