美文网首页
高通 Camx debug log控制

高通 Camx debug log控制

作者: 小驰行动派 | 来源:发表于2022-02-07 23:20 被阅读0次

    某天,在某网站上看到一句话,“log开的好,问题都能搞”

    问题能不能都搞好不知道,不过log开的好,对分析问题的确有很大的帮助。

    高通camx的日志主要分2大模块,UMD (user mode driver) 和KMD( kerner mode driver),也就是用户层和kernel层日志。

    下面就来看下这2大块日志debug的时候该如何设置?

    一、UDM日志

    高通camx camera debug日志格式如下:

    CamX: [<Verbosity Level>][<Group>] <File>:<Line Number> <Function Name> <Message>.

    例子:CamX: [INFO][CORE] camxexamplefile:123 ExampleFunction()This is the message.

    有2种方式可以设置日志打印开关:

    第一种是在:/vendor/etc/camera/camxoverridesettings.txt 文件中进行配置;

    另一种是通过adb命令设置prop属性:adb shell setprop <setting> <value>

    我们先看看下camx下都定义了哪些日志类型等级(如下图所示)。

    Error等级的日志是默认输出的。

    接下来再看下,设置各日志类型等级对应的相关属性。

    例如:

    我们需要打开Info级别的日志,那对应的就是设置logInfoMask属性值。

    大家肯定还有疑问,camx里面有这么多模块,怎么去单独打开某个模块的日志呢?

    好了,看下面表格,各个模块高通已经给我们定义好了,定义的代码在camx/src/utils/camxtypes.h里面。

    下面来举个具体的例子:

    我需要打开camx里面ISP的Info级别的日志,怎么设?

    对应上面的表格,CamxLogGroupISP 对应的值是 1<< 3,1<<3也就是 0x8;

    而且从上面我们知道 info级别的日志,对应的属性是logInfoMask。

    那很简单了,设置如下:

    adb shell setprop persist.vendor.camera.logInfoMask 0x8

    或:

    adb root 
    adb remount
    adb shell "echo logInfoMask=0x8 >> /vendor/etc/camera/camxoverridesettings.txt"
    

    然后kill下camera 服务相关的进程,我们设置的内容就生效了。

    二、KMD日志

    例子:

    我们需要打开 KMD里面 CAM_SENSOR and CAM_ICP 的调试日志, 怎么设?

    adb root

    adb remount

    adb shell “echo 0x120 > /sys/module/cam_debug_util/parameters/debug_mdl”

    adb shell cat /proc/kmsg > name_of_kmd_logs.txt

    还是别人说的话,"在熟练掌握 UDM KDM 及 usecase 的 debug 流程之后,解起问题称心如意。如果不是这样,那一定是你的log 没加对,自省."

    *本人从事Android Camera相关开发已有5年,
    *目前在深圳上班,
    *小伙伴记得点我头像,看【个人介绍】进行关注哦,希望和更多的小伙伴一起交流 ~

    相关文章

      网友评论

          本文标题:高通 Camx debug log控制

          本文链接:https://www.haomeiwen.com/subject/ijbvkrtx.html