2015年01月16日

[Yocto] Sato Mobile DesktopへのMidoriブラウザの組込み

年末年始休暇もほとんど仕事関連の調査で潰してしまい、年が明けてからも多忙な日々が続いていましたが、本業の仕事もやっと終わりそうな状況になってきました。仕事だけにすべての時間を捧げる日々を過ごしていましたが、少し落ち着いてきたので、これからYocto Linux以外の研究テーマにも時間を割けるようになりそうです。とは言いながら、またしてもYocto Linuxの記事を書いてしまいます。他のネタも持ってはいるのですが、それらはまだ仕込中で、記事として公開できる状態まで練上がっていません。

ここのところハード&BSP系の情報やシステム寄りのパッケージの紹介などの所謂下周りの記事が続いたので、少し毛色を変えて、これからしばらくYocto LinuxのGUI環境のカスタマイズに関する記事を書こうと思います。組込み屋としては、デバイスドライバとかシステムの設定などをいじくり回す方が好きなのですが、GUIカスタマイズ、GUIアプリやWebサービスの導入方法や開発手法などの上周りの情報の方が需要が高いんじゃないでしょうか。Arduino、mbed、Rasberry Piなどのボードが流行っているのも、下周りをあまり弄らなくても、そこそこ高機能なシステムが構築できてしまうことが理由ではないかと思っています。Yocto Linuxの上周りの記事の第一段として、小ネタの情報になりますが、Sato Mobile Desktop環境へWebブラウザを組み込む方法について紹介しましょう。

Yocto Linuxの配布パッケージには、core-image-satoという名前のリファレンス的なイメージレシピが収納されています。いままでの記事にもスクリーンショットを掲載して紹介していますが、このcore-image-satoイメージレシピから生成できるのがYocto Linuxの標準GUI環境であるSato Mobile Desktopです。Sato Mobile Desktopはモバイル機器向けの軽量なGUI環境ですが、残念なことに、デフォルト状態ではcore-image-satoイメージにWebブラウザが組み込まれていません。しかし、WebブラウザのレシピはYocto Linuxの配布パッケージにちゃんと収納されています。Midoriという名前のWebブラウザがそれです。MidoriはレンダリングエンジンにWebKitを、ツールキットにGTK+2を使用している軽量なWebブラウザで、多くの組込みLinuxディストリビューションで採用されています。それではなぜデフォルト状態のcore-image-satoイメージにMidoriが組み込まれていないのかと言うと、これは想像になりますが、その理由はターゲットイメージのビルドに時間がかかってまうからだと思います。実際に作業をやってみて分かったのですが、core-image-satoイメージへMidoriを追加すると、クリーンビルドの時間がさらに1時間を伸びてしまいました(高性能なPCでも3時間以上、低性能なPCなら4〜6時間位かかるでしょう)。

core-image-satoレシピから生成されるイメージにMidoriを組み込む方法はすごく簡単です。以下のような変数定義をlocal.conf内に追加するだけです。
#
# Install the Midori web browser to Sato Desktop images. The WEB variable, which
# is defined in packagegroup-core-x11-sato.bb, is set to an empty value as default.
#
WEB = "midori"

たったこれだけで、core-image-satoイメージへMidoriを組み込むことができます。

Midoriを組み込むと、Sato GUI環境のDesktopウィンドウに下のようなアプリケーション・アイコンが追加されます。
UBShot_20150117_093041-Installing_Midori-Yocto_Sato_Desktop-1366x768
2つのアイコンが存在しますが、「Midori」の方が普通にWebブラウザを起動し、「Midori Private Browsing」の方はWebブラウザの起動後にURL履歴やCookie情報などを一切記録しません。この2つのアイコンをクリックした際のMidoriのスタートアップ画面を下に示します。
UBShot_20150117_093250-Installing_Midori-Yocto_Sato_Desktop-1366x768
UBShot_20150117_093317-Installing_Midori-Yocto_Sato_Desktop-1366x768
Midoriは組込みシステム向けの最低限の機能しか備えていないWebブラウザです。ChromeやSafariなどと比較すると、Midoriの操作性はとても良いとは言えません。レンダリング性能も低く、グラフィックや画像の多いページだと表示に結構時間がかかります。機能や性能が高いと、その分メモリやディスク容量を消費します。組込みシステムではメモリやディスクの容量に制限があるので、トレードオフの観点からするとこの辺は仕方がないことなのでしょう。まぁ、それでも普通にブラウジングはできます。

なお、上記のlocal.conf内に追加したWEBという変数は、packagegroup-core-x11-sato.bbというレシピファイルの中にそのデフォルト値が定義されています。その部分の抜粋を下に示します。
# pcmanfm doesn't work on mips
FILEMANAGER ?= "pcmanfm"
FILEMANAGER_mips ?= ""

WEB ?= ""
#WEB = "midori"

SUMMARY_${PN}-apps = "Sato desktop - applications"
RDEPENDS_${PN}-apps = "\
leafpad \
gaku \
x11vnc \
matchbox-terminal \
sato-screenshot \
${FILEMANAGER} \
${WEB} \
"

常にSato GUI環境にMidoriを入れておきたい場合は、上のWEB変数の設定定義を変更して、「WEB = "midori"」の方を有効にしておくと良いでしょう。その場合、local.conf側の定義は不要になります。

【2015/01/21 追記】

本記事に掲載したスクリーンショットは、XS36V4上で動いているYocto LinuxのSato Mobile Desktopから撮りました。

QEMUエミュレーション環境でもMidoriブラウザが動くのか興味があったので、試しにQEMU x86-64(64ビット版)ターゲット用にMidoriブラウザを組み込んだcore-image-satoイメージをビルドしてみました。下のスクリーンショットが、QEMU x86-64ターゲット上で動作しているSato GUIとMidoriブラウザの画面です。
UBShot_20150121_193732-Installing_Midori-Yocto_Sato_Desktop-QEMUx86_64-1026x797
UBShot_20150121_193812-Installing_Midori-Yocto_Sato_Desktop-QEMUx86_64-1026x797
試していませんが、QEMU x86(32ビット版)でもMidoriブラウザは問題なく動作するはずです。

ターゲット実機を持っていない人でも記事の内容を試せるので、Yocto LinuxのGUI環境カスタマイズに関する記事はQEMU x86-64をターゲットとして書いていきます。
posted by とみやん at 14:52| Comment(0) | TrackBack(0) | Embedded Linux > Yocto Project
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/112223872

この記事へのトラックバック