Jump to content
Slice

[HOWTO] ACPI access for monitoring

48 posts in this topic

Recommended Posts

Give me your dsdt and AIDA64 report. I will try to do something.

In which kind format file you'll need?
 
HTML or .txt? This is for Aida64 report.

Share this post


Link to post
Share on other sites
Advertisement

Hey @Slice do you have any tip about it?

Ah, sorry, I forgot about this thread.

Will look asap.

Not a much sensors you have

 

 

Sensor               Propriedades do sensor:       Tipo de sensor   CPU, HDD, ACPI, PCH, SNB       Temperaturas:       Processador   44 °C (111 °F)       CPU Package   46 °C (115 °F)       CPU IA Cores   45 °C (113 °F)       CPU GT Cores   46 °C (115 °F)       CPU 1 / Núcleo 1   44 °C (111 °F)       CPU 1 / Núcleo 2   45 °C (113 °F)       Diodo PCH   57 °C (135 °F)       SanDisk SDSSDA240G   [ TRIAL VERSION ]       Valores de voltagens:       Núcleo CPU   1.086 V       VID CPU   1.086 V       Bateria   11.248 V       Potência Dissipada:       CPU Package   6.40 W       CPU IA Cores   4.35 W       CPU GT Cores   [ TRIAL VERSION ]       CPU Uncore   2.01 W       Taxa de carga da bateria   647.58 W

Your DSDT contains some kind of "FAN" names

                FAN1,   1, 
                FAN2,   1, 
                FANT,   1, 

But they are 1 bit so can't be used to calculate FAN  speed.

It is usual for notebooks that you can monitor only CPU temperature. Nothing more to do here.

Share this post


Link to post
Share on other sites

Hi @Slice!

 

@RehabMan said "Sounds like your configuration for ACPISensors/HwMonitor is not correct."

 

so I think making a DSDT might fix my CPU and GPU fan issue

 

The CPU fans start off low and spin up every once in a while, not sure why. After some time, they get stuck on full speed.

 

Here's screenshots of:

 

HWSensors:

 

post-1711084-0-37775300-1504558961_thumb.png 

 

 

Macs Fan Control:

 

post-1711084-0-98874200-1504558956_thumb.png

 

I pulled the original DSDT from Clover and searched for "FAN", "Thermal", "OperatingRegion", but didn't find anything.

 

I did find some values: 

 

    Name (TMF1, Zero)
    Name (TMF2, Zero)
    Name (TMF3, Zero)
 
perhaps they are related to the fan? 
 
I'm looking to make CPU0 and CPU1 and GPU fan speed show properly and allow the system to control them.

Share this post


Link to post
Share on other sites

I don't see your DSDT.

 

Thanks for taking a look. Here is the DSDT (zipped) and DumpLog.txt 

 

DSDT.aml.zip

 

DumpLog.txt

 

I checked AID64 in Windows 10 to get config info and testing HW when first building my HackPro and everything appeared to be working properly so the sensors are there.  I can get AIDA64 screenshots from Ubuntu if necessary, 

Share this post


Link to post
Share on other sites

@e97

It looks like you have desktop with ordinary LPC chip, proposedly ITE87xx.

                    Method (ENFG, 1, NotSerialized)
                    {
                        Acquire (MUT0, 0x0FFF)
                        INDX = 0x87
                        INDX = 0x87
                        LDN = Arg0
                    }

                    Method (EXFG, 0, NotSerialized)
                    {
                        INDX = 0xAA
                        Release (MUT0)
                    }

So you have to use one of FakeSMC plugin to get FAN information.

Look carefully your motherboard to find this chip anf test different plugins booting the system in Verbose mode. Or just look kernel log.

Share this post


Link to post
Share on other sites

@e97

It looks like you have desktop with ordinary LPC chip, proposedly ITE87xx.

                    Method (ENFG, 1, NotSerialized)
                    {
                        Acquire (MUT0, 0x0FFF)
                        INDX = 0x87
                        INDX = 0x87
                        LDN = Arg0
                    }

                    Method (EXFG, 0, NotSerialized)
                    {
                        INDX = 0xAA
                        Release (MUT0)
                    }

So you have to use one of FakeSMC plugin to get FAN information.

Look carefully your motherboard to find this chip anf test different plugins booting the system in Verbose mode. Or just look kernel log.

 

Thanks @Slice ! 

 

The version of FakeSMC I'm using is pretty old, I will try the latest ones with additional plug-ins. I see the ITE87xx here https://github.com/kozlek/HWSensors/tree/master/SuperIOSensors, but the latest binary at http://hwsensors.com/releases doesn't have SuperIOSensors.kext - is it built into the latest FakeSMC.kext or do I need to manually compile?

Share this post


Link to post
Share on other sites

Thanks @Slice ! 

 

The version of FakeSMC I'm using is pretty old, I will try the latest ones with additional plug-ins. I see the ITE87xx here https://github.com/kozlek/HWSensors/tree/master/SuperIOSensors, but the latest binary at http://hwsensors.com/releases doesn't have SuperIOSensors.kext - is it built into the latest FakeSMC.kext or do I need to manually compile?

HWSensors3 http://www.insanelymac.com/forum/topic/299861-hwsensors3/page-14?do=findComment&comment=2493773

is more recent then you pointed. Version 3.5 is newer then 6.1.xxx

And here

http://www.insanelymac.com/forum/topic/299861-hwsensors3/page-15?do=findComment&comment=2494222

Share this post


Link to post
Share on other sites

I want to show an example SSDT for ACPI monitoring

DefinitionBlock ("SSDT-10.aml", "SSDT", 2, "APPLE ", "Monitor", 0x00001000)
{
	External (\_SB.PCI0.LPCB.ECDV, DeviceObj)
	External (\_SB_.LID0, DeviceObj)
	External (\_SB_.LID0._LID, MethodObj)
	External (\_TZ.THM._TMP, MethodObj)

	Scope (\_SB.PCI0.LPCB.EC)
	{	
                Device (FSAM)
                {
                    Name (_HID, EisaId ("APP0111"))
                    Name (_CID, "monitor")
		    Name (PLID, 0xFFFF)
                    Method (MSLD, 0, NotSerialized)
                    {
			Local0 = \_SB_.LID0._LID ()
            		If (Local0 != PLID)
            		{
                	  PLID = Local0
                	  Notify (\_SB.LID0, 0x80) // Status Change
            	        }
                        Return (Local0)
                    }

                    Method (TSYS, 0, NotSerialized)
                    {
                        Local0 = \_TZ.THM._TMP ()
                        Return (Local0)
                    }
                }		
	}
}

1. Definition for the SSDT. Let it be SSDT-10.

2. Definitions for external methods found in my DSDT

3. Scope when the device will be place. This is EC device but it doesn't matter.

4. Name (PLID...) is an Previous LID state

5. Method (MSLD...) will get current state of LID, and store it into PLID. The idea from Rehabman.

6. If changed then Notify OS driver.

7. Method (TSYS..) having predefined name TSYS will monitor ThermalZone  temperature.

 

ACPIMonitor.Info.plist will have following lines

			<key>keysToAdd</key>
			<dict>
				<key>MSLD</key>
				<string>MSLD-1</string>
			</dict>

It means that ACPI method MSLD will return value for SMC key "MSLD" type "ui8 ", size=1.

It will be polled by OS or we should add the key to HWMonitorSMC for it to poll the key.

 

EDITED.

The easiest way to make polling for _LID is include a call for MSLD into TSYS method.

                    Method (TSYS, 0, NotSerialized)
                    {
                        Local1 = MSLD ()
                        Local0 = \_TZ.THM._TMP ()
                        Return (Local0)
                    }

because TSYS method is polled by HWMonitor every 1 second.

Share this post


Link to post
Share on other sites

EDITED.

Value from ThermalZone should be masked so the better to do

                    Method (TSYS, 0, NotSerialized)
                    {
			Local1 = MSLD()
                        Local0 = \_TZ.THM._TMP ()
			Local0 &= 0x7F
                        Return (Local0)
                    }

Share this post


Link to post
Share on other sites

ACPI method ACDC is predefined in ACPImonitor kext and produces three SMC keys

ACIN, ACEN, ACFP which mean AC power connected.

So you have to write new SSDT like this

DefinitionBlock ("SSDT-10.aml", "SSDT", 2, "APPLE ", "Monitor", 0x00001000)
{
  External (\_SB.PCI0.LPCB.EC, DeviceObj)
  External (\_SB_.LID0, DeviceObj)
  External (\_SB_.LID0._LID, MethodObj)
  External (\_TZ.THM._TMP, MethodObj)
  External (\_SB.ADP1._PSR, MethodObj)   //Power Source

  Scope (\_SB.PCI0.LPCB.EC)
  {
    Device (FSAM)
    {
      Name (_HID, EisaId ("APP0111"))
      Name (_CID, "monitor")
      Name (PLID, 0xFFFF)
      Name (PPSR, 0xFFFF)
      Method (MSLD, 0, NotSerialized)  // LID State
      {
        Local0 = \_SB_.LID0._LID ()
        If (Local0 != PLID)
        {
          PLID = Local0
          Notify (\_SB.LID0, 0x80) // Status Change
        }
        Return (Local0)
      }

      Method (TSYS, 0, NotSerialized)  //System Temperature
      {
        MSLD()                      //_LID polling
        Local0 = \_TZ.THM._TMP ()
        Local0 &= 0x7F
        Return (Local0)
      }

      Method (ACDC, 0, NotSerialized)  // AC Power connected
      {
        Local0 = \_SB.ADP1._PSR ()
        If (Local0 != PPSR)
        {
          PPSR = Local0
          Notify (\_SB.ADP1, 0x80) // Status Change
        }
        Return (PPSR)
      }
    }
  }
}

Share this post


Link to post
Share on other sites

Hello, I have extracted the DSDT using Ubuntu Linux but I don't know where to start to make my sensors working.

 

My MB: ASUS Rampage VI Extreme.

 

I am using HWSensors3 r152

DSDT.AML

Share this post


Link to post
Share on other sites

1. You have to learn how to edit DSDT and use it in your bootloader.

2. Then you should read the topic and ask if any word from it is unknown to you.

Share this post


Link to post
Share on other sites

Hi Slice,

I followed your guide and found ThermalZone (THM), however, I would like to find the fan speed inside my DSDT, but with no luck with some keywords. My laptop is DELL Inspiron 7370. Here I attached my DSDT.aml

 

ThermalZone:

Scope (_TZ)
    {
        ThermalZone (THM)
        {
            Method (_CRT, 0, NotSerialized)  // _CRT: Critical Temperature
            {
                Store (0x6B, Local0)
                Multiply (Local0, 0x0A, Local0)
                Add (Local0, 0x0AAC, Local0)
                Return (Local0)
            }

            Method (_TMP, 0, NotSerialized)  // _TMP: Temperature
            {
                Store (GENS (0x16, Zero, Zero), Local0)
                If (LLess (Local0, 0x0BA6))
                {
                    Store (0x0BA6, Local0)
                }

                Return (Local0)
            }
        }
    }

 

Hope you can give me some tips for fan sensor.

 

Thanks!

twsps

 

DSDT.aml

Share this post


Link to post
Share on other sites

Hi @Slice,

 

any ideas on my Dell laptop? I saw that you also have Dell laptops, so it may be similar that you can provide me some hints with fan sensor.


Thanks,

twsps

Share this post


Link to post
Share on other sites
On 7/28/2019 at 3:52 AM, Slice said:

There is no fan sensor in my dsdt.

Hi Slice,

 

I got the fan rpm by installing SMMSensor kext. The last sensor that isn't showing right value is the thermal zone, my thermal zone 1 temp keeps showing 25C. is my thermal zone temp GENS based on the above ThermalZone DSDT code?

 

Thanks,

twsps

Share this post


Link to post
Share on other sites

In the Dell ACPI system there are multiple methods based on SMM subsystem. One of them is Thermal Zone.

The method GENS() is SMM method.

    Scope (_TZ)
    {
        ThermalZone (THM)
        {
            Method (_CRT, 0, NotSerialized)  // _CRT: Critical Temperature
            {
                Local0 = 0x6B
                Local0 *= 0x0A
                Local0 += 0x0AAC
                Return (Local0)
            }

            Method (_TMP, 0, NotSerialized)  // _TMP: Temperature
            {
                Local0 = GENS (0x16, Zero, Zero)
                If (Local0 < 0x0BA6)
                {
                    Local0 = 0x0BA6
                }

                Return (Local0)
            }
        }
    }

You have to not mix SMMSensors with ACPI access.

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 Tushark2
      Hello,
      1st my laptop spec. 
      CPU - 2.53 GHz Intel Core i3 380m
      RAM - 6 GB 1333 MHz DDR3
      GPU -  1st gen Intel HD Graphics 288 MB
      Laptop - Dell Vostro 3500 series
      BT/WIFI - AzureWave BCM94352HMB
       
      I installed Olarila Mojave 10.14.6 and managed to install 1st gen intel HD graphics but it was bit laggy bcos this gnu doest support metal and its a old machine, so I decided to move to Olarila High Sierra.
      I installed it with most of things working fine expect some issues, for that I want to make SSDT and DSDT to make it run without glitches.
       
      I am atteching my sendme.zip , can some take a look to my current settings and suggest me some changes  
      (Olarila down from few days for me )
       
      Send me MacBook-Pro.zip
    • By _ivan_palmisano_
      Ho provato tutti i modi ma sono arrivato alla conclusione che ha bisogno di una patch DSDT.
      Ciao, ho recentemente un hackintosh nel mio laptop e devo risolvere l'attacco video HDMI che non ha eseguito quando collego il mio laptop alla TV.
      le foto con queste informazioni sono state fatte con un programma quando che avrei vinto 10 nell'altra foto l'informazione di hackintosh.
      Acer Aspire 5741g Modello High Sierra System!
      Caratteristiche:
      CPU: Intel Core I3 350M 2.27Ghz Arrandale 32nm Tecnologia
      Ram: 6: 00GB
      Grafica: Monitor Pnp generico (1366x768 Ghz) 1024mb Nvidia GeForce GT 320M (Acer Incorporated)
      Archiviazione: 465 GB Sata
      Driver Optiocal: Optiarc DVD RW- AS-7585H
      Audio: dispositivo audio ad alta degradazione
      Qualcuno può aiutarmi!?! E 'la terza volta che faccio questo post in questo gruppo visto che sono nuovo nel mondo hackintosh preferisco se qualcuno è capace a risolvere il mio problema che lo faccia in remoto così non faccio sbagli.
    • By MaLd0n
      ---INSTALLATION TUTORIAL---
       
      ---Original Post---
      https://olarila.com/forum/viewtopic.php?f=45&t=9172
       
      ---USB---
      https://pikeralpha.wordpress.com/2016/07/13/simple-skylake-usb-fix-no-kexts-required/
       
      ---CLOVER FOLDER---
       
      CLOVER.zip
       
       
      --MOBO
      GigaByte Z390 M Gaming



      --PROCESSOR
      Intel Core i9-9900K


      --COOLER
      CoolerMaster MasterLiquid ML120R RGB


      --MEMORY
      Corsair Dominator Platinum 16GB (2 x 8GB)


      --GPU
      Sapphiretech Radeon RX 590 8 GB GDDR5


       
      --SSD
      Samsung 970 EVO NVMe M2 Flash Drive


      --POWER SUPPLY
      EVGA 750 N1, 750W


      --WIRELESS
      TP-Link Archer T9E


      --BLUETOOTH
      Orico BTA-403


      --CASE
      Thermaltake View 21 Tempered Glass Edition


      --DSDT Patches--
      -FIX ERRORS AND WARNINGS -FIX ACPI ERRORS -REMOVE UNUSED SCOPES / DEVICES -HIGH PRECISION EVENT TIMER -SATA SERIE 10 ID -DMAC -REMOVE 22K LINES, PROBLEMATIC and UNUSED -FIX K.P in REBOOT -NVRAM -REAL TIME CLOCK -SLPB -DARWIN / WINDOWS 2015 -XHCI -PLUGIN TYPE -HDAS to HDEF -HDEF -REAL TIME CLOCK -ARTC -IRQs -SBUS -MIKEY -BUS1 -MCHC -ALS0 -SHUTDOWN -UAR1 -LAN -FWHD -USBX -PMCR -PPMC -XSPI -GMM -IMEI -EC -PNLF -ARPT -GFX0 -NVME -DTGP -ACQUIRE MUT0 0XFFFF -OPERATION REGION GPIO -MUTEX MUT0 0x00 -EXTERNAL REFERENCES -UNKNOWNOBJ -HDMI / HDAU -FULL RENAMED DEVICES  
      --SCREENSHOTS--





























      --BruceX--
       
      --USB-C-- test with SanDisk Ultra USB-STICK 128gb


       
      -Credits and thanks to the old and new people in the community who developed patches, kexts and bootloaders!
      Slice, Kabyl, usr-sse2, jadran, Blackosx, dmazar, STLVNUB, pcj, apianti, JrCs, pene, FrodoKenny, skoczy, ycr.ru, Oscar09, xsmile, SoThOr, RehabMan, Download-Fritz, Zenit432, cecekpawon, Intel, Apple, Oracle, Chameleon Team, crazybirdy, Mieze, Mirone, Oldnapalm, netkas, Elconiglio, artut-pt, ErmaC, Pavo, Toleda, Master Chief and family, bcc9, The King, PMheart, Sherlocks, Micky1979, vit9696, vandroiy2013, Voodoo Team, Pike R. Alpha, lvs1974, Austere.J, CVad, Sampath007, onemanosx, erroruser, Jenny David, Olarila Facebook Community, Hackintosh Facebook Community and many others!
      We're all here to have fun and learn from each other!
    • 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.
       
×