この質問は以前に尋ねられましたが、答えられていません。
圧縮されていないRTEMSELFファイルを起動しようとしています
> qemu-system-x86_64 -kernel ./rtems-elf.exe
結果は
qemu-system-x86_64: Error loading uncompressed kernel without PVH ELF Note
私はrtemsRTOS用に多くのカーネルを構築しましたが、サニティチェックのために、rtemsから例を起動してみたので、理想的にはコードに問題はないはずです。また、非圧縮のLinuxカーネル(リアルタイムおよび通常)を起動しようとしましたが、同じエラーが発生します。
いくつかの有用な情報:
> file rtems-elf.exe
hello.exe: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, with debug_info, not stripped
> qemu-system-x86_64 --version
QEMU emulator version 4.0.0
Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers
ホスト-ArchLinux x86_64
他のいくつかの試み:
この例は、PREEMPT_RT Linuxパッチを適用したリアルタイムLinuxカーネルです。bzImageがありますが、非圧縮カーネルを起動するqemuの機能をテストしました。
> file vmlinux
vmlinux: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=fd95cdeb00595f6742b0a41eda4f0c33172588fe, not stripped
> qemu-system-x86_64 -kernel ./vmlinux -append "--console=/dev/com1" -serial stdio -vga cirrus
qemu-system-x86_64: Error loading uncompressed kernel without PVH ELF Note
ありがとう、私が何かを逃したかどうか私に知らせてください
同じトピックの別のスレッドがここにあります https://stackoverflow.com/questions/55688241/qemu-error-loading-uncompressed-kernel-without-pvh-elfnote しかし、これは壊れたリンクです
そしてここ QEMU:非圧縮カーネルのロードエラー しかし、これは答えられておらず、私はそれを再び立ち上げると思いました
QEMU> = 4.0は、PVHヘッダーを使用してx86_64ELFイメージを起動できます。 Linux> = 4.21は構成フラグを提供します (CONFIG_PVH=y
vmlinux ELFイメージでそのヘッダーを有効にするには、Linux構成ファイルで有効にする必要があります。
QEMU x86/HVMダイレクトブートABIで定義されたPVHエントリポイントが必要 x86_64ELFイメージをブートします。 x86/HVMダイレクトブートABIは当初Xenゲスト用に開発されましたが、QEMUとLinuxの両方で最新の変更が加えられたため、QEMUは同じエントリポイントを使用してゲストを起動できますKVM)。