【问题标题】:Difficulties on emulating AT91SAM9260 embedded Linux on qemu-system-arm virt machine在qemu-system-arm virt机器上模拟AT91SAM9260嵌入式Linux的难点
【发布时间】:2020-05-18 00:52:09
【问题描述】:

我已经为 AT91SAM9260 构建了一个内核和根文件系统,并在“文件系统设置”上使用以下 buildroot 菜单选项:

还有内核构建设置,包括 at91_dt_defconfig 选项。

buildroot 的输出文件夹包含以下图像:

rootfs.cpio rootfs.ext2 rootfs.tar zImage

我尝试通过以下命令使用 qemu 启动:

qemu-system-arm -machine virt -kernel zImage -initrd rootfs.cpio -hda rootfs.ext2 -append "console=ttyS0,115200 root=/dev/sda" -serial stdio

这导致了一个空白的 qemu 屏幕。

我做错了什么?是qemu操作还是buildroot配置问题?

【问题讨论】:

    标签: linux arm kernel virtual-machine qemu


    【解决方案1】:

    问题在于,如果内核是为某个硬件编译的,那么它只会在某个 Arm 硬件上启动。否则它通常会失败,通常是在它能够输出任何有用的东西之前崩溃。这是因为(与 x86 系统不同),每个嵌入式 Arm 板和 SoC 都彼此不同,具有不同的设备、设备和位于不同地址的 RAM,等等。 QEMU“virt”板不是 AT91SAM9260,不会运行为该 SoC 构建的内核。

    您可以:

    • 构建一个旨在在“virt”板上运行的内核并运行它
    • 为您感兴趣的 SoC 编写用于 QEMU 的设备模型和 SoC 模型(请注意,这是一项大量工作;其工作量与移植 Linux 内核和为硬件编写设备驱动程序一样多; 它还需要对 QEMU 的内部有很多了解或了解很多)

    【讨论】:

      猜你喜欢
      • 2022-09-24
      • 2016-01-26
      • 2023-03-14
      • 2016-11-14
      • 1970-01-01
      • 2013-04-23
      • 1970-01-01
      • 2019-04-12
      • 2018-07-09
      相关资源
      最近更新 更多