(适用于10.12和13)ALC892的经验之谈,简化大神教程帮助喜欢动手仿冒的朋友
本帖最后由 guoyan6914685 于 2017-12-1 16:58 编辑由于本篇只是说了大致思路,很多朋友询问具体细节,而大神的文章针对10.11系统,所以我抽出时间完整的写了一篇教程,内容颇多,发布于简书, http://www.jianshu.com/p/29a74f0664f1
自从把自己黑的经验发了贴以后,很多人问我ALC892仿冒的事。Alc仿冒确实挺复杂,再加上大神ALC892专属教程里有些小细节不在意,导致很多新手离成功只差一步的时候放弃了。(可能大神成功的经验太多,照顾不到所有细节吧)我就是卡在一些细节将近一个月,这个之后再说。
本帖只支持ALC892,其他的型号可以借鉴思路,不过最好不要直接用我的文件。ALC892的就无所谓了,把我的文件小幅修改就能用,直接用文件和直接用我的驱动是没有区别的。看这个帖子的人至少需要知道用ubuntu提取codec(不要提取到HDMI的呦),会分析出configdata值,在codec文件中查询节点(其实查询很简单,关键是要分析节点,并且不断的尝试)。当然新手可以通过本帖有针对性的学习大神的教程,这样能够避过一些坑,提高成功率。 https://bbs.pcbeta.com/viewthread-1677191-1-1.html这是仿冒驱动教程,适用很多声卡https://bbs.pcbeta.com/viewthread-1685213-1-1.html这是alc892专属的而我的教程就是在这个基础上简化方便更多alc892的朋友
首先,使用到的工具有xcode。AppleALC-master提供了诸多声卡驱动工具,集合了xcode命令用来生成AppleALC。(我会放上最新的版本支持10.12Sierra)。zlib转换器。至于idsdt,verbit在大神那里有,我就不说了,主要是生成applehdamod和将codec编译出configdata值用的。ALC892的朋友可以直接用我的info.Plist。
AppleALC仿冒仿冒主要是节点文件Platforms,Layout.xml,和info.Plist文件修改(这里有两个info,之后详说)一、 Applealc-master——resources——alc892中的info.Plist用来描述你的声卡以及对layout和Platforms文件位置、id的说明。这个地方大神留了个坑,他在教程里设置layoutid为1,但是在info.plist中files——layouts——item中,他把alc892放到了item2中,且id为3。导致我一直没成功。下面的platforms中也是如此。只需要将item2中的comment与item0中的comment换一下就行了,而item下的path要修改为自己的layout文件名和platforms文件名(要带后缀)。很简单的一件事坑了我好久哦。Info中的codecID也要注意,283904146是ALC892的codecID。对应声卡文件夹下的info中的codecid都是对应声卡的,一般不会错。 二、 Applealc-master——resources——pinconfigs.kext——contents中的info,要按照大神的方式用仿冒的applehda中修改替换,我是用idsdt生成applehdamod中的修改替换的。我把我自己的放出来方便大家,ALC892的朋友只需要修改configdata值就好了。其他声卡的还需要修改codecID和layoutID。(我不确定都兼容,至少我只改这几个值可以用在别的声卡上)
Info.plist就这些,很简单,仔细就好了。这里需要说明一下configdata的问题。说实话,configdata只是为了定义端口,什么优先级,颜色,位置,是否检测等等,修改configdata值是为了更符合mac的要求,更好的兼容苹果系统,虽然它很重要但不是声卡最关键的地方。很多朋友用别的人驱动,系统报告里已经有检测到了,可是声卡设置里什么也没有的原因是configdata系统识别出来了但是节点不匹配不能驱动,由此看出configdata并不驱动,只是定义,当然如果你胡乱修改就不好了。你可以根据自己的需要对他进行修改,比如最经典就是外放和耳机的切换。这个大神的教程说的很清楚,没有坑,不需要再解释,codec有EAPD字样的configdata需要多加01470C02,别忘了。
三、 其实想要驱动声卡,最最关键是节点,节点弄不好,一切都白搭。节点大神们都有很详细的教程,我只说说我自己笔记本的情况。ALC892分为有lineout和没有lineout,我是有lineout。按照我的platforms的结构修改就好了,从pathmap开始第一个0是输入,1是输出,2是spdif out。向下的分支如图,每个分支最后的012或01就是节点,根据codec文件的搜索找到各个节点,节点大原则是不重复(台式机好像见到过重复的,我不懂,懂的朋友给个说明)节点每个电脑都不太一样,需要一点一点找,然后测试,是最麻烦最容易出现问题的地方,所以只能自己慢慢改了,我和大神的教程里有一些节点是一样的,运气真好哦。platforms最后放到Applealc-master——resources——alc892下,记得放入的是zlib格式的四、 layout1.xml文件,我直接用大神的,没什么需要改的,alc892的朋友直接用,其他的朋友大神文章里也有说,我就懒得清闲啦,哈哈。{:5_264:}这个文件也要放到 Applealc-master——resources——alc892下,也是zlib格式的。最后把四个文件放到对于的位置,打开appleALC.xcodeproj,运行,如下图
找到applealc复制出来,放到clover下kext对应的系统文件夹里就行了。之后就是clover或者dsdt注入id就好了,用我文件的朋友要注入layoutID是1哦,别弄错了。只要保存好这四个文件,以后每次applealc-master更新,只需要复制粘贴,重新生成一个applealc就好了,可以说是一劳永逸了。最后放上我的configdata值和节点,以供大家参考
网盘失效了才看到,直接将4个文件与相关工具打包,从10.13开始AppleALC都需要用lilu.kextp关联,而相关的lilu.kext也最好使用对应版本的lilu-master生成,然后将生成的lilu.kext放到AppleALC-master中生成AppleALC(注:很多帖子分享的lilu.kext缺少文件,如果生成过程中出现红色报错,要么是lilu与AppleALC版本不对应缺少相关api,要是就是lilu.kext中缺少文件)
个人比较讨厌伸手党,我已经简化了很多工作,所以希望下载文件的朋友都回复一下使用后的感想,只有多交流才能共同进步
正是892声卡,感谢楼主分享。 支持支持 我也是,上次尝试去做了一下,没搞定现在我的是这样的,麦克风不知道怎么测试
http://image18-c.poco.cn/mypoco/myphoto/20161010/23/17508083720161010235502058.png?559x512_130
好奇怪,我的是有两个line out,等明天有时间再详细操作下,看的有点懵逼。
我自己提取的笔记:
Mic at Int N/A 0x12. 0. 1. A. 3
Speaker at Int N/A 0x14. F. 1. 1. 3
Line Out at Ext Rear 0x17. 1. 0. 0. 1
Mic at Ext Rear 0x18. F 0 a. 1
Line Out at Ext Rear. 0x1b. F. 0. 0 1
SPDIF Out at Ext Rear0x1e 1. 1. 4. 5 change1wang73 发表于 2016-10-11 02:05 https://www.pcbeta.com/static/image/common/back.gif
好奇怪,我的是有两个line out,等明天有时间再详细操作下,看的有点懵逼。
我自己提取的笔记:
Mic at I ...
我看你有两个lineout没有linein,挺奇怪的,不知道是手动提取还是用verbit,如果是手动提取的话,建议用一下verbit,看看是不是遗漏了linein,然后再删除codec中有【N/A】的,就差不多了。 教程不错,参考参考,感谢分享。 我也是892,多谢楼主教程,回去试试
感谢楼主分享 你xml文件编辑是用哪个软件的?? 感谢分享,我来试试是 我今天下午再重新弄了一下,我的是有两个line out at ext ,于是在对应位置加多了一组参数,不知道这样做正不正确 生病。躺在医院里写一帖。
不理解为什么 AppleALC 成为了热潮。
如果楼主今年夏天有一直跟进 Sierra 的测试版的话,有没有发现 AppleALC 几经周折才完成了对 10.12 的适配?几乎更新速度比原版 AppleHDA 还快了呢… (可以理解为每个 Beta 就算是一次 AppleHDA 的更新) 真的是 “一劳永逸”?抱歉,希望楼主能原谅我不这么认为。如此看来,也结合 vit9696 写的 AppleALC 的说明,其实 AppleALC 的作用是 维持原版 AppleHDA 签名 而并非 完整驱动声卡 对吧?我如此认为。如果配合 Clover 使用,那么恐怕在 KextToPatch/KernelToPatch 以后再次单独对 AppleHDA 打补丁的效率更加低下吧?由此我也不得不认为 AppleALC 其实是为非 Clover 用户(无 KextToPatch 功能) 而设计的吧。
此外,使用 InjectKext 注入 kexts,减少改动系统盘的动作,真的会使系统变稳定?测试版的时候我并不这么认为。正式版也不意味着内核真的稳定了吧?
总之,保持原版 AppleHDA 签名并驱动声卡的方法不止 AppleALC 一种。也请允许我对 AppleALC 抱有异议。
无心挑起笔战…… 如有冒犯,还请多多包涵。
Angel W.
10/11/2016 17:24 口袋妖怪heart 发表于 2016-10-11 17:24
生病。躺在医院里写一帖。
不理解为什么 AppleALC 成为了热潮。
如果楼主今年夏天有一直跟进 Sierra 的测 ...
照样可以对原版aplehda进行patch吧 wangling75 发表于 2016-10-11 17:39
照样可以对原版aplehda进行patch吧
是的 patch bin 不难 难在注入zlib节点 口袋妖怪heart 发表于 2016-10-11 17:24 https://www.pcbeta.com/static/image/common/back.gif
生病。躺在医院里写一帖。
不理解为什么 AppleALC 成为了热潮。
如果楼主今年夏天有一直跟进 Sierra 的测 ...
非常感谢,对applealc有了更深的理解,applealc确实是为了维持apple签名,尽量减少applehda的改动,稳不稳定确实不好说,不过所谓的一劳永逸也只是相对的,之所以alc能热起来我个人觉得主要是不需要改动原版hda给很多人心理上所谓的稳定,升级系统方便。不过系统以后还会更新,黑苹果技术也会继续发展,到时候声卡仿冒也会变,所以现阶段能帮到更多人就好了 好贴,学习中。 guoyan6914685 发表于 2016-10-11 07:00 https://www.pcbeta.com/static/image/common/back.gif
我看你有两个lineout没有linein,挺奇怪的,不知道是手动提取还是用verbit,如果是手动提取的话,建议用一 ...
{:5_265:}我是用verbit提取的 change1wang73 发表于 2016-10-11 20:24 https://www.pcbeta.com/static/image/common/back.gif
我是用verbit提取的
那没事,在configdata里增加一组数据就好了,不过要记得也需要增加一组节点, guoyan6914685 发表于 2016-10-11 20:26 https://www.pcbeta.com/static/image/common/back.gif
那没事,在configdata里增加一组数据就好了,不过要记得也需要增加一组节点,
你的意思是找别人的添加上去吗?