Petalinux 工程:
設置好 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
CD 到新建的 Petalinux 工程下:
cd xilinx-zcu106-2022.2/
在上面 AMD Vivado? Design Suite 生成的 .xsa 文件導入到 Petalinux 工程:
petalinux-config --get-hw-description=/v_multi_scaler_0_ex/
XSA 文件在
/v_multi_scaler_0_ex/.
System Configuration:
在 System Configuration 配置頁面,選擇 DTG settings。
在 DTG settings頁面,按”n”把“Remove PL from device tree”勾掉,確保這個選項不要選上。
在 DTG Settings→kernel Bootargs→Add extra boot args,可以加上 cma=1700M。
在 System Configuration 配置頁面,選擇 FPGA Manager,按“n”把 FPGA Manager 選項勾掉。
Kernel Configuration:
運行下面命令:
Petalinux-config -c kernel
在Kernel配置頁面, 確保CONFIG_VIDEO_XILINX, CONFIG_VIDEO_DEV, CONFIG_VIDEO_V4L2, CONFIG_VIDEO_XILINX_MULTISCALER 這些選項都已經配置好。
可以在 Kernel 配置頁面,用‘/’來搜索這些配置是否已經設置。
Rootfs 配置:
運行下面命令,配置 Rootfs:
petalinux-config -c rootfs
在 Filesystem Packages→misc→v4l-utils,配置好 v4l-utils, libv4l, media-ctl。
在Filesystem Packages→misc→gstreamer1.0-plugins-good,按”y”把下面選項都勾上。
編譯 Petalinux工程:
petalinux-build
創建 Boot Image:
cd images/linux
petalinux-package --boot --fsbl zynqmp_fsbl.elf --u-boot u-boot.elf --pmufw pmufw.elf --fpga system.bit
拷貝 Image 到 SD card:
把生成的BOOT.BIN, system.dtb, Image, rootfs.cpio.gz.u-boot, boot.scr 拷貝搭配 SD card。
ZCU106 板卡設置與連接:
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.
Insert the SD card with the images copied into the SD card slot J100.
Set the SW6 switches as shown in the below Figure. This configures the boot settings to boot from SD.
Connect 12V Power to the ZCU106 6-Pin Molex connector.
Set up a terminal session between a PC COM port and the serial port on the evaluation board.
Run the image on ZCU106:
在 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
把 SD card mount 到 /mnt/。
mount /dev/mmcblk0p1 /mnt/
把剛才生成的 out_chan0.rgb 拷貝到 /mnt。
cp out_chan0.rgb /mnt/
在 YUV player 打開 out_chan0.rgb
設置 YUV player 的 size 為 1080p,color 為 RGB24, zoom 設置為1:2或者1:4。打開out_chan0.rgb,就能看到下面圖片:
Multi-scaler 在 linux 的 debug:
比較常見的問題,是在運行上面的 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。
Multi-scaler 的第一個node, 它的 gstreamer element 是 "v4l2convert" 而不是 "v4l2video0convert",之前第一個node是v4l2video0convert,第二個node是v4l2video1convert,現在 1st node 是 "v4l2convert",2nd 是“v4l2video1convert ”。
-
amd
+關注
關注
25文章
5375瀏覽量
133394 -
Linux
+關注
關注
87文章
11125瀏覽量
207934 -
Xilinx
+關注
關注
70文章
2137瀏覽量
120407 -
文件
+關注
關注
1文章
551瀏覽量
24563
原文標題:開發者分享|Multi-Scaler IP 的 Linux 示例以及 Debug (下)
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發者社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論