在UMD log分为两部分,分别是camx这边的log和chi这边的log。对camx这边因为是核心,所以对应的模块比较多,做了模块的区分。chi这边主要是OEM这边进行客制化所以只有一个prop进行控制
CAMX log:
camx的grop:
涉及文件名:camxypes.h(后面camx被拆分成了三个文件夹,记得都找找)
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
其中一共有8bit控制,可以根据需要设置对应的值
开log的方式:
1.命令:adb shell setprop xxxx(对应的prop) 0xxxx(16进制)
2.可以根据camxsettings.xml对应的变量名写在camxoverridesettings.txt 文件中
然后push到手机的/vendor/etc/camera 路径中
以上的操作手机都需要root权限,并且设置完成之后需要杀掉camera的进程才会生效
在KMD也分为很多的模块,我们主要通过写节点的值来进行开关log
对应节点的路径:/sys/module/camera/parameters (手机中的路径)
kernel对应的模块:
文件名:cam_debug_util.h (在对应camera驱动目录下面搜就可以了)
使用方法: echo 0xxxx(16进制的数字) > debug_mdl
在kernel也有对应的log level这些
使用方法:echo xxx(枚举值) > debug_type
好像还有那种单独对单个模块进行开log的方法,后面有机会我在更新
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,根据自己的需求取进行配置
persist.vendor.camea.autoImageDumpMask
persist.vendor.camea.autoImageDumpIFEoutputPortMask
persist.vendor.camea.autoImageDumpIFEInstanceMask
这两个就是对应的port和node 的instance id可以确认自己跑的流确认对应的pipelie来进行赋值,平时主要在dump (IFE IPE)后面还有一系列对应的node可以进行dump,需要去camxsettings.xml中确认
其实还有很多的prop可以搭配使用,我平时使用这些已经足够了,后续可以继续交流。