<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic OV5645摄像头驱动没有/dev/videoX设备 in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/OV5645%E6%91%84%E5%83%8F%E5%A4%B4%E9%A9%B1%E5%8A%A8%E6%B2%A1%E6%9C%89-dev-videoX%E8%AE%BE%E5%A4%87/m-p/1817103#M220507</link>
    <description>&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;我使用的是imx8mp平台。最初，我在设备树上加入了如下节点：&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;&amp;amp;i2c2 {
	clock-frequency = &amp;lt;400000&amp;gt;;
	pinctrl-names = "default";
	pinctrl-0 = &amp;lt;&amp;amp;pinctrl_i2c2&amp;gt;;
	status = "okay";

	ov5645_0: ov5645_mipi@3c {
		compatible = "ovti,ov5645";
		reg = &amp;lt;0x3c&amp;gt;;
		pinctrl-names = "default";
		pinctrl-0 = &amp;lt;&amp;amp;pinctrl_csi0_pwn&amp;gt;, &amp;lt;&amp;amp;pinctrl_csi0_rst&amp;gt;;
		clocks = &amp;lt;&amp;amp;clk IMX8MP_CLK_IPP_DO_CLKO2&amp;gt;;
		clock-names = "xclk";
		assigned-clocks = &amp;lt;&amp;amp;clk IMX8MP_CLK_IPP_DO_CLKO2&amp;gt;;
		assigned-clock-parents = &amp;lt;&amp;amp;clk IMX8MP_CLK_24M&amp;gt;;
		assigned-clock-rates = &amp;lt;24000000&amp;gt;;
		csi_id = &amp;lt;1&amp;gt;;
		enable-gpios = &amp;lt;&amp;amp;gpio3 20 GPIO_ACTIVE_HIGH&amp;gt;;
		reset-gpios = &amp;lt;&amp;amp;gpio3 19 GPIO_ACTIVE_LOW&amp;gt;;
		clock-frequency = &amp;lt;24000000&amp;gt;;
		mclk = &amp;lt;24000000&amp;gt;;
		mclk_source = &amp;lt;0&amp;gt;;
		mipi_csi;
		status = "okay";

		port {
			ov5645_mipi_1_ep: endpoint {
				remote-endpoint = &amp;lt;&amp;amp;mipi_csi1_ep&amp;gt;;
				data-lanes = &amp;lt;1 2&amp;gt;;
				clock-lanes = &amp;lt;0&amp;gt;;
				// link-frequencies = /bits/ 64 &amp;lt;336000000&amp;gt;;
			};
		};
	};
};

&amp;amp;mipi_csi_1 {
	#address-cells = &amp;lt;1&amp;gt;;
	#size-cells = &amp;lt;0&amp;gt;;
	status = "okay";

	port@1 {
		reg = &amp;lt;1&amp;gt;;
		mipi_csi1_ep: endpoint {
			remote-endpoint = &amp;lt;&amp;amp;ov5645_mipi_1_ep&amp;gt;;
			data-lanes = &amp;lt;2&amp;gt;;
			csis-hs-settle = &amp;lt;13&amp;gt;;
			csis-clk-settle = &amp;lt;2&amp;gt;;
			csis-wclk;
		};
	};
};&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;系统启动后，没有在/dev/下发现任何mediaX，v4l-subdevX和新的videoX设备（除了video0和video1分别是encoder和decoder）。&lt;/P&gt;&lt;P&gt;查看内核日志时，发现imx8-img-md:&amp;nbsp;&lt;SPAN&gt;subdev_notifier_complete error exit错误。&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;根据错误信息，找到了imx8-media-dev.c，在其中加入了一些额外打印的调试信息，发现在&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;mxc_md_create_link函数中，会调用传感器实体的&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;link_setup函数。而最新的imx bsp中，ov5645.c内并没有定义类似于&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;static&lt;/SPAN&gt; &lt;SPAN&gt;const&lt;/SPAN&gt; &lt;SPAN&gt;struct&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt; media_entity_operations ov5645_subdev_entity_ops和&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;static&lt;/SPAN&gt; &lt;SPAN&gt;int&lt;/SPAN&gt; &lt;SPAN&gt;ov5645_link_setup&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;ov5645_link_setup(...)这样的结构体和函数。&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;参考了ov5640.c和其它摄像头的驱动代码，发现link_setup函数几乎只是简单的返回0值，没有什么实际动作，于是我在&lt;SPAN&gt;mxc_md_create_link中，删除了这一步骤（我不确定这样做是否有其它负面影响，但目前来看可以向下推进）。&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Versenkt_0-1709096961048.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/265437iFB0EAF1AF732AE23/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Versenkt_0-1709096961048.png" alt="Versenkt_0-1709096961048.png" /&gt;&lt;/span&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;目前遇到的问题：&lt;/P&gt;&lt;P&gt;1. 系统启动时，似乎没有自动执行creat link相关的动作，内核日志中，ov5645驱动探测到i2c上的摄像头后，没有出现mx8-img-md打印的任何日志，/dev下也没有任何摄像头相关的设备出现。&amp;nbsp; 我注意到，内核日志中，系统启动时ov5645被探测到的时间出现在imx8_media_dev之后，这是否和问题1有关？完整的日志在附件中。&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Versenkt_4-1709098398004.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/265442iBA5870B9477B1A23/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Versenkt_4-1709098398004.png" alt="Versenkt_4-1709098398004.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;2. 我可以通过modprobe手动重新加载imx8-media-dev模块，此时出现了预期中的日志信息，同时/dev下出现了media0, v4l-subdev0和v4l-subdev1，但依旧没有对应的video设备。&lt;/P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Versenkt_1-1709097577946.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/265438i0FF3809C99098F0E/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Versenkt_1-1709097577946.png" alt="Versenkt_1-1709097577946.png" /&gt;&lt;/span&gt;&lt;P&gt;日志中的+++++表示这是我加入的debug信息。&lt;/P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Versenkt_2-1709097777168.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/265439i87FCE4894B88A64B/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Versenkt_2-1709097777168.png" alt="Versenkt_2-1709097777168.png" /&gt;&lt;/span&gt;&lt;P&gt;可能因为我本次构建镜像时，使用了imx-image-core导致缺少部分组件，decoder和encoder对应的videoX信息没能正常被读取？在imx-image-multimedia镜像中是正常的。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;3. 请问在imx8mp平台上，是哪段驱动代码在产生摄像头的/dev/videoX设备节点？根据一些搜索到的资料，似乎是在调用video_register_device函数时产生，但有很多处代码都在调用这个函数&lt;/P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Versenkt_5-1709098632595.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/265445iACD0B6211DC175D1/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Versenkt_5-1709098632595.png" alt="Versenkt_5-1709098632595.png" /&gt;&lt;/span&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;</description>
    <pubDate>Wed, 28 Feb 2024 05:38:17 GMT</pubDate>
    <dc:creator>Versenkt</dc:creator>
    <dc:date>2024-02-28T05:38:17Z</dc:date>
    <item>
      <title>OV5645摄像头驱动没有/dev/videoX设备</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OV5645%E6%91%84%E5%83%8F%E5%A4%B4%E9%A9%B1%E5%8A%A8%E6%B2%A1%E6%9C%89-dev-videoX%E8%AE%BE%E5%A4%87/m-p/1817103#M220507</link>
      <description>&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;我使用的是imx8mp平台。最初，我在设备树上加入了如下节点：&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;&amp;amp;i2c2 {
	clock-frequency = &amp;lt;400000&amp;gt;;
	pinctrl-names = "default";
	pinctrl-0 = &amp;lt;&amp;amp;pinctrl_i2c2&amp;gt;;
	status = "okay";

	ov5645_0: ov5645_mipi@3c {
		compatible = "ovti,ov5645";
		reg = &amp;lt;0x3c&amp;gt;;
		pinctrl-names = "default";
		pinctrl-0 = &amp;lt;&amp;amp;pinctrl_csi0_pwn&amp;gt;, &amp;lt;&amp;amp;pinctrl_csi0_rst&amp;gt;;
		clocks = &amp;lt;&amp;amp;clk IMX8MP_CLK_IPP_DO_CLKO2&amp;gt;;
		clock-names = "xclk";
		assigned-clocks = &amp;lt;&amp;amp;clk IMX8MP_CLK_IPP_DO_CLKO2&amp;gt;;
		assigned-clock-parents = &amp;lt;&amp;amp;clk IMX8MP_CLK_24M&amp;gt;;
		assigned-clock-rates = &amp;lt;24000000&amp;gt;;
		csi_id = &amp;lt;1&amp;gt;;
		enable-gpios = &amp;lt;&amp;amp;gpio3 20 GPIO_ACTIVE_HIGH&amp;gt;;
		reset-gpios = &amp;lt;&amp;amp;gpio3 19 GPIO_ACTIVE_LOW&amp;gt;;
		clock-frequency = &amp;lt;24000000&amp;gt;;
		mclk = &amp;lt;24000000&amp;gt;;
		mclk_source = &amp;lt;0&amp;gt;;
		mipi_csi;
		status = "okay";

		port {
			ov5645_mipi_1_ep: endpoint {
				remote-endpoint = &amp;lt;&amp;amp;mipi_csi1_ep&amp;gt;;
				data-lanes = &amp;lt;1 2&amp;gt;;
				clock-lanes = &amp;lt;0&amp;gt;;
				// link-frequencies = /bits/ 64 &amp;lt;336000000&amp;gt;;
			};
		};
	};
};

&amp;amp;mipi_csi_1 {
	#address-cells = &amp;lt;1&amp;gt;;
	#size-cells = &amp;lt;0&amp;gt;;
	status = "okay";

	port@1 {
		reg = &amp;lt;1&amp;gt;;
		mipi_csi1_ep: endpoint {
			remote-endpoint = &amp;lt;&amp;amp;ov5645_mipi_1_ep&amp;gt;;
			data-lanes = &amp;lt;2&amp;gt;;
			csis-hs-settle = &amp;lt;13&amp;gt;;
			csis-clk-settle = &amp;lt;2&amp;gt;;
			csis-wclk;
		};
	};
};&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;系统启动后，没有在/dev/下发现任何mediaX，v4l-subdevX和新的videoX设备（除了video0和video1分别是encoder和decoder）。&lt;/P&gt;&lt;P&gt;查看内核日志时，发现imx8-img-md:&amp;nbsp;&lt;SPAN&gt;subdev_notifier_complete error exit错误。&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;根据错误信息，找到了imx8-media-dev.c，在其中加入了一些额外打印的调试信息，发现在&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;mxc_md_create_link函数中，会调用传感器实体的&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;link_setup函数。而最新的imx bsp中，ov5645.c内并没有定义类似于&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;static&lt;/SPAN&gt; &lt;SPAN&gt;const&lt;/SPAN&gt; &lt;SPAN&gt;struct&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt; media_entity_operations ov5645_subdev_entity_ops和&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;static&lt;/SPAN&gt; &lt;SPAN&gt;int&lt;/SPAN&gt; &lt;SPAN&gt;ov5645_link_setup&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;ov5645_link_setup(...)这样的结构体和函数。&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;参考了ov5640.c和其它摄像头的驱动代码，发现link_setup函数几乎只是简单的返回0值，没有什么实际动作，于是我在&lt;SPAN&gt;mxc_md_create_link中，删除了这一步骤（我不确定这样做是否有其它负面影响，但目前来看可以向下推进）。&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Versenkt_0-1709096961048.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/265437iFB0EAF1AF732AE23/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Versenkt_0-1709096961048.png" alt="Versenkt_0-1709096961048.png" /&gt;&lt;/span&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;目前遇到的问题：&lt;/P&gt;&lt;P&gt;1. 系统启动时，似乎没有自动执行creat link相关的动作，内核日志中，ov5645驱动探测到i2c上的摄像头后，没有出现mx8-img-md打印的任何日志，/dev下也没有任何摄像头相关的设备出现。&amp;nbsp; 我注意到，内核日志中，系统启动时ov5645被探测到的时间出现在imx8_media_dev之后，这是否和问题1有关？完整的日志在附件中。&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Versenkt_4-1709098398004.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/265442iBA5870B9477B1A23/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Versenkt_4-1709098398004.png" alt="Versenkt_4-1709098398004.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;2. 我可以通过modprobe手动重新加载imx8-media-dev模块，此时出现了预期中的日志信息，同时/dev下出现了media0, v4l-subdev0和v4l-subdev1，但依旧没有对应的video设备。&lt;/P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Versenkt_1-1709097577946.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/265438i0FF3809C99098F0E/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Versenkt_1-1709097577946.png" alt="Versenkt_1-1709097577946.png" /&gt;&lt;/span&gt;&lt;P&gt;日志中的+++++表示这是我加入的debug信息。&lt;/P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Versenkt_2-1709097777168.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/265439i87FCE4894B88A64B/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Versenkt_2-1709097777168.png" alt="Versenkt_2-1709097777168.png" /&gt;&lt;/span&gt;&lt;P&gt;可能因为我本次构建镜像时，使用了imx-image-core导致缺少部分组件，decoder和encoder对应的videoX信息没能正常被读取？在imx-image-multimedia镜像中是正常的。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;3. 请问在imx8mp平台上，是哪段驱动代码在产生摄像头的/dev/videoX设备节点？根据一些搜索到的资料，似乎是在调用video_register_device函数时产生，但有很多处代码都在调用这个函数&lt;/P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Versenkt_5-1709098632595.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/265445iACD0B6211DC175D1/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Versenkt_5-1709098632595.png" alt="Versenkt_5-1709098632595.png" /&gt;&lt;/span&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 28 Feb 2024 05:38:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OV5645%E6%91%84%E5%83%8F%E5%A4%B4%E9%A9%B1%E5%8A%A8%E6%B2%A1%E6%9C%89-dev-videoX%E8%AE%BE%E5%A4%87/m-p/1817103#M220507</guid>
      <dc:creator>Versenkt</dc:creator>
      <dc:date>2024-02-28T05:38:17Z</dc:date>
    </item>
    <item>
      <title>Re: OV5645摄像头驱动没有/dev/videoX设备</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/OV5645%E6%91%84%E5%83%8F%E5%A4%B4%E9%A9%B1%E5%8A%A8%E6%B2%A1%E6%9C%89-dev-videoX%E8%AE%BE%E5%A4%87/m-p/1820018#M220693</link>
      <description>&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;看来是我犯了个低级错误。设备树中，csi对应的isi或isp默认是关闭状态的，需要使能，然后linux内就可正常出现video设备了。&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;&amp;amp;isi_1 {
    status = "okay";

    cap_device {
        status = "okay";
    };
};&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 04 Mar 2024 01:52:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/OV5645%E6%91%84%E5%83%8F%E5%A4%B4%E9%A9%B1%E5%8A%A8%E6%B2%A1%E6%9C%89-dev-videoX%E8%AE%BE%E5%A4%87/m-p/1820018#M220693</guid>
      <dc:creator>Versenkt</dc:creator>
      <dc:date>2024-03-04T01:52:18Z</dc:date>
    </item>
  </channel>
</rss>

