The WolfspyreLabs Blog/ 2024/ Posts from July/ Arm64 Guests in Proxmox/ Arm64 Guests in Proxmox ARM64 Guests in ProxMox? neat! What are we trying to do #Run an arm64/aarch64 vm within proxmox. How to get from A to Z #This SEEMS fairly straight forward. Find the iso storage location for current proxmox #/mnt/pve/cephfs Grab the latest Ubuntu cloud image # Ubuntu 24.04 arm641 Ubuntu 24.04 large-mem arm642 There’s also the live-server variant, but these don’t do cloud-init afaik. cloud image download cd /mnt/pve/cephfs/iso; wget -c https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-arm64.img wget -c https://cdimage.ubuntu.com/releases/noble/release/ubuntu-24.04-live-server-arm64+largemem.iso&& wget -c https://cdimage.ubuntu.com/releases/noble/release/ubuntu-24.04-live-server-arm64.iso Create a VM host via proxmox’s qm tool # Some work was described elsewhere around how they got it to work: qemu create qemu-system-aarch64 -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 -nographic -serial mon:stdio I tried something similar: qm create qm create 8 --description ubuARM64 --bios ovmf --memory 8192 \ --net0 virtio,bridge=vmbr0 --arch aarch64 --name arm --ostype l26 \ --boot order=scsi0 --cipassword saltypass --ciuser userhere \ --efidisk0 pool:vm-1-d-1,efitype=4m,pre-enrolled-keys=1,size=64M \ --hotplug disk,network,usb,cpu --keyboard en-us --vga virtio \ --scsihw virtio-scsi-pci --serial0 socket --scsi0 \ pool_disks:0,size=200G,import-from=/noble-server-cloudimg-arm64.img Aaand profit… ? Shit. NOPE! #Well, of course there’s some problems. Well hell… #EFI Disk # EFI Base image `/usr/share/pve-edk2-firmware/AAVMF_CODE.fd` not found (500) This seemed problematic. FORTUNATELY, efi base firmware for aarch64 apt-get install pve-edk2-firmware-aarch64 VirtIO-GL #Then, I thought I needed virtio-gl video. So I installed the needful… Install all the things you don't need apt-get install libegl1 libvirglrenderer1 libvirglrenderer-dev \ libglx0 virgl-server libegl-mesa0 libegl1 libgl1 libgl1-mesa-dri \ libgl1 libglapi-mesa libglvnd0 libglx-mesa0 libxcb-glx0 libxxf86vm1 However, this wasn’t really all that helpful, as I’m not giving the VM a graphics card… TPM #This, I’ve yet to address. qemu-system-aarch64: -device tpm-tis,tpmdev=tpmdev: 'tpm-tis' is not a valid device model name so… now that it… y’know… works.. (mostly) how is it? in a nutshell? 💩BAD: The charts below show geekbench5 scores comparing: A Raspberry Pi4 4 arm cores 4GB ram one hampster on a treadmill An ARM64 VM Running on a Dell R730xd 512GB of DDR4 ram E5-2699v4 Cores Geekbench 5 Score # Resource Arm64 VM Raspi 4b cores 8 4 memory 32 gb 4 gb Yes… You’re reading this right… a Raspberry pi TROUNCES an ARM VM. ¯\_(ツ)_/¯ Maybe this will change in time? Thoughts about the process #I’d REALLY like to see one of two things happen. ARM64 VMs on proxmox x86_64 NOT sucking this badly Proxmox supporting vm truck style work nodes to support alt arch… ¯\_(ツ)_/¯ until next time, y’all! Resources and links # https://ubuntu.com/server/docs/boot-arm64-virtual-machines-on-qemu https://forum.proxmox.com/threads/arm64-support.140472/ https://i12bretro.github.io/tutorials/0661.html https://gyptazy.ch/howtos/howto-run-proxmox-8-ve-on-arm64-aarch64-hardware-systems/ https://forum.proxmox.com/threads/proxmox-on-arm64.69080/ https://github.com/pimox/pimox7 https://github.com/jiangcuo/Proxmox-Arm64 https://github.com/jiangcuo/Proxmox-Port/wiki/Install-Proxmox-VE-on-Debian-bookworm https://www.mifcom.de/workstations-ampere-altra-cid774 https://www.ipi.wiki/products/ampere-altra-developer-platform https://cdimage.ubuntu.com/releases/noble/release/ubuntu-24.04-live-server-arm64.iso ↩︎ https://cdimage.ubuntu.com/releases/noble/release/ubuntu-24.04-live-server-arm64+largemem.iso ↩︎