非圧縮のカーネルイメージを使用して、BeagleBoardを起動したい。通常、私はuImageを使用して、圧縮形式のカーネルを起動します。圧縮されていないカーネルイメージを使用するにはどうすればよいですか?
私の知る限り、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
上記の例のgzipをnoneに変更すると、u-Boot互換の非圧縮イメージが作成されます。
Buildrootを使用している場合は、uImage
カーネル出力ファイル(BR2_LINUX_KERNEL_UIMAGE=y
)を選択します。通常にコンパイルすると、Buildrootは中間ステップでvmlinux
ファイルも作成します。 vmlinux
ファイルは/output/images
ディレクトリにコピーされませんが、./output/build/linux-custom/
で見つけることができます(またはfind . -name "vmlinux"
を実行して)。