RK3588S imx415摄像头调试

本文详细介绍了在瑞芯微RK3588平台上对IMX415摄像头的驱动移植过程,包括驱动的内核配置、设备树设置以及调试步骤。通过查看开机日志和V4L2控制,确认了摄像头的连接和格式支持。同时,文章展示了如何使用媒体控制器工具进行设备拓扑验证。
摘要由CSDN通过智能技术生成

一、环境

  • soc:rk3588
  • sensor:imx415
  • board: AIO-3588SJD
  • linux:rk3588_linux_release_20230301_v1.0.6e

二、imx415简介

  • 品牌:SONY
  • 型号:IMX415
  • 接口:MIPI CSI

三、驱动移植

瑞芯微支持的摄像头,有个support list,

此次从该list中选择了IMX415

RK提供的默认sdk里面已经将支持的所有摄像头驱动都添加到了内核,所以不需要移植该驱动了。

需确认下移植驱动对应的一些信息

源程序
kernel/drivers/media/i2c/imx415.c

kernel/drivers/media/i2c/Makefile

kernel/drivers/media/i2c/Kconfig

kernel/arch/arm64/configs/rockchip_linxu_defconfig

  • Makefile脚本

obj-$(CONFIG_VIDEO_IMX415) += imx415.o

config VIDEO_IMX415
    tristate "Sony IMX415 sensor support"
    depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
    depends on MEDIA_CAMERA_SUPPORT
    help
      This is a Video4Linux2 sensor driver for the Sony
      IMX415 camera.

      To compile this driver as a module, choose M here: the
      module will be called imx415.

 

  • 驱动对应的宏开关

CONFIG_VIDEO_IMX415=y

设备树节点

// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2022 Rockchip Electronics Co., Ltd.
 *
 */

/ {
    compatible = "radxa,rock-5b", "rockchip,rk3588";

    camera_pwdn_gpio: camera-pwdn-gpio {
        status = "okay";
        compatible = "regulator-fixed";
        regulator-name = "camera_pwdn_gpio";
        regulator-always-on;
        regulator-boot-on;
        enable-active-high;
        gpio = <&gpio1 RK_PB0 GPIO_ACTIVE_HIGH>;
        pinctrl-names = "default";
        pinctrl-0 = <&cam_pwdn_gpio>;
    };

    clk_cam_24m: external-camera-clock-24m {
        status = "okay";
        compatible = "fixed-clock";
        clock-frequency = <24000000>;
        clock-output-names = "clk_cam_24m";
        #clock-cells = <0>;
    };
};

&i2c3 {
    status = "okay";

    imx415: imx415@1a {
        status = "okay";
        compatible = "sony,imx415";
        reg = <0x1a>;
        clocks = <&cru CLK_MIPI_CAMARAOUT_M3>;
        clock-names = "xvclk";
        pinctrl-names = "default";
        pinctrl-0 = <&mipim0_camera3_clk>;
        power-domains = <&power RK3588_PD_VI>;
        pwdn-gpios = <&gpio1 RK_PB0 GPIO_ACTIVE_HIGH>;
        reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>;
        rockchip,camera-module-index = <0>;
        rockchip,camera-module-facing = "back";
        rockchip,camera-module-name = "CMK-OT2022-PX1";
        rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20";
        port {
            imx415_out0: endpoint {
                remote-endpoint = <&mipidphy0_in_ucam0>;
                data-lanes = <1 2 3 4>;
            };
        };
    };

    camera_imx219: camera-imx219@10 {
        status = "disabled";
        compatible = "sony,imx219";
        reg = <0x10>;

        clocks = <&clk_cam_24m>;
        clock-names = "xvclk";

        rockchip,camera-module-index = <0>;
        rockchip,camera-module-facing = "back";
        rockchip,camera-module-name = "rpi-camera-v2";
        rockchip,camera-module-lens-name = "default";

        port {
            imx219_out0: endpoint {
                remote-endpoint = <&mipidphy0_in_ucam1>;
                data-lanes = <1 2>;
            };
        };
    };
};

&csi2_dphy0_hw {
    status = "okay";
};

&csi2_dphy0 {
    status = "okay";

    ports {
        #address-cells = <1>;
        #size-cells = <0>;

        port@0 {
            reg = <0>;
            #address-cells = <1>;
            #size-cells = <0>;

            mipidphy0_in_ucam0: endpoint@1 {
                reg = <1>;
                remote-endpoint = <&imx415_out0>;
                data-lanes = <1 2 3 4>;
            };

            mipidphy0_in_ucam1: endpoint@2 {
                reg = <2>;
                remote-endpoint = <&imx219_out0>;
                data-lanes = <1 2>;
            };
        };

        port@1 {
            reg = <1>;
            #address-cells = <1>;
            #size-cells = <0>;

            csidphy0_out: endpoint@0 {
                reg = <0>;
                remote-endpoint = <&mipi2_csi2_input>;
            };
        };
    };
};

&mipi2_csi2 {
    status = "okay";

    ports {
        #address-cells = <1>;
        #size-cells = <0>;

        port@0 {
            reg = <0>;
            #address-cells = <1>;
            #size-cells = <0>;

            mipi2_csi2_input: endpoint@1 {
                reg = <1>;
                remote-endpoint = <&csidphy0_out>;
            };
        };

        port@1 {
            reg = <1>;
            #address-cells = <1>;
            #size-cells = <0>;

            mipi2_csi2_output: endpoint@0 {
                reg = <0>;
                remote-endpoint = <&cif_mipi2_in0>;
            };
        };
    };
};

&rkcif {
    status = "okay";
};

&rkcif_mipi_lvds2 {
    status = "okay";

    port {
        cif_mipi2_in0: endpoint {
            remote-endpoint = <&mipi2_csi2_output>;
        };
    };
};

&rkcif_mipi_lvds2_sditf {
    status = "okay";

    port {
        mipi_lvds2_sditf: endpoint {
            remote-endpoint = <&isp0_vir0>;
        };
    };
};

&rkcif_mmu {
    status = "okay";
};

&rkisp0 {
    status = "okay";
};

&isp0_mmu {
    status = "okay";
};

&rkisp0_vir0 {
    status = "okay";

    port {
        #address-cells = <1>;
        #size-cells = <0>;

        isp0_vir0: endpoint@0 {
            reg = <0>;
            remote-endpoint = <&mipi_lvds2_sditf>;
        };
    };
};

&pinctrl {
    camera {
        cam_pwdn_gpio: cam-pwdn-gpio {
            rockchip,pins = <1 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
        };
    };
};
设备树的信息最终转换成i2c_client,并传递给IMX415驱动 imx415_probe(){ compatible = “imx415”;与驱动的 of_match_table 保持一致

rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "CMK-OT2022-PX1";
rockchip,camera-module-lens-name = "IR0147-50IRC-8M-F20";


四、调试技能

4.1 开机log

[    3.656179] imx415 5-001a: driver version: 00.01.08
[    3.656190] imx415 5-001a:  Get hdr mode failed! no hdr default
[    3.656223] imx415 5-001a: could not get default pinstate
[    3.656228] imx415 5-001a: could not get sleep pinstate
[    3.656264] imx415 5-001a: supply dvdd not found, using dummy regulator
[    3.656341] imx415 5-001a: supply dovdd not found, using dummy regulator
[    3.656373] imx415 5-001a: supply avdd not found, using dummy regulator
[    3.670198] vendor storage:20190527 ret = 0
[    3.725529] imx415 5-001a: Unexpected sensor id(000000), ret(-5)

4.2 查看IMX415设备

root@firefly:/# v4l2-ctl --list-formats-ext --device /dev/video0
v4l2-ctl --list-formats-ext --device /dev/video0
ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture Multiplanar

        [0]: 'NV16' (Y/CbCr 4:2:2)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [1]: 'NV61' (Y/CrCb 4:2:2)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [2]: 'NV12' (Y/CbCr 4:2:0)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [3]: 'NV21' (Y/CrCb 4:2:0)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [4]: 'YUYV' (YUYV 4:2:2)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [5]: 'YVYU' (YVYU 4:2:2)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [6]: 'UYVY' (UYVY 4:2:2)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [7]: 'VYUY' (VYUY 4:2:2)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [8]: 'RGB3' (24-bit RGB 8-8-8)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [9]: 'BGR3' (24-bit BGR 8-8-8)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [10]: 'RGBP' (16-bit RGB 5-6-5)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [11]: 'BGRH' (18-bit BGRX 6-6-6-14)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [12]: 'RGGB' (8-bit Bayer RGRG/GBGB)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [13]: 'GRBG' (8-bit Bayer GRGR/BGBG)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [14]: 'GBRG' (8-bit Bayer GBGB/RGRG)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [15]: 'BA81' (8-bit Bayer BGBG/GRGR)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [16]: 'RG10' (10-bit Bayer RGRG/GBGB)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [17]: 'BA10' (10-bit Bayer GRGR/BGBG)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [18]: 'GB10' (10-bit Bayer GBGB/RGRG)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [19]: 'BG10' (10-bit Bayer BGBG/GRGR)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [20]: 'RG12' (12-bit Bayer RGRG/GBGB)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [21]: 'BA12' (12-bit Bayer GRGR/BGBG)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [22]: 'GB12' (12-bit Bayer GBGB/RGRG)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [23]: 'BG12' (12-bit Bayer BGBG/GRGR)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [24]: 'BYR2' (16-bit Bayer BGBG/GRGR)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [25]: 'GB16' (16-bit Bayer GBGB/RGRG)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [26]: 'GR16' (16-bit Bayer GRGR/BGBG)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [27]: 'RG16' (16-bit Bayer RGRG/GBGB)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [28]: 'Y16 ' (16-bit Greyscale)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [29]: 'GREY' (8-bit Greyscale)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [30]: 'EBD8' (Embedded data 8-bit)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [31]: 'SPD6' (Shield pix data 16-bit)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [32]: 'Y12 ' (12-bit Greyscale)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8
        [33]: 'Y10 ' (10-bit Greyscale)
                Size: Stepwise 64x64 - 1920x1080 with step 8/8

root@firefly:/# ls /dev/video* -l
ls /dev/video* -l
crw-rw----+ 1 root video 81,  0 Mar  2 07:47 /dev/video0
crw-rw----+ 1 root video 81,  1 Mar  2 07:47 /dev/video1
crw-rw----+ 1 root video 81, 10 Mar  2 07:47 /dev/video10
crw-rw----+ 1 root video 81,  2 Mar  2 07:47 /dev/video2
crw-rw----+ 1 root video 81,  3 Mar  2 07:47 /dev/video3
crw-rw----+ 1 root video 81,  4 Mar  2 07:47 /dev/video4
crw-rw----+ 1 root video 81,  5 Mar  2 07:47 /dev/video5
crw-rw----+ 1 root video 81,  6 Mar  2 07:47 /dev/video6
crw-rw----+ 1 root video 81,  7 Mar  2 07:47 /dev/video7
crw-rw----+ 1 root video 81,  8 Mar  2 07:47 /dev/video8
crw-rw----+ 1 root video 81,  9 Mar  2 07:47 /dev/video9
-rw-rw----  1 root video      4 Mar  2 07:47 /dev/video-dec0
-rw-rw----  1 root video      4 Mar  2 07:47 /dev/video-enc0
root@firefly:/#

4.4 查看拓扑 media-ctl -d /dev/media0 -p

root@linaro-alip:/rockchip-test# media-ctl -d /dev/media0 -p
Media controller API version 5.10.110

Media device information
------------------------
driver          rkcif
model           rkcif-mipi-lvds2
serial
bus info
hw revision     0x0
driver version  5.10.110

Device topology
- entity 1: stream_cif_mipi_id0 (1 pad, 11 links)
            type Node subtype V4L flags 0
            device node name /dev/video0
        pad0: Sink
                <- "rockchip-mipi-csi2":1 [ENABLED]
                <- "rockchip-mipi-csi2":2 []
                <- "rockchip-mipi-csi2":3 []
                <- "rockchip-mipi-csi2":4 []
                <- "rockchip-mipi-csi2":5 []
                <- "rockchip-mipi-csi2":6 []
                <- "rockchip-mipi-csi2":7 []
                <- "rockchip-mipi-csi2":8 []
                <- "rockchip-mipi-csi2":9 []
                <- "rockchip-mipi-csi2":10 []
                <- "rockchip-mipi-csi2":11 []

- entity 5: stream_cif_mipi_id1 (1 pad, 11 links)
            type Node subtype V4L flags 0
            device node name /dev/video1
        pad0: Sink
                <- "rockchip-mipi-csi2":1 []
                <- "rockchip-mipi-csi2":2 [ENABLED]
                <- "rockchip-mipi-csi2":3 []
                <- "rockchip-mipi-csi2":4 []
                <- "rockchip-mipi-csi2":5 []
                <- "rockchip-mipi-csi2":6 []
                <- "rockchip-mipi-csi2":7 []
                <- "rockchip-mipi-csi2":8 []
                <- "rockchip-mipi-csi2":9 []
                <- "rockchip-mipi-csi2":10 []
                <- "rockchip-mipi-csi2":11 []

- entity 9: stream_cif_mipi_id2 (1 pad, 11 links)
            type Node subtype V4L flags 0
            device node name /dev/video2
        pad0: Sink
                <- "rockchip-mipi-csi2":1 []
                <- "rockchip-mipi-csi2":2 []
                <- "rockchip-mipi-csi2":3 [ENABLED]
                <- "rockchip-mipi-csi2":4 []
                <- "rockchip-mipi-csi2":5 []
                <- "rockchip-mipi-csi2":6 []
                <- "rockchip-mipi-csi2":7 []
                <- "rockchip-mipi-csi2":8 []
                <- "rockchip-mipi-csi2":9 []
                <- "rockchip-mipi-csi2":10 []
                <- "rockchip-mipi-csi2":11 []

- entity 13: stream_cif_mipi_id3 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video3
        pad0: Sink
                <- "rockchip-mipi-csi2":1 []
                <- "rockchip-mipi-csi2":2 []
                <- "rockchip-mipi-csi2":3 []
                <- "rockchip-mipi-csi2":4 [ENABLED]
                <- "rockchip-mipi-csi2":5 []
                <- "rockchip-mipi-csi2":6 []
                <- "rockchip-mipi-csi2":7 []
                <- "rockchip-mipi-csi2":8 []
                <- "rockchip-mipi-csi2":9 []
                <- "rockchip-mipi-csi2":10 []
                <- "rockchip-mipi-csi2":11 []

- entity 17: rkcif_scale_ch0 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video4
        pad0: Sink
                <- "rockchip-mipi-csi2":1 []
                <- "rockchip-mipi-csi2":2 []
                <- "rockchip-mipi-csi2":3 []
                <- "rockchip-mipi-csi2":4 []
                <- "rockchip-mipi-csi2":5 [ENABLED]
                <- "rockchip-mipi-csi2":6 []
                <- "rockchip-mipi-csi2":7 []
                <- "rockchip-mipi-csi2":8 []
                <- "rockchip-mipi-csi2":9 []
                <- "rockchip-mipi-csi2":10 []
                <- "rockchip-mipi-csi2":11 []

- entity 21: rkcif_scale_ch1 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video5
        pad0: Sink
                <- "rockchip-mipi-csi2":1 []
                <- "rockchip-mipi-csi2":2 []
                <- "rockchip-mipi-csi2":3 []
                <- "rockchip-mipi-csi2":4 []
                <- "rockchip-mipi-csi2":5 []
                <- "rockchip-mipi-csi2":6 [ENABLED]
                <- "rockchip-mipi-csi2":7 []
                <- "rockchip-mipi-csi2":8 []
                <- "rockchip-mipi-csi2":9 []
                <- "rockchip-mipi-csi2":10 []
                <- "rockchip-mipi-csi2":11 []

- entity 25: rkcif_scale_ch2 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video6
        pad0: Sink
                <- "rockchip-mipi-csi2":1 []
                <- "rockchip-mipi-csi2":2 []
                <- "rockchip-mipi-csi2":3 []
                <- "rockchip-mipi-csi2":4 []
                <- "rockchip-mipi-csi2":5 []
                <- "rockchip-mipi-csi2":6 []
                <- "rockchip-mipi-csi2":7 [ENABLED]
                <- "rockchip-mipi-csi2":8 []
                <- "rockchip-mipi-csi2":9 []
                <- "rockchip-mipi-csi2":10 []
                <- "rockchip-mipi-csi2":11 []

- entity 29: rkcif_scale_ch3 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video7
        pad0: Sink
                <- "rockchip-mipi-csi2":1 []
                <- "rockchip-mipi-csi2":2 []
                <- "rockchip-mipi-csi2":3 []
                <- "rockchip-mipi-csi2":4 []
                <- "rockchip-mipi-csi2":5 []
                <- "rockchip-mipi-csi2":6 []
                <- "rockchip-mipi-csi2":7 []
                <- "rockchip-mipi-csi2":8 [ENABLED]
                <- "rockchip-mipi-csi2":9 []
                <- "rockchip-mipi-csi2":10 []
                <- "rockchip-mipi-csi2":11 []

- entity 33: rkcif_tools_id0 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video8
        pad0: Sink
                <- "rockchip-mipi-csi2":1 []
                <- "rockchip-mipi-csi2":2 []
                <- "rockchip-mipi-csi2":3 []
                <- "rockchip-mipi-csi2":4 []
                <- "rockchip-mipi-csi2":5 []
                <- "rockchip-mipi-csi2":6 []
                <- "rockchip-mipi-csi2":7 []
                <- "rockchip-mipi-csi2":8 []
                <- "rockchip-mipi-csi2":9 [ENABLED]
                <- "rockchip-mipi-csi2":10 []
                <- "rockchip-mipi-csi2":11 []

- entity 37: rkcif_tools_id1 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video9
        pad0: Sink
                <- "rockchip-mipi-csi2":1 []
                <- "rockchip-mipi-csi2":2 []
                <- "rockchip-mipi-csi2":3 []
                <- "rockchip-mipi-csi2":4 []
                <- "rockchip-mipi-csi2":5 []
                <- "rockchip-mipi-csi2":6 []
                <- "rockchip-mipi-csi2":7 []
                <- "rockchip-mipi-csi2":8 []
                <- "rockchip-mipi-csi2":9 []
                <- "rockchip-mipi-csi2":10 [ENABLED]
                <- "rockchip-mipi-csi2":11 []

- entity 41: rkcif_tools_id2 (1 pad, 11 links)
             type Node subtype V4L flags 0
             device node name /dev/video10
        pad0: Sink
                <- "rockchip-mipi-csi2":1 []
                <- "rockchip-mipi-csi2":2 []
                <- "rockchip-mipi-csi2":3 []
                <- "rockchip-mipi-csi2":4 []
                <- "rockchip-mipi-csi2":5 []
                <- "rockchip-mipi-csi2":6 []
                <- "rockchip-mipi-csi2":7 []
                <- "rockchip-mipi-csi2":8 []
                <- "rockchip-mipi-csi2":9 []
                <- "rockchip-mipi-csi2":10 []
                <- "rockchip-mipi-csi2":11 [ENABLED]

- entity 45: rockchip-mipi-csi2 (12 pads, 122 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev0
        pad0: Sink
                [fmt:SGBRG10_1X10/3864x2192 field:none
                 crop.bounds:(12,16)/3840x2160
                 crop:(12,16)/3840x2160]
                <- "rockchip-csi2-dphy0":1 [ENABLED]
        pad1: Source
                -> "stream_cif_mipi_id0":0 [ENABLED]
                -> "stream_cif_mipi_id1":0 []
                -> "stream_cif_mipi_id2":0 []
                -> "stream_cif_mipi_id3":0 []
                -> "rkcif_scale_ch0":0 []
                -> "rkcif_scale_ch1":0 []
                -> "rkcif_scale_ch2":0 []
                -> "rkcif_scale_ch3":0 []
                -> "rkcif_tools_id0":0 []
                -> "rkcif_tools_id1":0 []
                -> "rkcif_tools_id2":0 []
        pad2: Source
                -> "stream_cif_mipi_id0":0 []
                -> "stream_cif_mipi_id1":0 [ENABLED]
                -> "stream_cif_mipi_id2":0 []
                -> "stream_cif_mipi_id3":0 []
                -> "rkcif_scale_ch0":0 []
                -> "rkcif_scale_ch1":0 []
                -> "rkcif_scale_ch2":0 []
                -> "rkcif_scale_ch3":0 []
                -> "rkcif_tools_id0":0 []
                -> "rkcif_tools_id1":0 []
                -> "rkcif_tools_id2":0 []
        pad3: Source
                -> "stream_cif_mipi_id0":0 []
                -> "stream_cif_mipi_id1":0 []
                -> "stream_cif_mipi_id2":0 [ENABLED]
                -> "stream_cif_mipi_id3":0 []
                -> "rkcif_scale_ch0":0 []
                -> "rkcif_scale_ch1":0 []
                -> "rkcif_scale_ch2":0 []
                -> "rkcif_scale_ch3":0 []
                -> "rkcif_tools_id0":0 []
                -> "rkcif_tools_id1":0 []
                -> "rkcif_tools_id2":0 []
        pad4: Source
                -> "stream_cif_mipi_id0":0 []
                -> "stream_cif_mipi_id1":0 []
                -> "stream_cif_mipi_id2":0 []
                -> "stream_cif_mipi_id3":0 [ENABLED]
                -> "rkcif_scale_ch0":0 []
                -> "rkcif_scale_ch1":0 []
                -> "rkcif_scale_ch2":0 []
                -> "rkcif_scale_ch3":0 []
                -> "rkcif_tools_id0":0 []
                -> "rkcif_tools_id1":0 []
                -> "rkcif_tools_id2":0 []
        pad5: Source
                -> "stream_cif_mipi_id0":0 []
                -> "stream_cif_mipi_id1":0 []
                -> "stream_cif_mipi_id2":0 []
                -> "stream_cif_mipi_id3":0 []
                -> "rkcif_scale_ch0":0 [ENABLED]
                -> "rkcif_scale_ch1":0 []
                -> "rkcif_scale_ch2":0 []
                -> "rkcif_scale_ch3":0 []
                -> "rkcif_tools_id0":0 []
                -> "rkcif_tools_id1":0 []
                -> "rkcif_tools_id2":0 []
        pad6: Source
                -> "stream_cif_mipi_id0":0 []
                -> "stream_cif_mipi_id1":0 []
                -> "stream_cif_mipi_id2":0 []
                -> "stream_cif_mipi_id3":0 []
                -> "rkcif_scale_ch0":0 []
                -> "rkcif_scale_ch1":0 [ENABLED]
                -> "rkcif_scale_ch2":0 []
                -> "rkcif_scale_ch3":0 []
                -> "rkcif_tools_id0":0 []
                -> "rkcif_tools_id1":0 []
                -> "rkcif_tools_id2":0 []
        pad7: Source
                -> "stream_cif_mipi_id0":0 []
                -> "stream_cif_mipi_id1":0 []
                -> "stream_cif_mipi_id2":0 []
                -> "stream_cif_mipi_id3":0 []
                -> "rkcif_scale_ch0":0 []
                -> "rkcif_scale_ch1":0 []
                -> "rkcif_scale_ch2":0 [ENABLED]
                -> "rkcif_scale_ch3":0 []
                -> "rkcif_tools_id0":0 []
                -> "rkcif_tools_id1":0 []
                -> "rkcif_tools_id2":0 []
        pad8: Source
                -> "stream_cif_mipi_id0":0 []
                -> "stream_cif_mipi_id1":0 []
                -> "stream_cif_mipi_id2":0 []
                -> "stream_cif_mipi_id3":0 []
                -> "rkcif_scale_ch0":0 []
                -> "rkcif_scale_ch1":0 []
                -> "rkcif_scale_ch2":0 []
                -> "rkcif_scale_ch3":0 [ENABLED]
                -> "rkcif_tools_id0":0 []
                -> "rkcif_tools_id1":0 []
                -> "rkcif_tools_id2":0 []
        pad9: Source
                -> "stream_cif_mipi_id0":0 []
                -> "stream_cif_mipi_id1":0 []
                -> "stream_cif_mipi_id2":0 []
                -> "stream_cif_mipi_id3":0 []
                -> "rkcif_scale_ch0":0 []
                -> "rkcif_scale_ch1":0 []
                -> "rkcif_scale_ch2":0 []
                -> "rkcif_scale_ch3":0 []
                -> "rkcif_tools_id0":0 [ENABLED]
                -> "rkcif_tools_id1":0 []
                -> "rkcif_tools_id2":0 []
        pad10: Source
                -> "stream_cif_mipi_id0":0 []
                -> "stream_cif_mipi_id1":0 []
                -> "stream_cif_mipi_id2":0 []
                -> "stream_cif_mipi_id3":0 []
                -> "rkcif_scale_ch0":0 []
                -> "rkcif_scale_ch1":0 []
                -> "rkcif_scale_ch2":0 []
                -> "rkcif_scale_ch3":0 []
                -> "rkcif_tools_id0":0 []
                -> "rkcif_tools_id1":0 [ENABLED]
                -> "rkcif_tools_id2":0 []
        pad11: Source
                -> "stream_cif_mipi_id0":0 []
                -> "stream_cif_mipi_id1":0 []
                -> "stream_cif_mipi_id2":0 []
                -> "stream_cif_mipi_id3":0 []
                -> "rkcif_scale_ch0":0 []
                -> "rkcif_scale_ch1":0 []
                -> "rkcif_scale_ch2":0 []
                -> "rkcif_scale_ch3":0 []
                -> "rkcif_tools_id0":0 []
                -> "rkcif_tools_id1":0 []
                -> "rkcif_tools_id2":0 [ENABLED]

- entity 58: rockchip-csi2-dphy0 (2 pads, 2 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev1
        pad0: Sink
                [fmt:SGBRG10_1X10/3864x2192@10000/300000 field:none
                 crop.bounds:(12,16)/3840x2160]
                <- "m00_b_imx415 3-001a":0 [ENABLED]
        pad1: Source
                -> "rockchip-mipi-csi2":0 [ENABLED]

- entity 63: m00_b_imx415 3-001a (1 pad, 1 link)
             type V4L2 subdev subtype Sensor flags 0
             device node name /dev/v4l-subdev2
        pad0: Source
                [fmt:SGBRG10_1X10/3864x2192@10000/300000 field:none
                 crop.bounds:(12,16)/3840x2160]
                -> "rockchip-csi2-dphy0":0 [ENABLED]


五、测试

v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=BG10 \--stream-mmap=3 \--stream-skip=3 \--stream-to=/tmp/cif888.out \--stream-count=1 \--stream-poll
 

root@firefly:/# v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=BG10 \--stream-mmap=3 \--stream-skip=3 \--stream-to=/tmp/cif888.out \--stream-count=1 \--stream-poll
<to=/tmp/cif888.out \--stream-count=1 \--stream-poll
<<<<
root@firefly:/# ls
ls
bin              proc           usr
boot             root           usr.bin.evince
dev              root-ro        usr.bin.man
etc              run            usr.lib.libreoffice.program.oosplash
home             sbin           usr.lib.libreoffice.program.senddoc
lib              sbin.dhclient  usr.lib.libreoffice.program.soffice.bin
lost+found       snap           usr.lib.libreoffice.program.xpdfimport
lsb_release      srv            usr.lib.snapd.snap-confine.real
media            sys            usr.sbin.cupsd
mnt              system         var
nvidia_modprobe  tmp            vendor
opt              userdata
root@firefly:/# c tmp
c tmp
c: command not found
root@firefly:/# cd tmp
cd tmp
root@firefly:/tmp# ls
ls
cif888.out
config-err-RXhMdN
snap-private-tmp
ssh-PWGyUdXTlJXO
systemd-private-fd2eac9786b54e498e5de0345b10e142-colord.service-B2bFDi
systemd-private-fd2eac9786b54e498e5de0345b10e142-ModemManager.service-pv2qXf
systemd-private-fd2eac9786b54e498e5de0345b10e142-systemd-logind.service-OMr8oi
systemd-private-fd2eac9786b54e498e5de0345b10e142-systemd-resolved.service-Nj58Ih
systemd-private-fd2eac9786b54e498e5de0345b10e142-systemd-timesyncd.service-P1vtdj
systemd-private-fd2eac9786b54e498e5de0345b10e142-upower.service-4NGM0g
tracker-extract-files.1000
root@firefly:/tmp# ls -l
ls -l
total 2736
-rw-rw-rw- 1 root    root    2764800 Mar  2 07:48 cif888.out
-rw------- 1 firefly firefly       0 Mar  2 07:47 config-err-RXhMdN
drwx------ 2 root    root       4096 Mar  2 07:47 snap-private-tmp
drwx------ 2 firefly firefly    4096 Mar  2 07:47 ssh-PWGyUdXTlJXO
drwx------ 3 root    root       4096 Mar  2 07:47 systemd-private-fd2eac9786b54e498e5de0345b10e142-colord.service-B2bFDi
drwx------ 3 root    root       4096 Mar  2 07:47 systemd-private-fd2eac9786b54e498e5de0345b10e142-ModemManager.service-pv2qXf
drwx------ 3 root    root       4096 Mar  2 07:47 systemd-private-fd2eac9786b54e498e5de0345b10e142-systemd-logind.service-OMr8oi
drwx------ 3 root    root       4096 Mar  2 07:47 systemd-private-fd2eac9786b54e498e5de0345b10e142-systemd-resolved.service-Nj58Ih
drwx------ 3 root    root       4096 Mar  2 07:47 systemd-private-fd2eac9786b54e498e5de0345b10e142-systemd-timesyncd.service-P1vtdj
drwx------ 3 root    root       4096 Mar  2 07:47 systemd-private-fd2eac9786b54e498e5de0345b10e142-upower.service-4NGM0g
drwx------ 2 firefly firefly    4096 Mar  2 07:47 tracker-extract-files.1000

抓图正常。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

anhuihbo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值