ALC269vb仿冒驱动找节点学习
参考 love2335https://bbs.pcbeta.com/viewthread-1387094-1-1.htmlmudzonehttps://bbs.pcbeta.com/viewthread-613358-1-1.html
从linux提取出了本本的codec#0
终端cat /proc/asound/card0/codec#0 > ~/Desktop/codec_dump.txt
sudo cp /proc/asound/card0/codec#0 ~/ 皆可提取出
经验没有,就下载verbit.zip
下载到了WIN,解压,再放到linux下,居然没了可执行权限,ubuntu下右键-属性 --权限勾上允许此文件作为程序运行,就起效。或终端chmod 755 verbit
把codec#0verbit放在主文件夹下,就是/home/xxxx主文件夹/
打开终端 键入./verbit codec#0 > ver.txt 按enter
如教程所示,出现了错误AFG Function Id: 0x1 (unsol 1)
删除AFG Function Id: 0x1 (unsol 1) 行之间不能有空行
Codec: Realtek ALC269VB
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x10ec0269
Subsystem Id: 0x10431c33
Revision Id: 0x100100
Codec: Realtek ALC269VB
Address: 0
Vendor Id: 0x10ec0269
Subsystem Id: 0x10431c33
Revision Id: 0x100100
重新在终端键入 ./verbit codec#0 > ver.txt 按enter
生成了ver.txtverbitdebug.txt
打开ver.txt,发现内容很杂乱,和教程不太一样
Verbs from Linux Codec Dump File: codec#00
Codec: Realtek ALC269VB Address: 0 DevID: 283902569 (0x10ec0269)
Jack ColorDescription Node PinDefault Original Verbs
--------------------------------------------------------------------------------------------------------
1/8 BlackSpeaker at Ext Rear 18 0x12 0x411111f0 01271cf0 01271d11 01271e11 01271f41
Speaker at Int N/A 0x14 0x14 2417426704 01471c10 01471d01 01471e17 01471f90
1/8 BlackSpeaker at Ext Rear 23 0x17 0x411111f0 01771cf0 01771d11 01771e11 01771f41
Mic at Ext Left 0x18 0x18 60889152 01871c40 01871d18 01871ea1 01871f03
Mic at Int N/A 0x19 0x19 2426865968 01971c30 01971d09 01971ea7 01971f90
1/8 BlackSpeaker at Ext Rear 26 0x1a 0x411111f0 01a71cf0 01a71d11 01a71e11 01a71f41
1/8 BlackSpeaker at Ext Rear 27 0x1b 0x411111f0 01b71cf0 01b71d11 01b71e11 01b71f41
Analog PinkLine Out at Ext N/A 29 0x1d 0x40079a2d 01d71c2d 01d71d9a 01d71e07 01d71f40
1/8 BlackSpeaker at Ext Rear 30 0x1e 0x411111f0 01e71cf0 01e71d11 01e71e11 01e71f41
1/8 BlackHP Out at Ext Left 33 0x21 0x03211020 02171c20 02171d10 02171e21 02171f03
--------------------------------------------------------------------------------------------------------
Jack ColorDescription Node PinDefault Modified Verbs
--------------------------------------------------------------------------------------------------------
Speaker at Int N/A 0x14 0x14 2417426704 01471c10 01471d00 01471e17 01471f90
Mic at Ext Left 0x18 0x18 60889152 01871c40 01871d10 01871ea1 01871f00
Mic at Int N/A 0x19 0x19 2426865968 01971c30 01971d00 01971ea7 01971f90
Analog PinkLine Out at Ext N/A 29 0x1d 0x40079a2d 01d71c20 01d71d90 01d71e07 01d71f40
1/8 BlackHP Out at Ext Left 33 0x21 0x03211020 02171c50 02171d10 02171e21 02171f00
--------------------------------------------------------------------------------------------------------
学习人工在codec#0自己找节点,好象和verbit的不一样,还是没经验。
后仔细一看,verbit要到mac中使用,就转到mac中,复制codec#0 verbit到mac的主文件夹中
verbit没执行权限,终端chmod 755 verbit
键入 ./verbit codec#0 > ver.txt 按enter
在苹果中生成的ver.txtverbitdebug.txt,打开一看,与linux中的一样。想不到verbit脚本,linuxmac通吃啊。
慢慢有了经验,能看明白codec#0的内容了
发现搜索Control: name比搜 Pin Default更好找节点,Control: name下不超过7行出现Pin Default 就是有效的端口。
该Control: name上面就是要的节点Node。会略过无用的Pin Default 0x411111f0:
Node 0x14 wcaps 0x40018d: Stereo Amp-Out
Control: name="Speaker Playback Switch", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Control: name="Speaker Phantom Jack", index=0, device=0
Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
Amp-Out vals:
Pincap 0x00010014: OUT EAPD Detect
EAPD 0x2: EAPD
Pin Default 0x90170110: Speaker at Int N/A
Conn = Analog, Color = Unknown
0x90170110: Speaker at Int N/A 的Node 0x14 与verbit找出的是一致的
本帖最后由 drcc 于 2016-1-25 20:56 编辑
整理的原始Pin Default
0x1410 01 17 90: Speaker at Int N/A
0x1840 18 a1 03: Mic at Ext Left
0x1930 09 a7 90: Mic at Int N/A
0x2120 10 21 03: HP Out at Ext Left
verbit 整理修改的Pin Default
0x1410 00 17 90: Speaker at Int N/A
0x1840 10 a1 00: Mic at Ext Left
0x1930 00 a7 90: Mic at Int N/A
0x2150 10 21 00: HP Out at Ext Left
手工整理修改的PinDefault
0x1410 01 17 90: Speaker at Int N/A 声音不正常17可能要改动11 10
0x1840 10 a1 01: Mic at Ext Left a1看其他人实践要改成81外麦才能用
0x1930 01 a7 90: Mic at Int N/A a7 改A0 麦才正常实践后再说
0x2120 10 21 01: HP Out at Ext Left
ver.txt 中的Modified Verbs就是我们要的configdata 先用手工的数据试试
具体的Config数值表达公式
[*]Address+node+71c+(1、2位数值)
[*]Address+node+71d+(3、4位数值)
[*]Address+node+71e+(5、6位数值)
[*]Address+node+71f+(7、8位数值)
得到configdata
01471c10 01471d01 01471e17 01471f90 01871c40 01871d10 01871ea1 01871f01 01971c30 01971d01 01971ea7 01971f90 02171c20 02171d10 02171e21 02171f01 01470C02
最后搜索一下codec#0里面有无EAPD这个字母,有的话就必须在最后加入01470C02这组数字。
pathmap的获取和整理
输入是从后往前推断节点,输出是从前往后推 初次学习找寻Node 连接路径确实很迷茫
实践后的经验是
输入是从后往前推断节点,就是输入节点----- 这路径。打开codec#0从micInt节点 0x19 搜索 0x19的上面是Node 0x23 0x23 是一个节点,继续搜索0x23 找到Node 0x08
Mic at Int N/A 08>23 >19 8 >35> 25
输出是从前往后推 指输出节点 -- - 打开codec#0搜索0x14Node 0x14 的下面是0x0c0x0d* 搜索0x0d 有*的优先 Node 0x0d* 节点找到 下面显示 0x03 继续搜索0x03 Node 0x03 最后的节点也找到
Speaker at Int N/A 14< 0d< 03 20 <13< 3
本人电脑269vb节点如下
内麦 8 35 25 0x19 MuteGPIO50010019=1342242841 修改layout86.xml要用
外麦 9 34 24 0x18 MuteGPIO 50010018=1342242840
扬声器 20 13 3
外接耳机 33 12 2
页:
[1]