当前位置:网站首页>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可以搭配使用,我平时使用这些已经足够了,后续可以继续交流。
边栏推荐
- @The reason why the Autowired annotation is empty
- 移动广告发展动向:撬动存量,精细营销
- Oracle condition, circular statement
- Apple MDM Bypass 免越狱绕过MDM配置锁 免费
- Yygh-8-appointment registration
- [MySQL] all query tables contain 20million data -- how to optimize SQL
- 基于Kotlin+JetPack实现的MVVM框架的示例
- Yygh-6-wechat login
- YYGH-BUG-02
- Jenkins continues integration 2
猜你喜欢

报错--解决core-js/modules/es.error.cause.js报错

Openharmony gnawing paper growth plan -- json-rpc

【Paper Reading-3D Detection】Fully Convolutional One-Stage 3D Object Detection on LiDAR Range Images

Data middle office: six questions data middle office

Xcode13.3.1 error reported after pod install

Parsing ng template with let total in NZ Pagination

How popular are FB and WhatsApp mass messages in 2022?

Working principle of es9023 audio decoding chip

Apple MDM bypass jailfree bypass MDM configuration lock free

5g network overall architecture
随机推荐
@The reason why the Autowired annotation is empty
ES9023音频解码芯片的工作原理
Ape pink ape power - Developer activity attack!
使用SQL select count distinct查询语句统计数据库中某个字段的唯一值总数量
YYGH-7-用户管理
Sklearn Feature Engineering (summary)
Independent station sellers are using the five e-mail marketing skills, do you know?
Lombok @equalsandhashcode annotation how to make objects The equals () method compares only some attributes
Configure multiple database connections using the SSM framework
使用pytorch和tensorflow计算分类模型的混淆矩阵
No one can only use foreach to traverse arrays, right?
不会还有人只会用forEach遍历数组吧?
Yolact++ Pytorch环境
[untitled]
idea创建类时自动添加注释
idea根据数据库表生成实体类
How to add live chat in your Shopify store?
简单手写debounce函数
Yolact++ pytoch environment
Caused by: com. fasterxml. jackson. databind. exc.InvalidDefinitionException: Cannot construct instance