使用Clover 开启ALC662声卡原生AppleHDA驱动
ALC662一直以来是个难题,非常难以驱动,下载了很多版本的ALC662驱动,但都驱动不了,最后只能使用VoodooHDA。但VoodooHDA也不完美,老是出现破音,声音也不太正常。最近看了看insanelymac上的资料,使用patch-hda脚本进行修改,发现AppleHDA.kext驱动可以正常加载,但没有输入输出设备,发现系统日志中出现很多有关声卡的错误信息,确定两个问题,一是对AppleHDA的bin patch有问题,二是path map不正确,最后经不断试验,终于成功加载了声卡。bin patch中,发现资料中说的替换0x10ec0885为0x10ec0662对我的声卡来说不行,需要使用0x11d41984这个codecID来替换0x10ec0662,同时把0x10ec0885、0x10ec0884改为0x000000才可以正确识别,很奇怪的问题,也许ALC662也有很多版本吧。然后是path map,这个可以根据论坛上的教程来得到,这里附上我成功驱动的文件:一、修改layout及pin config data
将下载的文件解压至桌面,然后复制layout5.zml.zlib、layout7.zml.zlib、layout9.zml.zlib、Platforms.zml.zlib至/S/L/E/AppleHDA.kext/Content/Resources目录下:
sudo cp ~/Desktop/Resources/* /System/Library/Extensions/AppleHDA.kext/Contents/Resources
二、修改Info.plist
将/System/Library/Extensions/AppleHDA.kext/Contents/PlugIns/AppleHDAHardwareConfigDriver.kext/Contents/Info.plist复制到桌面,用文本编辑器打开,在<HDAConfigDefault>项目下的<arrary>下插入以下内容:
<dict>
<key>AFGLowPowerState</key>
<data>
AwAAAA==
</data>
<key>Codec</key>
<string>Mirone - Realtek ALC662</string>
<key>CodecID</key>
<integer>283903586</integer>
<key>ConfigData</key>
<data>
AUccEAFHHUABRx4RAUcfkAGHHCABhx2QAYce
oAGHH5AB5xwwAecdYQHnHksB5x8BAaccQAGn
HTABpx6BAacfAQG3HFABtx1AAbceIQG3HwEB
lxxgAZcdkAGXHoEBlx8C
</data>
<key>FuncGroup</key>
<integer>1</integer>
<key>LayoutID</key>
<integer>5</integer>
</dict>
<dict>
<key>AFGLowPowerState</key>
<data>
AwAAAA==
</data>
<key>Codec</key>
<string>Mirone - Realtek ALC662</string>
<key>CodecID</key>
<integer>283903586</integer>
<key>ConfigData</key>
<data>
AUccEAFHHUABRx4RAUcfAQFXHCABVx0QAVce
AQFXHwEBZxwwAWcdYAFnHgEBZx8BAXccQAF3
HSABdx4BAXcfAQGHHFABhx2QAYceoAGHH5AB
lxxgAZcdkAGXHoEBlx8CAacccAGnHTABpx6B
AacfAQG3HIABtx1AAbceIQG3HwIB5xyQAecd
YAHnHkUB5x8B
</data>
<key>FuncGroup</key>
<integer>1</integer>
<key>LayoutID</key>
<integer>7</integer>
</dict>
<dict>
<key>AFGLowPowerState</key>
<data>
AwAAAA==
</data>
<key>Codec</key>
<string>Mirone - Realtek ALC662</string>
<key>CodecID</key>
<integer>283903586</integer>
<key>ConfigData</key>
<data>
IUccECFHHUAhRx4RIUcfASFXHCAhVx0QIVce
ASFXHwEhZxwwIWcdYCFnHgEhZx8BIXccQCF3
HSAhdx4BIXcfASGHHFAhhx2QIYceoCGHH5Ah
lxxgIZcdkCGXHoEhlx8CIacccCGnHTAhpx6B
IacfASG3HIAhtx1AIbceISG3HwIh5xyQIecd
YCHnHkUh5x8B
</data>
<key>FuncGroup</key>
<integer>1</integer>
<key>LayoutID</key>
<integer>9</integer>
</dict>
存盘退出。然后使用PList Editor将<HDA Hardware Config Resource>项目复制到Clover目录相应版本FakeSMC.kext/Contents/Info.plist中<IOKitPersonalities>项目下,注意要复制为子项,Paste as child。如果你的Clover装在EFI分区下,目录为:/Volumes/EFI/EFI/CLOVER/kexts/10.10/FakeSMC.kext/Contents/Info.plist
EFI分区一般没有加载,需要手动加载:
首先使用diskutil list命令找到EFI分区:
diskutil list
/dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *500.1 GB disk0 1: Windows_NTFS DATA 500.1 GB disk0s1/dev/disk1 #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *1.0 TB disk1 1: DOS_FAT_32 EFI 210.2 MB disk1s1 2: Windows_NTFS WINDOWS 107.4 GB disk1s2 3: Windows_NTFS WIN8PE 12.1 GB disk1s3 4: Windows_NTFS PROGRAMS 536.9 GB disk1s5 5: Apple_HFS YOSEMITE 214.7 GB disk1s6 6: Apple_HFS MARVERICK 53.7 GB disk1s7 7: Apple_HFS Yosemite Install(14E46) 10.7 GB disk1s8
8: Windows_NTFS LINUX 64.4 GB disk1s9
可以看到EFI分区在disk1s1上,当然,如果你只有一个硬盘,一般在disk0s1上。
然后挂载EFI分区:
mkdir /Volumes/EFI
sudo mount -t msdos /dev/disk0s1 /Volumes/EFI
三、在Clover配置文件config.plist中加入AppleHDA二进制补丁:
配置文件修改完成后,还需要对AppleHDA.kext/Content/MacOS/AppleHDA文件打二进制补丁,一是ID替换:
8408ec10 => 00000000 将此ID屏蔽
8508ec10 => 00000000 将此ID屏蔽
8419d411 => 6206ec10 将此ID修改为ALC662的硬件设备ID:0x10EC0662,由于数据存储规制是高低字节相反,10ec0662高低字节交换后是6206ec10。
为了以后升级后不覆盖修改后的配置文件,还需要将layout5.xml.zlib及platform.xml.zlib改为读取layout5.zml.zlib、platform.zml.zlib。
因此我们需要共加入四个补丁,打开Clover的配置文件/EFI/EFI/CLOVER/config.plist,找到<key>KextsToPatch</key>项,在<array>项下加入补丁数据:
<dict>
<key>Comment</key>
<string>ALC662 ID patch</string>
<key>Find</key>
<data>
hBnUEQ==
</data>
<key>Name</key>
<string>AppleHDA</string>
<key>Replace</key>
<data>
YgbsEA==
</data>
</dict>
<dict>
<key>Comment</key>
<string>ALC662 range comparison patch</string>
<key>Find</key>
<data>
hAjsEA==
</data>
<key>Name</key>
<string>AppleHDA</string>
<key>Replace</key>
<data>
AAAAAA==
</data>
</dict>
<dict>
<key>Comment</key>
<string>ALC662 range compare patch</string>
<key>Find</key>
<data>
hQjsEA==
</data>
<key>Name</key>
<string>AppleHDA</string>
<key>Replace</key>
<data>
AAAAAA==
</data>
</dict>
<dict>
<key>Comment</key>
<string>ALC662 layout patch (xml.zl to zml.zl)</string>
<key>Find</key>
<data>
eG1sLnps
</data>
<key>Name</key>
<string>AppleHDA</string>
<key>Replace</key>
<data>
em1sLnps
</data>
</dict>
四、声卡注入
AppleHDA的所有修改已经完成,以前还需要改dsdt加入HDEF,现在可以方便的使用Clover来完成,在Clover配置文件config.plist中把<key>audio</key>下的<key>Inject</key>值改为<sting>5</string>,把FixHDA_8000值改为<true/>即可。
至此修改完成,用kext utility修复权限和更新kext cache,重启系统。之后如果升级系统,如AppleHDA.kext无重大变化,补丁将一直有效,不用再每次升级后需要重新打AppleHDA.kext补丁了。
ALC892路过帮顶,技术贴居然没人理!{:5_278:} 看着很专业的样子,笔记本的662试下 看着很专业的样子 yctqhe 发表于 2015-8-2 06:52 http://cdn.pcbeta.img.inimc.com/static/image/common/back.gif
看着很专业的样子
10.10.4下能用吗 10.10.4下能用吗 楼主我是用的变色龙引导的10.10怎么办?有没有变色龙的教程 DSDT加入声卡ID 5按照楼主的教程通过Clover成功驱动ALC662
非常感谢! 版主幸苦了,!!!!!!!!!!! 好帖。。。。。。。。。。。。。。 试过很多方法不行。。再看看 ALC662v2用户来试试 学习了,很好正需要 学习学习。 yctqhe 发表于 2015-8-2 06:52 http://cdn.pcbeta.img.inimc.comstatic/image/common/back.gif
看着很专业的样子
有难度学习了 有难度学习了
看着很专业的样子,笔记本的662试下
yctqhe 发表于 2015-8-2 06:52
看着很专业的样子
有难度学习了 有难度学习了 感谢分享..希望有用
页:
[1]