【qcom Android camera调试纪要】

1、平台适配
1.1、kernel端

​ kernel主要做camera的io,power,mipi等dts配置即可,主要完成video,sensor等设备节点驱动的注册,关于camera硬件参数的配置,具体的camera型号驱动在vendor中进行实现。

1.2、vendor端

​ 目前高通的camera的vendor中包括了camera的驱动,具体参数配置,驱动马达,eeprom,3a,isp等。

1.2.1、cameraService lib代码

路径:vendor\qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\sensor\libs\imx350

​ 以imx350为例,cameraService lib代码存放在上述路径中,当我们执行mm后,该代码将会编译为lib共给上层camera的service使用,具体表现为Android.mk中LOCAL_MODULE := libmmcamera_imx350可知。

注意:需要在vendor\qcom\proprietary\common\config\device-vendor.mk中添加需要将当前的camera service lib加入到系统的编译路径中。
1.2.2、camera Chromatix效果参数

chromatix为camera的3a,isp等出图的配置效果文件,它将会编译为多等lib提供给上层进行isp,3a等参数的调整。

vendor\qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\chromatix\0310\chromatix_imx350_sunny\Android.mk中配置可知,

LOCAL_MODULE := libchromatix_imx350_sunny_default_preview_3a
LOCAL_MODULE := libchromatix_imx350_sunny_default_video_3a
LOCAL_MODULE := libchromatix_imx350_sunny_hfr_120_3a
LOCAL_MODULE := libchromatix_imx350_sunny_hfr_60_3a
LOCAL_MODULE := libchromatix_imx350_sunny_hfr_90_3a
LOCAL_MODULE := libchromatix_imx350_sunny_zsl_preview_3a
LOCAL_MODULE := libchromatix_imx350_sunny_zsl_video_3a

注意:该chromatix效果参数需要在vendor\qcom\proprietary\common\config\device-vendor.mk 进行添加进入系统配置。

在chromatix中,可能存在多个分支,具体系统使用那一份分支将由CHROMATIX_VERSION来决定,定义在

vendor\qcom\proprietary\mm-camera\Android.mk

ifeq ( ( B U I L D S E R V E R ) , t r u e ) C H R O M A T I X V E R S I O N : = 0208 e l s e i f e q ( (BUILD_SERVER), true) CHROMATIX_VERSION := 0208 else ifeq ( (BUILDSERVER),true)CHROMATIXVERSION:=0208elseifeq((BUILD_MM_CAMERA2), true)
ifeq ( ( O E M C H R O M A T I X 0 308 ) , 1 ) C H R O M A T I X V E R S I O N : = 0308 E e l s e i f e q ( (OEM_CHROMATIX_0308), 1) CHROMATIX_VERSION := 0308E else ifeq ( (OEMCHROMATIX0308),1)CHROMATIXVERSION:=0308Eelseifeq((call is-board-platform-in-list,sdm660 msm8998),true)
CHROMATIX_VERSION := 0310
else
CHROMATIX_VERSION := 0309
endif
endif

ifeq ($(OEM_CHROMATIX_0310), 1)
OEM_CHROMATIX:=true
endif

ifeq ($(OEM_CHROMATIX), true)
LOCAL_CHROMATIX_PATH := ( L O C A L P A T H ) / . . / m m − c a m e r a − e x t / m m − c a m e r a s d k / s e n s o r / i n c l u d e s / (LOCAL_PATH)/../mm-camera-ext/mm-camerasdk/sensor/includes/ (LOCALPATH)/../mmcameraext/mmcamerasdk/sensor/includes/(CHROMATIX_VERSION)
LOCAL_EXTEN_ISP_INCLUDES := $(LOCAL_PATH)/…/mm-camera-ext/mm-camera2/media-controller/modules/isp2/
LOCAL_EXTEN_PPROC_INCLUDES := $(LOCAL_PATH)/…/mm-camera-ext/mm-camera2/media-controller/modules/pproc-new/cpp/
LOCAL_EXTEN_CHROMATIX_FILE_PATH := ( L O C A L P A T H ) / . . / m m − c a m e r a − e x t / m m − c a m e r a 2 / m e d i a − c o n t r o l l e r / m o d u l e s / s e n s o r s / c h r o m a t i x / (LOCAL_PATH)/../mm-camera-ext/mm-camera2/media-controller/modules/sensors/chromatix/ (LOCALPATH)/../mmcameraext/mmcamera2/mediacontroller/modules/sensors/chromatix/(CHROMATIX_VERSION)
else
LOCAL_CHROMATIX_PATH := ( L O C A L P A T H ) / . . / m m − c a m e r a s d k / s e n s o r / i n c l u d e s / (LOCAL_PATH)/../mm-camerasdk/sensor/includes/ (LOCALPATH)/../mmcamerasdk/sensor/includes/(CHROMATIX_VERSION)
LOCAL_EXTEN_CHROMATIX_FILE_PATH := ( L O C A L P A T H ) / m m − c a m e r a 2 / m e d i a − c o n t r o l l e r / m o d u l e s / s e n s o r s / c h r o m a t i x / (LOCAL_PATH)/mm-camera2/media-controller/modules/sensors/chromatix/ (LOCALPATH)/mmcamera2/mediacontroller/modules/sensors/chromatix/(CHROMATIX_VERSION)
endif

1.2.3、Sensor Config xml文件配置

qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\config\Android.mk

qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\config\imx350_suny.xml

qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\config\sdm660_camera.xml

1.2.3.1、imx350_suny.xml配置

该配置文件主要提供了系统使用的chromatix的模块名字。

imx350_sunny_postproc imx350_sunny_common imx350_sunny_snapshot imx350_sunny_snapshot imx350_sunny_default_video imx350_sunny_cpp_preview imx350_sunny_cpp_snapshot imx350_sunny_cpp_video imx350_sunny_cpp_liveshot imx350_sunny_zsl_preview_3a imx350_sunny_zsl_video_3a imx350_sunny_common_oz imx350_sunny_oz_preview imx350_sunny_oz_snapshot imx350_sunny_oz_preview imx350_sunny_cpp_oz_preview imx350_sunny_cpp_oz_snapshot imx350_sunny_cpp_oz_preview imx350_sunny_cpp_liveshot imx350_sunny_oz_preview_3a imx350_sunny_oz_preview_3a imx350_sunny_common_bining imx350_sunny_preview imx350_sunny_snapshot imx350_sunny_default_video imx350_sunny_cpp_preview imx350_sunny_cpp_snapshot imx350_sunny_cpp_video imx350_sunny_cpp_liveshot imx350_sunny_default_preview_3a imx350_sunny_default_video_3a imx350_sunny_common_bining imx350_sunny_preview_bokeh imx350_sunny_preview_bokeh imx350_sunny_default_video imx350_sunny_cpp_preview imx350_sunny_cpp_snapshot imx350_sunny_cpp_video imx350_sunny_cpp_liveshot imx350_sunny_default_preview_3a imx350_sunny_default_video_3a imx350_sunny_common imx350_sunny_hfr_90 imx350_sunny_hfr_90 imx350_sunny_hfr_90 imx350_sunny_cpp_hfr_90 imx350_sunny_cpp_hfr_90 imx350_sunny_cpp_hfr_90 imx350_sunny_cpp_liveshot imx350_sunny_hfr_90_3a imx350_sunny_hfr_90_3a imx350_sunny_common imx350_sunny_hfr_120 imx350_sunny_hfr_120 imx350_sunny_hfr_120 imx350_sunny_cpp_hfr_120 imx350_sunny_cpp_hfr_120 imx350_sunny_cpp_hfr_120 imx350_sunny_cpp_liveshot imx350_sunny_hfr_120_3a imx350_sunny_hfr_120_3a
1.2.3.2、sdm660_camera.xml配置
该文件配置路径在:qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\config\sdm660_camera.xml下,主要提供系统支持使用的chromatix,csi,eeprom sensorlib等详细的配置----非常重要的配置文件。
0 // camera id =0,注意和 dts 中 cell-index 一致 imx362 // sensor name , 这个名字用来找到对应的 sensor lib 库,所以不能错了 ak7374 // lens name ,用来找到对应的马达驱动 sony_imx362 // eeprom name, 用来找到对应的eeprom驱动 imx362_chromatix // chromatix name,用来找到对应的效果文件 pmic // flashlight name, 用来找到 mm-camera2\media-controller\modules\sensors\flash\libs 下面对应的库 1 BACK // 后摄 90 // 旋转90度,注意和 dts 中配置的一样 0 // CS 0 0x1F // 4 lane 和 1 clk 同时使能 0x4320 0 // 马达相关的参数,具体看模组 sepc 3.94 1.9 4.64 70.4 55.7 0.1 1 // camera id =1 imx350 dw9800 sony_imx350 imx350_chromatix 1 BACK_AUX // 后二摄 90 1 // CS 1 0x1F 0x4320 0 5.3 2.6 5.0 51.4 40.0 0.3 2 // camera id =2 s5k4h7yx holitech_s5k4h7yx s5k4h7yx_chromatix 1 FRONT // 前摄 270 // 旋转270度 2 // CS2 0x1F 0x4320 0 // 马达相关参数 2.47 2.0 1.9 63.84 47.88 0.1
1.2.3.3、sensors_configs_Android.mk配置

​ 主要是platform级别的配置,系统级别的camer xml配置参数。

1.2.4、camera马达的lib文件配置

​ 在前面的sdm660_camera.xml配置文档中,就进行了指定马达的name的型号,如上:

<ActuatorName>ak7374</ActuatorName><ActuatorName>dw9800</ActuatorName>这两种马达。

马达的lib路径为:vendor\qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\actuator\libs

需要将马达的配置页导入到系统的编译配置中。

vendor\qcom\proprietary\common\config\device-vendor.mk

加入:

MM_CAMERA += libactuator_dw9800`
MM_CAMERA += libactuator_ak7374

1.2.5、闪光灯的配置

在前面sdm660_camera.xml中,可以看出flashlight 使用的是默认的 <FlashName>pmic</FlashName>驱动。

驱动代码路径为:vendor\qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\flash\libs\pmic

同时也需要将其加入到系统的编译路径下:

vendor\qcom\proprietary\common\config\device-vendor.mk加入:

MM_CAMERA += libmmcamera_sony_imx350_eeprom

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值