Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pilote Mali)

introduction

L'auteur fournit Debian GNU / Linux pour Ultra96 / Ultra96-V2 (ZynqMP) [1]. Le Debian GNU / Linux fourni est basé sur CUI, mais cette fois, nous avons fait fonctionner le système X Window sur Ultra96 / Ultra96-V2 pour prendre en charge l'interface graphique.

Par conséquent, la procédure de fonctionnement du système X Window sur Ultra96 / Ultra96-V2 est expliquée en plusieurs parties.

Cet article fournit les étapes pour construire le package Debian du pilote Mali et l'installer sur ZynqMP-FPGA-Linux.

Qu'est-ce que Mali Driver?

Le pilote Mali est un module de noyau pour contrôler le GPU (Mali-400) installé dans ZynqMP. Ce module du noyau n'est pas inclus par défaut dans ZynqMP-FPGA-Linux. Cependant, l'arborescence des périphériques est déjà intégrée par défaut. Cependant, l'arborescence des périphériques est déjà intégrée par défaut. Si vous souhaitez effectuer un rendu 3D à l'aide de GPU, vous devez créer et ajouter un nouveau module de noyau.

Fig.1 Mali Kernel Module

Fig.1 Mali Kernel Module


Procédure de construction du paquet Debian

Ce chapitre décrit les étapes de création d'un package Debian pour le pilote Mali.

Le référentiel généré par la procédure expliquée ici est disponible à l'URL suivante. Si vous rencontrez des difficultés pour créer un référentiel, veuillez utiliser le référentiel suivant.

Cependant, le référentiel ci-dessus ne contient pas le code source du pilote Mali. Le code source du pilote Maili doit être téléchargé à partir de la page Web ARM. La procédure de téléchargement sera décrite plus loin.

De plus, le package Debian du pilote Mali pré-construit pour ZynqMP-FPGA-Linux (v2019.1.x) est disponible dans le référentiel suivant. Si vous rencontrez des difficultés pour construire, veuillez utiliser ceci

Créer un référentiel

shell$ mkdir zynqmp-gpu-kmod-dpkg
shell$ cd zynqmp-gpu-kmod-dpkg
shell$ git init

Obtenez la source

Le code source du pilote Mali utilise le pilote de noyau GPU Mali Utgard open source fourni par ARM. Veuillez visiter la page Web ARM, acceptez la licence utilisateur __end et téléchargez DX910-SW-99002-r8p0-01rel0.tgz. La page Web se trouve à l'URL suivante:

Vous pouvez également le télécharger par la méthode suivante. Cependant, veuillez accepter la licence utilisateur final.

shell$ wget https://developer.arm.com/-/media/Files/downloads/mali-drivers/kernel/mali-utgard-gpu/DX910-SW-99002-r8p0-01rel0.tgz
--2019-12-08 13:55:32--  https://developer.arm.com/-/media/Files/downloads/mali-drivers/kernel/mali-utgard-gpu/DX910-SW-99002-r8p0-01rel0.tgz
Resolving developer.arm.com (developer.arm.com)... 184.26.212.16
Connecting to developer.arm.com (developer.arm.com)|184.26.212.16|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://armkeil.blob.core.windows.net/developer/Files/downloads/mali-drivers/kernel/mali-utgard-gpu/DX910-SW-99002-r8p0-01rel0.tgz [following]
--2019-12-08 13:55:33--  https://armkeil.blob.core.windows.net/developer/Files/downloads/mali-drivers/kernel/mali-utgard-gpu/DX910-SW-99002-r8p0-01rel0.tgz
Resolving armkeil.blob.core.windows.net (armkeil.blob.core.windows.net)... 52.239.137.100
Connecting to armkeil.blob.core.windows.net (armkeil.blob.core.windows.net)|52.239.137.100|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 350213 (342K) [application/octet-stream]
Saving to: ‘DX910-SW-99002-r8p0-01rel0.tgz’
DX910-SW-99002-r8p0-01rel0 100%[========================================>] 342.00K   490KB/s    in 0.7s    
2019-12-08 13:55:35 (490 KB/s) - ‘DX910-SW-99002-r8p0-01rel0.tgz’ saved [350213/350213]

Développez DX910-SW-99002-r8p0-01rel0.tgz.

shell$ tar xfz DX910-SW-99002-r8p0-01rel0.tgz 

Appliquer un patch pour Xilinx

PetaLinux de Xilinx est construit en patchant le pilote de noyau GPU Mali Utgard open source. Le fichier de correctif se trouve à l'URL suivante:

Il y a 14 fichiers de correctifs à cette URL. Appliquez ces fichiers de correctif dans l'ordre croissant.

shell$ it clone https://github.com/Xilinx/meta-xilinx.git
Cloning into 'meta-xilinx'...
remote: Enumerating objects: 1209, done.
remote: Counting objects: 100% (1209/1209), done.
remote: Compressing objects: 100% (605/605), done.
remote: Total 11725 (delta 678), reused 1045 (delta 551), pack-reused 10516    
Receiving objects: 100% (11725/11725), 8.88 MiB | 1.03 MiB/s, done.
Resolving deltas: 100% (6448/6448), done.
shell$ 
shell$ for file in `\\find meta-xilinx/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali -maxdepth 1 -type f | sort`; do patch -d DX910-SW-99002-r8p0-01rel0/driver/src/devicedrv/mali/ -p1 < $file ; done
patching file Makefile
patching file platform/arm/arm.c
patching file linux/mali_linux_trace.h
patching file platform/arm/arm.c
patching file linux/mali_kernel_linux.c
patching file platform/arm/arm.c
patching file linux/mali_memory_os_alloc.c
patching file linux/mali_osk_notification.c
patching file linux/mali_internal_sync.c
patching file linux/mali_internal_sync.h
patching file linux/mali_memory_swap_alloc.c
patching file common/mali_pm.c
patching file linux/mali_kernel_linux.c
patching file linux/mali_memory_os_alloc.c
patching file linux/mali_memory_secure.c
patching file common/mali_control_timer.c
patching file common/mali_group.c
patching file common/mali_osk.h
patching file linux/mali_osk_timers.c

Ajouter un fichier pour créer un paquet Debian

Créez un répertoire debian et ajoutez les fichiers suivants.

Ces fichiers ne sont pas décrits ici. Voir https://github.com/ikwzm/zynqmp-gpu-kmod-dpkg pour plus d'informations. Après avoir ajouté le fichier, git commit.

shell$ git add debian/
shell$ git commit -m "[add] debian/"
[master 3961b1d] [add] debian/
 8 files changed, 68 insertions(+)
 create mode 100644 debian/README.Debian
 create mode 100644 debian/README.source
 create mode 100644 debian/changelog
  create mode 100644 debian/control.template
 create mode 100644 debian/copyright
 create mode 100644 debian/postinst
 create mode 100644 debian/postrm
 create mode 100644 debian/prerm
 create mode 100755 debian/rules
 

Construire un paquet Debian

Exécutez le binaire debian / rule pour construire le paquet Debian pour le pilote Mali. Le package construit sera créé dans le répertoire supérieur suivant.

shell$ sudo debian/rule binary
	:
Omission
	:
shell$ dpkg --info ../zynqmp-gpu-4.19.0-xlnx-v2019.1-zynqmp-fpga_0.1.2-0_arm64.deb
 new Debian package, version 2.0.
 size 1803188 bytes: control archive=584 bytes.
     412 bytes,    12 lines      control
      37 bytes,     6 lines   *  postinst             #!/bin/sh
      22 bytes,     4 lines   *  postrm               #!/bin/sh
      32 bytes,     4 lines   *  prerm                #!/bin/sh
 Package: zynqmp-gpu-4.19.0-xlnx-v2019.1-zynqmp-fpga
 Source: zynqmp-gpu
 Version: 0.1.2-0
 Architecture: arm64
 Maintainer: ikwzm <[email protected]>
 Installed-Size: 12535
 Depends: linux-image-4.19.0-xlnx-v2019.1-zynqmp-fpga
 Provides: zynqmp-gpu-kernel-module
 Section: kmod
 Priority: optional
 Homepage: <https://github.com/ikwzm/zynqmp-gpu-kmod-dpkg>
 Description: Kernel Module for ZynqMP GPU(ARM Mali-400).

Installation

Installer le paquet Debian

Cette section décrit les étapes d'installation du package Debian du pilote Mali sur ZynqMP-FPGA-Linux.

Le paquet Debian pré-construit est disponible dans le référentiel suivant. Vous pouvez l'installer.

shell$ sudo dpkg -i zynqmp-gpu-4.19.0-xlnx-v2019.1-zynqmp-fpga_0.1.2-0_arm64.deb
(Reading database ... 66644 files and directories currently installed.)
Preparing to unpack zynqmp-gpu-4.19.0-xlnx-v2019.1-zynqmp-fpga_0.1.2-0_arm64.deb ...
Unpacking zynqmp-gpu-4.19.0-xlnx-v2019.1-zynqmp-fpga (0.1.2-0) over (0.1.2-0) ...
Setting up zynqmp-gpu-4.19.0-xlnx-v2019.1-zynqmp-fpga (0.1.2-0) ...

L'installation de ce paquet Debian ajoutera /lib/modules/4.19.0-xlnx-v2019.1-zynqmp-fpga/kernel/drivers/gpu/mali.ko.

Installer l'arborescence des périphériques

Il doit y avoir un nœud GPU (Mali) dans l'arborescence des périphériques pour que le pilote Mali fonctionne. Voici un exemple de nœud GPU (Mali) dans l'arborescence des périphériques.

	gpu: gpu@fd4b0000 {
		status = "okay";
		compatible = "arm,mali-400", "arm,mali-utgard";
		reg = <0x0 0xfd4b0000 0x0 0x10000>;
		interrupt-parent = <&gic>;
		interrupts = <0 132 4>, <0 132 4>, <0 132 4>, <0 132 4>, <0 132 4>, <0 132 4>;
		interrupt-names = "IRQGP", "IRQGPMMU", "IRQPP0", "IRQPPMMU0", "IRQPP1", "IRQPPMMU1";
		clock-names = "gpu", "gpu_pp0", "gpu_pp1";
		power-domains = <&zynqmp_firmware PD_GPU>;
	};

L'arborescence des périphériques pour Ultra96 / Ultra96-V2 fournie par ZynqMP-FPGA-Linux a déjà un nœud GPU (Mali) ajouté. Par conséquent, installer simplement le package Debian du pilote Mali activera le pilote Mali.

[Présentation]: https://qiita.com/ikwzm/items/fdec04519268b3fb9a50 "" Exécution de X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Présentation) "@Qiita" [Video Driver Edition]: https://qiita.com/ikwzm/items/2a0fbfd2938a893e57d4 "" Exécution de X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Video Driver Edition) "@Qiita" [Mali Driver Edition]: https://qiita.com/ikwzm/items/8c96d75e03cdcb91e5b2 "" Exécution de X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Mali Driver Edition) "@Qiita" [Edition LibMali]: https://qiita.com/ikwzm/items/85fa889def8eb07a9e94 "" Exécution de X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (édition libMali) "@ Qiita" [édition fbdev]: https://qiita.com/ikwzm/items/f922f7e17aa2382d5c76 "" Exécution de X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (édition fbdev) "@Qiita" [édition glmark2]: https://qiita.com/ikwzm/items/5065fb0b6c01ea706571 "" Exécution de X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (édition glmark2) "@ Qiita" [1]: https://qiita.com/ikwzm/items/0c6f110aa19e368af03d "Fourniture d'une image de démarrage pour Debian GNU / Linux (version v2019.1) pour UltraZed / Ultra96 / Ultra96-V2" @Qiita "

Recommended Posts

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 (pilote vidéo)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (Gnome Desktop)
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 (édition fbdev)
Exécuter X Window sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (présentation)
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 (Build) [Unfinished]
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 (édition Vitis)
Exécutez XRT (Xilinx Runtime) 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 (Présentation)
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 (Build) [Unfinished]
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 (édition Vitis)
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 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)
Image de démarrage Debian GNU / Linux (version v2019.2) pour UltraZed / Ultra96 / Ultra96-V2
Exécutez bootgen sur Debian GNU / Linux, Ubuntu
Linux sur Windows -1-: Présentation de Debian
Exécutez Tensorflow 2.x sur Python 3.7
Linux sur Windows -1-: Présentation de Debian