Nokia Nxxxシリーズに搭載されているOSであるmaemoですが、N900にてmaemo 5という新しいバージョンになり、UIなどが大きく変更されました。YouTubeで公開されている動画を見ていると、かなりカッコイイ動きをしていて、非常に心惹かれます。

maemo 5にはSDKが用意されていて、Linux環境にて導入してmaemo 5のUI操作を体験することができます。このSDKはDebian/Ubuntuを想定して用意されていて、かつ32bit OSにのみサポートしているようです。今回はGentoo amd64な環境に入れてみることにしましたのでそのメモ。ていうかほとんど参考ページのまんま(笑

参考にしたページはこちら。ここを見てやればできます。このエントリを見る必要はほぼゼロ。偉大なる先人に感謝です。

maemo.org > Talk > OS / Platform > Development > Gentoo x86_64 SDK

https://talk.maemo.org/showthread.php?s=12cb28d719e62e6b355e4890fd198b73&p=372944#post372944

手順の流れは以下のとおり。Debianとの違いは基本的に scratchboxをportageから導入するという程度です。なお、指定がない限り、作業はroot権限を必要とします。

  1. Xephyrの導入
  2. dpkgの導入
  3. portage overlayの設定とローカルebuildの作成
  4. scratchboxの導入
  5. カーネル設定の確認/変更
  6. scratchboxの起動
  7. scratchboxのユーザー設定
  8. maemo 5 SDKのインストール
  9. scratchbox環境へのログイン
  10. nokia-binaries, nokia-appsの導入
  11. 動作テスト

まずはXephyrの導入ですが、Gentooではxorg-serverパッケージにkdrive USEフラグをつけてビルドすれば導入されます。

echo "x11-base/xorg-server kdrive" >> /etc/portage/package.use
emerge -av --newuse xorg-server

package.useに追加するか、make.confに追加するか、ほかにどんなUSEフラグをつけるかは個々の環境で判断してください。

次にdpkgを導入します。これもportageから。

emerge -av dpkg

次に、portage treeに入ってない以下2つのパッケージを導入するためのローカルebuildファイルを作成します。リンク先にあるgwaxさんの書き込みにあるテキストをコピペして作ればOKです。作成するebuildパッケージは2つ。

  • dev-embedded/scratchbox-devkit-git
  • dev-embedded/scratchbox-devkit-svn

一応私の使ったものを下に置いておきます。

sblocalebuild

オーバーレイの設定は割愛します。

scratchboxを導入するためにパッケージのマスクを外します。/etc/portage/package.keywords/maemo5というファイルを作り中に以下のように書きます。

## maemo5
dev-embedded/scratchbox ~*
dev-embedded/scratchbox-devkit-apt-https ~*
dev-embedded/scratchbox-devkit-debian ~*
dev-embedded/scratchbox-devkit-doctools ~*
dev-embedded/scratchbox-devkit-perl ~*
dev-embedded/scratchbox-devkit-qemu ~*
dev-embedded/scratchbox-toolchain-cs2007q3-glibc2_5 ~*
dev-embedded/scratchbox-devkit-git ~*
dev-embedded/scratchbox-devkit-svn ~*

これで準備が整ったので、scratchboxを導入します。

emerge -av scratchbox scratchbox-devkit-apt-https scratchbox-devkit-debian scratchbox-devkit-doctools \
scratchbox-devkit-perl scratchbox-devkit-qemu \
scratchbox-toolchain-cs2007q3-glibc2_5 scratchbox-toolchain-cs2007q3-glibc2_5 \
scratchbox-devkit-git scratchbox-devkit-svn

scratchboxを動作させるためには、32bit VDSOを使用しない設定にする必要があります。カーネルオプションなどで指定する方法もありますが、sysctlで設定できるので参考サイトに倣いたいと思います。

sysctl abi.vsyscall32=0
echo "abi.vsyscall32=0" >> /etc/sysctl.conf

ちなみに私の環境では、参考サイトで指定されているvm.vdso_enabledと、kernel.vdsoというパラメータはありませんでした。

これでscratchboxを起動できるようになりますので、起動します。

/etc/init.d/scratchbox start

次に、SDKを使用したい一般ユーザーに scratchboxを使用する許可を与えます。ユーザーをsboxグループに加え、scratchbox内に追加します。

gpassed sbox -a YOURUSERNAME
/opt/scratchbox/sbin/sbox_adduser YOURUSERNAME

これでscratchbox側の設定は完了しましたので、maemo 5 SDKを導入します。

maemo 5 SDKは以下のサイトから入手できます。

Forum.Nokia.com - Maemo 5 SDK

https://www.forum.nokia.com/info/sw.nokia.com/id/c05693a1-265c-4c7f-a389-fc227db4c465/Maemo_5_SDK.html

ダウンロードするものが3種類選べますが、"SDK Installer ()"を選択してください。

私の環境では、maemo-sdk-install_5.0.downloadという名前で保存されました。適宜実行権限をつけて、先ほど登録した一般ユーザーで実行してください。

./maemo-sdk-install_5.0.download -s /opt/scratchbox

導入が完了すると、最後に、これから導入するnokia-binaries/nokia-appsをインストールするためにsources.listに追加するエントリを入手するURLが表示されますので、そちらをクリックして、確認しておいてください。リンク先に記載されるライセンス条項に同意する必要があります。

***NOKIA BINARIES***
In order to obtain Nokia-closed binaries, visit
https://tablets-dev.nokia.com/eula/index.php to accept the End User
License Agreement. You will be given a token to access the Nokia
binaries repository with further instructions.

ここまできたら、先ほど登録した一般ユーザーでscratchboxへログインして、nokia-binary/nokia-appsの導入をします。

/opt/scratchbox/login

X86用とARMEL用と2回やります。まずはARMEL用。プロンプトの表示でARMELかX86か判断できるようになっています。

[sbox-FREMANTLE_X86: ~] > sb-conf select FREMANTLE_ARMEL
[sbox-FREMANTLE_ARMEL: ~] > nano /etc/apt/sources.list  # ここで、先ほど確認しておいた、nokia-binaries/nokia-apps用のリポジトリURLを追加します。
[sbox-FREMANTLE_ARMEL: ~] > apt-get update
[sbox-FREMANTLE_ARMEL: ~] > fakeroot apt-get install nokia-binaries nokia-apps

次にX86用。やることは同じです。

[sbox-FREMANTLE_ARMEL: ~] > sb-conf select FREMANTLE_X86
[sbox-FREMANTLE_X86: ~] > nano /etc/apt/sources.list  # ARMELと同じものでOKです。
[sbox-FREMANTLE_X86: ~] > apt-get update
[sbox-FREMANTLE_X86: ~] > fakeroot apt-get install nokia-binaries nokia-apps

これで導入は完了です。動作確認は、以下のサイトを順に追って実行すればできます。開発に必要なモジュールがきちんとインストールされているかを確認する意味でもひとつひとつ実施した方がいいでしょう。

maemo.org : Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK

https://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Development_Environment/Maemo_SDK#Starting_Virtual_X_Server_.28Xephyr.29

でも、手っ取り早くmaemoのUIを立ち上げたければ、以下のようにします。

一般ユーザーで、Xephyrを起動します。まだscratchboxへは入ってません。

Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac &

これでXephyrの小さい黒い画面が表示されるはずです。参照元では"-kb"オプションがついていましたが、私の使用しているXephyrにはそのオプションがありませんでした。

次に、scratchboxにログインして、X86ターゲットへ変更します。

/opt/scratchbox/login
sb-conf select FREMANTLE_X86

先ほど起動したXephyrをDISPLAY変数に指定して、スクリプトを実行すると、maemo 5のUIが姿を現します。

export DISPLAY=:2
af-sb-init.sh start

あとはぐりぐり楽しんでください。止めたいときは

af-sb-init.sh stop

で止まるはずですが、なんか止まらなかったりします。まだちゃんと調べてませんが、まぁそのへんは適当に。

以上です。では、みなさんもmaemo 5 のUIを体験して、そのスタイリッシュなデザインに酔いしれつつ、N900をポチってください(笑