jianyili 发表于 2011-5-5 10:43

抛弃10.6的声卡驱动,修改lion原版声卡驱动来驱动你的声卡,7.22更新部分声卡驱动

本帖最后由 jianyili 于 2011-7-27 19:41 编辑

5.22更新在lion-11A459e原版声卡驱动基础上修改的ALC662/ALC887-888B/ALC888/ALC889a/ALC889/ALC892的声卡驱动。我首先要说的是:特别鸣谢本论坛会员Farx的技术指导,才有了下面的成功驱动。      要实现本贴所说的修改lion原版声卡驱动,来驱动你的声卡的前提是:在雪豹下,dsdt+仿冒声卡驱动+系统原版声卡成功的驱动了你的声卡。对声卡仿冒驱动不是了解的同学,先在论坛潜水学习一下,推荐论坛紫米的神贴:https://bbs.pcbeta.com/viewthread-623626-1-1.html完整製作仿冒 LegacyHDA.kext (12/16)搞懂原理后再来探讨交流。我十分欢迎高手们指正、拍砖。
在修改前我们先了解一下狮子和雪豹声卡驱动的区别:
https://bbs.pcbeta.com/data/attachment/album/201105/05/162120ga1goalfjglwhczt.pnghttps://bbs.pcbeta.com/data/attachment/album/201105/05/1621169q5i9ocpkegikcic.pnghttps://bbs.pcbeta.com/data/attachment/album/201105/05/162118joqeh3sh3vhm4syx.pnghttps://bbs.pcbeta.com/data/attachment/album/201105/05/1621146fuuwv6d346cif3u.png

       狮子声卡驱动包里PlugIns下没有了AppleHDAPlatformDriver.kext;但是Resources下又多出了很多XML文件,这些变化造成我们如果按照雪豹驱动声卡的办法(dsdt+仿冒声卡驱动)来处理狮子声卡驱动的结果是;系统概述那里和雪豹一样正确描述了声卡各个插孔的功能,但是偏好设置那里没有声音的输入输出设备,声卡不能用没声。搞过声卡仿冒驱动的同学都应该了解,如果dsdt修正正确,HDA Hardware Config Resource/HDAConfigDefault/ConfigData值提取修改正确,LayoutID值和dsdt里的值相对应,那么就像上面所说的一样系统概述那里正确描述了声卡各个插孔的功能,要想让声卡正确工作,只有HDAConfigDefault还不够,还需要HDA Platform Resource来正确的设置声卡各个插空的节点路径、增益值等才能让声卡正常的工作,我们目前的声卡仿冒驱动主要有两个主要的字典一个是HDA Hardware Config Resource对应原版声卡驱动的AppleHDA.kext/Contents/PlugIns/AppleHDAHardwareConfigDriver.kext另一个是HDA Platform Resource对应原版声卡驱动的AppleHDA.kext/Contents/PlugIns/AppleHDAPlatformDriver.kext。由于狮子的声卡结构的改变没有了AppleHDAPlatformDriver.kext。我们仿冒驱动的HDA Platform Resource就没有了用武之地不起作用了,声卡也就不能正常工作了。那么狮子声卡驱动HDA Platform Resource的功能跑到那里去了昵。Farx大神发现了其中的奥秘,狮子的HDA Platform Resource用AppleHDA.kext/Contents/Resources/一些XML文件取代了。好了现在我们找到了问题的所在,那么就有办法解决了。
下面说一下具体的步骤和方法:      以我的其中一台机器主板华硕p5k-e wifi/ap 声卡AD1988B为例来看看如何修改。
第一步:拷贝狮子原版声卡驱动AppleHDA.kext到桌面,再右键显示包内容拷贝/Contents/Resources/下Platforms.xml和layout12.xml到桌面,准备进行修改。使用由阿轩汉化的PlistEditPro1.6进行修改去网盘下载:http://u.115.com/file/blmzuxg7。要尊重原作者阿轩的汉话成果不得用于商业目的。
第二步:右键显示声卡仿冒驱动的包内容,用PlistEditPro打开Info.plist,再用PlistEditPro分别打开刚才拷贝到桌面的原版声卡驱动的Platforms.xml和layout12.xml.按照如下图片修改:https://bbs.pcbeta.com/data/attachment/album/201105/05/104807u4qsulb6zro2h5zz.pnghttps://bbs.pcbeta.com/data/attachment/album/201105/05/104811v7ee4xexolclj3b3.png

第三部:删掉仿冒驱动里的HDA Platform Resource如图:https://bbs.pcbeta.com/data/attachment/album/201105/05/113116xxo4kkle8hc0oo4o.png

第四部:将修改好的仿冒驱动放回到变色龙Extra/Extensions/下替换掉原来的仿冒驱动。
第五步:将修改好的原版声卡驱动的Platforms.xml和layout12.xml放到桌面AppleHDA.kext/Contents/Resources/下替换掉原来的Platforms.xml和layout12.xml。
第六步:用Kext Wizard或者Kext Utility安装修改好的AppleHDA.kext。修复权限、清除缓存,重启机器,你的声卡应该可以使用了。

另外修改后可以使用的这两个Platforms.xml和layout12.xml文件保存好,以后lion系统升级,如果声卡驱动结构没有根本性的改变,那么只要替换系统驱动AppleHDA.kext/Contents/Resources/下的同名文件就可以了。
附件p5k-e wifi/ap.zip里面有整合了声卡仿冒驱动以及88e8056网卡仿冒驱动的FakeSMC.kext。115网盘的p5k.zip还包含了修改好的AppleHDA.kext。一样主板的同学可以直接拿来用了。
还有一个就是和大家分享一个小经验如何合并变色龙下Extra/Extensions文件夹里的仿冒驱动:用PlistEditPro分别打开FakeSMC.kext的Info.plist和仿冒驱动的Info.plist文件把仿冒驱动Info.plist里IOKitPersonalities项下的字典比如我的网卡的“Yukon-88E8056”拷贝到FakeSMC.kext的Info.plist的IOKitPersonalities项下,有几个拷贝几个。然后保存FakeSMC.kext的Info.plist和FakeSMC.kext。就可以删掉仿冒驱动了,如果有多个仿冒驱动都可以如法炮制,这样一来色龙下Extra/Extensions文件夹里是不是清爽了很多,只有一个FakeSMC.kext了。修改示例如下图:
https://bbs.pcbeta.com/data/attachment/album/201105/05/221331r7zqfygqdqdodrkz.png
网盘下载地址:http://u.115.com/file/e6cyz0dp。


5.15更新经测试本方法同样适用于10.6.6和10.6.7随机盘安装的系统,新的10.6.8测试版也同样适用。上述三系统的声卡结构都发生了变化,和狮子的声卡结构一样了。5.22更新在lion-11A459e原版声卡驱动基础上修改的ALC662/ALC887-888B/ALC888/ALC889a/ALC889/ALC892的声卡驱动。注意:这几个驱动不需要仿冒驱动,可以直接替换系统S/L/E下的AppleHDA.kext,替换后清除缓存,修复权限再重启机器!建议新手用Kext Wizard来安装,用法见下图:https://bbs.pcbeta.com/data/attachment/album/201105/22/123901vohvgh3g2bavodzi.png






6.28日加入:nksmiles同学修改的ALC269的驱动(唯一存在的问题联想的ALC269有个奇怪的问题没有解决,就是内建Mic必须屏蔽,否则所有输入输出不可用)nksmiles同学修改的ALC269的驱动6.29更新:
1、联想Thinkpad E40系列的外置Mic和耳机是一个插头的,跟手机类似,但是手机带的4脚插头的耳麦实际上没法直接接到本上用,今天终于找到一个共用一个插头的耳麦,做了些测试,因为这个耳麦虽然共用一个插头,但是耳机和Mic可以分开用,所以就改了PathMaps把原来的内置扬声器和耳机的自动切换改为手动切换。可以使用外置Mic+内置扬声器。
2、调整了外置输入Mic相关节点的ConfigData和Layout,改为LineIn保证外置Mic可以和内置扬声器一起使用。

7.22更新在正式版11A511基础上修改的部分声卡驱动:
注意:这几个驱动对应的dsdt里layout-id见各个驱动的注明,并且这几个驱动不需要仿冒驱动,可以直接替换系统S/L/E下的AppleHDA.kext,替换后清除缓存,修复权限再重启机器!
1、华硕p5k-e 的AD1988B的:
注意:dsdt里layout-id一定要是:0x0c, 0x00, 0x00, 0x00,换算成十进制就是12。
2、华硕p6x58d的Alc889的:注意:dsdt里layout-id一定要是:0x79, 0x03, 0x00, 0x00,换算成十进制就是889。

3、技嘉Alc889的:注意:dsdt里layout-id一定要是:0x79, 0x03, 0x00, 0x00,换算成十进制就是889。

4、技嘉Alc889a的:
注意:dsdt里layout-id一定要是:0x75, 0x03, 0x00, 0x00,换算成十进制就是885。


5、技嘉Alc888的:
注意:dsdt里layout-id一定要是:0x78, 0x03, 0x00, 0x00,换算成十进制就是888。


6、Alc892的:
注意:dsdt里layout-id一定要是:0x7c, 0x03, 0x00, 0x00,换算成十进制就是892。


7、nksmiles同学修改的ALC269的驱动:
注意:dsdt里layout-id一定要是:0x0D, 0x01, 0x00, 0x00,换算成十进制就是269,内置扬声器和耳机自动切换。







jianyili 发表于 2011-5-5 10:44

本帖最后由 jianyili 于 2011-5-22 20:31 编辑

下面再来说说我的另一台机器华硕P6X58D Premium主板,声卡ALC889的修改:       这里和上面所说的1988B声卡修改步骤一样,细节有些不同。首先我们要了解dsdt里layout-id和声卡仿冒驱动的对应关系。1988B声卡dsdt里layout-id是0x0C, 0x00, 0x00, 0x00,换算成十进制就是12所以声卡仿冒驱动那里对应的LayoutID和PathMapID都是12,所以我们上面讲的的第五步就是替换原版声卡驱动的layout12.xml。
我的alc889声卡dsdt里layout-id是0x79, 0x03, 0x00, 0x00,换算成十进制就是889所以声卡仿冒驱动那里对应的LayoutID和PathMapID都是889。这里是提醒同学们注意的地方,如果LayoutID不是12的同学,从第五步开始和上面的有所不同了。      由于我的这台机器机型设置成:MacPro5,1还要修改原版声卡AppleHDA.kext/Contents/MacOS/下的AppleHDA,具体办法可参照论坛另一位大神威廉第三的的帖子:修复安装Mac Pro 音频更新 1.0后声卡失效教程,升级10C2234及10.6.3的朋友也请看下https://bbs.pcbeta.com/viewthread-690037-1-1.html这里开始第五步和上面略有不同了。       889声卡的修改步骤前四步和1988B相同。第五步:将修改好的原版声卡驱动的layout12.xml改名为layout889.xml,和Platforms.xml一起放到桌面AppleHDA.kext/Contents/Resources/下替换掉原来的Platforms.xml;用修改好的AppleHDA替换AppleHDA.kext/Contents/MacOS/下的AppleHDA。第六步同上。
如果有些同学修改AppleHDA.kext/Contents/MacOS/下的AppleHDA有困难,可以在第六步安装完AppleHDA.kext后不要重启机器,开启终端,输入sudo -s回车,输入密码回车。再对应你的声卡输入以下命令后回车:
alc889:
sudo perl -pi -e 's|\x85\x08\xec\x10|\x89\x08\xec\x10|g' /System/Library/Extensions/AppleHDA.kext/Contents/MacOS/AppleHDAalc888:

sudo perl -pi -e 's|\x85\x08\xec\x10|\x88\x08\xec\x10|g' /System/Library/Extensions/AppleHDA.kext/Contents/MacOS/AppleHDA
alc883:

sudo perl -pi -e 's|\x85\x08\xec\x10|\x83\x08\xec\x10|g' /System/Library/Extensions/AppleHDA.kext/Contents/MacOS/AppleHDAD2000B:

sudo perl -pi -e 's|\x8b\x19\xd4\x11|\x9b\x98\xd4\x11|g' /System/Library/Extensions/AppleHDA.kext/Contents/MacOS/AppleHDAalc662:
sudo perl -pi -e 's|\x85\x08\xec\x10|\x62\x06\xec\x10|g' /System/Library/Extensions/AppleHDA.kext/Contents/MacOS/AppleHDA

alc892:sudo perl -pi -e 's|\x62\x02\xec\x10|\x92\x08\xec\x10|g' /System/Library/Extensions/AppleHDA.kext/Contents/MacOS/AppleHDA

然后重启机器就可以了。
      附件里面是集合了alc889声卡仿冒驱动、88e8056网卡、修复ICH10R硬盘橙色显示问题,可以显示cpu、硬盘、主板、环境温度,cpu、显卡(N卡)、机箱风扇转速的FakeSMC.kext和修改好的layout889.xml及Platforms.xml。

      提示一点,这个驱动在我的机器上除了前面版麦克风被我屏蔽了以外,其它插孔都可以正常工作包括红外和光纤输出。我主板的alc889与技嘉主板alc889的ConfigData值和有些插孔的节点值不同,可能技嘉主板的alc889也可以用,但是有些孔可能会不工作。不过同学可以拿去做一下参考。





allok2003 发表于 2011-5-5 11:13

有点给他复杂看没有懂

lzf1999 发表于 2011-5-5 11:13

这样做的话还需要用DSDT吗?我装完以后发现我的变色龙R755不读取DSDT 不知道为什么

2young.ko 发表于 2011-5-5 11:15

期待完整教程。谢谢

米饭加白菜 发表于 2011-5-5 13:22

路过学习下

huang____ 发表于 2011-5-5 13:46

4738G的272不知道行不行呐。

ll23416583 发表于 2011-5-5 13:52

顶楼主,终于可以用上狮子的原版声卡驱动了!{:5_293:}

jiunshi 发表于 2011-5-5 14:28

看了頭好暈 支持樓主

mbjjz 发表于 2011-5-5 14:42

原来是这样,学习了{:7_486:}

daiyonghai 发表于 2011-5-5 16:18

路过,顶一下技术帖,等LION出正式版后,在折腾下

wind315 发表于 2011-5-5 16:27

留名待改,郁闷的是我目前的DP2不出桌面了

jianyili 发表于 2011-5-5 19:59

回复 allok2003 的帖子

如果你在雪豹下,用dsdt加仿冒驱动驱动了声卡,其实也是简单的,前面的不用看,从第一步开始看图操作,一共才六步都是黑苹果的常用的操作办法,应该好搞的。

catkids 发表于 2011-5-5 20:01

来晚了,感谢劳动~
考完试就开工^ ^

abus 发表于 2011-5-5 20:02

本帖最后由 abus 于 2011-5-5 20:03 编辑

10.6.6的随机盘声卡驱动和此类似结构,台机好搞,基本10.5的拿来就能用,笔电难

believe 发表于 2011-5-5 20:31

等LION出正式版后,在折腾下.做个记号。后天路考了。考完再搞。

chiurin 发表于 2011-5-5 20:45

用10.6.7的來替代也很完美,不過試修改一下看看,謝謝樓主教學!

viva73 发表于 2011-5-5 21:18

收藏备用,谢谢分享..

ll23416583 发表于 2011-5-5 22:50

本帖最后由 ll23416583 于 2011-5-5 23:08 编辑

回复 jianyili 的帖子

8点一直搞到现在,都没有成功!实在找不到任何问题所在!{:5_287:}

melyan 发表于 2011-5-5 22:57

都是高手啊,我只好等各位的y450 alc269的修改驱动了,没能力啊
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 抛弃10.6的声卡驱动,修改lion原版声卡驱动来驱动你的声卡,7.22更新部分声卡驱动