Skip to content

Installation and usage

MikeBeaton edited this page Feb 4, 2022 · 27 revisions

How to use AppleALC

The only task you need to accomplish if your codec is supported is to load the kernel extension and see if it works. You can use your bootloader for that but remember to load AppleALC earlier than AppleHDA (see sudo kextstat output for more detail).

Note that Lilu must also be present for AppleALC to work.

Follow an easy-to-use guide to add your codec support if it is not here yet. Please share your successful results afterwards.

Note: It is necessary to set value layout-id in Devices-Properties or boot arguments.
HDEF device locations PciRoot, gfxutil may be used: gfxutil -f HDEF
Do not use renaming HDAS to HDEF, B0D3 to HDAU, etc.
Properties hda-gfx for digital audio of video cards are injected automatically.
Disable Clover's:
FixHDA, AddHDMI and UseIntelHDMI, set DevicesAudioInject = NO (Necessarily type string!)

How to control AppleALC

AppleALC accepts different boot arguments to control its behaviour:

  • alcid=layout — to set value layout-id;
  • -alcoff — to disable itself;
  • -alcdbg — to print the debugging information (if the extension was compiled in debug mode);
  • -alcbeta - to enable AppleALC on unsupported systems (usually unreleased or old ones);
  • alcverbs=1 — to enable alc-verb support (also alc-verbs device property);
  • -x or -s will also disable AppleALC.
  • All the Lilu boot arguments affect AppleALC.

How to extract the debug log

The easiest way to dump the debug log is to boot with -alcdbg -liludbg liludump=60. This causes Lilu and AppleALC logs to be dumped to /var/log/Lilu_VERSION_KERN_MAJOR.KERN_MINOR.txt 60 seconds after kernel start. (The number of seconds specified should be longer than the actual macOS boot time.)

The following older methods exist for extracting the logs using -alcdbg -liludbg without liludump, though these may miss messages or may fail completely:

10.12 and newer:
log show --predicate 'process == "kernel" AND (eventMessage CONTAINS "AppleALC" OR eventMessage CONTAINS "Lilu")' --style syslog --source
10.11 and older:
cat /var/log/system.log | egrep '(AppleALC|Lilu)'