Enabling Fedora 35 Virtualization on an Ampere based machine

I have a fresh install of Fedora 35 on a lab machine. I want to run a virtual machine on it. I have ssh access to the root account and a public key copied over.

The packages you need are listed below:

dnf install libvirt libvirt-daemon-kvm qemu-kvm virt-install

Run the daemon, and make sure it runs on startup

systemctl enable libvirtd
systemctl start libvirtd

You can do a simple test to see if it is ready with:

virt-install --name centos8-2 --memory 10240 --vcpus=2 --os-type=Linux --os-variant=centos7.0

If it is OK, you will either get a vm, or a message like:

ERROR The requested volume capacity will exceed the available pool space when the volume is fully allocated. (20480 M requested capacity > 12728 M available) (Use –check disk_size=off or –check all=off to override)

Below are my notes from debugging a new setup. Before I had the libvirt-daemon-kvm and qemu-kvm packages installed, I got the error:

ERROR    Host does not support any virtualization options

Looking at the CPU info:

# lscpu 
Architecture:           aarch64
  CPU op-mode(s):       32-bit, 64-bit
  Byte Order:           Little Endian
CPU(s):                 80
  On-line CPU(s) list:  0-79
Vendor ID:              ARM
  BIOS Vendor ID:       Ampere(R)
  Model name:           Neoverse-N1
    BIOS Model name:    Ampere(R) Altra(R) Processor
    Model:              1
    Thread(s) per core: 1
    Core(s) per socket: 80
    Socket(s):          1
    Stepping:           r3p1
    Frequency boost:    disabled
    CPU max MHz:        3000.0000
    CPU min MHz:        1000.0000
    BogoMIPS:           50.00
    Flags:              fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs

Note that you will not see the virtualization extensions listed that are x86_64 specific. On a x86_64 system, you can find them with

egrep '^flags.*(vmx|svm)' /proc/cpuinfo

But they are not defined in the ARM64 headers in the Linux Kernel. The only way I’ve found thus far is to look in the journal:

# journalctl | grep EL2
Feb 01 07:20:14 eng14sys-r111.scc-lab.amperecomputing.com kernel: CPU: All CPU(s) started at EL2


1 thought on “Enabling Fedora 35 Virtualization on an Ampere based machine

  1. I tried to get an Ampere system into my lab about 18 months back, but they didn’t have any to spare for their developer program. Has that changed? I’d like to adapt my VM templates to ARM but I need the hardware first. I’ve been hoping something would show up on eBay at bargain prices but so far no luck.

    You might find this repo useful, if you want to make your own VM images:

    https://github.com/AmpereComputing/packer-aarch64-templates

    The second Ampere system showed up on eBay this week, but the 5K is about 5K above our budget.

    https://www.ebay.com/itm/334321120173

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.