在 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仓库)。

Fig.1 XRT Software Stack

图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
bannerAds