OpenHarmony 标准系统 mipi 摄像头适配

166 阅读2分钟

往期推文全新看点(文中附带全新鸿蒙5.0全栈学习笔录)

鸿蒙应用开发与鸿蒙系统开发哪个更有前景?

嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~

对于大前端开发来说,转鸿蒙开发究竟是福还是祸?

鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?

记录一场鸿蒙开发岗位面试经历~

持续更新中……

本文档以 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 的基线适配。

首先得有一份完整的 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}

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

2.DTS 配置

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

1.i2c4 配置

2.mipi 配置

3.isp 配置

DD一下:欢迎大家关注公众号<程序猿百晓生>,可以了解到以下知识点。

`欢迎大家关注公众号<程序猿百晓生>,可以了解到以下知识点。`
1.OpenHarmony开发基础
2.OpenHarmony北向开发环境搭建
3.鸿蒙南向开发环境的搭建
4.鸿蒙生态应用开发白皮书V2.0 & V3.0
5.鸿蒙开发面试真题(含参考答案) 
6.TypeScript入门学习手册
7.OpenHarmony 经典面试题(含参考答案)
8.OpenHarmony设备开发入门【最新版】
9.沉浸式剖析OpenHarmony源代码
10.系统定制指南
11.【OpenHarmony】Uboot 驱动加载流程
12.OpenHarmony构建系统--GN与子系统、部件、模块详解
13.ohos开机init启动流程
14.鸿蒙版性能优化指南
.......

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,将文件随着固件打包。

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

5.安装调试 hap

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

6.最后效果