Win10论坛

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

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

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

搜索
查看: 38154|回复: 596

[教程] 傻瓜式制作仿冒声卡驱动 解决麦克风无电平 睡眠后无声 耳机杂音 更新AppleALC制作教程     [复制链接]

Rank: 5Rank: 5Rank: 5

UID
4783896
帖子
1124
PB币
615
贡献
0
技术
0
活跃
545
发表于 2016-3-2 13:52:51 |显示全部楼层
本帖最后由 13469977015002 于 2016-5-27 22:09 编辑

ALC892请移步:
http://bbs.pcbeta.com/viewthread-1685213-1-1.html
顶置贴中的仿冒声卡驱动教程太长,看了好久才看懂,结合我的经验发现:用别人修改好的仿冒驱动加以修改只需要更改configdata和节点这2个信息即可让声卡正常工作。
第一步:提取声卡codec
首先需要下载Ubuntu系统的U盘启动包,可以去官网下载,
下面是从Ubuntu官网下载的迅雷种子下载镜像后解压到U盘即可启动进入试用界面

方法一:
进入Ubuntu系统的桌面打开终端:
輸入 cat /proc/asound/card0/codec#0 > ~/Desktop/Codec.txt,
或者 cat /proc/asound/card0/codec#1 > ~/Desktop/Codec.txt,
或者 cat /proc/asound/card0/codec#2 > ~/Desktop/Codec.txt,
然后你就可以在资源管理器的桌面上找到名为codec的文件,将他复制出来
方法二:
打开我的电脑(相当于windows的C盘),进入路劲proc/asound/card0,将文件夹里面的所有名为codec#开头的文件都复制出来,其中一个就是你的声卡codec,千万不要把HDMI音频的文件复制出来了(如果card0没有就一定在card1文件夹)


第二步:用idsdt得到你的声卡configdata和节点信息
需要idsdt软件:

随便找个dsdt不是自己的也可以,选择导入dsdt文件,再导入自己的codec,然后选择生产修改的APPLEHDA.
这里idsdt会编译dsdt如果提示不能编译的请自行百度下载java for mac然后安装
成功会显示编译出错,叫你修正错误。如下,不要管它点确定

点确定后会出现一个文件夹如下

将AppleHDAMOD复制到桌面,打开此路劲AppleHDAMOD.kext\Contents\PlugIns\AppleHDAHardwareConfigDriver.kext\Contents下的info.plist,如下图

按图中的路劲找到configdata,右边的数值就是你的configdata值
再打开AppleHDAMOD.kext\Contents\Resources找到文件Platforms.xml打开,如下图

打开如下路劲,可以看到我的PathMap下面有0和1,0下面只有一个节点0,而1下面有2个节点0和1,那么我的声卡总共只有3个节点,每个节点会有3个值。继续打开如下图

NodeID右边的值就是节点的值,那么我的0-0节点就是9>34>27,后面就不传图了,我的1-0节点是20>13>3,我的1-1节点是33>12>2,你的节点可能比我还多,每个都不能漏。


第三步:将自己的configdata和节点信息改到别人修改好的仿冒声卡驱动
本人亲测10.8的仿冒声卡驱动拿到10.11一样可以用所以不要当心版本的问题,下面给出仿冒声卡驱动大全的链接:
http://bbs.pcbeta.com/viewthread-1510552-1-1.html
http://bbs.pcbeta.com/viewthread-1141743-1-1.html
http://bbs.pcbeta.com/viewthread-1517597-1-1.html
找个和自己型号一样的仿冒声卡驱动,打开AppleHDA.kext\Contents\PlugIns\AppleHDAHardwareConfigDriver.kext\Contents下的info.plist将自己的configdata修改进去,注意configdata下面有个layoutid,将这个值记下来。


再打开AppleHDA.kext\Contents\Resources找到文件Platforms.xml.zlib复制到桌面,这个文件是压缩文件,先解压,步骤如下:
下载到桌面
打开终端输入:
cd desktop
perl zlib.pl inflate Platforms.xml.zlib > Platforms.xml
这样桌面就多了文件Platforms.xml打开它,如下图:

可以看到这个仿冒驱动有4个节点,比我的多了一个,那么我把0-1节点删除,如果你的少了就加上。
继续打开下面的子项,将之前记下的nodeID值填进去后保存。然后将它重新压缩,打开终端输入:
cd desktop
perl zlib.pl deflate Platforms.xml > Platforms.xml.zlib

将桌面的Platforms.xml.zlib复制到仿冒驱动里面替换之前的仿冒驱动里面的文件




第四步:修改APPLEHDEnable的layoutid值让仿冒声卡驱动工作(有dsdt的请无视)
下载文件
打开里面的info.plist,搜索layoutid右边有个8位的数值
之前修改仿冒声卡驱动的configdata值,记下了下面的layoutid值
这里我们假设layoutid值为269,转换成16进制为10D
10D不够8位数值,前面需要加5个0,变成0000010D。
将这个值2个数2个数的隔开变成: 00 00 01 0D
再倒过来变成0D 01 00 00
最后合起来变成0D010000,将这个值填到APPLEHDAEanble的layoutid里面就ok了

完成以上步骤你的仿冒声卡就可以工具了,如果使用后有问题继续往下看

2016年3月6日更新
五:MuteGPIO值的修改
先按照步骤二的路劲打开仿冒声卡驱动AppleHDA中的info.plist,查找其中layoutid的值,我的layoutid=1
按照路劲AppleHDA.kext\Contents\Resources找到文件layout1.xml.zlib(假设你的layoutid=86,那么就找到layout86.xml.zlib)
将其复制到桌面,打开终端解压,输入:
cd desktop
perl zlib.pl inflate layout1.xml.zlib > layout1.xml
然后打开layout1.xml,如下图:

记下pathmapID的值,我的是269

接下来打开IDSDT生产的仿冒驱动AppleHDAMOD,找到里面的info.plist,layoutid的值,我的layoutid=617
按照路劲AppleHDAMOD.kext\Contents\Resources找到文件layout617.xml(假设你的layoutid=86,那么就找到layout86.xml)
打开它,如下图:

将其中的layoutid,和pathmapID修改成和你的仿冒声卡驱动AppleHDA中的值一致,
我的layoutid=1,pathmapID=269
最后将linout这个子项删除(原因:我的不删除,仿冒声卡驱动没声音,请自行测试是否需要删除)
保存后将文件layout617.xml改名为layout1.xml(如果你的AppleHDA中的layoutid=86,那么改名为layout86.xml)
最后将其压缩,打开终端输入:
cd desktop
perl zlib.pl deflate layout1.xml > layout1.xml.zlib
将生产的layout1.xml.zlib文件替换到AppleHDA中的layout1.xml.zlib
2016年3月10日更新
六:CodecCommander驱动的修改方法

关于windows下重启进入mac耳机无声请在mac下加入此驱动,如果还是无法解决,请删除windows下的audio声卡驱动,只使用intel官方声卡驱动。修改CodecCommander驱动可以解决耳机有杂音和睡眠唤醒无法自动切换或无声的问题,具体方法如下:
打开驱动里面的info.plist,如下图:

这里以我的声卡举例子,我的是ALC269,红圈中是起作用的值,coedec如下:
Codec: Realtek ALC271X
Address: 0
Vendor Id: 0x10ec0269
Subsystem Id: 0x10250727

10ec_0269_HDA_1025_0727中的10ec_0269_指的是Vendor Id,_1025_0727指的是Subsystem Id
10ec_0269_HDA_1025_0727右边的值为Realtek ALC269VB,代表我们需要修改下面的Realtek ALC269VB的值
打开下面的Realtek ALC269VB如下图:

其中SET_UNSOLICITED_ENABLE为解决睡眠唤醒后无法自动切换或无声的值
需设定 HP Out at Ext 所在的节点信息。我的信息如下:
Node 0x21 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
  Control: name="Headphone Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Control: name="Headphone Jack", index=0, device=0
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x00 0x00]
  Pincap 0x0000001c: OUT HP Detect
  Pin Default 0x0321101f: [Jack] HP Out at Ext Left
    Conn = 1/8, Color = Black
    DefAssociation = 0x1, Sequence = 0xf
  Pin-ctls: 0xc0: OUT HP
  Unsolicited: tag=01, enabled=1


红圈的02170882 为Address+NodeID+708+设定值
0x21 SET_UNSOLICITED_ENABLE 0x82中的0x21为NodeID,0x82中的82为设定值
设定值是8bits的一个数。记作a7 a6 a5 a4 a3 a2 a1 a0.
a7=1,表示enabled。
a6=0,没具体应用,不用管。
a5-a0,存放tag,需要将tag的值用6为数的二进制值表示
tag=1(十进制)=000001(二进制)
a7 a6 a5 a4 a3 a2 a1 a0=10000001
a7 a6 a5 a4=1000(二进制)=8(十进制)
a3 a2 a1 a0=0001(二进制)=1(十进制)
则设定值=81
最后加得到的设定值加1,即82


SET_PIN_WIDGET_CONTROL设定是为了解决耳机杂音的。需要设定的是 Mic at Ext  所在的节点信息,我的节点信息如下:
Node 0x1b [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out
  Control: name="Mic Boost Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Control: name="Mic Phantom Jack", index=0, device=0
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80 0x80]
  Pincap 0x00000034: IN OUT Detect
  Pin Default 0x90a70920: [Fixed] Mic at Int N/A
    Conn = Analog, Color = Unknown
    DefAssociation = 0x2, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x20: IN


红圈中的01B70720为Address+NodeID+707+Pin-ctls值
0x1b SET_PIN_WIDGET_CONTROL 0x20中的0x1b为NodeID,0x20为Pin-ctls值


修改方法来源于此贴,有问题的地方请大家积极讨论:
http://bbs.pcbeta.com/viewthread-1663564-1-1.html


2016年3月18日更新解决麦克风无电平
打开Platforms在麦克风的最后一个节点下添加如图子项即可

我的文件作为参考:图片中3这个值可以更改成1,值越小麦克风电平越小。
如果你的麦克风节点有2个或4个node值请参考pathmaps下另外的子项,里面有boost=0或28的设置方法。

2016年3月21日更新 解决无法使用双麦克风
目前很多朋友发现 appleHDA外置mic没有办法使用。 或者只能用外置内置就不能用了。按照紫米的解释:


所以外置mic必须走line in。
不幸的是我的耳机插口是二合一的那种,貌似无解。听说将HP OUT设置成组合输入/输出能解决,但是找不到具体方法。

耳机插口非二合一,先将耳机麦克风设置成line in。以E1-471G为例子:
打开codec搜索Mic at Ext Left得到:
Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out
  Control: name="Mic Boost Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80 0x80]
  Pincap 0x00001734: IN OUT Detect
    Vref caps: HIZ 50 GRD 80
  Pin Default 0x03a19820: [Jack] Mic at Ext Left



说明Mic at Ext Left的node ID为0x18,打开configdata值,找到018开头的四组数据
01871C10 01871D90 01871EA0 01871F93
将第一组数据的倒数第二个值1改成2
将第三组数据的倒数第二个值A改成8
已经将内置麦克风和耳机麦克风的节点放在一起还不能自动切换的。
修改Platforms即可实现手动切换,给出文件作为参考:




新发现,耳机麦克风只有插上耳机才会有电平。

使用HDAEnable无用的请使用DSDT注入ID为了方便分割线以下的驱动,都将layoutID设置为1
ACER V5-471G ALC269 271X:
ACER E1-471G ALC269 271X:
华硕A450J  ACL269VC: (麦克风有待完善)

ThinkPAD S3 S440 CX20751/2:(双麦克风都有电平)
联想Y510 ALC888:(扬声器麦克风双自动切换,双麦克风都有电平,内置扬声器设置了组合输出)
戴尔游侠7447 ALC255 (ALC3234):
神舟K580S ALC269VC:


---------------------------------------------------------------------------------------------
ALC662(具体型号不名):(必须DSDT)
微星GE60 ALC892:(必须DSDT)
微星GS70 ALC892:(必须DSDT)

2016年4月24日更新制作appleALC的详细步骤



首先在这里感谢syscl的无私奉献
  1. http://bbs.pcbeta.com/viewthread-1683592-1-1.html
  2. 原贴地址
复制代码
大家需要去原贴查看声卡是否在支持的列表内,并下载XCODE
上传2个好用的软件,懂的朋友拿去


第一步:显示finder中的小房子图标,并下载appleALC
在终端执行命令,然后按照图片操作会在finder中的小房子生产appleALC文件夹
  1. git clone https://github.com/vit9696/AppleALC
复制代码





第二步:修改appleALC中的文件
打开appleALC/Resources中你的型号的文件夹,这里以ALC887为例子

可以看到ALC887里面有很多文件,为了方便删除Info.plist以外的所有文件
把之前可以用的仿冒声卡中的layoutX.xml.zlib(X为你设置的layoutID)和Platforms.xml.zlib复制进去
打开Info.plist如下图

codecID要对应AppleHDA.kext\Contents\PlugIns\AppleHDAHardwareConfigDriver.kext\Contents\info.plist里面填写的ID
ID对应layoutID
patch对应layoutX.xml.zlib(X为你设置的layoutID)

ID对应layoutID
patch必须填Platforms.xml.zlib



打开appleALC/Resources/PinConfigs/Contents/Info.plist

删除HDAConfigDefault子项,将AppleHDA.kext\Contents\PlugIns\AppleHDAHardwareConfigDriver.kext\Contents\info.plist里面的HDAConfigDefault子项复制进去


第三步生产appleALC驱动
打开AppleALC/AppleALC.xcodeproj(必须要有XCODE)

将生成的appleALC放入四叶草,通过DSDT注入layoutID就可以让其正常工作(必须DSDT)
另外appleHDA必须原版,且在功能扩展里面显示签名为官方签名。









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

查看全部评分

Rank: 2Rank: 2

UID
344430
帖子
335
PB币
733
贡献
0
技术
17
活跃
956
发表于 2016-3-2 15:37:34 |显示全部楼层
支持一个,回头看看笔记本的声卡,能否完善一些。

Rank: 5Rank: 5Rank: 5

UID
4011483
帖子
667
PB币
600
贡献
0
技术
4
活跃
296
发表于 2016-3-2 19:15:22 |显示全部楼层
既然只是将idsdt生成的节点信息替换到别人做的仿冒驱动里,那是不是直接复制;比如直接复制pathmap下的子项,然后把仿冒的pathmap替换掉,这样会不会更无脑方便点?

Rank: 1

UID
1569387
帖子
108
PB币
714
贡献
0
技术
4
活跃
61
发表于 2016-3-2 19:43:06 |显示全部楼层
留个记号备用

Rank: 1

UID
4755875
帖子
40
PB币
23
贡献
0
技术
0
活跃
21
发表于 2016-3-2 19:47:21 |显示全部楼层
刘明备用!!!!!!!!

Rank: 7Rank: 7Rank: 7

UID
350582
帖子
2016
PB币
227
贡献
0
技术
0
活跃
1055

8周年庆典勋章

发表于 2016-3-2 19:59:21 |显示全部楼层
感谢你的分享。

Rank: 5Rank: 5Rank: 5

UID
4783896
帖子
1124
PB币
615
贡献
0
技术
0
活跃
545
发表于 2016-3-2 21:28:21 |显示全部楼层
本帖最后由 13469977015002 于 2016-3-2 21:31 编辑
cmmd 发表于 2016-3-2 19:15
既然只是将idsdt生成的节点信息替换到别人做的仿冒驱动里,那是不是直接复制;比如直接复制pathmap下的子项 ...

idsdt自动计算的configdata值和节点是对的,但是生产的仿冒驱动没用。
直接复制pathmap下的子项理论上可以,没试过。configdata所在的info.plist文件千万不要直接替换,因为不同的仿冒驱动设定的layoutid值不同。

Rank: 2Rank: 2

UID
2874847
帖子
219
PB币
59
贡献
0
技术
5
活跃
495
发表于 2016-3-2 21:40:34 |显示全部楼层
要是没仿冒肯定试试了 可是用了别人仿冒好的可以用 就省下功夫了~还是得顶 好帖!!!

Rank: 5Rank: 5Rank: 5

UID
4011483
帖子
667
PB币
600
贡献
0
技术
4
活跃
296
发表于 2016-3-3 09:58:38 |显示全部楼层
请问我用iDSDt导入dsdt文件和自己的codec,然后生成了驱动,为什么在AppleHDAMOD.kext\Contents\Resources找不到文件Platforms.xml.zlib

是不是iDSDT版本有关系?
另外这个驱动可以驱动我的声卡

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

搞机砖家

UID
4743356
帖子
2016
PB币
1391
贡献
0
技术
0
活跃
814
发表于 2016-3-3 10:41:50 |显示全部楼层
好,不错

Rank: 5Rank: 5Rank: 5

UID
4783896
帖子
1124
PB币
615
贡献
0
技术
0
活跃
545
发表于 2016-3-3 17:56:23 |显示全部楼层
本帖最后由 13469977015002 于 2016-3-3 18:00 编辑
cmmd 发表于 2016-3-3 09:58
请问我用iDSDt导入dsdt文件和自己的codec,然后生成了驱动,为什么在AppleHDAMOD.kext\Contents\Resources找 ...

IDSDT生产的仿冒驱动里面的文件是没压缩的,所以文件名是Platforms.xml
直接就可以打开不用解压,我表示我生产的都有。如果你还是有问题,把你的codec传上来。

Rank: 5Rank: 5Rank: 5

UID
4011483
帖子
667
PB币
600
贡献
0
技术
4
活跃
296
发表于 2016-3-3 18:59:54 |显示全部楼层
     我用iDSDt生成的驱动,在AppleHDAMOD.kext\Contents\Resources确实找不到文件Platforms.xml,里面只有图中的3个文件,但安装完可以驱动我的声卡。

     我不知道是不是iDSDT版本原因,可否共享下你的iDSDT,谢谢。
     我也上传了我的codec,不知道你能否帮我生成下驱动,感谢。
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 11Rank: 11Rank: 11

UID
1541991
帖子
10772
PB币
26758
贡献
0
技术
280
活跃
7921

Win10先驱者

发表于 2016-3-3 19:09:14 |显示全部楼层
需要学习下。

Rank: 5Rank: 5Rank: 5

UID
4783896
帖子
1124
PB币
615
贡献
0
技术
0
活跃
545
发表于 2016-3-3 20:22:32 |显示全部楼层
cmmd 发表于 2016-3-3 18:59
我用iDSDt生成的驱动,在AppleHDAMOD.kext\Contents\Resources确实找不到文件Platforms.xml,里面只有 ...


给你我的IDSDT帖子里面的过程中给了,你仔细找下
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 5Rank: 5Rank: 5

UID
4011483
帖子
667
PB币
600
贡献
0
技术
4
活跃
296
发表于 2016-3-3 20:28:50 |显示全部楼层
本帖最后由 cmmd 于 2016-3-3 20:31 编辑
13469977015002 发表于 2016-3-3 20:22
给你我的IDSDT帖子里面的过程中给了,你仔细找下

谢谢,我去研究下。话说归档里的2个文件是用我的codec生成的吗?

Rank: 5Rank: 5Rank: 5

UID
4783896
帖子
1124
PB币
615
贡献
0
技术
0
活跃
545
发表于 2016-3-3 20:35:13 |显示全部楼层
不要怀疑 确实是你的codec生产成的

Rank: 5Rank: 5Rank: 5

UID
4011483
帖子
667
PB币
600
贡献
0
技术
4
活跃
296
发表于 2016-3-3 20:44:19 |显示全部楼层
13469977015002 发表于 2016-3-3 20:35
不要怀疑 确实是你的codec生产成的

谢谢了,回去好好研究下

Rank: 1

UID
4790462
帖子
38
PB币
0
贡献
0
技术
0
活跃
14
发表于 2016-3-3 22:02:03 |显示全部楼层
支持。。。。。。。。。。。。。。。。

Rank: 2Rank: 2

UID
4696459
帖子
79
PB币
22
贡献
0
技术
0
活跃
104
发表于 2016-3-3 22:20:58 |显示全部楼层
流明备用!!!!!!!!!!

Rank: 1

UID
4790462
帖子
38
PB币
0
贡献
0
技术
0
活跃
14
发表于 2016-3-3 22:40:21 |显示全部楼层
...............................
关闭

站长推荐

已经开启实名认证了哟
这里可以进行实名操作:点我点我点我
回顶部
Copyright (C) 2005-2018 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛 | 电脑硬件 | 安卓软件