dmesgで「カーネルにCPUがハングしました」を生成する失敗したkexecをどのように修正するのですか?

dmesgで「カーネルにCPUがハングしました」を生成する失敗したkexecをどのように修正するのですか?

私はRaspberry Piのソースコードとarm64用のkexec-toolsでカーネルを構築し、Raspberry Pi 4からカーネルを起動しました。

kexecを実行しようとすると、出力は生成されず、ゼロ以外の戻りコードで終了し、dmesgにエラーメッセージが発行されます。

デバッグ出力

kexecを実行すると通常出力が印刷されませんが、--debugshow debug messageを使用して実行すると次のことが行われます。

# kexec -s -l /media/sda1/boot/vmlinuz-rpi4barb --initrd /media/sda1/boot/initramfs-rpi4barb --reuse-cmdline --debug
arch_process_options:178: command_line: coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_headphones=1 bcm2708_fb.fbwidth=1824 bcm2708_fb.fbheight=984 bcm2708_fb.fbswap=1 smsc95xx.macaddr=DC:A6:32:09:35:A1 vc_mem.mem_base=0x3eb00000 vc_mem.mem_size=0x3ff00000  modules=loop,squashfs,sd-mod,usb-storage quiet console=tty1 console=ttyS0,115200
arch_process_options:180: initrd: /media/sda1/boot/initramfs-rpi4barb
arch_process_options:182: dtb: (null)
arch_process_options:185: console: (null)
Try gzip decompression.
Try LZMA decompression.
lzma_decompress_file: read on /media/sda1/boot/vmlinuz-rpi4barb of 65536 bytes failed
elf_arm64_probe: Not an ELF executable.

# echo $?
255

私のコアした開始(したがって一部実行ファイル)。file主張する:

# file /media/sda1/boot/vmlinuz-rpi4barb
/media/sda1/boot/vmlinuz-rpi4barb: Linux kernel ARM64 boot executable Image, little-endian, 4K pages

dmesg 出力

実行すると、kexecこの行がCan't kexec: CPUs are stuck in the kerneldmesgに表示されます。

これが何を意味するのCPUs are stuck in the kernelか、この問題を解決するにはどうすればよいですか?私はメッセージを検索し、ほとんどがメッセージを生成したコードと未回答の質問を見つけました。

PSCIに関連していますか?

メーリングリストスレッド実際、問題が次のようなものになる可能性があることを示唆するいくつかの応答があります。PSCI。提案されたコマンドを実行すると、dmesg | grep -E 'psci|started in'出力は生成されません。これは、私が構築したカーネルがPSCIをサポートしていないことを示しています。

この答えを理解していません。カーネル文書kvmの下にPSCIを配置しかし、私のカーネルは物理ハードウェアで起動しています。

私は何を逃したことがありませんか?

どんな助けでも大変感謝します。

私のカーネルビルドが間違っていますか?これを行う正しい方法を示す文書や投稿を見逃しましたか?

関心をお寄せいただきありがとうございます。

ベストアンサー1

おすすめ記事