そして『自分でもやっていることがあっているのか分からない』記事です…。
# これを所謂『チラ裏』と言うのでしょうか?
訂正、ツッコミよろしくお願いします。m(_ _)m
で、本題。
ザウルスでもD01NXを動かすことが出来る事を実証できたのはいいんですが、速度についてはまだまだ。PCで有効だったusbserial+option(+URB拡張)の組み合わせを試してみたいのですが、そのためにはカーネルモジュールをコンパイルする環境が必要です。
いつまでも他力本願寺はイクナイ!
と、一念発起してクロスコンパイル環境を作ってみました。
ベースとなるのはGentoo Linux。
ちょっと最近雲行き怪しいのが悩みの種…。
クロスコンパイルには、風の便りにCodeSourceryのツールチェーンが使えるよ、と言う話を聞いたのですが、私はGentoo野郎らしくcrossdevを使ってみようと思います。
まずはcrossdevをemergeします。
emerge -av crossdev
そしたらportageのoverlayディレクトリを作成します。
世の中の例にならって場所は /usr/local/portage にしましょう。
mkdir -p /usr/local/portage
ツールチェーンを作成します。ターゲットはarmv5teです。
armv5telってのをpdaXrom界隈では見かけるんですけど、違うんですね。
(実際armv5に"l"というオプションはない → 参考1・参考2)
PORTDIR_OVERLAY="/usr/local/portage" crossdev -t armv5te
エラーが出なければ完成です。
では早速optionとusbserialを作成してみましょう。
cd /usr/src
cp -pr linux-2.6.23-gentoo-r3 linux-2.6.23-arm
cd linux-2.6.23-arm
make ARCH=arm CROSS_COMPILE=armv5te-linux- menuconfig
cp -pr linux-2.6.23-gentoo-r3 linux-2.6.23-arm
cd linux-2.6.23-arm
make ARCH=arm CROSS_COMPILE=armv5te-linux- menuconfig
いつもとは違うメニューが出てきました!
とりあえずusbserialとoptionだけをモジュールにしてmake modules
しようと思ったら、
何と奴らはモジュールに出来ない…。orz
と言うわけで、ただいまここで挫折中。
へるぷみー。
# Gentooカテゴリのデビュー記事がこれかぁ…先が思いやられる
−追記:2008/01/18−
モジュールになってくれないのは、単に、
Enable loadable module support
をONにし忘れていただけでした…とほほ。
−追記その2:2008/01/18−
でも、モジュールのビルドが出来ないことは変わらず。
カーネルソースがx86前提になっているような気がしてならない…。
使えれば良いんですが未確認です…
と思ったら
http://openzaurus-ja.sourceforge.jp/
ではAngstromもbitbakeで作ってるみたいなんでうちでもできるかも?
bitbakeは激重という噂を聞いて尻込みしてます…。
うちの開発環境、非力なC7なもんで。
(単にbitbakeの使い方が分からないだけってのもありますが)
ユーザーランドの作成はkenyaくんが詳しいです。
pdaXromも自力でビルドしてたし、bitbakeも使ってたはず。
試作(kenyaくんのサイト)が早く復活するといいんですけどね。
bitbakeはOZおよびAngstromをビルドするのに使用するツールですね。
pdaXromのビルドはなんだっけな…忘れました。
bitbakeではちゃんとビルドしきったことがないですね。ただOpenEmbeddedにあるパッチを拝借するためにOpenEmbeddedのツリーをローカルに取得していました。
試作3号機の道のりは遠いです…(笑
試作の早期復活求む!!!
(あそこにしか書いてないことが盛りだくさん…)
元になっているツールがあるんです。
crosstoolだったかな。
ちなみに、make modulesのときも
make ARCH=arm CROSS_COMPILE=armv5te-linux- modules
ってやってますよね?念のため。
pdaxrom-builderの使ってるツールがあるのね。
bitbakeもそうだけど、その辺の事って難しいし。
情報収集の方法すらぴんと来ないずらよ。
モジュール作るときももちろんARCHとCROSS_COMPILEは指定してるよ。
ただ改めて試してみたら、make時のコマンドは、
make ARCH=arm CROSS_COMPILE=armv5te-unknown-linux-gnu- modules
でした。
この記事書いたとき何でコンパイル実行できてるんだ?
でもやっぱりエラーの嵐…。
GonZがビルドできてるんだからgentoo-sourcesがARM向けにコンパイルできないはずはないんだけどなぁ。む〜。
必要ですか。?15K程度なんでメールでもおくれるかも。む?もしかするとangstromのfeedからも落とせるかもしれませんね。
えー、ちなみに私はOpenZaurus-ja関係者ですんで、bitbakeのことなのでも気楽にご質問ください。
情報ありがとうございます!
まだ記事にしてないんですが、カーネルモジュールのコンパイルは何とかうまく行きました(ちょっとアクロバティックなやり方ですが)。ただ期待していたusbserial+optionの組み合わせはうまく動かず。ちょっとがっかりです。近日中に記事書きますので、そちらをご覧いただければと思います。
OpenZaurus-ja関係者とは心強いです!モジュールのコンパイルもbitbakeで作ったヤツならOKとかありそうなので、もしかしたらビルドをお願いする(もしくはビルド環境構築を指南していただく)かもしれません。その時はよろしくお願いいたします。
ちなみに、Angstromで日本語の読み書きが出来る環境を作るのは大変ですか?現在のテスト環境がAngstromなので、ユーザーランドとしてAngstromがそのまま使えれば一番話が早いと思っているのですが、私の中ではAngstrom(というかOpenZaurus)は日本語に弱いという印象があるので…。
monotoneとかbitbakeとか、手探りでごにょごにょしてたので、もう涙目でしたよwww
Android動かすのに必要なのは、OpenBinderと電源管理に組み込まれているtimerだけなので、bitbake用のメタパッケージをそのうち書きたいと思ってはいるんですが。PokyにはAndroid用のコンフィグがあるらしいんで。
あー。Andrid動かした時のHDDアクセス。あれ、/tmpにshared memory作ってるんです。ので、chroot後にprocとかマウントする時に、ついでに/tmpをtmpfsでマウントしてあげれば、なくなります。動作もちょっと軽くなってうれしい。