uImageの代わりにvmlinuxを使用できますか?

uImageの代わりにvmlinuxを使用できますか?

圧縮されていないカーネルイメージを使用してBeagleBoardを起動したいです。通常、私はuImageを使用して圧縮形式でカーネルを起動します。圧縮されていないカーネルイメージを使用するには?

答え1

私が知っている限り、U-Bootは「raw」ELFイメージを直接起動できません(vmlinux)。これをuImage圧縮形式とカーネルロードアドレスを記述する追加のバイトを含むvmlinuxメタデータに変換する必要があります。U-Boot FAQ 2.19U-Bootソースツリーのユーティリティを使用すると、非常に簡単にビルドする方法を説明できますuImagemkimage

 mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage

(ロードアドレスを示すために追加のパラメータが必要な場合があります。)

答え2

 mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage

変化アーカイブ上記の例ではまったく、u-Bootと互換性のある非圧縮画像を作成します。

答え3

Buildrootを使用している場合は、uImageカーネル出力ファイル(BR2_LINUX_KERNEL_UIMAGE=y)を選択してください。正常にコンパイルすると、Buildrootはvmlinux中間段階でもファイルを生成します。vmlinuxファイルはファイル/output/imagesを見つけることができるディレクトリにコピーされませんが./output/build/linux-custom/(またはを実行してfind . -name "vmlinux"

関連情報