高通相机调试命令和记录

本文介绍了高通相机调试的多种命令和记录方法。包括开启相机log、调整AE、手动推lens等操作的命令,还涉及offlinelog的生成、合并,Systrace的抓取,以及内存、ION使用情况查看等。此外,还提及了调试记录、性能参数查看和编译相关内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开启相机log
adb root
adb shell setprop persist.vendor.camera.logInfoMask 0x1C080
adb shell setprop persist.vendor.camera.logVerboseMask 0x1C080
adb shell setprop persist.vendor.camera.logWarningMask 0xFFFFFFFF
adb shell setprop vendor.debug.camera.overrideLogLevels 0x1F
adb shell pkill provider*

adb shell logcat -G 256M
adb shell logcat –v threadtime -b main -b kernel -b crash > log.txt

vendor/qcom/proprietary/camx/src/utils/camxtypes.h


调整AE
adb root
adb shell setprop vendor.debug.camera.aelock.enable 1
adb shell setprop vendor.debug.camera.aelock.longgain 1
adb shell setprop vendor.debug.camera.aelock.safegain 1
adb shell setprop vendor.debug.camera.aelock.shortgain 1
adb shell setprop vendor.debug.camera.aelock.longexptime 120000
adb shell setprop vendor.debug.camera.aelock.safeexptime 120000
adb shell setprop vendor.debug.camera.aelock.shortexptime 120000

手动推lens
adb shell setprop vendor.debug.camera.af.manual 1
adb shell setprop vendor.debug.camera.af.ctrl.lenspos 900

开启PDAF log
adb shell setprop persist.vendor.camera.pdaf_logging 1

关闭MCTF
adb shell setprop persist.vendor.camera.enablemctf 0

开启 SOF, EOF, SOT, EOT IRQs log
adb shell “echo 0xf > /sys/kernel/debug/camera_ife/ife_csid_debug”
adb shell “echo 0xf > /sys/kernel/debug/camera_tfe/tfe_csid_debug”

hal收到数据的log
V4L_EVENT_CAM_REQ_MGR_SOF

offlinelog
生成的手机目录为:data/vendor/camera/offlinelog

开启offlineLog方法:
adb shell “echo enableAsciiLogging=1 >> vendor/etc/camera/camxoverridesettings.txt”

将offlinelog进行合并方法:一个python脚本,位于
vendor/qcom/proprietary/chi-cdk/tools/binary_log
merge_text_logs.py,通过-o参数指定输出文件目录,-d参数指定offlinelog的本地目录

Systrace的抓取
抓取脚本在安卓源码路径:external/chromium-trace/systrace.py
python systrace.py -o ~/systrace.html
python systrace.py --time=5 -o ~/systrace.html
python systrace.py --time=5 -o ~/trace.html sched gfx view wm

python systrace.py gfx input view sched am wm dalvik freq idle load sync workq power mmc disk –b 40000 –t 5 -o systrace.html
python systrace.py gfx sched am wm dalvik freq idle load sync workq power mmc disk camera hal res membus –b 40000 –t 10 -o output.html
python systrace.py gfx sched am wm dalvik freq idle load sync workq power mmc disk video audio hal res membus –b 40000 –t 10 -o output.html

1  sched    CPU Scheduling
2  freq     CPU frequency
3  load     CPU load
4  power    MSM power status
5  gfx      Graphics
6  input    Input
7  wm       Window Manager
8  am       Activity Manager 
9  view     View
10 dalvik   Dalvik VM (until KitKat release


内存
adb shell dumpsys meminfo PID
adb shell pmap -x PID
adb shell cat /proc/PID/smap

ION:
1、使用情况:adb shell cat /sys/kernel/debug/dma_buf/bufinfo

2、adb shell
cd /sys/kernel/debug/dma_buf
lsof | grep dma

3、各进程ion使用:adb shell cat /sys/kernel/debug/dma_buf/dmaprocs

4、开启ion的trace log:echo 1 > /sys/kernel/debug/tracing/events/ion/enable

5、log配置:
logInfoMask=0x20
enableMemoryStats=TRUE

sof freeze调试
UMD offline log and KMD log with following command
adb shell “echo 0x3 > /sys/kernel/debug/camera_ife/ife_csid_debug”
adb shell ‘echo 0x18 > /sys/module/cam_debug_util/parameters/debug_mdl’

Please boost IFE CLK with the command to see if this issue improved:
(1) Increase IFE CLK
adb shell “echo ifeClockFrequencyMHz=0xffffffff >> /vendor/etc/camera/camxoverridesettings.txt”
(2) Increase BW
adb shell “echo ifeCamnocBandwidthMBytes=0xFFFFFFFF >> /vendor/etc/camera/camxoverridesettings.txt”
adb shell “echo ifeExternalBandwidthMBytes=0xFFFFFFFF >> /vendor/etc/camera/camxoverridesettings.txt”"

区分效果参数
FillTuningModeData
vendor/qcom/proprietary/chi-cdk/core/chiutils/chxtils.cpp

解析symbol文件
项目中的addr2line路径:
prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin

aarch64-linux-android-addr2line -Cfe symbols/vendor/lib64/xxx.so 0000001294

调试记录
打印进程的backtrace:
adb shell “debuggerd -b `pidof android.hardware.camera.provider@2.4-service_64`”

获取camera数量:
frameworks/av/camera/CameraBase.cpp
getNumberOfCameras()

API1 过滤尺寸:
frameworks/av/services/camera/libcameraservice/api1/client2/Parameters.cpp
KEY_SUPPORTED_PREVIEW_SIZES
status_t Parameters::initialize(CameraDeviceBase *device, int deviceVersion) {

Gpu工作频率:
adb shell cat /sys/class/kgsl/kgsl-3d0/gpuclk
adb shell cat /sys/class/kgsl/kgsl-3d0/devfreq/cur_freq

Gpu最大、最小工作频率:
adb shell cat /sys/class/kgsl/kgsl-3d0/devfreq/max_freq
adb shell cat /sys/class/kgsl/kgsl-3d0/devfreq/min_freq

Gpu可用频率:
adb shell cat /sys/class/kgsl/kgsl-3d0/gpu_available_frequencies
adb shell cat /sys/class/kgsl/kgsl-3d0/devfreq/available_frequencies

CPU当前频率:
adb shell cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq

CPU性能模式:
adb shell “echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor”

CPU调度模式:
adb shell “echo schedutil > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor”

运行时查看MCLK:
adb shell cat sys/kernel/debug/clk/gcc_camss_mclk0_clk/measure

编译相机bin文件:
python buildbins.py --yaml-file-name=buildbins_xxx.yaml

编译单独库:
make com.qti.feature2.rt com.qti.feature2.generic com.qti.feature2.gs com.qti.chi.override -j8 2>&1 | tee build.log

编译骁龙相机:
cd vendor/codeaurora/packages/apps/SnapdragonCamera
mm

修改git编辑器 和 提交模板文件
git config core.editor “vim”
git config --global commit.template ~/CommitLog
 

内容概要:本文档详细介绍了ChiFeature2系统架构及其各个组件的功能与交互方式。ChiFeature2系统主要用于图像处理相机控制,涵盖了从请求创建、特征图(FeatureGraph)管理、数据流处理到最终输出的一系列流程。文档列举了多个关键的数据结构如ChiFeature2AnchorFrameSelectionData、ChiFeature2PortBufferInfo等,它们用于配置管理图像处理任务的各种参数。此外,还定义了不同类型的回调函数接口,确保系统的灵活性可扩展性。ChiFeature2系统不仅支持单摄像头操作,还能处理多摄像头环境下的复杂场景,包括实时视频流处理、HDR合成等功能。 适合人群:具有图像处理或嵌入式系统开发经验的专业人士,尤其是从事移动设备或智能硬件中相机模块开发的技术人员。 使用场景及目标:适用于需要深入了解Android系统底层相机框架的人群,帮助开发者掌握如何利用ChiFeature2系统优化图像质量、提高处理效率以及实现特定视觉效果。具体应用场景包括但不限于:自定义相机应用开发、增强现实技术研究、计算机视觉项目实施等。 其他说明:文档内容较为专业技术化,涉及大量API内部机制细节。对于初学者来说可能具有一定难度,建议先熟悉基本概念后再深入学习。同时,由于该系统不断更新迭代,实际开发时应参考最新版本的官方文档以获得最准确的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值