Navigation

    VEYE IMAGING Forum

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Recent
    • Popular
    • Users
    • WIKI
    • veye.cc

    SOLVED 移植imx462摄像头驱动到rk3588时出现了以下的问题,不知道怎么解决,内核版本是5.10

    VEYE MIPI camera
    2
    29
    3025
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      aike last edited by

      应该是又更近了一步,现在无论是自己基于v4l2写的程序或者是gstreamer获取信息显示的画面都是绿色的v4l2_capture.jpg gstreamer.png
      这是什么情况呢

      veye_xumm 1 Reply Last reply Reply Quote 0
      • veye_xumm
        veye_xumm @aike last edited by

        @aike 首先,我们这个模组是带有isp的,因此在dts中,isp部分都给bypass掉了。
        其次,你可以先试试我们wiki上的gstreamer例子,看看能不能预览。

        1 Reply Last reply Reply Quote 0
        • A
          aike last edited by

          我用gitee上面的gstreamer测试工具测试的时候出现了这些问题62fb8af1-4847-4e61-84f2-64eeecded9d8-image.png
          同时串口会打印这些
          fd3b438f-ce10-493b-9539-e7a9677d5040-image.png
          请问这个问题怎么解决

          veye_xumm 1 Reply Last reply Reply Quote 0
          • veye_xumm
            veye_xumm @aike last edited by

            @aike 这个我们在其他的板卡上没有遇到过。你的板子本身没有带gstreamer吗? 或者问问板卡厂家。

            1 Reply Last reply Reply Quote 0
            • A
              aike last edited by

              板卡是自带gstreamer的,一直在这里卡住了,会不会是摄像头模组硬件的原因呢

              veye_xumm 1 Reply Last reply Reply Quote 0
              • veye_xumm
                veye_xumm @aike last edited by

                @aike 可能性很小。你试试用这个脚本抓一下图:

                v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat='NV12' --stream-mmap --stream-count=100 --stream-to=nv12-1920x1080.yuv
                ``
                1 Reply Last reply Reply Quote 0
                • A
                  aike last edited by

                  我输入了v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat='NV12' --stream-mmap --stream-count=100 --stream-to=nv12-1920x1080.yuv命令之后报这个错误
                  662610c3-2a77-4fee-acd9-6e7d06bb782a-image.png

                  1 Reply Last reply Reply Quote 0
                  • A
                    aike last edited by

                    nv12-1920x1080.yuv里面是空的

                    veye_xumm 1 Reply Last reply Reply Quote 0
                    • veye_xumm
                      veye_xumm @aike last edited by

                      @aike
                      你试一下将驱动中下面这个函数改成如下:

                      static int veyecam2m_enum_frame_sizes(struct v4l2_subdev *sd,
                      				    struct v4l2_subdev_pad_config *cfg,
                      				   struct v4l2_subdev_frame_size_enum *fse)
                      {
                          VEYE_TRACE
                      	if (fse->index >= ARRAY_SIZE(supported_modes))
                      		return -EINVAL;
                      
                      	//if (fse->code != VEYECAM2M_MEDIA_BUS_FMT/*MEDIA_BUS_FMT_UYVY8_2X8*/)
                      	//	return -EINVAL;
                      
                      	fse->min_width  = supported_modes[fse->index].width;
                      	fse->max_width  = supported_modes[fse->index].width;
                      	fse->max_height = supported_modes[fse->index].height;
                      	fse->min_height = supported_modes[fse->index].height;
                      	return 0;
                      }
                      
                      

                      然后重新编译一下再测测。

                      1 Reply Last reply Reply Quote 0
                      • A
                        aike last edited by

                        还是一样的错误
                        951b5ba0-22d5-4e9d-8124-1f2b68c6eb66-image.png

                        veye_xumm 1 Reply Last reply Reply Quote 0
                        • veye_xumm
                          veye_xumm @aike last edited by

                          @aike 我们对接rk平台的经验中,只有一个厂家的板子遇到了给你这个完全一样的问题,就是用上次帖子中的方法解决的。该问题原因是此板厂提供的linux内核,调用veyecam2m_enum_frame_sizes时没有正确的传入fse->code参数,导致参数验证失败。

                          如果你这个方法解决不了问题,建议打开驱动中的DEBUG_PRINTK宏定义,查找一下哪个函数返回报错了。
                          如果只是打开这个宏定义不够,需要你手动在这些函数返回错误的地方增加打印信息,进行查找报错处。

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post