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虚拟机–这里需要设置如下:
需要共享USB。最少需要50g的磁盘空间。
安装VMware Tool
安装依赖
输入以下命令安装:
1 | sudo apt-get install tofrodos iproute2 gawk gcc g++ git make net-tools libncurses5-dev \ |
安装程序
之后输入以下命令进行安装:
1 | mkdir 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 | sudo rm -f /etc/udev/rules.d/52-xilinx-digilent-usb.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 | sudo apt-get install tofrodos iproute2 gawk gcc g++ git make net-tools libncurses5-dev \ |
其中zlib1g:i386需要使用以下命令单独安装:
1 | sudo dpkg --add-architecture i386 |
安装程序
之后输入以下命令进行安装:
1 | mkdir 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 |
我电脑上的设备如上,5-1是串口,5-2就是Jtag。
之后根据BUSID,输入命令允许共享设备——这需要管理员身份启动:
1 | usbipd bind --busid 5-2 |
注意需要将WSL升级到最新版。
之后在WSL中输入lsusb
即可查看设备。
可以看到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 |
安装完成。
如果驱动遇到问题,可以使用下面的命令删除驱动:
1 | sudo rm -f /etc/udev/rules.d/52-xilinx-digilent-usb.rules |
其他问题
WSL 中出现 :Zone.Identifier 文件的原因和解决方法
从 Windows 直接下载文件或移动文件到 WSL 目录时,会出现类似 :Zone.Identifier
的文件。
其中包含了一些跟关联文件有关的元数据。
该文件因为微软的 NTFS 功能而出现,虽然没有实际用途。
解决方法
- 移动文件时,不要通过资源管理器,而是通过 VS Code,这样不会生成该文件;
- 通过这条命令删除该文件:
find . -name "*:Zone.Identifier" -type f -delete
。