Yoshinori Sato
ysato****@users*****
2005年 5月 27日 (金) 15:36:55 JST
説明の手抜きはよくないですね。反省。 At Fri, 27 May 2005 14:14:09 +0900, kazu****@obent***** wrote: > > こんにちは。藤原です。 > > kernel2.4を使って佐藤さんに教えて頂いたコマンドを実行しました。 > ----------------------------------------------------------- > load -r -b 0x400000 linux.bin > load -r -b 0x4f707c rootimage.bin > exec -c "console=ttySC1,38400" > ----------------------------------------------------------- > +**Warning** FLASH configuration checksum error or invalid key > Use 'fconfig -i' to [re]initialize database > DP83902A - eeprom ESA: 00:02:cb:01:8c:36 > .. waiting for BOOTP information > Ethernet eth0: MAC address 00:02:cb:01:8c:36 > IP: 10.117.1.216/255.255.255.0, Gateway: 0.0.0.0 > Default server: 10.117.1.79 > > RedBoot(tm) bootstrap and debug environment [ROM] > Non-certified release, version UNKNOWN - built 21:28:57, Apr 11 2004 > > Platform: Akizuki H8/3068 Network micom (H8/300H) > Copyright (C) 2000, 2001, 2002, Red Hat, Inc. > > RAM: 0x00400000-0x005f4000, [0x00400000-0x005e1000] available > FLASH: 0x00000000 - 0x00080000, 8 blocks of 0x00010000 bytes each. > RedBoot> load -r -b 0x400000 linux.bin > Using default protocol (TFTP) > Raw file loaded 0x00400000-0x004888a3, assumed entry at 0x00400000 > RedBoot> load -r -b 0x4f707c rootimage.bin > Using default protocol (TFTP) > Raw file loaded 0x004f707c-0x00566c7b, assumed entry at 0x004f707c > RedBoot> exec -c "console=ttySC1,38400" > Now booting linux kernel: > Entry Address 0x00400000 > Cmdline : console=ttySC1,38400 > Linux version 2.4.21-uc0 (ysato @ mitou) (gcc バージョン 3.3) #278 2003年 8月 13日 水曜日 00:46:59 JST (略) > Blkmem copyright 1998,1999 D. Jeff Dionne > Blkmem copyright 1998 Kenneth Albanowski > Blkmem 1 disk images: > 0: 4888A4-6F688CA3 [VIRTUAL 4888A4-6F688CA3] (RO) > Kernel panic: VFS: Unable to mount root fs on 1f:00 > > これが何を意味するかいまいち分からないのですが、DRAMの違いが原因なのでしょうか。 単純にrootimage.binを見付けられなかっただけです。 ハード的な問題ではありません。 とりあえず二番目を load -r -b 0x4888a4 rootimage.bin で動くと思います。 > 試しに rootimage.binをロードするアドレスを0x4A0000 にしてみましたが > 結果は同じでした。 > ----------------------------------------------------------- > load -r -b 0x400000 linux.bin > load -r -b 0x4A0000 rootimage.bin > exec -c "console=ttySC1,38400" > ----------------------------------------------------------- > > もうちょっとがんばってみます。 "0x4888a4"というアドレスをどうやって出してくるか説明しておきます。 uClinux-distで使う場合はこのへん隠蔽されるので、面倒な場合はそっちに逃げるの が吉。 rootimageは決められた場所に読み込む必要があるので、適当な所に読み込むと見付け てもらえなかったり、大事なデータを壊して動かなくなったりします。 で、決められた場所というのは通常 kernel の直後になります。 具体的にどこになるかはいろいろな条件によって変わるので、そのへんに書いてある ものを丸写ししてもダメです。頑張って読み取る必要があります。 以下、等幅フォントで読んでください。 1. RedBootのメッセージから拾う > RedBoot> load -r -b 0x400000 linux.bin > Using default protocol (TFTP) > Raw file loaded 0x00400000-0x004888a3, assumed entry at 0x00400000 ~~~~~~~~~~←ここが linux.bin の最終アドレス となった場合は 0x4888a3 までなので、その直後の 0x4888a4 から rootimage.bin を 読み込めばいいことになります。 2.blkdevのメッセージから拾う 探しにいく所までは必ず動くので、rootimage.binを読んでいない状態で起動して、 > Blkmem 1 disk images: > 0: 4888A4-6F688CA3 [VIRTUAL 4888A4-6F688CA3] (RO) ~~~~~~ ←ここにrootimage.binがあることを期待している。 というメッセージを探して、どこを見に行っているか調べる事が出来ます。 3.ファイルを連結して一個にする あまり更新しないならいちばんお手軽です。 どっちもべたバイナリなので、くっつけてしまえば連続して読み込まれます。 -- Yoshinori Sato <ysato****@users*****>