¿Cómo probar ARM Ubuntu bajo Qemu de la forma más sencilla?

¿Cómo probar ARM Ubuntu bajo Qemu de la forma más sencilla?

Me gustaría jugar con la versión ARM de Ubuntu (con soporte gráfico) en Qemu, pero tengo problemas para encontrar algún tutorial sobre cómo hacerlo más fácilmente (preferiría simplemente descargar alguna imagen y ejecutar un comando para ejecutarla) . ¿Cómo lograrlo con la menor molestia?

Respuesta1

En esta respuesta:https://askubuntu.com/questions/281763/is-there-any-prebuilt-qemu-ubuntu-image32bit-online/1081171#1081171He descrito las siguientes configuraciones de trabajo para el huésped/host de Ubuntu 18.04:

  • Arm64 de imagen en la nube: configuración más rápida para comenzar
  • debootstrap arm64: razonablemente rápido, pero permite una mayor personalización de la imagen

Esas configuraciones proporcionan imágenes de disco prediseñadas y no pasan por el instalador. Son las mejores opciones que he visto hasta ahora.

A continuación, también logré ejecutar la imagen del servidor arm64 en QEMU. Sin embargo, esto pasa por el instalador, lo cual es casi imposible de hacer, a menos que no esté en un host ARM con KVM. Esto es especialmente doloroso porque se requieren docenas de interacciones para finalizar la instalación.

Aquí está el script del servidor, probado en un host Ubuntu 18.10:

#!/usr/bin/env bash

set -eux

# Tested on Ubuntu 18.10.
# - https://superuser.com/questions/942657/how-to-test-arm-ubuntu-under-qemu-the-easiest-way
# - https://askubuntu.com/questions/797599/how-to-run-ubuntu-16-04-arm-in-qemu

# Parameters.
# This filename may need updating, check http://cdimage.ubuntu.com/releases/18.04/release/
id=ubuntu-18.04.3-server-arm64   
#id=debian-9.6.0-arm64-xfce-CD-1
img="${id}.img.qcow2"
img_snapshot="${id}.img.snapshot.qcow2"
iso="${id}.iso"
flash0="${id}-flash0.img"
flash1="${id}-flash1.img"

# Images.
if [ ! -f "$iso" ]; then
  wget "http://cdimage.ubuntu.com/releases/18.04/release/${iso}"
fi
if [ ! -f "$img" ]; then
  qemu-img create -f qcow2 "$img" 1T
fi
if [ ! -f "$img_snapshot" ]; then
  qemu-img \
    create \
    -b "$img" \
    -f qcow2 \
    "$img_snapshot" \
  ;
fi
if [ ! -f "$flash0" ]; then
  dd if=/dev/zero of="$flash0" bs=1M count=64
  dd if=/usr/share/qemu-efi/QEMU_EFI.fd of="$flash0" conv=notrunc
fi
if [ ! -f "$flash1" ]; then
  dd if=/dev/zero of="$flash1" bs=1M count=64
fi

# Run.
#
# cdrom must be scsi or else the installation fails midway with:
#
# > Detect and mount CD-ROM
# >
# > Your installation CD-ROM couldn't be mounted. This probably means
# > that the CD-ROM was not in the drive. If so you can insert it and try
# > again.
# >
# > Retry mounting the CD-ROM?
# > Your installation CD-ROM couldn't be mounted.
#
# This is because the drivers for the default virtio are not installed in the ISO,
# because in the past it was not reliable on qemu-system-aarch64.
#
# See also:
# https://bazaar.launchpad.net/~ubuntu-testcase/ubuntu-manual-tests/trunk/view/head:/testcases/image/1688_ARM64_Headless_KVM_Guest
qemu-system-aarch64 \
  -cpu cortex-a57 \
  -device rtl8139,netdev=net0 \
  -device virtio-scsi-device \
  -device scsi-cd,drive=cdrom \
  -device virtio-blk-device,drive=hd0 \
  -drive "file=${iso},id=cdrom,if=none,media=cdrom" \
  -drive "if=none,file=${img_snapshot},id=hd0" \
  -m 2G \
  -machine virt \
  -netdev user,id=net0 \
  -nographic \
  -pflash "$flash0" \
  -pflash "$flash1" \
  -smp 2 \
;

GitHub ascendente.

Vea también esto para la emulación de Raspberry Pi:https://stackoverflow.com/questions/28880833/how-to-emulate-the-raspberry-pi-2-on-qemu/45814913#45814913

Escritorio AMD64 mostrado en:https://askubuntu.com/questions/884534/how-to-run-ubuntu-16-04-desktop-on-qemu/1046792#1046792

información relacionada