Win10论坛

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

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

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

查看: 145579|回复: 719

[交流] 关于Voodoohda的常见疑问综合列表     [复制链接]

永远,永远,我爱你

UID
2044482
帖子
5406
PB币
1282
贡献
3
技术
379
活跃
15
发表于 2012-1-3 18:11:19 |显示全部楼层
本帖最后由 s1025xfei 于 2014-2-3 19:00 编辑

仅限远景,不得转发。
再次强调,仅限远景交流 不得转发另,强烈感谢兔子支持,特别是对于专业术语方面的准确定义和解答
没有兔子也没有这篇文章。
新年快乐咯 大家
原文引自
http://www.insanelymac.com/forum/index.php?showtopic=267905
关于voodoohda的官方下载(来自Google Code)
http://code.google.com/p/voodoohda/downloads/list
都为最新列表更新
作者引文
VoodooHDA is an open source audio driver for devices compliant with the Intel High Definition Audio (HDA) specification, based primarily on code from the FreeBSD hdac driver. It is intended as an Intel-only replacement for AppleHDA on Mac OS X with support for a wide range of audio controllers and codecs.All major VoodooHDA development for the past year has been going on from a Project OS X thread, so check that out for the latest source code, kexts, and updates.-nawcom





关于VoodooHDA的官方理论支持报告(非常详尽请各位可以详细参阅)
http://www.projectos...p?showtopic=355
关于Voodoohda的常见疑问综合列表
Q&A


问题:内核崩溃
-解决方案 1:在安装VoodooHDA驱动前 先移除S/L/E(system/library/extensions/ 下同) AppleHDA.kext 并重新启动电脑
-解决方案 2:   设置Info.plist 将 IOPCIClassMatch 的键值替换为IOPCIPrimaryMatch 键值 并且把你的声卡硬件ID放于 <string></string>字符串下
Before
<key>IOPCIClassMatch</key>

<string>0x04030000&0xffff0000</string>

After
<key>IOPCIPrimaryMatch</key>

<string>0x3b568086</string>

0xDeviceIDVendorID
如何知道你的硬件id呢?
请安装systeminfo 或者进入win 打开设备管理器 id一栏
置顶帖中多文章都有提到硬件id获取 如有疑问跟帖提问



问题:驱动未能工作(经常当系统中出现不止一块声卡或者显卡带HDMI模块时会发生该状况)
-解决方案:使用上文的内核崩溃的解决方案2,如果你想同时驱动声卡(包括HDMI)请为其在IOKitPersonalities中添加相应的条目




问题:爆音(杂音等,一般在声音稍大时出现削峰噪声-Nez注)
-解决方案1: 在  Applications - Utilities - Audio MIDI Setup 修改输出格式 图如下
Screen Shot 2012-01-03 at 6.26.33 PM.png

-解决方案2:  检查 VoodooHDA prefpane下是否已经启用 SSE2
你也能在 Info.plist 启用 Vectorize

<key>Vectorize</key>

<true/>



问题: 音量(滑块)无法调节音量
-解决方案:  在info.plist中启用 VoodooHDAEnableVolumeChangeFix

<key>VoodooHDAEnableVolumeChangeFix</key>

<true/>




问题:声音太低啦!= =!
-解决方案: 在info.plist中启用VoodooHDAEnableHalfVolumeFix

<key>VoodooHDAEnableHalfVolumeFix</key>

<true/>




问题: 音频反馈 (Larsen 效果),声音在输入(Mic)和输出(Speaker扬声器) 循环
-解决方案: 如果mic不工作 ,则禁音iGain 并 增加Imax或者Mic音量

<key>iGain</key>

<string>0</string>

他同样能在PrefPane中设置。在某些情况下你需要禁音Moniter而不是iGain

关于音频反馈的资料
Audio feedback (also known as the Larsen effect after the Danish scientist, Søren Absalon Larsen, who first discovered its principles) is a special kind of positive feedback which occurs when a sound loop exists between an audio input (for example, a microphone or guitar pickup) and an audio output (for example, a loudspeaker). In this example, a signal received by the microphone is amplified and passed out of the loudspeaker. The sound from the loudspeaker can then be received by the microphone again, amplified further, and then passed out through the loudspeaker again. This is a good example of positive feedback. The frequency of the resulting sound is determined by resonance frequencies in the microphone, amplifier, and loudspeaker, the acoustics of the room, the directional pick-up and emission patterns of the microphone and loudspeaker, and the distance between them.

是一种特殊的正反馈发生时,一个健全的循环之间存在一个音频输入(例如,一个麦克风或吉他皮卡)和音频输出(例如,一个扬声器)。在这个例子中,由麦克风接收信号放大,通过扬声器。从扬声器的声音,然後再由麦克风接收,进一步放大,然後再次通过扬声器。这是一个很好的例子正反馈 频率所产生的声音是由共振频率,麦克风,放大器和扬声器,房间的声学特性,定向回升和排放的麦克风和扬声器模式,以及它们之间的距离。




问题:声音延迟。(比如如果你调节音量大小,你将会在1-2秒后才听到biu~biu~的音量修改提示音)
-解决方案1:在  /Library/Preferences/Audio 下删除 com.apple.audio.DeviceSettings.plistcom.apple.audio.SystemSettings.plist 然后重新启动
-解决方案2: 使用 SoundFlower软件 (自行搜索)




问题:  输入或者输出并未出现在音频的偏好设置中即系统偏好设置-声音中没有任何东西【 preferences-Sound】)
-解决方案1: 给你的kext打个补丁= =
For VT1708S
傳送門
For AD1988B
傳送門

-解决方案2: 添加基于getDump规范的输出(参见官方规范[见文首的官方规范])到NodesToPatch (即添加节点)
<key>NodesToPatch</key>
<array>
        <dict>
                <key>Codec</key>
                <integer>2</integer>
                <key>Config</key>
                <string>0x90a70120</string>
                <key>Node</key>
                <integer>12</integer>
        </dict>
</array>

设置(接口定义)是基于每串数列的最后两个数字Verbs,不过要反相排列哦    (记得和AppleHDA不同喔~Nez注)
下面简要解释下

0x01014410 = 21471c10 21471d44 21471e01 21471f01
    | | | | | | | +- Sequence(组别位置)

    | | | | | | + -- Default Association(默认组别)

    | | | | | +--- Misc(识别切换)

    | | | | +---- Color(颜色)

    | | | +----- Connection Type(连接类型)

    | | +------ Default Device(控制输入及输出)

    | +------- Location(位置)

    +-------- Port Connectivity(插口类型(内置或外接))

每个 输入/输出节点序列都有4组Verbs数据哦
例如
   Jack   Color  Description                        Node         PinDefault                                            Original Verbs
----------------------------------------------------------------------------------------------
        1/8   Green  Line Out at Ext Rear      20 0x14   0x01014410   21471c10 21471d44 21471e01 21471f01

其中节点数据(NodeID[NID])中 0x14为16进制表示方式,20为十进制表示方式

默认序列为 21471c10 21471d44 21471e01 21471f01

CAd (Codec Adress) NID (NodeID) Verb Command Verb Data

下面我们分步讲解




71cXY X=Default Association(默认组别) Y=Sequence(组别位置)

其中定义如下

Default Association(默认组别) 和Sequence(组别位置) 内的针脚的定义(插孔)将会一起被软件调用并加载到功能模块,以支持多通道操作。软件可以假定所有具有相同组别代码的插孔被拟定归类为一组,举例来说,比如提供六声道的模拟输出。(默认组别)也可被用于在受限情况下根据优先次序重新被软件分配节点资源。低的(默认组别)的值将在资源分配中获得更高的优先级,比如处理中的节点或者输入输出的转换器的分配。
请注意,这只是默认的组别值,而且软件也会根据运行需要覆盖所设定的值。特别是用户所提供一些附加信息关于特定的系统设定参数(有可能会被覆盖或者无法生效)。
这里需要注意的是
值0000b(末尾的b表示该字符串为二进制数nez注)是被系统保留的,请不要使用它。软件将会判定为参数所指向的硬件未正确安装。
值1111b是一个特殊值表明该组别优先级为最低。多个不同的阵脚都可共同使用此值。目的是在于作为独立设备公开。


Sequence (序列位置) 的表示 以便关联插孔组。比如在音频流中被关联的最低级别的插孔应当予以分配最低级别的通道(channel)等等。这些数据并不需要在组内按照顺序排列,只需要匹配相关事项即可
值得注意的是。在默认组别中的组别序号必须唯一

*我注意到,如果你查看 Vanilla的 Codec Verb (无论是哪种Codec)你都会看到 (序列位置)总是为0
操蛋,为啥啊? 为啥和咱的codec Verbs不一样啊?
因为。简单的b/c苹果没有多声道模拟输出啊! 所以乖乖的改成0吧= =。

*关于Default Association (默认组别) 保持默认的吧,按照次序,对那些还没存在在dump中家伙的替换设定成新的值吧。(没出现在列表中的自己添加= =!) 你能可以使用 1,2,3,4,5,6,7,8,9,a,b,c,d, 还有 f (如果你还是不懂的,看看Verbit的东东是咋搞的)



71dXY X=Color(颜色) Y=Misc(识别切换)

Misc (识别切换) 是一个位域,用于表示插孔的其他信息。目前 只有0号数字是被定义的。 如果0被设定了,他将表示这个插孔没有自我检测功能(即是否被插入)。不过即使软件中引脚表明该Codec硬件支持插孔检测功能,其实外部电路不支持也没有用啦= =!
  1. Reserved 3 (保留3)Reserved 2   (保留2)Reserved 1    (保留1)Jack Detect Override 0 (系统定义)
复制代码
*使用0 用于未禁用设备检测-外部设备(如外置mic和扬声器耳机等)
使用1用于已禁用用设备检测-内建设备 (如内置扬声器,麦克风等)

Color (接口颜色) 表示你插孔的颜色~把它添加到软件去吧~
这个看不懂的话。。无力吐槽了 =w=!
  1. Unknown 0
  2. Black 1
  3. Grey 2
  4. Blue 3
  5. Green 4
  6. Red 5
  7. Orange 6
  8. Yellow 7
  9. Purple 8
  10. Pink 9
  11. Reserved A-D
  12. White E
  13. Other F
复制代码




71eXY X=Default Device(连接类型) Y=Connection Type(控制输入及输出)


Default Device(控制输入及输出 表明插口的预定用途。他能表明插口标签或者所连接到该插口的硬件设备,比如继承扬声器或者类似的东东 = =~
  1. Line Out 0
  2. Speaker  1
  3. HP Out 2
  4. CD 3
  5. SPDIF Out 4
  6. Digital Other Out 5
  7. Modem Line Side 6
  8. Modem Handset Side 7
  9. Line In 8
  10. AUX 9
  11. Mic In A
  12. Telephony B
  13. SPDIF In C
  14. Digital Other In D
  15. Reserved E
  16. Other F
复制代码
Connection Type(连接类型表示物理连接的插头类型。比如8英寸的立体声插孔,或者光纤数字接口等,软件能基于该声卡硬件物理传输外部传输能力然后使用这些信息数据生成用户可见的界面报告或者修改编码器功能的报告内容
  1. Unknown 0
  2. 1/8" stereo/mono 1
  3. 1/4" stereo/mono 2
  4. ATAPI internal 3
  5. RCA 4
  6. Optical 5
  7. Other Digital 6
  8. Other Analog 7
  9. Multichannel Analog (DIN) 8
  10. XLR/Professional 9
  11. RJ-11 (Modem) A
  12. Combination B
  13. Other F
复制代码




71fXY X=Port Connectivity (插口类型(内置或外接)) Y=Location(位置)

Port Connectivity (插口类型)用于表示该针脚外部的连接类型状态。软件能用这个值来了解是什么类型的介质将连接至该插口。是内建设备 或者啥都不是
00b 该针脚了一个插孔 (1/8,ATAPI等)
01b 没有物理连接口在该孔上
10b 一个内建功能设备(内建扬声器麦克风等)连接
11b 既可以内建也可外置,这个信息用于表明所有的使用情况的设备。PD Pin将会将其反映成一个插孔,用户必须搞清楚或者弄清楚他到底是啥(内建还是非内建)


Location(位置) 用于表示物理引脚或上面的插孔的物理位置。它允许被软件所表示,比如,这个设备是<前面板耳机插孔> 而不是后面的耳机插孔

*详细信息。
记得转换两个16进制数为2进制
不满8位前面补0


例如
0x02 = binary 10 = 00000010 8 digit binary

Reading the bits from left to right:

Port Connectivity bits 7:6
-----------------------------------------------------------
00 - Port is connected to a Jack
01 - No External Port -or- No physical connection for Port  
10 - Fixed Function/Built In Device (integrated speaker, mic, etc)
11 - Jack and Internal device are attached

Location Part 1 - bits 5:4
-----------------------------------------------------------
00 - External on primary chassis
01 - Internal
10 - Separate chassis
11 - Other

Location Part 2 - bits 3:0
-----------------------------------------------------------
The meaning depends on Location Part 1

00 0000        N/A
00 0001   Rear
00 0010   Front
00 0011   Left
00 0100   Right
00 0101   Top
00 0110   Bottom
00 0111   Special (Rear panel)
00 1000   Special (Drive bay)

01 0000   N/A
01 0111   Special (Riser)
01 1000   HDMI
01 1001   ATAPI

10 0000        N/A
10 0001   Rear
10 0010   Front
10 0011   Left
10 0100   Right
10 0101   Top
10 0110   Bottom

11 0000   N/A
11 0110   ?
11 0111   Inside Mobile Lid (example: mic)
11 1000   Outside Mobile Lid

                        Bits
Hex         76 54 3210
-------------------
71f01 = 00 00 0001 - Port has a jack - It is External - Rear Location
71f02 = 00 00 0010 - Port has a jack - It is External - Front Panel Location
71f59 = 01 01 1001 - No External Port - ATAPI
71f18 = 00 01 1000 - Port has a jack - External - HDMI
71f90 = 10 01 0000 - Built In Device - Internal - N/A
                |  |  ||||
                |  |  |--------- Location part 2
                |  |------------ Location part 1  
                |--------------- Port Connectivity







19

查看全部评分

你就囧死我吧

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

UID
1091115
帖子
18250
PB币
1133
贡献
0
技术
51
活跃
227

7周年庆典勋章

发表于 2012-1-3 21:33:36 |显示全部楼层
小白学习来了,楼主辛苦了

Rank: 5Rank: 5Rank: 5

UID
1922619
帖子
393
PB币
10595
贡献
0
技术
0
活跃
530

7周年庆典勋章 8周年庆典勋章

发表于 2012-1-3 21:36:34 |显示全部楼层
楼主辛苦了!!!!!!

UID
1401859
帖子
20752
PB币
72743
贡献
3
技术
2010
活跃
253

8周年庆典勋章

发表于 2012-1-3 21:36:54 |显示全部楼层
辛苦你了阿

UID
1078191
帖子
33105
PB币
127850
贡献
3
技术
7
活跃
584

交易达人 水神勋章

发表于 2012-1-3 21:40:08 |显示全部楼层
翻译组组长你呢

UID
698111
帖子
20343
PB币
92580
贡献
0
技术
0
活跃
379

7周年庆典勋章

发表于 2012-1-3 21:40:22 |显示全部楼层
真的辛苦了呢   写这些还有翻译很累呢  

UID
1396546
帖子
4242
PB币
7838
贡献
0
技术
626
活跃
446
发表于 2012-1-3 22:28:09 |显示全部楼层
      虽然捣鼓过AppleHDA,但不得不承认,有VoodooHDA的存在,才使得很多黑苹果可以发声。毕竟AppleHDA只是为苹果的硬件开发的。如果针对自己的声卡codec修改VoodooHDA,效果确实也不逊色于AppleHDA,甚至mic啊,HDMI啊,都比较容易驱动。但很多人只是直接用通用的,没有自己修改,或者直接拿别人的,这样还是得费点神。还有就是每次更新的时候,很多人忘了,AppleHDA一旦更新,就会导致和VoodooHDA冲突,这有点小麻烦,但注意的话也就没什么了。

Rank: 5Rank: 5Rank: 5

UID
1701553
帖子
550
PB币
108
贡献
0
技术
4
活跃
268
发表于 2012-1-3 22:40:28 |显示全部楼层
多谢,学习啦

Rank: 7Rank: 7Rank: 7

UID
2074954
帖子
1068
PB币
3667
贡献
0
技术
12
活跃
343

7周年庆典勋章 8周年庆典勋章

发表于 2012-1-3 23:18:43 |显示全部楼层
写得太好了!!建议置顶!!

点评

leonhong  真对不起大家,咱刚刚又抽风少写一句了:永久地。  发表于 2012-1-3 23:22

高级潜水员

Rank: 2Rank: 2

UID
434106
帖子
384
PB币
422
贡献
0
技术
13
活跃
193
发表于 2012-1-3 23:53:32 |显示全部楼层
我用voodoohda坛子里修改的 for conexant 20588 的
但是一旦机子开始发声,比如itunes开始放歌了,机子都要卡顿一下,itunes播完一首后,跳到下一首,这时候机子又会卡一下,卡的时候光标什么的都无法移动,过程大概持续1~2s,每次都是。。。
conexant 的又无法修改原版的 appllehda驱动。。。很麻烦。。。

Rank: 5Rank: 5Rank: 5

UID
1552532
帖子
628
PB币
956
贡献
0
技术
3
活跃
177
发表于 2012-1-4 06:22:22 |显示全部楼层
学习了,支持一下

学生

Rank: 11Rank: 11Rank: 11

UID
193005
帖子
1014
PB币
1188
贡献
0
技术
1
活跃
245

7周年庆典勋章

发表于 2012-1-4 07:19:21 |显示全部楼层
{:5_293:}{:5_293:}{:5_293:}
楼主辛苦了!支持!
{:5_293:}

永远,永远,我爱你

UID
2044482
帖子
5406
PB币
1282
贡献
3
技术
379
活跃
15
发表于 2012-1-4 07:33:30 |显示全部楼层
回复 weizhi 126。。你确认他们两个的 DeviceIDVendorID一样????= =。。。
声卡稍有不同 cxxxxxx代号应该仅代表解码器类型
具体的节点映射,组别驱动 也就是硬件层的 pin 阵脚定义是由各个厂商自行设定的
如果id一样的话 仅表示芯片相同
可以尝试下不同的pin 对应的nodid 或者 默认组别应该可以调出来的。。。不过。。有点麻烦。毕竟五国得重启。。
1

查看全部评分

永远,永远,我爱你

UID
2044482
帖子
5406
PB币
1282
贡献
3
技术
379
活跃
15
发表于 2012-1-4 07:35:25 |显示全部楼层
VIVXIX 发表于 2012-1-3 22:28
虽然捣鼓过AppleHDA,但不得不承认,有VoodooHDA的存在,才使得很多黑苹果可以发声。毕竟AppleHDA只是 ...

我倒是觉得。。能用上appleHDA是个奢侈啊。。T_T
appleHDA个人感觉对黑苹果兼容方面越来越抠,怀疑苹果从中作梗= =!
voodoohda倒是个神器。。是绝大多数声卡的后备解决方案。。特别是mic啊 - -! 我去。。

永远,永远,我爱你

UID
2044482
帖子
5406
PB币
1282
贡献
3
技术
379
活跃
15
发表于 2012-1-4 07:37:06 |显示全部楼层
hyunbinrain 发表于 2012-1-3 23:53
我用voodoohda坛子里修改的 for conexant 20588 的
但是一旦机子开始发声,比如itunes开始放歌了,机子都要 ...

问题:声音延迟。(比如如果你调节音量大小,你将会在1-2秒后才听到biu~biu~的音量修改提示音)
-解决方案1:在  /Library/Preferences/Audio 下删除 com.apple.audio.DeviceSettings.plistcom.apple.audio.SystemSettings.plist 然后重新启动
-解决方案2: 使用 SoundFlower软件 (自行搜索)





这个试过没
如果是硬卡死
应该是驱动和内核交换时候的问题。。(个人观点)
可以尝试下换个voodoohda版本? 去官网下个最新版的试试看
然后可以看看节点 进行下优化
可能节点设置有冲突
每次都卡一下
总之折腾下咯

Rank: 9

UID
893146
帖子
2337
PB币
8231
贡献
0
技术
33
活跃
414
发表于 2012-1-4 08:57:33 |显示全部楼层
技术帖先收藏慢慢学习,现在使用的10。7。2appleHDA外接的MIC没有声音输入。

永远,永远,我爱你

UID
2044482
帖子
5406
PB币
1282
贡献
3
技术
379
活跃
15
发表于 2012-1-4 09:12:58 |显示全部楼层
zshwq5 发表于 2012-1-4 08:57
技术帖先收藏慢慢学习,现在使用的10。7。2appleHDA外接的MIC没有声音输入。

appleHDA应该没有声音输入的。。。

点评

zshwq5  是10.7.2不支持吗?我使用10.7.0的也没有做到外接MIC输入,只有内置的MIC有。问题可能出在哪?能否指点下?谢谢!  发表于 2012-1-4 09:20

Rank: 2Rank: 2

UID
1654848
帖子
160
PB币
326
贡献
0
技术
2
活跃
3
发表于 2012-1-4 09:20:20 来自手机 |显示全部楼层
hyunbinrain 发表于 2012-1-3 23:53  我用voodoohda坛子里修改的 for conexant 20588 的  但是一旦机子开始发声,比如itunes开始放歌了,机子都要 ...

试一试我修改的voodoohda for conexant 20588

Rank: 11Rank: 11Rank: 11

UID
1590022
帖子
5819
PB币
15798
贡献
4
技术
521
活跃
151
发表于 2012-1-4 09:46:47 |显示全部楼层

-解决方案: 如果mic不工作 ,则禁音iGain 并 增加Imax或者Mic音量

只谢了如何禁用= =没写如何增加。。。。
还有我的mic不工作= =(正常开机的情况下。。。)
但是睡眠唤醒后能正常。。。。
懒得去搞了。。。有空试试你这方法可以么= =

永远,永远,我爱你

UID
2044482
帖子
5406
PB币
1282
贡献
3
技术
379
活跃
15
发表于 2012-1-4 11:49:35 |显示全部楼层
zshwq5 发表于 2012-1-4 08:57
技术帖先收藏慢慢学习,现在使用的10。7。2appleHDA外接的MIC没有声音输入。

理论上就是没声音的
参见http://bbs.pcbeta.com/viewthread-958320-1-2.html

不过可以弄出手动切换
关闭

站长推荐

近期很多账号被盗,请加强密码保护!!
请注意保护自身账号安全
回顶部
Copyright (C) 2005-2017 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛 | 电脑硬件 | 安卓软件