我使用的是飞思卡尔 ts-4900 板。我无法在 Qemu 中启动内核和根文件系统 (initrd)。我执行了以下内核配置步骤。
- 导出交叉编译器部分
- 导出 LOADADDR=0x10008000
- 制作 esse_defconfig
- make 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 模型运行它。这是行不通的。您必须为要运行内核的硬件正确配置内核,包括如果您使用的是模拟硬件。否则内核通常会立即崩溃而没有任何输出(因为它甚至无法找到串行端口)。