narita
2017年9月19日 15時08分
お世話になっております。
G3Lにおきまして、カスタムイメージを作成中なのですがrebootを行うとリカバリブートになります。
カスタムイメージはoverlayfsをONにしたカーネルとオリジナルアプリケーションを入れたユーザーランド
でSDブートによるインストールを行っています。
SDブート後、ブートローダーの書き換え
第1パーティションにuImageとdtbファイルの書き込み
第2パーティションにユーザーランド
第3パーティションにリカバリーイメージ を書き込んで再起動を実施します
初回起動は問題なく起動してnode-eyeによりSACMにも接続されます
起動完了後rebootコマンドで再起動を行うと、リカバリブートで起動されます
MMCの第1パーティションにあるboot_stateの内容は1,0,になっており
ファイルを削除すると正常に起動できます。
u-bootでの起動時の問題と思いますが、boot_stateの内容とファーム異常の判断基準を
教えてください。
コメント
narita
at_koseki
古関です。
自己解決できてしまったようですが、回答したします。
> boot_stateを内容 1,1, としてあらかじめMMCの第1パーティションに
> 配置することで、reboot、powroffを繰り返しても正常に稼働するようになりました
> 対策として問題あるでしょうか
はい。問題ありません。
node-eyeパッケージのソースコード内に、boot_stateの記載があり
1,1,にすれば通常起動するようになります。
# Selection MAIN or RECOVERY kernel image
#| try | success | stete |
#|-----+---------+-------------------------------------------|
#| 0 | 0 | First time boot; try=1, main boot |
#| 1 | 1 | Successfully boot before; main boot |
#| 1 | 0 | Failed boot before; recovery boot |
#| 0 | 1 | Invalid "boot_state"; recovery boot |
> mountポイントの'on / 'と/dev/mmcblk2p2で判断しているようですがoverlayfsを有効にしたため機能しなかったようです。
> スクリプト内の記述を 'on / 'から'on /overlay/system 'に変更することで対応したいともいます。
> 問題が有るようでしたらご指摘ください。
overlayfsを有効にした場合の実装が不十分でした。申し訳ありません。
この対応で問題ありません。
'on / 'から'on /overlay/system 'への変更よりは、OR条件の方がベターかと思います。
製品アップデートで修正したいと思います。
よろしくおねがいします。
narita
2017年9月19日 16時52分
自己レスで申し訳ありません
boot_stateを内容 1,1, としてあらかじめMMCの第1パーティションに
配置することで、reboot、powroffを繰り返しても正常に稼働するようになりました
対策として問題あるでしょうか