私は組み込みLinuxに非常に慣れていません。ポーキービルドシステムを使用しています。カーネルを構築するには、bitbake linux-imxコマンドを使用します。これは、zImage、rootfs、uboot、およびsdcardイメージのファイルを生成します。 sdcardイメージをコピーして、カスタムボードでLinuxを実行するだけです。私の質問rootfsとzImageには実際には何が含まれていますか?
すべてのファイルの原因を理解するには、MPUの起動方法を理解する必要があります。
あなたの質問からわかったように、NXP(Freescale)i.MXマイクロプロセッサファミリーを使用しています。小さなROMローダー、基本的なシステムセットアップ(メモリへのインターフェイス、クロックツリーなど)、ブートするメディアの検索(書き込みOTPビットまたはGPIOに基づく)、ブートローダーの検索)が含まれます(あなたの場合はu-boot)データシートに指定されている正確なアドレスで、それをロードして開始します.u-bootはより多くのインターフェース(例えばイーサネット)を初期化し、カーネルに渡すべき引数を見つけます(画面設定、コンソール、ネットワーク設定) NFSを使用している場合)、カーネルをDDRにコピーしてすべての引数を渡します。カーネルはすべてのドライバをロードし、すべてのライブラリ、アプリケーションなどでrootfsを検索します。このカーネルが初期化スクリプトを開始すると、すべてのシステムが初期化され、アプリケーションが開始されます。
zImage
は、コンパイルされたカーネルの実際のバイナリイメージです。これは、ブートローダーがロードして実行しようとするものです(組み込みLinuxではブートセクターに直接書き込まれると思います。手順については、組み込みLinuxディストリビューションのマニュアルを参照してください)。rootfs
は、いわゆるINITial RamDisk(initrdとも呼ばれる)イメージであり、カーネルが起動して実際のルートファイルシステムをマウントできる状態にするために必要なすべてのものが含まれています。uboot
は、組み込みLinuxで使用されるブートローダーです。基本的には、BIOSにzImage
を実行するように指示し、zImage
にルートファイルシステムの検索場所を知らせるオプションを指定して、起動方法を認識させます。推測しなければならないのですが、以前の3つを手動で最終的なイメージに追加する必要がなくなったとしても、実際のSDカードイメージを生成するプロセスでこれらすべてのファイルが作成されるのは危険です。