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.
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
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
https://github.com/ikwzm/ZynqMP-FPGA-Xserver
shell$ mkdir zynqmp-gpu-kmod-dpkg
shell$ cd zynqmp-gpu-kmod-dpkg
shell$ git init
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
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
Créez un répertoire debian et ajoutez les fichiers suivants.
debian/
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
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).
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.
https://github.com/ikwzm/ZynqMP-FPGA-Xserver
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.
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