使用 QEMU 模拟树莓派

Jon*_*rin 8 arch-linux qemu raspberry-pi raspbian

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

./qemu-system-arm -M多功能pb -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 映像和相同的命令时遇到了同样的问题。我究竟做错了什么?

Jon*_*rin 6

  • 首先,我必须使用另一个内核,kernel-qemu我在这里找到

  • 然后,我可以使用 QEMU 1.7.1让它工作:

    使用树莓派:

    ./qemu-system-arm -kernel /path/to/kernel-qemu -cpu arm1176 -m 256 -M allowedpb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda /path/to/2013-12-20-wheezy-raspbian.img

    使用 Arch Linux,我必须:

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

      ./qemu-system-arm -kernel /path/to/kernel-qemu -cpu arm1176 -m 256 -M allowedpb -no-reboot -serial stdio -append " root=/dev/ sda5 panic=1 rootfstype=ext4 rw init =/bin/bash " -hda /path/to/ArchLinuxARM-2014.06-rpi.img

      (注意这里加的是init=/bin/bash,Arch Linux需要root=/dev/sda5而不是sda2)

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

      # <file system> <dir>   <type>  <options>       <dump>  <pass>
      /dev/sda1       /boot   vfat    defaults        0       0
      
      Run Code Online (Sandbox Code Playgroud)
    3. 开始正常使用:

      ./qemu-system-arm -kernel /path/to/kernel-qemu -cpu arm1176 -m 256 -M allowedpb -no-reboot -serial stdio -append "root=/dev/sda5 panic=1 rootfstype=ext4 rw" -hda /path/to/ArchLinuxARM-2014.06-rpi.img

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

    ./qemu-system-arm -kernel path/to/kernel-qemu -cpu arm1176 -m 256 -M allowedpb -no-reboot -serial stdio -append " console=ttyAMA0 root=/dev/sda5 rootfstype=ext4 rw" - hda /path/to/ArchLinuxARM-2014.06-rpi.img

    (请注意,我使用console=ttyAMA0指定了控制台)

  • 我在回答中使用的是 [here](https://mega.co.nz/#!ZphGyAhI!vunA1J_wskcUJd9VDKmrImDOyKWY30lQM4g_TxPeaXA) (2认同)