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

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 pour le pilote vidéo (xserver-xorg-video-armoc-xilinx) et l'installer sur ZynqMP-FPGA-Linux.

Qu'est-ce que xserver-xorg-video-armoc-xilinx?

Il s'agit d'un pilote DDX (pilote vidéo) de X Window Server qui prend en charge ZynqMP. Vous pouvez obtenir des informations d'affichage et définir l'affichage via DRM / KMS (Kernel Module Setting) du Kernel Module (xlnx_drv) fourni par Xilinx.

Fig.1 xserver-xorg-video-armsoc-xilinx

Fig.1 xserver-xorg-video-armsoc-xilinx


Procédure de construction du paquet Debian

Ce chapitre fournit les étapes pour créer un paquet Debian pour xserver-xorg-video-armoc-xilinx.

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

Nous avons également un paquet Debian xserver-xorg-video-armoc-xilinx pré-construit dans les dépôts suivants: Si vous rencontrez des difficultés pour construire, veuillez utiliser ceci

Créer un environnement

Il y a une mise en garde dans l'environnement à construire. Autrement dit, xserver-xorg-video-armoc-xilinx doit être construit en tant que module d'extension pour xserver-xorg-core. Pour ce faire, vous avez besoin d'un environnement dans lequel xserver-xorg-core est construit. À ce moment-là, si l'environnement cible (dans ce cas Debian 10 (ARM64)) et l'environnement de construction (par exemple, Ubuntu (amd64)) sont différents, des problèmes tels que l'impossibilité de construire normalement peuvent survenir.

Le moyen le plus rapide de résoudre ce problème est de (auto) construire xserver-xorg-video-armsoc sur Debian 10 exécutant Ultra96 / Ultra96-V2. Cet article décrit les étapes de compilation sur Debian 10 exécutant Ultra96 / Ultra96-V2.

Obtenez la source

xserver-xorg-video-armoc-xilinx est basé sur xf86-video-armoc. Cependant, il existe en fait plusieurs versions de xf86-video-armoc. Vous pouvez trouver 32 dépôts simplement en recherchant sur github. En plus de github, il existe des dépôts git sur Linaro.org et freedesktop.org. C'est exactement un mélange de cent fleurs et boules. Vous trouverez ci-dessous une brève introduction aux référentiels trouvés.

Parmi les référentiels ci-dessus, xserver-xorg-video-armoc-xilinx utilise celui fourni par freedesktop.org. J'ai choisi ce référentiel car il est (probablement) utilisé par PetaLinux fourni par Xilinx. J'ai essayé d'autres référentiels, mais aucun d'entre eux ne se construit ou ne s'affiche correctement.

Le dépôt freedesktop.org n'est pas github et ne peut pas être forké. Par conséquent, créez un référentiel local en suivant les étapes ci-dessous.

shell$ mkdir xserver-xorg-video-armsoc-xilinx
shell$ cd xserver-xorg-video-armsoc-xilinx
shell$ git init
shell$ git remote add freedesktop https://anongit.freedesktop.org/git/xorg/driver/xf86-video-armsoc.git
shell$ git fetch freedesktop
shell$ git merge freedesktop

Appliquer un patch pour Xilinx

PetaLinux de Xilinx est construit en corrigeant le référentiel fourni par freedesktop.org. Le fichier de correctif se trouve à l'URL suivante:

Téléchargez ce fichier de correctif et corrigez le référentiel. Je fais aussi git commit.

shell$ git clone https://github.com/Xilinx/meta-xilinx/
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 | 6.21 MiB/s, done.
Resolving deltas: 100% (6448/6448), done.
shell$
shell$ patch -p1 < meta-xilinx/meta-xilinx-bsp/recipes-graphics/xorg-driver/xf86-video-armsoc/0001-src-drmmode_xilinx-Add-the-dumb-gem-support-for-Xili.patch 
patching file src/Makefile.am
patching file src/armsoc_driver.c
patching file src/drmmode_driver.h
patching file src/drmmode_xilinx/drmmode_xilinx.c
shell$
shell$ git add --update
shell$ git add src/drmmode_xilinx
shell$ git commit -m "[add] src/drmmode_xilinx" 
[master 84e3cef] [add] src/drmmode_xilinx
 4 files changed, 80 insertions(+), 1 deletion(-)
 create mode 100644 src/drmmode_xilinx/drmmode_xilinx.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/xf86-video-armsoc-xilinx 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/compat
 create mode 100644 debian/control
 create mode 100644 debian/copyright
 create mode 100755 debian/rules
 create mode 100644 debian/xserver-xorg-video-armsoc-xilinx.docs
 create mode 100644 debian/xserver-xorg-video-armsoc-xilinx.install

Paquets requis pour la construction

Les paquets suivants sont requis pour construire le paquet Debian pour xserver-xorg-video-armoc. Veuillez installer avec apt install.

Générer configure et Makefile

Exécutez d'abord autogen.sh pour générer configure et Makefile. Vous devez ensuite exécuter make distclean pour effacer les fichiers intermédiaires générés par autogen.sh.

shell$ autogen.sh
	:
Omission
	:
shell$ make distclean
	:
Omission

Construire un paquet Debian

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

shell$ sudo debian/rule binary
	:
Omission
	:
shell$ dpkg --info ../xserver-xorg-video-armsoc-xilinx_1.4-1_arm64.deb
 new Debian package, version 2.0.
 size 32924 bytes: control archive=856 bytes.
     540 bytes,    12 lines      control
     611 bytes,     7 lines      md5sums
 Package: xserver-xorg-video-armsoc-xilinx
 Source: xf86-video-armsoc-xilinx
 Version: 1.4-1
 Architecture: arm64
 Maintainer: ikwzm <[email protected]>
 Installed-Size: 100
 Depends: libc6 (>= 2.17), libdrm2 (>= 2.4.36), libpixman-1-0, xorg-video-abi-24, xserver-xorg-core (>= 2:1.18.99.901)
 Provides: xorg-driver-video
 Section: x11
 Priority: optional
 Homepage: <https://github.com/ikwzm/xf86-video-armsoc-xilinx>
 Description: X.Org X Server -- ARM SoC display driver for rockchip, amlogic, sunxi and Xilinx(ZynqMP) DRM (mainline kernel)

Installation

Introduction du paquet Debian

Cette section décrit les étapes d'installation du paquet Debian xserver-xorg-video-armoc-xilinx construit dans le chapitre précédent sur ZynqMP-FPGA-Linux.

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

Mise en garde

La procédure à installer ici est lorsque le rendu par GPU (Mali-400) n'est pas effectué. Si vous souhaitez effectuer le rendu avec GPU, vous devez installer les pilotes libMali et Mali Kernel, ce qui complique la procédure d'installation. Veuillez vous référer à l'article suivant pour plus de détails.

Installer le paquet Debian

Tout d'abord, installez le système X Window.

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

Ensuite, installez xserver-xorg-video-armoc-xilinx_1.4-1_arm64.deb.

shell$ sudo dpkg -i xserver-xorg-video-armsoc-xilinx_1.4-1_arm64.deb
[sudo] password for fpga:
(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) ...

Installez votre gestionnaire de fenêtres préféré.

shell$  apt install jwm
	:
Omission

paramètres 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

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.

[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 vidéo)
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 (LibMali)
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 XRT (Xilinx Runtime) sur Debian GNU / Linux pour Ultra96 / Ultra96-V2 (pratique)
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 Tensorflow 2.x sur Python 3.7
Linux sur Windows -1-: Présentation de Debian