FPGA----ZCU106使用petalinux 2019.1(全网最详)

一、环境安装

1、软硬件需求:Vivado 2019.1、ZCU106、Ubuntu 18.04.1、petalinux 2019.1

本文基于2019.1版本的UG1144文档构建https://docs.xilinx.com/api/khub/documents/HXzkPWw1pfgmyp8i8JKniQ/content?Ft-Calling-App=ft%2Fturnkey-portal&Ft-Calling-App-Version=4.2.21icon-default.png?t=N7T8https://docs.xilinx.com/api/khub/documents/HXzkPWw1pfgmyp8i8JKniQ/content?Ft-Calling-App=ft%2Fturnkey-portal&Ft-Calling-App-Version=4.2.21

2、下载Ubuntu 18.04.1

Index of /releases/18.04.1icon-default.png?t=N7T8https://old-releases.ubuntu.com/releases/18.04.1/

2、安装VMware 17Pro

建议大家直接给定150G的虚拟机空间,不然后续扩容应麻烦的。

安装虚拟机(VMware)保姆级教程(附安装包)_vmware虚拟机-CSDN博客文章浏览阅读10w+次,点赞388次,收藏2.5k次。帮助小白安装虚拟机,保姆级教程。如果你点击下一步出现了这个页面的话,那就证明你电脑里面已经有vmware了,就可以直接用了,如果你想重新安装,直接删除就好,再重新打开安装程序继续安装。_vmware虚拟机https://blog.csdn.net/weixin_74195551/article/details/127288338

下面是linux扩容操作
VMware虚拟机Ubuntu根目录磁盘空间(/dev/sda1)扩容-CSDN博客文章浏览阅读1.4w次,点赞42次,收藏128次。文章目录一、前言二、提前准备三、开始实践四、参考????一、前言最初,给 Ubuntu 虚拟机只分配了20G的存储空间,用来学习做作业等;但最近安装了 ROS(机器人操作系统)后,然后就提醒说"系统根目录空间不足",没办法了,只好给根目录的磁盘空间扩容了????????扩容中遇到的问题:一般 Ubuntu 的 /dev/sda1 分区是挂在 根目录("/") 上的,因此无法用常规的 LVM(逻辑卷管理)模式进行扩容。(在用 lvextend 命令用于动态扩展逻辑卷的空间,即会报 “/dev/sda1https://blog.csdn.net/xwmrqqq/article/details/109828166#:~:text=%E8%BE%93%E5%85%A5%20partprobe%20%2Fdev%2Fsda%20%EF%BC%8C%E9%80%9A%E7%9F%A5%E7%B3%BB%E7%BB%9F%E5%86%85%E6%A0%B8%E5%88%86%E5%8C%BA%E8%A1%A8%E7%9A%84%E5%8F%98%E5%8C%96%20%E8%BE%93%E5%85%A5%20resize2fs%20%2Fdev%2Fsda1,%EF%BC%8C%E5%AF%B9%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E8%BF%9B%E8%A1%8C%E6%89%A9%E5%AE%B9%20%E5%86%8D%E6%AC%A1%E8%BE%93%E5%85%A5%20df%20-TH%20%EF%BC%8C%E6%9F%A5%E7%9C%8B%20%2Fdev%2Fsda1%20%E6%98%AF%E5%90%A6%E6%89%A9%E5%AE%B9%E6%88%90%E5%8A%9F

3、添加服务:

①桌面右键打开终端,输入:sudo apt install apt-transport-https

②输入:sudo apt install ca-certificates

4、将Ubuntu的源更换为清华镜像源

①桌面右键打开终端,输入:sudo vi /etc/apt/sources.list

②按下键盘insert键,在源文件中每行前都加上“#”(已经有的不需要),在文件最后加上,

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu/ bionic-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ bionic-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

③按下esc,输入“:wq!”即可保存退出。

④输入:apt-get update

如果出现问题:Ubuntu 无法打开锁文件 /var/lib/dpkg/lock - open。则输入下面的代码解锁。

sudo rm /var/cache/apt/archives/lock  
sudo rm /var/lib/dpkg/lock

5、安装依赖

sudo apt-get install -y gcc git make net-tools libncurses5-dev tftpd zlib1g-dev libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential libsdl1.2-dev libglib2.0-dev zlib1g:i386 screen pax gzip gawk

sudo apt-get install xterm


sudo apt-get install python

sudo apt-get install tftpd tftp openbsd-inetd

安装完毕后,输入:

su

chmod 600 /etc/inetd.conf

vim /etc/inetd.conf

#在文件中增加以下内容
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftproot
#保存并退出

接着输入:

mkdir /tftproot
chmod 777 /tftproot
/etc/init.d/openbsd-inetd restart
netstat -an | more | grep udp

#若看到有如下输出,即表示tftp安装成功
#udp 0 0 0.0.0.0:69 0.0.0.0:*

最后输入exit,退出

6、下载petalinux 2019.1、linux 4.19、u-boot 2019.1、sstate高速缓存,下面是下载链接

①petalinux 2019.1、sstate高速缓存

下载Vivado, Vitis, Vitis Embedded Platform, PetaLinux, Device modelsicon-default.png?t=N7T8https://china.xilinx.com/support/download/index.html/content/xilinx/zh/downloadNav/embedded-design-tools/archive.html

②、linux 4.19

GitHub - Xilinx/linux-xlnx at xlnx_rebase_v4.19_2019.1The official Linux kernel from Xilinx. Contribute to Xilinx/linux-xlnx development by creating an account on GitHub.icon-default.png?t=N7T8https://github.com/Xilinx/linux-xlnx/tree/xlnx_rebase_v4.19_2019.1

下载完后,不要手贱,一定要传输到Ubuntu再解压,因为Ubuntu对大小写敏感,里面好多文件以大小写区分命名,Windows下会被覆盖!

③、u-boot 2019.1

https://github.com/Xilinx/u-boot-xlnx/tree/xilinx-v2019.1icon-default.png?t=N7T8https://github.com/Xilinx/u-boot-xlnx/tree/xilinx-v2019.1

7、安装ssh服务,安装winscp软件,将下载的东西移动到ubuntu的download/petalinux目录下

 sudo apt-get install openssh-server

WinSCP :: Official Site :: Free SFTP and FTP client for WindowsWinSCP is a free file manager for Windows supporting FTP, SFTP, S3 and WebDAV.icon-default.png?t=N7T8https://winscp.net/eng/index.php8、运行下述命令,尽量自己敲,复制时注意空格,如果是中文空格很可能出现“xxxx: missing operand after ‘xxxx /opt/pkg/petalinux/’”错误。<username>是你安装ubuntu时设置的用户名

sudo -s

chgrp <username> /opt/pkg/petalinux


chown <username> /opt/pkg/petalinux

exit

9、修改petalinux-v2019.1-final-installer.run 运行权限

chmod +x petalinux-v2019.1-final-installer.run

10、运行安装petalinux2019.1

./petalinux-v2019.1-final-installer.run /opt/pkg/petalinux/

11、输入q退出协议内容->输y同意协议内容...反复操作一直到最后安装成功

12、修改 bash,许多教程设置了开机自动加入环境变量。但是这样其他工具编译时可能会遇到问题,因此我还是建议,每次打开终端,都修改一下比较好。出现提示框,选择NO

sudo dpkg-reconfigure dash

source /opt/pkg/petalinux/settings.sh

13、如果遇到网络问题,输入ifconfig,如果显示只能链接127.0.0.1,则输入以下命令

sudo service network-manager stop

sudo rm /var/lib/NetworkManager/NetworkManager.state

sudo service network-manager start

14、终端输出以下内容,则代表petalinux 2019.1安装完毕

15、将make 4.1替换为make 3.81

Index of /gnu/makeicon-default.png?t=N7T8https://ftp.gnu.org/gnu/make/

解压后,依次输入命令:

make -v

./configure

make


sudo make install


reboot

重启ubuntu后,输入make -v查看版本。

二、创建petalinx 第一个应用

1、在 ~/Downloads目录下新建petalinux文件夹将之前下载的4个东西,全部复制进去

2、在 ~/Downloads目录下新建ZCU106文件夹,我是zcu106,所以采用zynqMP模板

输入命令:

mkdir -p ./zcu106/proj1v-1

cd ./zcu106/proj1v-1

mkdir ./hardware

在vivado 2019.1 中生成bit,然后导出hdf文件(2019.2版本之后位xsa文件),在 sdk路径中。将其移动到新建的hardware文件夹下。

输入下面的命令后即可创建以petalinux为名称的zynqMP项目。 

sudo dpkg-reconfigure dash
 
source /opt/pkg/petalinux/settings.sh

petalinux-create -t project -n petalinux --template zynqMP

3、配置硬件工程

① 将“/home/yangzheng/Downloads/petalinux”路径中的 uboot 2019.1和linux 4.19复制到“/home/yangzheng/Downloads/zcu106/proj1v-1/petalinux”文件夹下。

②输入以下命令

petalinux-config

③打开配置界面后,配置linux

将下面这两个都设置为 “ext-local-src”

如果按照我上文路径设置的话,那么uboot和 linux的路径设置为:

/home/yangzheng/Downloads/zcu106/proj1v-1/petalinux/u-boot-xlnx-xilinx-v2019.1


/home/yangzheng/Downloads/zcu106/proj1v-1/petalinux/linux-xlnx-xlnx_rebase_v4.19

 Save后exit

④任然时这个界面,配置Yocto

按下N键,取消网络下载

 配置pre-mirror(一定要加上file://),配置sstate feeds(我是zcu106,所以选择aarch64,zynq选择arm文件夹)

file:///home/yangzheng/Downloads/petalinux/sstate-rel-v2019.1/sstate-rel-v2019.1/downloads





/home/yangzheng/Downloads/petalinux/sstate-rel-v2019.1/sstate-rel-v2019.1/aarch64

⑤将PL侧信息导入

petalinux-config --get-hw-description ../hardware/

 ⑥编译,不清楚我的gcc文件夹一直没有权限,所以需要加入

sudo chmod -R 777 linux-xlnx-xlnx_rebase_v4.19_2019.1/

sudo chmod -R 777 linux-xlnx-xlnx_rebase_v4.19_2019.1/scripts/

petalinux-build

出现以下结果则表示编译成功 

注意:出现platform-auto.h and platform-top.h are not getting added in include/configs directory问题,重新配置hdf文件即可,因为这两个头文件是加入hdf文件自动生成的。直接:petalinux-config --get-hw-description ../hardware/

这样,我们在/home/yangzheng/Downloads/zcu106/proj1v-1/petalinux/images/linux
文件夹下可以看到image.ub文件,还缺少一个BOOT.bin文件 

进入/images/linux文件夹输入打包命令:

petalinux-package --boot --u-boot --fpga --force

打包成功可以看到BOOT.bin 

4、将打包后的BOOT.bin与image.ub移动到SD卡中(2019.2版本后还好像还有一个boot.scr文件)

5、上板子实验视频

linux在zcu106运行

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023年【起重机械指挥】考试题及起重机械指挥找解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 起重机械指挥考试题考前必练&#xff01;安全生产模拟考试一点通每个月更新起重机械指挥找解析题目及答案&#xff01;多做几遍&#xff0c;其实通过起重机械指挥作业考试题库很简单。 1、【多选题】按照事故造成的人…

线程的几种状态

&#xff08;线程的几种状态&#xff09; 1.线程状态&#xff08;生命周期&#xff09; 1.1.源码中的状态 关于Java线程的状态&#xff0c;网上说法很多&#xff0c;有五种、六种甚至七种&#xff0c;本文采用Java官方的线程状态分类。 实际上&#xff0c;官方一共给出了六种…

攻防世界-web-Confusion1

1. 题目描述 打开链接&#xff0c;如图 点击Login和Rigister&#xff0c;都报错 但是有提示 指出了flag所在的位置&#xff0c;题目中直接能获取到的信息暂时就这么些了 2. 思路分析 既然告诉了我们flag文件的位置&#xff0c;那么要读取到这个文件&#xff0c;要么是任意文…

合并区间问题

以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 示例 1&#xff1a; 输入&#xff1a;intervals [[1,…

【Vue】自定义指令

hello&#xff0c;我是小索奇&#xff0c;精心制作的Vue系列持续发放&#xff0c;涵盖大量的经验和示例&#xff0c;如果对您有用&#xff0c;可以点赞收藏哈~ 自定义指令 自定义指令就是自己定义的指令&#xff0c;是对 DOM 元素进行底层操作封装 ,程序化地控制 DOM&#xff…

常见面试题-Redis持久化策略

谈谈Redis 的持久化策略&#xff1f; 参考文章&#xff1a; Redis 持久化机制演进与百度智能云的实践 Redis的确是将数据存储在内存的&#xff0c;但是也会有相关的持久化机制将内存持久化备份到磁盘&#xff0c;以便于重启时数据能够重新恢复到内存中&#xff0c;避免数据丢…

数据结构:顺序表

目录 一.顺序表 1.1概念以及结构 1.2动态顺序表实现 1.2.1文件创建&#xff1a; 1.2.2接口实现 1.顺序表打印 2.顺序表初始化 3.顺序表尾插 4.顺序表头插 5.顺序表尾删 6.顺序表头删 7.顺序表在pos位置插入x 8.顺序表删除pos位置的值 9.顺序表销毁 二.顺序表问题 一.…

关于 Docker

关于 Docker 1. 术语Docker Enginedockerd&#xff08;Docker daemon&#xff09;containerdOCI (Open Container Initiative)runcDocker shimCRI (Container Runtime Interface)CRI-O 2. 容器启动过程在 Linux 中的实现daemon 的作用 Docker 是个划时代的开源项目&#xff0c;…

「快学Docker」监控和日志记录容器的健康和性能

「快学Docker」监控和日志记录容器的健康和性能 1. 容器健康状态监控2. 性能监控3. 日志记录几种采集架构图 4. 监控工具和平台cAdvisor&#xff08;Container Advisor&#xff09;PrometheusGrafana 5. 自动化运维 1. 容器健康状态监控 方法1&#xff1a;需要实时监测容器的运…

在iPad pro上安装VSCode,秒变生产力工具提升编程工作效率!

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;网络奇遇记、Cpolar杂谈 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. 本地环境配置二. 内网穿透2.1 安装cpolar内网穿透(支持一键自动安装脚本)2.…

智慧法院档案数字化解决方案

智慧法院档案数字化解决方案可以采用以下步骤&#xff1a; 1. 确定数字化目标&#xff1a;明确数字化的目标和范围&#xff0c;比如将所有的案件相关文件、纸质档案和材料进行数字化。 2. 确定数字化流程&#xff1a;制定数字化的流程和标准&#xff0c;比如采用哪些设备和软件…

人工智能基础_机器学习047_用逻辑回归实现二分类以上的多分类_手写代码实现逻辑回归OVR概率计算---人工智能工作笔记0087

然后我们再来看一下如何我们自己使用代码实现逻辑回归的,对二分类以上,比如三分类的概率计算 我们还是使用莺尾花数据 首先我们把公式写出来 def sigmoid(z): 定义出来这个函数 可以看看到这需要我们理解OVR是如何进行多分类的,我们先来看这个 OVR分类器 思想 OVR(One-vs-…

Android设计模式--模板方法模式

一&#xff0c;定义 定义一个操作中的算法的框架&#xff0c;而将一些步骤延迟到子类中&#xff0c;使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 在面向对象的开发过程中&#xff0c;通常会遇到这样一个问题&#xff0c;我们知道一个算法所需的关键步…

2023年【上海市安全员C证】考试及上海市安全员C证找解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年上海市安全员C证考试为正在备考上海市安全员C证操作证的学员准备的理论考试专题&#xff0c;每个月更新的上海市安全员C证找解析祝您顺利通过上海市安全员C证考试。 1、【多选题】2017年9月颁发的《中共上海市委…

达索系统SOLIDWORKS流体分析网格划分失败,大多是这2种原因

SOLIDWORKS Flow Simulation 是直观的流体力学 (CFD) 分析软件&#xff0c;该软件功能强大、操作人性化&#xff0c;快速轻松的分析产品内部或外部流体的流动情况&#xff0c;以用来改善产品性能和功能。 当流体分析运行网格划分时&#xff0c;提示失败。 这是由于凸起面与圆…

HTML新手入门笔记整理:HTML基本介绍

网页 静态页面 仅可供用户浏览&#xff0c;不具备与服务器交互的功能。 动态页面 可供用户浏览&#xff0c;具备与服务器交互的功能。 HTML HTML&#xff0c;全称HyperText Markup Language&#xff08;超文本标记语言&#xff09;,是一种用于创建网页的标准标记语言。用于…

基于向量加权平均算法优化概率神经网络PNN的分类预测 - 附代码

基于向量加权平均算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于向量加权平均算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于向量加权平均优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xf…

MySQL 事务的底层原理和 MVCC(二)

7.2. undo 日志 7.2.1. 事务回滚的需求 我们说过事务需要保证原子性&#xff0c;也就是事务中的操作要么全部完成&#xff0c;要么什么也不做。但是偏偏有时候事务执行到一半会出现一些情况&#xff0c;比如&#xff1a; 情况一&#xff1a;事务执行过程中可能遇到各种错误&a…

C语言--数组与指针--打印字符串的n种方式

一.知识背景 一维数组名的含义 arr一般表示数组的起始地址&#xff08;除了两种例外&#xff09; 1.在定义数组的同一个函数中(不是形参),求sizeof(arr),求整个数组的字节数 2.在定义数组的同一个函数中(不是形参),&arr1,加整个数组的大小 (经常考试) 3.除上面以外,arr都表…

io+day5

1&#xff0c;select服务端 1 #include<myhead.h>2 3 #define PORT 8888 //端口号4 #define IP "192.168.228.165" //IP地址5 6 7 int main(int argc, const char *argv[])8 {9 //1、创建用于接受连接的套接字10 int sfd socket(…