GNU/Linux >> Linux の 問題 >  >> Linux

起動ステップで MLO が必要なのはなぜですか?

eLinux.org から:

<ブロック引用>

http://elinux.org/Panda_How_to_MLO_%26_u-boot

第 1 段階のブートローダは、電源投入からボード上で直接実行されます。このブートローダの名前はわかりません (TI の公式 wiki では、Boot Rom と呼ばれています)。このブートローダーは、最小限の CPU とボード ハードウェアを初期化し、SD カード (FAT 形式である必要があります) の最初のパーティションにアクセスし、「MLO」と呼ばれるファイルをロードして実行します。 「MLO」は第 2 段階のブートローダーです。

第 2 段階のブートローダーは、明らかに X-loader または SPL のいずれかです。このブートローダも、SD カードの最初のパーティションを読み取り、「u-boot.bin」というファイルをロードして実行するようです。 「u-boot.bin」は第 3 段階のブートローダーです。

第 3 段階のブートローダーは U-Boot で、さまざまな組み込みボードや製品で人気のあるブートローダーです。このブートローダには、インタラクティブ シェル、変数、SD カードにアクセスしてその内容を表示する機能など、さまざまな機能がたくさんあります。次に何が起こるかは、パンダ ボード用の U-Boot のバージョンと、それがどのように構成されているかによって異なります。非常に単純な構成では、U-Boot は SD カードの最初のパーティション (これも FAT パーティションとしてフォーマットする必要があります) のルートでファイル「uImage」を探し、それを実行します。これは Linux カーネルです。 U-Boot はカーネルにコマンド ライン引数を渡します。カーネルの構成方法に応じて、U-Boot からのコマンド ラインを受け入れるか、ビルド時にコンパイルされたものを使用します。

これは「パンダ ボードの問題」であり、一般的な Linux には必ずしも当てはまりません。

ただし、ほとんどのすべて システムには、上記のような「マルチステージ」ブートがあります。たとえば、Windows を実行している PC を起動すると、次のように表示されます。

<オール>
  • BIOS の起動
  • ブート セクタはディスクまたは USB からロードされます。または PXE ブート レコードがネットワークから読み込まれる
  • Windows カーネルが起動します (「スプラッシュ スクリーン」の前/最中に表示されるもの)
  • 最後に「Windows」自体が起動します
  • したがって、それは「非効率的」でも珍しいことでもありません。

    PS:このリンクには、ブート ロード シーケンスの適切な説明もあります:

    • http://omappedia.org/wiki/Bootloader_Project

    PPS:「MLO」は「Mmc ローダー」の略です


    ボードが起動したら、CPU が SDRAM の使用を開始する前に、メモリ管理ユニット (MMU) をセットアップする必要があります。 SoC には、その時点で使用できる 56KB の SRAM がありますが、u-boot を実行するには小さすぎます。余分なステップとして、SRAM から実行されるコードが読み込まれ、u-boot が開始されます。


    Linux
    1. なぜCdはプログラムではないのですか?

    2. Ubuntu – Ubuntu 12.04でDockerコンテナが起動スクリプト付きで起動しないのはなぜですか?

    3. ブートローダーはどのパーティションにインストールされていますか?

    1. Linux で 100MB の ext2 ブート パーティションが推奨されるのはなぜですか?

    2. ext4 で大文字と小文字を区別しないオプションが必要だったのはなぜですか?

    3. ブートのたびに /var/run/sshd が見つからないのはなぜですか?

    1. Df対Du:なぜそんなに違いがあるの??

    2. 暗号化されたLvmボリューム(luksデバイス)が起動時にマウントされないのはなぜですか?

    3. init に加えて、Linux デバイスドライバーでプローブメソッドが必要なのはなぜですか?