パスワードを忘れた? アカウント作成

BAK (1020) の日記

2001 年 08 月 25 日
午前 02:23

うーむ

会社の隣の席では,同僚が某ボード用の Linux の MTD ドライバに挑戦している. オンボードの Flash ROM をディスクとして使うためである. が,何か手こずってる様子.

この仕事が間に合わないと,私のところに降ってくるのは明白なので,どうにか頑張って欲しいところである. というわけで,どこではまっているか,聞いてみる.

聞くと,mkfs.jffs をネイティブ環境でコンパイルできない,という. pread というシステムコール(のラッパ)が libc に無いため,というのは,この前調べてあげたのだが,そのため,glibc-2.2 を構築しようとしてるのだそうだ. が,mkfs.jffs は,この前,私のクロス環境で static link して作った実行ファイルを渡しているはずなのだが. しかも,pread は,lseek と read をアトミックに行うシステムコールなので,他に邪魔するプロセスがいなければ lseek と read で書き直せることも教えたはずだ.

私のあげた実行ファイルではどうなのか,と聞くと「エラーが出て実行できない」という. どこぞの web のプリントアウトを見ながら作業してるので,その紙を奪って読んでみる. とりあえず,手持ちの mkfs.jffs.c を x86 環境でコンパイルして実行してみる. 確かにその紙の通りには実行はできない. が,単に -o のオプションを受け付けず,stdout に出力する,というだけである.

「む,出力ファイル?」 さらに記述を読むと,そのファイルを cat で MTD デバイスに流し込んでいる. つまり,これは mkisofs みたいにフォーマット済みのイメージファイルを出力するツールなのである.

「…というツールなので,x86 上でイメージを作って,そのイメージをボード上に持っていけば簡単」とアドバイス. が「x86 とは別のアーキテクチャなので動くはずが無い」という. 「エンディアンは一緒だし,動かない,という明確な理由はあるのか」と問い詰めるが,ごにょごにょいうばかり.

そこに社長がやってきたので,用途について聞いて「それじゃ MTD + ext2 でも問題はないですね」ということになる. で,MTD は動いているんだよね,と確認すると「動いてない」とか言い出す. この前動いていたように思ったのだが,勘違いだったのかな. 動いたと思って実は動いてなかった,というのはよくあることなので,このことはまあいい.

が,MTD が動いていない状態で mkfs.jffs のコンパイルを頑張ってどうするつもりなのだ?

ここでひとつの疑念.

「こいつ,C 言語わかるのか?」

まさか,とはおもうが,C わからない奴にカーネルハックやらせてるとしたら,なかなか豪快な会社である.

吾輩はリファレンスである。名前はまだ無い -- perlの中の人

処理中...