glibcまで作ってみたものの、実際ちゃんと出来上がってるか確認しようと簡単なコード書いてglibcをスタティックリンクしてみる。バイナリを実機で実行すると見事に固まる・・・orz 実機の現行kernelのincludeを使ってもダメなので、どっかで失敗してるんだろうなぁ、と途方に暮れるが我が家にはもう一台ARMマシンがあったのを思い出す。ZaurusはPXA270を搭載している、実機のPXA255より上位CPUなのが気になるが先のバイナリを実行すると見事に動作。うーむ、あながちクロスコンパイラもglibcも失敗してるとは言い難いなぁ・・・。更に実機からホストへはnfsでmountしているのだが、rw指定しても書き込めない・・・。chmod 777でno_root_squashとかしてるのだが。VineやFedoraの時は出来てたのになぁ・・・、因みにCentOSのfirewallは無効にしてあるし、etc/default/nfsにNFS_CLIENT_VERSMAX=3とか書いてもダメだ。誰か、設定方法教えてくださいw(汗
2006/7/13 木曜日
binutilとコマンドオプション
– binutilの最新ではシンボル名変換に失敗してglibcのコンパイルに失敗する。2.16に戻せばok、2.17はNG。どうもこれは既知の事らしい。
– いつも忘れるコマンドとOptionのメモ:
– 簡単な逆アセンブリはobjdump -d <file>
– 動的リンクの依存はlddで見る
– 静的リンクのldオプション-static
– crt0.oをリンクさせないldオプション-nostdlib
2006/7/12 水曜日
散歩道(2)
散歩道(1)
MTDイメージ作成
– ext2/3と違い、デバイスに直接ファイルシステムを構築できないので、イメージを作成する
– mtd-utilsのtarボールを拾ってきてネイティブでコンパイル&インスト
– MTDデバイスのイメージディレクトリを作成し(mkdir image等)中にダミーで1ファイル作成 (touch test等)
– mkfs -t jffs2 -v -r image/ -p <padsize> -e <erase block size> -o jffs2.img
– ddでjffs2.imgを/dev/mtdblock?へ流し込む
2006/7/11 火曜日
クロスコンパイラ作成
– gccクロスコンパイラの作成手順
– target=arm-linux
– binutilコンパイル(cross as,ldを作成)
– gccコンパイル1回目(newlib版、cコンパイラのみ)
– linuxのmake configでincludeを仮設定させる(glibcからkernelのincludeが参照される為)
– glibcをコンパイル
– newlibを削除しglibcのinclude/libに置き換える。この時、kernelのinclude/linux, include/asm, include/asm-genericもコピーかln -sする(target/include target/lib)
– gccコンパイル2回目(glibc版 c++やその他も必要に応じて)
SMC91C(2)
– LANデバイスをprobeさせるべくSpace.cに追加したが、肝心の関数がstaticでシンボルが無いと怒られるので削除。
– 初期設定でdeviceのリソース登録が出来るようになったので、そっちでLANを指定する。
– 上記の登録ルーチは/devices/base/platform.cに存在する。登録は2段階で行なわれるっぽい。
– デバイスのIDに何指定したらいいのか不明(他のは0や-1なので取り敢えず0にしておく)
– /arch/arm/kernel/head.sでmmu初期化後にはstart_kernelに飛ぶ
– 仮想メモリ用のpageデータはkernel本体の直後に配置されている(みたい)
– start_kernel()は/init/main.cにある
NPTL
Native Posix Threading Libraryという新しいThreadが2.6から使えるはずなのだが、glibcにはARM用のそれらしきものが無い・・・実際コンパイルも出来ないし標準では未対応っぽい(勿論、手順を間違えている可能性も大なのだがw)。それまでのLinuxでのThreadは実はfork(clone)したプロセスが同じ空間を共有する形で実装されていた。ThreadなんだけどPIDがつきpsでもしっかりリストアップされていたのだが、NPTLではライトウェイトなThreadらしい。諸般の理由により、以前Linux端末で作成したプログラムはThreadを相当使っている。これがNPTLになればもっと負荷が低減されるかなと期待していただけに、ARM版が見当たらないのが残念だ。きっと探せば世の中には存在するのかもしれないが、なかなか見つからない。glibcの2.4では旧型のthreadのソースtarボールも無いし、もしかして廃止?w OpenZaurusとか行けばあるのかなぁ・・・?
(more…)
2006/7/10 月曜日
290円也
7月でタバコの値段が引き上げられ早1週間も過ぎ去り、これを機会に止めようと過去何度思っても止められない意思の弱さに我ながら情けない限りで、相変わらず吸っているw ここ最近ほんとに喫煙スポットが減ったと思う。以前の勤め先は金山だったので駅周辺では歩きタバコの監視員が巡回していた。かくいう当方も新幹線の切符は禁煙席を指定するw それでも、病気を金で買うという失態を繰り返しているのはどうにかならないもんでしょうか?w
2006/7/9 日曜日
マスコミ
オシムが次期監督候補に挙がった時「日本はW杯に出場出来ただけでも御の字だ」と発言していた。これは最もな意見だなぁと思う。日本のマスコミというかテレビというのは、先のトリノにしても、W杯にしても、本来冷静で中立的な立場からバランスの取れた報道が求められるのに、こぞって実力を過大評価して結果を期待している姿は何とも異様だ。自国を応援したい、勝たせたい気持ちは分かるが、もうちょっと賢くなったらどうだろう?ジャーナリストに左巻きな人が多いのもわけがわからない。



