allok2003
发表于 2009-11-4 14:54
說明的很詳細但是我還是搞不懂
bobma
发表于 2009-11-4 15:10
支持,不支持怎么办
mudzone
发表于 2009-11-4 15:21
說明的很詳細但是我還是搞不懂
allok2003 发表于 2009-11-4 14:54 https://bbs.pcbeta.com/images/common/back.gif教程还没有写完,呵呵!
wanghover
发表于 2009-11-4 16:41
好贴。收藏!!!!
威廉第三
发表于 2009-11-4 17:29
本帖最后由 威廉第三 于 2009-11-4 18:43 编辑
ConfigData这里LZ说得有点模糊了,这个地方其实是最复杂的,
类似verbit这样的工具,虽然节省了时间和精力,但是对你理解PinConfig并没有什么作用,
对于真正想学习PinConfig的人来说,从这里学不到verbit背后的道理,
而对于只是想找个驱动的人来说,用这些工具自己制作legacy kext又太难,
我当时就是用vista registry和codec_dump.txt得到的pin Default入手,
全部展开为2进制的0101字串,然后对照着HDA Spec,理解了每一位的意义,
熟悉了之后我才去找一些工具加快进程,
比如下面就是前置面板的耳机插口的Pin Configuration展开后的示意图
这样你才能理解那些Pin Configuration到底代表着什么,
比如你之前困惑的71c 后面的数字的意义,其实就是Default Association和Sequence,
这俩个其实就是把所有的输入输出节点分组,定义优先级,并且定义多声道系统的各个声道,
简单的定义是,
Default Association Field:
1.Labels the priority of the Pin Widget//定义节点的优先级
Lower numbers mean higher priority //低数值有更高的优先级
2.Association 0 is invalid //Association 0无效
0xF means the pin is not associated to any other pin//0xF表示节点没有联接到任何节点
3.The Class Driver uses this field to: //驱动用这一位(bit)来
Indicate groupings for multi-pin logical devices //标示multi-pin logical devices(多声道逻辑设备)
Resolve resource disputes (higher priority device wins) //解决资源争端(高优先级先行)
Sequence Number Meanings:
1.The Class Driver assigns meanings for clarity//驱动用来定义
0 means Front Left & Front Right //0表示前左,前右声道
1 means Front Center & Low frequency //1表示中置,低音声道
2 means Back Left & Back Right //2表示后置左,右声道
3 means Front Left of Center & Front Right of Center //3表示中置左,右声道
4 means Side Left & Side Right//4表示旁置左,右声道
2.Special meanings (examples)//特殊定义
(0,2) or (0,4) means Quadraphonic//同一个Association下有(0,2)或 (0,4)表示4声道系统
(0,1,2) means Surround Sound Speakers//同一个Association下有(0,1,2)表示5.1声道系统
(0,1,2,4) means Home Theater Speakers //同一个Association下有(0,1,2,4) 表示7.1声道系统
比如现在很多主板都支持7.1声道,通常都是用4个node来支持7.1声道,0x14-0x17,
那么它的configdat的第一段可能是这样的
01471c10 Front Left & Front Right
01571c11 Front Center & Low frequency
01671c12 Back Left & Back Right
01771c14 Side Left & Side Right
71c后面的第一位1表示他们同为Association 1,而第二位有(0,1,2,4) 表示是7.1声道系统,并且分别对应不同的声道,
但是Mac系统不支持模拟多声道系统,这就是为什么mac的codec dump里Sequence Number总是0的原因,
因此我们在修改Pin Configuration就要把所有的Sequence Number设为0,同时Association也要修改,比如
01471c10
01571c20
01671c30
01771c40
这里的Default Association可以随便设置,不过考虑到可能的资源争端,我们可以参考mac里的设定,
另外我记得System Profile那里所有输入输出设备的顺序似乎就是按照这个Default Association的大小来排的,
因此如果有人想调整那里的顺序,只要调整这里的Default Association就好,
另外Pin Configuration里有很多node是不用的,你可以看到通过Verbit之后少了很多,
其实注意一下就可以看到,所有Default Association为0xF的node都被移除了,
因为它们没有和任何node联接。
所以,71c 后面的2位数字的意义大致上就这样了,
虽然只是2个bit,但是还是要看很多资料才能搞明白,
因此大家如果对Pin Configuration感兴趣,还是要多看点spec,
比如High Definition Audio Specification,这些都可以在网上下得到。
luciferben
发表于 2009-11-4 17:34
真好要好好学习才行了。
bobma
发表于 2009-11-4 19:41
继续啊,我们也好跟着上手。反正我的是笔记本,输入输出很简单,也许就因为这个和VOODOOHDA不和,杂音大大的。但是就是没有杂音,空下手来也要折腾的
苹果不好吃
发表于 2009-11-4 22:16
很好,越来越精彩,lz加油,继续
mudzone
发表于 2009-11-4 22:30
ConfigData这里LZ说得有点模糊了,这个地方其实是最复杂的,
类似verbit这样的工具,虽然节省了时间和精力,但是对你理解PinConfig并没有什么作用,
对于真正想学习PinConfig的人来说,从这里学不到verbit背后的道 ...
威廉第三 发表于 2009-11-4 17:29 https://bbs.pcbeta.com/images/common/back.gif谢谢威廉的补充,我原来本想对configdata也进行一些分析,但我想先得到configdata进行下面的项目,所以我只是通过verbit产生的结果进行倒推对每组数据进行了分析,目的也只是对后面的工作有所帮助,目前最难的就是后面layouts和pathmaps的修改,这里确实把我卡住了,希望能得到你的帮助。
wosuiniqunbai
发表于 2009-11-4 22:42
顶起来,辛苦了,好多
likefeel
发表于 2009-11-4 22:49
再支持学习
cyberwalker
发表于 2009-11-4 22:54
本帖最后由 cyberwalker 于 2009-11-4 23:02 编辑
关于ConfigData中71后面数字的定义,可以参考intel出的High Definition Audio Specification
http://download.intel.com/standards/hdaudio/pdf/HDAudio_03.pdf
p148~p152,写得最详细,但要注意Mac自身的特点。
或者老外简明扼要的注释
mudzone
发表于 2009-11-4 23:45
关于ConfigData中71后面数字的定义,可以参考intel出的High Definition Audio Specification
http://download.intel.com/standards/hdaudio/pdf/HDAudio_03.pdf
p148~p152,写得最详细,但要注意Mac自身的特点。 ...
cyberwalker 发表于 2009-11-4 22:54 https://bbs.pcbeta.com/images/common/back.gif谢谢!!这些文档我都参考过了,目前主要是在研究layouts和pathmap的修改!
威廉第三
发表于 2009-11-5 00:09
附上四篇有代表性的关于AppleHDA Patching的帖子
http://www.projectosx.com/forum/index.php?s=41b4ffc53fb08d61ce15c649b7ea8d11&showtopic=465
http://www.insanelymac.com/forum/index.php?showtopic=1491 ...
cyberwalker 发表于 2009-11-3 22:43 https://bbs.pcbeta.com/images/common/back.gif
pathmapid确实可以自定义,我的legacy kext用的就是888,
其实这个并不重要,重要的是path map怎么写,
以及VREF, MuteGPIO, Amp, boost, detectdelegate的意义
威廉第三
发表于 2009-11-5 00:13
谢谢威廉的补充,我原来本想对configdata也进行一些分析,但我想先得到configdata进行下面的项目,所以我只是通过verbit产生的结果进行倒推对每组数据进行了分析,目的也只是对后面的工作有所帮助,目前最难的就是后 ...
mudzone 发表于 2009-11-4 22:30 https://bbs.pcbeta.com/images/common/back.gif
你具体是卡在哪里了?
扬子龙
发表于 2009-11-5 08:25
祝愿早日完成此贴!
felipe
发表于 2009-11-5 08:37
略略看看算了。。反正已经驱动了。。就不想了
bobma
发表于 2009-11-5 09:08
众人拾柴火焰高,我捧个人场
mudzone
发表于 2009-11-5 10:31
哪位同学帮我上传一个原版10.6.1中文版的AppleHDA.kext,我的忘了备份!!谢谢!!
mudzone
发表于 2009-11-5 10:43
本帖最后由 mudzone 于 2009-11-5 11:38 编辑
你具体是卡在哪里了?
威廉第三 发表于 2009-11-5 00:13 https://bbs.pcbeta.com/images/common/back.gif我现在尝试修改一个地方就重启一次看效果,但是我发现即使是仅仅加入configdata也会在重启的时候出现at line172goto exti的错误!!修改的东西越多,类似的错误就越多!!直至五国!!还有你说的那些amp等子项代表的意义是什么,能指点我一下嘛?
页:
1
2
[3]
4
5
6
7
8
9
10
11
12