增加驱动及配置到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/