저는 Raspberry Pi 소스 코드와 arm64용 kexec-tools로 커널을 구축하고 Raspberry Pi 4에서 커널을 부팅했습니다.
kexec를 실행하려고 하면 출력이 생성되지 않고 0이 아닌 반환 코드로 종료되며 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 배치, 하지만 내 커널은 물리적 하드웨어로 부팅 중입니다.
내가 뭐 놓친 거 없니?
어떤 도움이라도 대단히 감사하겠습니다.
내 커널 빌드가 잘못되었나요? 이 작업을 수행하는 올바른 방법을 보여주는 문서나 게시물을 놓쳤습니까?
관심을 가져주셔서 감사합니다.