
私はRaspberry Piのソースコードとarm64用のkexec-toolsでカーネルを構築し、Raspberry Pi 4からカーネルを起動しました。
kexecを実行しようとすると、出力は生成されず、ゼロ以外の戻りコードで終了し、dmesgにエラーメッセージが発行されます。
デバッグ出力
kexecを実行すると通常出力が印刷されませんが、--debug
show 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 kernel
dmesgに表示されます。
これが何を意味するのCPUs are stuck in the kernel
か、この問題を解決するにはどうすればよいですか?私はメッセージを検索し、ほとんどがメッセージを生成したコードと未回答の質問を見つけました。
PSCIに関連していますか?
メーリングリストスレッド実際、問題が次のようなものになる可能性があることを示唆するいくつかの応答があります。PSCI。提案されたコマンドを実行すると、dmesg | grep -E 'psci|started in'
出力は生成されません。これは、私が構築したカーネルがPSCIをサポートしていないことを示しています。
この答えを理解していません。カーネル文書kvmの下にPSCIを配置しかし、私のカーネルは物理ハードウェアで起動しています。
私は何を逃したことがありませんか?
どんな助けでも大変感謝します。
私のカーネルビルドが間違っていますか?これを行う正しい方法を示す文書や投稿を見逃しましたか?
関心をお寄せいただきありがとうございます。