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

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 vous guidera à travers les étapes pour construire le paquet LibMali Debian et installer le système X Window avec libMali sur ZynqMP-FPGA-Linux.

Qu'est-ce que LibMali (bibliothèques d'espace utilisateur pour le Mali)?

libMali est une bibliothèque basée sur l'espace utilisateur pour le rendu 3D sur un GPU (Mali-400). Il prend en charge OpenGL ES 2.0. Cette bibliothèque est requise pour le rendu 3D à l'aide du GPU. Cette bibliothèque est fournie en binaire par ARM.

Fig.1 LibMali(User Space Libraries for Mali)

Fig.1 LibMali(User Space Libraries for Mali)


Procédure de construction du paquet Debian

Ce chapitre fournit les étapes pour créer un paquet Debian libMali.

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.

LibMali est une bibliothèque binaire fournie par Xilinx. Non fourni par le code source. Cet article décrit les étapes pour transformer une bibliothèque fournie par un binaire en un paquet Debian. Le but du paquet Debian est de faciliter l'installation sur Debian en l'empaquetant.

Nous avons également un paquet Debian libMali pré-construit dans le dépôt suivant: Si vous rencontrez des difficultés pour construire, veuillez utiliser ceci

Créer un référentiel

shell$ mkdir libmali-zynqmp
shell$ cd libmali-zynqmp 
shell$ git init

Obtenez une bibliothèque binaire

La bibliothèque binaire utilise la bibliothèque fournie par Xilinx. Veuillez vous reporter à la page Web suivante pour accepter la licence du logiciel et télécharger mali-400-userspace.tar.

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

shell$ wget https://www.xilinx.com/publications/products/tools/mali-400-userspace.tar
--2019-12-08 21:39:58--  https://www.xilinx.com/publications/products/tools/mali-400-userspace.tar
-UUU:----F1  Readme.md<libmali-zynqmp>   49% L37   Git-master  (Fundamental) ---
HTTP request sent, awaiting response... 200 OK
Length: 572887040 (546M) [application/x-tar]
Saving to: ‘mali-400-userspace.tar’
mali-400-userspace. 100%[==================>] 546.35M  1.27MB/s    in 9m 2s
2019-12-24 16:54:47 (1.01 MB/s) - ‘mali-400-userspace.tar’ saved [572887040/572887040]

Extrayez mali / rel-v2019.1 / r8p0-01rel0 de mali-400-userspace.tar.

shell$ tar xf mali-400-userspace.tar mali/rel-v2019.1/r8p0-01rel0.tar
shell$ tar xf mali/rel-v2019.1/r8p0-01rel0.tar

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/libmali-zynqmp pour plus d'informations.

Ajouter un fichier pour pkgconfig

Le paquet Debian pour le développement de libMali (libgbm-zynqmp-dev_1.6-3_arm64.deb et libmali-zynqmp-dev_1.6-3_arm64.deb) comprend également des fichiers pour pkgconfig. Ajoutez un fichier pour l'installation de pkgconfig. Ces fichiers ne sont pas décrits ici. Voir https://github.com/ikwzm/libmali-zynqmp pour plus d'informations.

Ajouter CMakeLists.txt

Utilisez cmake lors de la construction du paquet Debian. Ajoutez CMakeLists.txt pour cela.

Construire un paquet Debian

Le référentiel créé par la procédure expliquée dans la section précédente est préparé à l'URL suivante. Si vous rencontrez des difficultés pour créer un référentiel, veuillez cloner ce référentiel.

https://github.com/ikwzm/libmali-zynqmp

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

shell$ sudo debian/rule binary
	:
Omission

Installation

Introduction du paquet Debian

Ce chapitre décrit les étapes d'installation du système X Window avec libMali sur ZynqMP-FPGA-Linux.

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

point important

Lors de l'installation du paquet libMali Debian, l'ordre dans lequel ils sont installés est important. C'est parce que le paquet Debian de libMali écrase partiellement le contenu du paquet Debian, qui est installé par défaut avec le système X Window. Je ne suis pas très familier avec le paquet Debian, donc je ne pouvais pas créer un paquet Debian qui pourrait être installé d'un seul coup. Notez s'il vous plaît.

Procédure d'installation

Plus précisément, installez-le selon la procédure suivante.

  1. Installez le pilote Mali
  2. Installez le système X Window
  3. Installez libMali
  4. Installez le pilote vidéo (xserver-xorg-video-armoc-xilinx)
  5. Modifiez xorg.conf
  6. Installez les packages de développement (si nécessaire)

Si le système X Window est déjà installé, vous devez désinstaller le système X Window une fois en suivant la procédure ci-dessous.

1. Installez le pilote Mali

Le pilote Mali est un module de noyau pour contrôler le GPU (Mali-400) installé dans ZynqMP. Consultez les articles suivants pour installer le pilote Mali.

2. Installez le système X Window

Installez le système X Window.

shell$  apt install x-window-system-core
	:
Omission

3. Installez libMali

Installez __ libMali après avoir installé le système X Window. Installez le paquet Debian de libMali dans l'ordre suivant.

shell$ sudo dpkg -i libmali-zynqmp_1.7-0_arm64.deb 
Selecting previously unselected package libmali-zynqmp:arm64.
(Reading database ... 85064 files and directories currently installed.)
Preparing to unpack libmali-zynqmp_1.7-0_arm64.deb ...
Unpacking libmali-zynqmp:arm64 (1.7-0) ...
Setting up libmali-zynqmp:arm64 (1.7-0) ...
Processing triggers for libc-bin (2.28-10) ...
shell$ sudo dpkg -i libegl1-zynqmp_1.7-0_arm64.deb 
Selecting previously unselected package libegl1-zynqmp:arm64.
(Reading database ... 85072 files and directories currently installed.)
Preparing to unpack libegl1-zynqmp_1.7-0_arm64.deb ...
Unpacking libegl1-zynqmp:arm64 (1.7-0) ...
Replacing files in old package libegl1:arm64 (1.1.0-1) ...
Setting up libegl1-zynqmp:arm64 (1.7-0) ...
shell$ sudo dpkg -i libgles1-zynqmp_1.7-0_arm64.deb 
Selecting previously unselected package libgles1-zynqmp:arm64.
(Reading database ... 85076 files and directories currently installed.)
Preparing to unpack libgles1-zynqmp_1.7-0_arm64.deb ...
Unpacking libgles1-zynqmp:arm64 (1.7-0) ...
Setting up libgles1-zynqmp:arm64 (1.7-0) ...
shell$ sudo dpkg -i libgles2-zynqmp_1.7-0_arm64.deb
Selecting previously unselected package libgles2-zynqmp:arm64.
(Reading database ... 85081 files and directories currently installed.)
Preparing to unpack libgles2-zynqmp_1.7-0_arm64.deb ...
Unpacking libgles2-zynqmp:arm64 (1.7-0) ...
Setting up libgles2-zynqmp:arm64 (1.7-0) ...
shell$ sudo dpkg -i libgbm1-zynqmp_1.7-0_arm64.deb
Selecting previously unselected package libgbm1-zynqmp:arm64.
(Reading database ... 85086 files and directories currently installed.)
Preparing to unpack libgbm1-zynqmp_1.7-0_arm64.deb ...
Unpacking libgbm1-zynqmp:arm64 (1.7-0) ...
Replacing files in old package libgbm1:arm64 (18.3.6-2) ...
Setting up libgbm1-zynqmp:arm64 (1.7-0) ...

4. Installez le pilote vidéo (xserver-xorg-video-armoc-xilinx)

Le pilote vidéo (xserver-xorg-video-armoc-xilinx) est un pilote DDX (pilote vidéo) pour X Window Server qui prend en charge ZynqMP. Veuillez vous référer à l'article suivant pour plus de détails.

xserver-xorg-video-armoc-xilinx_1.4-1_arm64.deb en utilisant dpkg À installer.

shell$ sudo dpkg -i xserver-xorg-video-armsoc-xilinx_1.4-1_arm64.deb
(Reading database ... 66644 files and directories currently installed.)
Preparing to unpack xserver-xorg-video-armsoc-xilinx_1.4-1_arm64.deb ...
Unpacking xserver-xorg-video-armsoc-xilinx (1.4-1) over (1.4-1) ...
Setting up xserver-xorg-video-armsoc-xilinx (1.4-1) ...
Processing triggers for man-db (2.8.5-2) ...

5. Modifiez xorg.conf

Vous devez spécifier armoc pour la propriété Driver dans la section Device de /etc/X11/xorg.conf.

/etc/X11/xorg.conf


Section "Device"
	Identifier	"ZynqMP"
	Driver		"armsoc"
	Option		"DEBUG"	"true"
EndSection
Section "Screen"
	Identifier	"DefaultScreen"
	Device		"ZynqMP"
EndSection

6. Installez les packages de développement (si nécessaire)

Si nécessaire, installez le paquet Debian pour le développement.

shell$ sudo dpkg -i libmali-zynqmp-dev_1.7-0_arm64.deb 
Selecting previously unselected package libmali-zynqmp-dev:arm64.
(Reading database ... 85097 files and directories currently installed.)
Preparing to unpack libmali-zynqmp-dev_1.7-0_arm64.deb ...
Unpacking libmali-zynqmp-dev:arm64 (1.7-0) ...
Setting up libmali-zynqmp-dev:arm64 (1.7-0) ...
shell$ sudo dpkg -i libegl1-zynqmp-dev_1.7-0_arm64.deb 
Selecting previously unselected package libegl1-zynqmp-dev:arm64.
(Reading database ... 85101 files and directories currently installed.)
Preparing to unpack libegl1-zynqmp-dev_1.7-0_arm64.deb ...
Unpacking libegl1-zynqmp-dev:arm64 (1.7-0) ...
Setting up libegl1-zynqmp-dev:arm64 (1.7-0) ...
shell$ sudo dpkg -i libegl1-zynqmp-dev_1.7-0_arm64.deb 
(Reading database ... 85110 files and directories currently installed.)
Preparing to unpack libegl1-zynqmp-dev_1.7-0_arm64.deb ...
Unpacking libegl1-zynqmp-dev:arm64 (1.7-0) over (1.7-0) ...
Setting up libegl1-zynqmp-dev:arm64 (1.7-0) ...
shell$ sudo dpkg -i libgles2-zynqmp-dev_1.7-0_arm64.deb 
Selecting previously unselected package libgles2-zynqmp-dev:arm64.
(Reading database ... 85110 files and directories currently installed.)
Preparing to unpack libgles2-zynqmp-dev_1.7-0_arm64.deb ...
Unpacking libgles2-zynqmp-dev:arm64 (1.7-0) ...
Setting up libgles2-zynqmp-dev:arm64 (1.7-0) ...
shell$ sudo dpkg -i libgbm-zynqmp-dev_1.7-0_arm64.deb 
Selecting previously unselected package libgbm-zynqmp-dev:arm64.
(Reading database ... 85119 files and directories currently installed.)
Preparing to unpack libgbm-zynqmp-dev_1.7-0_arm64.deb ...
Unpacking libgbm-zynqmp-dev:arm64 (1.7-0) ...
Setting up libgbm-zynqmp-dev:arm64 (1.7-0) ...

Désinstaller

En raison de mon manque d'étude, les dépendances du paquet Debian sont perturbées. Par conséquent, lors de la mise à jour ou de la désinstallation d'un package, il peut échouer. Si cela se produit, il est préférable de désinstaller le système X Window une fois. Voici les étapes pour désinstaller le système X Window.

1. purger xserver-xorg-core

Tout d'abord, purgez xserver-xorg-core.

shell$ sudo apt purge xserver-xorg-core
	:
Omission

2. purge automatique

Utilisez autopurge pour supprimer les packages qui dépendaient de xserver-xorg-core.

shell$ sudo apt autopurge
	:
Omission

3. Désinstaller libMali

Désinstallez libmali-zynqmp et libgbm1-zynqmp.

shell$ sudo dpkg --purge libgbm1-zynqmp
(Reading database ... 55745 files and directories currently installed.)
Removing libgbm1-zynqmp:arm64 (1.6-3) ...
shell$ sudo dpkg --purge libmali-zynqmp
(Reading database ... 55741 files and directories currently installed.)
Removing libmali-zynqmp:arm64 (1.6-3) ...
Purging configuration files for libmali-zynqmp:arm64 (1.6-3) ...
Processing triggers for libc-bin (2.28-10) ...

Commencez

Connectez-vous en tant que root et essayez de démarrer avec startx.

shell# startx &
	:
Omission

Si vous voyez X Windows sur l'écran, vous avez réussi.

référence

J'ai exécuté le benchmark avec Video Driver + GPU. Veuillez vous référer à la page suivante pour plus de détails.

[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 (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 le pilote Lima sur Debian GNU / Linux pour Ultra96 / Ultra96-V2
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 Tensorflow 2.x sur Python 3.7
Linux sur Windows -1-: Présentation de Debian
Exécutez un serveur Linux avec GCP
Exécutez le client VMware Horizon sur Debian
[Note] Exécutez Django sur Amazon Linux 2
pykintone sur le sous-système Windows pour Linux
Exécutez cron sur Amazon Linux (défini sur Linux)