web-dev-qa-db-ja.com

QEMUでのAlpineLinuxの実行ARMゲスト

X86、x86_64、armhf、aarch64、s390x、ppc64leを公式にサポートしているAlpine Linuxのパッケージをビルドしようとしているので、これらすべてのアーキテクチャー用にビルドしたいと思います。

現在、QEMUのユーザーモードエミュレーションを使用して、x86_64ホストでこれらのアーキテクチャのchroot環境を実行していますが、非常に不安定で、クラッシュすることがよくあります。そのため、QEMUを使用して完全な仮想マシンを実行しようとしています。

非ARMアーキテクチャ用のAlpineLinuxのインストールは非常に簡単で、 公式ダウンロードページ で提供されている.isoイメージを添付することで実行できます。ただし、ARMにとっては別の話です。 netbootとu-bootのアーカイブ以外に提供されているものはないので、インストール方法がわかりません。 netbootのアーカイブを抽出し、抽出したファイルに_-kernel_と_-initrd_を設定しようとしましたが、機能しませんでした。 (私が使用した完全なコマンドは_qemu-system-aarch64 -M vexpress-a9 -kernel vmlinuz-Vanilla -initrd initrd-Vanilla -append "root=/dev/ram"_でした)ターミナルに出力がなく、VNCウィンドウにGuest had not initialized the display (yet)がありました。

では、どうすれば仮想マシンを起動できますか?ありがとう。

1
DDoSolitary

最後に、仮想マシンを正常に起動しました。次のようなコマンドを使用するだけです。

aarch64

qemu-system-aarch64 \
  -M virt -m 512M -cpu cortex-a57 \ # Required, cortex-a53 is OK, too
  -kernel vmlinuz-lts -initrd initramfs-lts \ # These two files can be downloaded from http://dl-cdn.alpinelinux.org/Alpine/Edge/releases/aarch64/netboot/
  -append "console=ttyAMA0 ip=dhcp Alpine_repo=http://dl-cdn.alpinelinux.org/Alpine/Edge/main/" \ # The console argument is required to get console output
  -nographic

armv7

Aarch64と同じですが、qemu-system-aarch64qemu-system-armに置き換え、cortex-a57cortex-a15に置き換えます。

2
DDoSolitary