在 Ultra96/Ultra96-V2/KV260 上运行 Debian GNU/Linux 和 Ubuntu20.04,使用 XRT(Xilinx Runtime)(简介)
首先
筆者提供了專為Ultra96/Ultra96-V2/KV260(ZynqMP)設計的Debian GNU/Linux1和Ubuntu20.042。同時,XRT(Xilinx Runtime)是Xilinx公司提供的開發環境(Vitis)中用於運行在該平台上開發的程序的環境。
一般情况下,适用于 MPSoC Edge 设备的 XRT 只能在 Xilinx 提供的 Linux 环境(Petalinux)中运行,但我们将把 XRT 在 Ultra96/Ultra96-V2/KV260 适用的 Debian GNU/Linux 和 Ubuntu20.04 中运行所需的步骤分成几个部分进行说明。
-
概要編(この記事)
ビルド編
XRT 2.11.0 ビルド編
XRT 2.8.1 ビルド編
XRT 2.6.0 ビルド編
インストール編
XRT 2.11.0 インストール編
XRT 2.6.0 インストール編
実践編
Vitis編
本文将介绍有关在Ultra96 / Ultra96-V2 / KV260上运行Debian GNU / Linux和Ubuntu 20.04所需的XRT元素。
请注意
这篇文章介绍的Debian Package并不是Xilinx公司的官方产品。
XRT 可以解释为什么?
XRT(Xilinx Runtime)是由Xilinx公司在其开发环境Vitis中开发的用于在平台上运行程序的环境。XRT在GitHub上公开了源代码。
-
https://github.com/Xilinx/XRT
XRT的实现是将用户空间和内核驱动程序组件结合起来的。下图展示了XRT软件堆栈的组成部分(摘自上面的github仓库)。

图1 XRT软件堆栈
赛灵思多处理器FPGA Linux
筆者以 GitHub 提供 UltraZed/Ultra96/Ultra96-V2/KV260 平台的 Debian GNU/Linux 和 Ubuntu20.04 的構建版本。
-
https://github.com/ikwzm/ZynqMP-FPGA-Linux
https://github.com/ikwzm/ZynqMP-FPGA-Ubuntu20.04
最初,Xilinx提供了PetaLinux工具作为在Zynq和ZynqMP上构建Linux环境的工具。起初,我也打算使用PetaLinux来构建Linux环境,但是遇到了两个问题,让我感到困扰。
首先,我遇到的一个问题是在我的环境中(Windows7+VMware+Ubuntu 16.04LTS)无法成功构建。不知为何,Vivado SDK(通常是FSBL或PMUFW)在中途就会因为一个奇怪的空指针错误崩溃并失败。更让人恼火的是,成功的次数约为10次中的1次,因此只能多次运行相同的命令来勉强构建,但这会花费很多时间,对精神健康也不利。
其次,PetaLinux的配置令人困惑。PetaLinux基于Yocto,可以统一管理引导加载程序、Linux内核、根文件系统和工具链的构建。虽然这很方便,但在进行修改、构建和实验的循环中,例如想要对设备树进行一些改变、对Linux内核进行一些配置修改并尝试编译,或者想要在根文件系统中安装一些工具等等,需要花费太长时间,并且很难确定应该修改哪些配置。
最終决定,我认为不使用PetaLinux,而是分别构建引导加载程序、Linux内核和根文件系统更容易。因此,我可以自由地更改引导加载程序(主要是U-Boot)和Linux内核的配置,还可以使用我经常使用的Debian作为根文件系统,使我能够相当自由地进行构建。
ZynqMP-FPGA-XRT (赛灵思MP-FPGA-XRT)
为了在ZynqMP-FPGA-Linux上构建XRT有点繁琐并且耗时。因此,我在github上为ZynqMP-FPGA-Linux制作了XRT(Xilinx Runtime)的Debian软件包,并进行了公开。如果您不想麻烦地进行构建,请使用这个。
-
https://github.com/ikwzm/ZynqMP-FPGA-XRT
目前,根据 XRT 版本和 Linux 发行版的不同,存在着不同的分支/标签。
2021年1月份,0号版本的Debian 11 EDGE版。
-
ブランチ: 2021.1_EDGE_0_Debian_11
XRT バージョン: 2.11.0
Linux ディストリビューション: Debian 11
パッケージファイル: xrt_202110.2.11.0_Edge_Debian_11-arm64.deb
2021年1月,Edge版本0的Ubuntu 20.04。
-
ブランチ: 2021.1_EDGE_0_Ubuntu_20.04
XRT バージョン: 2.11.0
Linux ディストリビューション: Ubuntu 20.04
パッケージファイル: xrt_202110.2.11.0_Edge_Ubuntu_20.04-arm64.deb
2020年2月份的 Debian 10.0 版本,编号为 EDGE_1。
-
ブランチ: 2020.2_EDGE_1_Debian_10
XRT バージョン: 2.8.1
Linux ディストリビューション: Debian 10
パッケージファイル: xrt_202020.2.8.1_Edge_Debian_10-arm64.deb
2020年2月,Ubuntu 20.04发布了EDGE 1版本。
-
ブランチ: 2020.2_EDGE_1_Ubuntu_20.04
XRT バージョン: 2.8.1
Linux ディストリビューション: Ubuntu 20.04
パッケージファイル: xrt_202020.2.8.1_Edge_Ubuntu_20.04-arm64.deb
2019年2月的Ultra96_3
-
タグ: 2019.2_Ultra96_3
XRT バージョン: 2.6.0
Linux ディストリビューション: Ubuntu 18.04
パッケージファイル: xrt_202010.2.6.0_Ubuntu_18.04-arm64-xrt.deb
请参考
-
https://github.com/Xilinx/XRT
https://github.com/ikwzm/ZynqMP-FPGA-XRT
https://github.com/ikwzm/ZynqMP-FPGA-Linux
https://github.com/ikwzm/ZynqMP-FPGA-Ubuntu20.04
『UltraZed/Ultra96/Ultra96-V2/KV260 向け Debian GNU/Linux (v2021.1版) ブートイメージの提供』@Qiita
『UltraZed/Ultra96/Ultra96-V2 向け Debian GNU/Linux (v2020.2版) ブートイメージの提供』@Qiita
『UltraZed/Ultra96/Ultra96-V2 向け Debian GNU/Linux (v2019.2版) ブートイメージの提供』@Qiita