ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

在rk3399(rockpi 4b)上链接gc2145(自带isp的相机模组)(二)

2022-04-26 13:35:45  阅读:157  来源: 互联网

标签:gc2145 isp rk3399 rockpi rkisp1 device subdev 003c name


第一步
首先参照rockpi4b的官方wiki把rockpi的bsp编译烧写跑起来,这部分不再赘述了

第二步
将官方的内核clone到bsp中,将原来的内核备份一下如下

//树形图
.

├── build
├── docker
├── kernel//官方内核
├── kernel-b
├── patch
├── README.md
├── rkbin
├── rootfs
└── u-boot

下载附件中的文件
下载链接
1 在 内核目录执行git apply patch就把patch文件打好了
此外还要添加rockpi4b对应的dts文件

2 将rockpi-4-linux.dtsi 保存到arch/arm64/boot/dts/rockchip目录中

3 将rockpi-4b-linux.dts 保存到arch/arm64/boot/dts/rockchip目录中

至此,内核层的文件全部准备完了,
编译内核生成boot.img

然后dd 到sd卡的第四个分区

sudo dd if=out/boot.img of=/dev/sdb4//看自己的sd号

加载自己制作的文件系统启动后可以查看如下的log

如下说明gc2145的驱动加载正常,否则请校验i2c的通信

dmesg |grep gc2145
[    2.980341] gc2145 4-003c: driver version: 00.01.05
[    2.981398] gc2145 4-003c: gc2145_parse_of(2843)
[    2.982277] gc2145 4-003c: gc2145_parse_of gc2145->bus_cfg.bus_type 2
[    2.983512] gc2145 4-003c: gc2145_parse_of mipi framesizes
[    2.984559] gc2145 4-003c: GPIO lookup for consumer pwdn
[    2.984572] gc2145 4-003c: using device tree for GPIO lookup
[    2.984619] of_get_named_gpiod_flags: parsed 'pwdn-gpios' property of node '/i2c@ff3d0000/gc2145@3c[0]' - status (0)
[    2.984678] gc2145 4-003c: __gc2145_power_on(2740)
[    3.001678] gc2145 4-003c: Found GC2145 sensor
[    3.004780] gc2145 4-003c: m01_b_gc2145 4-003c sensor driver registered !!
[    9.669613] gc2145 4-003c: gc2145_power(2626) on(1)
[    9.675349] gc2145 4-003c: gc2145_init(2610)
[    9.948015] gc2145 4-003c: gc2145_power(2626) on(0)

查看isp的加载

grep '' /sys/class/video4linux/video*/name
/sys/class/video4linux/video0/name:rkisp1_mainpath
/sys/class/video4linux/video1/name:rkisp1_selfpath
/sys/class/video4linux/video2/name:rkisp1_dmapath
/sys/class/video4linux/video3/name:rkisp1-statistics
/sys/class/video4linux/video4/name:rkisp1-input-params

查看sensor的拓扑结构

dmesg | grep Async
[    3.003872] rkisp1: Async subdev notifier completed

上面的需要都确保一致才可以,

下面是可选的,有助于进一步了解数据流走向

移植
https://github.com/rockchip-linux/v4l-utils
到板子上
执行如下命令

sudo media-ctl -p
[sudo] password for ab64:
Media controller API version 0.1.0

Media device information
------------------------
driver          rkisp1
model           rkisp1
serial
bus info
hw revision     0x0
driver version  0.0.0

Device topology
- entity 1: rkisp1-isp-subdev (4 pads, 6 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
        pad0: Sink
                [fmt:UYVY8_2X8/800x600 field:none
                 crop.bounds:(0,0)/800x600
                 crop:(0,0)/800x600]
                <- "rkisp1_dmapath":0 []
                <- "rockchip-mipi-dphy-rx":1 [ENABLED]
        pad1: Sink
                <- "rkisp1-input-params":0 [ENABLED]
        pad2: Source
                [fmt:YUYV8_2X8/800x600 field:none
                 crop.bounds:(0,0)/800x600
                 crop:(0,0)/800x600]
                -> "rkisp1_selfpath":0 [ENABLED]
                -> "rkisp1_mainpath":0 [ENABLED]
        pad3: Source
                -> "rkisp1-statistics":0 [ENABLED]

- entity 2: rkisp1_mainpath (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video0
        pad0: Sink
                <- "rkisp1-isp-subdev":2 [ENABLED]

- entity 3: rkisp1_selfpath (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video1
        pad0: Sink
                <- "rkisp1-isp-subdev":2 [ENABLED]

- entity 4: rkisp1_dmapath (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video2
        pad0: Source
                -> "rkisp1-isp-subdev":0 []

- entity 5: rkisp1-statistics (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video3
        pad0: Sink
                <- "rkisp1-isp-subdev":3 [ENABLED]

- entity 6: rkisp1-input-params (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video4
        pad0: Source
                -> "rkisp1-isp-subdev":1 [ENABLED]

- entity 7: rockchip-mipi-dphy-rx (2 pads, 2 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev1
        pad0: Sink
                [fmt:UYVY8_2X8/800x600 field:none]
                <- "m01_b_gc2145 4-003c":0 [ENABLED]
        pad1: Source
                [fmt:UYVY8_2X8/800x600 field:none]
                -> "rkisp1-isp-subdev":0 [ENABLED]

- entity 8: m01_b_gc2145 4-003c (1 pad, 1 link)
            type V4L2 subdev subtype Sensor flags 0
            device node name /dev/v4l-subdev2
        pad0: Source
                [fmt:UYVY8_2X8/800x600 field:none]
                -> "rockchip-mipi-dphy-rx":0 [ENABLED]

标签:gc2145,isp,rk3399,rockpi,rkisp1,device,subdev,003c,name
来源: https://www.cnblogs.com/tccxy/p/16194386.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有