Difference between revisions of "VEYE CS Camera on MYIR i.MX8 board/zh"

From wiki_veye
Jump to navigation Jump to search
(Created page with "English")
 
Line 1: Line 1:
 
[[VEYE CS Camera on MYIR i.MX8 board|English]]
 
[[VEYE CS Camera on MYIR i.MX8 board|English]]
 +
 +
'''<big>如何在米尔科技i.MX8m板子上使用VEYE系列和CS系列摄像头模组</big>'''
 +
 +
=== 概述 ===
 +
米尔科技MYD-JX8MX开发板采用i.MX8M处理器,MYD-C8MMX采用了i.MX 8M Mini处理器,我们制作了专用的转接板,VEYE-MIPI-327S、CS-MIPI-IMX307、CS-MIPI-SC132等MIPI模组可以连接上。
 +
 +
在米尔官方资料(L4.19.35版本)基础上,增加了我们的摄像头模组驱动,并提供了一些应用层的例程。一般情况下,只需使用我们已编译好的Image和DTB,非必要情况下,无需根据代码进行编译。
 +
 +
特殊的,在这个i.MX平台上,摄像头采用了YUYV格式。
 +
 +
=== 硬件准备及安装 ===
 +
TODO(Pciture)
 +
 +
=== 更新MYD-JX8MX系统 ===
 +
 +
===== 烧写米尔官方标准系统 =====
 +
参考《MYD-JX8MX-Software-Manual-zh-V1.3.pdf》,烧写米尔科技标准版本系统。
 +
 +
===== 使用编译好的Image和dtb =====
 +
MYD-JX8MX板子的Image和dtb文件,保存在emmc的FAT分区,系统启动后,自动挂载到/run/media/mmcblk0p1/目录。
 +
 +
在HostPC:
 +
 +
<code>git clone <nowiki>https://github.com/veyeimaging/myir_nxp_i.mx.git</nowiki></code>
 +
 +
解压kernel Image,将Image和dtb文件拷贝到MYD-JX8MX板子上。
 +
 +
<code>cp <your path>/Image /run/media/mmcblk0p1/</code>
 +
 +
<code>cp <your path>/myb-fsl-imx8mq-evk-veye327.dtb /run/media/mmcblk0p1/myb-fsl-imx8mq-evk.dtb</code>
 +
 +
重启MYD-JX8MX板子即可。
 +
 +
=== 应用和测试 ===
 +
 +
===== 下载bsp并传到板卡上 =====
 +
<code>git clone <nowiki>https://github.com/veyeimaging/nxp_i.mx_veye_bsp.git</nowiki></code>
 +
 +
完成系统安装后,在MYD-JX8MX板端执行以下命令来检测是否正确连接摄像头。
 +
 +
===== 系统状态检测 =====
 +
 +
*VEYE-MIPI-327
 +
 +
<code>dmesg | grep veye327</code>  
 +
 +
应当有类似如下提示:
 +
 +
<code>camera veye327_mipi is found</code>
 +
 +
<code>Registered sensor subdevice: veye327_mipi <0/1>-003b</code>
 +
 +
*CS-MIPI-IMX307
 +
 +
<code>dmesg | grep csimx307</code>  
 +
 +
应当有类似如下提示:
 +
 +
<code>camera csimx307_mipi is found</code>
 +
 +
<code>Registered sensor subdevice: csimx307_mipi  <0/1>-003b</code>
 +
 +
*CS-MIPI-SC132
 +
 +
<code>dmesg | grep cssc132</code>  
 +
 +
应当有类似如下提示:
 +
 +
<code>camera cssc132_mipi is found</code>
 +
 +
<code>Registered sensor subdevice: cssc132_mipi <0/1>-003b</code>
 +
 +
正确是识别摄像头之后,两个MIPI-CSI2接口的摄像头分别识别挂载到i2c-0,i2c-1,识别为/dev/video0和/dev/video1。
 +
====列出摄像头支持的模式====
 +
<code>v4l2-ctl --list-formats-ext -d /dev/video<0/1></code>
 +
 +
===== 视频流测试 =====
 +
<code>export DISPLAY=:0</code>
 +
 +
*视频预览(VEYE-MIPI-327S,CS-MIPI-IMX307 @1080p mode)
 +
 +
<code>gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw,width=1920,height=1080,framerate=(fraction)30/1' ! waylandsink</code>
 +
 +
*抓拍一张图片(VEYE-MIPI-327S,CS-MIPI-IMX307 @1080p mode)
 +
 +
<code>gst-launch-1.0 v4l2src num-buffers=1 device=/dev/video0 ! 'video/x-raw, width=1920,height=1080' ! jpegenc ! filesink location=test_image.jpg</code>
 +
 +
*v4l2grab抓拍一张图片(VEYE-MIPI-327S,CS-MIPI-IMX307 @1080p mode)
 +
 +
<code>./v4l2grab -d /dev/video0 -W 1920 -H 1080 -I 30 -o picture.jpg</code>
 +
====I2C脚本====
 +
由于我们的摄像头参数自由度比较高,并没有采用V4L2参数进行控制,而是使用脚本进行参数配置。
 +
 +
https://github.com/veyeimaging/nxp_i.mx_veye_bsp/tree/main/i2c_cmd
 +
 +
[[VEYE MIPI 290/327 for Raspberry Pi/zh#.E8.A7.86.E9.A2.91.E6.8E.A7.E5.88.B6.E8.BD.AF.E4.BB.B6.E5.8C.85.E4.BD.BF.E7.94.A8|VEYE系列参数控制软件包使用说明]]
 +
 +
[[CS-MIPI-X for Raspberry Pi/zh#.E8.A7.86.E9.A2.91.E6.8E.A7.E5.88.B6.E8.BD.AF.E4.BB.B6.E5.8C.85.E4.BD.BF.E7.94.A8|CS系列参数控制软件包使用说明]]
 +
 +
=== 驱动的源代码编译 ===
 +
以下操作均在ubuntu Host PC上进行。
 +
 +
===== 准备编译环境 =====
 +
参考官方文档《MYD-JX8MX-Software-Manual-zh-V1.3.pdf》,部署开发环境。注意,如果只为了编译kernel,可以不使用yocto。当然,使用yocto也是没问题的。03-Tools目录下存在编译工具链安装脚本,直接执行即可。
 +
 +
<code>./fsl-imx-xwayland-glibc-x86_64-meta-toolchain-aarch64-toolchain-4.19-warrior.sh</code>
 +
 +
安装编译工具链之后,执行:
 +
 +
<code>source /opt/fsl-imx-xwayland/4.19-warrior/environment-setup-aarch64-poky-linux</code>
 +
 +
===== 编译标准版本 =====
 +
将官方提供的<code>fsl-release-yocto.tar.gz</code>拷贝到开发主机,并解压。
 +
 +
<code>fsl-release-yocto/linux-imx</code>目录下已经提供了linux的源码。
 +
 +
<code>cd fsl-release-yocto/linux-imx</code>
 +
 +
<code>make ARCH=arm64 CROSS_COMPILE=aarch64-poky-linux- defconfig</code>
 +
 +
<code>make ARCH=arm64 CROSS_COMPILE=aarch64-poky-linux- -j4</code>
 +
 +
====Patch我们的代码====
 +
 +
*Driver source code
 +
 +
<code>git clone <nowiki>https://github.com/veyeimaging/nxp_i.mx_veye_bsp.git</nowiki></code>
 +
 +
camera驱动源码路径为: linux/drivers/media/platform/mxc/capture,将camera驱动的源码放到对应目录。
 +
 +
*Modify the the Makefile and Kconfig files
 +
 +
修改同路径下的Config和Makefile,增加对应camera驱动。
 +
 +
*dts file
 +
 +
<code>git clone <nowiki>https://github.com/veyeimaging/myir_nxp_i.mx.git</nowiki></code>
 +
 +
dts文件路径为:linux/arch/arm64/boot/dts/freescale,将dts文件放到此路径。
 +
 +
*Modify dts Makefile
 +
 +
修改同路径下的Makefile,增加对应dts编译选项。
 +
====增加编译选项====
 +
<code>make menuconfig</code>
 +
 +
增加对应camera模块驱动的编译选项,路径为 Device Drivers > Multimedia support > V4L platform devices > MXC Camera/V4L2 PRP Features support 。
 +
====编译输出====
 +
<code>make Image dtbs -j4</code>
 +
 +
=== 参考资料 ===
 +
官方资料: http://down.myir-tech.com/MYD-JX8MX/

Revision as of 14:20, 5 February 2021

English

如何在米尔科技i.MX8m板子上使用VEYE系列和CS系列摄像头模组

1 概述

米尔科技MYD-JX8MX开发板采用i.MX8M处理器,MYD-C8MMX采用了i.MX 8M Mini处理器,我们制作了专用的转接板,VEYE-MIPI-327S、CS-MIPI-IMX307、CS-MIPI-SC132等MIPI模组可以连接上。

在米尔官方资料(L4.19.35版本)基础上,增加了我们的摄像头模组驱动,并提供了一些应用层的例程。一般情况下,只需使用我们已编译好的Image和DTB,非必要情况下,无需根据代码进行编译。

特殊的,在这个i.MX平台上,摄像头采用了YUYV格式。

2 硬件准备及安装

TODO(Pciture)

3 更新MYD-JX8MX系统

3.1 烧写米尔官方标准系统

参考《MYD-JX8MX-Software-Manual-zh-V1.3.pdf》,烧写米尔科技标准版本系统。

3.2 使用编译好的Image和dtb

MYD-JX8MX板子的Image和dtb文件,保存在emmc的FAT分区,系统启动后,自动挂载到/run/media/mmcblk0p1/目录。

在HostPC:

git clone https://github.com/veyeimaging/myir_nxp_i.mx.git

解压kernel Image,将Image和dtb文件拷贝到MYD-JX8MX板子上。

cp <your path>/Image /run/media/mmcblk0p1/

cp <your path>/myb-fsl-imx8mq-evk-veye327.dtb /run/media/mmcblk0p1/myb-fsl-imx8mq-evk.dtb

重启MYD-JX8MX板子即可。

4 应用和测试

4.1 下载bsp并传到板卡上

git clone https://github.com/veyeimaging/nxp_i.mx_veye_bsp.git

完成系统安装后,在MYD-JX8MX板端执行以下命令来检测是否正确连接摄像头。

4.2 系统状态检测
  • VEYE-MIPI-327

dmesg | grep veye327  

应当有类似如下提示:

camera veye327_mipi is found

Registered sensor subdevice: veye327_mipi <0/1>-003b

  • CS-MIPI-IMX307

dmesg | grep csimx307  

应当有类似如下提示:

camera csimx307_mipi is found

Registered sensor subdevice: csimx307_mipi <0/1>-003b

  • CS-MIPI-SC132

dmesg | grep cssc132  

应当有类似如下提示:

camera cssc132_mipi is found

Registered sensor subdevice: cssc132_mipi <0/1>-003b

正确是识别摄像头之后,两个MIPI-CSI2接口的摄像头分别识别挂载到i2c-0,i2c-1,识别为/dev/video0和/dev/video1。

4.3 列出摄像头支持的模式

v4l2-ctl --list-formats-ext -d /dev/video<0/1>

4.3.1 视频流测试

export DISPLAY=:0

  • 视频预览(VEYE-MIPI-327S,CS-MIPI-IMX307 @1080p mode)

gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw,width=1920,height=1080,framerate=(fraction)30/1' ! waylandsink

  • 抓拍一张图片(VEYE-MIPI-327S,CS-MIPI-IMX307 @1080p mode)

gst-launch-1.0 v4l2src num-buffers=1 device=/dev/video0 ! 'video/x-raw, width=1920,height=1080' ! jpegenc ! filesink location=test_image.jpg

  • v4l2grab抓拍一张图片(VEYE-MIPI-327S,CS-MIPI-IMX307 @1080p mode)

./v4l2grab -d /dev/video0 -W 1920 -H 1080 -I 30 -o picture.jpg

4.4 I2C脚本

由于我们的摄像头参数自由度比较高,并没有采用V4L2参数进行控制,而是使用脚本进行参数配置。

https://github.com/veyeimaging/nxp_i.mx_veye_bsp/tree/main/i2c_cmd

VEYE系列参数控制软件包使用说明

CS系列参数控制软件包使用说明

5 驱动的源代码编译

以下操作均在ubuntu Host PC上进行。

5.1 准备编译环境

参考官方文档《MYD-JX8MX-Software-Manual-zh-V1.3.pdf》,部署开发环境。注意,如果只为了编译kernel,可以不使用yocto。当然,使用yocto也是没问题的。03-Tools目录下存在编译工具链安装脚本,直接执行即可。

./fsl-imx-xwayland-glibc-x86_64-meta-toolchain-aarch64-toolchain-4.19-warrior.sh

安装编译工具链之后,执行:

source /opt/fsl-imx-xwayland/4.19-warrior/environment-setup-aarch64-poky-linux

5.2 编译标准版本

将官方提供的fsl-release-yocto.tar.gz拷贝到开发主机,并解压。

fsl-release-yocto/linux-imx目录下已经提供了linux的源码。

cd fsl-release-yocto/linux-imx

make ARCH=arm64 CROSS_COMPILE=aarch64-poky-linux- defconfig

make ARCH=arm64 CROSS_COMPILE=aarch64-poky-linux- -j4

5.3 Patch我们的代码

  • Driver source code

git clone https://github.com/veyeimaging/nxp_i.mx_veye_bsp.git

camera驱动源码路径为: linux/drivers/media/platform/mxc/capture,将camera驱动的源码放到对应目录。

  • Modify the the Makefile and Kconfig files

修改同路径下的Config和Makefile,增加对应camera驱动。

  • dts file

git clone https://github.com/veyeimaging/myir_nxp_i.mx.git

dts文件路径为:linux/arch/arm64/boot/dts/freescale,将dts文件放到此路径。

  • Modify dts Makefile

修改同路径下的Makefile,增加对应dts编译选项。

5.4 增加编译选项

make menuconfig

增加对应camera模块驱动的编译选项,路径为 Device Drivers > Multimedia support > V4L platform devices > MXC Camera/V4L2 PRP Features support 。

5.5 编译输出

make Image dtbs -j4

6 参考资料

官方资料: http://down.myir-tech.com/MYD-JX8MX/