20251015给荣品的PRO-RK3566开发板在buildroot下打开ov5645【只配置编译了】
20251015给荣品的PRO-RK3566开发板在buildroot下打开ov5645【只配置编译了】
2025/10/15 16:11
缘起:在飞凌OK3588-C的Linux R4【Linux5.10.66+ Qt5.15.2】上使用订制版本的OV5645这颗摄像头。
由于屏蔽了众多的I2C读写,众多的变量ret就没有使用了!。
没有想到搬家到荣品的PRO-RK3566的Linux上编译不过!
【Buildroot的内核版本5.10.198】
解决方法:在kernel的Makefile文件中加入-Wno-error忽略这个错误!
【当然,你也可以一个一个的干掉没有使用的ret等变量了!】
Y:\PRO-BOX-rk3568source20250911\kernel\Makefile
KBUILD_CFLAGS := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \
-fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \
-Werror=implicit-function-declaration -Werror=implicit-int \
-Werror=return-type -Wno-format-security \
-std=gnu89 \
-Wno-error \
-w
1、修改配置文件rockchip_linux_defconfig,在编译的时候通知内核需要编译ov5645.c这个驱动文件:
Y:\PRO-BOX-rk3568source20250911\kernel\arch\arm64\configs\rockchip_linux_defconfig
CONFIG_VIDEO_RK628_CSI=y
CONFIG_VIDEO_RK628_BT1120=y
CONFIG_VIDEO_TC35874X=y
CONFIG_VIDEO_RK_IRCUT=y
CONFIG_VIDEO_GC2093=y
CONFIG_VIDEO_GC8034=y
CONFIG_VIDEO_IMX334=y
CONFIG_VIDEO_IMX415=y
CONFIG_VIDEO_IMX464=y
CONFIG_VIDEO_OS04A10=y
CONFIG_VIDEO_OV4689=y
CONFIG_VIDEO_OV50C40=y
CONFIG_VIDEO_OV5695=y
CONFIG_VIDEO_OV7251=y
CONFIG_VIDEO_OV13850=y
CONFIG_VIDEO_OV13855=y
CONFIG_VIDEO_DW9763=y
CONFIG_VIDEO_XS9922=y
修改为:
CONFIG_VIDEO_RK628_CSI=y
CONFIG_VIDEO_RK628_BT1120=y
CONFIG_VIDEO_TC35874X=y
CONFIG_VIDEO_RK_IRCUT=y
CONFIG_VIDEO_GC2093=y
CONFIG_VIDEO_GC8034=y
CONFIG_VIDEO_IMX334=y
CONFIG_VIDEO_IMX415=y
CONFIG_VIDEO_IMX464=y
CONFIG_VIDEO_OS04A10=y
CONFIG_VIDEO_OV4689=y
CONFIG_VIDEO_OV50C40=y
CONFIG_VIDEO_OV5645=y
CONFIG_VIDEO_OV5695=y
CONFIG_VIDEO_OV7251=y
CONFIG_VIDEO_OV13850=y
CONFIG_VIDEO_OV13855=y
CONFIG_VIDEO_DW9763=y
CONFIG_VIDEO_XS9922=y
如果不知道写法,可以参考.config文件中的写法:^_
Y:\new_disk_4t\RK-Linux5.10-SDK-20250911\kernel\.config
CONFIG_VIDEO_OS04A10=y
# CONFIG_VIDEO_OS04D10 is not set
# CONFIG_VIDEO_OS05A20 is not set
# CONFIG_VIDEO_OS08A20 is not set
# CONFIG_VIDEO_OV02B10 is not set
# CONFIG_VIDEO_OV02K10 is not set
# CONFIG_VIDEO_OV16885 is not set
# CONFIG_VIDEO_OV16A10 is not set
# CONFIG_VIDEO_OV16A1Q is not set
# CONFIG_VIDEO_OV2640 is not set
# CONFIG_VIDEO_OV2659 is not set
# CONFIG_VIDEO_OV2680 is not set
# CONFIG_VIDEO_OV2685 is not set
# CONFIG_VIDEO_OV2718 is not set
# CONFIG_VIDEO_OV4686 is not set
# CONFIG_VIDEO_OV4688 is not set
CONFIG_VIDEO_OV4689=y
CONFIG_VIDEO_OV50C40=y
# CONFIG_VIDEO_OV5640 is not set
# CONFIG_VIDEO_OV5645 is not set
# CONFIG_VIDEO_OV5647 is not set
# CONFIG_VIDEO_OV6650 is not set
# CONFIG_VIDEO_OV5670 is not set
# CONFIG_VIDEO_OV5675 is not set
CONFIG_VIDEO_OV5695=y
CONFIG_VIDEO_OV7251=y
修改为:
CONFIG_VIDEO_OS04A10=y
# CONFIG_VIDEO_OS04D10 is not set
# CONFIG_VIDEO_OS05A20 is not set
# CONFIG_VIDEO_OS08A20 is not set
# CONFIG_VIDEO_OV02B10 is not set
# CONFIG_VIDEO_OV02K10 is not set
# CONFIG_VIDEO_OV16885 is not set
# CONFIG_VIDEO_OV16A10 is not set
# CONFIG_VIDEO_OV16A1Q is not set
# CONFIG_VIDEO_OV2640 is not set
# CONFIG_VIDEO_OV2659 is not set
# CONFIG_VIDEO_OV2680 is not set
# CONFIG_VIDEO_OV2685 is not set
# CONFIG_VIDEO_OV2718 is not set
# CONFIG_VIDEO_OV4686 is not set
# CONFIG_VIDEO_OV4688 is not set
CONFIG_VIDEO_OV4689=y
CONFIG_VIDEO_OV50C40=y
# CONFIG_VIDEO_OV5640 is not set
CONFIG_VIDEO_OV5645=y
# CONFIG_VIDEO_OV5647 is not set
# CONFIG_VIDEO_OV6650 is not set
# CONFIG_VIDEO_OV5670 is not set
# CONFIG_VIDEO_OV5675 is not set
CONFIG_VIDEO_OV5695=y
CONFIG_VIDEO_OV7251=y
2、核实驱动中的Kconfig:
Y:\PRO-BOX-rk3568source20250911\kernel\drivers\media\i2c\Kconfig
config VIDEO_OV5645
tristate "OmniVision OV5645 sensor support"
depends on OF
depends on I2C && VIDEO_V4L2
select MEDIA_CONTROLLER
select VIDEO_V4L2_SUBDEV_API
select V4L2_FWNODE
help
This is a Video4Linux2 sensor driver for the OmniVision
OV5645 camera.
To compile this driver as a module, choose M here: the
module will be called ov5645.
3、核实驱动中的Makefile:
Y:\PRO-BOX-rk3568source20250911\kernel\drivers\media\i2c\Makefile
obj-$(CONFIG_VIDEO_UPD64031A) += upd64031a.o
obj-$(CONFIG_VIDEO_UPD64083) += upd64083.o
obj-$(CONFIG_VIDEO_OG01A10) += og01a10.o
obj-$(CONFIG_VIDEO_OG02B10) += og02b10.o
obj-$(CONFIG_VIDEO_OS02G10) += os02g10.o
obj-$(CONFIG_VIDEO_OS02K10) += os02k10.o
obj-$(CONFIG_VIDEO_OS03B10) += os03b10.o
obj-$(CONFIG_VIDEO_OS04A10) += os04a10.o
obj-$(CONFIG_VIDEO_OS04D10) += os04d10.o
obj-$(CONFIG_VIDEO_OS05A20) += os05a20.o
obj-$(CONFIG_VIDEO_OS08A20) += os08a20.o
obj-$(CONFIG_VIDEO_OV02B10) += ov02b10.o
obj-$(CONFIG_VIDEO_OV02K10) += ov02k10.o
obj-$(CONFIG_VIDEO_OV16885) += ov16885.o
obj-$(CONFIG_VIDEO_OV16A10) += ov16a10.o
obj-$(CONFIG_VIDEO_OV16A1Q) += ov16a1q.o
obj-$(CONFIG_VIDEO_OV2640) += ov2640.o
obj-$(CONFIG_VIDEO_OV2680) += ov2680.o
obj-$(CONFIG_VIDEO_OV2685) += ov2685.o
obj-$(CONFIG_VIDEO_OV2718) += ov2718.o
obj-$(CONFIG_VIDEO_OV2740) += ov2740.o
obj-$(CONFIG_VIDEO_OV4686) += ov4686.o
obj-$(CONFIG_VIDEO_OV4688) += ov4688.o
obj-$(CONFIG_VIDEO_OV4689) += ov4689.o
obj-$(CONFIG_VIDEO_OV50C40) += ov50c40.o
obj-$(CONFIG_VIDEO_OV5640) += ov5640.o
obj-$(CONFIG_VIDEO_OV5645) += ov5645.o
obj-$(CONFIG_VIDEO_OV5647) += ov5647.o
obj-$(CONFIG_VIDEO_OV5670) += ov5670.o
obj-$(CONFIG_VIDEO_OV5675) += ov5675.o
obj-$(CONFIG_VIDEO_OV5695) += ov5695.o
obj-$(CONFIG_VIDEO_OV6650) += ov6650.o
obj-$(CONFIG_VIDEO_OV7251) += ov7251.o
obj-$(CONFIG_VIDEO_OV7640) += ov7640.o
obj-$(CONFIG_VIDEO_OV7670) += ov7670.o
obj-$(CONFIG_VIDEO_OV772X) += ov772x.o
obj-$(CONFIG_VIDEO_OV7740) += ov7740.o
obj-$(CONFIG_VIDEO_OV8856) += ov8856.o
obj-$(CONFIG_VIDEO_OV8858) += ov8858.o
obj-$(CONFIG_VIDEO_OV9281) += ov9281.o
obj-$(CONFIG_VIDEO_OV9640) += ov9640.o
obj-$(CONFIG_VIDEO_OV9650) += ov9650.o
obj-$(CONFIG_VIDEO_OV12D2Q) += ov12d2q.o
obj-$(CONFIG_VIDEO_OV13850) += ov13850.o
obj-$(CONFIG_VIDEO_OV13855) += ov13855.o
obj-$(CONFIG_VIDEO_OV13858) += ov13858.o
【不规范的操作:强制编译/加载ov5645的驱动】
#obj-$(CONFIG_VIDEO_OV5645) += ov5645.o
obj-y += ov5645.o
4、在飞凌OK3588-C的Linux R4【Linux5.10.66+ Qt5.15.2】上使用订制版本的OV5645这颗摄像头。
Y:\PRO-BOX-rk3568source20250911\kernel\drivers\media\i2c\ov5645.c
由于在飞凌的开发板OK3588-C上是点亮过OV5645这颗摄像头的,因此它的驱动程序框架绝对是完整的!
Rockchip的RK3566的buildroot里面自带的ov5645的驱动程序是不是能跑就不一定了!^_