Qcom平台 Camera 之开启调试 log
本文是针对Android5.1、8.1、9.0版本的camera调试,log相关的配置做一个记录。如有错误,请交流指正。
调试 打开 kernel cam log
用于观察上电时序,match_id 匹配ID,CCI读写。
Camera 打开关键的 kernel log (以8953平台为例)
路径:
kernel/msm-4.9/drivers/media/platform/msm/camera_v2/sensor/io/msm_camera_dt_util.c
kernel/msm-4.9/drivers/media/platform/msm/camera_v2/sensor/msm_sensor.c
kernel/msm-4.9/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_driver.c
kernel/msm-4.9/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_init.c
代码如:
-#define CDBG(fmt, args...) pr_debug(fmt, ##args)
+#define CDBG(fmt, args...) pr_err(fmt, ##args) // 提高log打印等级
查看 可以使能的上层 cam module
路径:
vendor\qcom\proprietary\mm-camera\mm-camera2\includes\camera_dbg.h
代码如:
typedef enum {
CAM_NO_MODULE,
CAM_MCT_MODULE,
CAM_SENSOR_MODULE,
CAM_IFACE_MODULE,
CAM_ISP_MODULE,
CAM_PPROC_MODULE,
CAM_IMGLIB_MODULE,
CAM_CPP_MODULE,
CAM_HAL_MODULE,
CAM_JPEG_MODULE,
CAM_C2D_MODULE,
CAM_STATS_MODULE,
CAM_STATS_AF_MODULE,
CAM_STATS_AEC_MODULE,
CAM_STATS_AWB_MODULE,
CAM_STATS_ASD_MODULE,
CAM_STATS_AFD_MODULE,
CAM_STATS_Q3A_MODULE,
CAM_STATS_IS_MODULE,
CAM_STATS_HAF_MODULE,
CAM_STATS_CAF_SCAN_MODULE,
CAM_SHIM_LAYER,
CAM_LAST_MODULE
} cam_modules_t;
查看 当前使能的上层 cam log
adb指令:
adb shell getprop | grep "camera"
adb shell getprop | find "camera" // android5.1 用 find
查看 当前使能的上层 cam log 的等级
路径:
vendor\qcom\proprietary\mm-camera\mm-camera2\log_debug\android\camera_dbg.c
代码如:
框架定义了如下6个 log 级别, INFO 级别不可控,是一定会打印的。
/* string representation for logging level */
static const char *cam_dbg_level_to_str[] = {
"", /* CAM_GLBL_DBG_NONE */
"<ERROR>", /* CAM_GLBL_DBG_ERR */
"< WARN>", /* CAM_GLBL_DBG_WARN */
"< HIGH>", /* CAM_GLBL_DBG_HIGH */
"< DBG>", /* CAM_GLBL_DBG_DEBUG */
"< LOW>", /* CAM_GLBL_DBG_LOW */
"< INFO>" /* CAM_GLBL_DBG_INFO */
};
/* values that persist.vendor.camera.global.debug can be set to */
/* all camera modules need to map their internal debug levels to this range */
typedef enum {
CAM_GLBL_DBG_NONE = 0,
CAM_GLBL_DBG_ERR = 1,
CAM_GLBL_DBG_WARN = 2,
CAM_GLBL_DBG_HIGH = 3,
CAM_GLBL_DBG_DEBUG = 4,
CAM_GLBL_DBG_LOW = 5,
CAM_GLBL_DBG_INFO = 6
} cam_global_debug_level_t;
调试 使能 HAL cam log
开机状态,用这些命令设置之后就生效了,重启依旧有效,刷机后设置消失
adb shell setprop persist.camera.hal.debug.mask 536870915 // Android 8.0
或者
// HAL-3 Android9.0
adb shell setprop persist.vendor.camera.hal.debug 3
调试 抓取 cam 上层 log
这个抓log不会停,会一直抓。
adb logcat –v time –b main –b system > log.log
调试 设置 cam module log
全局debug log 等级配置
persist.camera.global.debug
数值:0-5 // [-- 数字越小等级越高 --]
功能: 设置不同的数值,将打印对应级别的log。该属性是总的log级别开关。
注意: 若子模块的log级别小于该属性设置值,则以该属性为准;若子模块的log 级别大于该属性设置值,则以子模块设置的log级别为准。
代码如:
adb shell setprop persist.camera.global.debug 5
或者(android5/8 和android9.0 之间的属性设置会差一个“vendor”)
adb shell setprop persist.vendor.camera.global.debug 5
调试 设置 cam module log Android8.0
// android 8 开启 camera logcat 等级
adb shell setprop persist.camera.sensor.debug 3
adb shell getprop persist.camera.sensor.debug // 查看当前等级
!!! 常用的 camera debug 属性
// 参考链接: https://blog.csdn.net/liaochaoyun/article/details/89671195
// 可能实际代码有出入 具体请参考实际代码设置
// 以 android 8.1 为例 参考以下路径
// QCameraParameters.cpp 8909_APP_O\hardware\qcom\camera\QCamera2\HAL
全局debug log 属性
1. adb shell setprop persist.vendor.camera.sensor.debug 3
2. adb shell setprop persist.vendor.camera.global.debug 3
ISP LOG
3. adb shell setprop persist.camera.ISP.debug.mask 3
查看 cam module log 等级定义
路径:
camera_dbg.h vendor\qcom\proprietary\mm-camera\mm-camera2\includes
代码如:
typedef enum {
CAM_NO_MODULE,
CAM_MCT_MODULE,
CAM_SENSOR_MODULE,
CAM_IFACE_MODULE,
CAM_ISP_MODULE,
CAM_PPROC_MODULE,
CAM_IMGLIB_MODULE,
CAM_CPP_MODULE,
CAM_HAL_MODULE,
CAM_JPEG_MODULE,
CAM_C2D_MODULE,
CAM_STATS_MODULE,
CAM_STATS_AF_MODULE,
CAM_STATS_AEC_MODULE,
CAM_STATS_AWB_MODULE,
CAM_STATS_ASD_MODULE,
CAM_STATS_AFD_MODULE,
CAM_STATS_Q3A_MODULE,
CAM_STATS_IS_MODULE,
CAM_STATS_HAF_MODULE,
CAM_STATS_CAF_SCAN_MODULE,
CAM_SHIM_LAYER,
CAM_LAST_MODULE
} cam_modules_t;
设置各模块 LOG 等级,数字越小等级越高
/* values that persist.vendor.camera.global.debug can be set to */
/* all camera modules need to map their internal debug levels to this range */
typedef enum {
CAM_GLBL_DBG_NONE = 0,
CAM_GLBL_DBG_ERR = 1,
CAM_GLBL_DBG_WARN = 2,
CAM_GLBL_DBG_HIGH = 3,
CAM_GLBL_DBG_DEBUG = 4,
CAM_GLBL_DBG_LOW = 5,
CAM_GLBL_DBG_INFO = 6
} cam_global_debug_level_t;
实测
adb shell setprop persist.camera.global.debug x // 设置log等级
adb shell getprop persist.camera.global.debug // 查看log等级
查看 cam module log 关键字
LOG-keyword // 关键字
1. 打开相机
CAM_PhotoModule: onCameraOpened
2. 获取到的camera配置信息
sensor_get_resolution_info: sensor info: name:
3. 帧冻结错误
mm-camera: <MCT><ERROR> 98: mct_bus_sof_thread_run: FATAL Session 1: SOF Freeze! Sending error message
mm-camera: <MCT >< INFO> 133: mct_bus_sof_thread_run: Sending HW_ERROR from MCT on session =1
mm-camera: <MCT ><ERROR> 817: mct_controller_send_cb: FATAL: Sending HW_Error
Camera : Error 100
4.帧冻结错误-关键字
I QCamera : <HAL><INFO> start_preview: 394: [KPI Perf]: X ret = 0
月影憧憧 烟火几重 烛花儿红
Qcom平台 Camera 之开启调试 log相关推荐
- Qcom平台 Camera 之单刷调试
前言 有关Android 平台 camera 调试的一些知识点,有助于调试验证. 目录 一些知识点 调试 vendor 镜像问题 调试 device-vendor.mk 调试 msm8953_came ...
- Qcom平台 Camera 之调试单刷验证
前言 由于调试camera 过程中,遇到的问题琐碎繁杂,在此将已经掌握和常用的调试技巧和一些知识点罗列出来,便于快速的开发调试camera. 平台包含msm8909.msm8953,软件平台包含And ...
- android camera2 qcom,Qcom平台 Camera的一些知识点 之MCLK
前言 MCLK 是平台 baseband 提供给 cam sensor的正常工作的频率, Qcom 平台一般未24MHz,由其他时钟源分频而来,实测在23.8MHz左右. 在打开相机的时候,才可以测到 ...
- Qcom平台 Camera 之常见错误和问题
本文主要记载了一些在调试过程中遇到的错误和问题,及相关的设置.log.解决方法等.如有错误,请交流指正. 目录 调试 帧冻结错误 调试 相机 App 闪退错误 调试 cam banding 现象 调试 ...
- android camera2 qcom,Qcom平台 camera的一些知识点 之RAW图抓取
前言 介绍camera sensor 输出的 raw 图,用于验证cam显示效果问题. 参考文档 : KBA-161204073328 目录 的 mask bit 定义 参数解释: /** * 参数解 ...
- 【qcom Android camera调试纪要】
qcom Android camera调试纪要 1.平台适配 1.1.kernel端 1.2.vendor端 1.2.1.cameraService lib代码 注意:需要在vendor\qcom\p ...
- 高通平台camera 移植过程
1 camera基本代码架构 高通平台对于camera的代码组织,大体上还是遵循Android的框架:即上层应用和HAL层交互,高通平台在HAL层里面实现自己的一套管理策略:在kernel中实现se ...
- android拷机工具,Android8.0平台Camera monkey拷机卡死异常解决方案
android8.0平台camera monkey拷机卡死异常 最近在处理一个camera monkey拷机卡死的问题,卡死在停止录像的画面. monkey测试命令 monkey -p com.and ...
- android烤机按键变慢,Android8.0平台Camera monkey拷机卡死异常
Android8.0平台Camera monkey拷机卡死异常 最近在处理一个camera monkey拷机卡死的问题,卡死在停止录像的画面. monkey测试命令 monkey -p com.and ...
最新文章
- 第三次组织架构变动背后,腾讯AI走向何方?
- 装逼一步到位!GauGAN代码解读来了
- 欢迎大家观顾【图灵教育社区】
- 安装Anaconda创建虚拟环境以及在pycharm中使用虚拟环境
- 在ORACLE中对存储过程加密
- java读取unicode文件_java怎么样将unicode解码读取?Java读取本地文件进行unicode解码...
- 什么是空间复杂度(What is actually Space Complexity ?)
- TextBoxWatermarkExtender扩展器与RequiredFieldValidator控件相冲突的解决方案
- leetcode 21 合并两个有序链表 (python)
- 网易云计算机系统有限公司,网易云音乐官方电脑版
- 什么是JavaWeb,主要框架有哪些
- 智头条:3月智能圈投融资大事记:极米、涂鸦上市,大华获中国移动56亿投资,凯迪仕获近1亿美元融资,小米投100亿美金造车
- [转]密码算法揭秘,一文让你成为国际安全算法与国密算法专家
- spring cloud学习-什么是Spring Cloud Eureka?
- 如何将PDF的单页页面分割成多个页面,如何将PDF页面的四周空白部分裁剪掉
- 美团饿了么外卖返利小程序公众号搭建外卖返利分销系统代cps源码
- 你所需要的java基础提升篇大总结
- 域名的解析及域名根服务器
- 友盟启动耗时分析之耗时趋势及性能拆解
- python3操作USB设备