ubuntu 发表于 2021-9-13 17:02:43

[Core-1126-JD4] 两周都没导通,求教! gc2053 替代 os04a10,sensorid导通但无预览

# 运行环境:
HW:Core-1126-JD4开发板
SW: @799959745 在https://dev.t-firefly.com/thread-104445-1-1.html 提供的 uvc codebase

首先, sensor id 已经读到为 gc2053, 但抓 os04a10 和 gc2053 串口对比 log 发现报错在如下位置, 这里没想明白, 难道参考<Rockchip_Developer_Guide_Linux_Camera_CN.pdf>导通驱动后还有哪里要修改pipeline 才能preview 吗?
external/rkmedia/src/stream/camera/v4l2_capture_stream.cc
if (v4l2_ctx->IoCtrl(VIDIOC_S_FMT, &fmt) < 0) {
    RKMEDIA_LOGE("%s, s fmt failed(cap type=%d, %c%c%c%c), %m\n", dev,
               capture_type, DUMP_FOURCC(fmt.fmt.pix.pixelformat));
    return -1;
}

对应关键 log:

[   86.271582]         :#V4L2Ctx: open /dev/video20, fd 106
:rkispp_scale1, s fmt familed(cap type=1, NV12), Invalaid argument
x:8 min:2]
[[ KMEDIA]:#V4L2Ctx: close8 , fd 106
6:#V4L2Stream: v4l2 ctx reset .to nullptr!

附gc2053 和 os04a10 完整串口 log:

https://note.88.uy/gc2053
https://note.88.uy/os04a10

799959745 发表于 2021-9-14 09:07:32

1.请问使用os04a10能正常导通吗?
2.确保没有程序占用摄像头
3.确认输入的摄像头ID是正确的

799959745 发表于 2021-9-14 09:10:04

你运行的是哪个程序?

ubuntu 发表于 2021-9-14 09:15:21

799959745 发表于 2021-9-14 09:10
你运行的是哪个程序?


1.请问使用os04a10能正常导通吗?
> 可以啊. 参考 主贴 说明,os04a10 log 在 https://note.88.uy/os04a10
2.确保没有程序占用摄像头
> 参考 step1, os04a10 正常,就是换驱动,sensor. 所以不存在这种情况
3.确认输入的摄像头ID是正确的
> 参考主贴说明, id 都对的. https://note.88.uy/gc2053
4. 你运行的是哪个程序?
> 大佬您写的, 运行在默认 sensor os04a10 正常跑的, 完整程序信息见主贴如下说明:
SW: @799959745 在https://dev.t-firefly.com/thread-104445-1-1.html 提供的 uvc codebase

799959745 发表于 2021-9-14 09:54:39

修改 S58_lunch_init 自启动文件,firefly_rkmedia_vi_uvc_double_cameras_test.c 适配的是 gc2053 和 gc2093 双目摄像头。参考源码把其中一个摄像头节点去掉。调试一下应该就能直接用。

ubuntu 发表于 2021-9-14 15:41:02

799959745 发表于 2021-9-14 09:54
修改 S58_lunch_init 自启动文件,firefly_rkmedia_vi_uvc_double_cameras_test.c 适配的是 gc2053 和 gc20 ...

您好, 谢谢回复.
也许是我没说清楚, 我再描述清楚.

step1. 用如下配置 os04a10 正常点亮.
# 运行环境:
HW:Core-1126-JD4开发板
SW: @799959745 在https://dev.t-firefly.com/thread-104445-1-1.html 提供的 uvc codebase


step2. 在 step1 的基础上, 做如下修改后 无法预览.
1. HW:把 os04a10 模组更换为 单摄gc2053 模组
2. SW: 参考如下文档点亮 gc2053 driver, 抓 log 看 sensor id 正常识别<Rockchip_Developer_Guide_Linux_Camera_CN.pdf>

我的分析:
通过对比 os04a10 和 gc2053 运行过程的 log
  if (v4l2_ctx->IoCtrl(VIDIOC_S_FMT, &fmt) < 0) {
    RKMEDIA_LOGE("%s, s fmt failed(cap type=%d, %c%c%c%c), %m\n", dev,
                 capture_type, DUMP_FOURCC(fmt.fmt.pix.pixelformat));
    return -1;
  }

发现 os04a10 和 gc2053 都是用打开/dev/video20, format 都是fmt familed(cap type=1, NV12)
但 gc22053 报如下错误.
[   86.271582]         :#V4L2Ctx: open /dev/video20, fd 106
:rkispp_scale1, s fmt familed(cap type=1, NV12), Invalaid argument
x:8 min:2]
[  [ KMEDIA]:#V4L2Ctx: close8 , fd 106
6:#V4L2Stream: v4l2 ctx reset .to nullptr!

完整对比 log 我在一楼有提供, 麻烦帮忙分析.

感激不尽.

ubuntu 发表于 2021-9-14 16:54:01

补充分析信息:
结论: gc2053 的 case 下, 打开video20 ,对应rkispp_scale1时报上述错误信息.

分析过程:
继续分析上述对比 log:
os04a10, gc2053 都有两次用 nv12 格式打开video 设备的过程,分别打开了 video19 video20.
当gc2053的 case 时, 打开 video20 设备时才会报上述错误.
从如下信息看, os04a10, gc2053的video20 都是rkispp_scale1
# grep '' /sys/class/video4linux/video*/name
/sys/class/video4linux/video0/name:stream_cif_mipi_id0
/sys/class/video4linux/video1/name:stream_cif_mipi_id1
/sys/class/video4linux/video10/name:rkisp_rawwr3
/sys/class/video4linux/video11/name:rkisp_rawrd0_m
/sys/class/video4linux/video12/name:rkisp_rawrd2_s
/sys/class/video4linux/video13/name:rkisp_rawrd1_l
/sys/class/video4linux/video14/name:rkisp-statistics
/sys/class/video4linux/video15/name:rkisp-input-params
/sys/class/video4linux/video16/name:rkisp-mipi-luma
/sys/class/video4linux/video17/name:rkispp_input_image
/sys/class/video4linux/video18/name:rkispp_m_bypass
/sys/class/video4linux/video19/name:rkispp_scale0
/sys/class/video4linux/video2/name:stream_cif_mipi_id2
/sys/class/video4linux/video20/name:rkispp_scale1
/sys/class/video4linux/video21/name:rkispp_scale2
/sys/class/video4linux/video22/name:rkispp_iqtool
/sys/class/video4linux/video23/name:rkispp_input_params
/sys/class/video4linux/video24/name:rkispp-stats
/sys/class/video4linux/video25/name:dwc3-gadget
/sys/class/video4linux/video3/name:stream_cif_mipi_id3
/sys/class/video4linux/video4/name:rkcif-mipi-luma
/sys/class/video4linux/video5/name:rkisp_mainpath
/sys/class/video4linux/video6/name:rkisp_selfpath
/sys/class/video4linux/video7/name:rkisp_rawwr0
/sys/class/video4linux/video8/name:rkisp_rawwr1
/sys/class/video4linux/video9/name:rkisp_rawwr2

799959745 发表于 2021-9-15 10:11:07

dts配置节点了吗?发布出去的 CORE-1126-JD4 代码默认是不配置 gc2053 sensor 的。没有配置的话你可以参照双目摄像头的来配置。

ubuntu 发表于 2021-9-20 09:45:14

799959745 发表于 2021-9-15 10:11
dts配置节点了吗?发布出去的 CORE-1126-JD4 代码默认是不配置 gc2053 sensor 的。没有配置的话你可以参照 ...

配置了.
假如没有配置的话, 根本 build 不到 gc2053.

&i2c1 {
        status = "okay";
/*
      os04a10: os04a10@36 {
                compatible = "ovti,os04a10";
                reg = <0x36>;
                clocks = <&cru CLK_MIPICSI_OUT>;
                clock-names = "xvclk";
                power-domains = <&power RV1126_PD_VI>;
                pinctrl-names = "rockchip,camera_default";
                pinctrl-0 = <&mipicsi_clk0>;
                avdd-supply = <&vcc_avdd>;
                dovdd-supply = <&vcc_1v8>;
                dvdd-supply = <&vcc_dvdd>;
                pwdn-gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_LOW>;
                reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>;
                rockchip,camera-module-index = <1>;
                rockchip,camera-module-facing = "front";
                rockchip,camera-module-name = "CMK-OT1607-FV1";
                rockchip,camera-module-lens-name = "M12-40IRC-4MP-F16";
                                ir-cut = <&cam_ircut0>;

                port {
                        ucam_out0: endpoint {
                              remote-endpoint = <&mipi_in_ucam0>;
                              data-lanes = <1 2 3 4>;
                        };
                };
      };
*/

/*
        gc2093: gc2093@7e {
                        compatible = "galaxycore,gc2093";
                        reg = <0x7e>;
                        clocks = <&cru CLK_MIPICSI_OUT>;
                        clock-names = "xvclk";
                        power-domains = <&power RV1126_PD_VI>;
                        pinctrl-names = "rockchip,camera_default";
                        pinctrl-0 = <&mipicsi_clk0>;
                        avdd-supply = <&vcc_avdd>;
                        dovdd-supply = <&vcc_1v8>;
                        dvdd-supply = <&vcc_dvdd>;
                        pwdn-gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
                        reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>;
                        rockchip,camera-module-index = <1>;
                        rockchip,camera-module-facing = "front";
                        rockchip,camera-module-name = "FF-RV1109-2-V1";
                        rockchip,camera-module-lens-name = "40IR-2MP-F20";
                        ir-cut = <&cam_ircut0>;

                        port {
                                        ucam_out0: endpoint {
                                                        remote-endpoint = <&mipi_in_ucam0>;
                                                        data-lanes = <1 2>;
                                        };
                        };
        };
       */


        gc2053: gc2053@37 {
                        compatible = "galaxycore,gc2053";
                        reg = <0x37>;

                        clocks = <&cru CLK_MIPICSI_OUT>;
                        clock-names = "xvclk";
                        power-domains = <&power RV1126_PD_VI>;
                        pinctrl-names = "rockchip,camera_default";
                        pinctrl-0 = <&mipicsi_clk0>;
                        avdd-supply = <&vcc_avdd>;
                        dovdd-supply = <&vcc_1v8>;
                        dvdd-supply = <&vcc_dvdd>;
                        pwdn-gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
                        reset-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>;
                        rockchip,camera-module-index = <1>;

                        rockchip,camera-module-facing = "front";
                        rockchip,camera-module-name = "YT-RV1109-2-V1";
                        rockchip,camera-module-lens-name = "40IR-2MP-F20";
                        ir-cut = <&cam_ircut0>;

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

799959745 发表于 2021-9-22 09:53:11

ubuntu 发表于 2021-9-20 09:45
配置了.
假如没有配置的话, 根本 build 不到 gc2053.

把你调试修改的文件都打包发上来。看一下。
页: [1] 2
查看完整版本: [Core-1126-JD4] 两周都没导通,求教! gc2053 替代 os04a10,sensorid导通但无预览