Petalinux实现qt程序输出

本文转载自:FPGA入门的CSDN博客

注:本文由作者授权转发,如需转载请联系作者本人

1、本教程涉及到linux版本下安装vivado(vitis)、qt和petalinux的安装。

2、版本对应详见手册UG1144。
Ubuntu Linux Workstaton/Server 18.04.02 (64-bit)
Xilinx_Vitis_2019.2_1106_2127.tar.gz(需从官网下载,某盘的可能不好用)
qt-opensource-linux-x64-5.12.0.run
petalinux-v2019.2-final-installer.run

3、虚拟机中安装Ubuntu,处理器最好1个,在后期petalinux的某些进程编译中,如果核心较多,容易导致特定操作内存溢出,编译失败,内存8G或以上,硬盘最好200G以上。安装完成后,取消系统的自动检测更新。

4、安装一些支持库
(1)sudo passwd
123456
123456
(2)首先安装网络,使linux系统能在win下进行操作控制
sudo apt-get update
sudo apt-get install -y vim gedit net-tools openssh-server ssh
service sshd start
(3)sudo apt-get install -y tftpd tftp openbsd-inetd
在虚拟机中
sudo gedit /etc/inetd.conf
增加
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
保存退出 在ect文件夹中新建tftpboot文件夹
sudo mkdir /tftpboot
sudo chmod 777 /tftpboot
/ect/init.d/openbsd-inetd restart
(4)在将dash修改为bash
sudo dpkg-reconfigure dash
(5)安装ug1144中的依赖库
sudo apt-get install -y tofrodos iproute2 gawk make libncurses5-dev tftpd zlib1g:i386 libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential screen pax gzip python
(6)安装一些其他的库(可装可不装,以后的工程可能会用到)
sudo apt-get install -y git xvfb bc gperf texi2html help2man device-tree-compiler qemu-user-static binfmt-support multistrap lib32z1 lib32ncurses5 libbz2-1.0 lib32stdc++6 kpartx zerofree u-boot-tools rpm2cpio

5、查看linux ip地址,外部xftp(传安装包和文件)和xshell(通信)。
将三个安装包全部放到linux home下的一个bag文件夹下(放在哪随意),由于vivado的解压和安装消耗硬盘的空间很大,可以先对vivado进行安装。

6、安装vivado2019.2
(1)修改权限
sudo chmod +x Xilinx_Vitis_2019.2_1106_2127.tar.gz
(2)解压
sudo tar xvzf Xilinx_Vitis_2019.2_1106_2127.tar.gz
(3)安装
./xsetup
(4)选择路径,推荐都安装在用户文件夹下,比如我的lcl下,新建vivado201902,和win一样等待安装完成即可。
(5)lic文件和win下的一样load即可。
(6)制作vivado启动环境
gedit vivado201902.sh
文本中编辑,这样每次source vivado201902.sh即可启动gui
cd /home/lcl/Vivado201902/Vivado/2019.2/
source settings64.sh
vivado
(7)制作vitis启动环境
gedit vitis201902.sh
文本中编辑,这样每次source vitis201902.sh即可启动gui
cd /home/lcl/Vivado201902/Vitis/2019.2/
source settings64.sh
vitis
当运行vitis时,会长生bug,
(Vitis IDE:32161): GLib-CRITICAL **: 22:50:31.277: g_base64_encode_step: assertion ‘in != NULL’ failed
解决方法:
sudo apt install gnome-tweak-tool
在左下角全部软件中,找到Tweaks,打开后,将application设置为default。
(8)linux版vivado安装完成。

7、安装petalinux
(1)修改权限
sudo chmod +x petalinux-v2019.2-final-installer.run
(2)安装
./petalinux-v2019.2-final-installer.run …/Petalinux201902/
(3)三次qy后,进行安装,等待安装完成。
(4)制作启动环境
gedit petalinux201902.sh
文本中编辑,这样每次source petalinux201902.sh即可激活环境
cd /home/lcl/Petalinux201902/
source settings.sh

8、安装qt(vivado里面qt库版本是5.11.3不清楚会不会有问题)
(1)修改权限
sudo chmod +x qt-opensource-linux-x64-5.12.1.run
(2)安装
./qt-opensource-linux-x64-5.12.0.run
(3)登陆账号,工具全部选上(也可以按需选择)
(4)制作启动环境
gedit qt512.sh
文本中编辑,这样每次source qt512.sh即可打开gui
cd /home/lcl/Qt512/Tools/QtCreator/bin/
./qtcreator

9、所有安装后的文件界面

10、首先window下创建u96工程(也可以在linux下,因为是虚拟机核心较少,在外面会比较快),我的板卡是ultra96 v1
例子很简单 一个dma回环的例程

11、生成bit后,导出xsa文件。

12、在linux创建工程文件夹,将xsa和bit文件复制到xsa文件夹下。

13、运行petalinux环境

14、新建工程u96_dma
petalinux-create --type project --template zynqMP --name u96_dma

15、进入到工程文件夹
petalinux-config --get-hw-description=…/xsa/
将串口由编号0更改到编号1(硬件问题)保存退出

16、配置一些文件系统
petalinux-config -c rootfs
(1)qt

(2)qt_extended

(3)x11



17、编译工程(只有一个核,大概编译了一个晚上)
petalinux-build
(如果有条件的话,最好翻墙,这个时候要下载大量的安装包,可能会快,否则有的时候会特别特别慢)。

18、打包文件
petalinux-package --boot --fsbl zynqmp_fsbl.elf --u-boot u-boot.elf --pmufw pmufw.elf --fpga system.bit

19、制作sdk(只有一个核,大概编译了另一个晚上)
petalinux-build --sdk

20、制作系统文件

21、将sd卡格式化两个分区,一个主分区4G FAT32格式命名BOOT 另一个文件系统分区exFAT格式 命名rootfs
将BOOT.BIN和image.ub复制到BOOT分区中,将rootfs.cpio.gz复制到rootfs分区,并解压。
开发板上电登录
用户名:root
密码:root

22、QT编译例程,打开qt
同时安装库,一会编译要用
sudo apt-get install libgl1-mesa-dev
新建一个空工程

在ui中 加入push button和lable

编辑使点击按钮后输出hello。

修改完成后点击保存并编译运行。

功能正常
23、制作开发板能运行的程序
(1)在qt开发工具UI中,点击tools->options
在kits中 clone原来那个

(2)修改工具名U96 64bit
(3)修改device type 为generic linux device
(4)sysroot 选择编译后的sysrotfs
(5)qt version qt5.11.3(这是petalinux含qt的系统版本)
(6)点击compilers

(7)在manual c中
修改name 为 aarch64-linux-GCC
compiler path:
/home/lcl/prj/u96_dma/u96_dma/images/linux/sdk/sysroots/x86_64-petalinux-linux/usr/bin/aarch64-xilinx-linux
(8)

(9)在manual c中
修改name 为 aarch64-linux-G++
compiler path:
/home/lcl/prj/u96_dma/u96_dma/images/linux/sdk/sysroots/x86_64-petalinux-linux/usr/bin/aarch64-xilinx-linux
(10)在qt versions中

manual中选择(下图仅仅是列出完整路径)

(11)点击ok,如果前面没有报错的情况下,所有的文件都是能找到的。
(10)在project中选择U96

(11)点击编译,编译的项目无法在linux系统中运行,需要到开发板中使用。

24、将文件复制到u盘
25、mkdir /mnt/usb
26、mount /dev/sda1 /mnt/usb
27、cd /mnt/usb
28、关闭所有图像界面
killall Xorg
export DISPLAY=:0.0
Xorg -depth 16&
./ui_test
参见UG1209

29、实验结果

30、图像显示界面成功,耗时3天。

31,configure accelerate compile petalinux
xilinx download
(1)download
(2)aarch64 sstate-cache(zynqMP)
(3)arm sstate-cache(zynq)
(4)mbfull sstate-cache(mb-fulle)
(5)mblite sstate-cache(mb-lite)
32,unzip download and aarch64 sstate-cache to petalinux installation path

tar xzf downloads_2019.2.tar.gz -C …/Petalinux2019
tar xzf sstate_aarch64_2019.2.tar.gz -C …/Petalinux2019
tar xzf sstate_arm_2019.2.tar.gz -C …/Petalinux2019

after this,can see

drwxr-xr-x 5 lcl lcl 4096 10月 25 2019 components
drwxr-xr-x 2 lcl lcl 4096 10月 25 2019 doc
drwxr-xr-x 6 lcl lcl 40960 10月 26 2019 downloads
drwxr-xr-x 8 lcl lcl 4096 10月 25 2019 etc
-rw-r–r-- 1 lcl lcl 2519 10月 25 2019 settings.csh
-rw-r–r-- 1 lcl lcl 2763 10月 25 2019 settings.sh
drwxr-xr-x 3 lcl lcl 4096 10月 26 2019 sstate_aarch64_2019.2
drwxr-xr-x 5 lcl lcl 4096 11月 3 09:58 tools
33,
when petalinux-config --get-hw-description=…/xsa

in this path
-Yocto Settings —>
Add pre-mirror url —>
downloads full path
eg:
file:///home/lcl/Soft/Petalinux201902/downloads
Local sstate feeds settings —>
aarch64 full path
eg:
/home/lcl/Soft/Petalinux201902/sstate_aarch64_2019.2/aarch64
34,
until petalinux-build
the progaram will not execute downloads,so we can do this without internet.
35,
petalinux-build --sdk
if petalinux-config -c rootfs contain qt5 and so on ,it will download something from yocto and qt,some errors occur without internet.
36,end

最新文章

最新文章