Mir 1.1.0がリリースされました
2018年12月18日、「Mir 1.1.0」がリリースされました。本リリースでの注目点は、NVIDIA GPU向けプロプライエタリードライバー(eglstreamドライバー)をサポートした「mir-graphics-drivers-nvidia」パッケージの提供です。
また本リリースでは不具合の修正も行われていますが、「Musl 」上で「Mir」のビルドを行っている「PostmarketOS」の開発者による修正や、「Ubuntu Touch」で使用している「Mir」のアップデートを予定している「UBports」の開発者による修正も含まれています。
NVIDIA GPUドライバーのサポート
NVIDIA GPU向けプロプライエタリードライバーのサポートが行われました。本サポートはドライバーバージョン「396」以上のドライバーが必要であり、「Ubuntu 19.04」では、NVIDIA GPU向けプロプライエタリードライバーを提供する「nvidia-driver-410」パッケージを提供しています。
現状サポートしているドライバーを提供しているのは「Ubuntu 19.04」のみですが、「Ubuntu 19.04」以外のバージョンでも以下のPPAでNVIDIAドライバーを利用できます。
amd64とi386でのみビルド
「Mir」開発チームは、NVIDIAプラットフォームを「amd64」と「i386」でのみビルドしています。eglstream-kmsグラフィックプラットフォームについて
「eglstream-kms」グラフィックプラットフォームは、「mir-graphics-drivers-desktop」パッケージ経由でインストールされなくなりました。代わりに新規に作成された「mir-graphics-drivers-nvidia」パッケージ経由でインストールされるようになりました。
kiosk(キオスク)
「Mir」自身はライブラリーの集合体であり、エンドユーザー向けのアプリケーションでっはありません。しかし開発チームは「Mir」上で動作する「mir-kiosk」シェルを提供しています。
「mir-kiosk」はキオスクタイプのシェル(アプリケーション)です。
Mir 1.1に対応したビルド
現時点で「Mir 1.1」に対応したビルドが「candidate」チャンネルから提供されています。
$ snap info mir-kiosk
name: mir-kiosk
summary: A minimal Mir based shell for kiosk type applications
publisher: Canonical✓
license: Proprietary
description: |
A minimal Mir based shell for kiosk type applications
snap-id: rW4inp7UbJb1YBxWr6SVebxa3Yv7K1Vm
channels:
stable: 1.0.0 (732) 30MB -
candidate: 1.1.0 (996) 30MB -
beta: 1.1.0 (968) 30MB -
edge: 1.1.0+dev34-gdcebb2f1e6 (1008) 30MB -
name: mir-kiosk
summary: A minimal Mir based shell for kiosk type applications
publisher: Canonical✓
license: Proprietary
description: |
A minimal Mir based shell for kiosk type applications
snap-id: rW4inp7UbJb1YBxWr6SVebxa3Yv7K1Vm
channels:
stable: 1.0.0 (732) 30MB -
candidate: 1.1.0 (996) 30MB -
beta: 1.1.0 (968) 30MB -
edge: 1.1.0+dev34-gdcebb2f1e6 (1008) 30MB -
開発チームによるテストが完了した後、「Mir 1.1」に対応したビルドが「stable」チャンネルに移される予定です。
Mir上で動作するシェルを開発したい開発者は
「Mir」はデフォルトで実用的な振る舞いを提供していますが、その振る舞いをカスタマイズするシンプルで強力なAPIも提供しています。以下のウィンドウ管理スタイルを持つ振る舞いをカスタマイズするサンプルが提供されています。
- キオスク
- タイリングウィンドウ
- フローティングウィンドウ(デフォルト)
Mirのサンプル
「Mir」のサンプルを含むパッケージは、「Ubuntu」「Fedora」「Arch」で提供されています。近々「Debian」でも利用できるようになる予定です。
また「Ubuntu」では、サポート中の「Ubuntu」向けに最新版の「Mir」を「ppa:mir-team/release」で提供しています。
sudo add-apt-repository -yu ppa:mir-team/release
sudo apt install mir-graphics-drivers-desktop # Drivers for Mesa "open" drivers
sudo apt install mir-graphics-drivers-nvidia # Drivers for Nvidia binary drivers
sudo apt install mir-demos # Demo programs
sudo apt install libmiral-dev # Development libraries & headers
sudo apt install mir-graphics-drivers-desktop # Drivers for Mesa "open" drivers
sudo apt install mir-graphics-drivers-nvidia # Drivers for Nvidia binary drivers
sudo apt install mir-demos # Demo programs
sudo apt install libmiral-dev # Development libraries & headers
Wayland拡張プロトコル
世の中には様々なWayland拡張プロトコルが存在しています。Wayland拡張プロトコルはある特定の要件を満たすために実装されるプロトコルです。
Wayland拡張プロトコルは誰でも定義することができるため、「Mir」でそのすべてのWayland拡張プロトコルをサポートすることは現実的ではありません。
「Mir」は「Mir」を必要とするソフトウェアをサポートするため、それらのソフトウェアに必要なWayland拡張プロトコルを引き続きサポートしていきます。
「Mir 1.1.0」では、以下のWayland拡張プロトコルをサポートしています。
protocol name=“wayland”
protocol name=“xdg_shell_unstable_v6”
protocol name=“xdg_shell”
protocol name=“xdg_shell_unstable_v6”
protocol name=“xdg_shell”
このサポートにより、主要なデスクトップアプリケーション及びIoTアプリケーションが必要とする要件を満たせるでしょう。
egmde snap
デスクトップ向けのサンプルシェルである「egmde」は、「Mir 1.1」上で動作可能です。しかしNVIDIA GPU向け「eglstream」のサポートはまだ行われていません。
また「egmde」のSnapパッケージにドライバーも含まれていません。
これは「Mir」がNVIDIA GPU上でWaylandクライアントのみサポートしているためです。
変更点一覧
「Mir 1.1.0」の変更点一覧です。
- ABI summary:
. mirclient ABI unchanged at 9
. miral ABI unchanged at 3
. mirserver ABI unchanged at 47
. mircommon ABI unchanged at 7
. mirplatform ABI unchanged at 16
. mirprotobuf ABI unchanged at 3
. mirplatformgraphics ABI bumped to 16
. mirclientplatform ABI unchanged at 5
. mirinputplatform ABI unchanged at 7
. mircore ABI unchanged at 1
. mircookie ABI unchanged at 2
- Enhancements:
. eglstream-kms: Fully functional platform for Nvidia drivers >= 396
. MinimalConsoleServices: Android has no VTs, but also doesn't need
anything but `open()` to access devices.
. Clarify and fix focus switching logic
. [Musl] Don't call pthread_rwlockattr_setkind_np() on systems where it
is not defined
. Detect GTest/GMock via pkg-config when possible. Otherwise fall back to
the old huristic
. Add missing packages to Fedora documentation
. Use the more modern method of specifying standard in CMake
- Bugs fixed:
. [Musl] Add missing includes
. Use the correct package name to detect gtest on RPM distributions
. mirclient ABI unchanged at 9
. miral ABI unchanged at 3
. mirserver ABI unchanged at 47
. mircommon ABI unchanged at 7
. mirplatform ABI unchanged at 16
. mirprotobuf ABI unchanged at 3
. mirplatformgraphics ABI bumped to 16
. mirclientplatform ABI unchanged at 5
. mirinputplatform ABI unchanged at 7
. mircore ABI unchanged at 1
. mircookie ABI unchanged at 2
- Enhancements:
. eglstream-kms: Fully functional platform for Nvidia drivers >= 396
. MinimalConsoleServices: Android has no VTs, but also doesn't need
anything but `open()` to access devices.
. Clarify and fix focus switching logic
. [Musl] Don't call pthread_rwlockattr_setkind_np() on systems where it
is not defined
. Detect GTest/GMock via pkg-config when possible. Otherwise fall back to
the old huristic
. Add missing packages to Fedora documentation
. Use the more modern method of specifying standard in CMake
- Bugs fixed:
. [Musl] Add missing includes
. Use the correct package name to detect gtest on RPM distributions