私は完全なアップグレードが可能な組み込みプロジェクトを進めています。場合によっては、アップグレードするにはすべてを再インストールする必要があります。これは非常に危険なことなので、アップグレードを再試行することができる緊急安全フォールバックモードの種類を持ちたいと思います。
別のアップグレードを試してみるのに十分な、非常に基本的なコアを追加するつもりです。常にこのプライマリカーネルで起動し、GPIOを確認してから別のカーネルから起動するか、GPIOの状態に応じて起動を続行したいと思います。そのGPIOに信号を送るためにケースにボタンを設置します。
ブートローダがどのように機能するかわからず、grub / syslinuxはAFAIKでは利用できません。
そのようなことは可能ですか?問題をあまりにも複雑にしていますか?
答え1
Linuxブートローダは、少なくともカーネルをロードし、カーネルにロードする場所を示すいくつかのパラメータを渡す必要があります。多くの設定にはコマンドラインと初期RAMドライブを渡す機能も必要ですが、既知のハードウェア設定を持つ組み込みシステムではこれが重複する可能性があります。
安定したブートローダを取得する最良の方法は、利用可能なブートローダを使用することです。 Linuxブートローダ(U-Bootまたは組み込みシステムのすべて)をチェーンロードし、フォールバックメカニズムを持つことができる固定構成のシンプルな1段階ブートローダを持っています。 U-Boot自体は代替メカニズムを実装できます。 - 参照U-Bootユーザーメーリングリストの「U-Bootでのブートイメージフォールバックの実装」と重複画像xpedite5370を例に挙げましょう。