シリアルコンソールを接続しtftpブートなどを試みた際、ブートに失敗し
*** Warning: no boot file name; using '960BA8C0.img' Using egiga0 device TFTP from server (tftpサーバーのIPアドレス); our IP address is (玄箱PROのIPアドレス) Filename '960BA8C0.img'. Load address: 0x0 Loading: * TFTP error: 'File not found.' (1) Starting again
というエラーを繰り返す場合がある。
どのような状況でこのエラーが出現し、どのように対処すればいいのかを検証する。
どのような状況でこのエラーが出現し、どのように対処すればいいのかを検証する。
960BA8C0.imgとは何か
U-Boot.jpにU-Bootコマンドマニュアルがあり、その中で以下のような記述がある。
filename:ロードするファイルです。
省略された場合は、環境変数bootfileの値、環境変数bootfileが設定されていない場合、<自分のIPアドレス>.imgを使います。
<自分のIPアドレス>の部分は、IPアドレスを16進で表記して、並べたものです。例えば、192.168.3.202を16進で表記すると、C0.A8.03.CAとなりますので、"CA03A8C0.img"を探しに行きます。
つまり、U-Bootがロードすべきカーネルを自身により発見できなかった場合、「<自分のIPアドレス>.img」というファイルをカーネルとして探すようになっている。
この際、「自分のIPアドレス」とは初期状態(正しくは『DHCPにより取得できなかった場合』)の「192.168.11.150」を指す。
上記のように、192.168.11.150を16進数で表記すると「960BA8C0」となる。
この際、「自分のIPアドレス」とは初期状態(正しくは『DHCPにより取得できなかった場合』)の「192.168.11.150」を指す。
上記のように、192.168.11.150を16進数で表記すると「960BA8C0」となる。
なぜ発生するのか
ユーザーがカーネルを指定しているにもかかわらずU-Bootがカーネルを見つけることができない、という意味は「指定内容が間違っている」ということだ。
しかしそれ以外に、コンソールを接続する基板(ドーターボード)の不良でこのエラーが発生した事例もある。
しかしそれ以外に、コンソールを接続する基板(ドーターボード)の不良でこのエラーが発生した事例もある。