Contribute
Register

Fan speed control on High Sierra

Status
Not open for further replies.
RehabMan, thank you. You have 2 ProBook-related repositories: HP-ProBook-4x30s-Fan-Reset and HP-ProBook-4x30s-DSDT-Patch.
In the second repo->patches I've found 04c_FanSpeed.txt:
#Maintained by: RehabMan for: HP Probook 4x30s/4x40s
# 04c_FanSpeed.txt

# This fan patch simply reports CPU Heatsink, Ambient, and Fan Speed.
# No manipulation of fan speed is done. You get default BIOS behavior.
# add fan readings only
into device label SMCD remove_entry;
into definitionblock code_regex . insert
begin
Device (SMCD)\n
{\n
Name (_HID, "FAN00000") // _HID: Hardware ID\n
// ACPISensors.kext configuration\n
Name (TACH, Package()\n
{\n
"System Fan", "FAN0",\n
})\n
Name (TEMP, Package()\n
{\n
"CPU Heatsink", "TCPU",\n
"Ambient", "TAMB",\n
//"Mainboard", "TSYS",\n
//"CPU Proximity", "TCPP",\n
})\n
// Actual methods to implement fan/temp readings/control\n
Method (FAN0, 0, Serialized)\n
{\n
Store (\_SB.PCI0.LPCB.EC0.FRDC, Local0)\n
If (Local0) { Divide (Add(0x3C000, ShiftRight(Local0,1)), Local0,, Local0) }\n
If (LEqual (0x03C4, Local0)) { Return (Zero) }\n
Return (Local0)\n
}\n
Method (TCPU, 0, Serialized)\n
{\n
Acquire (\_SB.PCI0.LPCB.EC0.ECMX, 0xFFFF)\n
Store (1, \_SB.PCI0.LPCB.EC0.CRZN)\n
Store (\_SB.PCI0.LPCB.EC0.DTMP, Local0)\n
Release (\_SB.PCI0.LPCB.EC0.ECMX)\n
Return (Local0)\n
}\n
Method (TAMB, 0, Serialized)\n
{\n
Acquire (\_SB.PCI0.LPCB.EC0.ECMX, 0xFFFF)\n
Store (4, \_SB.PCI0.LPCB.EC0.CRZN)\n
Store (\_SB.PCI0.LPCB.EC0.TEMP, Local0)\n
Release (\_SB.PCI0.LPCB.EC0.ECMX)\n
Return (Local0)\n
}\n
}\n
end;

But obviously a patch from one laptop won't work on a different one. And I think values like:
\_SB.PCI0.LPCB.EC0.ECMX;
\_SB.PCI0.LPCB.EC0.CRZN;
etc, should be different on my laptop. But how do I find them? I'm pretty new to hackintosh world. Right now my goal is to grab fan values from hardware and control them with istat Menus.

Also, I must say I don't have a rare-hardware laptop, It's just Asus K-series. Maybe there are ready-made fixes somewhere on the net I don't know about?

My original post on the ProBook fan solution:
https://tonymacx86.com/threads/new-fan-control-dsdt-for-silent-fan-at-higher-temps.72043/

You should not expect your laptop to be the same. Concepts similar, but details will all be different.
 
black.dragon74, thank you for reviewing my debug info! I've corrected every mistake you have found (except usb, which I will be working on).
But I still do not see Fan RPM in HWMonitor or istat menus. But I am able to see them in HWMonitorSMC = (
I feel like the solution is near but cant really grab it.

RehabMan, I see that you even control the speed of fans with SSDT-patch. I'm trying to at least grab that information and display it in HWMonitor.

Well, back to experimenting...
 
RehabMan, I see that you even control the speed of fans with SSDT-patch. I'm trying to at least grab that information and display it in HWMonitor.

Yes. Display of the fan RPM is a good first start.
 
Did u try the second SSDT-FAN.aml?
 
But I still do not see Fan RPM in HWMonitor or istat menus.
Those were some general errors, not related to "fans" issue.

Did you try latest FakeSMC and Plugins along with latest HWMonitor? Both CPU FAN and CPU TEMP are loading up fine in your IOREG.

Try with latest set of FakeSMC and report.
 
Did u try the second SSDT-FAN.aml?
Yes I did.

Try with latest set of FakeSMC and report.
I've been trying to get Fan info for the whole day today. With FakeSMC's from RehabMan, Slice, and Kozlek. But still no luck. Right now I use the latest RehabMan's FakeSMC-2017-1017 downloaded from his BitBucket.

And I get this results:
hwmonitor.jpeg hwmonitorSMC.jpeg istat.jpeg

System Fan only shows in HWMonitorSMC, but not in HWMonitor (from RehabMan's repo) or istat.

I have noticed a strange behavior:
When I was experimenting with CLover's kexts, I sometimes rebooted into a working FAN info! But after a second reboot the fan info disappeared.
Maybe it has something to do with caches? (But I tried the -f mode, and I updated kext caches many times).
Maybe it's a conflict in some patches/kexts? (How can I debug that?)
Maybe it's High Sierra bug, or FakeSMC on High Sierra bug?

Attaching my current OSX-Debug zip, if anyone can give me a hint, I would appreciate it!

//And back to reading...
 

Attachments

  • debug_1497.zip
    2.9 MB · Views: 109
Update: I'm now able to reproduce the Fan RPM appearance!
To show Fan RPM I do:
- Boot without power connected (on battery);
- Change anything in /EFI/Clover/kests/others/. It can be anything like adding/removing a kext;
- Reboot.
If I reboot again or perform this algorithm with power connected - no FAN RPM is displayed.

Another problem is that istat Menus doesn't have any options for FAN RPM control, it just displays them. Look at attached screenshots.

//Will read replies tomorrow, going to sleep, it's freaking 4:57AM here.
 

Attachments

  • hw2.jpeg
    hw2.jpeg
    71.5 KB · Views: 434
  • istat2.jpeg
    istat2.jpeg
    48.9 KB · Views: 418
  • istat3.jpeg
    istat3.jpeg
    43.8 KB · Views: 374
Update: I'm now able to reproduce the Fan RPM appearance!
To show Fan RPM I do:

If I reboot again or perform this algorithm with power connected - no FAN RPM is displayed.

Another problem is that istat Menus doesn't have any options for FAN RPM control, it just displays them. Look at attached screenshots.

//Will read replies tomorrow, going to sleep, it's freaking 4:57AM here.

You should install your kexts correctly.
Read post #2 of the guide:
https://www.tonymacx86.com/threads/guide-booting-the-os-x-installer-on-laptops-with-clover.148093/
 
RehabMan, you are right.
I had FakeSMC kexts installed in Clover/kexts/Othes, installing them to /L/E fixed the problem. black.dragon74's SSDT-Fan.aml is also mandatory to have in CLover/ACPI/patched.
Now Fan RPM is always visible in HWMontior.
But I can't control them yet.
 
Last edited:
RehabMan, you are right.
I had FakeSMC kexts installed in Clover/kexts/Othes, installing them to S/L/E fixed the problem. black.dragon74's SSDT-Fan.aml is also mandatory to have in CLover/ACPI/patched.
Now Fan RPM is always visible in HWMontior.
But I can't control them yet.
You shouldn’t worry about controlling “it” as ASUS implements FAN control very well in ACPI tables.

I have 3 ASUS laptops. Using my SSDT-FAN.aml I observed that Fan RPM to Temperature ratio is similar on both macOS and Windows.

Your DSDT method TACH() is similar to that of found on most ASUS laptops. So, “Custom Fan Control”? I wouldn’t bother about that.

Regards
 
Status
Not open for further replies.
Back
Top