
设备树配置启动HDR查阅include/uapi/linux/rk-camera-module.h在设备树中添加该配置rockchip,camera-hdr-mode 5;在gc2093驱动中添加打印信息定位是否启动生效烧写固件后确认设备树配置生效但是v4l2抓图会卡住发现会被rkaiq_3A_server 启动后覆盖掉了查阅rkaiq_3A_server源码发现默认配置并不支持切换场景。默认跑iq文件的normal源码路径:external/camera_engine_rkaiq/rkaiq_3A_server/rkaiq_3A_server.cpp由于使用iq文件只有hdr场景如下图所示修改rkaiq_3A_server.cpp 这里测试过imx415 iq是支持normal和hdr场景直接配置rkaiq_3A_server切换为hdr模式即可1、先使用rk_aiq_uapi2_sysctl_preInit_scene切换到hdr场景2、再使用rk_aiq_uapi2_sysctl_prepare这个是用于切换模式的。这里将场景固定为RK_AIQ_WORKING_MODE_ISP_HDR2static void init_engine(struct rkaiq_media_info *media_info) { int index; rk_aiq_working_mode_t work_mode RK_AIQ_WORKING_MODE_ISP_HDR2; if (work_mode){ rk_aiq_uapi2_sysctl_preInit_scene(media_info-sensor_entity_name, hdr,day); ERR(rkaiq engine prepare mode0x%x main_scene: hdr, sub_scene:day !\n,work_mode); } else{ rk_aiq_uapi2_sysctl_preInit_scene(media_info-sensor_entity_name, normal,day); ERR(rkaiq engine prepare mode0x%x main_scene: normal, sub_scene:day !\n,work_mode); } media_info-aiq_ctx rk_aiq_uapi2_sysctl_init(media_info-sensor_entity_name, IQ_PATH, NULL, NULL); /* 3A server has listened stream events already */ rk_aiq_uapi2_sysctl_setListenStrmStatus(media_info-aiq_ctx, false); if (has_mul_cam) rk_aiq_uapi2_sysctl_setMulCamConc(media_info-aiq_ctx, 1); if (rk_aiq_uapi2_sysctl_prepare(media_info-aiq_ctx, width, height, work_mode)) { ERR(rkaiq engine prepare failed !\n); exit(-1); } }修改后重新编译rkaiq_3a_server,再启动3a_server,成功启动hdr功能3、总结原厂指南也有这部分说明只是一句话带过具体需要以iq文件为准实现顺序是先切摄像头场景再切模式。