arm64 support

pipounix

New Member
Jan 26, 2024
5
0
1
very good morning or night depending on where you read this!! I am trying to run an arm operating system but I see that there is no arm support so I looked for information with qemu-system-arm and qemu-system-aarch would have support for arm within proxmox the problem is that if I install those options it uninstalls proxmox completely yes I compile the cpu support options by hand but I can only use them from a terminal I have no way to launch that machine created with qemu in the terminal from the proxmox interface does anyone know how to combine the added cpu support so that it appears in the options to choose when creating a vm

root@noibm:~# qemu-system-arm -cpu help
Available CPUs:
arm1026
arm1136
arm1136-r2
arm1176
arm11mpcore
arm926
arm946
cortex-a15
cortex-a7
cortex-a8
cortex-a9
cortex-m0
cortex-m3
cortex-m33
cortex-m4
cortex-m55
cortex-m7
cortex-r5
cortex-r52
cortex-r5f
max
pxa250
pxa255
pxa260
pxa261
pxa262
pxa270-a0
pxa270-a1
pxa270
pxa270-b0
pxa270-b1
pxa270-c0
pxa270-c5
sa1100
sa1110
ti925t
root@noibm:~#
these are the cpu options added for arm
 
thanks for answering!!!!
The instructions are good but that does not solve the problem. What I want is for Proxmox to let me create a vm from scratch to which I want to install an Arm OS. This could be a Linux on Arm or in particular I would like to run Android but in its arm version to be able to test android applications that do not run on android x86
 
This would be a way to do it on any debian that has qemu installed qemu-system-arm -M virt -cpu cortex-a57 -m 1024 -drive file=debian-arm64.img,if=none,id=drive0 -device virtio -blk-device,drive=drive0 -device virtio-net-device,netdev=net0 -netdev user,id=net0,hostfwd=tcp::2222-:22 -nographic -serial mon:stdio
 
This would be a way to do it on any debian that has qemu installed qemu-system-arm -M virt -cpu cortex-a57 -m 1024 -drive file=debian-arm64.img,if=none,id=drive0 -device virtio -blk-device,drive=drive0 -device virtio-net-device,netdev=net0 -netdev user,id=net0,hostfwd=tcp::2222-:22 -nographic -serial mon:stdio
What if you use qemu-system-aarch64 for that command?
 
It is the same thing what I am referring to is because there is no option to create the machine directly from the proxmox environment, even if I create it with aarch, the machine when I try to import it later does not start because the virtual cpu that I tried to use proxmox does. I don't know that I edited the conf by hand of the created vm and it doesn't start from the proxmox interface from the terminal, yes it works but to be able to use it I have to put a vnc client on the remote machine and put together a whole script when the idea of proxmox is to use it For testing, I would also not have the backup, export and import options of the created vm available, that is why I want to reach out to the people at Proxmox to see if it can be added as another option in the cpus list when creating the vms.
 
Changing architecture options is not possible via UI, but you should be able to manage the VM via Proxmox VE after initially creating it via CLI:
Code:
qm create 123 --arch aarch64 --machine virt ...
The cortex-a57 CPU is already the default one when using aarch64, so no need to specify it. If you need another one, use e.g.
Code:
qm set 123 --args "cpu cortex-a15"
 
root@noibm:/disco2/images# qm status 123
status: running
root@noibm:/disco2/images#
arch: aarch64
#args: -vga virtio
bios: /usr/share/pve-edk2-firmware/OVMF_CODE.fd
boot: order=scsi1;scsi0;net0
cores: 2
cpu: max
machine: virt
memory: 2048
meta: creation-qemu=8.1.2,ctime=1706548529
name: MiVM
net0: virtio=BC:24:11:FB:72:12,bridge=vmbr0
numa: 0
scsi0: backup:123/vm-123-disk-0.qcow2,size=32G
scsi1: CDs:iso/debian-12.4.0-arm64-netinst.iso,media=cdrom,size=537900K
smbios1: uuid=bc6e6f8d-b7a7-4c2d-aabd-edb084e25748
sockets: 1
vga: virtio

The vm starts in arm64 but I can't find a way to give me video
 
bios: /usr/share/pve-edk2-firmware/OVMF_CODE.fd
bios can only be seabios or ovmf. It's best not to manually edit the configuration files, but use the UI or for settings not exposed in the UI, qm set 123 --setting value which will complain about invalid values.

When using qm set 123 --bios ovmf, Proxmox VE will select the appropriate EFI code matching the VM's architecture (which is /usr/share/pve-edk2-firmware/AAVMF_CODE.fd for aarch64).
 
Unfortunately, it's not really a focus for further development from our side right now. Bug reports, especially about regressions, are welcome of course.
 
Hi,
What about the Promox VE host installation on aarch64/arm64 architecture support?
that's not officially supported from our side. If you can get it to work, good for you! Only running ARM guests on an x86_64 host is officially supported by us.
 
  • Like
Reactions: eit-jc
Hi,

that's not officially supported from our side. If you can get it to work, good for you! Only running ARM guests on an x86_64 host is officially supported by us.
We are much interested in this. Do you know if any work is in progress to enable running Proxmox on ARM?
 
There is no such work in progress from our side. It was evaluated a few years ago, but not deemed worth pursuing further. But there are some community projects, e.g. I've seen mentions of PiMox on the forum. Please be aware this is not officially endorsed in any way.
 
  • Like
Reactions: eit-jc
Hi there!
There is no such work in progress from our side. It was evaluated a few years ago, but not deemed worth pursuing further. But there are some community projects, e.g. I've seen mentions of PiMox on the forum. Please be aware this is not officially endorsed in any way.

my use case, is to run aarch64 gitlab runners to build multi-arch containers and arm64 binaries.
if we wanted to reach a bit we could go so far as to go arm7, but.... really... aarch64 / arm64 is my main target.

My problem, as it sits:

- Emulated VM on x86_64/amd64 hardware is... unfathomably slow.
- docker buildx within x86_64 vm is... passable, but still pretty astoundingly slow

a raspberry pi4 4g runs circles around an

aarch64 vm with 4c and 8g ram running on a dell r730xd 2690v4 with 512g ram. (more cores/ram don't seem to help much)

There do seem to be some tuning opportunities for aarch64 vms within proxmox
when using virt hw:
- `-machine type=virt,accel=tcg,thread=multi`
I read on the internet that using the `tcg` accelleration and setting thread to `multi`, in conjunction with setting `-cpu=max` was likely to yeild an optimally performant vm env ... but I've yet to be able to validate that... so ¯\_(ツ)_/¯
- One cannot currently enable a tpm device
- one cannot add an entropy device

but I really dunno how much that juice is worth the squeeze.
It feels like emulating arm64 on x86_64 is just going to be ungodly slow, period.
This aligns with the comments I've seen on the forums,
is this y'alls conclusion as well?
if not... what do y'all think would be a good path to a reasonably performant linux aarch64 vm running on x86_64 hardware?



if so... and (arm64 vm on x86_64 == sloooooooooow) is likely to be enduringly true
What viable paths are there to having a proxmox x86_64 cluster able to drive arm64 VMs on something like a small fleet of pi4 / pi5's?
obviously, the x86 vms wouldn't be runnable on them, but that would be acceptable for me.

would a 'secondary arch vmhost work truck' pattern SIMPLIFY this sort of model?
Is introducing a sub-classification of a pve node so much more work that the effort isn't worthwhile?


legitimately curious, and hoping that there might be a not horrible way forward in the future? :)

❤️W
 
Last edited:
my use case, is to run aarch64 gitlab runners to build multi-arch containers and arm64 binaries.
I experienced the same and went with an aarch64 VM on Oracle Cloud to run my gitlab runners in a docker build environment. A raspberry Pi didn't had enough power to create some of the bigger containers. You can speedup things by using an iSCSI disk instead of MicroSD, yet it's also not that fast, but might work in some environments.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!