Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Installation)

introduction

L'auteur fournit Debian GNU / Linux pour Ultra96 / Ultra96-V2 (ZynqMP) 1. De plus, XRT (Xilinx Runtime) est un environnement pour exécuter des programmes développés dans l'environnement de développement (Vitis) fourni par Xilinx sur la plateforme 2.

À l'origine, [XRT] pour MPSoC Edge Device ne fonctionne que dans l'environnement Linux (Petalinux) fourni par Xilinx, mais la procédure pour exécuter XRT sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 est incluse en plusieurs parties. Je vais expliquer séparément.

Cet article décrit les étapes d'installation de XRT sur Debian GNU / Linux pour Ultra96 / Ultra96-V2.

Mise en garde

__ Le paquet Debian présenté dans cet article n'est pas officiel par Xilinx. __

Plateforme correspondante

Pour le moment, nous avons confirmé qu'il ne peut être installé que sur les plates-formes suivantes.

Le noyau Linux se trouve à l'URL suivante:

La distribution peut être trouvée à l'URL suivante:

Veuillez vous référer à chaque URL pour installer sur Ultra96. Veuillez également vous référer aux articles suivants.

Obtenir le paquet Debian

["Exécution de XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Build)" @Qiita] Construisez le paquet XRT Debian par la méthode expliquée dans (), ou Debian à l'URL suivante Téléchargez le package.

Avant l'installation

Veuillez installer les packages suivants avant l'installation.

Le paquet présenté ci-dessus déclare explicitement une dépendance lors de la construction de xrt_202010.2.6.0_Ubuntu_18.04-arm64-xrt.deb.

En plus de ce qui précède, veuillez installer les packages suivants.

Si ce paquet n'est pas installé, il essaiera d'installer pyopencl avec pip lors de l'installation de xrt_202010.2.6.0_Ubuntu_18.04-arm64-xrt.deb. Lors de l'installation de pyopencl avec pip, il était nécessaire de compiler un programme écrit en C, et divers problèmes se sont produits et l'installation a échoué après tout. Il est préférable d'avoir pyopencl pré-construit pour Debian / Ubuntu installé dès le début pour éviter les problèmes.

Installation du package XRT (Xilinx Runtime)

Installez xrt_202010.2.6.0_Ubuntu_18.04-arm64-xrt.deb avec la commande dpkg. Notez que lorsque vous installez ce paquet, vous utiliserez le mécanisme dkms pour construire le module du noyau zocl au milieu du processus. Par conséquent, l'installation prend du temps.

fpga@ubuntu-fpga:~$ cd work/ZynqMP-FPGA-XRT
fpga@ubuntu-fpga:~/work/ZynqMP-FPGA-XRT$ sudo dpkg -i xrt_202010.2.6.0_Ubuntu_18.04-arm64-xrt.deb
Selecting previously unselected package xrt.
(Reading database ... 114691 files and directories currently installed.)
Preparing to unpack xrt_202010.2.6.0_Ubuntu_18.04-arm64-xrt.deb ...
Unpacking xrt (2.6.0) ...
Setting up xrt (2.6.0) ...
Unloading old XRT Linux kernel modules
rmmod: ERROR: Module zocl is not currently loaded
Invoking DKMS common.postinst for xrt
debconf: unable to initialize frontend: Dialog
debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal.)
debconf: falling back to frontend: Readline
Loading new xrt-2.6.0 DKMS files...
Building for 4.19.0-xlnx-v2019.2-zynqmp-fpga
Building initial module for 4.19.0-xlnx-v2019.2-zynqmp-fpga
Done.
zocl:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.19.0-xlnx-v2019.2-zynqmp-fpga/updates/dkms/
depmod...
DKMS: install completed.
Finished DKMS common.postinst
Loading new XRT Linux kernel modules
Skipping pyopencl installation...

Lors de la construction du module du noyau, ne l'interrompez pas avec Ctrl-C etc., mais attendez qu'il se termine.

Préparation de l'arborescence des périphériques

Le paquet Debian installé dans la section précédente contient le module du noyau Linux zocl pour le périphérique XRT MPSoC Edge. Cependant, zocl ne prend pas effet simplement en l'installant sur Linux. Une arborescence de périphériques est requise pour activer zocl.

ZynqMP-FPGA-Linux prend en charge la superposition de l'arborescence des périphériques. La superposition de l'arborescence des périphériques ajoute et supprime activement les programmes FPGA et les modules de noyau exécutant Linux. zocl est également activé à l'aide de la superposition de l'arborescence des périphériques.

Voici un exemple de superposition de l'arborescence des périphériques pour activer zocl.

zocl.dts


/dts-v1/; /plugin/;
/ {
        fragment@0 {
                target-path = "/fpga-full";
                __overlay__ {
                        firmware-name = "streaming_lap_filter5.bin";
                };
        };
        fragment@1 {
                target-path = "/amba_pl@0";
                __overlay__ {
                        #address-cells = <2>;
                        #size-cells = <2>;
                        zyxclmm_drm {
                                compatible = "xlnx,zocl";
                                status = "okay";
                                reg = <0x0 0xA0000000 0x0 0x10000>;
                        };
                       fclk0 {
                                compatible    = "ikwzm,fclkcfg-0.10.a";
                                clocks        = <&zynqmp_clk 0x47>;
                                insert-rate   = "100000000";
                                insert-enable = <1>;
                                remove-rate   = "1000000";
                                remove-enable = <0>;
                        };
                };
        };
};

Dans cet exemple, le nœud zyxclmm_drm affiche l'arborescence des périphériques pour zocl.

En outre, il y a deux autres points importants concernant cette arborescence de périphériques. Le premier est que fclk0 règle l'horloge PL 0 à 100 MHz.

La seconde est que la propriété firmware-name est ajoutée au nœud fpga-full pour spécifier le fichier bitstream. Cela entraînera la programmation du fichier bitstream spécifié dans le FPGA lorsque l'arborescence des périphériques est superposée [3].

Les flux binaires contenus dans le fichier xclbin construit par l'environnement de développement logiciel de Xilinx Vitis sont en fait destinés à une reconfiguration partielle.

La reconfiguration partielle est une technologie qui réécrit de manière dynamique uniquement la zone spécifiée lorsqu'elle est initialement programmée et fonctionnant dans le FPGA. Autrement dit, le fichier de flux binaire sous-jacent doit être programmé dans le FPGA avant la reconfiguration partielle. De plus, lors de la reconfiguration partielle, contrairement aux programmes FPGA normaux, le FPGA entier n'est pas réinitialisé.

Lors de la programmation du fichier xclbin dans le FPGA, zocl programme en mode de reconfiguration partielle. Par conséquent, le fichier de flux binaire sous-jacent doit être programmé dans le FPGA avant que le pilote zocl puisse être activé.

Ajouté le 17 juin 2020

Dans l'article d'origine, "# size-cells = <1>;" "reg = <0x0 0xA0000000 0x10000>;", mais avec Linux Kernel 5.4, une erreur se produit. Depuis Linux Kernel 5.4, il semble qu'il n'est plus possible de définir la valeur de "# size-cells" sur une valeur différente de celle de l'arborescence des périphériques de base.

référence

[3]: https://qiita.com/ikwzm/items/2ff7d5429da8ace7c0bd "" Situation de prise en charge FPGA dans le noyau Linux 4.10 "@Qiita" [ZynqMP-FPGA-Linux]: https://github.com/ikwzm/ZynqMP-FPGA-Linux "https://github.com/ikwzm/ZynqMP-FPGA-Linux" [XRT]: https://github.com/Xilinx/XRT "https://github.com/Xilinx/XRT" [Présentation]: https://qiita.com/ikwzm/items/0d3a8adfe725cd17f932 "Exécution de XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Présentation)" @Qiita " [Build]: https://qiita.com/ikwzm/items/d8013ea91125a3fc46aa "Exécution de XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Build)" @Qiita " [Installation]: https://qiita.com/ikwzm/items/6612eacc4a0d324a0a68 "" Exécution de XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Installation) "@Qiita" [Pratique]: https://qiita.com/ikwzm/items/58cfea3f9d0f42840511 "" Exécution de XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pratique) "@Qiita" [Édition Vitis]: https://qiita.com/ikwzm/items/e70d8d0e44fe3784a708 "" Exécution de XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (édition Vitis) "@Qiita" ["Fourniture d'une image de démarrage pour Debian GNU / Linux (version v2019.2) pour UltraZed / Ultra96 / Ultra96-V2" @Qiita]: https://qiita.com/ikwzm/items/92221c5ea6abbd5e991c "" UltraZed / Ultra96 / Ultra96- Debian GNU / Linux pour V2 (version v2019.2) Fournit l'image de démarrage "@Qiita" ["Situation de prise en charge FPGA dans le noyau Linux 4.10" @Qiita]: https://qiita.com/ikwzm/items/2ff7d5429da8ace7c0bd "" Situation de prise en charge FPGA dans le noyau Linux 4.10 "@Qiita" ["Introduction de la reconfiguration partielle du FPGA (Vivado Design Flow)" @Qiita]: https://qiita.com/ikwzm/items/1ffb695bc1b6c8679710 "Introduction de la reconfiguration partielle du FPGA (Vivado Design Flow)" @Qiita "

Recommended Posts

Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Installation)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Build)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (édition Vitis)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Présentation)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pratique)
Exécutez le pilote Lima sur Debian GNU / Linux pour Ultra96 / Ultra96-V2
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (LibMali)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pilote vidéo)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Gnome Desktop)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pilote Mali)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (édition fbdev)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (présentation)
Exécutez bootgen sur Debian GNU / Linux, Ubuntu
Image de démarrage Debian GNU / Linux (version v2019.2) pour UltraZed / Ultra96 / Ultra96-V2
Exécutez Debian (Linux) et LXQt sur Athlon 200GE (AMD)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Build)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Installation) [Inachevé]
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Installation)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (édition Vitis)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Présentation)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pratique)
Exécutez le pilote Lima sur Debian GNU / Linux pour Ultra96 / Ultra96-V2
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (LibMali)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pilote vidéo)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Gnome Desktop)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pilote Mali)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (édition fbdev)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (présentation)
Exécutez bootgen sur Debian GNU / Linux, Ubuntu
Image de démarrage Debian GNU / Linux (version v2019.2) pour UltraZed / Ultra96 / Ultra96-V2
Exécutez Debian (Linux) et LXQt sur Athlon 200GE (AMD)
Linux sur Windows -1-: Présentation de Debian
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Installation)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Build)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (édition Vitis)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Présentation)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pratique)
Exécutez le pilote Lima sur Debian GNU / Linux pour Ultra96 / Ultra96-V2
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (LibMali)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pilote vidéo)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Gnome Desktop)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pilote Mali)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (édition fbdev)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (présentation)
Exécutez bootgen sur Debian GNU / Linux, Ubuntu
Image de démarrage Debian GNU / Linux (version v2019.2) pour UltraZed / Ultra96 / Ultra96-V2
Exécutez Debian (Linux) et LXQt sur Athlon 200GE (AMD)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Build)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Installation) [Inachevé]
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Installation)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (édition Vitis)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Présentation)
Exécutez XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pratique)
Exécutez le pilote Lima sur Debian GNU / Linux pour Ultra96 / Ultra96-V2
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (LibMali)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pilote vidéo)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Gnome Desktop)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pilote Mali)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (édition fbdev)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (présentation)
Exécutez bootgen sur Debian GNU / Linux, Ubuntu
Image de démarrage Debian GNU / Linux (version v2019.2) pour UltraZed / Ultra96 / Ultra96-V2
Exécutez Debian (Linux) et LXQt sur Athlon 200GE (AMD)