2012年4月8日日曜日

pandaboardでandroid 4.0.4を動かしてみよう

Linaroのブログによりますと、Android 4.0.4が公開されたということで早速確認してみましょう。

今回はビルドから起動の確認まで行いますが、使うのはUbuntu 10.10(64bit版)です。
(Ubuntu 11.10とかはデスクトップがいまいち気に入らないので見送り中)

環境構築
環境構築については以前のこちらと、JDK6のインストールを参考に。

あと、Toolchainに関してですが、こちらを見たところ、新しいバージョンを使う必要がありそうということで、手順の通りインストールしておきます。
$ wget http://snapshots.linaro.org/android/~linaro-android/toolchain-4.6-2012.03/2/android-toolchain-eabi-linaro-4.6-2012.03-2-2012-03-15_12-39-18-linux-x86.tar.bz2
$ sudo tar -jxvf android-toolchain-eabi-linaro-* -C /opt/
(※-Cオプションで展開場所を指定しています。展開場所はお好みですが、いちおう/opt/あたりに置くのが定説)

ソースツリーの取得とビルド
Linaroのブログのこちらの記事に書かれている通りですが、BUILDTYPEは前回同様に"tracking-panda"としましょう。
$ mkidr android_404_tracking-panda
$ cd android_404_tracking-panda
$ repo init -u git://android.git.linaro.org/platform/manifest.git -b linaro_android_4.0.4 -m tracking-panda.xml
$ repo sync
(2~3時間はかかるかもしれません)

環境さえそろっていればビルドは下記のコマンド一つでOK。

$ make -j4 TARGET_PRODUCT=pandaboard TARGET_SIMULATOR=false TARGET_TOOLS_PREFIX=/opt/android-toolchain-eabi/bin/arm-linux-androideabi- boottarball systemtarball userdatatarball showcommands 2>&1 | tee build.log
※手順の通りだとビルドログがまったく表示されず進捗具合がわかりませんので、後ろのほうを若干修正しておきます。(tee log ・・・ 表示内容をそのままlogに保存。)
ビルドにかかる時間は環境にもよりますが、4コア4GBメモリの仮想マシン上で大体1~2時間ぐらいです。out/target/product/pandaboard以下に出来上がります。

ビルドイメージ書き込みと起動 
ビルドしたイメージのSDカードへの書き込みは毎度の通り。
$ cd ~/android_404_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カードのデバイスファイル名にあわせて変更すること

そして、プロプライエタリなライブラリを、下記コマンドで後入れします。(12.03のものを使いましたが、内容は一緒だと思いますのでそのまま使えるでしょう)
$ wget http://releases.linaro.org/12.03/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カードへの書き込みで使用したデバイスファイル名と合わせる
ダウンロードが始まり、続いてライセンスの表示(Enter)、スペースで条項をスクロールして、同意するか聞かれますので、すかさず "I ACCEPT"と打ってEnterです。

起動させてみますと、


はい!android 4.0.4が起動しました!(パチパチ)
機能的には12.03のリリースとほどんど変わっていないようです。(現在のところ。)

2012年4月3日火曜日

Ubuntu 10.10(64bit版)にJDK6をインストールする

UbuntuのパッケージインストーラーでJDK6がインストールできないじゃないか!!と困ったので調べてみました。
一応、Ubuntu-10.10-desktop-amd64を想定しておきますが、それ以外のUbuntuバージョンでも大体同じ手順で行けると思います。

今までの手順
まずは今までどうだったかというと、
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
これでインストール出来てたはずなんですが、現在だと「そんなもんありませんぜ!」と怒られてしまいます。

(正確にはこんなメッセージ)
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています               
状態情報を読み取っています... 完了
パッケージ sun-java6-jdk はデータベースには存在しますが、利用できません。
おそらく、そのパッケージが見つからないか、もう古くなっているか、
あるいは別のソースからのみしか利用できないという状況が考えられます

E: パッケージ 'sun-java6-jdk' にはインストール候補がありません

これはなぜかというとこちらのニュース(マイナビニュース)。
Sun Javaはそもそもなくなってしまったのと、今後はOracleのオフィシャルダウンロードサイトからダウンロードせよとのこと。

新しい手順
では、これからはどうやるのかというと、
ずばりOracleのJava SE Downloadsサイトからパッケージをダウンロードしてインストールします。
現在はJava7推しで一見するとJDK6が見当たりませんが、ちょっと下にスクロールしてやるとJDK6のDownloadリンクを見つけることができます。
(今ですと、Java SE 6 Update 31が最新のようです。以降、このバージョンを想定しての説明です。)
※おそらく今後は最新バージョンしか容易にはダウンロードできないようになりそうなので、新しいバージョンが出て来た際は、また確認ということで。

Downloadのリンクを踏みまして、"Accept License Agreement"にチェックを入れてから、Linux x64 (64-bit)となっている「jdk-6u31-linux-x64.bin」をダウンロードしましょう。(※Intel Itanium版についてはよくわからんのでスルーです)
$ chmod a+x jdk-6u31-linux-x64.bin
$ ./jdk-6u31-linux-x64.bin
"Press Enter to continue....."と聞かれたらEnter
(ブラウザが開きます。がそちらは置いといて、)
$ sudo mkdir /usr/lib/jvm
$ sudo mv jdk1.6.0_31 /usr/lib/jvm/
$ cd /usr/lib/jvm
$ sudo ln -s jdk1.6.0_31 java-6-oracle
(最後のは今までのJavaに合わせる配慮で、特にやらなくても問題ありません。)
で、インストールは完了なんですが、環境設定は自分でやらないといけないんだよね。面倒くさい...

ところがなんと!これを見越してか、面倒な環境設定を自動化してくれるスクリプトがすでに公開されています!
こちらのプロジェクトhttp://code.google.com/p/webupd8/
ちょっとわかりづらいのですが、下記のように最新版(現在0.5b)をダウンロードして実行します。(Downloadsのタブで最新版を探しましょう。)
$ wget http://webupd8.googlecode.com/files/update-java-0.5b
$ chmod a+x update-java-0.5b
$ sudo ./update-java-0.5b
すると、下のようなウィンドウが開き、どのJavaを利用するか聞いてきます。

(まあ、どちらでもいいのですが、、、)先ほどのjava-6-oracleを選んでOKをクリック。
(わかりづらくなるという、裏目に出ていますが。。。)
コンソール上で何やらメッセージが表示されて、環境がセットアップされていきます。

最後に動作確認です。

$ java -version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)
のように表示されればセットアップは完了です。あとは今まで通り利用できます。

このツール、もともとは、複数あるJavaの中から使いたいバージョンを選ぶためにあるようですな。

というわけで以上です。(今回あえてUbuntu10.10にしたのは、次回への伏線ェ...)