applealc声卡自定指南(2019.12)

前言

现在对于台式机applealc里自带的codec的layout已经够用了,基本都能很完美的驱动,但是对于笔记本,还是有很多问题。所以仍需要对applealc进行自定

关于这方面网上教程一大堆,但是随着时间的流逝,有些方法就比较过时了,可能过几年,我的这篇也会过时,不过当前来看的话,还是比较新的,而且我也看了好多老方法才总结出来。本文使用的alc256这个声卡,其他的声卡也能参考,方法大同小异。

一些简单的操作就不说了(比如clover/OC如何放置driver),刚接触hackintosh的话还是先看看别的方面教程提升下知识。

笔者配置:dell insprion 15 3567

正文

第一步:codec dump(提取)

这时我们要用到clover,笔者的版本是5070,他需要audiodxe这个driver,放到driver里,进入clover后不用选择系统,按下F4就可以了。会发现没什么提示没关系,进入系统后你就会发现在clover下多了个misc文件夹,里面就是提取的声卡codec。

OC也可以提取,不过具体我没有试,应该用到AudioDxe.efi和HdaCodecDump.efi。其中hdacodecdump是Tools,要放好,大家可以试下这种方法。

第二步:生成节点连接图

  1. 更改codec.txt

    打开codec.txt删掉txt文件里的HdaCodecDump Start这一行,之后文件像这样。

    1
    2
    3
    4
    5
    Codec: Realtek ALC256
    Address: 0
    AFG Function Id: 0x1 (unsol 1)
    Vendor ID: 0x10EC0256
    ...

    这个文件信息就不再详细解释了,保存就行了。

  2. 使用codecgraph生成codec的连接矢量图

    下载codecgraph,好了解压把codec.txt放到里面,打开codecgraph.py,把

    1
    2
    3
    class Node:
    node_info_re = re.compile('^Node (0x[0-9a-f]*) \[(.*?)\] wcaps 0x[0-9a-f]*?: (.*)$')
    final_hex_re = re.compile(' *(0x[0-9a-f]*)$')

    替换为

    1
    2
    3
    class Node:
    node_info_re = re.compile('^Node (0x[0-9a-fA-F]*) \[(.*?)\] wcaps 0x[0-9a-fA-F]*?: (.*)$')
    final_hex_re = re.compile(' *(0x[0-9a-fA-F]*)$')

    这样做是改一下正则表达式,clover提取的codec十六进制是大写的。

    codecgraph依赖graphviz,所以我们要安装graphviz

    1
    2
    brew install graphviz 
    ./codecgraph codec.txt

这样就在文件夹里生成了个svg矢量图,拿个矢量图软件打开下,如下,刚看有点晕没关系,这一步就做完了

codec.svg

第三步:根据codec及路径图制作configdata

  1. 下载Pin Configurator

    Pin Configurator是一个比较全面的声卡自定工具,这个软件其实很早就有了,目前由headkaze维护,这个工具目前还是不错的。下面是英文说明,具体看GitHub。

    The original Pin Configurator was released back in 2009 by saxmms. The app crashes when running on 10.14.4 and the source was not available so I had to reverse it from the binary which took many hours of work. I’ve also re-written most of it and added some new features (see “Updates in v2+” section) but the original is by saxmms so big thanks to him.

  2. 导入codec到Pin Configurator

    File->Open->选择codec.txt,如图:

    导入后

  3. 编辑以生成configdata

双击一行即可编辑一个节点中的配置也叫做verbs,我打开的是Edit Node ID 20(0x14):即节点20(0x14)。这里要说明一下:codec路径图中用0x14表示,configdata也相同,但在最后编译时改的xml文件是10进制的(20)

截屏2019-12-21下午3.58.17.png

Node ID:即节点ID(NID)不要改,应该也改不了
PinDefault:供专业玩家快速设置使用
Device:设备类型(根据实际情况选择)
Connector:连接类型(内建为ATAPI Internal,耳机为HP OUT,其他外接根据实际情况设置)
Port:端口类型(内建Fixed,外接Jack)
Gross Location:位置(内建Internal,外接External)
Geo Location:插孔位置(内建选ATAPI,其他根据情况设置)
Color:插孔颜色(根据实际情况设置)
Misc:配置(内建为Jack Detect Override,外接不选,一定要注意选择一个或不选,每个节点都要打开确认一下,不要选中其他的
Group:顺序
Position:都设置为0
EAPD:EAPD放大器(不要修改)

整理codec路径图数据

路径连接