Hackintosh:制作AppleALC以驱动原⽣AppleHDA
这篇教程⼀直在OneNote上躺着,休息了好长时间也该见见眼光了!
⼀、准备⼯作
1. 所需⽂件与⼯具
2. 整理c o dec⽂件
2.1 ⽣成路径图
在codec⽬录下执⾏命令:./codecgraph ../,会在codecgraph位置默认⽣成svg⽂件,打开可以看见节点路径图。
2.2 ⽣成有效节点信息
⾸先给予verbit.sh权限:sudo chmod +x verbit.sh;然后是执⾏命令:./verbit.sh ../ > ../,打开就能看见有效节点。
⼆、整理路径
1. 整理有效节点
我的有效节点如下所⽰
有效节点
很明显0x17和0x1d为⽆效节点,并且去掉Modified Verbs,于是剩下的有效信息⼀如下
有效信息⼀
2. 推导路径
2.1 推导内置麦克风路径
打开最原始的⽂件,查包含内置麦克风对应的节点0x12,也就是说我们需要的是Connection包含0x12的节点,显然发现是0x12是在0x11下的,同理再查0x11在哪个节点包含之下。发现0x11之上没有,因此路径就是0x11 ~> 0x12。原因是0x12是麦克风节点,也就是说是最后接受声⾳的节点,⽽声⾳理所当然是从前⼀个节点传过来的,因此需要查连接0x12的节点,也就是Connection包含0x12的节点,以此类推查Connection包含0x11的节点,直到最后没有被Connection包含的节点,综上所得到的路径为0x11 ~> 0x12,转换成⼗进制就是17 ~> 18,查看svg路径图发现是0x12 ~> 0x11,不⽤担⼼,这个路径图是依据计算机从内到外的节点⽣成,因此路径就是推导的那样。
2.2 推导内置扬声器路径
制作svg图片由于扬声器是从内向外传出声⾳,因此与麦克风相反,第⼀个需要查的节点不是Connection包含的节点,就是得到的扬声器有效节点本⾝,于是得到0x14,这个节点Connection包含0x0c,接着查看节点0x0c的Connection包含0x02和0x0b,⼀般取第⼀个即可,当然不放⼼的话可以去看看路径图,⼀般为0x02,再查0x02不包含节点,同理因为0x14为最⾥⾯的节点,⽽扬声器声⾳是由内向外,因此路径0x14 ~> 0x0c ~> 0x02,转换成⼗进制为20 ~> 12 ~> 2。
2.3 推导⽿机路径
推导⽿机⽅式与内置扬声器差不多,最终得出的路径为0x21 ~> 0x0d ~> 0x03,转换成⼗进制为33 ~> 13 ~> 3。注意,在查⽿机节点时候Connection会查到0x0c等已经⽤过的,这些应当舍弃。
三、更正ConfigData
1. 数据位置调换
将得到的有效信息⼀的PinDefault数据改成如图所⽰,就是将0x去掉,然后数字两两⼀组,得到有效信息⼆
有效信息⼆
之后再将两两⼀组的数据从后向前调换过来,如图所⽰有效信息三
有效信息三
2. 数据修改
节点配置说明
依据节点配置说明图对有效信息三进⾏修改,同时注意⽿机第⼀个值设为3,因为这是外接设备,是接受声卡发出的声⾳,也就是对这个设备来说是输⼊,得到有效信息四
有效信息四
同时,在有效节点图上还有两个⽆效节点0x17和0x1d,因此需要给予屏蔽,屏蔽⽅法就是将此节点的ConfigData设为F0 00 00 40(F⼤⼩写均可,这是为了符合苹果规范),如有效信息五所⽰
有效信息五
3. ⽣成Co nfigDa ta
⽣成公式为Address+Node+71c/d/e/f+整理出来的PinDafult的两两⼀组的数字,得到有效信息六
有效信息六
然后考虑到输出节点上只有0x14有EAPD,且值为0x2,则需要在节点有EAPD的后⾯加上Address+Node+70c+EAPD值,故得到有效信息七
有效信息七
四、修改配置⽂件
1. 多余⽂件删除
⾸先进⼊下载好的AppleALC/Resources,将不属于⾃⼰声卡型号的⽂件删除,记得留下五个⾮⽂件夹的⽂件;然后进⼊留下的声卡型号ALC282⽂件夹,留下info.plist和⼀个layout⽂件和⼀个platform⽂件。分别如下所⽰
留下的⽂件
留下的⽂件
这样就可以修改layout和platform的⽂件名的数字,这⾥我设置成19,如下所⽰
重命名
2. Info.plist⽂件修改
修改前
修改前修改后
修改后
3. La yo ut⽂件修改
修改前
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论