ZYNQ学习笔记-Petalinux环境搭建

Xilinx官方为ZYNQ编译Linux相关程序提供了一个集成工具Petalinux,利用它,用户可以快速编译在ZYNQ上运行的Linux和应用。

前言

开始我使用了2018.3版本的petalinux以配合我的vivado,但是发现WSL最老是18.04.6,而2018.3版本的petalinux只能到16.因此要么升级petalinux,要么降级ubuntu,这里由于wsl不能降级,最后选择了升级到2019.1,安装步骤只有版本号不同,其他一样。然而后来发现2019.1的只支持vivado2019.1到出的工程,因此最后只能无奈安装低版本的ubuntu。这里留下原教程,以供参考。

下载安装文件

这里需要准备ubuntu-16.04.4-desktop-amd64.iso 和petalinux-v2018.3-final-installer.run。

之后安装ubuntu虚拟机–这里需要设置如下:

image-20240316145228094

需要共享USB。最少需要50g的磁盘空间。

安装VMware Tool

参考教程

安装依赖

输入以下命令安装:

1
2
3
4
sudo apt-get install tofrodos iproute2 gawk gcc g++ git make net-tools 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 \
libsdl1.2-dev libglib2.0-dev screen pax gzip automake

安装程序

之后输入以下命令进行安装:

1
2
mkdir petalinux2018.3 # 设置路径
./petalinux-v2018.3-final-installer.run petalinux2018.3/ # 安装

由于WSL的ubuntu的shell默认使用dash,需要先将其切换为bash:

1
sudo dpkg-reconfigure dash

在弹出的命令框中选择NO。

之后进入安装文件夹,输入命令添加环境变量:

1
source settings.sh

之后使用echo $PETALINUX检查是否成功。

安装驱动

在petalinux目录下有一个tools文件夹,其中包含了驱动,这里先把jatg断开连接。

进入以下目录:

1
tools/xsct/SDK/2018.3/data/xicom/cable_drivers/lin64/install_script/install_drivers

运行该目录下的文件:

1
sudo ./install_drivers

如果驱动遇到问题,可以使用下面的命令删除驱动:

1
2
3
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

WSL安装方法——对较新版本

文件下载

这里使用2018.3版本的petalinux,在官网下载petalinux-v2018.3-final-installer.run。直接复制到linux子系统中。

使用chmod +x xxx命令设置为可执行文件。

安装依赖

首先需要确保WSL的版本为WSL2,使用以下命令查询:

1
wsl -l -v

查看version版本,如果不是2,使用以下命令修改:

1
wsl --set-version <distribution name> <versionNumber>

如果失败,自行搜索windows的WSL2安装,这里不多说了。注意使用的系统为Ubuntu 18.04.6 LTS新版系统不支持老版本的Petalinux

之后,需要安装相关的依赖库,输入以下命令安装:

1
2
3
4
sudo apt-get install tofrodos iproute2 gawk gcc g++ git make net-tools 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 \
libsdl1.2-dev libglib2.0-dev screen pax gzip automake

其中zlib1g:i386需要使用以下命令单独安装:

1
2
3
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install zlib1g:i386

安装程序

之后输入以下命令进行安装:

1
2
mkdir petalinux2018.3 # 设置路径
./petalinux-v2018.3-final-installer.run petalinux2018.3/ # 安装

由于WSL的ubuntu的shell默认使用dash,需要先将其切换为bash:

1
sudo dpkg-reconfigure dash

在弹出的命令框中选择NO。

之后进入安装文件夹,输入命令添加环境变量:

1
source settings.sh

之后使用echo $PETALINUX检查是否成功。

共享USB

由于WLS2与Windows基本隔离,需要使用工具将Jtag以及其他设备共享到WLS。

本次需要使用到开源项目usbipd-win,根据使用手册下载安装。

安装完成后,输入以下命令查看USB设备:

1
usbipd list

image-20240315210447985

我电脑上的设备如上,5-1是串口,5-2就是Jtag。

之后根据BUSID,输入命令允许共享设备——这需要管理员身份启动:

1
usbipd bind --busid 5-2

image-20240315211106348

注意需要将WSL升级到最新版。

之后在WSL中输入lsusb即可查看设备。

image-20240315211251487

可以看到ID是一样的。

如果想要取消连接,可以使用以下命令:

1
usbipd detach --busid <busid>

安装驱动

在petalinux目录下有一个tools文件夹,其中包含了驱动,这里先把jatg断开连接。

进入以下目录:

1
tools/xsct/SDK/2018.3/data/xicom/cable_drivers/lin64/install_script/install_drivers

运行该目录下的文件:

1
sudo ./install_drivers

image-20240315212110275

安装完成。

如果驱动遇到问题,可以使用下面的命令删除驱动:

1
2
3
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

其他问题

WSL 中出现 :Zone.Identifier 文件的原因和解决方法

从 Windows 直接下载文件或移动文件到 WSL 目录时,会出现类似 :Zone.Identifier 的文件。

其中包含了一些跟关联文件有关的元数据。

该文件因为微软的 NTFS 功能而出现,虽然没有实际用途。

解决方法

  • 移动文件时,不要通过资源管理器,而是通过 VS Code,这样不会生成该文件;
  • 通过这条命令删除该文件:find . -name "*:Zone.Identifier" -type f -delete