sambow23 Posted February 6, 2022 Share Posted February 6, 2022 Hey, I've had this issue since I've started hackintoshing this laptop, heck even on Linux. There is a bug in the laptop's UEFI Firmware that is causing itself to eat CPU cycles for no reason, resulting in hot temps and horrible battery life on anything that isn't Windows. I was able to fix it in linux easily with a one liner command echo "disable" > /sys/firmware/acpi/interrupts/gpe6F My problem is somehow making a SSDT doing the exact thing. I found a post elsewhere with the exact same issue and was able to edit his DSDT to make the required changes, I just don't know how I would execute the same thing with a SSDT. The DSDT fix in question: Quote Fix: Removed Method "_L6F" My unpatched DSDT, it has a method _L6F which has many similarities to that of the post I found: DSDT.aml.zip Link to comment Share on other sites More sharing options...
Administrators Solution Hervé Posted February 6, 2022 Administrators Solution Share Posted February 6, 2022 I looked at the patch you took inspiration from and can only make the following comments: it's something dating back to 2016 it's something that applied to an Asrock Skylake desktop motherboard I'm not entirely convinced that the patch that consists of simply removing the entire method _L6F is fully applicable to your Dell Comet Lake laptop but Ok if you've established your high CPU utilisation derived from the same problem of having kernel_task process running at 100% CPU load of course. Did you see a similar ACPI _L6F related error message in your boot log? I really must ask what makes you so sure about your statement re: bugged UEFI firmware... Anyway, as a simpler alternative to DSDT patching, I would suggest that, in you Bootloader config, you simply rename method _L6F to XL6F (or _L6X) through the following ACPI patch/renaming: Find (Hex): 5F4C364600 Replace (Hex): 584C364600 (or 5F4C365800) because _Lxx methods are for interrupts xx (in hex). The only way you could remove method _L6F from ACPI through an SSDT would be to replace the entire _GPE scope that contained the method by a new one that would not contain it. It's feasible of course but really complicated (several instances of Scope (_GPE) in your DSDT, need to rename all methods and/or variables the scopes contain, etc.) when you may simply isolate/void method _L6F through the above renaming. Of course, you could also consider renaming _L6F to, say, XXXX to be more radical: Find (Hex): 5F4C364600 Replace (Hex): 5858585800 Failing that, just use a patched DSDT where method _L6F has been removed. Link to comment Share on other sites More sharing options...
sambow23 Posted February 6, 2022 Author Share Posted February 6, 2022 The latter hex replacements seemed to do the trick! Thank you so much for the assistance and dealing with my SSDT ignorance . Link to comment Share on other sites More sharing options...
Recommended Posts