저는 Freescale ts-4900 보드를 사용하고 있습니다. Qemu에서 커널 및 루트 파일 시스템(initrd)을 부팅할 수 없습니다. 다음 커널 구성 단계를 수행했습니다.
- 크로스 컴파일러 부분 내보내기
- 내보내기 LOADADDR=0x10008000
- esse_defconfig를 만드세요
- menuconfig ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-를 만드세요.
- ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-uImage로 만듭니다.
이미지를 찾았 /arch/arm/boot/uImage
으며 작동 중인 루트 파일 시스템(initrd)이 있습니다.
이제 다음 단계를 사용하여 Qemu를 시작하려고 합니다.
qemu-system-arm -M vexpress-a9 -cpu cortex-a9 -kernel uImage -initrd /home/mahesh/mahesh/ts_4900/initrd.
그런 다음 오류가 있습니다.
답변1
vexpress-a9 보드에는 주소 0x10008000에 RAM이 없으므로 커널이 그곳에서 실행을 시도할 때 실행되지 않습니다.
보다 일반적으로는 하나의 Arm 보드에 대한 커널을 빌드한 다음 다른 Arm 보드의 QEMU 모델을 사용하여 실행하려고 하는 것으로 보입니다. 이것은 작동하지 않습니다. 에뮬레이트된 하드웨어를 사용하는 경우를 포함하여 커널이 실행될 하드웨어에 맞게 커널을 올바르게 구성해야 합니다. 그렇지 않으면 커널은 일반적으로 출력 없이 즉시 충돌합니다(직렬 포트도 찾을 수 없기 때문입니다).