一、安装ubuntu18.04.2
根据官方数据手册ug1144-petalinux-tools-reference-guide.pdf,
安装petalinux2019.2 需要安装对应的ubuntu版本,否则可能存在编译报错的风险
安装过程就不做赘述,安装对应的版本即可
二、安装petalinux2019.2
1、下载petalinux 2019.2的安装包
在ubuntu中虚拟机设置中建立共享文件夹share
然后将安装包放入共享文件夹share中
不能直接进行安装,还有一些库需要安装
2、下载并安装脚本文件
根据手册,需要安装这些依赖库和软件包,打开下列网址
复制这段安装命令,去掉build-essential-dev(不知道什么原因没有这个包)
安装命令如下
sudo apt-get install -y gawk python build-essential 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 zlib1g:i386 screen pax gzip
稍微等待一下,弹窗,询问是否重启服务,选择NO,然后OK
然后安装完成
3、修改bash
linux默认用的bash,但是ubuntu默认使用dash,所以要改成bash
输入这个命令:
sudo dpkg-reconfigure dash
弹窗后选择no
输入命令
ls /bin/sh -alh
查看是否是bash
4、创建petalinux安装目录
1、我安装在opt下,需要对opt这个文件夹定义一下用户归属,这样就可以不用sudo
sudo chown -R $USER:$USER /opt
2、可以查看一下权限
ls / -alh
3、创建安装目录
mkdir -p /opt/pkg/petalinux/2019.2
4、回到共享文件夹,安装第一步下载的petalinux安装包
输入以下命令
./petalinux-v2019.2-final-installer.run /opt/pkg/petalinux/2019.2/
等待安装结束,如果弹出协议,就回车后按q退出,如果询问y/n,填y
然后等待安装完成
5、设置环境变量
进入安装的目录,输入source settings
cd /opt/pkg/petalinux/2019.2
source settings.sh
然后就可以使用petalinux的命令了:
petalinux-boot
petalinux-build
petalinux-config
petalinux-create
petalinux-package
petalinux-upgrade
petalinux-util
但是
打开一个新的终端,每次都要进入目录,然后输入source settings太麻烦,所以需要设置一个变量的别名
输入以下命令,我以“sptl”为快捷命令,按自己喜好
echo "alias sptl='source /opt/pkg/petalinux/2019.2/settings.sh'" >> ~/.bashrc
打开其他终端,输入sptl可以和source settings.sh一样的效果
三、配置petalinux编译工具包
每次新建工程都要配置一下,就可以解决报错问题
1、下载编译包
在使用以上的命令的时候可能会遇到报错,或者遇到编译时间长,那么我们就可以把编译包下载到本地,需要下载架构包+downloads包
打开官网,第一步下载安装包的位置:
可以看到解释:
只有在 PetaLinux 工具/BSP 构建无法访问因特网时,才需要使用 sstate-cache 和下载。sstate-cache 文件按架构提供,提供的下载与架构无关。
请参阅 README,了解有关如何使用各架构 sstate-cache 的更多详情。
二选一的压缩包根据架构选择
如果使用Zynq UltraScale+ MPSoC 系列的板子,下载第一个aarch64 sstate-cache
我使用的是Zynq 7000 系列的板子,下载第二个arm sstate-cache
然后下载最底下这个downloads 压缩包
下载以后,解压到共享文件夹share下
2、在vivado平台导出xsa文件到ubuntu
可以参考以下文章,生成比特流后导出一个xsa文件即可
将刚刚导出的xsa文件放入共享文件夹,我在共享文件share里面建立了一个xsa专属文件夹
3、创建petalinux工程
输入sptl 设置环境变量
在ubuntu中建立一个专门存放petalinux工程的文件夹,并且进入这个文件夹
mkdir petalinux
cd petalinux
如果你是zynq7000系列中7020的板子,和我一样建立一个工程名称叫做Zynq-7020
petalinux-create -t project --template zynq -n Zynq-7020
如果你是MPSoc的板子就输入
petalinux-create -t project --template zynqMP -n Zynq-7020
然后进入到这建立的工程
cd Zynq-7020
然后配置一下这个工程
petalinux-config --get-hw-description /mnt/hgfs/share/7020_xsa/system_wrapper.xsa
如果你输入这段命令以后和我一样报错说找不到xsa文件
INFO: Getting hardware description...
ERROR: No HDF or XSA is found in /mnt/hgfs/share/7020_xsa/system_wrapper.xsa.
ERROR: Please use --get-hw-description=<VIVADO_SDK_EXPORT_DIR> to specify the location of Vivado export to SDK directory.
可以参考一下这篇回答:
petalinux-config --get-hw-description指令找不到导入linux虚拟机里的.hdf文件_petalinux无法找到hdf-优快云博客https://blog.youkuaiyun.com/Donggua_BIT/article/details/101380257要去到我们共享文件夹存放xsa的地方
cd ~
cd /mnt/hgfs/share/7020_xsa
然后再进行配置工程,输入以下命令
petalinux-config --get-hw-description -p ~/petalinux/Zynq-7020
等待弹窗,并且进入最后一个选项
再进入add pre-mirror url
进入以后我们需要将这个地址换成我们下载的包downloads,回车修改路径
打开一个新终端,然后将downloads的路径输入进去
在路径前面加上file://
file:///mnt/hgfs/share/downloads
选择OK后回到刚刚那个页面,进入Local ssrare feeds settings
打开一个新终端,然后将ssate_arm_2019.2的路径输入进去,如果你的是MPSoc,就输入下载的另一个
这个路径就不需要加file://了,直接路径即可
/mnt/hgfs/share/sstate_arm_2019.2/arm
回到上一页,按N取消网络下载
然后退出到最高一级再退出
然后问我们是否要保存设置,按回车YES
这样,下载的两个编译工具包就成功配置到工程里面了,如果要新建一个工程,配置编译工具包的工程得重复一遍
4、遇到qemu-xilinx-system-native包获取失败
另外,如果编译时遇到qemu-xilinx-system-native包获取失败
还需要添加一步
找到downloads的路径
然后在Zynq-7020工程目录下输入
code project-spec/meta-user/conf/petalinuxbsp.conf
将downloads的路径替换进去
#User Configuration
#OE_TERMINAL = "tmux"
PREMIRRORS_prepend = " \
git://.*/.* file:///mnt/hgfs/share/downloads \n \
gitsm://.*/.* file:///mnt/hgfs/share/downloads \n \
ftp://.*/.* file:///mnt/hgfs/share/downloads \n \
http://.*/.* file:///mnt/hgfs/share/downloads \n \
https://.*/.* file:///mnt/hgfs/share/downloads \n"
然后保存退出即可,编译报错问题就解决了