Yoshinori Sato
ysato****@users*****
2003年 6月 19日 (木) 23:49:18 JST
At Thu, 19 Jun 2003 21:10:50 +0900, nagao kin'ichiro wrote: > > たびたび失礼いたします。 > 長尾です。 > > 前回、送信させていただいた状況よりは若干進みましたが、 > またユーザランドの構築でまだ悩んでおります。 > > 開発環境ですが > binutils-2.11.2.tar.gz + binutils-2.11.2.patch > gcc-2.95.3.tar.gz > newlib-1.8.2.tar.gz > uClibc-0.9.9.tar.bz2 + ptrace.diff > coff2flt-0.5.tar.gz + coff2flt-0.5.patch > です > > initが動くか知るために岡崎様のinit-hello.cを使用させていただきました。 > http://www.bc.wakwak.com/~domo/uClinux.html > > コンパイルコマンドは > # h8300-uclinux-hms-gcc -fsigned-char -mh -mint32 -static \ > -nostartfiles /usr/local/h8300-uclinux-hms/lib/crt0.o \ > -Wall -I. -I/usr/local/h8300-uclinux-hms/include \ > -o init.coff init-hello.c \ > -L/usr/local/h8300-uclinux-hms/lib \ > -Wl,-T uClinux-H.x \ > -Wl,--embedded-relocs8 > を実行し作成されたinit.coffを > > # coff2flt -o init init.coff > し、initを作成しました > 問題はこのinitなのですが、initを > # od -ax init > でヘッダ部分を見たところ > > 0000000 b F L T stx nul nul nul \ soh nul nul 2 ? nul nul > 4662 544c 0002 0000 01dc 0000 3fb2 0000 > 0000020 T @ nul nul d D nul nul nul dle nul nul T @ nul nul > 4054 0000 4464 0000 1000 0000 4054 0000 > > となっており、ヘッダ部分がすこし違うようなのです > (/bin等を作成した後、enromfsでrootimageをつくりましたが動作しませんでした) > > > genromfsで動作するinitのヘッダは以下の通りです > > 0000000 b F L T nul nul nul stx nul nul ) B nul nul ! n > 4662 544c 0000 0200 0000 c229 0000 eea1 > 0000020 nul nul * n nul nul U so nul nul dle nul nul nul * n > 0000 eeaa 0000 0ed5 0000 0010 0000 eeaa > > > このような状況なのですが、どなたかお力をお貸ししていただけませんでしょうか? > よろしくお願いいたします。 > ヘッダの違いですが、先頭の8バイトは固定ですが,その後ろはサイズなど の情報なので、まったく同じプログラムでない限り一致しません。 詳しい情報はinclude/linux/flat.hの定義を見てください。 objdump -h init.coffの結果と突き合わせれば、ヘッダが正常かどうかは わかります。 カーネルを再構築できるのであれば、 fs/binfmt_flat.cの先頭の所にある #undef DEBUG を #define DEBUG にして、デバッグ用のメッセージを確認すれば、何かわかるかもしれません。 -- Yoshinori Sato <ysato****@users*****>