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,这个可以根据论坛上的教程来得到,这里附上我成功驱动的文件:
Resources.zip
(14.66 KB, 下载次数: 23)
2015-7-30 16:27 上传
下载次数: 23
下载积分: 米币 -1
一、修改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复制到桌面,用文本编辑器打开,在项目下的下插入以下内容:
AFGLowPowerState
AwAAAA==
Codec
Mirone - Realtek ALC662
CodecID
283903586
ConfigData
AUccEAFHHUABRx4RAUcfkAGHHCABhx2QAYce
oAGHH5AB5xwwAecdYQHnHksB5x8BAaccQAGn
HTABpx6BAacfAQG3HFABtx1AAbceIQG3HwEB
lxxgAZcdkAGXHoEBlx8C
FuncGroup
1
LayoutID
5
AFGLowPowerState
AwAAAA==
Codec
Mirone - Realtek ALC662
CodecID
283903586
ConfigData
AUccEAFHHUABRx4RAUcfAQFXHCABVx0QAVce
AQFXHwEBZxwwAWcdYAFnHgEBZx8BAXccQAF3
HSABdx4BAXcfAQGHHFABhx2QAYceoAGHH5AB
lxxgAZcdkAGXHoEBlx8CAacccAGnHTABpx6B
AacfAQG3HIABtx1AAbceIQG3HwIB5xyQAecd
YAHnHkUB5x8B
FuncGroup
1
LayoutID
7
AFGLowPowerState
AwAAAA==
Codec
Mirone - Realtek ALC662
CodecID
283903586
ConfigData
IUccECFHHUAhRx4RIUcfASFXHCAhVx0QIVce
ASFXHwEhZxwwIWcdYCFnHgEhZx8BIXccQCF3
HSAhdx4BIXcfASGHHFAhhx2QIYceoCGHH5Ah
lxxgIZcdkCGXHoEhlx8CIacccCGnHTAhpx6B
IacfASG3HIAhtx1AIbceISG3HwIh5xyQIecd
YCHnHkUh5x8B
FuncGroup
1
LayoutID
9
存盘退出。然后使用PList Editor将项目复制到Clover目录相应版本FakeSMC.kext/Contents/Info.plist中项目下,注意要复制为子项,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,找到KextsToPatch项,在项下加入补丁数据:
Comment
ALC662 ID patch
Find
hBnUEQ==
Name
AppleHDA
Replace
YgbsEA==
Comment
ALC662 range comparison patch
Find
hAjsEA==
Name
AppleHDA
Replace
AAAAAA==
Comment
ALC662 range compare patch
Find
hQjsEA==
Name
AppleHDA
Replace
AAAAAA==
Comment
ALC662 layout patch (xml.zl to zml.zl)
Find
eG1sLnps
Name
AppleHDA
Replace
em1sLnps
四、声卡注入
AppleHDA的所有修改已经完成,以前还需要改dsdt加入HDEF,现在可以方便的使用Clover来完成,在Clover配置文件config.plist中把audio下的Inject值改为5,把FixHDA_8000值改为即可。
至此修改完成,用kext utility修复权限和更新kext cache,重启系统。之后如果升级系统,如AppleHDA.kext无重大变化,补丁将一直有效,不用再每次升级后需要重新打AppleHDA.kext补丁了。
ALC892路过帮顶,技术贴居然没人理!
看着很专业的样子,笔记本的662试下
看着很专业的样子
yctqhe 发表于 2015-8-2 06:52
看着很专业的样子
10.10.4下能用吗
10.10.4下能用吗
楼主我是用的变色龙引导的10.10怎么办?有没有变色龙的教程
DSDT加入声卡ID 5按照楼主的教程通过Clover成功驱动ALC662
非常感谢!
版主幸苦了,!!!!!!!!!!!
好帖。。。。。。。。。。。。。。
试过很多方法不行。。再看看
ALC662v2用户来试试
学习了,很好正需要