Comment exécuter Ubuntu 16.04 ARM dans QEMU?


9

Mon objectif est d'exécuter Ubuntu 16.04 (ARM) dans Qemu (sur l'hôte Ubuntu 16.04 x64).

J'ai essayé de suivre ce tutoriel -old- sans succès:

Home directory not accessible: Permission denied
pulseaudio: pa_context_connect() failed
pulseaudio: Reason: Connection refused
pulseaudio: Failed to initialize PA contextaudio: Could not init `pa' audio driver
Could not initialize SDL(No available video device) - exiting

Au lieu de l' debian_squeeze_armel_standard.qcow2image utilisée ici, j'ai utilisé ubuntu-16.04-preinstalled-server-armhf + raspi2.img .

Oublier l'article mentionné ci-dessus, quelle est la bonne façon d'exécuter Ubuntu 16.04-arm sur Qemu?

S'il n'est pas possible de l'exécuter facilement sur Qemu, existe-t-il une autre alternative?

Réponses:


0

Cela ne fonctionnera pas car l'image que vous utilisez est précompilée pour le périphérique Raspberry Pi 2 et ne fonctionnera que sur Raspberry Pi 2. Essayez ce tutoriel


Je vous remercie. Je vais essayer plus tard. Je pense que cela répondra à ma question.
lepe

1

Dans cette réponse: Existe - t-il une image Ubuntu QEMU (32 bits) préconstruite en ligne? J'ai décrit les configurations de travail suivantes pour l'hôte / hôte Ubuntu 18.04:

  • image cloud arm64: configuration la plus rapide pour commencer
  • debootstrap arm64: assez rapide, mais permet plus de personnalisation d'image

Ces configurations fournissent des images de disque prédéfinies et ne passent pas par le programme d'installation. Ce sont les meilleurs choix que j'ai vus jusqu'à présent.

Ensuite, j'ai également réussi à exécuter l'image du serveur arm64 sur QEMU. Cependant, cela passe par le programme d'installation, ce qui est difficile à réaliser, à moins que vous ne soyez pas sur un hôte ARM avec KVM. Ceci est particulièrement douloureux car des dizaines d'interactions sont nécessaires pour terminer l'installation.

Voici le script du serveur, testé sur un hôte Ubuntu 18.10:

#!/usr/bin/env bash

set -eux

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

# Parameters.
id=ubuntu-18.04.1-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 en amont .

Voir aussi ceci pour l'émulation Raspberry Pi: /programming/28880833/how-to-emulate-the-raspberry-pi-2-on-qemu/45814913#45814913

Bureau amd64 illustré à: Comment exécuter Ubuntu 16.04 Desktop sur QEMU?

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.