瑞芯微支持的摄像头,有个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
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:/#
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
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
抓图正常。