android camera驱动调试--抓图分析
之前太忙了,挺长一段时间没有写博客, 都写在有道云笔记了,最近抽空梳理一下,好好记录一下
前面已经写了怎么调试摄像头,如果能驱动加载正常,接下来就是抓图
之前的参考内容
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
到这里,效果文件没有错,名字能找到,上层正常来说,就可以打开相机了