关于Voodoohda的常见疑问综合列表
本帖最后由 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 修改输出格式 图如下
-解决方案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.plist 和 com.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 ColorDescription Node PinDefault Original Verbs
----------------------------------------------------------------------------------------------
1/8 GreenLine Out at Ext Rear 20 0x14 0x01014410 21471c10 21471d44 21471e01 21471f01
其中节点数据(NodeID)中 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硬件支持插孔检测功能,其实外部电路不支持也没有用啦= =!Reserved 3 (保留3)Reserved 2 (保留2)Reserved 1 (保留1)Jack Detect Override 0 (系统定义)*使用0 用于未禁用设备检测-外部设备(如外置mic和扬声器耳机等)
使用1用于已禁用用设备检测-内建设备 (如内置扬声器,麦克风等)
Color (接口颜色) 表示你插孔的颜色~把它添加到软件去吧~
这个看不懂的话。。无力吐槽了 =w=!Unknown 0
Black 1
Grey 2
Blue 3
Green 4
Red 5
Orange 6
Yellow 7
Purple 8
Pink 9
Reserved A-D
White E
Other F
71eXY X=Default Device(连接类型) Y=Connection Type(控制输入及输出)
Default Device(控制输入及输出) 表明插口的预定用途。他能表明插口标签或者所连接到该插口的硬件设备,比如继承扬声器或者类似的东东 = =~Line Out 0
Speaker1
HP Out 2
CD 3
SPDIF Out 4
Digital Other Out 5
Modem Line Side 6
Modem Handset Side 7
Line In 8
AUX 9
Mic In A
Telephony B
SPDIF In C
Digital Other In D
Reserved E
Other FConnection Type(连接类型)表示物理连接的插头类型。比如8英寸的立体声插孔,或者光纤数字接口等,软件能基于该声卡硬件物理传输外部传输能力然后使用这些信息数据生成用户可见的界面报告或者修改编码器功能的报告内容Unknown 0
1/8" stereo/mono 1
1/4" stereo/mono 2
ATAPI internal 3
RCA 4
Optical 5
Other Digital 6
Other Analog 7
Multichannel Analog (DIN) 8
XLR/Professional 9
RJ-11 (Modem) A
Combination B
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
小白学习来了,楼主辛苦了 楼主辛苦了!!!!!! 辛苦你了阿{:9_350:} {:5_267:}翻译组组长你呢 真的辛苦了呢 写这些还有翻译很累呢 虽然捣鼓过AppleHDA,但不得不承认,有VoodooHDA的存在,才使得很多黑苹果可以发声。毕竟AppleHDA只是为苹果的硬件开发的。如果针对自己的声卡codec修改VoodooHDA,效果确实也不逊色于AppleHDA,甚至mic啊,HDMI啊,都比较容易驱动。但很多人只是直接用通用的,没有自己修改,或者直接拿别人的,这样还是得费点神。还有就是每次更新的时候,很多人忘了,AppleHDA一旦更新,就会导致和VoodooHDA冲突,这有点小麻烦,但注意的话也就没什么了。 多谢,学习啦 写得太好了!!建议置顶!! 我用voodoohda坛子里修改的 for conexant 20588 的
但是一旦机子开始发声,比如itunes开始放歌了,机子都要卡顿一下,itunes播完一首后,跳到下一首,这时候机子又会卡一下,卡的时候光标什么的都无法移动,过程大概持续1~2s,每次都是。。。
conexant 的又无法修改原版的 appllehda驱动。。。很麻烦。。。 学习了,支持一下 {:5_293:}{:5_293:}{:5_293:}{:5_293:}{:5_293:}
楼主辛苦了!支持!
{:5_293:} 回复 weizhi 126。。你确认他们两个的 DeviceIDVendorID一样????= =。。。
声卡稍有不同 cxxxxxx代号应该仅代表解码器类型
具体的节点映射,组别驱动 也就是硬件层的 pin 阵脚定义是由各个厂商自行设定的
如果id一样的话 仅表示芯片相同
可以尝试下不同的pin 对应的nodid 或者 默认组别应该可以调出来的。。。不过。。有点麻烦。毕竟五国得重启。。 VIVXIX 发表于 2012-1-3 22:28 static/image/common/back.gif
虽然捣鼓过AppleHDA,但不得不承认,有VoodooHDA的存在,才使得很多黑苹果可以发声。毕竟AppleHDA只是 ...
我倒是觉得。。能用上appleHDA是个奢侈啊。。T_T
appleHDA个人感觉对黑苹果兼容方面越来越抠,怀疑苹果从中作梗= =!
voodoohda倒是个神器。。是绝大多数声卡的后备解决方案。。特别是mic啊 - -! 我去。。 hyunbinrain 发表于 2012-1-3 23:53 static/image/common/back.gif
我用voodoohda坛子里修改的 for conexant 20588 的
但是一旦机子开始发声,比如itunes开始放歌了,机子都要 ...
问题:声音延迟。(比如如果你调节音量大小,你将会在1-2秒后才听到biu~biu~的音量修改提示音)
-解决方案1:在/Library/Preferences/Audio 下删除 com.apple.audio.DeviceSettings.plist 和com.apple.audio.SystemSettings.plist 然后重新启动
-解决方案2: 使用 SoundFlower软件 (自行搜索)
这个试过没
如果是硬卡死
应该是驱动和内核交换时候的问题。。(个人观点)
可以尝试下换个voodoohda版本? 去官网下个最新版的试试看
然后可以看看节点 进行下优化
可能节点设置有冲突
每次都卡一下
总之折腾下咯
技术帖先收藏慢慢学习,现在使用的10。7。2appleHDA外接的MIC没有声音输入。 zshwq5 发表于 2012-1-4 08:57 static/image/common/back.gif
技术帖先收藏慢慢学习,现在使用的10。7。2appleHDA外接的MIC没有声音输入。
appleHDA应该没有声音输入的。。。 hyunbinrain 发表于 2012-1-3 23:53我用voodoohda坛子里修改的 for conexant 20588 的但是一旦机子开始发声,比如itunes开始放歌了,机子都要 ...
试一试我修改的voodoohda for conexant 20588 {:9_354:}
-解决方案: 如果mic不工作 ,则禁音iGain 并 增加Imax或者Mic音量
只谢了如何禁用= =没写如何增加。。。。
还有我的mic不工作= =(正常开机的情况下。。。)
但是睡眠唤醒后能正常。。。。
懒得去搞了。。。有空试试你这方法可以么= = zshwq5 发表于 2012-1-4 08:57 static/image/common/back.gif
技术帖先收藏慢慢学习,现在使用的10。7。2appleHDA外接的MIC没有声音输入。
理论上就是没声音的
参见https://bbs.pcbeta.com/viewthread-958320-1-2.html
不过可以弄出手动切换