Camx架构开UMD、KMD log以及dump图的方式

1.UMD Log

在UMD log分为两部分,分别是camx这边的log和chi这边的log。对camx这边因为是核心,所以对应的模块比较多,做了模块的区分。chi这边主要是OEM这边进行客制化所以只有一个prop进行控制

CAMX log:

camx的grop:

涉及文件名:camxypes.h(后面camx被拆分成了三个文件夹,记得都找找)

Camx架构开UMD、KMD log以及dump图的方式_第1张图片

 camx设计到的group有这些,只要把对应的位置1,就可以打印出来对应的log。

涉及的prop主要有一下这几种,其实就是对应的log level:

涉及文件名:camxsettings.xml(几乎所有的prop都在里面)

persist.vendor.camera.logConfigMask
persist.vendor.camera.logEntryExitMask
persist.vendor.camera.logWarningMask
persist.vendor.camera.logInfoMask
persist.vendor.camera.logVerboseMask
persist.vendor.camera.logDRQEnable(打开DRQ log,我一般直接把这个prop置为true)persist.vendor.camera.enableAsciiLogging(高通case平时需要抓离线log,就需要打开这个开关,置为true就行了)

其实还有其他的配置方案,我感觉这些平时使用已经足够了

note:离线log

我把离线log的稍微补充一下,最后log会出现在手机的 /data/vendor/camera 路径下

然后把那个文件夹导出来,用高通的工具合成一个log文件

工具路径:vendor/qcom/proprietary/chi-cdk/tools/binary_log/

命令:python merge_text_logs.py -d  xxx(文件夹名)  -o xxx(生成的log文件名)

CHI log:

因为吃没有那么多的模块所以只有一个prop控制

vendor.camera.camera.overridLogLevels

Camx架构开UMD、KMD log以及dump图的方式_第2张图片

其中一共有8bit控制,可以根据需要设置对应的值 

开log的方式:

1.命令:adb shell setprop    xxxx(对应的prop)   0xxxx(16进制)

2.可以根据camxsettings.xml对应的变量名写在camxoverridesettings.txt 文件中

然后push到手机的/vendor/etc/camera 路径中

以上的操作手机都需要root权限,并且设置完成之后需要杀掉camera的进程才会生效

2.KMD Log

在KMD也分为很多的模块,我们主要通过写节点的值来进行开关log

对应节点的路径:/sys/module/camera/parameters   (手机中的路径)

 我们主要操作的结点是红框里面的两个

kernel对应的模块:

文件名:cam_debug_util.h   (在对应camera驱动目录下面搜就可以了)

Camx架构开UMD、KMD log以及dump图的方式_第3张图片

 使用方法:  echo  0xxxx(16进制的数字)   > debug_mdl

在kernel也有对应的log level这些

Camx架构开UMD、KMD log以及dump图的方式_第4张图片

使用方法:echo  xxx(枚举值)  > debug_type

好像还有那种单独对单个模块进行开log的方法,后面有机会我在更新

3.Dump 图像

dump图像只可以对IFE输出及以后的节点进行dump,但是有些格式(TP10)我们本地无法解析,可以找高通的帮忙解析

涉及文件名:camxsettings.xml

这里也是有对应的几个prop:但是这里控制的比较精细,可以精确到对应那个node的实例,还有对应node的port

persist.vendor.camea.autoImageDump  这是dump output 的开关
persist.vendor.camea.dumpInputatOutput  这是dump imput的开关,前提是output的需要打开,打开之后因为dump比较多,所以会很卡
persist.vendor.camea.autoInputImageDumpMask  这是dump 哪些node的prop,根据自己的需求取进行配置

Camx架构开UMD、KMD log以及dump图的方式_第5张图片
persist.vendor.camea.autoImageDumpMask

Camx架构开UMD、KMD log以及dump图的方式_第6张图片

persist.vendor.camea.autoImageDumpIFEoutputPortMask

Camx架构开UMD、KMD log以及dump图的方式_第7张图片 

persist.vendor.camea.autoImageDumpIFEInstanceMask

Camx架构开UMD、KMD log以及dump图的方式_第8张图片

这两个就是对应的port和node 的instance id可以确认自己跑的流确认对应的pipelie来进行赋值,平时主要在dump (IFE IPE)后面还有一系列对应的node可以进行dump,需要去camxsettings.xml中确认

其实还有很多的prop可以搭配使用,我平时使用这些已经足够了,后续可以继续交流。 

 

你可能感兴趣的:(一些方法的整理,学习,android)