web-dev-qa-db-ja.com

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(私はそれをコピーしましたが、すばらしいアイデアだったとは思いません)。

結果として2つのQEMUウィンドウが表示されます。 1つは「マシン」と「表示」メニュー、および次のメッセージを示す黒い画面です。

ゲストはまだディスプレイを初期化していません。

2つ目は、単に黒いウィンドウです。

Raspbianイメージと同じコマンドを使用して同じ問題が発生しました。何が悪いのですか?

8
JonasVautherin
  • まず、別のカーネルkernel-qemuを使用する必要がありました here

  • それから、私はそれを動作させることができますQEMU 1.7.1を使用して

    Raspbianの場合:

    ./qemu-system-arm -kernel/path/to/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -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 versatilepb -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にはsda2の代わりにroot =/dev/sda5が必要です)

    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 -M versatilepb -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 versatilepb -no-reboot -serial stdio -append "console = ttyAMA root =/dev/sda5 rootfstype = ext4 rw "-hda /path/to/ArchLinuxARM-2014.06-rpi.img

    (コンソールをconsole = ttyAMAを使用して指定したことに注意してください)

6
JonasVautherin