本帖最后由 love2335 于 2013-8-17 15:46 编辑
第二步、Config的得出与修改 很多人会说,我前面的也会了呀,我也提取了Config了,但是一点用也没有,还是无法加载啊。。这是为什么呢?好吧,你为什么不回头仔细看一下紫米的帖子呢。。其实很多初次动手做仿冒驱动的同学都漏了下面的一步,就是对初步得出的这组数据进行修正整理,导致了最后得出的Config data也是错误的,当然不能用了。 让我们看一下紫米对这每个几点八位数字的解释: 第一个数字代表这个节点相关的设定,因为是笔记本,我们只关心这么三个数字就行了。。比如 0x12 30 09 a6 90: [Fixed] Mic at Int N/A 这个里面的30中的3.代表这个节点属于SPDIF IN。。至于我们修改来说,第一个数字最好保持原样,不要动。笔记本比台式机特殊点 NO.1 MIC NO.2 LONE IN NO.3 SPDIF IN NO.6 SPIDF OUT 第二个数字代表序列,就是在同一个组下装置的优先顺序,比如扬声器,你是选择内置扬声器优先还是耳机扬声器优先???如果耳机优先的话,可能你的外置扬声器就米有了声音。。 这个数字一般来说就是0和3,其实也无关紧要。只要不出现无关字母就好 比如上面的 0x15 1F 20 21 01: [Jack] HP Out at Ext Rear 第二位数字是F?!!!!怎么跑出来的???算了,反正机器怎么想咱们也不知道,干脆把第二位数字全改为0算了。。修改后: 0x15 10 20 21 01: [Jack] HP Out at Ext Rear 第三个数字代表插口的颜色,对于笔记本来说,我们可以很自豪的说,关我鸟事?所以保持原始数据就行,用不着修改。 第四个数字代表是否侦测插孔,这个有什么用?打个比方,你在用扬声器听歌的时候插入耳机会发生什么?是不是外部扬声器没声音了?耳机却有了?这就是插孔侦测的作用,而对于我们来说,声音的输入只有两个方式:耳机麦克风和笔记本自带麦克风;输出也只有两个:耳机和自带扬声器,而需要侦测的只能是耳机了。当然,耳机代表一切外设发声设备哈。 0=需要侦测插孔,外设的基本都设为0 1=不需要侦测插孔,内建的都设为1 再回过头来看看, Micat Int N/A内置麦克风 Speakerat Int N/A内置扬声器 HPOut at Ext Rear 耳机扬声器 Mic at Ext Rear外置麦克风插口 是不是有点啥恍然大悟的感觉?好吧,前两个第四位数字都为1,后两个项目第四位都为0.这下搞明白了。。。 第五个数字代表装置类型,笔记本没那么多讲究。。简单是福。都保持原样好了。 第六个数字代表连接类型,圆口为1,内接为0.。好像笔记本很少用USB耳机吧??老规矩,不用管他,保持原样。 第七个数字代表是否有插孔及插孔的位置 0=外接装置 9=内建装置 耳机的扬声器和mic都为外接,这两个为0.内置扬声器和mic为内建。 其实大多数情况下这个数字是不用变的,当然不排除异常的情况。 第八个数字代表插孔所在位置,内建为0外接为1,至于哪个外接哪个内建,参考第七个数字最后。。。
根据这些进行修改后我们得出了下面这些数据 - 12 30 01 a6 90 [Fixed] Mic
- 14 10 01 17 90 [Fixed] Speaker
- 15 10 20 21 01 [Jack] HP Out
- 18 20 20 a1 01 [Jack] Mic
复制代码
这下就该算出具体的Config数值了吧。 - Address+node+71c+(1、2位数值)
- Address+node+71d+(3、4位数值)
- Address+node+71e+(5、6位数值)
- Address+node+71f+(7、位数值)
复制代码比如: 12 30 01 a6 90 [Fixed]Mic 这个节点,转换成config后是这样的: Config: Address:0 Node c d e f config
12 30 01 a6 90 ——﹥ 01271c30 01271d01 01271ea6 01271f90
全部整理后得出最后的config: - 01271C30 01271D01 01271EA6 01271F90 01471C10 01471D01 01471E17 01471F90 01571C10 01571D20 01571E21 01571F01 01871C20 01871D20 01871EA1 01871F01 01470C02
复制代码 记得最后搜索一下codec里面有米有EAPD这个字母,有的话就必须在最后加入01470C02这组数字。。 这就是整个config的取得过程。。
|