- 积分
- 3754
- 最后登录
- 2024-4-16
- 精华
- 0
- 阅读权限
- 70
- 主题
- 96
- UID
- 245936
- 帖子
- 3129
- PB币
- 1226
- 威望
- 417
- 贡献
- 0
- 技术
- 290
- 活跃
- 1624
- UID
- 245936
- 帖子
- 3129
- PB币
- 1226
- 贡献
- 0
- 技术
- 290
- 活跃
- 1624
|
本帖最后由 gcafrk 于 2014-5-19 20:17 编辑
小黑T410的CX20585声卡的AppleHDA自LION开始就应该比较完美了,只是外置MIC一直无法使用。后来在MLION下,进行了路径的更正,使得小黑T410的CX20585 AppleHDA在T410上完美工作:
- 内置MIC、外置MIC可以自动切换;
- 内置MIC输入有电平;
- 内置扬声器与耳机可以自动切换;
- 启动了“使用环境噪音降低功能”;
耳机的声音超级棒!!赞一下原版驱动!!
1)首先,用UBUNTU光盘启动电脑,获取CODEC(具体方法可搜索论坛)。从中获得以下有用的节点代码:
- Node 0x10: Audio Output(扬声器与耳机输出都需要用到它)
- Node 0x1f: Speaker at Int(内置扬声器)
- Node 0x19: HP Out at Ext Right(HP=HeadPhone耳机。Ext=Extenal外置)
- Node 0x1b: Mic at Ext Right(外置MIC)
- Node 0x23: Mic at int(内置MIC)
- Node 0x14: Audio Input(内置MIC的输入需要用到它)
- Node 0x16: Audio Input(外置MIC的输入需要用到它)
- Node 0x17: Audio Selector(MIC的输入需要用到它)
- Node 0x1a: Mic at Sep Rear(这个节点实际上是无用的,在WINDOWS的注册表中也找不到它)
- Node 0x1c: HP Out at Sep Rear(这个节点实际上也是无用的,在WINDOWS的注册表中也找不到它)
注:需要将以上16进制转换成10进制的数字,用在下面第二点的节点连接分析中。
2)分析节点连接结果:(具体方法可采用紫米的手工方法,或者采用codec生成节点连接图的方法)
- 内置MIC:20>35
- 外置MIC:22>23>27(或者21>23>27)
- 内置扬声器:31>16
- 耳机:25>16
用以上节点连接在Platforms.XML中做成两组自动切换。注:如果你的声卡节点路径与上面不同,则需要自行修改。
3)ConfigData生成:【在该kext的Plugin目录的AppleHDAHardwareConfigDriver.kext的Info.plist文件中】
我直接采用紫米的建议,我手工生成了4组ConfigData,并且发现这4组都可以很好地工作。我则使用了第一组(随便挑的)。
第一组:(后面会分析如何修改它们为自己声卡专属的ConfigData)- 01971C50 01971D40 01971E21 01971F01 01F71C40 01F71D01 01F71E10 01F71F90 01B71C20 01B71D30 01B71E81 01B71F01 02371C10 02371D01 02371EA0 02371F90
复制代码
第二组:- 01971C50 01971D40 01971E21 01971F01 01F71C40 01F71D41 01F71E10 01F71F90 01B71C20 01B71D30 01B71E81 01B71F01 02371C10 02371D01 02371EA0 02371F90
复制代码
第三组:- 01971C50 01971D40 01971E21 01971F01 01F71C60 01F71D01 01F71E10 01F71F90 01B71C20 01B71D30 01B71E81 01B71F01 02371C10 02371D01 02371EA0 02371F90
复制代码
第四组:- 01971C50 01971D40 01971E21 01971F01 01F71C60 01F71D41 01F71E10 01F71F90 01B71C20 01B71D30 01B71E81 01B71F01 02371C10 02371D01 02371EA0 02371F90
复制代码
在这4组ConfigData中,其实只要关心前3位数:
第1位“0”为声卡codec中的Address。如果你的声卡Address是1,则将其都改为“1”。
第2、3两位为声卡对应的内外MIC与内外喇叭,以第一组ConfigData为例: 19=耳机,1F=内置扬声器,1B=外置MIC,23=内置MIC。
如果你的声卡这4个设备的ID与其不同,则可以用自己声卡这4个设备的ID分别替换它们。
按照这个方法,就可以为自己的声卡设置专属的ConfigData了。
4)Layout:
我采用了LayoutID 12。在Layout12.XML文件中,Inputs的第一项为Mic,第二项输入用了LineIn;Outputs的第一项为Headphone,第二项用了LineOut(很多人认为第二项要用IntSpeaker,而实际上用IntSpeaker则扬声器就不出声了)。
Platforms.XML中的LayoutID也要用12。
5)去除Sound assertion提示:(对所有声卡均通用)
10.8GM之后,AppleHDA代码改成了用参数形式,而不是像LION时代在程序中写入了几乎所有的提示文本,因此AppleHDA文件很小,也只要修改一处即可屏蔽所有日志中的Sound assertion提示。
去除方法:用Hex Friend程序打开kext中的/MacOS/AppleHDA文件,搜索文本:Sound assertion in %s at line %d%s%d
它的二进制值是:- 53 6F 75 6E 64 20 61 73 73 65 72 74 69 6F 6E 20 69 6E 20 25 73 20 61 74 20 6C 69 6E 65 20 25 64 0A 00 25 73 00 25 64
复制代码
然后在二进制格式中,用相同位数的0替换掉:- 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
复制代码
6)AppleHDA二进制补丁:
- sudo perl -pi -e 's|\\x84\x19\xd4\x11|\x69\x50\xf1\x14|g' ~/Desktop/AppleHDA.kext/Contents/MacOS/AppleHDA
复制代码 (此处假设AppleHDA.kext放在了桌面上)
也可以用Hex Friend程序将8419d411替换成6950f114。此处均为二进制值。
7)DSDT修改:
- Device (HDEF)
- {
- Name (_ADR, 0x001B0000)
- Method (_DSM, 4, NotSerialized)
- {
- Store (Package (0x0E)
- {
- "AAPL,slot-name",
- Buffer (0x09)
- {
- "Built in"
- },
- "device-id",
- Buffer (0x04)
- {
- 0x69, 0x50, 0xF1, 0x14
- },
- "layout-id",
- Buffer (0x04)
- {
- 0x0C, 0x00, 0x00, 0x00
- },
- "model",
- Buffer (0x1A)
- {
- "HD Audio Conexant Cx20585"
- },
- "name",
- Buffer (0x11)
- {
- "Conexant Cx20585"
- },
- "device_type",
- Buffer (0x11)
- {
- "Audio Controller"
- },
- "PinConfigurations",
- Buffer (Zero) {}
- }, Local0)
- DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
- Return (Local0)
- }
- Name (_S3D, 0x03)
- Name (RID, Zero)
- Name (_PRW, Package (0x02)
- {
- 0x0D,
- 0x04
- })
- Method (_PSW, 1, NotSerialized)
- {
- Noop
- }
- }
复制代码
上4张图片:
另补充:1)关于节点连接,还有一组也是可以出声的:
- 内置MIC:21>35
- 外置MIC:20>23>27(或者20>23>27)
- 内置扬声器:31>17
- 耳机:25>16
2)二进制补丁中,还有一组替换方法:将8b19d411替换成6950f114,也是可以出声的。
上附件,修改好的10.9.3版T410声卡CX20585驱动:
AppleHDA-for-T410-CX20585.kext.zip
(1.24 MB, 下载次数: 403)
若需要10.9.3原版AppleHDA,在此处:
AppleHDA-V261-ORG.kext.zip
(1.24 MB, 下载次数: 51)
|
|