FPGA----ZCU106使用petalinux 2019.1(全网最详)-程序员宅基地

技术标签: fpga开发  

一、环境安装

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

下面是linux扩容操作
VMware虚拟机Ubuntu根目录磁盘空间(/dev/sda1)扩容-程序员宅基地文章浏览阅读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.php

8、将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、运行下述命令,尽量自己敲,复制时注意空格,如果是中文空格很可能出现“xxxx: missing operand after ‘xxxx /opt/pkg/petalinux/’”错误。<username>是你安装ubuntu时设置的用户名

sudo -s

mkdir ./pkg

cd /pkg

mkdir ./petalinux

chgrp <username> /opt/pkg/petalinux


chown <username> /opt/pkg/petalinux

exit

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

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

4、运行安装petalinux2019.1

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

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

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

sudo dpkg-reconfigure dash

source /opt/pkg/petalinux/settings.sh

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

sudo service network-manager stop

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

sudo service network-manager start

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

9、在 ~/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

10、配置硬件工程

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

②将PL侧信息导入配置命令

cd petalinux//进入文件夹

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

③打开配置界面后,配置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_2019.1

 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 

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

12、上板子实验视频

linux在zcu106运行

----------------------------------------------------------23/11/23 更新--------------------------------------------------

petalinux-config的时候一定要加上这个设置,加上就能联网了。

此外,我们的Vivado工程什么都没有设置,就只有一个IP核 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37912811/article/details/134519735

智能推荐

一文总结十大经典排序算法(思维导图 + 动图演示 + 代码实现 C/C++/Python + 致命吐槽)_排序算法思维导图-程序员宅基地

文章浏览阅读1.2w次,点赞86次,收藏587次。冒泡排序void Swap( ElementType *a, ElementType *b ){ ElementType t = *a; *a = *b; *b = t;}void BubbleSort(ElementType A[], int N){ int P,i; int flag; for(P=N-1;P>=0;P--){ flag=0; for(i=0..._排序算法思维导图

webpack插件_while resolving: [email protected]程序员宅基地

文章浏览阅读361次。add-asset-html-webpack-plugin将JavaScript或CSS资产添加到生成的HTML中 html-webpack-pluginbabel-coreBabel编译器核心。babel-loader该软件包允许使用Babel和webpack转换JavaScript文件。babel-plugin-syntax-dynamic-impor语法动态导入babel-p..._while resolving: [email protected]

jsonString 常用方法_josnstring-程序员宅基地

文章浏览阅读1.2k次。1. Map 转Json Stringimport com.google.gson.Gson;Map<String,Integer> indicatorDetails = new HashMap<>();Gson gson = new Gson();String jsonStr = gson.toJson(indicatorDetails);2...._josnstring

ios发布App遇到的问题:“*证书*”has one iOS Distribution certificate but its private key is not installed_has one ios distribution but its private key is no-程序员宅基地

文章浏览阅读1.1k次。解决方法:重新创建certificate证书,上传本机的CSR证书认证文件3.Production(一般只能创建3次)选中:App Store and Ad Hoc 然后下载证书到桌面,双击安装后,重新发布app到App Store中即可 转载自:https://blog.csdn.net/yishengzhiai005/article/details/7863..._has one ios distribution but its private key is not installed

Houdini VEX 学习笔记 (二)-程序员宅基地

文章浏览阅读1.1k次。//利用属性分开PrimitivePrimitive Split 节点中Attribute 设置为split 。Wrangle中代码为: f@split = @ptnum>10?1:4; 比较程序化的是利用Houdini 的Paint 节点,给物体描绘上颜色,然后利用颜色属性把Primitive 分开//曲线(在Vex中实现Carve节点的功能)最近在做植物生长的r..._houdini adjustprimlength

Qt+OSG/osgEarth跨平台编译(用Qt Creator组装各个库,实现一套代码、一套框架,跨平台编译)_qt osgearth-程序员宅基地

文章浏览阅读5.6k次,点赞9次,收藏46次。Qt+OSG/osgEarth跨平台编译(Windows、linux、macos)。用Qt Creator组装各个库,实现一套代码、一套框架,完成跨平台编译第三方库;实现一套代码、一套框架,完成跨平台编译OSG核心库、工具库、插件库及内省库,osgEarth核心库及插件库。_qt osgearth

随便推点

ASTC纹理压缩格式(Adaptive Scalable Texture Compression)_astcenc-程序员宅基地

文章浏览阅读1.2w次,点赞3次,收藏11次。ASTC(Adaptive Scalable Texture Compression)介绍Adaptive Scalable Texture Compression(ASTC)是一种世界领先的新型纹理压缩格式。这种压缩格式已经加入Khronos标准,并已在某些硬件平台中提供。本文介绍了它的工作原理、使用方法和如何最大程度地使用它。更深入的信息可以参考编码器提供的规范[Eva]。背景ASTC由ARM Limited针对目前已有的填充率较低的纹理压缩开发的一种灵活解决方案。在过..._astcenc

关于python中numpy生成随机数的那点事_numpy 让数组内色数据随机浮动-程序员宅基地

文章浏览阅读611次。python 中 numpy 是一个非常实用的工具包,它的底层由 c 编写,效率快于原生的 python。本文将主要介绍 python 产生随机数的主流方法,有一定的可视化图片,通俗易通理解他们的用法。_numpy 让数组内色数据随机浮动

手动安装python包遇到error:could not find suitable distribution for Requirement.parse(‘certifi>=2017.4.17‘)-程序员宅基地

文章浏览阅读1.2w次,点赞6次,收藏5次。前天执行脚本时调用了一个requests库,把脚本放到了linux系统里跑了一下,提示找不到该库。那简单啊,pip下载不就好了!pip install requests啊哦 出错了在经历了多轮百度后。。。没什么效果,排查了一圈dns,代理,下载源,发现可能是我的网络有问题。没办法了,只能手动了先去网站上把我需要的包下下来,https://pypi.org/project/requests,下载完成,解压后放在python安装目录sitepackages下,执行python setup.py i_could not find suitable distribution for requirement.paser(pynacl)

深度学习之经典神经网络框架详解(四):ResNet-v1残差神经网络_resnetv1-程序员宅基地

文章浏览阅读3.3k次,点赞2次,收藏10次。Deep Residual Learning for Image Recognition简述:残差神经网络在2015年ILSVRC比赛中获得冠军,且多个方面获得了第一名。随着网络深度的增加,梯度在反向传播过程中会逐渐消失,导致无法对前面的网络层的权重进行有效的调整,致使准确率逐渐饱和然后迅速下降。本文提出了一个残差学习框架来简化网络训练,实验表明该网络更易优化,且大幅增加深度的同时获得高的精度..._resnetv1

使用C++实现LR(0)语法分析器的操作_c++lr0-程序员宅基地

文章浏览阅读1.2w次,点赞16次,收藏99次。使用C++ 完成LR(0)的语法分析器由于最近学校里在学习编译原理,而且要求实现语法分析器,于是我用了几天的时间搞明白了语法分析器的原理并且将其实现了。由于编者还是本科生而且还在学习中,因此出现什么错误请各位指点。语法分析器的步骤为:读入单词序列读入语法规则构造基于该语法的Clousure(项目集规范族)集合基于上一步构造所有规范句型活前缀的DFA根据这个DFA来构造Action表..._c++lr0

Odoo XML中操作记录与函数-程序员宅基地

文章浏览阅读570次。转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826037.html一:XML文件中定义记录 XML中定义记录: 每个<record>元素有两个基本属性id和model,并且包含为每列分配值的<field>元素。如前所述,id属性对应于记录的外部标识符,模型属性对应于要写入..._odoo xml调用后台函数