Ubuntu Weekly Recipe

第280回 次世代ディスプレイサーバ,Mir/XMirを試そう

この記事を読むのに必要な時間:およそ 4.5 分

Mir/XMirを試す

そんなMirですが,冒頭にもあるように2013年10月リリースの13.10から,標準のディスプレイサーバとして採用されることになりました。もともと2013年3月の時点で,13.10から導入する目標であることを公にしていたので,今回の発表はスケジュールどおり開発が進んでいることを意味しています。

これは少し前から,他のフレーバーにおけるMirの扱いについてML上で議論が活発になっていたこと,その中で他のデスクトップ環境を実際に動作させてみたところ予想以上にちゃんと動いたこと,そして何より次期LTSとなる2014年4月リリース予定の14.04よりも前にできるだけ多くの環境でMirを試してみて欲しいことからの判断です注7⁠。

注7)
加えて,13.10ではUnityのバージョンが据え置きとなります。Lensまわりでの機能追加は行われますが,原則として大きな仕様変更は行われません。14.04ではUbuntu Touchで採用されているUnity 8がデスクトップ版でも導入されることを考えると,下回りであるMirのテストはできるだけ先に行っておいたほうが良いということです。

必要な環境

Mirは現在のところ,Intel,AMD,NVIDIAのオープンソースグラフィックドライバにしか対応していません。例えばRadeon/GeForceのオープンソースではないバイナリドライバでしか動作しない環境やVirtualBoxなどの仮想マシン上だとMirの起動に失敗し,従来のXが起動するモードに自動的にフォールバックします。

次のコマンドを実行して,⁠i9xx」⁠radeon」⁠nouveau」などの文字列が表示されたら動作する可能性があると考えれば良いでしょう。

$ sudo pmap `pidof X` | grep dri.so

さらに,次期13.10として開発中のUbuntuである「Saucy Salamander」の環境が必要です。13.04用のMirもパッケージとしては存在するため動作を確認することはできるのですが,今後も13.04用のパッケージをメンテナンスするかどうかは不明です。Saucyはまだアルファ版な段階であり,Mirを導入するしないに関わらず不安定な部分が多々ありますので,実環境での導入は避けましょう注8⁠。

よってMirを試すためには,Intel,AMD,NVIDIAいずれかのオープンソースドライバでUbuntuが動作するテスト専用の物理マシンが必要になります。

注8)
Mir自身もかなり不安定で頻繁に落ちます。

インストール方法

手順は公式ドキュメントのインストール方法が参考になります。まずはあらかじめ,バイナリドライバを削除しておきましょう。

$ sudo apt-get remove --purge fglrx*
$ sudo apt-get remove --purge nvidia*

次にMir用のPPAを追加してパッケージリストを更新します。

$ sudo add-apt-repository ppa:mir-team/system-compositor-testing
$ sudo apt-get update

さらに,PPAのパッケージの優先度を公式リポジトリのパッケージよりも高くなるように設定し,公式リポジトリの更新によって不整合が発生しないようにします。⁠/etc/apt/preferences.d/50-pin-mir.pref」を作成し,次の内容を記述してください注9⁠。

Package: *
Pin: origin "private-ppa.launchpad.net"
Pin-Priority: 1001

Package: *
Pin: release o=LP-PPA-mir-team-system-compositor-testing
Pin-Priority: 1002

最後にシステム全体をアップグレードします。PPAのLightDMはMirディスプレイサーバであるunity-system-compositorに依存しているため,このとき必要なパッケージも追加インストールされます。またxserver-xorg-*のいくつかのパッケージもMir対応版にアップグレードされるはずです。

$ sudo apt-get dist-upgrade
注9)
前半の3行は本来必要のない記述なのですが,公式ドキュメントにも記載されているのでそのまま載せています。

Mirの起動

Mirの起動はLightDMが行います。そのためインストール後,一度LightDMを再起動する必要があります。環境によっては,システム全体を再起動したほうが良いかもしれません。再起動すると,ログイン画面やログイン後の画面はそれほど変わっていないことがわかるでしょう。

そこでプロセスツリーを見て,LightDMから何が起動しているか確認してみましょう。

$ ps afx
(中略)
 1193 ?        SLsl   0:00 lightdm
 1262 ?        Sl     6:24  \_ /usr/bin/unity-system-compositor --from-dm-fd 8 --to-dm-fd 13 --vt 7
14072 ?        Sl     2:28  \_ /usr/bin/X :0 -core -auth /var/run/lightdm/root/:0 -mir 2 -mirSocket /tmp/mir_socket -nolisten tcp
(後略)

LightDMから起動しているunity-system-compositorがMirの実体です。ただしunity-system-compositor自体は単純にMirを実行するためのAPIを呼び出している小さなプログラムで,本体はlibmirserver.soのほうになります。

さらに現在はXMirを動かすために/usr/bin/XをMirとの通信用オプション付きで起動しています。/usr/bin/X自体はMir用に改変されておらず,そこから内部的に呼び出している/usr/bin/XorgがMir版となります。この環境ではたとえばXeyesのようなXアプリケーションもそのまま動作します。

もしMirが起動できずにXにフォールバックする場合は,上記の出力結果から,unity-system-compositorがなくなり,XはMirのオプションなしで起動することになります。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。