使用 QEMU 模拟 RaspberryPi

使用 QEMU 模拟 RaspberryPi

我想使用 QEMU 在我的 MacOSX 上运行 RaspberryPi 系统。我尝试了以下操作,使用本教程:

./qemu-system-arm -M Versatilepb -cpu arm1176 -m 256 -hda ArchLinuxARM-2014.06-rpi.img -kernel kernel.img -append "root=/dev/sda" -serial stdio

ArchLinuxARM-2014.06-rpi.img我的 RPi 图像在哪里并且kernel.img准确地来自ArchLinuxARM-2014.06-rpi.img(我复制了它,但我不确定这是一个绝妙的主意)。

结果我得到了两个 QEMU 窗口。其中一个有“机器”和“查看”菜单,黑屏显示以下消息:

访客尚未初始化显示器(尚未)。

第二个只是一扇黑色的窗户。

我使用 Raspbian 图像和相同的命令遇到了同样的问题。我究竟做错了什么?

答案1

  • 首先,我必须使用kernel-qemu我发现的另一个内核这里

  • 然后,我就能让它发挥作用使用 QEMU 1.7.1:

    使用树莓派:

    ./qemu-system-arm -kernel /path/to/kernel-qemu -cpu arm1176 -m 256 -MVersatilepb -no-reboot -serial stdio -append“root=/dev/sda2panic=1rootfstype=ext4rw” -hda /path/to/2013-12-20-wheezy-raspbian.img

    使用 Arch Linux,我必须:

    1. 使用以下命令以终端模式启动(但不确定是否有必要):

      ./qemu-system-arm -kernel /path/to/kernel-qemu -cpu arm1176 -m 256 -MVersatilepb -no-reboot -serial stdio -append“根=/dev/sda5恐慌 = 1 rootfstype = ext4 rw初始化=/bin/bash“ -hda /path/to/ArchLinuxARM-2014.06-rpi.img

      (注意初始化=/bin/bash这里添加了,Arch Linux 需要根=/dev/sda5而不是 sda2)

    2. 修改/etc/fstab如下(分区错误):

      # <file system> <dir>   <type>  <options>       <dump>  <pass>
      /dev/sda1       /boot   vfat    defaults        0       0
      
    3. 正常启动使用:

      ./qemu-system-arm -kernel /path/to/kernel-qemu -cpu arm1176 -m 256 -MVersatilepb -no-reboot -serial stdio -append“root=/dev/sda5panic=1rootfstype=ext4rw” -hda /path/to/ArchLinuxARM-2014.06-rpi.img

  • 我终于意识到我可以使用最新版本QEMU (2.1.1),但我必须指定控制台输出:

    ./qemu-system-arm -kernel 路径/到/kernel-qemu -cpu arm1176 -m 256 -MVersatilepb -no-reboot -serial stdio -append "控制台=ttyAMA0root=/dev/sda5 rootfstype=ext4 rw" -hda /path/to/ArchLinuxARM-2014.06-rpi.img

    (请注意,我使用指定的控制台控制台=ttyAMA0

相关内容