diff options
author | Alexandru Avadanii <Alexandru.Avadanii@enea.com> | 2017-07-10 17:32:57 +0200 |
---|---|---|
committer | Alexandru Avadanii <Alexandru.Avadanii@enea.com> | 2017-07-11 19:51:24 +0200 |
commit | de0b0f160f6ac408c2ba302507ede4d0a537b73f (patch) | |
tree | c9ea030e00a631ec07ef2d4f8d956a2bbad93eed /patches/opnfv-fuel/0002-lib.sh-AArch64-Use-VGA-video-mode-for-guests.patch | |
parent | 7ce3a621f2156110f5434e95a46e6aa6aa1fb9a1 (diff) |
MCP: patches: AArch64: Add initial support
- p/fuel: classes: AArch64: virtio-pci-net sync
- p/reclass-system-salt-model: Add Armband repos
- mcp/config: AArch64: Use UEFI arm64 image
Also, allow removal of VMs booted via guest UEFI (OVMF or AAVMF).
While at it, bump default vCPU number from 2 to 6.
- 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].
- lib.sh: AArch64: virt-install: Use virtio-net-pci
AArch64 virt tools (i.e. libvirt) default to "virtio-mmio", instead of
"virtio-net-pci", at least before libvirt 3.x (see [2]).
Without PCI bus info, we can't really enforce a specific order for
the guest ethernet devices.
Moreover, predictable network interface naming is out of the question
with virtio-mmio, as there is no bus information to rely on.
Therefore we will enforce "virtio-net-pci" on AArch64, instead of
the default "virtio" (which translates into "virtio-mmio" currently).
- salt.sh, user-data: Add Saltstack arm64 repo
- salt.sh: Clone armband repo, apply patches from it
- classes: virtual: AArch64: virtio-pci-net sync
Since AArch64 will be using virtio-net-pci NIC model for guests,
predictable interface naming yields a slightly different scheme.
Update all configuration to reflect this.
FIXME:
- Use https for fetching Armband GPG keys!
- Revise the patching mechanism, make things more dynamic.
[1] https://github.com/opnfv/armband/blob/danube.2.0/patches/fuel-library/
arm64-bug-fixes/0002-Install-vgabios-and-link-for-aarch64.patch
[2] https://www.redhat.com/archives/libvir-list/2016-August/msg00931.html
Change-Id: If5aae22066f75732652201a78357c4931438d58d
Signed-off-by: Guillermo Herrero <Guillermo.Herrero@enea.com>
Signed-off-by: Charalampos Kominos <Charalampos.Kominos@enea.com>
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Diffstat (limited to 'patches/opnfv-fuel/0002-lib.sh-AArch64-Use-VGA-video-mode-for-guests.patch')
-rw-r--r-- | patches/opnfv-fuel/0002-lib.sh-AArch64-Use-VGA-video-mode-for-guests.patch | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/patches/opnfv-fuel/0002-lib.sh-AArch64-Use-VGA-video-mode-for-guests.patch b/patches/opnfv-fuel/0002-lib.sh-AArch64-Use-VGA-video-mode-for-guests.patch new file mode 100644 index 00000000..a4d71a82 --- /dev/null +++ b/patches/opnfv-fuel/0002-lib.sh-AArch64-Use-VGA-video-mode-for-guests.patch @@ -0,0 +1,64 @@ +From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> +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 <Alexandru.Avadanii@enea.com> +--- + 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 f98246d..c803a2a 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 b2998e0..282ca38 100644 +--- a/mcp/scripts/lib.sh ++++ b/mcp/scripts/lib.sh +@@ -55,6 +55,13 @@ create_vms() { + local -n vnodes=$1 + local -n vnodes_ram=$2 + ++ # 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 --noautoconsole" ++ fi ++ + # create vms with specified options + for node in "${vnodes[@]}"; do + virt-install --name ${node} --ram ${vnodes_ram[$node]} --vcpus=6 --cpu host --accelerate \ +@@ -65,7 +72,8 @@ create_vms() { + --disk path=$(pwd)/images/mcp_${node}.qcow2,format=qcow2,bus=virtio,cache=none,io=native \ + --os-type linux --os-variant none \ + --boot hd --vnc --console pty --autostart --noreboot \ +- --disk path=$(pwd)/images/mcp_${node}.iso,device=cdrom ++ --disk path=$(pwd)/images/mcp_${node}.iso,device=cdrom \ ++ ${virt_extra_args} + done + } + |