successfully booting arm vm (but not with cpu arg cortex-a72)

Elleni

Active Member
Jul 6, 2020
188
11
38
51
Hello forum,

I successfully can start a vm with the following config:

Code:
arch: aarch64
balloon: 0
bios: ovmf
boot: order=scsi1;net0;scsi0
cores: 2
memory: 2048
meta: creation-qemu=9.2.0,ctime=1749821246
name: arm64-test
net0: virtio=BC:24:11:46:EF:D0,bridge=vmbr0
numa: 0
ostype: l26
scsi0: MyVMs:100/vm-100-disk-0.qcow2,size=100G
scsi1: MyVMs:iso/debian-12.11.0-arm64-DVD-1.iso,media=cdrom,size=3899692K
scsihw: virtio-scsi-pci
smbios1: uuid=a963d10e-4c94-4618-be03-2c21e0d49ed3
sockets: 1

I installed pve-edk2-firmware-aarch64

and qemu-system-arm -cpu help gives the following list:
Code:
Available CPUs:
  a64fx
  arm1026
  arm1136
  arm1136-r2
  arm1176
  arm11mpcore
  arm926
  arm946
  cortex-a15
  cortex-a35
  cortex-a53
  cortex-a55
  cortex-a57
  cortex-a7
  cortex-a710
  cortex-a72
  cortex-a76
  cortex-a8
  cortex-a9
  cortex-m0
  cortex-m3
  cortex-m33
  cortex-m4
  cortex-m55
  cortex-m7
  cortex-r5
  cortex-r52
  cortex-r5f
  max
  neoverse-n1
  neoverse-n2
  neoverse-v1
  pxa250
  pxa255
  pxa260
  pxa261
  pxa262
  pxa270-a0
  pxa270-a1
  pxa270
  pxa270-b0
  pxa270-b1
  pxa270-c0
  pxa270-c5
  sa1100
  sa1110
  ti925t

Trying to start the vm after issuing:
Code:
qm set 100 --args "cpu cortex-a72"
update VM 100: -args cpu cortex-a72

gives error:
Code:
WARN: no efidisk configured! Using temporary efivars disk.
qemu-system-aarch64: cpu: Could not open 'cpu': No such file or directory
TASK ERROR: start failed: QEMU exited with code 1

What am I missing - do I need some additional package to install or config to adapt?
 
Last edited:
The correct syntax for invoking qm with a cpu argument would be:

qm set 100 --cpu cortex-a72

It seems you already have the qemu-system-arm package installed.

I am not sure about the EFI warning, first please try the above and share back here.


Fabián Rodríguez | Le Goût du Libre Inc. | Montreal, Canada | Mastodon
Proxmox Silver Partner, server and desktop enterprise support in French, English and Spanish
 
Last edited:
I had done that but it didnt help - just created the cortex entry as arg in the 100.conf

But trying to apt inst qemu-system-arm I got some error:


Code:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 virtiofsd : Breaks: qemu-system-common (< 1:8.0) but 1:7.2+dfsg-7+deb12u13 is to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

I doublechecked that the system is up-to date by:
Code:
LANG=c apt-get update && apt-get upgrade && apt-get dist-upgrade && apt-get autoremove --purge && apt clean

which returned all good and up to date

How can I fix this dependency problem to be able to install qemu-system-common? This would solve my issue with arm cpu type s.
 
Last edited:
How can I fix this dependency problem to be able to install qemu-system-common? This would solve my issue with arm cpu type s.
AFAIK, PVE packages interfere with the default Debian-provided images, so you cannot.

LANG=c apt-get update && apt-get upgrade && apt-get dist-upgrade && apt-get autoremove --purge && apt clean
Why are you mixing apt and apt-get and why do you upgrade instead of just doing a disk-upgrade?

Code:
apt update && apt dist-upgrade --purge && apt autoremove --purge
 
  • Like
Reactions: MagicFab
Well there should be a way - I know from other distributions that there exist possibilities to mask/unmask packages. I dont mix anything but just for the record - did also
Code:
apt update && apt dist-upgrade --purge && apt autoremove --purge
and everything is up to date.

I also uninstalled pve-edk2-firmware-aarch64 which I had installed trying to get arm64 image running. But apt install qemu-system-arm still doesnt install. It tries to install when I remove virtiofsd but then asks if proxmov-pve shall be uninstalled which naturally it shouldnt.

That brings me back to my question. qemu-system-arm seems not to be a pve package, from the name I would assume pve-edk2-irmware-aarch64 is. As the help message in the above post indicates there are all those arm cpus are supported. And as stated I can start an arm64 vm by the vm.conf file provided.

The only remaining problem - or question is:

What is needed to configure a specific cpu of the supported ones, like cortex-a72.

Code:
qm set 100 --cpu cortex-a72
400 Parameter verification failed.
cpu: invalid format - Built-in cputype 'cortex-a72' is not defined (missing 'custom-' prefix?)

Doesnt work, but
Code:
qm set 100 --args "cpu cortex-a72"
does by adding a line in the config file:

args: cpu cortex-a72

Which as said makes the vm unbootable. Removing the args line lets the arm vm boot.

So whats the missing peace here to be able to define the cpus's? Any software package needs to be installed? Or any configuration parameter ?

The efi message should not be a problem btw.
 
Last edited:
You mean
Code:
qm set 100 --args "-cpu cortex-a72"

Thus creating an entry like
Code:
args: -cpu cortex-a72
in 100.conf.

That way the vm boots, I'll check the cpu type and add prefix solved to the title.

This would mean the only package needed to install for arm is pve-edk2-firmware-aarch64
 
Last edited: