第392回の「Snappy Ubuntu Coreを試してみる 」では、Ubuntuの新しいイメージとして 「 Snappy Ubuntu Core」を紹介しました。このSnappyシステムは今のところ組み込みやクラウドを ターゲットに開発を行っていますが、将来的にはデスクトップやUbuntu Phoneにもその対象を広げる予定です。そこで今回はSnappyのデスクトップ版とも言える「Ubuntu Personal」を試してみます。
Ubuntu Personal = Snappy + Ubuntu Desktop
「Ubuntu Personal」はSnappy Ubuntu Core上で次世代デスクトップ版のUbuntuを動作するようにした イメージです[1] 。
[1] 今のところ「Ubuntu Personal」という用語が正式に告知されたわけではありません。しかしながら開発者の間やイメージサーバーの名前として既に「Ubuntu Personal」が使われています。16.04のリリースまでに全然違う名前になるかもしれませんので、ご注意ください。
第392回でもお伝えしたように、Snappyは標準でロールバック機能や個々のアプリケーションの隔離機能を備えたインストール済みのイメージファイルです。つまりUbuntu Personalのインストールは、これまでのような「Liveイメージからインストーラー経由でパッケージをインストールする」という 形ではなく、「 イメージをダウンロード・展開し設定する」というクラウドに近いインストール方法に転換することになります。
また「次世代デスクトップ版」とはMirとUnity8で構築されたデスクトップ環境を意味します。Mirは数十年にわたり使われてきたX Window Systemを置き換える新しいディスプレイサーバーです。KMS(Kernel Mode Setting)やDRM(Direct Rendering Manager)といったカーネル側の機能とより親密に連携することで 描画処理をシンプル、効率化しています。目指すところはWayland/Westonとほぼ同じです。
Unity8は現在も通常のUbuntuで使われているUnityの新バージョンです。新バージョンとは言っていますが、Qtベースで新規に書きなおされた、まったく別のソフトウェアといって差し支えないでしょう。検索ベースの従来のインターフェースに加えて、「 コンバージェンス(Convergence) 」という概念を導入し、 スマートフォン・タブレット・デスクトップいずれも同じアプリが、それぞれの画面サイズに適したレイアウトで 使えるようになっています。
Mir+Unity8の組み合わせは既にUbuntu Phoneでも採用していますし、Ubuntu Phoneで使われているということは 製品として出回っている実績あるシステムであるということでもあります。実際、Ubuntu Phoneの開発版イメージでは、Bluetoothマウスやキーボードをタブレットに接続すると、 デスクトップライクなマルチウィンドウモードになる仕組みが搭載されています 。また、Nexus 4のMHL端子からHDMLディスプレイに接続すると外部ディスプレイモードになる、 コンバージェンスの目標が形になってきました 。
もともとMir+Unity8版のUbuntuはSnappyとは別に「Ubuntu Desktop Next 」として提供されていました。こちらは普通のUbuntuをベースにディスプレイサーバーやデスクトップUIを差し替えただけのものです。普通のUbuntuなのでapt-getも実行できます。ただしMirの制約により、IntelのGPUが搭載されたマシンか、 VMWare上の仮想マシンでないと動作しません。このUbuntu Desktop Next は15.04のリリース後あたりに 開発版の作成を停止し、その代わりに提供されるようになったのがSnappy版のUbuntu Desktop Nextである 「 Ubuntu Personal」というわけです(Topicsの6月19日号 ;※2 ) 。
Ubuntu Personalは来年4月にリリース予定の、次のLTSになるであろうUbuntu 16.04 LTSにおいて、 それなりの形になった環境を提供する予定です。今はまだUbuntu PhoneとSnappyの本体に開発リソースが注がれているため まだ「使える」とは程遠い状態ですが、15.10がリリースされたあとは本格的に開発が進むことになるでしょう[3] 。
Ubuntu Personalのインストール
では、そのUbuntu PersonalをUbuntu上のQEMU/KVMで試してみましょう。第392回では構築済みのQEMUでも起動できるディスクイメージをダウンロードして起動しましたが、 Ubuntu Personalのディスクイメージは提供されていません。そこでubuntu-device-flashコマンドで、 Ubuntuのシステムイメージーサーバー からイメージをダウンロードしてQEMUでも 起動できるRAWイメージに変換します[4] 。
環境はUbuntu 14.04 LTS以降で、なおかつKVMが動作する環境であればいずれでもかまいません。理由は後述しますがノートPCの場合は、USB接続の外付けマウスもあったほうが良いでしょう。ただしリポジトリにあるubuntu-device-flashのバージョンは古いため、PPAからインストールします。
$ sudo add-apt-repository ppa:snappy-dev/tools
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install snappy-tools qemu-kvm
ではさっそくRAWイメージを作成してみましょう。
$ sudo ubuntu-device-flash personal rolling --channel edge -o personal_x86.img --developer-mode
(中略)
New image complete
Summary:
Output: personal_x86.img
Architecture: amd64
Channel: edge
Version: 121
ubuntu-device-flashコマンドは、コマンドオプションでイメージサーバーのURLを決定します。上記の例の場合、「 personal」サブコマンドを使って「rolling」リリースの「edge」チャンネルを指定しています。これはURLにすると「https://system-image.ubuntu.com/ubuntu-personal/rolling/edge/」です。アーキテクチャも指定したい場合は「--oem」オプションを使用してください。
このURLからおよそ500MB程度のデータをダウンロードします。実行時は高速なインターネット環境を用意しておきましょう。イメージサーバーからダウンロードしたデータは「~/.cache/ubuntuimages/」以下に保存されます。これはUbuntu Touchデバイスに対してubuntu-device-flashコマンドを使った時も同様です。
作成するイメージのサイズは10GBです。「 --size」オプションで変更できます。「 --developer-mode」を指定することで、SSH関連の設定が行われます。
イメージの起動は第392回と同じく、kvmコマンドで行います。:
$ kvm -m 2048 -vga qxl -redir :8022::22 personal_x86.img
メモリ(-mオプション)は最低でも1024あたりを指定したほうが良いでしょう。第392回との違う点として「-vga qxl」オプションを指定しています。これはビデオカードタイプを指定するオプションで、QXLはリモートデスクトッププロトコルであるSPICEに 最適化されたフレームバッファーデバイスです。今のところKVM上のMirはQXLでしか動作しません。他のvgaオプションを指定した場合は、 自動的に通常のログイン画面に遷移します。
うまく起動すれば、Unity8 Greeterの画面が表示されるはずです。
図1 Unity8のGreeter。これはUbuntu Phoneのロック画面と同じ
外付けマウスを使えるようにする
現在のMirはKVM上の仮想マウスを認識できない上に認識できてもカーソルが表示されないという問題があります。そこで別途外付けUSBマウスを接続し、それを仮想マシンにパススルーしましょう。
$ lsusb
Bus 001 Device 012: ID 046d:c043 Logitech, Inc. MX320/MX400 Laser Mouse
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$ sudo kvm -m 2048 -vga qxl -redir :8022::22 \
-usbdevice host:046d:c043 personal_x86.img
lsusbコマンドで表示されたID以降の数字をusbdeviceオプションの「host:」より後ろに記載します。パススルーを行うためにはsudoをつけてkvmコマンドを実行する必要があります。パススルーしたUSBデバイスは、仮想マシンが起動中はホスト上では操作できないことに注意してください。
うまくいけばUSBマウスを使ってパスワードフィールドをクリックし、ログインできるようになるはずです。ユーザー名とパスワードはどちらも「ubuntu」です。
最初に起動しているウィンドウは、Ubuntu Phoneで言うところのホーム画面に相当するアプリケーションです。今後デスクトップではどういうUIにしていくか未定ではありますが、今のところこのホームアプリから アプリケーションをインストールしたり、起動したりしていくことになります。
図2 ホームアプリとシステム設定にメッセージアプリ
図3 カーソルを画面右端に寄せるとウィンドウ切り替え
ホームアプリ上にはUbuntu Storeが表示されていますが、現状Ubuntu PersonalにはUbuntu Storeから パッケージのインストールは行えません。
SSHログインできるようにする
ubuntu-device-flashに「--developer」モードを指定すると、sshサーバーが立ち上がります。ただしホスト鍵は自動生成されませんので、SSHアクセスするためにはコンソールログインして、 鍵を生成する必要があります。
QEMUの場合、コンソール画面はウィンドウを表示している状態で「Ctrl-Alt-3」を押してください[5] 。コンソールログイン画面が表示されるので、ユーザー名とパスワードに「ubuntu」を入力してログインします。あとは次のコマンドでホスト鍵を生成できます。
(amd64)ubuntu@localhost:~$ sudo ssh-keygen -A
あとはホストからSSHログインしてください。今回の例のように「-redir」オプションでにゲストの22番ポートを ホストの8022番ポートにリダイレクトしているのであれば、次のコマンドでログインできます。
$ ssh -p 8022 ubuntu@localhost
Ubuntu Personalの中身はSnappyシステムですので、APT関連のコマンドは使用できません。
(amd64)ubuntu@localhost:~$ apt-get
Ubuntu Core does not use apt-get, see 'snappy --help'!
(amd64)ubuntu@localhost:~$ snappy list
Name Date Version Developer
ubuntu-core 2015-10-17 121 ubuntu
generic-amd64 2015-10-18 1.4 canonical
その代わりsnappyコマンドでパッケージをインストールすることになります。
(amd64)ubuntu@localhost:~$ snappy search lxd
Name Version Summary
lxd 0.19-1 lxd
(amd64)ubuntu@localhost:~$ sudo snappy install lxd
(中略)
Name Date Version Developer
ubuntu-core 2015-10-17 121 ubuntu
lxd 2015-10-18 0.19-1 stgraber
generic-amd64 2015-10-18 1.4 canonical
実機でもUbuntu Personal
今回作成したpersonal_x86.imgファイルは、ただのRAWイメージですのでUSBストレージなどにddコマンドでダンプできます。そのストレージデバイスから起動すると、仮想マシンではなく実機としてUbuntu Personalを体験可能です。
しかしながらここまでの状況を実際に試してもらえればわかるように、かなり「実験的」な状態です。Ubuntu Phoneのアプリ(clickパッケージ)も従来のソフトウェア(debパッケージ)もそのままではインストールできず、 Snappy向けのアプリ(snapパッケージ)はCLI向けのソフトウェアしかありません。
このあたりの機能不足や他のソリューションとの整合性、16.04に向けての方針については 来月頭に開催されるUbuntu Online Summitにて話し合われる予定です。UOSの内容をより理解するためにも、Ubuntu Personalを試すことで 次世代Ubuntuの「現在の状態」を把握してみるのはいかがでしょうか。
オープンソースカンファレンス2015 Tokyo/Fall
Ubuntu Weekly Topics でも改めて告知する予定ですが、 今週末の24日(土) 、25日(日)に、オープンソースカンファレンス2015 Tokyo/Fall が地図上は東京都にある明星大学は日野キャンパスで開催されます。
Ubuntu Japanese Teamも両日参加予定で、今回少し話題に出てきたUbuntu PhoneやUbuntu Tablet、 前々回のSnappyデバイス、XubuntuをインストールしたRaspberry Pi2などの実機を展示します。また土曜日の13時からはセミナー も開催しますので、皆様お誘い合わせの上、お越しください。