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

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.10

patch -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_OV5648
    tristate "OmniVision OV5648 sensor support"
    depends on I2C && VIDEO_V4L2
    depends on MEDIA_CAMERA_SUPPORT
    help
      This is a Video4Linux2 sensor driver for the OmniVision
      OV5648 camera.

      To compile this driver as a module, choose M here: the
      module 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


http://www.kler.cn/a/321118.html

相关文章:

  • WSL与Ubuntu系统--使用Linux
  • ZooKeeper单机、集群模式搭建教程
  • 【Docker】Mac安装Docker Desktop导致磁盘剩余空间较少问题如何解决?
  • C++清除所有输出【DEV-C++】所有编辑器通用 | 算法基础NO.1
  • 三:网络为什么要分层:OSI模型与TCP/IP模型
  • 使用 VS Code 远程连接时解决 OpenSSL 版本不匹配及权限问题
  • IIS+Ngnix+Tomcat 部署网站 用IIS实现反向代理
  • Vercel部署/前端部署
  • HarmonyOS面试题(持续更新中)
  • VSCode调试Unity准备工作
  • CKF的改进思路,SVDCKF,LSTMCKF,BPCKF,SVMCKF,自适应抗差CKF
  • 微信小程序. tarojs webView的 onload 事件不触发
  • 二分图算法模板以及简单应用
  • 电气自动化入门03:安全用电
  • 那年我双手插兜,使用IPv6+DDNS动态域名解析访问NAS
  • 数据清洗与数据治理的关系
  • 科研绘图系列:R语言树结构聚类热图(cluster heatmap)
  • NLP基础1
  • PostgreSQL 的log_hostname 参数测试
  • 搭建cdh集群及问题处理
  • HandlerInterceptor这个类有什么作用?
  • 基于JAVA+SpringBoot+Vue的健身房管理系统1
  • Redis Sorted Set 跳表的实现原理和分析
  • 数据结构升华部分:排序与字符串匹配算法应用
  • 产品经理面试整理-练习常见面试问题
  • 【Linux】Linux 的 权限