ZYNQ学习之PetaLinux与Vitis的安装

基本都是摘抄正点原子的文章:<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf,因初次学习,仅作学习摘录之用,有不懂之处后续会继续更新~

一、Petalinux安装

1.1、Petalinux资源下载

 百度云安装包:

Petalinux 安装包:百度云-提取码:dv5y 

Petalinux 简介:

        Petalinux 工具是 Xilinx 公司推出的嵌入式 Linux 开发套件,包括了 u-boot、Linux Kernel、device-tree、rootfs 等源码和库,以及 Yocto recipes,可以让客户很方便的生成、配置、编译及自定义 Linux 系统。Petalinux 支持 Versal 、Zynq UltraScale+ MPSoC、Zynq-7000 SoC 以及MicroBlaze,可与 Xilinx 硬件设计工具 Vivado 协同工作,大大简化了 Linux 系统的开发工作。

具体的介绍可访问Petalinux工具网站:

https://china.xilinx.com/products/design-tools/embeddedsoftware/petalinux-sdk.html

(注:需要注册 Xilinx 账号并登陆才能下载)

 

1.2、PetaLinux依赖库以及软件安装

将 petalinux 安装包文件 petalinux-v2020.2-final-installer.run 拷贝到 share 共享目录,在 Ubuntu 系统中,打开终端,切换到/mnt/hgfs/share/目录,可以看到 petalinux 的安装文件 petalinux-v2020.2-final-installer.run 已在该目录,可直接访问,如下图所示:

89275ad3c9724a0a9bd3651fa13c9560.png

在安装 Petalinux 之前需要为 Ubuntu 系统安装一些必要的运行软件以及依赖库,所以需要确保 Ubuntu 能够正常上网。

1.2.1 使用命令安装

打开 Ubuntu Terminal 终端执行如下命令(该命令是一行,不要分开成多行):

sudo apt-get install iproute2 gawk python3 python build-essential gcc git make net-tools libncurses5-dev tftpd zlib1g-dev libssl-dev flex bison libselinux1 gnupg wget git-core diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib automake zlib1g:i386 screen pax gzip cpio python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3

该命令暂未起作用,建议使用官方提供的脚本安装,参考下述2.1.2。

1.2.2 使用 Xilinx 提供的脚本 plnx-env-setup.sh安装。

该脚本可以从如下链接处下载:73296 - PetaLinux: How to install the required packages for the PetaLinux Build Host?

如下图所示:

0f2e919388b54332b6a294e2c21d2293.png

1c3fc122293c4fba8f40468db3d7ed6c.png

a2a082265126448fa34ae928fe92a161.png

将下载后的脚本拷贝到 Ubuntu 虚拟机中(本地共享文件处),打开 Ubuntu Terminal 终端,先切换到本地共享文件夹处,然后执行输入如下命令以执行此脚本:

cd /mnt/hgfs/share

sudo ./plnx-env-setup.sh

先切换到本地共享文件夹处,然后再执行上述命令,如下图所示:

9743057140934fd08e48cdeb6c291259.png

这里需要等待10分钟左右,如果系统中已经有部分库/软件,会弹出配置文件是否需要修改,输入y,如下图:

f5e4279a2dc74256b4abf830ff6d3f2d.png

为什么是Y?

  •  避免这个配置文件有新的默认更新部分,因此这里输入y,更新配置文件。
  •  如果其他库或软件需要这个配置文件并且配置被更改,则删掉其他库或软件再重新安装即可(毕竟工作量是不一样的)。

接下来等待2分钟左右软件以及库安装完成,如下图所示:

fa91369e499d4f07a2d93e34cb50518f.png

1.3 修改bash

Petalinux 工具需要主机系统的/bin/sh 是 bash,而 Ubuntu 默认的/bin/sh 是 dash,所以这里需要进行更改。运行如下命令进行更改:

sudo dpkg-reconfigure dash

执行结果如下图所示:

fef5f8781e6a44ec9d959d803851c3c9.png

选择“否”按下回车即可。

a193a60a2afb4ba5bfe63b6af4b1811d.png

1.4 安装 Petalinux

安装 Petalinux 就要考虑安装位置了,对于 Petalinux 这种体积庞大的工具,将其放在/opt 目录下。

在/opt 目录下新建专门存放 Petalinux 的文件夹,如/opt/pkg/petalinux/2020.2,在终端输入以下命令即可:

sudo chown -R $USER:$USER /opt

mkdir -p /opt/pkg/petalinux/2020.2

chown命令将/opt 目录的属主和属组更改为当前的用户名,如正在用的Ubuntu用户名为gbxluo,执行的 chown 命令就相当于“sudo chown -R gbxluo:gbxluo/opt”,

e98dc4b0bcda49b0996167088359e98b.png

然后通过 mkdir 创建安装目录。

08f49b138b754df7a34b98d8e43991a5.png

现在将 petalinux 安装在/opt/pkg/petalinux/2020.2 目录下,在终端中输入如下命令:

./petalinux-v2020.2-final-installer.run -d /opt/pkg/petalinux/2020.2

执行 Petalinux 的安装,等待 一段时间,当出现 “ Press Enter to display the license agreements”字样的时候,如下图所示:

cab350d7fd3e4d6dbb923067138769c2.png

提示按下回车键显示软件许可协议,按下键盘上的回车键 Enter,显示协议内容如下:

7d3cfd25d3754c1c8a5d548080c304c9.png

直接按下键盘上的 Q 键退出,回到之前的界面之后会出现一个选择项,询问我们是否接受 xilinx 最终用户协议。

b7ca1158bfa54bb2b8cbd2683c9ed038.png

这个显然是没得选,必须接受,否则无法进行下面的安装;输入 y 按回车接受。除了 xilinx 最终用户协议之外,还有两个协议也需要大家接受,会依次显示在终端上,同理也是输入 Y 按下回车接受(同理也是显示协议时,键入q退出)。

c56ad2967cae4e348ff6df1862719187.png

570e0efa8f1d47018fcc6317e558eb98.png

接受所有协议之后 Petalinux 安装工具便会继续安装,直到安装完成。安装完成之后,我们进入到安装目录下,目录内容如下图所示:

e3c489d6d84d4f48a01a8571f16e8b3c.png

1.5 设置 Petalinux 环境变量

在正式使用 petalinux 工具之前,需要先运行 petalinux 安装目录下的 settings.sh 脚本文件设置 petalinux 工作环境,settings.sh 脚本用于 bash,还有一个 settings.csh 用于 C shell,如下图所示:

0b2d9caf258d44088aedb0ae55b71fd0.png

一般默认情况下,使用 bash 登录 shell,所以 source 脚本文件 settings.sh 对 petalinux 所需的运行环境进行配置,命令如下:

cd /opt/pkg/petalinux/2020.2/

source settings.sh

需要注意的是该命令只对当前终端有效,重新打开终端后需要重新执行这一步。执行结果如下图所示:

53f4a00650814fb1bbebf2c3fdb57d9e.png

验证下工作环境是否已设置,在终端输入如下命令:

echo $PETALINUX

结果如下图所示:

7103c9515e464a58aa2ba6d59a09de5b.png

显示 Petalinux 的安装目录,表明工作环境已设置。现在可以使用 Petalinux 工具了。

 

鉴于每次打开终端使用 Petalinux 都需要设置相应的环境变量,我们为了方便,将设置 Petalinux 环境变量的命令设置成别名,这样我们使用起来就方便些。设置别名方法的很简单,在终端输入如下命令:

echo "alias sptl='source $PETALINUX/settings.sh'" >> ~/.bashrc

7058103f828b4f818fb685513c82e80c.png

以后打开终端后,输入 sptl 就可以设置 Petalinux 的环境变量了,无需输入长长的路径。sptl 的记忆法是 Source PeTaLinux 的环境变量

提醒:在使用 linux 的时候要善用别名但不要滥用别名。

应该是不要用关键字!

二、安装 Vitis 软件与JTAG驱动

注意:Vitis安装包含Vivado软件

2.1 Vitis安装包

Vitis 是用来开发 Linux 应用的软件,使用这个软件开发 Linux 应用,既方便了工程管理, 也免去了自己写 Makefile 的必要。

Linux系统下的Vitis与Windows 系统下的Vitis 软件的使用方法基本是一样的。

百度云资源:

Linux版本百度云资源提取码:vy0b 

d56578f6d9d5475b80eb602fb778037e.png

2.2 本地安装 Vitis 软件

2.2.1 解压缩

将百度云中的资源全部下载复制到本地share 共享文件夹下,有如下文件:

Xilinx_Unified_2020.2_1118_1232.z01

Xilinx_Unified_2020.2_1118_1232.z02

Xilinx_Unified_2020.2_1118_1232.z03  
 Xilinx_Unified_2020.2_1118_1232.z04
 Xilinx_Unified_2020.2_1118_1232.zip
安装说明.txt

进入 Ubuntu 系统中,打开终端,切换到/mnt/hgfs/share/目录,可以看到 Vitis 的压缩包文件都已在该目录:

0b9d6108c3ba43fa89b58037691a7746.png

在windows环境下,选中“Xilinx_Unified_2020.2_1118_1232.zip”并右键解压缩,如下图:

6c6dba2af25144dbae80dc18b26e7d2e.png

安装说明内容如下:

注意Vivado(LINUX)下的Vivado安装包的压缩文件比较大,所以我们进行了分包压缩,这里分成了五个压缩包。
安装时需要将该文件夹下的五个压缩包全部下载下来,五个压缩包下载完成后,只需要解压其中的“Xilinx_Unified_2020.2_1118_1232.zip”文件,则可解压全部文件。

3642036ea99840ae9b775eb0a56a9a68.png

 解压后的文件夹:

037d06e7912745b796280dc8d55e5343.png

2.2.2 安装Vitis

解压完成后,进入该文件夹下,输入

sudo ./xsetup

弹出如下图所示的安装界面:

2165e28891b440ee88aa37525185a5ef.png

 

ce7212d236384ff198eb88a63c539261.png

fc2fd32c367141618a389b50f7516ce5.png

点击上图中“Next”,在接下来的安装产品选择界面中,选择默认的“Vitis”,

注意 Vitis 软件包含了 Vivado 软件,然后点击“Next”按钮,如下图所示:

98b700f8355341aab34f2b2edb51842f.png

进入 Vitis Software Platform 设置界面,包含的器件库选项中只保留 Zynq-7000 一项,其 它器件都取消勾选,如下图所示:

a8762d7aaf7f47eaacbbf65c8f191a1f.png

点击“Next”进入许可协议界面,全部勾选同意,如下图所示:

d5452bf489354e24a1aa5757dec17b36.png

点击“Next”,进入安装路径选择界面,这里设置为“/opt/pkg/tools/Xilinx”,如下图所示:

8e63bbdcbeca44b69470f846f1bf9e1c.png

点击“Next”,在弹出的路径确认窗口中点击“yes”,如下图所示:

b338d13d2e6849fdb53736170fde33be.png

接下来进入“Installation Summary”界面,点击“Install”开始下载并安装,如下图所示:

c0e03a2619c841a9ae6ef3360204f491.png

安装需要的时间比较长,我们只需要等待其安装完成就行。

87ee79a9449b4969b57db2ae60e9807a.png

75efa292f0d94ea783af4f0f7983419c.png

关闭Xilinx Information Center:

dfc37c584f2846158a25f7f3a40100e1.png

 

2.2.3 创建Vitis桌面快捷方式

在 Ubuntu 中,所有的快捷方式都是存放在 /usr/share/applications 中的,因此安装完成后,桌面上并没有软件的快捷方式。

解决方法:创建一个类似于“快捷方式”一样的文件放在该目录中即可。

打开终端输入如下命令:

cd /usr/share/applications

sudo gedit Vitis.desktops

在/usr/share/applications目录下创建Vitis.desktop 文件并弹出gedit编辑窗口,输入如下内容:

[Desktop Entry]

Encoding=UTF-8

Type=Application

Name=Xilinx Vitis 2020.2

Comment=Xilinx Vitis 2020.2 Icon=/opt/pkg/tools/Xilinx/Vitis/2020.2/doc/images/ide_icon.png Exec=/opt/pkg/tools/Xilinx/Vitis/2020.2/bin/vitis

bcb402b093dd4868ac4f84c024093fda.png

保存之后,退出编辑界面,回到终端修改该文件的权限,输入:

sudo chmod 777 Vitis.desktop

555971dc2a394864abee623c2d7c675e.png

最后进入到/usr/share/applications目录中即可看到visits软件快捷方式,双击即可打开Vitis软件:

3ccfa2efa0544d2590506b1072d9c8a9.png

双击Vitis.desktop即可打开Vitis软件,如下图:

e35044aa4d4a4abaa17d31a5b3c7ca7f.png

创建 Vivado 和 Vitis HLS 是相同的步骤,在编辑的.desktop 文件分别输入:

Vivado 示例:

[Desktop Entry]

Encoding=UTF-8

Type=Application

Name=Vivado 2020.2

Comment=Vivado 2020.2 Icon=/opt/pkg/tools/Xilinx/Vivado/2020.2/doc/images/vivado_logo.png

Exec=/opt/pkg/tools/Xilinx/Vivado/2020.2/bin/vivado

Vitis HLS 示例:

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Vitis HLS 2020.2
Comment=Vitis HLS 2020.2
Icon=/opt/pkg/tools/Xilinx/Vitis_HLS/2020.2/doc/images/vitis_hls_icon.png
Exec=/opt/pkg/tools/Xilinx/Vitis_HLS/2020.2/bin/vitis_hls

双击即可打开软件,如果出现未信任的应用程序启动器,点击“Trust and Lanch”即可。

 

2.3 JTAG cable驱动的安装与删除

在嵌入式开发中,都是通过在线 jtag 进行调试的,这种调试方式方便快捷,在使用 Petalinux 进行 Linux 开发中,其实也是可以使用 JTAG 的,不过对于 Linux 系统,由于安装驱动程序需要 root 或 sudo 访问权限,因此从 Vivado 2015.4 版本开始,默认不安装 jtag 驱动。这样 Vivado 安装程序和 Petalinux 安装程序可以在没有 root 或 sudo 特权的 Linux 系统上运行。这也导致了在 linux 系统中,jtag 驱动需要手动安装。

2.3.1 安装JTAG cable驱动

下面介绍如何在 Ubuntu 主机中安装jtag 驱动(其他 Linux 系统同样适用)。

需要注意的是在安装 jtag 驱动之前,请不要将 jtag 下载器连接到电脑,已经接到电脑的,最好先拔掉。

在 Ubuntu 系统中,打开终端,以普通用户运行即可。进入到 petalinux 安装目录,如下图所示:

e9cc03b15ec548bd86ad2316b247ea93.png

可以看到有一个名为“tools”的目录,jtag 驱动程序在该目录下,输入以下命令进入到 jtag 驱动程序所在位置:

cd tools/xsct/data/xicom/cable_drivers/lin64/install_script/install_drivers

可以看到该目录下有一个名为“install_drivers”的文件,如下图所示:

f05a9522a23c476893a58c09f99a266c.png

输入如下命令,以 root 权限执行该文件,安装 jtag 驱动程序:

sudo ./install_drivers

执行结果如下图所示:

6e7d5075cff540f48abe8be4a9d4d699.png

 

2.3.2 删除JTAG cable驱动

在遇到 jtag 驱动问题时,如何删除 jtag 驱动。

注意如无特需情况,请不要执行下面的命令:
sudo rm -f /etc/udev/rules.d/52-xilinx-digilent-usb.rules
sudo rm -f /etc/udev/rules.d/52-xilinx-ftdi-usb.rules
sudo rm -f /etc/udev/rules.d/52-xilinx-pcusb.rules

参考链接:

ZYNQ领航者V2开发板 — 正点原子资料下载中心 1.0.0 文档

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/780872.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FFMPEG C++封装(一)(C++ FFMPEG)

1 概述 FFMPEG是一个C语言开源视音频编解码库。本文将FFMPG4.1.3进行C封装&#xff0c;形成C FFMPG库。 2 架构 架构图如下所示&#xff1a; 架构说明: Init 初始化FFMPEG库。IStream 输入流&#xff0c;FFMPEG的输入音视频文件。Packet 音视频数据包Decoder 音视频编码器F…

OpenHarmony:RichEditor组件样例开发

使用 richEditor 组件实现一个富文本编辑框&#xff0c;包含富文本编辑区域和功能栏&#xff0c;功能栏中有多个按键&#xff0c;可以调整字体大小、字体样式、字体颜色、布局&#xff0c;并可以插入图片。 api 版本&#xff1a;api11 主页面 import { TitleBar } from ../.…

element跑马灯/轮播图,第一页隐藏左边按钮,最后一页隐藏右边按钮(vue 开箱即用)

图示&#xff1a; 第一步&#xff1a; <el-carousel :class"changeIndex0?leftBtnNone:changeIndeximgDataList.length-1? rightBtnNone:" height"546px" :autoplay"false" change"changeNext"><el-carousel-item v-for…

Stata 15 for Mac:数据统计分析新标杆,让研究更高效!

Stata 是一种统计分析软件&#xff0c;适用于数据管理、数据分析和绘图。Stata 15 for Mac 具有以下功能&#xff1a; 数据管理&#xff1a;Stata 提供强大的数据管理功能&#xff0c;用户可以轻松导入、清洗、整理和管理数据集。 统计分析&#xff1a;Stata 提供了广泛的统计…

A Little Is Enough: Circumventing Defenses For Distributed Learning

联邦学习的攻击方法&#xff1a;LIE 简单的总结&#xff0c;只是为了能快速想起来这个方法。 无目标攻击 例如总共50个客户端&#xff0c;有24个恶意客户端&#xff0c;那么这个时候&#xff0c;他需要拉拢2个良性客户端 计算 50 − 24 − 2 50 − 24 0.923 \frac{50-24-2}{…

瑞_23种设计模式_中介者模式

文章目录 1 中介者模式&#xff08;Mediator Pattern&#xff09;1.1 介绍1.2 概述1.3 中介者模式的结构1.4 中介者模式的优缺点1.5 中介者模式的使用场景 2 案例一2.1 需求2.2 代码实现 3 案例二3.1 需求3.2 代码实现 &#x1f64a; 前言&#xff1a;本文章为瑞_系列专栏之《2…

Java项目:80 springboot师生健康信息管理系统

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 系统的角色&#xff1a;管理员、宿管、学生 管理员管理宿管员&#xff0c;管理学生&#xff0c;修改密码&#xff0c;维护个人信息。 宿管员…

数组类模板(类模拟实现静态数组)

目录 介绍&#xff1a; 案例描述&#xff1a; 思路&#xff1a; 对要求分别分析实现&#xff1a; 创建对应的类&#xff1a; 1.定义一个数组类 2.类中属性有&#xff1a;数组&#xff0c; 容量&#xff0c; 大小 3.数组函数有&#xff1a; 构造函数&#xff08;容量&am…

排序---数组和集合

1、数组排序 Arrays.sort(int[] a)这种形式是对一个数组的所有元素进行排序&#xff0c;并且是按照从小到大的排序。 public static void main(String[] args) {Integer []arr {1,2,3,4,5,6};//升序Arrays.sort(arr);for (int x:arr){System.out.print(x " ");}Sys…

IRIS / Chronicles 定义 Item Response Type 字段属性

Response Type 在关系数据库中可能没有这个选项&#xff0c;我们对关系数据库表中的数据返回的数据就是是数据&#xff0c;通常不再做过多定义。 但是 IRIS 会对返回的数据也做一些定义&#xff0c;这个就是我们说的 Response Type。 Single &#xff08;单一&#xff09; 这…

二维随机变量的条件分布-已知X概率密度,X条件下的Y概率密度求解y的概率密度

问题&#xff1a;设数X在区间(0,1)上随机地取值,当观察到Xx(0<x<1)时,数Y在区间(x,1)上随机地取值.求Y的概率密度f(y)&#xff1f; 求解&#xff1a; 首先&#xff0c;数X在区间(0,1)上均匀分布&#xff0c;因此其概率密度函数fX​(x)为&#xff1a; fX​(x)1 0<…

Unity类银河恶魔城学习记录11-7 p109 Aplly item modifiers源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili ItemData_Equipment.cs using System.Collections; using System.Collecti…

K8S安装和部署(kubeadmin安装1主2从)

这里用kubeadmin方式进行安装部署 1. 准备三台服务器 服务器地址 节点名称 192.168.190.200 master 主 192.168.190.201 node1 从 192.168.190.202 node2 从 2. 主机初始化&#xff08;所有主机&#xff09; 2.1根据规划设置主机名 #切换到192.168.190.200 hostnamectl…

327京东一面

1.项目相关 2.手撕SQL 两道 3.JMeter性能测试 首先&#xff0c;进行基准测试&#xff1a; 单用户测试&#xff08;单用户循环多次得到的数据&#xff09;&#xff1b;为多用户并发执行提供参考 其次&#xff0c;进行负载测试&#xff1a; 通过逐步增加系统负载&#xff0…

大数据学习-2024/3/29-oracle使用介绍

在plsql中登录ORACLE数据。 默认用户&#xff1a; 1、sys&#xff1a; 角色&#xff1a;数据库超级管理员账户。 权限&#xff1a;具有最高的权限&#xff0c;可以执行任何操作&#xff0c;包括操作数据字典和控制文件。可以创建和删除数据库对象&#xff0c;授予和回收其他用户…

Linux系统中安装一些常用的插件备用

Linux系统中安装一些常用的插件备用 1.安装wget yum -y install wget 2.安装vim yum -y install vim-enhanced 3.更换yum源为国内的阿里云源&#xff08;选择&#xff09; 1、备份CentOS-Base.repo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.…

代码随想录算法训练营第二十四天| 理论基础,77. 组合

题目与题解 参考资料&#xff1a;回溯法理论基础 带你学透回溯算法&#xff08;理论篇&#xff09;| 回溯法精讲&#xff01;_哔哩哔哩_bilibili 77. 组合 题目链接&#xff1a;​​​​​​​​​​​​​​77. 组合 代码随想录题解&#xff1a;77. 组合 视频讲解&#xff…

InputStreamReader类详解

咦咦咦&#xff0c;各位小可爱&#xff0c;我是你们的好伙伴——bug菌&#xff0c;今天又来给大家普及Java SE相关知识点了&#xff0c;别躲起来啊&#xff0c;听我讲干货还不快点赞&#xff0c;赞多了我就有动力讲得更嗨啦&#xff01;所以呀&#xff0c;养成先点赞后阅读的好…

Radash一款JavaScript最新的实用工具库,Lodash的平替!

文章目录 Lodash 的痛点进入正题--Radash特点 举例几个常用的api 一说lodash应该大部分前端同学都知道吧&#xff0c;陪伴我们好多年的JavaScript工具库&#xff0c;但是自从 ES6 出现后就慢慢退出前端人的视线&#xff0c;能ES6写的代码绝对不会用Lodash&#xff0c;也不是完全…

基于STC12C5A60S2系列1T 8051单片机的一个按键长按开关机后一个按键单击长按都增加数值另一个按键单击长按都减少数值应用

基于STC12C5A60S2系列1T 8051单片机的一个按键长按开关机后一个按键单击长按都增加数值另一个按键单击长按都减少数值应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介…