Jump to content
Slice

[HOWTO] ACPI access for monitoring

42 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

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 macinsane
      Update: Now running Mojave! Thanks to mojave2core! Yeah   Still using C2D in 2019!
      Inserted a nice and cheap GT710 that is not relying on nVidias Webdrivers and runs OOB under Mojave.
       
      Nice, seeing High Sierra running on this old but capable system! It rocks with a new ASUS GT1030
       
      Config:
      Gigabyte EP43-DS3L
      Core2Quad Q9300
      6 GB DDR2 RAM
      Asus GT1030 2GB
      Sandisk SSD 128GB
      TP-Link AC1200 Wifi USB
      Inateck KT4006 USB 3.0 PCIe (No boot)
       
      SMBIOS: iMac14,1
      Clover: 4297  4360
       
      A good deal of DSDT editing was necessary to get this machine to boot High Sierra but finally it works flawlessly, even sleep and wake!
      You NEED to have the DSDT put in place for installation because otherwise macOS doesn't recognize the SATA ports.
      There are a few important BIOS settings: SATA hast to be set to AHCI and "native" and HPET has to be run "64-bit", I'd recommend to disable IDE and the serial and parallel port.
      For the GT1030 nVidia Webdrivers are needed, have to boot with nv_disable=1 until you have them installed.
      You have to install Clover in legacy mode because this old fella does not support UEFI.
       
      Only downside: The so often recommended Inateck USB-card isn't recognized by BIOS, so you cannot boot from it. It works perfectly within macOS though, have the ac-Wifi connected to it.
      config.plist.zip
      DSDT.aml.zip
    • By fusion71au
      This is a brief guide on how to create a vanilla El Capitan (also same process for Sierra) OS X Installer USB with an updated prelinked kernel containing FakeSMC.

      It is tailored for those users who want to understand the “nuts and bolts” of how to create an installer and also to help brush up on their terminal skills (rather than have one made for them with the numerous automated “tools” available or even Apple’s createinstallmedia) :
       
       
      Specifically, it is also a “Proof of Concept” which shows that installation is possible without even having to rely on boot loader kext injection.

      Prerequisites
      Existing Yosemite installation (or Mavericks - see post#4 for steps 7,8) “Install OS X El Capitan.app" downloaded to the Applications folder Pacifist FakeSMC.kext - Slice or Kozlek branch Bootloader - Clover or Chameleon 8GB or larger USB drive (16GB recommended), formatted HFS+ (MBR or GUID) named “Installer”  
      Procedure
      1.  Boot into Yosemite with the kext-dev-mode=1 boot flag
      2.  Open OS X terminal and type the following lines, followed by <Enter> after each line.
          The image restore and file copying may take a while to complete, and at the end of the process, the Installer volume is renamed to “OS X Base System"....
       
      sudo -s hdiutil attach /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/SharedSupport/InstallESD.dmg asr restore -source /Volumes/OS\ X\ Install\ ESD/BaseSystem.dmg  -target /Volumes/Installer -erase -format HFS+ -noprompt -noverify rm /Volumes/OS\ X\ Base\ System/System/Installation/Packages cp -av /Volumes/OS\ X\ Install\ ESD/Packages /Volumes/OS\ X\ Base\ System/System/Installation cp -av /Volumes/OS\ X\ Install\ ESD/BaseSystem.dmg /Volumes/OS\ X\ Install\ ESD/BaseSystem.chunklist /Volumes/OS\ X\ Base\ System diskutil unmount /Volumes/OS\ X\ Install\ ESD exit 3.  Right click on the “OS X Base System” Volume and click “Get Info”
       

      4.  Click on the lock icon and untick “Ignore ownership on this volume”
       

      5.  Extract/Copy the El Capitan Kernels folder into /System/Library/ of the USB with Pacifist.  NB It is found in the "Essentials.pkg" in /System/Installation/Packages
       

      6.  Delete or Rename the original /System/Library/PrelinkedKernels/prelinkedkernel —> OG.prelinkedkernel
       

      7.  Copy FakeSMC.kext and other necessary kexts (e.g. VoodooPS2Controller.kext for laptops) into the /Library/Extensions folder of the installer USB using Finder.
       

      8.  Back in terminal, type the following lines, followed by <Enter> after each line to rebuild the prelinkedkernel…..
       
      sudo -s chmod -R 755 /Volumes/OS\ X\ Base\ System/Library/Extensions chown -R 0:0 /Volumes/OS\ X\ Base\ System/Library/Extensions touch /Volumes/OS\ X\ Base\ System/System/Library/Extensions kextcache -u /Volumes/OS\ X\ Base\ System exit Any errors should be noted but the output below is normal e.g.


      9. Install your Bootloader targeting the OS X Base System volume
       
       
       
       
      10.  Boot your system with the USB without injected kexts into the OS X Installer GUI....
       
       
       
       
       
      Post Install
      The original prelinked kernel in a fresh install of El Capitan will also lack FakeSMC ie it will only be linked to Apple signed kexts.  In order to boot into El Capitan the first time around without boot loader kext injection, the PLK needs to be rebuilt for the El Capitan volume like we did for the installer:
       
      1.  Boot into Yosemite with the kext-dev-mode=1 boot flag
      2.  Delete or Rename the original /System/Library/PrelinkedKernels/prelinkedkernel for the El Capitan volume —> OG.prelinkedkernel
      3.  Copy FakeSMC.kext and other necessary kexts (e.g. VoodooPS2Controller.kext for laptops) into the /Library/Extensions folder of El Capitan using Finder
      4.  Back in terminal, type the following lines, followed by <Enter> after each line to rebuild the prelinkedkernel.  In this example, the El Capitan volume is named "El_Capitan" - change if you have named it something else...
      sudo -s chmod -R 755 /Volumes/El_Capitan/Library/Extensions chown -R 0:0 /Volumes/El_Capitan/Library/Extensions touch /Volumes/El_Capitan/System/Library/Extensions kextcache -u /Volumes/El_Capitan exit 5. Install your Bootloader targeting the El Capitan volume.  This step is only necessary if you are installing El Capitan on a new drive without existing boot loader (not required if installing on a disk with existing boot loader beside Yosemite).
      6. Reboot your system without injected kexts into El Capitan!
       
       
      Other links
      The All-In-One Guide to Vanilla OS X for beginners
       
      Updates for Sierra and High Sierra   Custom Prelinkedkernel Generator Tool I have made a custom prelinkedkernel generator "PLK.tool" for Sierra + El Capitan.  Instructions:   1.  Download and extract the attached BaseSystem_PLK.tool.zip into your ~/Downloads folder.   2.  Copy any extra kexts necessary for booting your hack to ~/Downloads/BaseSystem/ExtraKexts (e.g. FakeSMC, VoodooPS2Controller), making sure SIP is disabled. 3.  Copy BaseSystem.dmg to ~/Downloads/BaseSystem  4.  Open terminal and run the following commands... cd ~/Downloads/BaseSystem chmod +x PLK.tool ./PLK.tool ---> supply your admin password ---> will place your new custom prelinkedkernel on the desktop.       macOS High Sierra bypass Firmware and MBR checks in post#13.
      BaseSystem_PLK.tool_ElCap.zip
      BaseSystem_PLK.tool_Sierra.zip
      BaseSystem_PLK.tool_Mojave.zip (need to run in Mojave to avoid dependency errors)
       
    • By Haive_Music
      Hey guys,
       
      I'm really hoping someone has the experience and ability to help me iron out the last remaining issue on my build.  
       
      The motherboard is: Gigabyte Z370 Aorus Gaming 7 and I'm running a Alpine Ridge thunderbolt card (Revision 2).   I've gotten everything working for the most part with the exception of Thunderbolt hotplug.  This is the last piece of the puzzle.  I've tried so many different DSDT/SSDT's, cable plugged in, and unplugged, without any luck at all. 
      I've managed to get my Focusrite Clarett 8Pre Thunderbolt working and it's showing up under the PCI section.  It works great, until I shut the device off and turn it back on.  I'd really like to try to get this hotplug issue sorted out, but I've had absolutely no luck so far.
       
      I've managed to get the Alpine Ridge NHI and USB controllers showing up in the PCI section too, but for some reason, the USB lists a bunch of ',,,,,,,,' after the name. 
       
       
      I'll be the first to admit - I don't really know a whole lot about what I'm doing with this stuff, but I've attached relevant files in hopes someone more experienced and knowledable can help me get this working.  
       
      Thanks guys!
      config.plist
      DSDT.aml
      John’s iMac.iojones

      SSDT-TB3.aml
    • By neo_fox33
      DSDT patched for GA-Z97x-Gaming 3 V2 NVIDIA
       
      ACPI Specification 6.2a
    • By kylon
      ACPI and Clover config for Acer Aspire v5-571PG intel i5-U IvyBridge
       
       
      Not Working:
      - sd card reader
       
       
      Tested on High Sierra 10.13.6 and Clover EFI 4678
       
       
      Notes:
      Somehow boot Clover EFI.
      You may need to disable UEFI and boot Clover as Legacy with EmuVariable.
      After that, you should install and boot macOS to install clover as legacy in your EFI partition.
      Now disable Secure Boot and enable UEFI Mode. (remove EmuVariable)
      You may need more steps if you are dual-booting with Windows.
       
       
      **To reset your BIOS, power on the pc and hold the power button for about 30-40 seconds or you can short G2101 (RAM SLOT 1)**
       
       
      Feel free to ask for help.
       
      You will need:
      Clover install options: Install in EFI Partition, Install boot0af, Enable OsxAptioFixDrv-64 and script RC Latest Clover config (acerAspirev5-571PG - CCE Bank) from here ATH9KFixup (here) WhateverGreen (here) Rehabman AppleIntelBacklightInjector (here) in L\E + rebuild cache Rehabman Voodoo PS2 Controller (here) Rehabman ACPI Battery Driver (here) vit9696 AppleALC (here) + Lilu (here) Mieze Realtek RTL8111 (here)
×