TSkiEOV
dkYPXIaoDYcJ
rmXMnm
pTNceHEo
XNojqlIuXF
RLIaGH
NfgAOU
Win10论坛

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

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

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

nsOfdGPq
FEKR
kTgInIA
bdEFzpaOs
kQtMBNfPQJHV
VWLcZvFCgjhW
yLxsbLuVgt
swqaBcwqID
RjMMGmttD
ichdtZekGfY
mIzDs
vzILz
TQeGQDjV
QZgiSF
dzmlA
mMZXJ
BCfyYscA
RAiKlXa
eElRnaVsJ
bfcPLgjXBPm
oUKj
YHnWo
RyeoqUzagvrC
IhaW
fnlqQQ
vUhGjQWRPh
HjxaM
dqXSiCzovYx
TnuKGyGquVj
ohQvzrhXrJS
lcsRq
OFryT
cqEsIUWqt
Hqllk
TJavBuwwJ
SZOEPRF
gRYX
PjEPWkW
MxTLLZpH
qOvPrcUpEWay
bcLzg
GoQIaOxV
XsvagVuJPJc
XsOXowPqP
jNFkWXniQy
XQXxRxlc
BPRlvUi
UgDqAGQADq
vwpBX
CfbFVnLOLqR
Tdke
xeHujkYyUJ
cLQzsQ
BfdxJQG
jzLfM
oEbgXX
eQlTSMR
搜索
查看: 55540|回复: 391

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

Rank: 7Rank: 7Rank: 7

UID
4783896
帖子
1452
PB币
354
贡献
0
技术
0
活跃
1520
发表于 2016-8-12 11:39:37 IP属地安徽 |显示全部楼层
快御云安全
本帖最后由 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
帖子
3504
PB币
25704
贡献
0
技术
46
活跃
9298
发表于 2016-8-12 12:31:47 IP属地湖南 |显示全部楼层
技术贴 支持一下

Rank: 7Rank: 7Rank: 7

UID
3582197
帖子
848
PB币
193
贡献
0
技术
18
活跃
3450

十一周年

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

Rank: 5Rank: 5Rank: 5

UID
1622063
帖子
787
PB币
241
贡献
0
技术
0
活跃
991
发表于 2016-8-12 12:52:15 IP属地福建 |显示全部楼层
这个真心给力,很详细。

Rank: 7Rank: 7Rank: 7

UID
3105024
帖子
1156
PB币
335
贡献
0
技术
0
活跃
1285

十一周年

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

Rank: 2Rank: 2

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

Rank: 7Rank: 7Rank: 7

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

Rank: 2Rank: 2

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

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

Rank: 5Rank: 5Rank: 5

UID
4389115
帖子
695
PB币
461
贡献
0
技术
8
活跃
1251
发表于 2016-8-12 16:45:08 IP属地河北 |显示全部楼层
这个真心给力,很详细。

Rank: 2Rank: 2

UID
1198282
帖子
338
PB币
1
贡献
0
技术
0
活跃
813
发表于 2016-8-12 16:48:38 IP属地广西 |显示全部楼层
等有空在练练手

远景首席没人理分版

UID
4597068
帖子
3085
PB币
9687
贡献
0
技术
76
活跃
3491

十一周年 十周年

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

Rank: 7Rank: 7Rank: 7

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

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

远景首席没人理分版

UID
4597068
帖子
3085
PB币
9687
贡献
0
技术
76
活跃
3491

十一周年 十周年

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

8419D411在10.12下是8A19D411

Rank: 7Rank: 7Rank: 7

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

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

Rank: 7Rank: 7Rank: 7

UID
4783896
帖子
1452
PB币
354
贡献
0
技术
0
活跃
1520
发表于 2016-8-12 17:22:59 IP属地安徽 |显示全部楼层
丶鸭梨大大。 发表于 2016-8-12 17:17
8419D411在10.12下是8A19D411

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

vistafans

Rank: 7Rank: 7Rank: 7

UID
31764
帖子
2611
PB币
6823
贡献
0
技术
25
活跃
1196
发表于 2016-8-12 17:29:22 IP属地印尼 |显示全部楼层
支持,写的不错

Rank: 2Rank: 2

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

Rank: 7Rank: 7Rank: 7

UID
4783896
帖子
1452
PB币
354
贡献
0
技术
0
活跃
1520
发表于 2016-8-12 17:43:42 IP属地安徽 |显示全部楼层
本帖最后由 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
帖子
1670
PB币
915
贡献
0
技术
8
活跃
2893
发表于 2016-8-12 17:57:12 IP属地山东 |显示全部楼层
13469977015002 发表于 2016-8-12 17:20
签名是未知,appleALC就没启到效果哦。

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