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.
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
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.
https://github.com/ikwzm/ZynqMP-FPGA-Xserver
shell$ mkdir zynqmp-gpu-kmod-dpkg
shell$ cd zynqmp-gpu-kmod-dpkg
shell$ git init
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
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
Erstellen Sie ein Debian-Verzeichnis und fügen Sie die folgenden Dateien hinzu.
debian/
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
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).
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.
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) ...
Durch die Installation dieses Debian-Pakets wird /lib/modules/4.19.0-xlnx-v2019.1-zynqmp-fpga/kernel/drivers/gpu/mali.ko hinzugefügt.
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 "