Contribute
Register

<< Solved >> AppleALC increases boot time by 4mn on 10.13 and 10.14!

Status
Not open for further replies.
Joined
Jul 11, 2012
Messages
637
Motherboard
Gigabyte GA Z68XP-UD3
CPU
i7 3770
Graphics
GT 210
Mac
  1. iMac
  2. Mac mini
Mobile Phone
  1. Android
Hi!
After many trials and research, it's clear:
I've got a 22s boot time without AppleALC and about 4mn with it.
Tested with:
- Lilu 1.3.5 + AppleALC 1.3.7
- Lilu 1.3.6 + AppleALC 1.3.8
Having read somewhere that AppleALC 1.2.8 was different, I tried it and came back indeed to a 22s boot.
In any case, I have sound working in the end, with no issue. Sound after sleep/wake ok.
I've tried to put Lilu + AppleALC in Clover EFI/Clover/Kexts but they don't seem to load at all...
My codec is ALC889 (See my Z68 Desktop build in my signature).

I haven't found nothing meaningful in the Console, except for a "time hole" (here between 12:13:26 and 12:17:00):
Code:
Jun 21 12:12:59 HiSRA xpcproxy[250]: libcoreservices: _dirhelper_userdir: 529: bootstrap_look_up returned (ipc/send) invalid destination port
Jun 21 12:13:00 HiSRA com.apple.xpc.launchd[1] (com.apple.CoreRAID): Service only ran for 3 seconds. Pushing respawn out by 7 seconds.
Jun 21 12:13:01 HiSRA systemstats[51]: assertion failed: 17G2208: systemstats + 187906 [D1E75C38-62CE-3D77-9ED3-5F6D38EF0676]: 0x0
Jun 21 12:13:01 HiSRA xpcproxy[257]: libcoreservices: _dirhelper_userdir: 529: bootstrap_look_up returned (ipc/send) invalid destination port
Jun 21 12:13:02 HiSRA xpcproxy[260]: libcoreservices: _dirhelper_userdir: 529: bootstrap_look_up returned (ipc/send) invalid destination port
Jun 21 12:13:02 HiSRA nsurlsessiond[204]: DEPRECATED USE in libdispatch client: Setting timer interval to 0 requests a 1ns timer, did you mean FOREVER (a one-shot timer)?
Jun 21 12:13:02 HiSRA netbiosd[260]: DEPRECATED USE in libdispatch client: Setting timer interval to 0 requests a 1ns timer, did you mean FOREVER (a one-shot timer)?
Jun 21 12:13:07 HiSRA com.apple.xpc.launchd[1] (com.apple.CoreRAID[261]): Endpoint has been activated through legacy launch(3) APIs. Please switch to XPC or bootstrap_check_in(): com.apple.CoreRAID
Jun 21 12:13:26 HiSRA timed[79]: settimeofday({0x5d0cadc6,0x5a092}) == 0
Jun 21 12:17:00 HiSRA com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.user.212): com.apple.pluginkit.pkd (lint): Service sets EnableTransactions=false and EnablePressuredExit=true, which makes no sense. Enabling Transactions.
Jun 21 12:17:00 HiSRA Installer Progress[69]: 1 Boot windows acquired
Jun 21 12:17:00 HiSRA com.apple.xpc.launchd[1] (com.apple.imklaunchagent): This service is defined to be constantly running and is inherently inefficient.
Jun 21 12:17:00 HiSRA com.apple.xpc.launchd[1] (com.apple.coreservices.UASharedPasteboardProgressUI): Unknown key for Boolean: DrainMessagesAfterFailedInit
Jun 21 12:17:00 HiSRA com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.user.loginwindow.90.4294967295): com.apple.pluginkit.pkd (lint): Service sets EnableTransactions=false and EnablePressuredExit=true, which makes no sense. Enabling Transactions.
Jun 21 12:17:00 HiSRA com.apple.xpc.launchd[1] (com.apple.UserEventAgent-LoginWindow): This service is defined to be constantly running and is inherently inefficient.
Jun 21 12:17:00 HiSRA com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.user.loginwindow.90.4294967295): com.apple.universalaccessd (lint): The HideUntilCheckIn property is an architectural performance issue. Please transition away from it.
Jun 21 12:17:00 HiSRA com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.user.loginwindow.90.4294967295): com.apple.VoiceOver (lint): The HideUntilCheckIn property is an architectural performance issue. Please transition away from it.
Jun 21 12:17:00 HiSRA com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.user.loginwindow.90.4294967295): com.apple.AssistiveControl (lint): The HideUntilCheckIn property is an architectural performance issue. Please transition away from it.
Jun 21 12:17:00 HiSRA com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.user.loginwindow.90.4294967295): com.apple.DwellControl (lint): The HideUntilCheckIn property is an architectural performance issue. Please transition away from it.
Jun 21 12:17:00 HiSRA com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.user.loginwindow.90.4294967295): com.apple.universalaccesscontrol (lint): The HideUntilCheckIn property is an architectural performance issue. Please transition away from it.
Jun 21 12:17:00 HiSRA com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.user.loginwindow.90.4294967295): com.apple.noticeboard.agent (lint): EnablePressuredExit is not compatible with KeepAlive=true. Ignoring EnablePressuredExit.
Jun 21 12:17:00 HiSRA com.apple.xpc.launchd[1] (com.apple.noticeboard.agent): This service is defined to be constantly running and is inherently inefficient.
Jun 21 12:17:00 HiSRA com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.user.loginwindow.90.4294967295): com.apple.tiswitcher (lint): The HideUntilCheckIn property is an architectural performance issue. Please transition away from it.
Jun 21 12:17:00 HiSRA com.apple.xpc.launchd[1] (com.apple.coreservices.useractivityd): Unknown key for Boolean: DrainMessagesAfterFailedInit
Jun 21 12:17:00 HiSRA com.apple.xpc.launchd[1] (com.apple.AmbientDisplayAgent): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.
Jun 21 12:17:00 HiSRA loginwindow[90]: Clearing phase info
Jun 21 12:17:00 HiSRA loginwindow[90]: calling progress app remoteObjectProxy
Jun 21 12:17:00 HiSRA loginwindow[90]: Creating connection
Jun 21 12:17:00 HiSRA loginwindow[90]: Connection = 0x604000300d80, callers = (
        "<IASUPCaller: 0x60400022c1a0>"
    )
Jun 21 12:17:00 HiSRA Installer Progress[69]: Hiding the cursor in Progress UI
Jun 21 12:17:00 HiSRA Installer Progress[69]: caller = /System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow
Jun 21 12:17:00 HiSRA Installer Progress[69]: Version 2
Jun 21 12:17:00 HiSRA loginwindow[90]: version = 2
Jun 21 12:17:00 HiSRA loginwindow[90]: isModernOS = 1
Jun 21 12:17:00 HiSRA loginwindow[90]: Add phase named "IOKit Boot", progress 99.000000, delayInSeconds 0
Jun 21 12:17:00 HiSRA loginwindow[90]: Add phase named "loginwindow Boot", progress 1.000000, delayInSeconds -1
Jun 21 12:17:00 HiSRA loginwindow[90]: Connection = 0x604000300d80, callers = (
        "<IASUPCaller: 0x60400022c1a0>",
        "<IASUPCaller: 0x60400022c340>"
    )
Jun 21 12:17:00 HiSRA loginwindow[90]: Registering the connection
Jun 21 12:17:00 HiSRA loginwindow[90]: client 0x60400027c080: phaseName = loginwindow Boot
Jun 21 12:17:00 HiSRA loginwindow[90]: Connection = 0x604000300d80, callers = (
        "<IASUPCaller: 0x60400022c1a0>",
        "<IASUPCaller: 0x60400022c340>",
        "<IASUPCaller: 0x60400022c580>"
    )
Jun 21 12:17:00 HiSRA loginwindow[90]: Registering the connection
Jun 21 12:17:00 HiSRA loginwindow[90]: client 0x60400027c4c0: phaseName = IOKit Boot
Jun 21 12:17:00 HiSRA loginwindow[90]: client 0x60400027c4c0: phaseName = "IOKit Boot"
Jun 21 12:17:00 HiSRA loginwindow[90]: ISAP: Show progress UI called
Jun 21 12:17:00 HiSRA loginwindow[90]: client 0x60400027c4c0: phaseName = "IOKit Boot"
Jun 21 12:17:00 HiSRA loginwindow[90]: ISAP: Done with Phase "IOKit Boot"
Jun 21 12:17:00 HiSRA loginwindow[90]: client 0x60400027c4c0: phaseName = IOKit Boot
Jun 21 12:17:00 HiSRA loginwindow[90]: Releasing Connection
Jun 21 12:17:00 HiSRA Installer Progress[69]: Clearing phase info
Jun 21 12:17:00 HiSRA loginwindow[90]: client 0x60400027c080: handler = 0x7ffeee732a20
Jun 21 12:17:00 HiSRA Installer Progress[69]: IASGetCurrentInstallPhaseList: Unable to get phases
Jun 21 12:17:00 HiSRA Installer Progress[69]: IASGetCurrentInstallPhase: Unable to get the current phase name
Jun 21 12:17:00 HiSRA Installer Progress[69]: phaseName = (null)
Jun 21 12:17:00 HiSRA Installer Progress[69]: Current phase name wasn't saved, using the first phase in the list, current phase = "(null)"
Jun 21 12:17:00 HiSRA Installer Progress[69]: _currentPhase = "(null)", _phases = (null)
Jun 21 12:17:00 HiSRA Installer Progress[69]: IASClearInstallProgress: Clearing Registry
Jun 21 12:17:00 HiSRA Installer Progress[69]: totalPercentage = 0.000000
Jun 21 12:17:00 HiSRA Installer Progress[69]: phases = (
        "<IASPPhase: 0x7fada1c2d8b0: 'IOKit Boot', percentage 99.0, delay 0>"
    )
Jun 21 12:17:00 HiSRA Installer Progress[69]: IASSetCurrentInstallPhaseList: phases set to (
            {
            ConclusionDelay = 0;
            InstallPhase = "IOKit Boot";
            InstallPhasePercentageKey = 99;
        }
    )
Jun 21 12:17:00 HiSRA Installer Progress[69]: IASSetCurrentInstallPhase: Current phase name set to "IOKit Boot"
Jun 21 12:17:00 HiSRA Installer Progress[69]: totalPercentage = 99.000000
Jun 21 12:17:00 HiSRA Installer Progress[69]: phases = (
        "<IASPPhase: 0x7fada1c2d8b0: 'IOKit Boot', percentage 99.0, delay 0>",
        "<IASPPhase: 0x7fada1e1f6e0: 'loginwindow Boot', percentage 1.0, delay -1>"
    )
Jun 21 12:17:00 HiSRA Installer Progress[69]: IASSetCurrentInstallPhaseList: phases set to (
            {
            ConclusionDelay = 0;
            InstallPhase = "IOKit Boot";
            InstallPhasePercentageKey = 99;
        },
            {
            ConclusionDelay = "-1";
            InstallPhase = "loginwindow Boot";
            InstallPhasePercentageKey = 1;
        }
    )
Jun 21 12:17:00 HiSRA Installer Progress[69]: Register process 90, phaseName loginwindow Boot, uuid C6B72C6B-7F8E-4FED-B0EF-4D4B51958004
Jun 21 12:17:00 HiSRA Installer Progress[69]: Connected processes = {
        "C6B72C6B-7F8E-4FED-B0EF-4D4B51958004" =     {
            "Phase Name" = "loginwindow Boot";
            "Process ID" = 90;
            UUID = "C6B72C6B-7F8E-4FED-B0EF-4D4B51958004";
        };
    }
Jun 21 12:17:00 HiSRA Installer Progress[69]: Saving completion handler for phase loginwindow Boot
Jun 21 12:17:00 HiSRA Installer Progress[69]: Register process 90, phaseName IOKit Boot, uuid B30E71F6-A140-4C0A-A957-B5DCB0F72E7E
Jun 21 12:17:00 HiSRA Installer Progress[69]: Connected processes = {
        "B30E71F6-A140-4C0A-A957-B5DCB0F72E7E" =     {
            "Phase Name" = "IOKit Boot";
            "Process ID" = 90;
            UUID = "B30E71F6-A140-4C0A-A957-B5DCB0F72E7E";
        };
        "C6B72C6B-7F8E-4FED-B0EF-4D4B51958004" =     {
            CompletionHandlerKey = "<__NSMallocBlock__: 0x7fada1f1ba90>";
            "Phase Name" = "loginwindow Boot";
            "Process ID" = 90;
            UUID = "C6B72C6B-7F8E-4FED-B0EF-4D4B51958004";
        };
    }
Jun 21 12:17:00 HiSRA Installer Progress[69]: Saving completion handler for phase IOKit Boot
Jun 21 12:17:00 HiSRA Installer Progress[69]: IASGetCurrentInstallPhaseList: phases = (
            {
            ConclusionDelay = 0;
            InstallPhase = "IOKit Boot";
            InstallPhasePercentageKey = 99;
        },
            {
            ConclusionDelay = "-1";
            InstallPhase = "loginwindow Boot";
            InstallPhasePercentageKey = 1;
        }
    )
Jun 21 12:17:00 HiSRA Installer Progress[69]: IASGetCurrentInstallPhase: Current phase name is "IOKit Boot"
Jun 21 12:17:00 HiSRA Installer Progress[69]: phaseName = IOKit Boot
Jun 21 12:17:00 HiSRA Installer Progress[69]: Advance to phase named = "IOKit Boot"
Jun 21 12:17:00 HiSRA Installer Progress[69]: _currentPhase = "<IASPPhase: 0x7fada1d33dc0: 'IOKit Boot', percentage 99.0, delay 0>", _phases = (
        "<IASPPhase: 0x7fada1d33dc0: 'IOKit Boot', percentage 99.0, delay 0>",
        "<IASPPhase: 0x7fada1d33de0: 'loginwindow Boot', percentage 1.0, delay -1>"
    )
Jun 21 12:17:01 HiSRA Installer Progress[69]: Progress app is loading…
Jun 21 12:17:01 HiSRA Installer Progress[69]: Progress app is running…
Jun 21 12:17:01 HiSRA Installer Progress[69]: Showing Progress UI
Jun 21 12:17:01 HiSRA Installer Progress[69]: _LSSetMetaApplicationInformationItem add to frontmost list success
Jun 21 12:17:01 HiSRA Installer Progress[69]: Showing the windows
Jun 21 12:17:01 HiSRA Installer Progress[69]: Created CG Shield Window
Jun 21 12:17:01 HiSRA Installer Progress[69]: There are 0 window(s) and 1 display(s), 1 window(s) will be added
Jun 21 12:17:01 HiSRA com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.system): Service tried to register a port for an endpoint declared in its launchd.plist(5): service = com.apple.ManagedClient, endpoint = com.apple.mcxd
Jun 21 12:17:01 HiSRA Installer Progress[69]: Created a window at {{0, 0}, {1600, 1000}}


and maybe this on another trial:

Code:
Jun 21 13:52:02 HiSRA xpcproxy[331]: libcoreservices: _dirhelper_userdir: 529: bootstrap_look_up returned (ipc/send) invalid destination port
Jun 21 13:52:02 HiSRA nsurlsessiond[219]: DEPRECATED USE in libdispatch client: Setting timer interval to 0 requests a 1ns timer, did you mean FOREVER (a one-shot timer)?
Jun 21 13:52:41 HiSRA com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.user.501): com.apple.pluginkit.pkd (lint): Service sets EnableTransactions=false and EnablePressuredExit=true, which makes no sense. Enabling Transactions.
Jun 21 13:52:41 HiSRA cfprefsd[337]: BUG in libdispatch client: kevent[mach_recv] monitored resource vanished before the source cancel handler was invoked
Jun 21 13:54:45 HiSRA com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.user.212): com.apple.pluginkit.pkd (lint): Service sets EnableTransactions=false and EnablePressuredExit=true, which makes no sense. Enabling Transactions.


Note that it's quite the same thing for my main OS (10.11.6) but a lot shorter (1mn10s) while it's about 25s with AppleALC 1.2.8.
Is there some additional setting for recent versions of AppleALC?
I've also read an old discussion talking about a bug in Lilu that doesn't patch the layout-id correctly on old mobos, what do you think?
 
As it's very likely that this won't be fixed by the dev, I'm writing here my latest conclusions, for the sake of history... :mrgreen:
I'm currently trying Mojave and after many more hours of trials, it's quite clear that the issue is with my NVidia GT210 HDMI port detection! (though I don't use HDMI at all...)
When AppleALC.kext (1.2.8+) does its things, AppleHDA sees 4 phantom HDMI ports, all equal, in addition to the ALC889 (here's a few Hackintool captures):
Capture d’écran 2020-07-20 à 14.56.57.png


Capture d’écran 2020-07-20 à 15.21.55.png


My guess is that the OS searches desperately for those ports, doesn't find them and gives up after a 4.5 mn timeout.
Indeed, it happened once, with AppleALC v1.5.0, that the phantom HDMI ports were not detected for some reason and the whole thing worked correctly as with v1.2.8 (fast boot, sound ok, no HDMI ports seen in Hackintool) but after a few reboots, it came back to slow boot, etc.

It's very likely that v1.2.8 was the last not declaring HDMI ports — sadly, it doesn't work at all under Mojave, making the issue more critical to me.

My only hope is to find a way to block HDMI detection in some way. How can I do that?
I've tried tweaking AppleHDA.kext/Contents/PlugIns/AppleHDAController.kext as DPCIManager indicates it to be the culprit, but to no avail...

Other trials done:
- old deprecated Toleda's patch, just in case (no way) https://www.tonymacx86.com/threads/audio-realtek-alc-applehda-guide.143757/
- VoodooHDA.kext => fast boot, sound ok but very limited ports management (1 output for all ports) and a whole bunch of non existent digital ports cluttering the audio menu (including the 4 phantom HDMIs)

Capture d’écran 2020-07-20 à 13.37.49.png
 
HURRAY! I FIXED IT!
Following my hypothesis about HDMI, I found this post: https://www.tonymacx86.com/threads/...md-cards-easy-way.145399/page-21#post-1834257
So I followed the procedure explained by iphillips77 to do the opposite (i.e. hide HDMI):
In your config.plist, just add in the KextsToPatch section:
XML:
            <dict>
                <key>Name</key>
                <string>com.apple.driver.AppleHDAController</string>
                <key>Find</key>
                <data>3hDjCw==</data>
                <key>Replace</key>
                <data>AAAAAA==</data>
            </dict>

or via Clover Configurator, add a new line in KextsToPatch with values:
Name: com.apple.driver.AppleHDAController
Find: DE10E30B
Replace: 00000000

Capture d’écran 2020-07-21 à 12.26.32.png


As far as I understand this:
• your HDMI audio port is renamed to HDAU by AppleALC (and probably the rename was not done until v1.2.8).
• The patch could perhaps be done under ACPI/Patches or Renames but I couldn't find the proper way.
• I don't know if DE10E30B is the value for every NVidia card or for a limited number of cards, it's up to you to check with IORegistryExplorer.

EDIT El Capitan: out of curiosity, I've tried this on my main partition (10.11) but it doesn't seem to work there, so I leave it with AppleALC 1.2.8 — as it ain't broke... :mrgreen:
 
Last edited:
So I guess for opencore it goes under kernel > patch. Do I have to make any adjustments apart from what you have written above (so it works with OC) ?
 
So I guess for opencore it goes under kernel > patch. Do I have to make any adjustments apart from what you have written above (so it works with OC) ?
Oh, I'm sorry but I'm still using old Clover. If you know how to make patches in OC, it should work the same, you'll have to try. ;-)
 
Hey Antonios, did you manage to patch through opencore ? I'm on OC/BigSur, everything fine but slow boot time (about 40 sec, compared to 22 sec for Catalina and 14 sec for ElCapitan on the same hardware) Suspecting ALC/HDMI ports, I tried to patch AppleHDAController for my HD4600 HDMI audio out ID, but patch fails (I have other kexts patches that do work)... And ioreg shows hdmi audio output... and verbose boot is stuttering around ALC stuff... 10 secs, then 10 secs then boots...
Any idea ? Thanks !
 
Status
Not open for further replies.
Back
Top