web-dev-qa-db-ja.com

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

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

9
Sharanya

私の知る限り、U-Bootは「生の」ELFイメージ(vmlinux)を直接起動できません。これをuImage形式に変換する必要があります。これには、圧縮されたvmlinuxに加えて、カーネルロードアドレスを説明するメタデータの数バイトが含まれています。 -Boot FAQ 2.19 は、uImageの生成方法を説明しています。U-Bootのmkimageユーティリティを使用すると、かなり簡単ですソースツリー:

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

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

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

上記の例のgzipnoneに変更すると、u-Boot互換の非圧縮イメージが作成されます。

3
Jim Davis

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

1
spearson