开发者分享|Multi-Scaler IP 的 Linux 示例以及 Debug (下)

科技   2024-06-25 19:01   中国香港  


本文作者:AMD 工程师 Nathan Xu


您可点击开发者分享|Multi-Scaler IP 的 Linux 示例以及 Debug (上)查看上篇文章。


Petalinux 工程:


1.设置好 2022.2 Petalinux 环境。使用 2022.2 ZCU06 BSP,创建 Petalinux 工程:

petalinux-create $BSP_DIR/xilinx-zcu106-v2022.2-final.bsp

这个例子的 BSP_DIR= /proj/petalinux/released/Petalinux v2022.2/finalrelease/release/petalinux-v2022.2_10141622/bsp/release


2. CD 到新建的 Petalinux 工程下:

cd xilinx-zcu106-2022.2/


3. 在上面 AMD Vivado™ Design Suite 生成的 .xsa 文件导入到 Petalinux 工程:

petalinux-config --get-hw-description=<your directory>/v_multi_scaler_0_ex/

XSA 文件在

<your directory>/v_multi_scaler_0_ex/.


System Configuration:


4. 在 System Configuration 配置页面,选择 DTG settings。


5. 在 DTG settings页面,按”n”把“Remove PL from device tree”勾掉,确保这个选项不要选上。


6.在 DTG Settings→kernel Bootargs→Add extra boot args,可以加上 cma=1700M。


7. 在 System Configuration 配置页面,选择 FPGA Manager,按“n”把 FPGA Manager 选项勾掉。


Kernel Configuration:


8. 运行下面命令:

Petalinux-config -c kernel


9. 在Kernel配置页面, 确保CONFIG_VIDEO_XILINX, CONFIG_VIDEO_DEV, CONFIG_VIDEO_V4L2, CONFIG_VIDEO_XILINX_MULTISCALER 这些选项都已经配置好。


10. 可以在 Kernel 配置页面,用‘/’来搜索这些配置是否已经设置。


Rootfs 配置:


11. 运行下面命令,配置 Rootfs:

petalinux-config -c rootfs


12. 在 Filesystem Packages→misc→v4l-utils,配置好 v4l-utils, libv4l, media-ctl。


13. 在Filesystem Packages→misc→gstreamer1.0-plugins-good,按”y”把下面选项都勾上。

编译 Petalinux工程:


14. petalinux-build


创建 Boot Image:


15. cd images/linux


16. petalinux-package --boot --fsbl zynqmp_fsbl.elf --u-boot u-boot.elf --pmufw pmufw.elf --fpga system.bit


拷贝 Image 到 SD card:


17. 把生成的BOOT.BIN, system.dtb, Image, rootfs.cpio.gz.u-boot, boot.scr 拷贝搭配 SD card。


ZCU106 板卡设置与连接:


18. Connect the Micro USB cable into the ZCU106 Board Micro USB port J83, and the other end into an open USB port on the host PC. This cable is used for UART over USB communication.


19. Insert the SD card with the images copied into the SD card slot J100.


20. Set the SW6 switches as shown in the below Figure. This configures the boot settings to boot from SD.


21. Connect 12V Power to the ZCU106 6-Pin Molex connector.


22. Set up a terminal session between a PC COM port and the serial port on the evaluation board.


Run the image on ZCU106:


23. 在 Linux Booting 完成后,运行下面的 gst-launch 命令:

gst-launch-1.0 videotestsrc num-buffers=50 ! video/x-raw, width=3840, height=2160, format=RGB ! queue min-threshold-buffers=2 max-size-bytes=0 ! v4l2convert capture-io-mode=4 output-io-mode=4 ! video/x-raw, width=1920, height=1080, format=RGB ! filesink location=./out_chan0.rgb


24. 把 SD card mount 到 /mnt/。

mount /dev/mmcblk0p1 /mnt/


25. 把刚才生成的 out_chan0.rgb 拷贝到 /mnt。

cp out_chan0.rgb /mnt/


在 YUV player 打开 out_chan0.rgb


26. 设置 YUV player 的 size 为 1080p,color 为 RGB24, zoom 设置为1:2或者1:4。打开out_chan0.rgb,就能看到下面图片:



Multi-scaler 在 linux 的 debug:


27. 比较常见的问题,是在运行上面的 gst-launch 命令,找不到“v4l2convert” element。遇到这个错误,需要看 multi-scaler 在 boot log 有没有 probe。一个经常看到的原因是 multi-scaler 的 device tree 里 reset-gpios 这个 property 是必须的,但 DTG 有的时候没有产生这个 property,或者是 gpio 没有连接到 multi-scaler 的 reset 管脚,所以确保 reset-gpios 这个 property 在 device tree, 否则就会看到错误。下面是 video multi-scaler device tree 的参考例子,如果不确定 device tree 是否正确,对比下面的例子,检查 device tree 是否有缺少的 property。



28. Multi-scaler 的第一个node, 它的 gstreamer element 是 "v4l2convert" 而不是 "v4l2video0convert",之前第一个node是v4l2video0convert,第二个node是v4l2video1convert,现在 1st node 是 "v4l2convert",2nd 是“v4l2video1convert ”。




AMD 自适应 SOC 及 FPGA 中文技术支持社区

欢迎您访问本社区论坛:

[https://support.xilinx.com/s/?language=zh_CN]

我们希望能帮助您快速找到所需内容。本网站是AMD 自适应 SoC 及 FPGA 支持资源登录页面,其中包括我们的知识库、社区论坛以及指向更多内容的链接。搜索并探索您所选主题的内容,然后登录以查看更多支持选项。



XILINX开发者社区
Xilinx开发者社区源于社区,服务社区,是面向广大开发者与产学研合作的平台,以技术为驱动,创建共享知识社区。(注: Xilinx is now a part of AMD)
 最新文章