当前位置: 首页 > news >正文

OpenHarmony标准系统mipi摄像头适配

OpenHarmony标准系统mipi摄像头适配

本文档以rk3568为例,讲述如何在OpenHarmony 标准系统rk设备上适配mipi摄像头。

开发环境

  • OpenHarmony标准系统4.1r
  • rk3568设备
  • 摄像头ov5648,ov8858

文档约定:
4.1r_3568为OpenHarmony标准系统源码根目录

1.适配准备:得到一份完整的kernel代码

OpenHarmony标准系统4.1r使用的是kernel 5.10的内核,在此基线基础上,回合CVE补丁及OpenHarmony特性,作为OpenHarmony Common Kernel基线。针对不同的芯片,各厂商合入对应的板级驱动补丁,完成对OpenHarmony的基线适配。

image.png

首先得有一份完整的rk3568 kernel5.10代码。所以我们需要手动把4.1r_3568/kernel/linux/patches/linux-5.10/rk3568_patch/kernel.patch打进/4.1r_3568/kernel/linux/linux-5.10内核中

cd 4.1r_3568/kernel/linux/linux-5.10patch -p1 < /home/jiajiahao/OpenHarmony/4.1r_3568/kernel/linux/patches/linux-5.10/rk3568_patch/kernel.patch

2.然后注释掉/4.1r_3568/device/board/hihope/rk3568/kernel/build_kernel.sh中的patch -p1 < ${KERNEL_PATCH}

image.png

然后就可以在4.1r_3568/kernel/linux/linux-5.10中得到一份完整的rk3568 kernel 5.10代码,

2.DTS配置

本文档以触觉智能Purple Pi OH开源rk3566为例修改设备树源文件包含文件添加摄像头

  • 设备树相关的教程可以参考泰山派3566:https://wiki.lckfb.com/zh-hans/tspi-rk3566/project-case/fat-little-cell-phone/device-tree.html

查阅触觉智能Purple Pi OH开源rk3566的原理图

image.png

1.i2c4配置

image.png

2.mipi配置

image.png

3.isp配置

image.png

3.驱动添加

1.内核添加ov5648.c编译,4.1r_3568/kernel/linux/linux-5.10/drivers/media/i2c/ov5648.c

2.修改4.1r_3568/kernel/linux/linux-5.10/drivers/media/i2c/Makefile

obj-$(CONFIG_VIDEO_OV5648) += ov5648.o

3.修改4.1r_3568/kernel/linux/linux-5.10/drivers/media/i2c/Kconfig,添加OV5648配置

config VIDEO_OV5648tristate "OmniVision OV5648 sensor support"depends on I2C && VIDEO_V4L2depends on MEDIA_CAMERA_SUPPORThelpThis is a Video4Linux2 sensor driver for the OmniVisionOV5648 camera.To compile this driver as a module, choose M here: themodule will be called ov5648.

4.在4.1r_3568/kernel/linux/config/linux-5.10/rk3568/arch/arm64_defconfig中添加配置

CONFIG_VIDEO_OV5648=y

4.修改iq文件

需要添加ov5648的iq文件到OpenHarmony,修复画面的偏绿问题。有两种方法:

方法1:第一修改源码,随着固件编译,
修改device/soc/rockchip/rk3568/hardware/isp/etc/iqfil.json的内容为ov5648_LMM248_YXC-M804A2.json的内容。然后添加ov5648_LMM248_YXC-M804A2.json到/device/soc/rockchip/rk3568/hardware/isp/etc/iqfiles目录下,然后修改device/soc/rockchip/rk3568/hardware/isp/BUILD.gn,将文件随着固件打包。

image.png

方法2:直接推到板子上(测试的时候可以使用),烧录好固件后,进入板子,将板子的vendor/etc/iqfiles/iqfil.json内容替换为ov5648_LMM248_YXC-M804A2.json的内容

5.安装调试hap

安装调试用的摄像头hap,MultiMedia_api9.hap

  • https://gitee.com/openharmony/applications_app_samples/tree/master/code/Solutions/Media/MultiMedia

6.最后效果

image.png

参考文档

1.https://forums.openharmony.cn/forum.php?mod=viewthread&tid=617

相关文章:

  • EchartJs报表展示
  • 【HarmonyOS】深入理解@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化
  • 403高效绕过目录扫描工具
  • 《C++魔法:零开销实现抽象工厂模式》
  • ES数据的删除与备份
  • 2024年研究生数学建模“华为杯”E题——肘部法则、k-means聚类、目标检测(python)、ARIMA、逻辑回归、混淆矩阵(附:目标检测代码)
  • 微服务注册中⼼1
  • springboot实战学习(7)(JWT令牌的组成、JWT令牌的使用与验证)
  • Playerprefer类中的方法
  • 【Kubernetes】日志平台EFK+Logstash+Kafka【实战】
  • Vue引入js脚本问题记录(附解决办法)
  • 数据库 - MySQL数据查询
  • ❤Node11-登录人token信息接口
  • 页面禁用鼠标右键属于反爬虫措施吗 ?
  • Python--操作列表
  • 78. Subsets
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • docker-consul
  • Druid 在有赞的实践
  • in typeof instanceof ===这些运算符有什么作用
  • Java IO学习笔记一
  • Java 最常见的 200+ 面试题:面试必备
  • javascript数组去重/查找/插入/删除
  • JavaScript中的对象个人分享
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Python学习之路16-使用API
  • SAP云平台里Global Account和Sub Account的关系
  • Spring Cloud中负载均衡器概览
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 关于 Cirru Editor 存储格式
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 嵌入式文件系统
  • 使用agvtool更改app version/build
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 微服务入门【系列视频课程】
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ​ArcGIS Pro 如何批量删除字段
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • # Kafka_深入探秘者(2):kafka 生产者
  • #{}和${}的区别?
  • (3)(3.5) 遥测无线电区域条例
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (九)信息融合方式简介
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (四)鸿鹄云架构一服务注册中心
  • (学习日记)2024.01.09
  • (转)菜鸟学数据库(三)——存储过程
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • ******IT公司面试题汇总+优秀技术博客汇总