Contribute
Register

[Success] Guide Acer Aspire A715-74G-78KF

Joined
Dec 18, 2019
Messages
28
Motherboard
Acer Aspire A715-74G-78KF
CPU
i7-9750H
Graphics
UHD 630
Mac
MacBook Pro
Overview

This MacBookPro 15,3 is impressive !

Loaded with 32 GB of DDR4 2666 RAM, 6 core 12 threads i7-9750H, 2 NVMe slots and 1TB SDD. Internally it has 2 cooling fans which you hardly hear except in strenuous benchmark testing. Cinebech R15 score running Parallels Desktop 15 and starting up VM (Windows) is around 930 cb.

The Nvidia GT 1050 is disabled. UHD 630 is perfect for my needs.

In RSA shops this device is not on the shelves, only the 13 inch, much less the New MacBookPro 16 ! Super exited.

With HDMI external monitor still to be confirmed, the rest of the functionality is successfully working !! even iMessage, Continuity etc.

I am currently a Student studying a Bachelors degree in Computer and Information Science specializing in Application Development. My intention is to make this laptop as compatible as possible and to gain some experience outside my current scope of studies.

Warning:
Do not upgrade your bios to latest version. The product is shipped with Bios v1.08. Upgraded to the latest bios (V1.23) is a mistake. This bioss does not support SATA Mode AHCI. No way to change it in the bios after V1.23. The SATA mode setting disappeared. Fortunately the manufactures allowed me to backroll the bios back to V1.08.

What is Needed:

Components:
-Acer Aspire A715-74G-78KF: See Acer Aspire A715-74G for a complete list of details this product ships with.
Mid range laptop with a powerful coffee lake hexacore I7-9750H processor. UHD630 is perfect. Wont be gaming. 2 x M.2 slot for SDD + SATA drive

Hardrives installed:
- Samsung NVMe 960 Evo 250 gb. These are great drives to have. Although the ADATA SX8200PNP is also impressive in performance.
- ADATA SXB200PNP. This is also an NVMe drive 250gb. Speed comparison between the 2 drives are very similar. Been using another one in the iMac as primary startup drive for almost 18 months. No reason to believe this drive would not deliver on performance and cost less than Samsung NVME 960 Evo.
- KingMax SSD 960GB drive for all my work related stuff.

NVMe.png



Wifi:
-Broadcom BCM94352Z: The existing wifi adapter "Intel(R) Wi-Fi6 AX200 160MHz will not work.
To get WIFI/Bluetooth you need to change the Intel M.2 wifi card with this.

Memory:
Crucial Ballistic Sport
was not available in stores.
-KingMax - RAM (2x16) 32 GB (DDR4, Frequency: 2666MHz; Pin: 260-Pin;Bandwidth: 21.3GB/s;CAS Latency: CL=19; Voltage (VDD): 1.2V)


Screen:
-UHD 630

Operating system:
- MacOSX 10.14.6 Mojave (Starting MacOSX).
- MacOSX 10.15.2 Catalina (Upgraded to).

Tools Required:
- Kextbeast for installing kext to L/E,
- Clover Configurator to setup / configure config.plist (version Clover_v2.5k_r5097)
- The default clover config : config_UHD630.plist from Rehabman here (config_UHD630.plist).
- Hackintool to determine frame buffers and patch for both sound and graphics.


Bios settings

To start, set BIOS to Windows defaults.

Insure:
- Under Main set SATA Mode to AHCI (For windows the default setting is RST Premium with Optane)
- Under Advanced set Intel VTD to disabled. By default it is enabled for Windows. I have seen some posts on Tonymac indicating this setting to be dibbled. Only after installation on could enable it. Have not done that yet.
- Under security set Supervisor password and confirm password. This will allow you to set Secure Boot to disable
- Under Boot set Boot mode to UEFI and set Secure Boot to disabled.
- You can also set the boot priority. By default you will by installing Mojave via USB Installer and therefor you need to set boot priority order to first use USB device.


Note: The laptop has a discrete graphics card (Nvidia). It's been widely reported on this forums that MacOs does not support Nvidia drivers for laptops (specially for Mojave and Catalina). It would seem that it would not be able to disabled the graphics card in the bios. Disabling seems mostly preferred because of saving battery power. I will be exploring 2 options.


Preparing the USB and initial Installation

Install MacOS with the Guide of RehabMan to make a MacOS install USB. Briefly this entails:

Format my usb: using option 1 of RehabMan.
  • Option 1: MBR with a FAT32 partition for Clover and a separate HFS+J partition for the OS X installer.
Create Installer: After downloading macOS Mojave 10.14.6
In terminal type the following code:
Code:
sudo "/Applications/Install macOS Mojave.app/Contents/Resources/createinstallmedia" --volume  /Volumes/install_osx --nointeraction
where install_osx is your usb drive

Essential kext needed for first time installation: Copy these kexts to the Clover/kexts/Other directory for first time installation.
  1. FakeSMC.kext: https://github.com/RehabMan/OS-X-FakeSMC-kozlek
  2. USBInjectAll.kext: https://github.com/RehabMan/OS-X-USB-Inject-All
  3. VoodooPS2Controller.kext: https://github.com/RehabMan/OS-X-Voodoo-PS2-Controller (Remove the plugin kexts, VoodooPS2touchpad.kext and VoodooPS2mouse.kext, in VoodooPS2Controller.kext to make keyboard work and does not conflict with VoodooI2C.kext.)
  4. Lilu.kext: https://github.com/acidanthera/Lilu
  5. WhateverGreen.kext: https://github.com/acidanthera/WhateverGreen

Choose config_UHD630.plist file: from this repository: https://github.com/RehabMan/OS-X-Clover-Laptop-Config as default config.plist at /EFI/Clover/config.plist of install USB. You can copy the EFI directory to replace the EFI directory of your HD after installation completed.

Other kext required (describe below in sections) to make system features work:
  1. AirportBrcmFixup.kext(Release) for Wifi
  2. Realtek8111.kext for lan network
  3. BrcmFirmwareData.kext, BrcmPatchRAM3.kext and BrcmBluetoothInjector.kext for Bluetooth
  4. ACPIDebug.kext for debugging the AML and determine brightness keys. Remove from L/E after keys is known.
  5. AppleALC.Kext (Release) for audio
  6. USBInjectAll.kext for USB devices
  7. AppleBacklightFixup.kext for brightness adjustments
  8. Apply various patches

Post install fixes
After installation a few things did not work as expected.

Before fixing, applying patches to your DSDT and installing kernel extensions, generate your DSDT.aml files and decompile them to dsl.

The next sections from A to N assumes:
  • That you know how to successfully extract your DSDT and decompile them for consumption and applying patches where needed. If not, it is highly recommend reading Rehabman guide (3 times over) !!: https://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573/. It may seem overwhelming but over time you start learning from the greats. Hey you have to start somewhere.:clap::banghead::headbang:

  • That you understand how to use Hackintool.

NOTE: There is various guides available on tonymacx86 for applying your patches and where possible it is referenced.

PS: Extract AML from Bios:

1.Restart the laptop and press F4 and hold on Clover menu, this will allow you to extract the all the ".aml" files needed and is stored under EFI/CLOVER/.

2. Decompile ".aml" to ".dsl" which will be necessary for the next few steps
Code:
iasl -da -dl *.aml

A. Trackpad and mouse not working: Status (working)

Following these steps:

1.Open VoodooPS2Controller.kext by right click and select show package contents: https://github.com/RehabMan/OS-X-Voodoo-PS2-Controller. Remove the plugin kexts, VoodooPS2touchpad.kext and VoodooPS2mouse.kext, in VoodooPS2Controller.kext to make keyboard work.

2.Next, Open a terminal from your DSDT folder you have created before (you can drag and drop the folder to the Terminal icon in your dock to open a terminal pointing to your DSDT folder).

3.Next, open the new DSDT.dsl file with MaciASL.

4. In the left pane, apply "[GPIO] GPIO Controller Enable "SKL+" and "[Windows] Windows 10 Patch" in the "_VoodooI2C-Patches" section.

5. Go back to the MaciASL and search for "_SB.PCI0.I2C1" and look for the following code.

Code:
Scope (_SB.PCI0.I2C1)
    {
        Name (I2CN, Zero)
        Name (I2CX, Zero)
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (SDS1, I2CN)
            Store (One, I2CX)
            If (CondRefOf (\_SB.PCI0.I2C1.INC1))
            {
                INC1 ()
            }
        }
6.Next, add the following code just over Scope (_SB.PCI0.I2C1)
Code:
    Method (PKG3, 3, Serialized)
    {
      Name (PKG, Package (0x03)
    {
      Zero, Zero, Zero})
      PKG [Zero] = Arg0
      PKG [One] = Arg1
      PKG [0x02] = Arg2
      Return (PKG) /* \PKG3.PKG_ */
     }
7.Next, add the following code just after the Scope (_SB.PCI0.I2C1) and above your Trackpad device (TPD0).
Code:
Method (SSCN, 0, NotSerialized)
        {
        Return (PKG3 (SSH1, SSL1, SSD1))
        }
        Method (FMCN, 0, NotSerialized)
        {
        Name (PKG, Package (0x03)
        {
         0x0101, 0x012C, 0x62
        })
        Return (PKG) /* \_SB_.PCI0.I2C1.FMCN.PKG_ */
        }
8. Next, In CloverConfigurator under ACPI change the setting of _OSI -> XOSI and _STA -> XSTA

Screenshot 2020-01-18 at 19.56.11.png


Screenshot 2020-01-18 at 19.56.40.png



NOTE: After installing Voodoo drivers above and implementing the patches, the TrackPad under system Preference is coming up and working (Bluetooth have to be working, see section L below). The mouse on the Trackpad is also working.

trackpad.png



B. Disable Nvidia graphics: Status (successfully disabled)

Tonymacx86 forums widely report and recommenced that disabling Nvidia graphics saves battery power. There are 2 ways to do this, both yields the same results.

Option 2 was implemented, even though Option 1 is a less confusing:

1. Using SSDT-DiscreteSpoof: Download and use MaciASL to create a new dsl file. Paste the following contents inside the file:
Code:
DefinitionBlock ("", "SSDT", 2, "hack", "spoof", 0)
{
    Method(_SB.PCI0.PEG0.PEGP._DSM, 4)
    {
        If (!Arg2) { Return (Buffer() { 0x03 } ) }
        Return (Package()
        {
            "name", Buffer() { "#display" },
            "IOName", "#display",
            "class-code", Buffer() { 0xFF, 0xFF, 0xFF, 0xFF },
        })
    }
}
Compile the file and save as ACPI machine Language binary. Copy this file "SSDT-DiscreteSpoof.aml" to EFI/CLOVER/ACPI/patched location.

2. OR implementing RehabMan method for Disabling discrete graphics in dual-GPU laptops. This method was more challenging since SSDT's of this laptop are not the same and some implementation methods differ slightly. Both _INI and _OFF methods where found in SSDT-2-ACRPRDCT and SSDT-9-ACRPRDCT. After examining SSDT-2-ACRPRDCT changes were required to SSDT-9-ACRPRDCT.

The first 2 attempts failed horribly. After digging around, calling the _OFF method from inside the _INI method is not the way to go. After carefully evaluating the code, the _OFF method is within the scope of \_SB.PCI0.PEG0.PEGP hence, there was no need for External(\_SB.PCI0.PEG0.PEGP._OFF).
So change from:
Code:
Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (Zero, \_SB.PCI0.PEG0.PEGP._ADR)
             //added to turn nvidia/radeon off
            External(\_SB.PCI0.PEG0.PEGP._OFF, MethodObj)
        }
To this:
Code:
Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            Store (Zero, \_SB.PCI0.PEG0.PEGP._ADR)
             //added to turn nvidia/radeon off
            \_SB.PCI0.PEG0.PEGP._OFF ()
        }
The _OFF method were left unchanged. Compiled the file and saved as SSDT-9-ACRPRDCT.aml. Copy this file or "SSDT-DiscreteSpoof.aml" to your EFI/CLOVER/ACPI/patched location.

NOTE: SSDT-9-ACRPRDCT.aml and SSDT-DiscreteSpoof are mutually exclusive. Only one is needed!

How to verify: Without implementing one of the 2 methods above my About/System Report/Graphics/Display shows both UHD graphics 630 and Nvidia.

Without disable graphics.png


By implementing one of the above methods,only UHD Graphics 630 will show.

spoof.png



C. Enable Sound: Status (AppleALC working)
  • Audio deviceID: ALC255 (ven id:10ec, dev id:0255) was determined using windows.

Realtek audio.png


After determining the Device ID install Kextbeast, Clover Configurator and Hackintool which will be used in the next few steps to allow audio to work.

1. Install the following Kexts from Rehabman:

- AppleALC.Kext (Release).
- Lilu.kext (Release).

These kexts will be under placed in /Library/Extensions/.

1.1 In order to install Kext use KextBeast. To do this take the above mentioned Kexts and place them on the desktop(Make sure no other Files or other are on your Desktop but the Kexts).

1.2. Run KextBeast installer

1.3. Select the destination folder which in this case is /Library/Extensions since they are 3rd Party Kexts.

1.4 Reboot your Machine.

2.Next, Open Config.plist with Clover Configurator. Go to Devices and under Audio set Inject to no and ResetHDA to yes and then Save Changes.

Clover Config Audio Settings.png


3.Next, Open Hackintool. Go to Patch and select Audio Devices.
Hackintool step 3 .png


4. Next, Go to Advanced. Make sure the same Patch Options have been selected.

Hackintool step  4.png


5. Next, Go to Audio. Select the Audio Device ALC225 and change Layout ID to 3, others may also work.

Hackintool step 5.png


6.Next, Go back to Patch and Generate Patch. To make it Easier, select the generated code from <Key>...till </string> as shown below and copy the code. This code will be copied to Config.plist under the CORRECT
Device ID <dict> to </dict>

Hackintool step 6.png


7. Next, open Config.plist with TextEdit. Proceed by pasting the selected code from Hackintool and save the changes under Devices properties.

Screenshot 2019-12-29 at 11.52.24.png


Reboot and Verify.

D. Battery status not visible: Status (ACPIBatterManager Working 100%)

Initially, battery status did not work using:

- ACPIBatterManager with FakeSMC (See RehabMan/OS-X-ACPI-Battery-Driver).

Following Rehabman's Guide: guide-how-to-patch-dsdt-for-working-battery-status.116102/ to the T. My DSDT EC section did not have fields indicated to be more than 8 bit which simplified things (see this post guide-how-to-patch-dsdt-for-working-battery-status.116102/post-2051930)

Feartek and Freejack quickly indicated that Status method needed to be Specified:

Code:
Method (_STA, 0, NotSerialized)  // _STA: Status
{
    Return (0x1F)
    /* Remove the following code block from DSDT
    If (ECOK ())
    {
      If (^^EC0.BOL0)
       {
         Return (0x1F)
       }
      Else
      {
        Return (0x0F)
      }
    }
    Else
    {
      Return (0x1F)
    }
    */
}
and disable _STA to XSTA patch in clover config.plist.

NOTE: The _STA method is mandatory for battery status and 0x1F must be returned (see post guide-how-to-patch-dsdt-for-working-battery-status.116102/post-2054229)

E. Sleep: Status (working)

Sleep is working like it should.
The following output is generated when sleep is invoked at 22:18 and wake at 05:10.
To test, use the following command in terminal and set your own date / time:
Code:
log show --style syslog --start '2020-01-04 15:22:00' | fgrep "sleep"

Output generated:
Code:
2020-01-07 22:18:10.443342+0200  localhost kernel[0]: PMRD: user inactive 3 min, time to idle sleep 0 min
2020-01-07 22:18:10.443508+0200  localhost powerd[70]: [powerd:sleepWake] vm.darkwake_mode: 0 -> 0
2020-01-07 22:18:10.443710+0200  localhost kernel[0]: PMRD: sleep timer expired
2020-01-07 22:18:10.444433+0200  localhost kernel[0]: PMRD: prevent idle sleep list: IODisplayWrangler- (0)
2020-01-07 22:18:10.463049+0200  localhost kernel[0]: PMRD: sleep reason Idle Sleep
2020-01-07 22:18:10.463141+0200  localhost securityd[96]: [com.apple.securityd:powerwatch] can system sleep
2020-01-07 22:18:10.463209+0200  localhost locationd[99]: [com.apple.locationd.Utility:Utility] {"msg":"received IOKit notification", "sleepNotification":"CanSystemSleep", "keepAliveClientCount":0}
2020-01-07 22:18:10.463300+0200  localhost CommCenter[411]: (libIPTelephony.dylib) [com.apple.ipTelephony:ims] [power]: system can sleep
2020-01-07 22:18:10.463374+0200  localhost sharingd[509]: [com.apple.sharing:Daemon] Device can sleep
2020-01-07 22:18:10.463659+0200  localhost CalNCService[429]: (PersistentConnection) [com.apple.PersistentConnection:timer] System can sleep query received: kIOMessageCanSystemSleep
2020-01-07 22:18:10.543595+0200  localhost securityd[96]: [com.apple.securityd:powerwatch] system will sleep
2020-01-07 22:18:10.543600+0200  localhost securityd[96]: [com.apple.securityd:SecServer] 0x7ffee70159d0 will sleep
2020-01-07 22:18:10.543791+0200  localhost bluetoothd[112]: (IOBluetooth) [com.apple.bluetooth:CBXPCManager] kIOMessageSystemWillSleep; going to sleep...
2020-01-07 22:18:10.544453+0200  localhost CommCenter[411]: (libIPTelephony.dylib) [com.apple.ipTelephony:ims] [power]: system will sleep
2020-01-07 22:18:10.544460+0200  localhost sharingd[509]: [com.apple.sharing:Daemon] Device will sleep
2020-01-07 22:18:10.544558+0200  localhost powerd[70]: [powerd:sleepWake] sendNoRespNotification: 0x19
2020-01-07 22:18:10.544560+0200  localhost identityservicesd[412]: [com.apple.IDS:IDSDaemon] System going to sleep
2020-01-07 22:18:10.545717+0200  localhost locationd[99]: [com.apple.locationd.Utility:Utility] {"msg":"received IOKit notification", "sleepNotification":"SystemWillSleep", "keepAliveClientCount":0}
2020-01-07 22:18:10.545955+0200  localhost CalNCService[429]: (PersistentConnection) [com.apple.PersistentConnection:timer] System will sleep: kIOMessageSystemWillSleep
2020-01-07 22:18:10.546113+0200  localhost CalNCService[429]: (PersistentConnection) [com.apple.PersistentConnection:timer] Suspended timer for imminent system sleep
2020-01-07 22:18:10.582369+0200  localhost kernel[0]: PMRD: idle sleep timer disabled
2020-01-07 22:18:10.583165+0200  localhost powerd[70]: [powerd:sleepWake] AppWoke:com.apple.bluetoothd-blueavengers Reason:BlueAvengers: Toggle beacon state
2020-01-07 22:18:10.583235+0200  localhost powerd[70]: [powerd:sleepWake] Wake reason: "<private>"  identity: "<private>"
2020-01-07 22:18:11.506768+0200  localhost kernel[0]: (AppleIntelCFLGraphicsFramebuffer) [IGFB][INFO   ] Saving info before sleep from FB-0
2020-01-07 22:18:11.506769+0200  localhost kernel[0]: (AppleIntelCFLGraphicsFramebuffer) [IGFB][INFO   ] [Transition_sleep] Attempting sleep
2020-01-07 22:18:11.892101+0200  localhost kernel[0]: (AppleIntelCFLGraphicsFramebuffer) [IGFB][INFO   ] [Transition_sleep] FB0 power state transition complete. Returning at 12377395153
2020-01-07 22:18:11.959569+0200  localhost loginwindow[132]: [com.apple.loginwindow.logging:Standard] SleepWakeCallback_block_invoke |      Ignore system sleep, we trigger on display sleep only
2020-01-07 22:18:12.557628+0200  localhost kernel[0]: PMRD: System sleep prevented by kPMCPUAssertion
2020-01-07 22:18:25.573401+0200  localhost kernel[0]: PMRD: sleep reason Idle Sleep
2020-01-07 22:18:25.628050+0200  localhost powerd[70]: [powerd:sleepWake] chooseStandbyDelay(): lowBattery = false, battery powered = true, capacity=100, lowBatteryThreshold=50; chosen delay=86400
2020-01-07 22:18:25.645631+0200  localhost kernel[0]: PMRD: sleep factors 0x2a00d6 , LidOpen, ACPower, StandbyNoDelay, StandbyDisabled, USBExternalDevice, AutoPowerOffDisabled, ExternalDisplay, LocalUserActivity
2020-01-07 22:18:25.645639+0200  localhost kernel[0]: PMRD: sleep params v2, type 7, flags 0x0, wake 0x187dd0f, timer 0, poweroff 0
2020-01-07 22:18:25.645645+0200  localhost powerd[70]: [powerd:sleepWake] Eligible for Standby: 0
2020-01-07 22:18:25.645646+0200  localhost powerd[70]: [powerd:sleepWake] standbyDelay:86400 eligibleForStandby:0 elapsedTime:0 gDelta2Standby:86400
2020-01-07 22:18:25.645709+0200  localhost powerd[70]: [powerd:sleepWake] Entering Sleep state due to 'Idle Sleep'
2020-01-07 22:18:25.646046+0200  localhost powerd[70]: [powerd:sleepWake] connectionFireNotification: 0x0
2020-01-07 22:18:25.646411+0200  localhost dasd[103]: (DuetActivitySchedulerDaemon) [com.apple.duetactivityscheduler:powernap] Entering sleep
2020-01-07 22:18:25.646862+0200  localhost bluetoothd[112]: (SPOwner) [com.apple.icloud.SPOwner:powerManagement] Network off sleep date is not setup yet. Wake date cannot be calculated without baseline.
2020-01-07 22:18:27.952956+0200  localhost powerd[70]: [powerd:sleepWake] No need to wake to check remaining battery capacity because we'll already be in standby by then (battery check in 180000.000000 s, but standby is in 86400 s)
2020-01-07 22:18:28.278397+0200  localhost kernel[0]: PMRD: sleep factors 0x2a08c6 , LidOpen, ACPower, StandbyDisabled, USBExternalDevice, RTCAlaramScheduled, AutoPowerOffDisabled, ExternalDisplay, LocalUserActivity
2020-01-07 22:18:28.278406+0200  localhost kernel[0]: PMRD: sleep params v2, type 7, flags 0x0, wake 0x187dd0f, timer 0, poweroff 0
2020-01-07 22:18:28.548566+0200  localhost kernel[0]: PMRD: clamshell closed 0, disabled 1, desktopMode 1, ac 1 sleepDisabled 0
2020-01-07 22:18:28.548568+0200  localhost kernel[0]: PMRD: clamshell closed 0, disabled 1, desktopMode 1, ac 1 sleepDisabled 0
2020-01-07 22:18:28.858036+0200  localhost kernel[0]: (VoodooI2C) VoodooI2CControllerDriver::pci8086,a368 Going to sleep
2020-01-07 22:18:28.859778+0200  localhost kernel[0]: (VoodooI2C) VoodooI2CPCIController::pci8086,a368 Going to sleep
2020-01-07 22:18:28.860401+0200  localhost kernel[0]: (VoodooI2CHID) VoodooI2CHIDDevice::ELAN0504 Going to sleep
2020-01-07 22:18:28.913303+0200  localhost kernel[0]: (VoodooI2C) VoodooI2CControllerDriver::pci8086,a369 Going to sleep
2020-01-07 22:18:28.931575+0200  localhost kernel[0]: (VoodooI2C) VoodooI2CPCIController::pci8086,a369 Going to sleep
2020-01-07 22:18:28.932241+0200  localhost kernel[0]: (AppleIntelCFLGraphicsFramebuffer) [IGFB][INFO   ] Saving info before sleep from FB-1
2020-01-07 22:18:28.932242+0200  localhost kernel[0]: (AppleIntelCFLGraphicsFramebuffer) [IGFB][INFO   ] [Transition_sleep] Attempting sleep
2020-01-07 22:18:28.986624+0200  localhost kernel[0]: (AppleIntelCFLGraphicsFramebuffer) [IGFB][INFO   ] Saving info before sleep from FB-2
2020-01-07 22:18:28.986669+0200  localhost kernel[0]: (AppleIntelCFLGraphicsFramebuffer) [IGFB][INFO   ] [Transition_sleep] Attempting sleep
2020-01-07 22:18:29.432154+0200  localhost kernel[0]: PMRD: sleep factors 0x2a08c6 , LidOpen, ACPower, StandbyDisabled, USBExternalDevice, RTCAlaramScheduled, AutoPowerOffDisabled, ExternalDisplay, LocalUserActivity
2020-01-07 22:18:29.432168+0200  localhost kernel[0]: PMRD: sleep params v2, type 7, flags 0x0, wake 0x187dd0f, timer 0, poweroff 0
2020-01-08 05:10:31.000062+0200  localhost kernel[0]: PMRD: clamshell closed 0, disabled 1, desktopMode 1, ac 1 sleepDisabled 0
2020-01-08 05:10:31.000065+0200  localhost kernel[0]: PMRD: clamshell closed 0, disabled 1, desktopMode 1, ac 1 sleepDisabled 0
2020-01-08 05:10:31.003777+0200  localhost powerd[70]: [powerd:sleepWake] Updating wake start timestamp to 12395090003830
2020-01-08 05:10:31.282491+0200  localhost locationd[99]: [com.apple.locationd.Utility:Utility] {"msg":"received IOKit notification", "sleepNotification":"SystemWillPowerOn", "keepAliveClientCount":0}
2020-01-08 05:10:31.300714+0200  localhost powerd[70]: [powerd:sleepWake] No need to refresh inactivity prediction: phase=0, start=600166800.000000, now=600145831.300713
2020-01-08 05:10:31.300892+0200  localhost powerd[70]: [powerd:sleepWake] sendNoRespNotification: 0x801f
2020-01-08 05:10:31.568691+0200  localhost kernel[0]: PMRD: idle sleep timer disabled
2020-01-08 05:10:31.604771+0200  localhost kernel[0]: PMRD: clamshell closed 0, disabled 1, desktopMode 1, ac 1 sleepDisabled 0
2020-01-08 05:10:31.604773+0200  localhost kernel[0]: PMRD: clamshell closed 0, disabled 1, desktopMode 1, ac 1 sleepDisabled 0
2020-01-08 05:10:31.605226+0200  localhost kernel[0]: (AppleSMC) Previous sleep cause: 5
2020-01-08 05:10:31.876902+0200  localhost kernel[0]: PMRD: prevent idle sleep list: IODisplayWrangler+ (1)
2020-01-08 05:10:31.877230+0200  localhost kernel[0]: PMRD: idle sleep timer disabled
2020-01-08 05:10:31.877930+0200  localhost powerd[70]: [powerd:sleepWake] Cancelling dark wake update capabilities timer
2020-01-08 05:10:31.877986+0200  localhost powerd[70]: [powerd:sleepWake] vm.darkwake_mode: 0 -> 0
2020-01-08 05:10:32.141124+0200  localhost kernel[0]: (AppleIntelCFLGraphicsFramebuffer) [IGFB][ERROR  ] setAttribute called when FB0 is in a sleep state - attribute: 'pwrs'
2020-01-08 05:10:32.612272+0200  localhost kernel[0]: (AppleIntelCFLGraphicsFramebuffer) [IGFB][INFO   ] [Transition_wake] FB0 Lighting up display in resume from sleep
2020-01-08 05:10:32.651510+0200  localhost kernel[0]: (AppleIntelCFLGraphicsFramebuffer) [IGFB][ERROR  ] setAttribute called when FB1 is in a sleep state - attribute: 'pwrs'
2020-01-08 05:10:33.150087+0200  localhost kernel[0]: (AppleIntelCFLGraphicsFramebuffer) [IGFB][ERROR  ] setAttribute called when FB2 is in a sleep state - attribute: 'pwrs'
2020-01-08 05:10:33.553132+0200  localhost powerd[70]: [powerd:sleepWake] Updating wake end timestamp to 12397643100743
2020-01-08 05:10:33.553792+0200  localhost powerd[70]: [powerd:sleepWake] Wake from Normal Sleep [CDNVA] : due to XDCI CNVW GLAN/UserActivity Assertion
2020-01-08 05:10:33.555285+0200  localhost powerd[70]: [powerd:sleepWake] <private>
2020-01-08 05:10:33.555845+0200  localhost powerd[70]: [powerd:sleepWake] sendNoRespNotification: 0x1f
2020-01-08 05:10:33.991295+0200  localhost kernel[0]: (AppleIntelCFLGraphicsFramebuffer) [IGFB][INFO   ] [DPCD_Info] FB0: VSC SDP extention [colorimetry_supported] = 0  VSC Ext VESA SDP support = 0 VSC Ext CEA SDP supported = 0 and Sink sleep to wake timeOut request = 0
2020-01-08 05:10:33.994048+0200  localhost locationd[99]: [com.apple.locationd.Utility:Utility] {"msg":"received IOKit notification", "sleepNotification":"SystemHasPoweredOn", "keepAliveClientCount":0}
2020-01-08 05:10:37.248182+0200  localhost powerd[70]: [powerd:sleepWake] Updating wake start timestamp to 12395276126594
2020-01-08 05:10:50.202989+0200  localhost kernel[0]: PMRD: clamshell closed 0, disabled 1, desktopMode 1, ac 1 sleepDisabled 0
2020-01-08 05:10:50.202994+0200  localhost kernel[0]: PMRD: clamshell closed 0, disabled 1, desktopMode 1, ac 1 sleepDisabled 0
2020-01-08 05:10:50.203131+0200  localhost kernel[0]: PMRD: clamshell closed 0, disabled 0, desktopMode 1, ac 1 sleepDisabled 0
2020-01-08 05:10:50.203136+0200  localhost kernel[0]: PMRD: clamshell closed 0, disabled 0, desktopMode 1, ac 1 sleepDisabled 0
2020-01-08 05:11:05.441585+0200  localhost kernel[0]: PMRD: idle sleep timer enabled
At sleep battery status was fully charged. When wake, status was 99%

TODO: Need to understand the [IGFB][ERROR] at wake.


F. USB devices: Status (all working)

G. Native Power Management: Status (all working)

Using Rehabman's guide here: https://www.tonymacx86.com/threads/guide-native-power-management-for-laptops.175801/.

Since my SMBios is MacBookPro15,3 and HWPenable is not so experimental anymore, use HWPEnable option as follows:

Screenshot 2020-01-08 at 05.42.11.png


With config.plist/ACPI/SSDT/Generate/PluginType=true. The average power usage is around 2,3 Watts. Battery lifetime is about 3:30 hours depending how hard the cpu works.

Power Usage.png


NOTE: In an effort to decrease CPU idle, you may want to try XCPM. This does work, and it is possible to decrease CPU idle to around 800 MHz or 0.8 GHZ. However, Cinebench R15 reveals slightly better performance using HWPEnable.

H. Built-in Webcam & built-in internal Microphone: Status (all working)

System Report show that the built-in Webcam is:
- Model ID: UVC Camera VendorID_1032 ProductID_41056
- Unique ID: 0x145000000408a060

This is a USB Webcam that is connected to HS05 on port 0x05.

Opening Facetime, confirmed that the Webcam and the microphone is also working.

webcam.png


USB Cam.png


I. Adjusting the brightness on a laptop: Status (all working)

In order to fix the brightness and enable a working slider there are 2 methods to use Method 1- Whatevergreen and Method 2- Rehabman.

Method 1 was first used but run into a bit of an issue regarding the Brightness it seems as if the Max Brightness was about 60% of what it should be, making the Screen darker.

Proceeded to use Rehabman's method(Method 2) which entailed:

1. Using SSDT-PNLF.aml (from release) and placing it in EFI/ACPI/Patched.
2. Placing AppleBacklightFixup.kext (Found in SSDT-PLNF.aml)in /Library/Extensions/ using Kextbeast and in EFI/CLOVER/kexts/other.
3. Restart

However, by placing the above mentioned in the necessary folders and discovered that the Screen Keeps going blank.

After doing some research a solution was found which was able to fix the brightness.

1. Remove the AppleBacklightFixup.kext from /Library/Extensions/ and copied to EFI/CLOVER/kexts/other.

2. Installing SSDT.PNLF.aml produced a black screen with long wait. However, installing SSDT-PNLFCFL.dsl fixed this issue. Here is the code snippet:

Code:
/*

DefinitionBlock ("", "SSDT", 2, "ACDT", "PNLF", 0x00000000)
{
    Device (_SB.PCI0.IGPU.PNLF)
    {
        Name (_ADR, Zero)  // _ADR: Address
        Name (_HID, EisaId ("APP0002"))  // _HID: Hardware ID
        Name (_CID, "backlight")  // _CID: Compatible ID
        Name (_UID, 0x13)  // _UID: Unique ID
        Name (_STA, 0x0B)  // _STA: Status
    }
}
This seemed to have fixed the Slider bar as well as the Level of brightness. The next step is to enable the brightness keys.

A screenshot of the working Slider-bar here:

Screenshot 2020-01-19 at 17.38.33.png


J. Brightness Keys: Status (all working)

Rehabman provided a simple solution that works, see here: Patching DSDT/SSDT for LAPTOP backlight control. Briefly this entails the following steps:

1.Install ACPIDebug.kext: https://github.com/RehabMan/OS-X-ACPI-Debug to /Library/Extensions/ and copied the Kext into EFI/CLOVER/kexts/other. Proceed to Rebuilding the Kext Cache:

Code:
 sudo kextcache -u /
Reboot.

2.Next, determine which keys control the Brightness up and down.

- added the ACPIDebug repo to MaciASL "Sources" per README
Screenshot 2020-01-18 at 14.31.26.png


Proceed to make a Copy of my DSL which contains the following 2 patches:

- Add DSDT Debug Methods
- Instrument EC Queries

Saved the .dsl as an .aml and replaced the original aml with the new one. Reboot Machine.

3.After Rebooting, proceed to create a log file in order to determine which keys are Brightness Up and Down(On my laptop it is F3 up and F4 down).

To create the Log file containing the Keys that you push, open Terminal and follow the Example (Remember to change the Date and time according to when you push the Brightness Keys):

Code:
log show --start '2020-01-12 12:58:00'  --predicate "processID== 0" --debug >> /tmp/kernel.log
4.Next,Open Kernel.log with Console and filter on"ACPID".

Comparing the findings returned the following values corresponding to the F3 and F4 brightens keys:

- EC _Q11 Enter
- EC _Q11 Exit
- EC _Q12 Enter
- EC _Q12 Exit

I found these methods in the dsl related to EC _Q11 which is Brightness up and EC_Q12 Brightness down.

5.Next, Open dsl and searched for Q11 and Q12, adding the Following code Snippets for Brightness up and down to the respective Keys.

Brightness Up:
Code:
Notify(\_SB.PCI0.LPCB.PS2K, 0x0406)
Brightness Down:
Code:
Notify(\_SB.PCI0.LPCB.PS2K, 0x0405)
Method in the dsl for Brightness Up changed to look as follows:

Code:
Method (_Q11, 0, NotSerialized)  // _Qxx: EC Query
            {
                Store ("=====QUERY_11=====", Debug)
                Store (One, Index (^^^WMID.FEBC, Zero))
                Store (HTBN, Index (^^^WMID.FEBC, One))
                Store (BRTS, Index (^^^WMID.FEBC, One))
                Store (0x04, Index (^^^WMID.FEBC, Zero))
                Notify (WMID, 0xBC)
                If (IGDS)
                {
                    Notify (^^^GFX0.DD1F, 0x87)
                }
                Else
                {
                }
                // Brightness Up
                Notify(\_SB.PCI0.LPCB.PS2K, 0x0406)
            }
Method in the dsl for Brightness Down changed to look as follows:

Code:
Method (_Q12, 0, NotSerialized)  // _Qxx: EC Query
            {
                Store ("=====QUERY_12=====", Debug)
                Store (One, Index (^^^WMID.FEBC, Zero))
                Store (HTBN, Index (^^^WMID.FEBC, One))
                Store (BRTS, Index (^^^WMID.FEBC, One))
                Store (0x04, Index (^^^WMID.FEBC, Zero))
                Notify (WMID, 0xBC)
                If (IGDS)
                {
                    Notify (^^^GFX0.DD1F, 0x86)
                }
                Else
                {
                }
                // Brightness Down
                Notify(\_SB.PCI0.LPCB.PS2K, 0x0405)
            }
6.Next, save the dsl and save the new aml. Copy that to the EFI/CLOVER/ACPI/patched.

Rebooted and Verify.

A Screenshot of a the Working Brightness up Key here :

Screenshot 2020-01-19 at 17.33.43.png


A Screenshot of a the Working Brightness down key here :

Screenshot 2020-01-19 at 17.41.17.png


K. Wifi replacement and testing: Status (all working)

The existing wifi adapter "Intel(R) Wi-Fi6 AX200 160MHz" will not work. Replace with Broadcom BCM94352Z.

Download: AirportBrcmFixup.kext(Release) and copy to EFI/CLOVER/Kext/other.

Rebooted and Verify.

L. Test Bluetooth capabilities: Status (all working)

Bluetooth seemed to be a bit of an issue. Using a guide from richardchiu (see here: Guide for Acer swift 5-sf514-53t-whiskey-lake), was extremely helpful regarding what kexts to use and what not to use.

For Mojave 10.14.6 the kexts first Used and recommended (RehabMan- OS-X-BrcmPatchRAM) are:

- BrcmFirmwareRepo.kext.
- BrcmPatchRAM2.kext

After upgrading to Catalina 10.15.2 performance was sluggish.

The workaround was to remove the 2 kext and replace them with the latest versions provided by acidanthera ( see here:BrcmPatchRAM/releases) with:

- BrcmFirmwareData.kext
- BrcmPatchRAM3.kext
- BrcmBluetoothInjector.kext

Copy these to KEXTS\OTHER in Clover.

Rebooted and Verify.

Screenshot 2020-01-19 at 16.19.05.png



M. Verify HDMI is working: to be confirmed


N. iMessage: Status (all working)


To achieve a working iMessage it is advised to follow the Guide Here : iMessage Guide to the T!


Speed tests:

1. Graphics: Cinema OpenGL. Since the Nvidia GT1050 Graphics card was disabled (no osx drivers) Only test UHD 630 was tested. As expect the graphics performance are not the best. This machine will not be used for its graphics and games.


Screenshot 2020-01-04 at 08.38.44.png


2. Cinema CPU performance:

This machine will purely be used for Development (BSc Computer Science student) running Windows 10 and various Virtualized machines with sufficient CPU performance.

Screenshot 2020-01-04 at 08.39.16.png


3. Disk IO: Black magic disk read/write

Screenshot 2020-01-04 at 08.47.36.png


CREDITS

@Rehabman for all the Guides and effort put in to help us all.

@richardchiu for Guide for Acer swift 5-sf514-53t-whiskey-lake.

@alex.daoud for VoodooI2C.

@acidanthera for AirportBrcmFixup.kext,BrcmFirmwareData.kext, BrcmPatchRAM3.kext and BrcmBluetoothInjector.kext
 

Attachments

Last edited:
Joined
Aug 31, 2019
Messages
13
Motherboard
Acer Aspire 7 A715-74G
CPU
i5-9300H / HM370
Graphics
UHD 630 / GTX 1650 @ 1920x1080
Thanks! It works like a charm!
Trackpad, keyboard, sound, etc.
Awesome!

I have a slightly different laptop (A715-74G-53YM) with a i5-9300H and a GTX1650.
But of course the laptop is mostly similar.
 
Joined
Dec 18, 2019
Messages
28
Motherboard
Acer Aspire A715-74G-78KF
CPU
i7-9750H
Graphics
UHD 630
Mac
MacBook Pro
Hey Anandus, good to hear ! Most of the things are working for me too. However I'm trying to get a fix for battery status. Still need to implementing RehabMan post for USB here : Creating a Custom SSDT for USBInjectAll.kext

I'm pretty sure wifi will work and bluetooth, but still need to check this out and document it !
 
Joined
Aug 31, 2019
Messages
13
Motherboard
Acer Aspire 7 A715-74G
CPU
i5-9300H / HM370
Graphics
UHD 630 / GTX 1650 @ 1920x1080
I have the Broadcom BCM94352Z and AirportbrcmFixup.kext and it works fantastic.

The only thing I noticed is a lag on the login screen. I've installed NoTouchID.kext, but it's still laggy.
 
Joined
Dec 18, 2019
Messages
28
Motherboard
Acer Aspire A715-74G-78KF
CPU
i7-9750H
Graphics
UHD 630
Mac
MacBook Pro
I have the Broadcom BCM94352Z and AirportbrcmFixup.kext and it works fantastic.

The only thing I noticed is a lag on the login screen. I've installed NoTouchID.kext, but it's still laggy.
How did you resolve the battery status. Is yours showing and working ? if so what did you do ?

I have followed this guide: How to patch DSDT for working battery status, but no luck.
 
Joined
Aug 31, 2019
Messages
13
Motherboard
Acer Aspire 7 A715-74G
CPU
i5-9300H / HM370
Graphics
UHD 630 / GTX 1650 @ 1920x1080
My battery status seems to work fine. Although I'm not completely sure what I did. Might be one of the virtualSMC-kexts? (SMCBatteryManager.kext)
Not sure, I forgot. (Sorry!)
It wasn't done by patching DSDT, I only patched what is in the guide.
 
Joined
Dec 18, 2019
Messages
28
Motherboard
Acer Aspire A715-74G-78KF
CPU
i7-9750H
Graphics
UHD 630
Mac
MacBook Pro
Hi Anandus,

If possible, Please run can you do a compress of your EFI\Clover folder. Attached the zip file here.

This way I can see what you implemented.

Thank you
 
Joined
Aug 31, 2019
Messages
13
Motherboard
Acer Aspire 7 A715-74G
CPU
i5-9300H / HM370
Graphics
UHD 630 / GTX 1650 @ 1920x1080
Sure, but I believe it's just rehabman's UHD630 plist and some default kexts.
I also installed kexts through hackintool, so you might not find your answer here.

Here are the installed kexts according to hackintool:
Screenshot 2019-12-31 at 10.04.30.png


To be absolutely honest I'm not sure how I got the battery status working. I thought it was the SMC plugin, but it's not listed here.
 

Attachments

Joined
Dec 18, 2019
Messages
28
Motherboard
Acer Aspire A715-74G-78KF
CPU
i7-9750H
Graphics
UHD 630
Mac
MacBook Pro
cool tx, have you installed SMCBatteryManager.kext to /Library/Extensions ?
 
Joined
Dec 18, 2019
Messages
28
Motherboard
Acer Aspire A715-74G-78KF
CPU
i7-9750H
Graphics
UHD 630
Mac
MacBook Pro
Sure, but I believe it's just rehabman's UHD630 plist and some default kexts.
I also installed kexts through hackintool, so you might not find your answer here.

Here are the installed kexts according to hackintool:
View attachment 442831

To be absolutely honest I'm not sure how I got the battery status working. I thought it was the SMC plugin, but it's not listed here.
Thank you for sharing your details. Appreciate your effort.

In the end, I was not able to make battery status work using SMCBatteryManager and VirtualSMC. Instead mine is working now using ACPIBatteryManager.kext and FakeSMC.kext (see guide-how-to-patch-dsdt-for-working-battery-status).

By the way, your DSDT has errors and it should be fixed. You can remove those duplicate variables and then it will compile. Otherwise your DSDT and mine is the same with a few small differences in variables.
 
Last edited:
Top