godmacchi
2016年2月2日 13時21分
お世話になっております。
マニュアルの16項に従ってSDブートを試しております。SDカードはSONY SDHC SF32UYです。一通り設定して起動はうまくいったのですが、保守モードからOS自動起動モードに切り替えて電源投入したところ、hermitが立ち上がり以下のエラーメッセージが出ました。
mmcsd: No MMC/SD card connected.
failed image loading from 'mmcblk0p2' device.
そのままhermit上でbootを入力すると正常に起動しました。setenvとsetbootdeviceはマニュアルに従った設定にしております。
試しに、以下のパターンを試しまして、結果は以下のとおりでした。
1.Flashブート/SDファイルシステム/SDカーネルイメージ:NG
2.Flashブート/SDファイルシステム/Flashカーネルイメージ:OK
3.Flashブート/Flashファイルシステム/Flashカーネルイメージ:OK
メッセージの内容はカードが無いということなのですが、bootを入力すると立ち上がるのと、カーネルイメージの読込先を変えると立ち上がるので、mmcblk0p2/boot/linux.bin.gzが認識されるのが遅いのではないかと感じています。何か対処方法はありませんでしょうか?
なお、Hermit-Atのバージョンはv.3.7.0です。
コメント
godmacchi
早速の返信ありがとうございます。
試しましたところ、結果は同じエラーが起きて、hermit>でストップです。
その後、boot手動入力で起動します。
もう一つ気づいたことがありました。自動起動モードでは最初に書いた挙動なのですが、同じ設定で再度保守モードで立ち上げてそのままbootコマンドを入力すると下記のとおり少し違うメッセージになりました。
mmcsd: No MMC/SD card connected.
failed image loading from 'mmcblk0p2' device.
-NG invalid argument
上記メッセージ表示後に、もう一度bootを入力すると正常に起動します。
at_yuma.arakawa
godmacchi
ログを添付します。
全てSDカードから起動しているものを0.logとして、最初に書きましたケース番号に対応して1.log~3.logになっています。追加で実施したケースを4.logにしました。最初に保守モードで立ち上げて設定を変更し、一度OSを立下げて自動起動モードに切り替えた上で電源を入れています。立下げの所からのログになっております。
ファイル | ファイルの説明 |
---|---|
0.log | SDブート/SDファイルシステム/SDカーネル |
1.log | Flashブート/SDファイルシステム/SDカーネル |
2.log | Flashブート/SDファイルシステム/Flashカーネル |
3.log | Flashブート/Flashファイルシステム/Flashカーネル |
4.log | Flashブート/Flashファイルシステム/SDカーネル |
at_yashi
ログありがとうございます。
カーネルをSDからロードするときに失敗しているみたいです。
ログから推測するに、SDカードへのアクセスが早い場合に
失敗するように思います。
電源が入ってから SDカードが反応できるようになるまでの時間が
長いのでしょうか。他のカードだと挙動が変わったりしますか?
カードの電源を入れてから、10ms 待っている部分を 100ms 待つようにした
bootloader を作ってみました。添付しておくので、試してみてください。
ファイル | ファイルの説明 |
---|---|
loader-100ms.bin |
godmacchi
at_yashi
godmacchi
godmacchi
godmacchi
at_kojiro.yamada
2016年2月2日 14時46分
> そのままhermit上でbootを入力すると正常に起動しました。setenvとsetbootdeviceはマニュアルに従った設定にしております。
> 試しに、以下のパターンを試しまして、結果は以下のとおりでした。
> 1.Flashブート/SDファイルシステム/SDカーネルイメージ:NG
> 2.Flashブート/SDファイルシステム/Flashカーネルイメージ:OK
> 3.Flashブート/Flashファイルシステム/Flashカーネルイメージ:OK
Flashブート/Flashファイルシステム/SDカーネルイメージ
のパターンはどうなるのでしょうか?
以下のように設定できるので試してみてください。