查看: 8487|回复: 50

[教程] 【声卡驱动完善进阶】——关于耳机杂音解决办法及三节点信息驱动双麦克风的猜想

[复制链接]
关云长羽 发表于 2017-3-8 20:15 | 显示全部楼层 |阅读模式
快御云安全
本帖最后由 关云长羽 于 2017-5-28 23:00 编辑

耳机杂音的解决办法:
耳机杂音对于不少人来说应该是个比较头疼的问题,尤其以codec中只含有三个节点信息的声卡表现的尤为明显。
      对于大多数声卡来说,可以通过CC(CodecCommander,下面均采用简称)驱动解决,对于不能解决的,修改其中的关于Mic at Ext Left节点信息也可以解决(参考链接https://bbs.pcbeta.com/viewthread-1663564-1-1.html[/url])。
     是不是发现了什么?对!对于3个节点信息的声卡来说没有Mic at Ext Left节点,我们又该怎么办呐?对此,我曾进行过一系列的方法尝试:
    a.打开音频MIDI设置,将输出的两个声道错开(此方法虽能解决,但是音效却变差了)
    b.睡眠唤醒(显然比较麻烦)
    c.在尝试驱动双麦克风的过程中,曾驱动成功过耳机麦克风,此时无杂音(声卡codec采用的是同主板同声卡型号的,但是详细信息不用,发现他的存在Mic at Ext Left节点信息,但是内置麦克风节点不完整。只能使用外置麦克风)
在多次测试方法中,发现方式C可能最接近理想状态,遂进一步研究。后来,在@gujiangjiang的提醒下,使用ALCPlugFix解决问题。
打开终端,键入:
git clone https://github.com/goodwin/ALCPlugFix
回车   打开finder,找到小房子,找到ALCPlugFix文件夹,打开子文件夹ALCPlugFix找到main.m




找到关于耳机插拔侦测部分,然后进行修改编译

关于该程序的具体教程我也没有找到合适的(无奈摊手),不过可以参考https://blog.neroxps.cn/blog/macOS/Combo-Audio-Ext-Mic.html。
修改完成后编译。将编译成功的ALCPlugFix放入ALCPlugFix的子文件夹alc_fix。
打开终端,键入cd (前面有个空格)拖拽子文件夹alc_fix到终端
sudo chmod +x install.sh
sudo ./install.sh
完成安装,需要注意的是,使用此方法,需确认hda-verb对你的机器是有用的。


关于三节点信息驱动双麦克风的猜想:
      (此方法已经有不少成功的例子,猜想或许有一点用,有相同情况的景友不妨测试一下,希望成功的能回复并分享一下自己的成功经验)

    对于不少二合一耳机接口的笔记本的朋友都有一些困扰,那就是codec里面只有3个节点信息,不含有Mic at Ext Left节点信息,想驱动外置麦克风,却找不到头绪。
        最开始图方便,使用了同主板的codec仿冒声卡,发现外置麦克风可用(内置不可用);后自己提取,仿冒发现不含Mic at Ext Left节点信息,只能驱动内置麦克风。外置麦克风能使用的经历让我觉得外置麦克风应该是可以驱动的,只是暂时还没有找到解决办法,后经过大量的试验,可以单独驱动内置麦克风,也可以单独驱动外置麦克风,却无一次成功的驱动双麦克风,只得放弃,采用了驱动了内置麦克风的inject的方案。
       直到最近,@[url=https://i.pcbeta.com/space-uid-2043294.html]gujiangjiang告诉我他的双麦克风解决了,采用的是原版的appleALC+上面提到的解决杂音的方案。遂换原版appleALC,挨个ID测试,测试13最为合适,由于之前就采用了声卡守护进程脚本(并没有采用ALCPlugFix),插耳机发现,外置麦克风出现,切换,使用都正常。至此,双麦克风完美切换使用。研究appleALC里面关于我声卡ALC233的platforms发现,外置麦克风采用的居然是Pin Default 0x411111f0: [N/A] Speaker at Ext Rear该项目的信息(话说,N/A项目不是不起作用吗?)

      后又将有关的声卡信息拷贝到我的inject中去,却发现只能驱动内置麦克风,外置麦克风无效,猜想可能是appleALC的新属性(原谅我一个非计算机专业的渣渣还不能研究明白为什么appleALC可以,inject的方式却不行)
    建议三节点信息二合一耳机插孔笔记本的朋友可以试试采用新版appleALC+声卡守护程序脚本(或者ALCPlugFix)+CC驱动的方式测试一下,或许会有意想不到的结果,如若不行,可以参考appleALC修改教程,提取自己的声卡codec,然后将Pin Default 0x411111f0: [N/A] Speaker at Ext Rear作为一个有效节点去测试一下(修改为线路输入),或许有惊喜。
PS:本文还有很多不成熟或错误的地方,希望景友们能多提一些建议,帮忙完善一下
附件:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

2

查看全部评分

idaima 发表于 2017-3-9 13:56 | 显示全部楼层
声卡守护脚本可以分享下吗?我的声卡是alc668,想试试~谢谢!

点评

前排提示,帖子基本没法看了,审核完文字丢了一大堆,图片还跑偏了。。。修改添加上,审核一遍,又没了。。。。  发表于 2017-3-9 20:10
回复

使用道具 举报

liugz04 发表于 2017-3-9 14:07 | 显示全部楼层
学习了,声卡还是有问题
回复

使用道具 举报

neroxps 发表于 2017-3-9 14:54 | 显示全部楼层
您好,你的发现真是非常棒。

想咨询下 Speaker at Ext Rear 这个节点是如何寻找的呢 我的 codec 有好几个这样的节点

我也是 ALC233,但我的是 ALC3236 应该和你不一样

AppleALC 上的 PinConfigdata ID4和我最符合,我发现AppleALC 也有一个 noid 0x19 我这里是一个无效节点的 PinConfigData。
  1. Node 0x19 [Pin Complex] wcaps 0x40048b: Stereo Amp-In
  2.   Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  3.   Amp-In vals:  [0x00 0x00]
  4.   Pincap 0x00003724: IN Detect
  5.     Vref caps: HIZ 50 GRD 80 100
  6.   Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
  7.     Conn = 1/8, Color = Black
  8.     DefAssociation = 0xf, Sequence = 0x0
  9.     Misc = NO_PRESENCE
  10.   Pin-ctls: 0x20: IN VREF_HIZ
  11.   Unsolicited: tag=00, enabled=0
  12.   Power states:  D0 D1 D2 D3 EPSS
  13.   Power: setting=D3, actual=D3
复制代码
如果耳机有杂音 需要用命令设置这个19节点的  Pin-ctls才行

是否需要加入这个节点呢?

点评

是的,加上这个节点的pin-ctls,我当时的CC驱动里面是pin-ctls是24因为起作用,***直接按照24来了。。  发表于 2017-3-9 20:07
回复

使用道具 举报

关云长羽  楼主| 发表于 2017-3-9 15:14 | 显示全部楼层
一桶天下008 发表于 2017-3-9 13:56
声卡守护脚本可以分享下吗?我的声卡是alc668,想试试~谢谢!

忘了放了,不过链接中有。。。。
回复

使用道具 举报

天地XIN 发表于 2017-3-9 15:19 | 显示全部楼层
技术贴学习了。
回复

使用道具 举报

关云长羽  楼主| 发表于 2017-3-9 20:05 | 显示全部楼层
neroxps 发表于 2017-3-9 14:54
您好,你的发现真是非常棒。

想咨询下 Speaker at Ext Rear 这个节点是如何寻找的呢 我的 codec 有好几个 ...

别说了。。。。我这帖子丢了一大堆字。。图片不仅丢还跑偏   不能看了。。。。
回复

使用道具 举报

百赖小生 发表于 2017-3-9 20:19 | 显示全部楼层
感谢楼主分享。
回复

使用道具 举报

peterneo 发表于 2017-3-10 11:28 | 显示全部楼层
楼主能不能给个你第二段文字描述的具体解决耳机杂音的链接文章?
回复

使用道具 举报

neroxps 发表于 2017-3-10 11:45 | 显示全部楼层
peterneo 发表于 2017-3-10 11:28
楼主能不能给个你第二段文字描述的具体解决耳机杂音的链接文章?

https://bbs.pcbeta.com/forum.php? ... 28&pid=46948961
回复

使用道具 举报

别拿我当逗比使 发表于 2017-3-12 13:10 | 显示全部楼层
本帖最后由 别拿我当逗比使 于 2017-4-28 14:55 编辑

楼主留个q有事想请教
回复

使用道具 举报

qq787152848 发表于 2017-3-12 22:02 | 显示全部楼层
我的声卡是二合一的接口有Mic at Ext Left节点,但是麦克风就是用不了,有显示设备,是什么问题LZ知道吗?
回复

使用道具 举报

关云长羽  楼主| 发表于 2017-3-12 22:33 | 显示全部楼层
qq787152848 发表于 2017-3-12 22:02
我的声卡是二合一的接口有Mic at Ext Left节点,但是麦克风就是用不了,有显示设备,是什么问题LZ知道吗?

仿冒没弄好呗,论坛有不少声卡仿冒的教程,你可以去看看
回复

使用道具 举报

qq787152848 发表于 2017-3-12 22:40 | 显示全部楼层
我弄了3个月了声卡还是麦克风输入用不了,可以帮帮忙吗
回复

使用道具 举报

qq787152848 发表于 2017-3-12 22:41 | 显示全部楼层
关云长羽 发表于 2017-3-12 22:33
仿冒没弄好呗,论坛有不少声卡仿冒的教程,你可以去看看

我弄了3个月了声卡还是麦克风输入用不了,可以帮帮忙吗
回复

使用道具 举报

neroxps 发表于 2017-3-12 22:53 | 显示全部楼层
楼主的猜想是正确的,将 Noid 19当做 LineIn 接口来做为一组有效 ConfigData 再配合正确的 Pathmap 可以使耳机麦克风输入正常。

但是我遇到一个问题,开机运行 hda-verb 0x19 SET_PIN_WIDGET_CONTROL 0x24

第一次插入耳机正常,声音和耳机麦克风都正常,但是拔出后

我耳机的Pin Widget Control Noid 0x19切换成04,再插入就不会切换回 24 故此必须要运行命令 hda-verb 0x19 SET_PIN_WIDGET_CONTROL 0x24才恢复正常。

不知道楼主有没有这样的问题。
回复

使用道具 举报

关云长羽  楼主| 发表于 2017-3-12 22:58 | 显示全部楼层
qq787152848 发表于 2017-3-12 22:41
我弄了3个月了声卡还是麦克风输入用不了,可以帮帮忙吗

你是内置麦克风无法输入,还是耳机麦克风?
回复

使用道具 举报

qq787152848 发表于 2017-3-12 22:59 | 显示全部楼层
关云长羽 发表于 2017-3-12 22:58
你是内置麦克风无法输入,还是耳机麦克风?

两个都不行现在
回复

使用道具 举报

我不要用户名 发表于 2017-3-13 00:59 来自手机 | 显示全部楼层
可以。不错。折腾有理
回复

使用道具 举报

hehezhouxiang 发表于 2017-4-16 18:46 | 显示全部楼层
学习了,感谢楼主!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋手机版联系我们

Copyright © 2005-2025 PCBeta. All rights reserved.

Powered by Discuz!  CDN加速及安全服务由「快御」提供

请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。

远景在线 ( 苏ICP备17027154号 )|远景论坛 |Win11论坛 |Win10论坛 |Win8论坛 |Win7论坛 |WP论坛 |Office论坛

GMT+8, 2025-2-8 17:55

快速回复 返回顶部 返回列表