2016-10-29 2 views
0

x86_64에 qemu 2.7.0을 빌드했습니다. 우분투 14.04. 실행 aarch64 또는 arm 손님QEMU 빌드가 aarch64 및 arm 이미지 실행에 실패합니다.

qemu/build/aarch64-softmmu$ ./qemu-system-aarch64 -M virt -boot d -cdrom ~/debian-8.6.0-arm64-netinst.iso 
VNC server running on 127.0.0.1:5900 
qemu-system-aarch64: Trying to execute code outside RAM or ROM at 0x0000000008000000 
This usually means one of the following happened: 

(1) You told QEMU to execute a kernel for the wrong machine type, and it crashed on startup (eg trying to run a raspberry pi kernel on a versatilepb QEMU machine) 
(2) You didn't give QEMU a kernel or BIOS filename at all, and QEMU executed a ROM full of no-op instructions until it fell off the end 
(3) Your guest kernel has a bug and crashed by jumping off into nowhere 

This is almost always one of the first two, so check your command line and that you are using the right type of kernel for this machine. 
If you think option (3) is likely then you can try debugging your guest with the -d debug options; in particular -d guest_errors will cause the log to include a dump of the guest register state at this point. 

Execution cannot continue; stopping here. 

및 VNC 서버는 게스트 tries to execute code outside RAM or ROM at ... 전에 약 7 초 동안 거의 즉시 시작하고 하나의 CPU 활동 스파이크, 다음과 같은 오류와 함께 실패합니다. 게스트에는 Debian 8.0 및 CentOS 7이 포함됩니다.

이 문제를 해결하기위한 제안 요청.

답변

0

이 질문에 대한 답은 사용자가 인용 한 오류 메시지입니다. 현재 상황 (2)에 있습니다 - 커널 또는 BIOS 파일 이름을 제공하지 않았습니다.

명령 줄의 다른 문제는 64 비트 ARM 디스크 이미지를 전달했지만 64 비트 CPU를 사용하도록 지정하기 위해 -cpu를 사용하지 않았기 때문입니다. 'virt'보드의 기본값은 32 비트 CPU 인 'cortex-a15'입니다.

+0

감사합니다. @Peter. Debian 8.0 armhf를 qemu-system-arm으로 사용하는 경우와 동일합니다. – kesari

+0

이렇게하면 CPU 문제는 피할 수 있지만 BIOS 나 커널 중 하나를 제공해야합니다. qemu-system-x86과 달리 ARM 타겟 용 QEMU는 기본적으로 BIOS 이미지를 실행하지 않으므로 기본적으로 디스크 이미지에서 커널을 가져올 수 없습니다. BIOS 이미지 (일반적으로 UEFI)를 제공하거나 직접 커널을 QEMU로 전달해야합니다. –

+0

Qemu에 BIOS를 지정하는 데 도움이되는 리소스를 가르쳐 주시겠습니까? UEFI가 아닌 환경을보고 있습니다. – kesari

관련 문제