前言
现在对于台式机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,要放好,大家可以试下这种方法。
第二步:生成节点连接图
更改codec.txt
打开codec.txt删掉txt文件里的
HdaCodecDump Start
这一行,之后文件像这样。1
2
3
4
5Codec: Realtek ALC256
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor ID: 0x10EC0256
...这个文件信息就不再详细解释了,保存就行了。
使用codecgraph生成codec的连接矢量图
下载codecgraph,好了解压把codec.txt放到里面,打开codecgraph.py,把
1
2
3class 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
3class 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
2brew install graphviz
./codecgraph codec.txt
这样就在文件夹里生成了个svg矢量图,拿个矢量图软件打开下,如下,刚看有点晕没关系,这一步就做完了
第三步:根据codec及路径图制作configdata
下载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.
导入codec到Pin Configurator
File->Open->选择codec.txt,如图:
编辑以生成configdata
双击一行即可编辑一个节点中的配置也叫做verbs,我打开的是Edit Node ID 20(0x14):即节点20(0x14)。这里要说明一下:codec路径图中用0x14表示,configdata也相同,但在最后编译时改的xml文件是10进制的(20)
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路径图数据