当前位置:网站首页>Camx架构开UMD、KMD log以及dump图的方式
Camx架构开UMD、KMD log以及dump图的方式
2022-06-28 06:08:00 【彧玊】
1.UMD Log
在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的进程才会生效
2.KMD Log
在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的方法,后面有机会我在更新
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,根据自己的需求取进行配置

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可以搭配使用,我平时使用这些已经足够了,后续可以继续交流。
边栏推荐
- Yygh-6-wechat login
- Data middle office: six questions data middle office
- How to add live chat in your Shopify store?
- Xcode13.3.1 项目执行pod install后报错
- [untitled]
- Xcode13.3.1 error reported after pod install
- Failed to start component [StandardEngine[Catalina]. StandardHost[localhost]]
- YYGH-6-微信登录
- pytorch dataloader的长度 epoch与iteration的区别
- 深度学习19种损失函数
猜你喜欢

JQ picture amplifier

Jenkins continuous integration 1

基于Kotlin+JetPack实现的MVVM框架的示例

Drop down box for implementation

移动广告发展动向:撬动存量,精细营销

AutoCAD C# 多段线小锐角检测

The custom cube UI pop-up dialog supports multiple and multiple types of input boxes

socke. IO long connection enables push, version control, and real-time active user statistics

Apple MDM Bypass 免越狱绕过MDM配置锁 免费

Binder interview: memory management unit
随机推荐
MR-WordCount
移动广告发展动向:撬动存量,精细营销
Main functions of 5ggnb and ng ENB
基于Kotlin+JetPack实现的MVVM框架的示例
High quality domestic stereo codec cjc8988, pin to pin replaces wm8988
慢内容广告:品牌增长的长线主义
Differences between basic types and packaging classes
Taobao seo training video course [22 lectures]
[untitled]
Data middle office: six questions data middle office
Filecoin hacker song developer competition
Academic search related papers
API learning of OpenGL (2007) gltexcoordpointer
Yygh-8-appointment registration
ES9023音频解码芯片的工作原理
How to add live chat in your Shopify store?
Mosaic data enhanced mosaic
At first glance, I can see several methods used by motionlayout
Oracle condition, circular statement
Common basic functions of Oracle