android camera驱动调试--抓图分析

发布时间 2023-12-18 19:35:20作者: 陈昌雄

之前太忙了,挺长一段时间没有写博客, 都写在有道云笔记了,最近抽空梳理一下,好好记录一下

 

前面已经写了怎么调试摄像头,如果能驱动加载正常,接下来就是抓图

之前的参考内容 

https://www.cnblogs.com/ChenChangXiong/p/14919931.html
抓图命令
 
v4l2-ctl -d /dev/video0 --set-fmt-video=width=2592,height=1944,pixelformat=BG10 --stream-mmap=3 --stream-skip=10 --stream-to=/sdcard/gc5035.raw --stream-count=1 --stream-poll
根据自己的分辨率,设备节点选择正确的命令
 
 
 
如果抓图提示mipi 错误 降低摄像头驱动中mipi频率即可
 
抓出来的是raw图 需要使用raw工具显
我这里使用的是imageJ,也可以网上可以直接,

 

 

出现了图像颠倒,可以使用3个方法解决颠倒问题

1. 修改驱动寄存器 mirror -- 上层不能修改的情况下修改

这个看规格书是哪个寄存器,或者问供应商fae。在驱动中可以直接修改

2. 修改xml

<sensor.orientation value="0"/>

3. 上层旋转

 

到这里,驱动已经全部完成调试工作

 

修改profiles.xml
 
因为最终会从camera3_profiles.xml中获取,而camera3_profiles.xml就是从camera3_profiles_rk356x.xml复制来的
 
查看hardware/rockchip/camera/etc/camera_etc.mk

 

所以我需要修改camera3_profiles_rk356x.xml,在camera3_profiles_rk356x.xml中增加这个节点就可以,如下
 
 <Profiles cameraId="1" name="ov8858" moduleId="m01">
 名字要和驱动中的名字一致
 
就是分辨率的修改,改为和驱动中也就是摄像头分辨率一致,到这里,基本上相机就可以正常打开了
 
 
注意,我的T18r之前一直打不开,修改这个SOC正常了
 
<sensorType value="SENSOR_TYPE_SOC"/> <!-- SENSOR_TYPE_SOC or SENSOR_TYPE_RAW -->
 
 
rk3566的效果文件在
external/camera_engine_rkaiq/iqfiles/isp21/xxxx.json
 
录像文件在
device/rockchip/rk356x/rk3566_eink/media_profiles_default.xml

xml文件中包括 是否支持flash 分辨率 前后摄 等很多信息,很重要

查看链路
media-ctl -d /dev/media0~4 -p

 

到这里,效果文件没有错,名字能找到,上层正常来说,就可以打开相机了