LoginSignup
8
7

More than 3 years have passed since last update.

Ultra96/Ultra96-V2 向け Debian GNU/Linux で X Window を動かす(概要編)

Last updated at Posted at 2019-12-25

はじめに

筆者は Ultra96/Ultra96-V2(ZynqMP) 向けに Debian GNU/Linux を提供しています1。提供している Debian GNU/Linux は CUI ベースですが、今回 GUI に対応するために X Window Systemを Ultra96/Ultra96-V2 で動くようにしました。

そこで Ultra96/Ultra96-V2 で X Window System を動かすための手順を幾つかのパートに分けて説明します。

X Window System の構造

X Window System を動かすためのグラフィックスタックは一般的に Fig.1のようになります。

グラフィックスタック

Fig.1 X Window System Graphics Stack

Fig.1 X Window System Graphics Stack


このグラフィックスタックをUltra96/Ultra96-V2(ZynqMP) に適応すると次のようになります。シェードがかかっているブロックが ZynqMP 独自の部分です。

Fig.2 X Window System Graphics Stack for ZynqMP

Fig.2 X Window System Graphics Stack for ZynqMP


ZynqMP 独自に用意しなければならないモジュールは次の4つです。

  • DRM Driver(ZynqMP Display Driver(xlns_drv))
  • Video Driver(xserver-xorg-video-armsoc-xilinx)
  • GPU(Mali) Kernel Module
  • OpenGL Driver(LibMali)

以降の節でこれらモジュールを簡単に紹介します。

ZynqMP Display Driver(xlnx_drv)

ZynqMP の DisplayPort Controller を制御するためのカーネルモジュールです。このカーネルモジュールは User Space のプログラムに対して DRI(Direct Rendering Infrastructure) および fbdev(Linux Framebuffer Device) Interfaceを提供します。このカーネルモジュールとそれに対応したデバイスツリーはすでにZynqMP-FPGA-Linux に標準で組み込まれています。そのため、別途ビルドやインストールは必要ありません。

Fig.3 ZynqMP Display Driver(xlnx_drv)

Fig.3 ZynqMP Display Driver(xlnx_drv)


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

ZynqMP Display Driver に対応した X Window の DDX Driver(Video Driver) です。このドライバは Debian 10 が標準で提供するパッケージには含まれていません。別途追加する必要があります。このドライバの詳細は Video Driver 編 で説明します。

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

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


Mali Kernel Module

ZynqMP の GPU(Mali-400)を制御するためのカーネルモジュールです。このカーネルモジュールは ZynqMP-FPGA-Linuxには標準では組み込まれていません。ただし、デバイスツリーはすでに標準で組み込まれています。GPU を使って 3D レンダリングする場合はこのカーネルモジュールを新たにビルドして追加する必要があります。このカーネルモジュールを Debian Package にしてインストールする手順を Mali Driver 編 で説明します。

Fig.5 Mali Kernel Module

Fig.5 Mali Kernel Module


LibMali(User Space Libraries for Mali)

GPU(Mali-400) で 3D レンダリングするためのユーザー空間で動作するライブラリです。OpenGL ES 2.0に対応しています。GPU を使って 3D レンダリングする場合はこのライブラリが必要です。このライブラリは ARM よりバイナリで提供されています。このバイナリのライブラリを Debian Package にしてインストールする手順を LibMali 編 で説明します。

Fig.6 LibMali(User Space Libraries for Mali)

Fig.6 LibMali(User Space Libraries for Mali)


Debian Packages

ZynqMP-FPGA-Xserver

ZynqMP-FPGA-Linux で X Window System を構成するための Debian Package は以下の github で提供しています。

上のリポジトリで次の Debian Package を提供しています。

  • xserver-xorg-video-armsoc-xilinx_1.4-1_arm64.deb
  • libegl1-zynqmp-dev_1.7-0_arm64.deb
  • libegl1-zynqmp_1.7-0_arm64.deb
  • libgbm-zynqmp-dev_1.7-0_arm64.deb
  • libgbm1-zynqmp_1.7-0_arm64.deb
  • libgles1-zynqmp-dev_1.7-0_arm64.deb
  • libgles1-zynqmp_1.7-0_arm64.deb
  • libgles2-zynqmp-dev_1.7-0_arm64.deb
  • libgles2-zynqmp_1.7-0_arm64.deb
  • libmali-zynqmp-dev_1.7-0_arm64.deb
  • libmali-zynqmp_1.7-0_arm64.deb
  • zynqmp-gpu-4.19.0-xlnx-v2019.1-zynqmp-fpga_0.1.2-0_arm64.deb

xf86-video-armsoc-xilinx

ZynqMP Display Driver に対応した X Window の DDX Driver(Video Driver) のDebian Package をビルドするためのリポジトリは以下にあります。

このリポジトリから以下の Debian Package をビルドすることが出来ます(このリポジトリには Debian Package は含まれません)。

  • xserver-xorg-video-armsoc-xilinx_1.4-1_arm64.deb

LibMali(User Space Librarys for Mali)

GPU(Mali-400) で 3D レンダリングするためのユーザー空間で動作するライブラリを Debian Package にするリポジトリは以下にあります。

このリポジトリから以下の Debian Package をビルドすることが出来ます(このリポジトリには Debian Package は含まれません)。

  • libegl1-zynqmp-dev_1.7-0_arm64.deb
  • libegl1-zynqmp_1.7-0_arm64.deb
  • libgbm-zynqmp-dev_1.7-0_arm64.deb
  • libgbm1-zynqmp_1.7-0_arm64.deb
  • libgles1-zynqmp-dev_1.7-0_arm64.deb
  • libgles1-zynqmp_1.7-0_arm64.deb
  • libgles2-zynqmp-dev_1.7-0_arm64.deb
  • libgles2-zynqmp_1.7-0_arm64.deb
  • libmali-zynqmp-dev_1.7-0_arm64.deb
  • libmali-zynqmp_1.7-0_arm64.deb

Mali Kernel Module

ZynqMP の GPU(Mali-400)を制御するためのカーネルモジュールを Debian Package にするリポジトリは以下にあります。

このリポジトリから以下の Debian Package をビルドすることが出来ます(このリポジトリには Debian Package は含まれません)。

  • zynqmp-gpu-4.19.0-xlnx-v2019.1-zynqmp-fpga_0.1.2-0_arm64.deb

インストール

ZynqMP に対応した X Window System には大きく分けて次の3種類あります。

  • fbdev のみ
  • Video Driver のみ
  • Video Driver + GPU

fbdev のみ

X Window System には fbdev(Linux Framebuffer Device) を使って表示するためのドライバが標準でついています。この場合のインストール方法は以下の記事を参照してください。

Video Driver のみ

ZynqMP Display Driver に対応した X Window の DDX Driver(Video Driver) を使って表示する方法です。ただし GPU によるレンダリングは含みません。この方法はインストールが比較的簡単なため、3D レンダリングを行わない場合はこちらのほうが良い場合があります。この場合のインストール方法は以下の記事を参照してください。

Video Driver + GPU

ZynqMP Display Driver に対応した X Window の DDX Driver(Video Driver)と GPU(Mali-400) を使って表示する方法です。この方法はインストールが比較的複雑です。この場合のインストール方法は以下の記事を参照してください。

ベンチマーク

Video Driver + GPU でベンチマークを走らせてみました。詳細は以下のページを参照してください。

参考

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7