[解決済み] Image vs zImage vs uImage
質問
両者の違いは何ですか?
u-bootがuImage形式のカーネルを必要とすることは知っています。
私が使用しているシステムは、最初にステージ 1 ローダーからブートし、その後 u-boot を呼び出します。私は、u-boot を破棄して、ステージ 1 ローダーから直接ブートしたいと思います。どのタイプのカーネルイメージを使用しなければならないのでしょうか。
どのように解決するのですか。
両者の違いは何ですか?
画像 : 一般的な Linux カーネルのバイナリイメージのファイルです。
zImage : 自己展開可能な Linux カーネルイメージの圧縮版です。
uImage
: U-Boot ラッパーを持つイメージファイル (
mkimage
ユーティリティによってインストールされます) を持つイメージファイルで、OS タイプとローダー情報を含んでいます。
非常に一般的な方法(例えば、典型的な Linux カーネルの Makefile)は、zImage ファイルを使用することです。 zImage ファイルは自己解凍型であるため (つまり、外部解凍器が不要)、ラッパーは、実際には圧縮されているにもかかわらず、このカーネルが "圧縮されていない" と表示することになります。
U-Boot の作者/メンテナンス担当者は、uImage の内部で zImage を使用する (広く普及している) ことは疑わしいと考えていることに留意してください。
実際、uImageの内部でzImageを使用するのはかなり愚かなことです。 それは 通常の(圧縮されていない)カーネルイメージを使用し、それをgzipで圧縮し、これをmkimageのpoayloadとして使用する方がはるかに良いです。 し、これを mkimage の poayload として使用します。 この方法では U-Boot が解凍を行うので、カーネルイメージに別の解凍器を入れる必要がありません。 この方法では、各カーネルイメージにさらに別の解凍器を含める代わりに、U-Boot が解凍を行います。
(引用元 https://lists.yoctoproject.org/pipermail/yocto/2013-October/016778.html )
どのタイプのカーネルイメージを使用しなければならないのでしょうか?
あなたがプログラムしたいものを選べばいいのです。
ストレージの経済性を考えると、非圧縮のものよりも圧縮された画像を選ぶべきでしょう。
カーネル (おそらく Linux カーネル) の実行には、カーネル イメージをメモリに読み込むだけでは不十分であることに注意してください。 アーキテクチャ (例: ARM) や Linux カーネルのバージョン (例: DTB あり/なし) によって、カーネルのために準備しなければならないレジスタやメモリ バッファーがあります。 ある例では、U-Boot が実行するハードウェアの初期化もあり、これは複製する必要がありました。
追記
u-bootがuImage形式のカーネルを必要とすることは知っています。
を持つだけのU-Bootのすべてのバージョンで正確です。
bootm
コマンドしかない U-Boot のすべてのバージョンに当てはまります。
しかし、より最近のバージョンの U-Boot では、このような
bootz
コマンドで zImage をブートすることができます。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例