Running X Window on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Overview)

Introduction

The author provides Debian GNU / Linux for Ultra96 / Ultra96-V2 (ZynqMP) [1]. The Debian GNU / Linux provided is CUI-based, but this time we have made the X Window System run on Ultra96 / Ultra96-V2 to support the GUI.

Therefore, the procedure for operating the X Window System on Ultra96 / Ultra96-V2 is explained in several parts.

Structure of the X Window System

The graphics stack for running the X Window System is generally shown in Fig.1.

Graphic stack

Fig.1 X Window System Graphics Stack

Fig.1 X Window System Graphics Stack


Adapting this graphics stack to Ultra96 / Ultra96-V2 (ZynqMP) gives: The shaded block is a unique part of ZynqMP.

Fig.2 X Window System Graphics Stack for ZynqMP

Fig.2 X Window System Graphics Stack for ZynqMP


ZynqMP has the following four modules that must be prepared independently.

We will briefly introduce these modules in the following sections.

ZynqMP Display Driver(xlnx_drv)

A kernel module for controlling the DisplayPort Controller of ZynqMP. This kernel module provides a DRI (Direct Rendering Infrastructure) and fbdev (Linux Framebuffer Device) Interface for User Space programs. This kernel module and its corresponding device tree are already built into ZynqMP-FPGA-Linux as standard. Therefore, no separate build or installation is required.

Fig.3 ZynqMP Display Driver(xlnx_drv)

Fig.3 ZynqMP Display Driver(xlnx_drv)


Video Driver(xserver-xorg-video-armsoc-xilinx)

X Window DDX Driver (Video Driver) compatible with ZynqMP Display Driver. This driver is not included in the standard Debian 10 package. Must be added separately. Details of this driver are explained in [Video Driver].

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

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


Mali Kernel Module

A kernel module for controlling the ZynqMP GPU (Mali-400). This kernel module is not included by default with ZynqMP-FPGA-Linux. However, the device tree is already built in by default. If you want to render in 3D using the GPU, you need to build and add a new kernel module. The procedure for installing this kernel module as a Debian Package is explained in [Mali Driver].

Fig.5 Mali Kernel Module

Fig.5 Mali Kernel Module


LibMali(User Space Libraries for Mali)

A user-space-based library for 3D rendering on the GPU (Mali-400). It supports OpenGL ES 2.0. This library is required for 3D rendering using the GPU. This library is provided in binary by ARM. The procedure for installing this binary library as a Debian Package is explained in [LibMali].

Fig.6 LibMali(User Space Libraries for Mali)

Fig.6 LibMali(User Space Libraries for Mali)


Debian Packages

ZynqMP-FPGA-Xserver

ZynqMP-FPGA-The Debian Package for configuring the X Window System on Linux is available on github below.

The above repository provides the following Debian Packages:

xf86-video-armsoc-xilinx

The repository for building the Debian Package for the X Window DDX Driver (Video Driver) for the ZynqMP Display Driver is below.

You can build the following Debian Packages from this repository (this repository does not include Debian Packages):

LibMali(User Space Librarys for Mali)

The repository for Debian Package is a library that runs in user space for 3D rendering on GPU (Mali-400).

You can build the following Debian Packages from this repository (this repository does not include Debian Packages):

Mali Kernel Module

The repository for Debian Package of kernel modules for controlling ZynqMP GPU (Mali-400) is below.

You can build the following Debian Packages from this repository (this repository does not include Debian Packages):

Installation

The X Window System that supports ZynqMP is roughly divided into the following three types.

fbdev only

The X Window System comes standard with a driver for viewing using fbdev (Linux Framebuffer Device). Please refer to the following article for the installation method in this case.

Video Driver only

This is a method of displaying using the DDX Driver (Video Driver) of X Window that supports the ZynqMP Display Driver. However, it does not include rendering by GPU. This method is relatively easy to install and may be better if you do not want to do 3D rendering. Please refer to the following article for the installation method in this case.

Video Driver + GPU

This is a method of displaying using the DDX Driver (Video Driver) and GPU (Mali-400) of X Window that supports the ZynqMP Display Driver. This method is relatively complicated to install. Please refer to the following article for the installation method in this case.

benchmark

I ran the benchmark with Video Driver + GPU. Please refer to the following page for details.

reference

[Overview]: https://qiita.com/ikwzm/items/fdec04519268b3fb9a50 "" Running X Window on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Overview) "@Qiita" [Video Driver Edition]: https://qiita.com/ikwzm/items/2a0fbfd2938a893e57d4 "" Running X Window on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Video Driver Edition) "@Qiita" [Mali Driver]: https://qiita.com/ikwzm/items/8c96d75e03cdcb91e5b2 "" Running X Window on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Mali Driver) "@Qiita" [LibMali edition]: https://qiita.com/ikwzm/items/85fa889def8eb07a9e94 "" Running X Window on Debian GNU / Linux for Ultra96 / Ultra96-V2 (libMali edition) "@Qiita" [fbdev edition]: https://qiita.com/ikwzm/items/f922f7e17aa2382d5c76 "" Running X Window on Debian GNU / Linux for Ultra96 / Ultra96-V2 (fbdev edition) "@Qiita" [glmark2 edition]: https://qiita.com/ikwzm/items/5065fb0b6c01ea706571 "" Running X Window on Debian GNU / Linux for Ultra96 / Ultra96-V2 (glmark2 edition) "@ Qiita" [Gnome Desktop Edition]: https://qiita.com/ikwzm/items/2e5e60d2a30b6a4769a7 "" Running X Window on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Gnome Desktop Edition) "@Qiita" [1]: https://qiita.com/ikwzm/items/0c6f110aa19e368af03d "Debian GNU / Linux for UltraZed / Ultra96 / Ultra96-V2 (v2019.1 version) Boot image provided" @Qiita "

Recommended Posts

Running X Window on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Overview)
Running X Window on Debian GNU / Linux for Ultra96 / Ultra96-V2 (fbdev)
Run X Window on Debian GNU / Linux for Ultra96 / Ultra96-V2 (LibMali)
Running XRT (Xilinx Runtime) on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Overview)
Run X Window on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Video Driver)
Run X Window on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Gnome Desktop)
Run X Window on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Mali Driver)
Running XRT (Xilinx Runtime) on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Practice)
Run XRT (Xilinx Runtime) on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Installation)
Run XRT (Xilinx Runtime) on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Build)
Run XRT (Xilinx Runtime) on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Build) [Unfinished]
Run XRT (Xilinx Runtime) on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Installation) [Unfinished]
Run XRT (Xilinx Runtime) on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Vitis edition)
Run bootgen on Debian GNU / Linux, Ubuntu
Linux on Windows -1-: debian introduction
Run X Window on Debian GNU / Linux for Ultra96 / Ultra96-V2 (LibMali)
Running X Window on Debian GNU / Linux for Ultra96 / Ultra96-V2 (fbdev)
Running X Window on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Overview)
Running XRT (Xilinx Runtime) on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Overview)
Run X Window on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Video Driver)
Run X Window on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Gnome Desktop)
Running XRT (Xilinx Runtime) on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Practice)
Run XRT (Xilinx Runtime) on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Installation)
Run X Window on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Mali Driver)
Run XRT (Xilinx Runtime) on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Build)
Run XRT (Xilinx Runtime) on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Build) [Unfinished]
Run XRT (Xilinx Runtime) on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Installation) [Unfinished]
Run XRT (Xilinx Runtime) on Debian GNU / Linux for Ultra96 / Ultra96-V2 (Vitis edition)
pykintone on Windows Subsystem for Linux