web-dev-qa-db-ja.com

zImage、rootfsとは

私は組み込みLinuxに非常に慣れていません。ポーキービルドシステムを使用しています。カーネルを構築するには、bitbake linux-imxコマンドを使用します。これは、zImage、rootfs、uboot、およびsdcardイメージのファイルを生成します。 sdcardイメージをコピーして、カスタムボードでLinuxを実行するだけです。私の質問rootfsとzImageには実際には何が含まれていますか?

7
seereddi sekhar

すべてのファイルの原因を理解するには、MPUの起動方法を理解する必要があります。
あなたの質問からわかったように、NXP(Freescale)i.MXマイクロプロセッサフ​​ァミリーを使用しています。小さなROMローダー、基本的なシステムセットアップ(メモリへのインターフェイス、クロックツリーなど)、ブートするメディアの検索(書き込みOTPビットまたはGPIOに基づく)、ブートローダーの検索)が含まれます(あなたの場合はu-boot)データシートに指定されている正確なアドレスで、それをロードして開始します.u-bootはより多くのインターフェース(例えばイーサネット)を初期化し、カーネルに渡すべき引数を見つけます(画面設定、コンソール、ネットワーク設定) NFSを使用している場合)、カーネルをDDRにコピーしてすべての引数を渡します。カーネルはすべてのドライバをロードし、すべてのライブラリ、アプリケーションなどでrootfsを検索します。このカーネルが初期化スクリプトを開始すると、すべてのシステムが初期化され、アプリケーションが開始されます。

  1. ROMブートローダーの後にu-bootが最初に開始されます。MPUでOS(マイクロコントローラーなど)なしでベアメタルコードを実行する場合は、独自のコードに置き換えることができます。
  2. zImageは、自己解凍型のLinuxカーネルイメージの圧縮バージョンです。
  3. rootfsは、すべてのアプリケーション、ライブラリ、およびほとんどの場合、ホームフォルダを含むすべてを含むルートファイルシステムです。
  4. sdcardイメージは、カードに(ddを使用して)コピーできる上記のすべてのものです。コピー後、カーネルとデバイスツリーを含むFATパーティションとrootfsを含むEXTパーティションが表示されます。u-bootはFATの前の非パーティション領域にあります( i.MX6を使用します(0x80000です)。それはあなたの人生を楽にするためだけにあります。
8
user2564741
  • zImageは、コンパイルされたカーネルの実際のバイナリイメージです。これは、ブートローダーがロードして実行しようとするものです(組み込みLinuxではブートセクターに直接書き込まれると思います。手順については、組み込みLinuxディストリビューションのマニュアルを参照してください)。
  • rootfsは、いわゆるINITial RamDisk(initrdとも呼ばれる)イメージであり、カーネルが起動して実際のルートファイルシステムをマウントできる状態にするために必要なすべてのものが含まれています。
  • ubootは、組み込みLinuxで使用されるブートローダーです。基本的には、BIOSにzImageを実行するように指示し、zImageにルートファイルシステムの検索場所を知らせるオプションを指定して、起動方法を認識させます。

推測しなければならないのですが、以前の3つを手動で最終的なイメージに追加する必要がなくなったとしても、実際のSDカードイメージを生成するプロセスでこれらすべてのファイルが作成されるのは危険です。

4
Shadur