
修正した Linux カーネルがあり、これをハイパーバイザー上で実行したいと考えています。これまでは常に uImage を使用してきましたが、ハイパーバイザーのスクリプトには実行可能ファイルが必要です。Linux ソース コードからバイナリ実行可能ファイルを作成するにはどうすればよいでしょうか? ビルド後に作成される vmlinux は最終的なバイナリ実行可能ファイルですか?
答え1
vmlinux はバイナリではなく ELF ファイルです。
カーネルビルドにより、バイナリファイルである zImage が作成されることがあります。ARM
$kernel/arch/arm/boot/zImage
の場合は、ここで見つけることができます。zImage は zip 圧縮されたバイナリファイルであり、zImage の先頭にヘッダーが添付されていることに注意してください。このヘッダーにより、zImage は単独で解凍できます。
zImage を実行するには、pc (プログラム カウンター) を zImage の最初のポイントに移動する必要があります。