画像vszImage vs uImage


83

それらの違いは何ですか?

u-bootにはuImage形式のカーネルが必要であることを私は知っています。

私が使用するシステムは、最初にステージ1ローダーから起動し、次にu-bootを呼び出します。u-bootを破棄し、ステージ1ローダーから直接起動したい。どのタイプのカーネルイメージを使用する必要がありますか?


electronics.stackexchange.com/questions/106958/… この文脈で私を助けてくれませんか?
user3217310 2014

あなたの問題は、BOOT.BINファイルを作成する際に従う方法にあるようです。私もZedBoardを使用していますが、そのような問題には直面していません。
yildizabdullah 2014

ええ、私は間違ったバージョンのu-boot.elfを使用してBOOT.binを作成していました
user3217310

回答:


116

それらの違いは何ですか?

イメージ:一般的なLinuxカーネルのバイナリイメージファイル。

zImage:自己解凍型のLinuxカーネルイメージの圧縮バージョン。

uImage:OSタイプとローダー情報を含むU-Bootラッパー(mkimageユーティリティによってインストールされる)を持つイメージファイル。
非常に一般的な方法(たとえば、一般的なLinuxカーネルのMakefile)は、zImageファイルを使用することです。zImageファイルは自己解凍型であるため(つまり、外部の解凍機能は必要ありません)、ラッパーは、実際には圧縮されていても、このカーネルが「圧縮されていない」ことを示します。


U-Bootの作成者/保守担当者は、uImage内でzImageを使用することの(広範囲にわたる)使用を疑わしいと見なしていることに注意してください。

実際、uImage内でzImageを使用するのはかなりばかげています。通常の(圧縮されていない)カーネルイメージを使用し、gzipのみを使用して圧縮し、これをmkimageのpoayloadとして使用することをお勧めします。このようにして、U-Bootは、各カーネルイメージにさらに別のアンコンプレッサを含める代わりに、圧縮解除を実行します。

https://lists.yoctoproject.org/pipermail/yocto/2013-October/016778.htmlから引用)


どのタイプのカーネルイメージを使用する必要がありますか?

プログラムしたいものは何でも選択できます。
ストレージを節約するために、圧縮されていないイメージよりも圧縮されたイメージを選択する必要があります。
カーネル(おそらくLinuxカーネル)の実行には、カーネルイメージをメモリにロードするだけでは不十分であることに注意してください。アーキテクチャ(例:ARM)とLinuxカーネルのバージョン(例:DTBの有無にかかわらず)に応じて、カーネル用に準備する必要のあるレジスタとメモリバッファがあります。ある例では、U-Bootが実行したハードウェアの初期化もあり、複製する必要がありました。

補遺

u-bootにはuImage形式のカーネルが必要であることを私は知っています。

これは、bootmコマンドしかないU-Bootのすべてのバージョンで正確です。
ただし、最近のバージョンのU-Bootには、zImageを起動できるbootzコマンドが含まれている場合もあります。


1
私の理解できないのは、zImage =圧縮画像uImage =画像+ uBootラッパーです。間違っている場合は修正してください。uBootラッパーにはuBootヘッダーと、ブートデバイスのロードアドレス、エントリポイントなどの追加情報が含まれていますが、全体を示す参照が見つかりませんでした。 uImageのフォーマットについてリンクを共有して
いただけ

フィードバックをありがとうございます。uImageヘッダー形式に関するリソースを見つけました。私が理解していなかったのは:1-ロードアドレス(ブートデバイスのロードアドレス)とuImageのエントリポイント(ヘッダーには存在しません)を見つけることができます2-zImageにはこれらの情報が含まれていますか(ロードアドレス)およびエントリポイント)、これらがzImageとuImageの両方のフォーマットについて質問している理由です
Mouin 2017

「私が理解していなかったこと...」 -コメントで議論を始めようとしないでください。新しい質問を投稿してください。
おがくず2017

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.