« December 2008 | Main | February 2009 »

January 2009

2009.01.28

Kernelサイズエラー

ビルドは通ったものの...

FATAL: This kernel (size=1300072 > 1294336) is too big for your device. Please reduce the size of the kernel by making more of it modular.

5736バイト大きい!
なんか、1つぐらい機能を削ればいい、ってレベルなんだけどなあ。
debugになってるのがいかんのかな?

Kernel 2.6.26用Androidパッチ

なんとか、PokyのSnapshotをビルドするところまでこぎ着けれた。
Ubuntu 8.04のVMでは導入するものが多いなあ。flexが入ってなかったためにやり直しのハメになったさ。

できあがったPokyをSL-C860に焼いてみたところ、とりあえず、Kernelは2.6.26になっている。よしよし。ただ、poky-image-baseではスプラッシュ画面が出たままで起動せず。poly-image-satoを作ったら起動した。
しかし、キーマップがおかしいようで、「:」とか入力できないんで、/etc/inittabを書き換えることもできず。えー。sshでログインすればいいのか?

まあとりあえず、Kernel 2.6.26がSL-C860で動くようになったので、android用のパッチでも当てるか、と、Kernel 2.6.24用に作ったものを適用したら、binderのところでコンパイルエラーが出た。何か違うところがあるのかな?ポーとするのも面倒そうだなあ〜

と、思って、ググってみると、意外に簡単にKernel 2.6.26用のAndroidパッチを見つけた。ラッキー。
Armadillo 500FX用のパッチ
これで労せずしてパッチが当てれるわ!わっはっは!

と期待したのだけれど、そのままではパッチエラーが出るし、ビルドエラーも出るし、で駄目みたい。それでも、まだ楽になったと思う。


2009.01.24

Seagate ショック!

SeagateのHDDを購入したのが18日で、19日にSeagateのHDDに不具合が!というニュースが!
やっちまったなぁ!
http://pc.watch.impress.co.jp/docs/2009/0119/seagate.htm

よく見たら、3.5インチ製品で、2.5インチは大丈夫みたい。助かった!

換装したMacBookは調子よく動いております。ほほほ。
VM用のスペースも贅沢にあるので、AngstromやAndroidのビルドもなんのその。

2009.01.19

カーソルキーが有効になった

androidzaurusさんのアドバイスに従い、init.rc の中でrootfsをRead-Onlyで再マウントしているところを、Read-Writeに変えたところ、ブラウザは問題なく起動するようになりました。

また、Android 1.5になっても、起動にはm3版と同じスクリプトを使っていて、android.imgに入っていた/a.shをchrootして呼び出すようにしていたのだけれど、これを、/init を起動するように変更したら、カーソルキーが有効になりました。
a.shでは、initがバックグラウンドタスクで動作するため、カーソルキーが渡されないのかな?

あとはタッチパネルだなあ。/dev/input/event1 をcatすると、何か出ているので、ドライバ自身は有効なんだと思うんだけど。

Windows 7 ベータをBootCampで試す

HDDを500GBに増やしたときに、Leopardの環境は移行できたものの、Windowsパーティションはコピーできないので、新しくインストールしなくてはならない。
HDDを買ったのにあわせて、Windows XP Home SP3も購入したのだけれど、せっかくなので、Windows 7 ベータ版を導入してみた。

インストールそのものはBootCampアシスタントに従うだけで簡単に終了。
ドライバ類はインストールディスクのsetup.exeが2229エラーを起こして設定できないため、個別にインストールする必要があった。とりあえず、キーボードとタッチパッドのドライバを入れておいた。

8月までは使えるみたいなので、とりあえず、Windows XP Homeの代わりにWindows 7で行こうかと。

Android on SL-C860 まとめ

AndroidをSL-C860で制限付きながらも動かせるようになったので、一度、まとめておきます。

まずは、Angstrom環境で動作するAndroid m3版のイメージから。すべては、ここから始まりました。
http://androidzaurus.seesaa.net/article/80104396.html
このイメージファイルがすべての始まりでした。

さらに、SL-C700でAndroid SDK 0.9が動いたという話。
http://d.hatena.ne.jp/steleto/20080925
こうなると、SL-C860でも動くはずなんだけれど、カーネルのパッチとか、イメージとかは見あたらない。仕方がないので、自分でカーネルをなんとかすることにしましたとさ。

m5-rc14版では、Kernel 2.6.23を使っていて、そのカーネルの必須修正はリストがありました。
http://elinux.org/Android_on_OMAP#Kernel_patch
これをもとに、SDK 1.0r1用のカーネルパッチから、2.6.24用のパッチ (400.4K)も作りました。

SL-C700やSL-C860に搭載されているグラフィックチップであるところの、ATI W100をダブルバッファ化も必要と言うことで、
http://d.hatena.ne.jp/steleto/20080417/1208451195
これもパッチ (2.2K)を作り、bitbake環境で適用しました。

さらに、タッチパネルを有効にするためのパッチ。corgi_ts.cにパッチを当てます。
http://blog.seesaa.jp/tb/96581331
たった2行のパッチ(0.4K)だけど、効果は絶大で、m5版ではタッチパネルが動作するようになりました。0.9以降で動作していないのはなぜなのか不明。

あとは、android.imgの作り方。
http://androidzaurus.seesaa.net/article/80730942.html
Android SDK m5-rc14, m5-rc15, 0.9, 1.0r1、オープンソース版Androidでもこの方法で作成しました。

とりあえず、このぐらいだったかな?
安藤恐竜さんから修正のヒントをいただいたので、もう少しトライしてみよう。

2009.01.18

MacBook用に500GB HDDを購入

嫁さんと千葉駅周辺まででかけたので、ドスパラをのぞいたら、2.5インチ 500GBのHDDがずいぶんと安くなりましたねえ。Samsungのが最安値だと思ってたら、Seageteも同じ8980円になっていたので、買ってしまいましたよ。
帰ってきてからAKIBA PC Hotline!の価格調査(2009/1/15)を見たら、9950円が最安値とゆうことになっていたけれど。

製品5年保証ということで、製造年月日から5年間の保証があるのだけれど、Seagateのホームページに「保証チェッカー」とゆうのがあって、そこで調べてみると、2013年12月26日までだった。まだ生産されてから1ヶ月も経ってないや。

さて、簡単にリプレイスできるかな?

2009.01.16

Android 1.5 on SL-C860 起動できた!

ようやく、SL-C860でオープンソース版Android 1.5が動きましたとさ。
これもひとえに先人の方々が有用な情報を提供してくださっていたからです。ありがとうございます。まとめ直してから、参考にした方々のリンクとかトラックバックとかさせていただきましょう。

Android860

状況としては、以下のような感じ。


  • KernelはAngstrom stableブランチ 2.6.24 2007.12-r19相当
  • Kernelパッチは、Android SDK 1.0-r1から作成。androidドライバ、ashmemドライバとか必要そうなものだけ抽出。
  • w100fb.cのダブルバッファパッチは適用済み。
  • corgi_ts.cへのパッチも適用済み、のはずなのだけれど、タッチスクリーンは動かず。画面にさわるとフォーカスがどっかに行ってしまうので、入力だけはしている気がするけれど?
  • オープンソース版Androidはmasterブランチ(本線)。タグは意識していないけど、1.5になっている模様。
  • ランドスケープ固定パッチ適用済み。Global Timeのフレームレートは5.5fpsぐらい。
  • 一部のキーが認識しない。具体的には、カーソルキーと中央のCancel。Keycode Checkerを入れてもキーがあがってきていない。とりあえず、動作確認のため、HJKLにvi風カーソルを割り当ててみた。
  • ユーザーランドは、128MBのext2ファイルシステムのイメージを作って、それをループバックでマウント。中身は、エミュレータから/data と /system をとってきたもの。
  • chrootしたためか、Read-Onlyになってしまう。そのため、ブラウザが起動できない。コンソールからmount -o remount,rw rootfs / とすると、ブラウザが起動できる。

タッチスクリーンが正しく動作しないので、今のところはあまり関係ないけれど、ソフトキーボードがエラーを起こしまくります。

Keyboarderror

これはエミュレーターでもよく起こるので、実機の問題というわけでもないのかな?

2009.01.14

ashmemドライバをKernel 2.6.23に導入

Android SDK 0.9以降を動作させるには、binderドライバだけでは不十分のようで、 Android / Anonymous Shared Memory Subsystem (ashmem)が必要なようだ。

Android SDK 0.9はKernel 2.6.25ではあるが、このうち、ashmemに関連するところだけをKernel 2.6.23にバックポートしてみた。(バックポートと言えばかっこよく聞こえるが、たいした作業ではなかった。)

ashmemを有効にしたカーネルを使って、Android SDK 0.9のユーザーランドを起動したところ、これまでのようにSEGVでは落ちなくなったのだが、すぐにbinderが「unknown command」というエラーを返した。ソースコードを見てみると、binderのコマンドがenumで定義されているのだが、定義が大きく変わっていた。

ということで、ashmemをバックポーとしただけでは駄目でしたとさ。がっくし。

2009.01.12

Kernel 2.6.23用パッチ

elinux.orgのAndroid on OMAPを参考にして、Andorid SDK m5-rc14が動作するのに必要な最低限のKernel 2.6.23用のパッチを作成。
作成したパッチは、こちら

これをAngstromのbitbake環境に適用して、console-imageを作成して、動作を確認した。
DHCPも問題なく動作するようになった。
原因は、カーネルへのパッチが問題ではなくて、bitbakeしたイメージに2.6.23と2.6.24のファイルが混在してしまったため。一度、作成されたファイルを全部消して作り直した。そしたら、JFFS2のエラーも出なくなった。めでたしめでたし。

2009.01.10

Android SDK m5-rc15もSL-C860で動いた

m5-rc14 に続いて、 m5-rc15も動作を確認。
まあ、カーネルは変わっていないようだから、動いて当たり前なんだろうけど。

Android SDK 1.0はSegmentation Faultが出て動かなかった。

まずは、Kernel 2.6.23のパッチを修正して、m5-rc15が安定してから次に進むことにしよう。

ようやく Angstrom m5-rc14 の起動に成功

SL-C860でようやく Android SDK m5-rc14 が動いた!

配布されているAngstrom console-imageではやはり駄目のようで、カーネルを作り直してandroid用ドライバを組み込んでやる必要があった。
m5-rc14 の公開されているカーネルソースと、すっぴんのKernel 2.6.23との差分をとってパッチを作成。それをAngstrom開発環境のKernel 2.6.23をビルドする環境に適用。さらに、w100のダブルバッファとcorgi_ts.cのパッチを加えて、make linux-rp でzImageをビルド。
このzImageを配布されているconsole-imageのinstall kitに含まれるzImage.binと置き換えて、SL-C860のROMを焼き変えた。

Androidが起動して、タッチパネルも動くので、問題はなさそう。
ただ、電源周りがややおかしいのと、DHCPが正しく動作しなくなった。
電源はサスペンドできない(常時電源オン)というだけなので、実運用にしなければとりあえずは問題なし。
DHCPの方は、/etc/network/interfaces に eth0のIPアドレスを固定にしてしまえば、とりあえず問題はなかった。

Android 1.0はこのカーネルでそのまま行けるかな?

2009.01.07

自ビルドカーネル2.6.23でandroid起動

Angstrom環境で自ビルドしたカーネルでは、どうもルートファイルシステムのできが悪い気がする。
そこで、ルートファイルシステムはAngstrom配布ページのものを使って、カーネルだけ、workの下にできたzImageを焼くことにした。
これで焼いてみたところ、uname でカーネル情報を取得すると、ビルド日付が更新されていた。
この状態で、Androidのイメージを起動してみると、ちゃんと起動した。果たして、ダブルバッファのパッチの効果が出ているのかはわからないが。API Demoの中の3D Cubeを試してみたけれど、スムーズに回っているなあ、という印象。オリジナルを忘れたからわからないけど、ダブルバッファになったって描画スピードが速くなるわけではないわね。

さて、次はAndroid 1.0へバイナリの入れ替えをしよう。


2009.01.06

Picasa for Mac 3 beta 登場

PicasaのMac版がついに登場!まだベータ版だけど。
http://picasa.google.com/mac/

さっそくインストールしてみた。インターフェイスは英語。
iPhotoのライブラリを参照して、取り込んでくれる。コピーはしていないらしく、編集時にだけコピーするらしい。

iPhotoになくてPicasaにあるもの、それがコラージュ機能だと思う。これで複数の写真を1枚のA4フォトペーパーに印刷して、飾ったりするのが楽しい。これまではいちいちWindows版を使ったり、無理矢理Wineを使ってX11で動かしたりしていたけれど、もはやその必要なし。

確か、Picasa 3のWindows版では、写真に写っている顔でタグを付けるような機能があったと思ったんだけれど、それはあるのかないのか、結局わからなかった。

写真の管理はiPhotoで行って、Picasaで編集&アップロード、という使い方になっていくかと思っている。


2009.01.04

openembedded.org に接続できない

Angstromの旧式の開発環境をmonotoneを使って構築しようとしているのだけれど、openembedded.orgに接続できず。昨日はつながったのに、なぜ?
pingやtracerouteでは到達できるのに、80番ポートも開いているようなのに、HTTPリクエストへの応答がない。明日以降、またトライかな。

なお、Internet ArchiveでAngstromのビルドページの過去のページを見てみたら、確かに、monotoneを使うように書いてあった。今のページでは、gitになってるけど。
http://web.archive.org/web/20071230102827/http://www.angstrom-distribution.org/building-angstrom

2009.01.03

2007.12-r19では駄目なのか

Angstromの開発環境について、公式ページに書いてあるとおりに構築して、ビルドを行うと、できあがったイメージのバージョンは、2007.12-r19というものになる様子。
ところが、このバージョンは、c7x0向けには公式リリースされていない。2007.12-r13が公式リリースされている最新バージョン。ということで、r19は動くかどうかわからん。

2007.12のディストリビューションを作りたいんだけどなあ。
公式ページに書いてあるのとは違って、OpenZaurusで採用されていた、monotoneを使って管理されている開発環境の方を使うのかな?

« December 2008 | Main | February 2009 »

Recent Trackbacks

October 2014
Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
無料ブログはココログ