Führen Sie X Window unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Mali-Treiber) aus.

Einführung

Der Autor stellt Debian GNU / Linux für Ultra96 / Ultra96-V2 (ZynqMP) zur Verfügung [1]. Das bereitgestellte Debian GNU / Linux basiert auf CUI, aber dieses Mal haben wir das X Window System auf Ultra96 / Ultra96-V2 ausgeführt, um die GUI zu unterstützen.

Daher wird die Vorgehensweise zum Betrieb des X Window-Systems unter Ultra96 / Ultra96-V2 in mehreren Teilen erläutert.

Dieser Artikel enthält Schritte zum Erstellen des Mali-Treiber-Debian-Pakets und zum Installieren unter ZynqMP-FPGA-Linux.

Was ist Mali Fahrer?

Der Mali-Treiber ist ein Kernel-Modul zur Steuerung der in ZynqMP installierten GPU (Mali-400). Dieses Kernelmodul ist standardmäßig nicht in ZynqMP-FPGA-Linux enthalten. Der Gerätebaum ist jedoch standardmäßig bereits integriert. Der Gerätebaum ist jedoch standardmäßig bereits integriert. Wenn Sie 3D-Rendering mit GPU durchführen möchten, müssen Sie ein neues Kernelmodul erstellen und hinzufügen.

Fig.1 Mali Kernel Module

Fig.1 Mali Kernel Module


Debian Package Build-Prozedur

In diesem Kapitel werden die Schritte zum Erstellen eines Debian-Pakets für den Mali-Treiber beschrieben.

Das durch das hier erläuterte Verfahren generierte Repository ist unter der folgenden URL verfügbar. Wenn Sie Probleme beim Erstellen eines Repositorys haben, verwenden Sie das folgende Repository.

Das obige Repository enthält jedoch nicht den Quellcode für den Mali-Treiber. Der Quellcode für den Maili-Treiber muss von der ARM-Webseite heruntergeladen werden. Der Download-Vorgang wird später beschrieben.

Darüber hinaus ist das für ZynqMP-FPGA-Linux (v2019.1.x) vorgefertigte Debian-Paket des Mali-Treibers im folgenden Repository verfügbar. Wenn Sie Probleme beim Bauen haben, verwenden Sie diese bitte.

Erstellen Sie ein Repository

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

Holen Sie sich die Quelle

Der Quellcode für den Mali-Treiber verwendet den von ARM bereitgestellten Open-Source-GPU-Kerneltreiber Mali Utgard. Bitte besuchen Sie die ARM-Webseite, akzeptieren Sie die __end-Benutzerlizenz und laden Sie DX910-SW-99002-r8p0-01rel0.tgz herunter. Die Webseite befindet sich unter folgender URL:

Sie können es auch mit der folgenden Methode herunterladen. Bitte akzeptieren Sie jedoch die Endbenutzerlizenz.

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]

Erweitern Sie DX910-SW-99002-r8p0-01rel0.tgz.

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

Wenden Sie einen Patch für Xilinx an

PetaLinux von Xilinx wird durch Patchen des Open-Source-GPU-Kerneltreibers Mali Utgard erstellt. Die Patch-Datei finden Sie unter folgender URL:

Unter dieser URL befinden sich 14 Patch-Dateien. Wenden Sie diese Patch-Dateien in aufsteigender Reihenfolge an.

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

Fügen Sie eine Datei hinzu, um ein Debian-Paket zu erstellen

Erstellen Sie ein Debian-Verzeichnis und fügen Sie die folgenden Dateien hinzu.

Diese Dateien werden hier nicht beschrieben. Weitere Informationen finden Sie unter https://github.com/ikwzm/zynqmp-gpu-kmod-dpkg. Nach dem Hinzufügen der Datei 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
 

Erstellen Sie das Debian-Paket

Führen Sie debian / rule binary aus, um das Debian-Paket für den Mali-Treiber zu erstellen. Das erstellte Paket wird im nächsthöheren Verzeichnis erstellt.

shell$ sudo debian/rule binary
	:
Unterlassung
	:
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

Debian-Paket installieren

In diesem Abschnitt werden die Schritte zum Installieren des Mali-Treiber-Debian-Pakets unter ZynqMP-FPGA-Linux beschrieben.

Das vorgefertigte Debian-Paket ist im folgenden Repository verfügbar. Sie können dies installieren.

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) ...

Durch die Installation dieses Debian-Pakets wird /lib/modules/4.19.0-xlnx-v2019.1-zynqmp-fpga/kernel/drivers/gpu/mali.ko hinzugefügt.

Gerätebaum installieren

Es muss ein GPU-Knoten (Mali) im Gerätebaum vorhanden sein, damit der Mali-Treiber funktioniert. Das folgende Beispiel zeigt einen GPU-Knoten (Mali) im Gerätebaum.

	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>;
	};

Der von ZynqMP-FPGA-Linux bereitgestellte Gerätebaum für Ultra96 / Ultra96-V2 enthält bereits einen GPU-Knoten (Mali). Wenn Sie also einfach das Mali-Treiber-Debian-Paket installieren, wird der Mali-Treiber aktiviert.

[Übersicht]: https://qiita.com/ikwzm/items/fdec04519268b3fb9a50 "" Ausführen des X-Fensters unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Übersicht) "@Qiita" [Video Driver Edition]: https://qiita.com/ikwzm/items/2a0fbfd2938a893e57d4 "" Ausführen von X Window unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Video Driver Edition) "@Qiita" [Mali Driver Edition]: https://qiita.com/ikwzm/items/8c96d75e03cdcb91e5b2 "" Ausführen des X-Fensters unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Mali Driver Edition) "@Qiita" [LibMali-Edition]: https://qiita.com/ikwzm/items/85fa889def8eb07a9e94 "" Ausführen des X-Fensters unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (libMali-Edition) "@ Qiita" [fbdev edition]: https://qiita.com/ikwzm/items/f922f7e17aa2382d5c76 "" Ausführen von X Window unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (fbdev Edition) "@Qiita" [glmark2 edition]: https://qiita.com/ikwzm/items/5065fb0b6c01ea706571 "" Ausführen von X Window unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (glmark2 edition) "@ Qiita" [1]: https://qiita.com/ikwzm/items/0c6f110aa19e368af03d "Bereitstellung eines Boot-Images für Debian GNU / Linux (Version v2019.1) für UltraZed / Ultra96 / Ultra96-V2" @Qiita "

Recommended Posts

Führen Sie X Window unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Mali-Treiber) aus.
Führen Sie X Window unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Videotreiber) aus.
Führen Sie X Window unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Gnome Desktop) aus.
Führen Sie den Lima-Treiber unter Debian GNU / Linux für Ultra96 / Ultra96-V2 aus
Führen Sie X Window unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (fbdev Edition) aus.
Führen Sie X Window unter Debian GNU / Linux für Ultra96 / Ultra96-V2 aus (Übersicht)
Führen Sie XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 aus (Installation)
Führen Sie XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Build) aus.
Führen Sie XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Build) aus [Unfinished]
Führen Sie XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 aus (Installation) [Unfinished]
Führen Sie XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Vitis Edition) aus.
Führen Sie XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 aus (Übersicht).
Führen Sie bootgen unter Debian GNU / Linux, Ubuntu aus
Debian GNU / Linux (Version v2019.2) Boot-Image für UltraZed / Ultra96 / Ultra96-V2
Führen Sie Debian (Linux) & LXQt auf Athlon 200GE (AMD) aus.
Führen Sie XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 aus (Übersicht).
Führen Sie XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 aus (Installation)
Führen Sie XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Build) aus.
Führen Sie XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Build) aus [Unfinished]
Führen Sie XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 aus (Installation) [Unfinished]
Führen Sie XRT (Xilinx Runtime) unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Vitis Edition) aus.
Führen Sie X Window unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (fbdev Edition) aus.
Führen Sie X Window unter Debian GNU / Linux für Ultra96 / Ultra96-V2 aus (Übersicht)
Führen Sie den Lima-Treiber unter Debian GNU / Linux für Ultra96 / Ultra96-V2 aus
Führen Sie X Window unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (LibMali) aus.
Führen Sie X Window unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Videotreiber) aus.
Führen Sie X Window unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Gnome Desktop) aus.
Führen Sie X Window unter Debian GNU / Linux für Ultra96 / Ultra96-V2 (Mali-Treiber) aus.
Debian GNU / Linux (Version v2019.2) Boot-Image für UltraZed / Ultra96 / Ultra96-V2
Führen Sie bootgen unter Debian GNU / Linux, Ubuntu aus
Linux unter Windows -1-: Einführung in Debian
Führen Sie Tensorflow 2.x unter Python 3.7 aus
Linux unter Windows -1-: Einführung in Debian