MTK平台新增摄像头指南 — 已更新android 7.0路径的更改。


增加驱动及配置到Kernel 层:

  • 增加驱动文件夹到如下目录:
mediatek\custom\common\kernel\imgsensor\
mediatek\custom\mt6582[mt8127]\kernel\imgsensor\
mediatek\custom\[project]\kernel\imgsensor\
//说明:
//优先级:[project]/mt6582/mt8127 /common
//建议增加时:yuv 放到 common ,raw 放到:mt6582/mt8127.
//驱动文件夹命名规则为:品牌+型号+ _ +yuv/raw
  • 增加可选摄像头到mediatek\custom\common\kernel\imgsensor\src\kd_sensorlist.h,修改内容如下:

a. 申明摄像头初始化函数, 注意此函数在摄像头驱动文件中实现,注意检查是否一致,如下增加gc0312摄像头为例。

UINT32 GC0312_YUV_SensorInit(PSENSOR_FUNCTION_STRUCT *pfFunc);

b. 增加摄像头到 camera List(此处宏定义可在 ProjectConfig.mk 文件中找到并对应即可编译此摄像头)

#if defined(GC0312_YUV)
    {GC0312_SENSOR_ID, SENSOR_DRVNAME_GC0312_YUV, GC0312_YUV_SensorInit},
#endif
  • 配置摄像的检测的参数,修改 mediatek\custom\common\kernel\imgsensor\inc\kd_imgsensor.h增加sensor name 和sensor id的定义
#define GC0312_SENSOR_ID                        0xb310
#define SENSOR_DRVNAME_GC0312_YUV               "gc0312yuv"
  • 修改上电文件保证摄像头上电:mediatek\custom\[project]\kernel\camera\camera\kd_camera_hw.c
    根据实际情况调节上电电压和方式。


增加驱动及配置到HAL 层:

  • 增加驱动文件夹到目录:
mediatek\custom\common\hal\imgsensor\
mediatek\custom\mt6582[mt8127]\hal\imgsensor\
mediatek\custom\[project]\hal\imgsensor\
//优先级:[project] > mt6582/mt8127 > common
//建议增加时:yuv 放到 common ,raw 放到:mt6582/mt8127.
//驱动文件夹命名规则为:品牌+型号+ _ +yuv/raw
  • 增加可选摄像头到文件:mediatek\custom\common\hal\imgsensor\src\sensorlist.cpp
#if defined(GC0312_YUV)
    YUV_INFO(GC0312_SENSOR_ID, SENSOR_DRVNAME_GC0312_YUV, NULL),
#endif

注:在 kdSensorList 和 SensorList 里面添加驱动的时候要注意,Sensor 添加的位置要一样。否则驱动会跑乱,轻则 ISP 参数不对,重则 Sensor 无法启动。


到此添加设备到系统已经内容完毕,但编译测试之前需要对 ProjectConfig.mk 进行配置,

打开对应工程的 ProjectConfig.mk 文件,具体路径为:mediatek\config\[project]\ProjectConfig.mk
将对应的文件夹的名字拷贝到等号后面。

Kernel 部分:
CUSTOM_KERNEL_IMGSENSOR =
后置摄像头: CUSTOM_KERNEL_MAIN_IMGSENSOR =
前置摄像头: CUSTOM_KERNEL_SUB_IMGSENSOR =

HAL 部分:
CUSTOM_HAL_IMGSENSOR =
后置摄像头: CUSTOM_HAL_MAIN_IMGSENSOR =
前置摄像头: CUSTOM_HAL_SUB_IMGSENSOR =

注:摄像头的数量不超过 16 个,否则多余的不可识别。

关于编译:

增加或者修改内核部分,编译时:
./mk -o=TARGET_BUILD_VARIANT=user [project] n k bootimg

修改 HAL 层,编译时:
./mk -o=TARGET_BUILD_VARIANT=user [project] mm mediatek/platform/mt6582[mt8127]/hardware/mtkcam/

注,为保证编译有效,编译前需要删除如下文件夹的内容:
out\target\product\[project]\obj\CUSTGEN\custom\hal\imgsensor
out\target\product\[project]\obj\CUSTGEN\custom\kernel\imgsensor


android 7.0 路径的变化

# 增加了kernel和hal同步的kd_imgsensor.h
device/mediatek/common/kernel-headers/kd_imgsensor.h

# kernel 驱动文件位置的更新
kernel-3.18/drivers/misc/mediatek/imgsensor/

#kernel上电文件位置的更新
kernel-3.18/drivers/misc/mediatek/imgsensor/src/mt8163/camera_hw/

# hal 驱动文件的位置的更新
vendor/mediatek/proprietary/custom/mt8163/hal/imgsensor/

# hal层调整摄像头方向等参数文件的更新
vendor/mediatek/proprietary/custom/mt8163/hal/sendepfeature/

《MTK平台新增摄像头指南 — 已更新android 7.0路径的更改。》有1个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注