手机进行monkey测试,由camera引起 低概率KE事件的解决办法
时间:10-02
整理:3721RD
点击:
[DESCRIPTION]
在进行monkey测试时手机发生了KE,KE的类型显示的是WDT timeout and Hardware reboot
[SOLUTION]
解析KE log后,会得到log如下:
<4>[23183.145814] (0)[627:Binder_1]Backtrace:
<4>[23183.145835] (0)[627:Binder_1][<c0496500>] (sensornameXXGetResolution+0x0/0x4c)
fROM [<c048e1b4>] (kd_MultiSensorGetResolution+0x70/0xa8)
>à SensornameXXGetResolution() 对应到sensor drvier中具体的XXGetResolution(), 如S5K3L2XXGetResolution.
<4>[23183.145846] (0)[627:Binder_1] r4:00000000 r3:c0496500
<4>[23183.145870] (0)[627:Binder_1][<c048e144>] (kd_MultiSensorGetResolution+0x0/0xa8)
from [<c048fb94>] (CAMERA_HW_Ioctl+0x638/0x156c)
<4>[23183.145890] (0)[627:Binder_1][<c048f55c>] (CAMERA_HW_Ioctl+0x0/0x156c) from
[<c01291d4>] (do_vfs_ioctl+0x8c/0x5b4)
<4>[23183.145909] (0)[627:Binder_1][<c0129148>] (do_vfs_ioctl+0x0/0x5b4) from
[<c0129770>] (sys_ioctl+0x74/0x84)
<4>[23183.145928] (0)[627:Binder_1][<c01296fc>] (sys_ioctl+0x0/0x84) from [<c000e800>]
(ret_fast_syscall+0x0/0X30)
<4>[23183.145938] (0)[627:Binder_1] r8:c000e984 r7:00000036 r6:b58edec1 r5:00000001
r4:b5934188
<0>[23183.145966] (0)[627:Binder_1]Code: ebfb535c e3002838 e3003618 e301106a (e1c420b0)
请查看kd_sensorlist.c文件,按照Get Resolution的次数,分两种不同情况
1.若存在adopt_CAMERA_HW_GetInfo2函数,且
先申请kernel memory后,再call
g_pSensorFunc->SensorGetResolution(psensorResolution);
修改方法:
( 1)将原文件中kd_MultiSensorGetResolution()参照如下内容实现:
( 2)将adopt_CAMERA_HW_GetInfo2中的
修改方法:
将原文件中kd_MultiSensorGetResolution()参照以下内容实现:
[FAQ13479][Camera Tuning]CCT常见问题总结
[DESCRIPTION]
CCT常见问题总结
[SOLUTION]
issue反馈时自行检查如下项
§1、 请确认CCT版本和平台是否匹配?
2、 请确认连CCT的操作是否正确
3、 更换usb线,确认是否是由于usb线引起的
4、 如果担心是新旧版本的问题,请更换其他版本的CCT看是否可以连接
5、 是否可以进入meta mode ?
6、 如果连CCT时没有进入meta mode ,请确认meta tool 和sp hw_test tool 是否可以连接,如果可进入meta mode 界面则无需确认
issue反馈时需要提交的信息及抓log具体方法:
1.首先清空PC机C:\WM_META_DLL.log和BROM_DLL_V5.log
2.然后连接CCT作相关操作,复现问题,并告知操作步骤以及出现问题的时间点。
3.连线CCT的同时请打开两个cmdline,抓取kernellog和androidlog(也可以用GAT工具抓取)
4.Issue操作过程的视频,以及问题图片。
5.操作完毕后提供如下log:
C:\WM_META_DLL.log
C:\BROM_DLL_V5.log
Kernellog
Androidlog
简要介绍adb抓取log的步骤,仅供参考:
1.kernellogadbshell cat /proc/kmsg> d:\kerlog
kernellog在D盘下kerlog
2.androidlog adb shell logcat -v threadtime > D:\adrlog
androidlog在D盘下adrlog,且可以抓取 time 和 thread 信息
[Camera Tuning] CCT常见问题总结
1、 MT6582 LCCT 调试后save nvram有出现导出参数和原始参数一样,参数不生效或者重开机后修改参数不生
效
请打patch ALPS01896680 (ae awb 部分), ALPS01928784 ( ISP 部分)【SwVersion:ALPS.L0.MP2.V1】
2、 MT6592连CCT自动断开
请打patch ALPS01448642 【Sw Version: ALPS.KK1.MP1.V2.11】
3、 MT6752连接camera调试工具CCT勾选quick capture时,提示adb services is out of dataMt6752 CCT 在 “CCT6752v1.1441.02” 之後加入了Quick Capture, Quick Capture 勾起來, 表示使用 ADB 傳檔, 速度較快,只要是手机可以正常连adb的就支持quick capture ,【root cause】提示adb services is out of data的根本原因是多个adb.exe冲突【调试方法】如下:
方法1、如果adb是可以连接的,请替换掉cct中自带的adb.exe文件
方法2、 删除cct中自带的adb.exe文件
方法3 、 在硬盘中搜索adb.exe文件,然后找到所对应的应用程序,卸载该应用或者直接删除这个adb.exe即可
方法4、将adb.ext AdbWinApi.dll AdbWinUsbApi.dll 三只文件拷贝到C:\Windows\SysWOW64文件夹即可
4、 MT6595CCT 拍照之后就断开链接,即无法拍照
【Root cause】 flashlight导致CCT连接失败
遇到无法拍照时,首先,确认sensor driver 是否是我司验证过的,没有验证过的sensor可能会导致连CCT无法拍照。其次,如果在log中找到和flash相关的error,可以尝试将flash关掉看是否还会复现问题
5、 CCT 无法连接
5.1 CCT无法连接,可以进入meta mode,无法显示预览画面
log中若发现如下error,请在config.ftbl.<sensorname>.h 文件的previewsize中添加1280x720,问题解决E/AcdkMhalEng(215):{#939:mediatek/platform/mt6752/hardware/mtkcam/acdk/src/acdk/AcdkMhalEng.cpp}Err : Prv Size : 1280x720 is not supported. Try 640x480,【Root cause】找不到匹配的预览size导致无法连接,建议在修改config.ftbl.“sensorname”.h文件时,在不知道CCT previewsize是多大的情况下,先不要删除下面这5个size, 320x240,640x480,800x600,960x540,1280x720以免造成cct无法连接问题
5.2 MT6595无法连接CCT,会显示开机logo,没有显示meta mode【Root cause】 AF 有问题导致无法连接,遇到无法连接cct并且不能进入metamode此类问题可以先关掉AF,看是否还会复现问题。
5.3 MT6752版本, CCT无法连接,可以进入metamode,弹出对话框显示 Invalid input argument,CCT版本是CCT_v1.1444
方法1、更新CCT版本,新版本上已经修正这个问题
方法2、在MT6595_Android_CCT_Register_Definition.csv文件中,更改isp 的值
6、 MT8752平台 camera 连CCT工具拍照卡死
请打patch :ALPS.KK2.MP13.V1.27 【sw version: ALPS.KK2.MP13.V1.27】
7、 mt6735P &MT6735M 无法连接CCT
35M和35P code 已经移植到L1 branch,之前的L0 branch不再维护,请更新软件版本
【Root cause】:软件版本太旧,更新软件版本。
8、MT6735M电信版本使用35版本CCT,MT6735M非电信版本使用35M版本CCT.
MT6735P电信版本使用35版本CCT,MT6735P非电信版本使用35M版本CCT
MT6735和MT6753使用MT6735版本CCT.
MT6580使用35M版本CCT。
9、L版本CCT工具连接不上手机,出现general error
log中有 关键字avc: denied 则是权限问题导致的,请用QAAT扫描,会告知需要添加哪些权限
10、L版本连CCT后af不动,但不连CCT进camera后 af是可以动的
L版本需要对AF开通权限,在alps/device/mediatek/common/sepolicy/meta_tst.te中 添加对应AF的权限,例如FM50AF的权限是: allow meta_tstFM50AF_device:chr_file { read write ioctl open };
11、导入device info和aepline,在未修改任何值的情況下直接apply進手機的NVRAM,关机——再开机进camera會卡死
可以采取离线调试,并帮忙反馈提交CR
离线调试,cct不连手机,导入device info,导入aepline,点击mapping按钮,修改aepline,导出aepline,将导出的tuning参数文件替换到hal层参数下,build code。
12: MT6592版本 CCT工具调试USB CAM OV5648 连上之后不出来预览画面
请申请patch:ALPS01436842【Sw version:ALPS.KK1.MP1.V2.10】
13:MT6735M连CCT调shading出现拍照卡死,拍出图片为绿色
如果在log中有 ERROR: dequeueDstBuffer for vido fail,在每次拍照时请勾选common control 对话框中的bpc
14、MT6735M连CCT导入aepline后apply save会显示''ISP<1000''
请使用CCT6735Mv1.1516.01版本的 CCT 工具
15、push libcameracustom.so文件后,连不上CCT, Tool端显示general error,push前是可以连接的在log中有如下error:
E MtkCam/entry_mdk: [getModuleLib] dlopen: libacdk.so error=dlopen failed:
"libcameracustom.so" is 32-bit instead of 64-bit (getModuleLib)
【Root cause】调用libcameracustom.so时出现问题解决方法:
1、push时需要注意32和64bit 都要push也就是要,分别push到/system/lib和system/lib64
2、请确认libcameracustom.so是否正确
16、6735M、6795平台连cct后拍照卡死,或可以拍照拍下的图片是绿色
请使用最新的cct工具CCT6795v1.1520.01 、CCT6735Mv1.1520.01,并确保tuning参数中bpc和bnr同时开启以6795平台s5k3m2为例 、 tuning参数中bpc和bnr的开关如下:
在camera_isp_regs_s5k3m2mipiraw.h文件中
请申请Patch: ALPS01794118
使用adb命令的方式在正常开机环境下做flash 校准,步骤如下:
1. adb shell
2. setprop z.flash_ratio 1
3. 全黑环境下,请将手机固定,对着白墙10cm,固定。
4. 点击拍照,然后手机会自动打闪多次(其中不要任何人员靠近,避免影响光源)。
5. 手机停止拍照以后,存储空间内将生成eng_all.txt, eng_code.txt, fwb_code.txt等文件。
校准数据检查没问题后,
1.将eng_code.txt中的engTab数据合入到flash_tuning_custom_cct.cpp中的engTab数组中;
2.将fwb_code.txt中的数据合入到Camera_flash_awb_para_xxxxxx.h的Flash AWB Calibration数组中。
合入后重新编译即可生效。
18、连CCT后切换到ISP页面后卡死
如果WM_META_DLL.log中有如下error,则是hal层tuning参数有问题,用其他ok sensor的hal层参数整体替换。
ERROR: <0> META_YUSU_CCT_V2OPGetISPNVRAMData(token=213): META_YUSU_CCT_V2OPGetISPNVRAMDataBuf() failed!, datatype(53733508),
offset(0), length(0), cct_cnf.m_data(0x033074EC), recv_len(0), cct_cnf.m_data_len(29484). (wm_meta_cct_internal.cpp:17068)
06/09/15 11:54:06.722 WM_META_DLL[8020][308]: <---- META_YUSU_CCT_V2OPGetISPTuningData(): Leave ----- (WM_META_utility.cpp:985)
19、MT6580+CCT6735M 用CCT工具shading calibration后isp_regs的LSC register 参数不直观,无效位的随机值干扰
参数确认。
L1.MP3和L1.MP6请申请Patch id:ALPS02121776
20、 各平台打了patch后CCT无法调试awb, af参数, nvram无法save
L1.MP2 MT6752
9/3 ~ 10/8 Patch ALPS02274600 10/8 RDPatch
L1.MP3 MT6735/MT6753
L1.MP3.PPB MT6735/MT6753
9/22 ~ 10/19 Patch ALPS01794118 10/19
/vendor/mediatek/properetary/platform/MT6795/hardware/mtkcam/acdk/src/acdk
/AcdkMain.cpp MINT32 AcdkMain::init()
NvBufUtil::getInstance().setCctMode(0)
NvBufUtil::getInstance().setCctMode(1)
21、 MCCT
155477 01-01 00:10:48.535 200 269 D MtkCam/MtkCamUtils:
(269)[saveBufToFile] opening file [/data/proc__1640x1232_10_3]
155479 01-01 00:10:48.537 200 269 E MtkCam/MtkCamUtils:
(saveBufToFile){#148:vendor/mediatek/proprietary/hardware/mtkcam/legacy/v1
/common/camutils/CaMMIsc.cpp}(269)[saveBufToFile] failed to create file [/
data/proc__1640x1232_10_3]: Permission denied
155481 01-01 00:10:48.540 200 269 D MtkCam/CamAdapter: Raw saved: 0: /data
/proc__1640x1232_10_3
156233 01-01 00:10:48.889 200 282 E AcdkMain:
{#4630:vendor/mediatek/proprietary/hardware/mtkcam/legacy/platform/mt6580/
acdk/src/acdk/AcdkMain.cpp}Err : Can't open file to save image
156241 01-01 00:10:48.891 200 242 D AcdkMain: [takePicture_CameraDev] Save
Raw image file name:/data/proc__1640x1232_10_3
156247 01-01 00:10:48.892 200 242 E AcdkMain:
{#3617:vendor/mediatek/proprietary/hardware/mtkcam/legacy/platform/mt6580/
acdk/src/acdk/AcdkMain.cpp}Err : Can't open file to save image
:
1.alps\vendor\mediatek\proprietary\hardware\mtkcam\legacy\platform\xxxx\ac
dk\src\acdk
alps\vendor\mediatek\proprietary\hardware\mtkcam\legacy\platform\xxxx\acdk
\src\cct\calibration
alps\vendor\mediatek\proprietary\hardware\mtkcam\legacy\platform\xxxx\acdk
\src\surfaceview
acdk\src\acdk AcdkMain.cpp,AcdkMhalEng.cpp,AcdkMhalPure.cpp
acdk\src\cct\calibration cct_calibration.cppcct_imgtool.cpp
acdk\src\surfaceviewsurfaceView.cpp
:
#define MEDIA_PATH "//data" #define MEDIA_PATH "//sdcard"
#define MEDIA_PATH "/data" #define MEDIA_PATH "/sdcard"
2、AcdkMhalEng.cppset(map, "rawfname", "/data/");set(map, "rawfname", "/
sdcard/");
cct_calibration.cppsprintf(filename, "/data/Raw_%dx%d.raw",
m_u2RawImgWidth, m_u2RawImgHeight);
sprintf(filename, "/sdcard/Raw_%dx%d.raw", m_u2RawImgWidth,
m_u2RawImgHeight);
surfaceView.cppg_fp = fopen ("//data//prv.raw", "wb")
g_fp = fopen ("//sdcard//prv.raw", "wb");
在进行monkey测试时手机发生了KE,KE的类型显示的是WDT timeout and Hardware reboot
[SOLUTION]
解析KE log后,会得到log如下:
<4>[23183.145814] (0)[627:Binder_1]Backtrace:
<4>[23183.145835] (0)[627:Binder_1][<c0496500>] (sensornameXXGetResolution+0x0/0x4c)
fROM [<c048e1b4>] (kd_MultiSensorGetResolution+0x70/0xa8)
>à SensornameXXGetResolution() 对应到sensor drvier中具体的XXGetResolution(), 如S5K3L2XXGetResolution.
<4>[23183.145846] (0)[627:Binder_1] r4:00000000 r3:c0496500
<4>[23183.145870] (0)[627:Binder_1][<c048e144>] (kd_MultiSensorGetResolution+0x0/0xa8)
from [<c048fb94>] (CAMERA_HW_Ioctl+0x638/0x156c)
<4>[23183.145890] (0)[627:Binder_1][<c048f55c>] (CAMERA_HW_Ioctl+0x0/0x156c) from
[<c01291d4>] (do_vfs_ioctl+0x8c/0x5b4)
<4>[23183.145909] (0)[627:Binder_1][<c0129148>] (do_vfs_ioctl+0x0/0x5b4) from
[<c0129770>] (sys_ioctl+0x74/0x84)
<4>[23183.145928] (0)[627:Binder_1][<c01296fc>] (sys_ioctl+0x0/0x84) from [<c000e800>]
(ret_fast_syscall+0x0/0X30)
<4>[23183.145938] (0)[627:Binder_1] r8:c000e984 r7:00000036 r6:b58edec1 r5:00000001
r4:b5934188
<0>[23183.145966] (0)[627:Binder_1]Code: ebfb535c e3002838 e3003618 e301106a (e1c420b0)
请查看kd_sensorlist.c文件,按照Get Resolution的次数,分两种不同情况
1.若存在adopt_CAMERA_HW_GetInfo2函数,且
先申请kernel memory后,再call
g_pSensorFunc->SensorGetResolution(psensorResolution);
修改方法:
( 1)将原文件中kd_MultiSensorGetResolution()参照如下内容实现:
- /* */
- MUINT32
- kd_MultiSensorGetResolution(
- MSDK_SENSOR_RESOLUTION_INFO_STRUCT *pSensorResolution[2])
- {
- MUINT32 ret = ERROR_NONE;
- u32 i = 0;
- MSDK_SENSOR_RESOLUTION_INFO_STRUCT *pBuff;
- u32 u32Length = 2 * sizeof(MSDK_SENSOR_RESOLUTION_INFO_STRUCT);
- pBuff = (MSDK_SENSOR_RESOLUTION_INFO_STRUCT *)kmalloc(u32Length, GFP_KERNEL);
- if (NULL == pBuff)
- {
- PK_DBG("[kd_MultiSensorGetResolution] ioctl allocate mem failed\n");
- ret = -ENOMEM;
- return ret;
- }
- mEMSet(pBuff, 0, u32Length);
- KD_MULTI_FUNCTION_ENTRY();
- PK_INF("g_bEnableDriver[%d][%d]\n", g_bEnableDriver[0], g_bEnableDriver[1]);
- for (i = KDIMGSENSOR_INVOKE_DRIVER_0; i < KDIMGSENSOR_MAX_INVOKE_DRIVERS; i++)
- {
- if (g_bEnableDriver[i] && g_pInvokeSensorFunc[i])
- {
- if (DUAL_CAMERA_MAIN_SENSOR == g_invokeSocketIdx[i])
- {
- ret = g_pInvokeSensorFunc[i]->SensorGetResolution(pBuff);
- if (copy_to_user((void __user *)(pSensorResolution[0]) , (void *)pBuff ,
- sizeof(MSDK_SENSOR_RESOLUTION_INFO_STRUCT)))
- {
- printk("[CAMERA SENSOR] jeff ioctl copy to user failed\n");
- ret = -EFAULT;
- } }
- else if ((DUAL_CAMERA_MAIN_2_SENSOR == g_invokeSocketIdx[i]) || (DUAL_CAMERA_SUB_SENSOR
- == g_invokeSocketIdx[i]))
- {
- ret = g_pInvokeSensorFunc[i]->SensorGetResolution(pBuff + 1);
- if (copy_to_user((void __user *)(uintptr_t)(pSensorResolution[1]), pBuff + 1,
- sizeof(MSDK_SENSOR_RESOLUTION_INFO_STRUCT)))
- {
- PK_DBG("[CAMERA SENSOR] jeff ioctl copy to user failed\n");
- ret = -EFAULT;
- } }
- if (NULL != pBuff)
- kfree(pBuff);
- if (ERROR_NONE != ret)
- {
- PK_ERR("[%s]\n", __func__);
- return ret;
- } } }
- KD_MULTI_FUNCTION_EXIT();
- return ERROR_NONE;
- }
- MUINT32
- kd_MultiSensorGetResolutionForGetInfo(
- MSDK_SENSOR_RESOLUTION_INFO_STRUCT *pSensorResolution[2])
- {
- MUINT32 ret = ERROR_NONE;
- u32 i = 0;
- KD_MULTI_FUNCTION_ENTRY();
- PK_INF("g_bEnableDriver[%d][%d]\n", g_bEnableDriver[0], g_bEnableDriver[1]);
- for (i = KDIMGSENSOR_INVOKE_DRIVER_0; i < KDIMGSENSOR_MAX_INVOKE_DRIVERS; i++) {
- if (g_bEnableDriver[i] && g_pInvokeSensorFunc[i]) {
- if (DUAL_CAMERA_MAIN_SENSOR == g_invokeSocketIdx[i]) {
- ret = g_pInvokeSensorFunc[i]->SensorGetResolution(pSensorResolution[0]);
- }
- else if ((DUAL_CAMERA_MAIN_2_SENSOR == g_invokeSocketIdx[i]) || (DUAL_CAMERA_SUB_SENSOR
- == g_invokeSocketIdx[i])) {
- ret = g_pInvokeSensorFunc[i]->SensorGetResolution(pSensorResolution[1]);
- }
- if (ERROR_NONE != ret) {
- PK_ERR("[%s]\n", __func__);
- return ret;
- } } }
- KD_MULTI_FUNCTION_EXIT();
- return ERROR_NONE;
- }
( 2)将adopt_CAMERA_HW_GetInfo2中的
- g_pSensorFunc->SensorGetResolution(psensorResolution);
- kd_MultiSensorGetResolutionForGetInfo(psensorResolution);
修改方法:
将原文件中kd_MultiSensorGetResolution()参照以下内容实现:
- //
- MUINT32
- kd_MultiSensorGetResolution (
- MSDK_SENSOR_RESOLUTION_INFO_STRUCT *pSensorResolution[2])
- {
- MUINT32 ret = ERROR_NONE;
- u32 i = 0;
- MSDK_SENSOR_RESOLUTION_INFO_STRUCT *pBuff;
- u32 u32Length = 2 * sizeof(MSDK_SENSOR_RESOLUTION_INFO_STRUCT);
- pBuff = (MSDK_SENSOR_RESOLUTION_INFO_STRUCT *)kmalloc(u32Length, GFP_KERNEL);
- if (NULL == pBuff)
- {
- PK_DBG("[kd_MultiSensorGetResolution] ioctl allocate mem failed\n");
- ret = -ENOMEM;
- return ret;
- }
- memset(pBuff, 0, u32Length);
- KD_MULTI_FUNCTION_ENTRY();
- PK_INF("g_bEnableDriver[%d][%d]\n", g_bEnableDriver[0], g_bEnableDriver[1]);
- for (i = KDIMGSENSOR_INVOKE_DRIVER_0; i < KDIMGSENSOR_MAX_INVOKE_DRIVERS; i++)
- {
- if (g_bEnableDriver[i] && g_pInvokeSensorFunc[i])
- {
- if (DUAL_CAMERA_MAIN_SENSOR == g_invokeSocketIdx[i])
- {
- ret = g_pInvokeSensorFunc[i]->SensorGetResolution(pBuff);
- if (copy_to_user((void __user *)(pSensorResolution[0]) , (void *)pBuff ,
- sizeof(MSDK_SENSOR_RESOLUTION_INFO_STRUCT)))
- {
- printk("[CAMERA SENSOR] jeff ioctl copy to user failed\n");
- ret = -EFAULT;
- } }
- else if(DUAL_CAMERA_SUB_SENSOR==g_invokeSocketIdx[i])
- {
- ret = g_pInvokeSensorFunc[i]->SensorGetResolution(pBuff + 1);
- if (copy_to_user((void __user *)(uintptr_t)(pSensorResolution[1]), pBuff + 1,
- sizeof(MSDK_SENSOR_RESOLUTION_INFO_STRUCT)))
- {
- PK_DBG("[CAMERA SENSOR] jeff ioctl copy to user failed\n");
- ret = -EFAULT;
- } }
- if (NULL != pBuff)
- kfree(pBuff);
- if (ERROR_NONE != ret)
- {
- PK_ERR("[%s]\n", __func__);
- return ret;
- } } }
- KD_MULTI_FUNCTION_EXIT();
- return ERROR_NONE;
- }
[FAQ13479][Camera Tuning]CCT常见问题总结
[DESCRIPTION]
CCT常见问题总结
[SOLUTION]
issue反馈时自行检查如下项
§1、 请确认CCT版本和平台是否匹配?
2、 请确认连CCT的操作是否正确
3、 更换usb线,确认是否是由于usb线引起的
4、 如果担心是新旧版本的问题,请更换其他版本的CCT看是否可以连接
5、 是否可以进入meta mode ?
6、 如果连CCT时没有进入meta mode ,请确认meta tool 和sp hw_test tool 是否可以连接,如果可进入meta mode 界面则无需确认
issue反馈时需要提交的信息及抓log具体方法:
1.首先清空PC机C:\WM_META_DLL.log和BROM_DLL_V5.log
2.然后连接CCT作相关操作,复现问题,并告知操作步骤以及出现问题的时间点。
3.连线CCT的同时请打开两个cmdline,抓取kernellog和androidlog(也可以用GAT工具抓取)
4.Issue操作过程的视频,以及问题图片。
5.操作完毕后提供如下log:
C:\WM_META_DLL.log
C:\BROM_DLL_V5.log
Kernellog
Androidlog
简要介绍adb抓取log的步骤,仅供参考:
1.kernellogadbshell cat /proc/kmsg> d:\kerlog
kernellog在D盘下kerlog
2.androidlog adb shell logcat -v threadtime > D:\adrlog
androidlog在D盘下adrlog,且可以抓取 time 和 thread 信息
[Camera Tuning] CCT常见问题总结
1、 MT6582 LCCT 调试后save nvram有出现导出参数和原始参数一样,参数不生效或者重开机后修改参数不生
效
请打patch ALPS01896680 (ae awb 部分), ALPS01928784 ( ISP 部分)【SwVersion:ALPS.L0.MP2.V1】
2、 MT6592连CCT自动断开
请打patch ALPS01448642 【Sw Version: ALPS.KK1.MP1.V2.11】
3、 MT6752连接camera调试工具CCT勾选quick capture时,提示adb services is out of dataMt6752 CCT 在 “CCT6752v1.1441.02” 之後加入了Quick Capture, Quick Capture 勾起來, 表示使用 ADB 傳檔, 速度較快,只要是手机可以正常连adb的就支持quick capture ,【root cause】提示adb services is out of data的根本原因是多个adb.exe冲突【调试方法】如下:
方法1、如果adb是可以连接的,请替换掉cct中自带的adb.exe文件
方法2、 删除cct中自带的adb.exe文件
方法3 、 在硬盘中搜索adb.exe文件,然后找到所对应的应用程序,卸载该应用或者直接删除这个adb.exe即可
方法4、将adb.ext AdbWinApi.dll AdbWinUsbApi.dll 三只文件拷贝到C:\Windows\SysWOW64文件夹即可
4、 MT6595CCT 拍照之后就断开链接,即无法拍照
【Root cause】 flashlight导致CCT连接失败
遇到无法拍照时,首先,确认sensor driver 是否是我司验证过的,没有验证过的sensor可能会导致连CCT无法拍照。其次,如果在log中找到和flash相关的error,可以尝试将flash关掉看是否还会复现问题
5、 CCT 无法连接
5.1 CCT无法连接,可以进入meta mode,无法显示预览画面
log中若发现如下error,请在config.ftbl.<sensorname>.h 文件的previewsize中添加1280x720,问题解决E/AcdkMhalEng(215):{#939:mediatek/platform/mt6752/hardware/mtkcam/acdk/src/acdk/AcdkMhalEng.cpp}Err : Prv Size : 1280x720 is not supported. Try 640x480,【Root cause】找不到匹配的预览size导致无法连接,建议在修改config.ftbl.“sensorname”.h文件时,在不知道CCT previewsize是多大的情况下,先不要删除下面这5个size, 320x240,640x480,800x600,960x540,1280x720以免造成cct无法连接问题
5.2 MT6595无法连接CCT,会显示开机logo,没有显示meta mode【Root cause】 AF 有问题导致无法连接,遇到无法连接cct并且不能进入metamode此类问题可以先关掉AF,看是否还会复现问题。
5.3 MT6752版本, CCT无法连接,可以进入metamode,弹出对话框显示 Invalid input argument,CCT版本是CCT_v1.1444
方法1、更新CCT版本,新版本上已经修正这个问题
方法2、在MT6595_Android_CCT_Register_Definition.csv文件中,更改isp 的值
6、 MT8752平台 camera 连CCT工具拍照卡死
请打patch :ALPS.KK2.MP13.V1.27 【sw version: ALPS.KK2.MP13.V1.27】
7、 mt6735P &MT6735M 无法连接CCT
35M和35P code 已经移植到L1 branch,之前的L0 branch不再维护,请更新软件版本
【Root cause】:软件版本太旧,更新软件版本。
8、MT6735M电信版本使用35版本CCT,MT6735M非电信版本使用35M版本CCT.
MT6735P电信版本使用35版本CCT,MT6735P非电信版本使用35M版本CCT
MT6735和MT6753使用MT6735版本CCT.
MT6580使用35M版本CCT。
9、L版本CCT工具连接不上手机,出现general error
log中有 关键字avc: denied 则是权限问题导致的,请用QAAT扫描,会告知需要添加哪些权限
10、L版本连CCT后af不动,但不连CCT进camera后 af是可以动的
L版本需要对AF开通权限,在alps/device/mediatek/common/sepolicy/meta_tst.te中 添加对应AF的权限,例如FM50AF的权限是: allow meta_tstFM50AF_device:chr_file { read write ioctl open };
11、导入device info和aepline,在未修改任何值的情況下直接apply進手機的NVRAM,关机——再开机进camera會卡死
可以采取离线调试,并帮忙反馈提交CR
离线调试,cct不连手机,导入device info,导入aepline,点击mapping按钮,修改aepline,导出aepline,将导出的tuning参数文件替换到hal层参数下,build code。
12: MT6592版本 CCT工具调试USB CAM OV5648 连上之后不出来预览画面
请申请patch:ALPS01436842【Sw version:ALPS.KK1.MP1.V2.10】
13:MT6735M连CCT调shading出现拍照卡死,拍出图片为绿色
如果在log中有 ERROR: dequeueDstBuffer for vido fail,在每次拍照时请勾选common control 对话框中的bpc
14、MT6735M连CCT导入aepline后apply save会显示''ISP<1000''
请使用CCT6735Mv1.1516.01版本的 CCT 工具
15、push libcameracustom.so文件后,连不上CCT, Tool端显示general error,push前是可以连接的在log中有如下error:
E MtkCam/entry_mdk: [getModuleLib] dlopen: libacdk.so error=dlopen failed:
"libcameracustom.so" is 32-bit instead of 64-bit (getModuleLib)
【Root cause】调用libcameracustom.so时出现问题解决方法:
1、push时需要注意32和64bit 都要push也就是要,分别push到/system/lib和system/lib64
2、请确认libcameracustom.so是否正确
16、6735M、6795平台连cct后拍照卡死,或可以拍照拍下的图片是绿色
请使用最新的cct工具CCT6795v1.1520.01 、CCT6735Mv1.1520.01,并确保tuning参数中bpc和bnr同时开启以6795平台s5k3m2为例 、 tuning参数中bpc和bnr的开关如下:
在camera_isp_regs_s5k3m2mipiraw.h文件中
- BPC:{
- {set:{ // 00: profile = preview, sensor mode = preview, iso = 100
- 0x00000001,第0个bit位是bpc开关位
- NR1:{
- {set:{// 00: profile = preview, sensor mode = preview, iso = 100
- 0x00000010, 第1个bit位是bnr开关位
请申请Patch: ALPS01794118
使用adb命令的方式在正常开机环境下做flash 校准,步骤如下:
1. adb shell
2. setprop z.flash_ratio 1
3. 全黑环境下,请将手机固定,对着白墙10cm,固定。
4. 点击拍照,然后手机会自动打闪多次(其中不要任何人员靠近,避免影响光源)。
5. 手机停止拍照以后,存储空间内将生成eng_all.txt, eng_code.txt, fwb_code.txt等文件。
校准数据检查没问题后,
1.将eng_code.txt中的engTab数据合入到flash_tuning_custom_cct.cpp中的engTab数组中;
2.将fwb_code.txt中的数据合入到Camera_flash_awb_para_xxxxxx.h的Flash AWB Calibration数组中。
合入后重新编译即可生效。
18、连CCT后切换到ISP页面后卡死
如果WM_META_DLL.log中有如下error,则是hal层tuning参数有问题,用其他ok sensor的hal层参数整体替换。
ERROR: <0> META_YUSU_CCT_V2OPGetISPNVRAMData(token=213): META_YUSU_CCT_V2OPGetISPNVRAMDataBuf() failed!, datatype(53733508),
offset(0), length(0), cct_cnf.m_data(0x033074EC), recv_len(0), cct_cnf.m_data_len(29484). (wm_meta_cct_internal.cpp:17068)
06/09/15 11:54:06.722 WM_META_DLL[8020][308]: <---- META_YUSU_CCT_V2OPGetISPTuningData(): Leave ----- (WM_META_utility.cpp:985)
19、MT6580+CCT6735M 用CCT工具shading calibration后isp_regs的LSC register 参数不直观,无效位的随机值干扰
参数确认。
L1.MP3和L1.MP6请申请Patch id:ALPS02121776
20、 各平台打了patch后CCT无法调试awb, af参数, nvram无法save
L1.MP2 MT6752
9/3 ~ 10/8 Patch ALPS02274600 10/8 RDPatch
L1.MP3 MT6735/MT6753
L1.MP3.PPB MT6735/MT6753
9/22 ~ 10/19 Patch ALPS01794118 10/19
/vendor/mediatek/properetary/platform/MT6795/hardware/mtkcam/acdk/src/acdk
/AcdkMain.cpp MINT32 AcdkMain::init()
NvBufUtil::getInstance().setCctMode(0)
NvBufUtil::getInstance().setCctMode(1)
21、 MCCT
155477 01-01 00:10:48.535 200 269 D MtkCam/MtkCamUtils:
(269)[saveBufToFile] opening file [/data/proc__1640x1232_10_3]
155479 01-01 00:10:48.537 200 269 E MtkCam/MtkCamUtils:
(saveBufToFile){#148:vendor/mediatek/proprietary/hardware/mtkcam/legacy/v1
/common/camutils/CaMMIsc.cpp}(269)[saveBufToFile] failed to create file [/
data/proc__1640x1232_10_3]: Permission denied
155481 01-01 00:10:48.540 200 269 D MtkCam/CamAdapter: Raw saved: 0: /data
/proc__1640x1232_10_3
156233 01-01 00:10:48.889 200 282 E AcdkMain:
{#4630:vendor/mediatek/proprietary/hardware/mtkcam/legacy/platform/mt6580/
acdk/src/acdk/AcdkMain.cpp}Err : Can't open file to save image
156241 01-01 00:10:48.891 200 242 D AcdkMain: [takePicture_CameraDev] Save
Raw image file name:/data/proc__1640x1232_10_3
156247 01-01 00:10:48.892 200 242 E AcdkMain:
{#3617:vendor/mediatek/proprietary/hardware/mtkcam/legacy/platform/mt6580/
acdk/src/acdk/AcdkMain.cpp}Err : Can't open file to save image
:
1.alps\vendor\mediatek\proprietary\hardware\mtkcam\legacy\platform\xxxx\ac
dk\src\acdk
alps\vendor\mediatek\proprietary\hardware\mtkcam\legacy\platform\xxxx\acdk
\src\cct\calibration
alps\vendor\mediatek\proprietary\hardware\mtkcam\legacy\platform\xxxx\acdk
\src\surfaceview
acdk\src\acdk AcdkMain.cpp,AcdkMhalEng.cpp,AcdkMhalPure.cpp
acdk\src\cct\calibration cct_calibration.cppcct_imgtool.cpp
acdk\src\surfaceviewsurfaceView.cpp
:
#define MEDIA_PATH "//data" #define MEDIA_PATH "//sdcard"
#define MEDIA_PATH "/data" #define MEDIA_PATH "/sdcard"
2、AcdkMhalEng.cppset(map, "rawfname", "/data/");set(map, "rawfname", "/
sdcard/");
cct_calibration.cppsprintf(filename, "/data/Raw_%dx%d.raw",
m_u2RawImgWidth, m_u2RawImgHeight);
sprintf(filename, "/sdcard/Raw_%dx%d.raw", m_u2RawImgWidth,
m_u2RawImgHeight);
surfaceView.cppg_fp = fopen ("//data//prv.raw", "wb")
g_fp = fopen ("//sdcard//prv.raw", "wb");