Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

搜索
查看: 41309|回复: 388

[教程] AppleALC使用和修改教程     [复制链接]

Rank: 7Rank: 7Rank: 7

UID
4783896
帖子
1265
PB币
544
贡献
0
技术
0
活跃
760
发表于 2016-8-12 11:39:37 |显示全部楼层
本帖最后由 13469977015002 于 2016-8-21 11:28 编辑

-------------------------------------------------------------------



-------------------------------------------------------------------
操作前必看:
多次安装万能驱动可能会造成不知名的原因无法加载AppleHDA,
确定方法为查看功能扩展中查看AppleHDA是否加载。
已知俩款声卡使用AppleALC无效:ALC662,CX20590
-------------------------------------------------------------------
本教程以ALC887为例,希望方法简单了能让更多小白完美驱动声卡。
在终端输入代码,下载AppleALC
  1. git clone https://github.com/vit9696/AppleALC
复制代码
记录codec中以下内容:
①Address值

address值只有0和2俩种情况,本帖举例中为0

②在codec中搜索Pin Default


如上图如果搜到的内容中间有N/A则不记录(后方有N/A,可记录)

如上图如果搜到的内容无N/A则记录下一串数字后面的设备名称和往上找最近的node值
此处记录的内容为:Line Out at Ext Rear    Node=0x14

整理下记录内容如下:
Line Out at Ext Rear    Node=0x14    线路输出
Mic at Ext Rear            Node=0x18    后置麦克风
Mic at Ext Front           Node=0x19    前置麦克风
Line In at Ext Rear       Node=0x1a     线路输入
HP Out at Ext Front    Node=0x1b     耳机扬声器

这里需要解释下:
对于台式机,可能会出现多个线路输出,至少要把一个线路输出改成内置扬声器。
麦克风最多只可定义一个,所以把前置麦克风改成线路输入。
对于笔记本MIC at ext为外置麦克风,mic at in为内置麦克风,需要把外置麦克风改成线路输入。

更改后内容如下:
Line Out at Ext Rear    Node=0x14    内置扬声器
Mic at Ext Rear            Node=0x18    后置麦克风
Mic at Ext Front           Node=0x19    线路输入
Line In at Ext Rear       Node=0x1a     线路输入
HP Out at Ext Front    Node=0x1b     耳机扬声器



③Vendor Id值,并将其转换为10进制



使用PlistEdit Pro打开appleALC/Resources/PinConfigs/Contents/Info.plist
搜索283904135(此数字为Vendor Id值的10进制)

如上图有不止一个ALC887声卡的配置内容,但是其中的layoutID不同。
先把layoutID=1中的ConfigData后面很长的数字复制出来

如上图将每四串数字排成1行,没串数字的第一个数字代表Address值。
示例中Address=0,所以layoutID=1不适合这款声卡。继续往下找:


每一串数字的第二位+第三位代表node值
每一行的第三串数字中的倒数第二个数字是设备的定义,定义的规则如下:
  1. 0 = Line Out
  2. 1 = Speaker
  3. 2 = HP Out
  4. 3 = CD
  5. 4 = SPDIF Out
  6. 5 = Digital Other Out
  7. 6 = Modem Line Side
  8. 7 = Modem Handset Side
  9. 8 = Line In
  10. 9 = AUX
  11. A = Mic In
  12. B = Telephone
  13. C = SPDIF In
  14. D = Digital Other In
  15. E = Reserved
  16. F = Other
复制代码
拿出之前记录的内容和图中对比:
Line Out at Ext Rear    Node=0x14    内置扬声器
Mic at Ext Rear            Node=0x18    后置麦克风
Mic at Ext Front           Node=0x19    线路输入
Line In at Ext Rear       Node=0x1a     线路输入
HP Out at Ext Front    Node=0x1b     耳机扬声器


第一行node值为0x14,第三串数字中的倒数第二个数字是1= Speaker=内置扬声器,符合条件。
第二行node值为0x18,第三串数字中的倒数第二个数字是A= Mic In=内置麦克风,符合条件。
第三行node值为0x19,第三串数字中的倒数第二个数字是8= Line In=线路输入,符合条件。
第四行node值为0x1A,第三串数字中的倒数第二个数字是8= Line In=线路输入,符合条件。
第五行node值为0x1B,第三串数字中的倒数第二个数字是2= HP OUT=耳机扬声器,符合条件。
第六行为多余,删除它。
最后将整理好的数字,替换到info.plist原位置中。记录下其中的LayoutID值=5


将appleALC/Resources/ALC887中的layout5.xml.zlib(5为layoutID值)拖入zlib转换器

点击转换后ALC887文件夹会生成layout5.xml文件,使用PlistEdit Pro打开它。
记录下PathMapID值,此处为1。


将codec导入IDSDT,生成声卡驱动AppleHDAMOD.kext
打开AppleHDAMOD.kext/Contents/Resources复制里面的Platforms.xml文件到ALC887目录下。
然后将其打开更改PathMapID值,之前记录的值为1。

最后将其拖入zlib转换器进行转换完成后会生成Platforms.xml.zlib

再打开ALC887中的info.plist
CodecID值需要改成之前记录的Vendor Id值10进制=283904135

在Platforms下找到ID=5的子项,将Path后面的内容改成Platforms.xml.zlib


打开AppleALC/AppleALC.xcodeproj,生成appleALC



生成的appleALC放入四叶草
layoutID值可先尝试四叶草注入(某些电脑四叶草注入可能无效)
四叶草注入方法:


DSDT注入方法:
先给DSDT打开IRQ补丁:
  1. #Maintained by: RehabMan for: Laptop Patches
  2. #system_IRQ.txt

  3. # This can fix non-working audio and also has an affect on HPET.
  4. #
  5. # Use this if you have issues with patched AppleHDA (required on almost all laptops)
  6. # or if you have issues with HPET (restart after wake).

  7. # IRQ fix
  8. into device name_hid PNP0000 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched;
  9. into device name_hid PNP0100 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched;
  10. into device name_hid PNP0B00 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched;
  11. into device name_hid PNP0103 code_regex IRQNoFlags\s\(\)\n\s+\{.*\} removeall_matched;
  12. into device name_hid PNP0103 code_regex Name\s\(([^,]+),\sResourceTemplate\s\(\).*\n\s+\{((?:.|\n)*)\}\) replace_matched
  13. begin
  14. Name (%1, ResourceTemplate()\n
  15. {\n
  16.     IRQNoFlags() { 0, 8, 11, 15 }\n
  17. %2
  18. })\n
  19. end;
复制代码
搜索HDEF插入以下函数:
  1. Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
  2.             {
  3.                 Store (Package (0x0A)
  4.                     {
  5.                         "hda-gfx",
  6.                         Buffer (0x0A)
  7.                         {
  8.                             "onboard-1"
  9.                         },


  10.                         "layout-id",

  11.                        Buffer (0x04)
  12.                         {         
  13.                              0x05, 0x00, 0x00, 0x00
  14.                         },

  15.                         "PinConfigurations",
  16.                         Buffer (Zero) {}
  17.                     }, Local0)
  18.                 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
  19.                 Return (Local0)
  20.                }
复制代码
其中layoutID可自行更改

可能需要的DTGP函数:
  1. Method (DTGP, 5, NotSerialized)
  2.     {
  3.         If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b")))
  4.         {
  5.             If (LEqual (Arg1, One))
  6.             {
  7.                 If (LEqual (Arg2, Zero))
  8.                 {
  9.                     Store (Buffer (One)
  10.                         {
  11.                              0x03                                          
  12.                         }, Arg4)
  13.                     Return (One)
  14.                 }

  15.                 If (LEqual (Arg2, One))
  16.                 {
  17.                     Return (One)
  18.                 }
  19.             }
  20.         }

  21.         Store (Buffer (One)
  22.             {
  23.                  0x00                                          
  24.             }, Arg4)
  25.         Return (Zero)
  26.     }
复制代码




附件: 你需要登录才可以下载或查看附件。没有帐号?注册
2

查看全部评分

远景首席吹牛体验师

UID
4532202
帖子
3456
PB币
26604
贡献
0
技术
40
活跃
7906
发表于 2016-8-12 12:31:47 |显示全部楼层
技术贴 支持一下

Rank: 5Rank: 5Rank: 5

UID
3582197
帖子
679
PB币
137
贡献
0
技术
18
活跃
2192

十一周年

发表于 2016-8-12 12:36:07 |显示全部楼层
为论坛做贡献值得赞扬!支持了!

Rank: 5Rank: 5Rank: 5

UID
1622063
帖子
715
PB币
81
贡献
0
技术
0
活跃
771
发表于 2016-8-12 12:52:15 |显示全部楼层
这个真心给力,很详细。

Rank: 7Rank: 7Rank: 7

UID
3105024
帖子
1140
PB币
138
贡献
0
技术
0
活跃
1043

十一周年

发表于 2016-8-12 13:17:57 |显示全部楼层
技术贴,收藏了

Rank: 2Rank: 2

UID
832887
帖子
249
PB币
378
贡献
0
技术
9
活跃
487
发表于 2016-8-12 13:29:45 |显示全部楼层
这个真心详细,要想弄好合适自己的,真心需要学习啊

Rank: 7Rank: 7Rank: 7

UID
636753
帖子
998
PB币
156
贡献
0
技术
8
活跃
1566
发表于 2016-8-12 14:48:04 |显示全部楼层
楼主写的真详细啊,收藏!再有这种方法驱动ALC662也是可以的,我就是ALC662。不过就是签名显示是未知,不是显示apple

Rank: 2Rank: 2

UID
139284
帖子
223
PB币
37
贡献
0
技术
6
活跃
995
发表于 2016-8-12 15:46:28 |显示全部楼层
太给力了,一直没弄好,再详细学习一下~ 谢谢!!
头像被屏蔽

UID
2300400
帖子
370
PB币
6
贡献
0
技术
0
活跃
427
发表于 2016-8-12 15:51:43 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

Rank: 5Rank: 5Rank: 5

UID
4389115
帖子
632
PB币
326
贡献
0
技术
8
活跃
1024
发表于 2016-8-12 16:45:08 |显示全部楼层
这个真心给力,很详细。

Rank: 2Rank: 2

UID
1198282
帖子
297
PB币
0
贡献
0
技术
0
活跃
731
发表于 2016-8-12 16:48:38 |显示全部楼层
等有空在练练手

UID
4597068
帖子
3015
PB币
368
贡献
0
技术
76
活跃
3001

十一周年 十周年

发表于 2016-8-12 16:57:48 |显示全部楼层
写的挺详细  不过需要注意下10.11和10.12的Patch不一样
10.11下用1.0.14版本的话需要修改patch

Rank: 7Rank: 7Rank: 7

UID
4783896
帖子
1265
PB币
544
贡献
0
技术
0
活跃
760
发表于 2016-8-12 17:09:47 |显示全部楼层
丶鸭梨大大。 发表于 2016-8-12 16:57
写的挺详细  不过需要注意下10.11和10.12的Patch不一样
10.11下用1.0.14版本的话需要修改patch

我10.11.6和10.12测试版用的同样的appleALC
不知道你说的区别在哪里
真是没注意过

UID
4597068
帖子
3015
PB币
368
贡献
0
技术
76
活跃
3001

十一周年 十周年

发表于 2016-8-12 17:17:02 |显示全部楼层
13469977015002 发表于 2016-8-12 17:09
我10.11.6和10.12测试版用的同样的appleALC
不知道你说的区别在哪里
真是没注意过

8419D411在10.12下是8A19D411

Rank: 7Rank: 7Rank: 7

UID
4783896
帖子
1265
PB币
544
贡献
0
技术
0
活跃
760
发表于 2016-8-12 17:20:46 |显示全部楼层
no-cat 发表于 2016-8-12 14:48
楼主写的真详细啊,收藏!再有这种方法驱动ALC662也是可以的,我就是ALC662。不过就是签名显示是未知,不是 ...

签名是未知,appleALC就没启到效果哦。

Rank: 7Rank: 7Rank: 7

UID
4783896
帖子
1265
PB币
544
贡献
0
技术
0
活跃
760
发表于 2016-8-12 17:22:59 |显示全部楼层
丶鸭梨大大。 发表于 2016-8-12 17:17
8419D411在10.12下是8A19D411

这个没注意
不过出了10.12测试版后,重新下载新版appleALC。重新制作新的appleALC
驱动放10.11和10.12俩个系统都正常驱动声卡。

vistafans

Rank: 7Rank: 7Rank: 7

UID
31764
帖子
2542
PB币
6450
贡献
0
技术
23
活跃
962
发表于 2016-8-12 17:29:22 |显示全部楼层
支持,写的不错

Rank: 2Rank: 2

UID
139284
帖子
223
PB币
37
贡献
0
技术
6
活跃
995
发表于 2016-8-12 17:41:01 |显示全部楼层
哎~~ 完整的做了一遍,CX20751/2依然是2合1接口的外置MIC无效。
系统重启后音量调节滑条自动变为最大。

Rank: 7Rank: 7Rank: 7

UID
4783896
帖子
1265
PB币
544
贡献
0
技术
0
活跃
760
发表于 2016-8-12 17:43:42 |显示全部楼层
本帖最后由 13469977015002 于 2016-8-12 17:47 编辑
fhybin 发表于 2016-8-12 17:41
哎~~ 完整的做了一遍,CX20751/2依然是2合1接口的外置MIC无效。
系统重启后音量调节滑条自动变为最大。

2和一接口为特殊情况
如果你的codec中有mic at ext外置麦克风就有解,否则无解。
解决方法为:
把位置麦克风和耳机扬声器那行的第三串数字的最后一个数字改为B

Rank: 7Rank: 7Rank: 7

UID
636753
帖子
998
PB币
156
贡献
0
技术
8
活跃
1566
发表于 2016-8-12 17:57:12 |显示全部楼层
13469977015002 发表于 2016-8-12 17:20
签名是未知,appleALC就没启到效果哦。

我重新尝试了一下,发现是appleALC没有完全发挥作用。我的驱动是仿冒过的,每次升级都要重新安装方面驱动。在使用appleALC后,升级后不用重新安装驱动了。制作仿冒的时候,bin patch中,发现资料中说的替换0x10ec0885为0x10ec0662对我的声卡来说不行。需要使用0x11d41984这个codecID来替换0x10ec0662,同时把0x10ec0885、0x10ec0884改为0x000000才可以正确识别。估计appleALC中的这部分没有针对ALC622进行修改,不知道能否自己添加上。
回顶部
Copyright (C) 2005-2020 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛 | 电脑硬件 | 安卓软件