黑苹果声卡了解AppleALC的工作原理

黑苹果驱动 20/2/11 2.2k 0

黑苹果声卡AppleALC
152316zay7363iiffin7ni.png
AppleALC的工作方式与传统的预修补或虚拟kextAppleHDA解决方案有所不同,因此,将AppleALC看作是编解码器连接器,布局和平台补丁的大型数据库是最好的方法。加载后,Lilu/ AppleALC将自动检测您拥有的音频编解码器的类型,并将从其数据库向AppleHDA动态应用一组编解码器补丁。

AppleALC将使用的补丁集是通过使用索引标识符来定义的。为了向后兼容,补丁集索引标识符是一个称为“ layout-id ” 的属性的值,该属性在黑苹果Hackintosh世界中一直用于在AppleHDA(或虚拟HDA kext)的预修补版本中选择布局。 )。

AppleALC睡眠唤醒有效

作为一项额外的好处,AppleALC还可以处理大多数编解码器的唤醒后启用,因此无需安装/使用Codec Commander。

Lilu和AppleALC的交互作用

在Lilu加载时,它会找到“ layout-id ” 的值,并将其传递给AppleALC,后者会创建一个新的名为“ alc-layout-id ”的设备属性,该属性继承该值。layout-id ”更改为新的目标ID,并使用编解码器所需的连接器信息,平台和布局文件(由“ alc-layout-id “)。

此方法允许AppleALC否定Mojave中已删除的layout-id,因为” layout-id “ 的注入值仅用作AppleALC编解码器补丁数据库中的索引请注意,AppleALC不仅在Mojave的所有版本的macOS上都将使用此layout-id重新映射方案。

检查支持的编解码器

要查看AppleALC是否支持您的编解码器,请在源代码中查找其名称。的Resources文件夹。如果不支持您的编解码器,则可以通过在AppleALC官方帮助线程中发布来要求将其包含在下一版本中。
    如果AppleALC已经支持您的编解码器,则可以通过在相应的编解码器文件夹中打开info.plist文件来检查支持哪种布局,从代码中您可以看到可用的布局ID,这些注释可以为您提供提示一个使用,

例如,我的2017 HP Spectre X360笔记本电脑具有Realtek ALC295编解码器,因此我在ALC295子文件夹中打开info.plist:- 在此示例中,我知道Mirone的补丁集是我需要的补丁集,即布局3实例读取每个注释,以查看与您的系统匹配的布局描述,如果不确定是否列出所有可用的layout-id值,然后依次尝试每个,直到找到一个可用的布局。AppleALC配置 首先将最新版本的Lilu和AppleALC安装到/ L / E中

说明:SLE:/System/Library/Extensions

ALC中HPET问题(高精度事件计时器)

安装AppleALC并执行上述检查后,您发现ioreg中存在“ alc-layout-id ”属性,并且该值和属性“ layout-id ”似乎正确,但您仍然没有声音,则可能是由于HPET(高精度事件计时器)引起的IRQ冲突。

HPET是MacOS中音频正常工作的基本要求,并且该论坛上的几乎所有安装指南都指出您应该在BIOS中启用HPET选项,但是在某些主板和笔记本电脑上,HPET的本机DSDT代码可能会导致IQR冲突,可能会阻止AppleHDA kext正确初始化和/或导致“刮擦”音频。

检查此问题的一种方法是在终端中执行以下命令:-


码:
kextstat | grep 'Lilu\|AppleALC\|AppleHDA'

在结果输出中,您应该看到列出了Lilu,AppleALC和AppleHDA kext。
  1. kextstat | grep'Lilu\|AppleALC\|AppleHDA'
  2.    20    4 0xffffff7f81041000 0x22000    0x22000   as.vit9696.Lilu (1.2.8) 54014689-C8DA-318B-84F4-944BBA7AD2AC <8 6 5 32 1>
  3.    23    0 0xffffff7f811bd000 0xdf000    0xdf000   as.vit9696.AppleALC (1.3.3) B60FCBAF-6BC2-36EF-A1E6-D5BE2863C35B <2013 8 6 5 3 2 1>
  4.   138    1 0xffffff7f830a7000 0x1d000    0x1d000   com.apple.driver.AppleHDAController (282.10) 70256EC9-AF38-31BD-A3C5-9C0E30B64AA3<137 113 107 13 8 7 6 5 3 1>
  5.   157    0 0xffffff7f8323a000 0xb7000    0xb7000   com.apple.driver.AppleHDA (282.10) B2208DA8-8CD9-36D8-BD59-C6D9A5379585<156 138 137 124 113 107 7 6 5 3 1>
  6.   159    0 0xffffff7f830c6000 0x2000     0x2000    com.apple.driver.AppleHDAHardwareConfigDriver (282.10)C4F674A0-5828-3D97-82BF-A81C8B8BDDBA <5 3>
复制代码
从上面的示例中可以看到,如果正在加载AppleHDA,则还将看到AppleHDAController和AppleHDAHardwareConfigDriverkext,但是要注意的重要一点是AppleHDA。

如果在输出(com.apple.driver.AppleHDA)中看不到AppleHDA,则首先检查BIOS设置,并确保已启用HPET选项(如果已启用),并且仍然在输出中看不到AppleHDA。上面的命令,则需要在DSDT中修补HPET代码。 最简单的方法是在ACPI / DSDT / Fixes中使用Cover选项FixHPET:-
  1. <key>ACPI</key>
  2.     <dict>
  3.        <key>DSDT</key>
  4.        <dict>
  5.            <key>Fixes</key>
  6.            <dict>
  7.                 <key>FixHPET</key>
  8.                <true/>
复制代码
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
您需要登录后才可以回帖 登录 | 注册
本版积分规则