From: Alexandru Avadanii Date: Tue, 11 Jul 2017 18:35:40 +0200 Subject: [PATCH] lib.sh: AArch64: Use VGA video mode for guests On AArch64, there is no Cirrus video, so use VGA mode instead. For now, we install vgabios package no matter the arch, although it is only used on AArch64. On Debian systems, also fix a missing link for vgabios-stdvga.bin. Based on previous Armband work from [1]. [1] https://github.com/opnfv/armband/blob/danube.2.0/patches/fuel-library/ arm64-bug-fixes/0002-Install-vgabios-and-link-for-aarch64.patch Signed-off-by: Alexandru Avadanii --- ci/deploy.sh | 5 +++-- mcp/scripts/lib.sh | 10 +++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ci/deploy.sh b/ci/deploy.sh index a1f5e38..92c7947 100755 --- a/ci/deploy.sh +++ b/ci/deploy.sh @@ -230,8 +230,9 @@ pushd ${DEPLOY_DIR} > /dev/null # scenario, etc. # Install required packages -[ -n "$(command -v apt-get)" ] && apt-get install -y mkisofs curl virtinst cpu-checker qemu-kvm -[ -n "$(command -v yum)" ] && yum install -y genisoimage curl virt-install qemu-kvm +[ -n "$(command -v apt-get)" ] && apt-get install -y mkisofs curl virtinst cpu-checker qemu-kvm vgabios && \ + ln -sf /usr/share/vgabios/vgabios.bin /usr/share/qemu/vgabios-stdvga.bin +[ -n "$(command -v yum)" ] && yum install -y genisoimage curl virt-install qemu-kvm vgabios # Check scenario file existence if [[ ! -f ../config/${DEPLOY_SCENARIO}.yaml ]]; then diff --git a/mcp/scripts/lib.sh b/mcp/scripts/lib.sh index c315323..862fdcc 100644 --- a/mcp/scripts/lib.sh +++ b/mcp/scripts/lib.sh @@ -56,6 +56,13 @@ create_vms() { local -n vnodes_ram=$2 local -n vnodes_vcpus=$3 + # AArch64: prepare arch specific arguments + local virt_extra_args="" + if [ "$(uname -i)" = "aarch64" ]; then + # No Cirrus VGA on AArch64, use vga std + virt_extra_args="$virt_extra_args --video=vga" + fi + # create vms with specified options for node in "${vnodes[@]}"; do virt-install --name ${node} --ram ${vnodes_ram[$node]} --vcpus ${vnodes_vcpus[$node]} --cpu host --accelerate \ @@ -67,7 +74,8 @@ create_vms() { --os-type linux --os-variant none \ --boot hd --vnc --console pty --autostart --noreboot \ --disk path=$(pwd)/images/mcp_${node}.iso,device=cdrom \ - --noautoconsole + --noautoconsole \ + ${virt_extra_args} done }