2012年2月25日土曜日

pandaboardでLinaro Release 12.02 Androidを試す

Linaroの今月の新FWがリリースされましたので早速試してみましょう。
前回と、こちらを参考に。(コピペ

今回はどうもステータスのページが空白になっていてどんな内容なのか見えません。
推して知るべしということですかな(なんか違う気がする)

まずは手順そのまま。ビルド済みのイメージをダウンロード。(URLからすると何となくtrackingである気がする)

wget http://releases.linaro.org/12.02/android/images/panda-ics-gcc46-tilt-tracking-blob/boot.tar.bz2 http://releases.linaro.org/12.02/android/images/panda-ics-gcc46-tilt-tracking-blob/system.tar.bz2 http://releases.linaro.org/12.02/android/images/panda-ics-gcc46-tilt-tracking-blob/userdata.tar.bz2

書き換えは前回と同様。SDカードを挿してから。
$ sudo linaro-android-media-create --mmc /dev/sdb --dev panda --system system.tar.bz2 --boot boot.tar.bz2 --userdata userdata.tar.bz2
※/dev/sdbの部分は認識されているSDカードのデバイスファイル名にあわせて変更すること

やはりプロプライエタリなライブラリは、下記コマンドで後入れします。(前回とURLが変わっていますが。)
$ wget http://releases.linaro.org/12.02/android/images/panda-ics-gcc46-tilt-tracking-blob/install-binaries.sh
$ chmod a+x install-binaries.sh
$ ./install-binaries.sh /dev/sdb2
※/dev/sdbの部分はSDカードへの書き込みで使用したデバイスファイル名と合わせる

起動させてみますと、




Android ICS (4.0.3)
HDMI出力は1920×1080
WiFi動作

見た感じ、前回との違いがわからない。ん~、実はまだテストが完全に終わっていないということかもね。

もう少し見てみると、一応、
動画再生 : MP4/H.264/AAC 再生できることを確認。音声はイヤホンジャックから出てました。
Youtube(モバイル版) : 再生できず 再生できます

以上。

2012年2月12日日曜日

pandaboard向けLinaro Androidをビルドしてみる

LinaroのHPよりDevelopersAndroidBuild the Source Codeのリンクを辿った場所にソースコードの入手、環境構築、ビルド手順が記載されています。

ここで最初に注意ですが、ビルド環境はUbuntu 10.10を使いました。(Ubuntu 10.04ではどうやらパッケージに不足があるらしく上手くビルドが通らず。めんどくさくなって断念)
Ubuntu 10.10であれば、まあ素直にビルドが通ります。(LinaroのビルドのページにあるようにUbuntu 11.10でもいいかもしれませんが、試してはいません。)

ではまず環境構築から。
AOSPのInitializing a Build Environmentを参考に必要なパッケージをインストールしていきます。
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
  zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
  x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
  libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
  libxml2-utils xsltproc

10.10ですので一応、下記も実施。(エラーが出るようでしたら、ほっといてもOK。w)
$ sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so

JDK6のインストールも手順の通り
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk

それからuboot-mkimageも必要だったと思います。(記憶によると)
$ sudo apt-get install uboot-mkimage

Linaroのビルド手順のページに戻りまして、
続いては、Androidのソースコードダウンロードツールであるrepoをインストールします。
$ mkdir ~/bin
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ export PATH=$HOME/bin:$PATH
$ chmod a+x ~/bin/repo
exportでパスを通していますが(以前にも書きましたが、)再起動後は~/binへのパスは勝手に読み込まれるので毎回やる必要性はありません。

repoコマンドを使ったソースツリーのダウンロードですが、{PRODUCT_MANIFEST}は指定せよとありますので、今回はやはり"tracking-panda.xml"としてみたいと思います。
$ mkdir ~/tracking-panda
$ cd ~/tracking-panda
$ repo init -u git://android.git.linaro.org/platform/manifest.git -b linaro_android_4.0.3 -m tracking-panda.xml
(名前とメールアドレスを入力します。)
$ repo sync
これでソースツリーのダウンロードが始まりますが、かなり時間(5時間程度)がかかります。時間帯によっては切断されてしまうこともありますが、途中経過を覚えていてくれるのでそういう場合はもう一度repo syncを実行します。
Androidだけではなく、Kernel、u-bootも一式ダウンロードされます。

続いてはlinaroのビルドツール(ツールチェイン)の入手です。(保存場所や展開場所に関してはご自由に。)
$ cd ~/tracking-panda/../
$ wget --no-check-certificate http://android-build.linaro.org/builds/~linaro-android/toolchain-4.6-2011.12/5/android-toolchain-eabi-linaro-4.6-2011.12-5-2011-12-12_14-40-40-linux-x86.tar.bz2
$ tar -jxvf android-toolchain-eabi-linaro-4.6-2011.12-5-2011-12-12_14-40-40-linux-x86.tar.bz2
※android-toolchain-eabiというディレクトリに展開されます

いよいよビルドですが、TARGET_PRODUCTは"pandaboard"を指定し、TARGET_TOOLS_PREFIXは先ほど展開したツールチェインのパスを、HOST_CCといったパラメータはUbuntu 11.10向けであるため必要なしで、下記のように実行します。(並列化のための-jオプションはお好みで)
$ cd ~/tracking-panda/
$ make -j4 TARGET_PRODUCT=pandaboard TARGET_TOOLS_PREFIX=../android-toolchain-eabi/bin/arm-linux-androideabi- boottarball systemtarball userdatatarball
大体1時間ぐらいでしょうか。(VMware上で4コア、メモリ4GBで実施して)
ビルド結果は、out/target/product/pandaboard以下に "boot.tar.bz2"、"system.tar.bz2"、"userdata.tar.bz2"が出来上がります。

ビルドしたイメージのSDカードへの書き込み方法ですが、これは前回の手順と一緒です。
linaro-image-toolsをインストールしておいて、ビルド結果が格納されているディレクトリで下記コマンドを実施。
$ cd ~/tracking-panda/out/target/product/pandaboard
$ sudo linaro-android-media-create --mmc /dev/sdb --dev panda --system system.tar.bz2 --boot boot.tar.bz2 --userdata userdata.tar.bz2
※/dev/sdbの部分は認識されているSDカードのデバイスファイル名にあわせて変更すること

やはりプロプライエタリなライブラリは、下記コマンドで後入れします。
$ wget http://releases.linaro.org/12.01/android/images/landing-panda/install-binaries.sh
$ chmod a+x install-binaries.sh
$ ./install-binaries.sh /dev/sdb2
※/dev/sdbの部分はSDカードへの書き込みで使用したデバイスファイル名と合わせる

起動させてみますと、


はい。ちゃんと起動しましたね。(よかった、よかった。)

pandaboardでLinaro Release 12.01 Androidを試す

早速Linaroがリリースしているpandaboard用のAndroidを試してみましょう。
最新のリリースは12.01で、LinaroのHPDownloadsリンクより、pandaboard用のリンクが貼られています。
そこに手順が書かれていますので、その通りやればOKです。。。

ですが、一旦ちょっと寄り道して、現状のリリース状況を見てみましょう。
https://wiki.linaro.org/Cycles/1201/BoardSupport/Android/Panda
を見ると、Tracking PandaというのがWiFiなど動いているものが多いようです。

というわけで改めて
http://releases.linaro.org/12.01/android/leb-panda/
でインストール手順をたどっていきましょう。
基本的にUbuntu上で実施します。


まずはビルド済みイメージのダウンロードですが、ここで記載されているのはlanding-pandaのダウンロードについてです。ここはやはり、landing-pandaではなくtracking-pandaを試してみたい。ということで、"landing-panda"となっているところを"tracking-panda"に変更すればよさそう。以下一行で取得。

$ wget http://releases.linaro.org/12.01/android/images/tracking-panda/boot.tar.bz2 http://releases.linaro.org/12.01/android/images/tracking-panda/system.tar.bz2 http://releases.linaro.org/12.01/android/images/tracking-panda/userdata.tar.bz2

ブート用SDカードへの書き込みツールとして、linaro-image-toolsというものが用意されています。このインストール方法は、Ubuntuのパッケージインストーラにリポジトリを追加してインストールできるという簡単さ。書いてある通り以下の手順でOK。

$ sudo add-apt-repository ppa:linaro-maintainers/tools
$ sudo apt-get update
$ sudo apt-get install linaro-image-tools


SDカードへの書き込みも以下のコマンド一発。

$ sudo linaro-android-media-create --mmc /dev/sdb --dev panda --system system.tar.bz2 --boot boot.tar.bz2 --userdata userdata.tar.bz2
※/dev/sdbの部分は認識されているSDカードのデバイスファイル名にあわせて変更すること

プロプライエタリなライブラリなどは上記を書き込んだ後で別途入れる必要があります。(これをやらないと正常に起動しません。)
方法は以下の通り

$ wget http://releases.linaro.org/12.01/android/images/landing-panda/install-binaries.sh
$ chmod a+x install-binaries.sh
$ ./install-binaries.sh /dev/sdb2
※/dev/sdbの部分はSDカードへの書き込みで使用したデバイスファイル名と合わせる
Enterでライセンス条項に進み、
スペースでスクロールさせ、
最後に
I ACCEPT
と打ってEnterでインストールされます。

起動させてみますと、

こんな感じ。
HDMIからの出力で、画面の解像度は1920×1080。WiFiも動くようです。


今回は以上。次回はソースコードからのビルドに挑戦してみるかもしれません。

しかしまあ、ほとんどコマンド一発と、至れり尽くせりですなあ。

2012年2月11日土曜日

pandaboardをめぐる近況について

(ぐだぐだしている内に年は明けて一ヶ月経っているわけですが。)
さて、pandaboardでandroidの続きですが。

と行きたいところですが、しかしながら、昨年末のAndroid 4.0(Ice Cream Sandwich)がリリースされる前後で、pandaboardをめぐる状況は大きく変わってきています(笑)。少し状況を見てみましょうか。

まずはomappediaはどうしているか
http://omappedia.org/wiki/Android_Panda_Build_Source
AOSPからのソースコードダウンロードと、ビルドの手順がそのまま掲載されています。
色々と準備中という様子が伺えますね。

ICSがリリースされる以前(といってもAndroid 2.3(Ginger Bread)までですが)はpandroidというところがpandaboardへのAndroidポーティングの活動をしていました。
http://code.google.com/p/pandroid/
しかし、現在は活動はどうやら停止しているようです。
今後はLinaroの方でポーティングが引き継がれていく(正確かどうかわかりませんが)とのこと。

ということで最後はlinaroです。
http://www.linaro.org/
Linaroが開発対象としてるボードは広範囲にわたります。
TIのOMAPチップが載ったPandaBoard/BeagleBoardの他、SamsungのExynosチップ、ST-EricssonのNovaチップ、Freescaleのi.MXチップが搭載された開発ボードも開発対象となっています。
また、ポーティング対象のOSとしても、Androidの他、Ubuntu(Ubuntu TV)も対象となっているようです。しかも、一月ごとに各プラットフォームへ一斉リリースがあるという脅威的!なペースです。

というわけで、pandaboardでのAndroid開発はまだまだ安泰wということですね。