Petalinux 工程:
設(shè)置好 2022.2 Petalinux 環(huán)境。使用 2022.2 ZCU06 BSP,創(chuàng)建 Petalinux 工程:
petalinux-create $BSP_DIR/xilinx-zcu106-v2022.2-final.bsp
這個(gè)例子的 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 文件導(dǎo)入到 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”勾掉,確保這個(gè)選項(xiàng)不要選上。
在 DTG Settings→kernel Bootargs→Add extra boot args,可以加上 cma=1700M。
在 System Configuration 配置頁面,選擇 FPGA Manager,按“n”把 FPGA Manager 選項(xiàng)勾掉。
Kernel Configuration:
運(yùn)行下面命令:
Petalinux-config -c kernel
在Kernel配置頁面, 確保CONFIG_VIDEO_XILINX, CONFIG_VIDEO_DEV, CONFIG_VIDEO_V4L2, CONFIG_VIDEO_XILINX_MULTISCALER 這些選項(xiàng)都已經(jīng)配置好。
可以在 Kernel 配置頁面,用‘/’來搜索這些配置是否已經(jīng)設(shè)置。
Rootfs 配置:
運(yùn)行下面命令,配置 Rootfs:
petalinux-config -c rootfs
在 Filesystem Packages→misc→v4l-utils,配置好 v4l-utils, libv4l, media-ctl。
在Filesystem Packages→misc→gstreamer1.0-plugins-good,按”y”把下面選項(xiàng)都勾上。
編譯 Petalinux工程:
petalinux-build
創(chuàng)建 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 板卡設(shè)置與連接:
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 完成后,運(yùn)行下面的 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
設(shè)置 YUV player 的 size 為 1080p,color 為 RGB24, zoom 設(shè)置為1:2或者1:4。打開out_chan0.rgb,就能看到下面圖片:
Multi-scaler 在 linux 的 debug:
比較常見的問題,是在運(yùn)行上面的 gst-launch 命令,找不到“v4l2convert” element。遇到這個(gè)錯(cuò)誤,需要看 multi-scaler 在 boot log 有沒有 probe。一個(gè)經(jīng)??吹降脑蚴?multi-scaler 的 device tree 里 reset-gpios 這個(gè) property 是必須的,但 DTG 有的時(shí)候沒有產(chǎn)生這個(gè) property,或者是 gpio 沒有連接到 multi-scaler 的 reset 管腳,所以確保 reset-gpios 這個(gè) property 在 device tree, 否則就會(huì)看到錯(cuò)誤。下面是 video multi-scaler device tree 的參考例子,如果不確定 device tree 是否正確,對(duì)比下面的例子,檢查 device tree 是否有缺少的 property。
Multi-scaler 的第一個(gè)node, 它的 gstreamer element 是 "v4l2convert" 而不是 "v4l2video0convert",之前第一個(gè)node是v4l2video0convert,第二個(gè)node是v4l2video1convert,現(xiàn)在 1st node 是 "v4l2convert",2nd 是“v4l2video1convert ”。
-
amd
+關(guān)注
關(guān)注
25文章
5466瀏覽量
134083 -
Linux
+關(guān)注
關(guān)注
87文章
11292瀏覽量
209318 -
Xilinx
+關(guān)注
關(guān)注
71文章
2167瀏覽量
121293 -
文件
+關(guān)注
關(guān)注
1文章
565瀏覽量
24727
原文標(biāo)題:開發(fā)者分享|Multi-Scaler IP 的 Linux 示例以及 Debug (下)
文章出處:【微信號(hào):gh_2d1c7e2d540e,微信公眾號(hào):XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論