대상이 arm-softmmu
및 arm-linux-user
인 소스에서 qemu를 빌드합니다. 팔을 위해 컴파일 된 간단한 바이너리를 가지고 있지만 qemu 변환기를 사용하여 실행하면 FATAL: kernel is too old
이됩니다. 나는 커널 2.6.32와 함께 x86_64 호스트에서 qemu를 실행 중이다. 무엇이 문제 일 수 있습니까?Qemu 번역기가 너무 오래되었습니다.
1
A
답변
1
바이너리를 빌드하는 데 사용한 C 라이브러리는 게스트 커널보다 훨씬 새롭습니다.
qemu-system-x86_64 -kernel vmlinux -initrd rootfs.cpio.gz
를 그것이 있어야하는 동안 : I이 실행 되었기 때문에
1
나는이 오류가 발생했습니다
bzImage
가
arch/x86/boot/bzImage
에 위치
qemu-system-x86_64 -kernel bzImage -initrd rootfs.cpio.gz
.
그래서 ARM 바이너리에 정적으로 링크 된 c 라이브러리가 ARM 바이너리가 실행되지 않는 x86 시스템의 c 라이브러리보다 최신 버전입니까? 필자의 경우, ARM libc 라이브러리에 링크 된 2.18이고, 실행중인 x86 시스템 라이브러리에는 libc 2.19 (및 이전 2.17)이 있으며 gcc 4.8.x를 사용하므로 다른 원인이 있어야합니다. – simpleuser