Proxmox VE now available for ARM64
Posted by geerlingguy 1 day ago
Comments
Comment by nh43215rgb 1 day ago
> Device-tree-only single-board computers, such as the Raspberry Pi, are not supported
> Virtual machines always boot through UEFI, provided by the ARM build of OVMF (AAVMF). SeaBIOS is not available on arm64.
Few things to be wary of..!Comment by tredre3 1 day ago
Good. The more software vendors require UEFI, the more arm board manufacturers will have to support it.
As an embedded developer I don't hate device-tree-only devices per se, and I have the skills to make any distro (that supports ARM) work on any board, but I absolutely do not have the patience to do it.
Comment by antonkochubey 16 hours ago
Comment by protimewaster 16 hours ago
Comment by eventualcomp 16 hours ago
Comment by vegadw 1 day ago
Q: Can I run Proxmox VE on a Raspberry Pi or a similar single-board computer? A: No. An arm64 host must boot through UEFI and describe its hardware through ACPI. Device-tree-only boards and legacy boot are not supported.
Basically no consumer facing arm SBCs, NAS boxes, etc will work with this. Frankly, I see this as a good thing though: Maybe it'll make the SBC market get its stuff together and start actually doing UEFI instead of every board needing a custom build.
Comment by geerlingguy 1 day ago
I'm adding more details in my blog post here: https://www.jeffgeerling.com/blog/2026/proxmox-ve-arm-offici...
Comment by walrus01 1 day ago
Not when you can go to ebay and get a 16GB RAM gently used, ultra small form factor corporate desktop, quad core intel core i5/i7 computer for less money. With real NVME SSD and such. Yeah, it'll consume more like 25 watts idle, not 7W, but as a hypervisor platform it'll also be vastly more capable.
The raspberry pi with 1GB RAM have some very good use cases for things that need their I/O pins, but if you're just trying to use it as a general purpose computer, there's so many other better options.
Comment by antonkochubey 16 hours ago
Comment by ValdikSS 1 day ago
If your board needs custom build, it's probably because there's no SPI flash with the bootloader. The board can't describe itself.
This could be solved https://sd-card-images.johang.se/ style: single kernel+rootfs OS image, with the small board-specific bootloader + dtb, which you concatenate to the OS image.
The majority of ARM SBCs can boot UEFI (TianoCore) as a u-boot payload, there are ports for many SoCs/platforms. Raspberry Pi has a port. Libre.computer ships Amlogic and Rockchip with UEFI out of the box.
Nobody just usually bothers because modern u-boot handles all aspects of boot process, incl. display and user interaction. Unless you want Windows on ARM, or want to use beefy server/desktop hardware (ARM non-SBC, non-embedded) with external PCI-e boards which may want to run its embedded .efi rom, you probably don't want UEFI.
Comment by ChocolateGod 15 hours ago
This is what NixOS does as well, but it still requires the kernel to effectively have support for your specific SoC.
On ARM ACPI/UEFI, ACPI abstracts many parts away reducing the need for this.
Comment by proxysna 23 hours ago
Comment by kevinday 1 day ago
Comment by walrus01 1 day ago
Comment by doubled112 4 hours ago
The price on SBCs is insanity right now because they have RAM.
Comment by drdexebtjl 1 day ago
I don’t see why it couldn’t work, since Debian runs fine on these SBCs.
Maybe they mean there’s no enterprise support, but it technically runs?
Comment by tlamponi 19 hours ago
Yes, basically this, but in addition to us not providing a kernel and boot method targetting the RPi or other such SBC, but most of the time all will work if you bring that yourself (or plain Debian provides that for your).
Comment by Gormo 12 hours ago
Comment by markedathome 1 day ago
Comment by hagbard_c 1 day ago
Comment by rnantes 1 day ago
Comment by awesomeusername 1 day ago
This was necessary, but guys you got the memo too late
Comment by cromka 3 hours ago
Comment by JuniperMesos 1 day ago
Comment by TacticalCoder 1 day ago
Comment by JuniperMesos 1 day ago
Comment by tlamponi 20 hours ago
Besides that being very outdated view of our tech stack, given that we have used Rust for every new development for seven years already and migrated lots of Perl code to it - what's actually wrong with using Perl?
Is all Perl, Python, etc., generically just categorally unusable for someone? Or is the fact that Perl - just like Python and many other languages - packs a lot of built-in features while being easy to modify and interpretable so it can also be used for scripting purposes seriously counted as a "strike against it"? Genuinely curious where these - for me completely unrelatable - opinions stem from.
Comment by traceroute66 18 hours ago
I am not the OP but my take as someone who is not keen on Perl or Python:
1. Perl has a dense programming style and is quite opaque to new maintainers. You also have CPAN dependencies to keep track of.
2. Python is more readable than Perl, but has its own issues (dependency hell etc.) and still does not address the issue of dynamic typing and the inability to test correctly, whilst e.g. Rust and Go will just refuse to build.
3. Rust or Go is single-binary shipping. Rust or Go is easier to test.
4. In practical terms the Perl developer population is a shrinking one. Rust and Go are growing.
Ultimately you are selling Proxmox as a hypervisor platform and the expectation is the user should not go hacking around in the shell ? So shipping compiled binaries is safer (easier to audit) than shipping shell scripts that e.g. an attacker with shell access could easily compromise by manipulating the scripts.But I'm sure you already know all of the above given you have been using Rust for seven years and spending effort migrating Perl scripts .... not exactly something you do for fun. :)
Comment by tlamponi 17 hours ago
> 1. Perl has a dense programming style and is quite opaque to new maintainers. You also have CPAN dependencies to keep track of.
You can write dense Perl code just like you can write dense Go, Rust, ... code (did you ever write a rust proc_macro and then wanted to edit/extend that like half a year later?); our common coding style in Proxmox is to not use the more sigil-heavy/dense variants of Perl. Re CPAN: that's not used at all in Proxmox VE; we distribute all packages and dependencies solely through Debian package based repositories, with full audit and supply chain integrity. > 2. Python is more readable than Perl, but has its own issues
See the first part of 1.; besides, both Python and Perl have type annotations that can help. > 3. Rust or Go is single-binary shipping. Rust or Go is easier to test.
Erm, no, that doesn't change anything? Our daemons are also just single executables. Just like you can "link" any interpreted code into one file, that can be OK for distribution but normally provides no benefit on its own. And they still load modules or dynamic libraries, like the stdlib; both Go and Rust are not fully static (as in compiled with musl) in most common use cases after all. For Rust this is actually a significant pain point: a good and stable Rust ABI that allows native dynamic linking would allow more library reuse and thus faster and smaller/more targeted updates for delivering bug and security fixes. As of now you always have to ship the whole (potentially huge!) binary to deliver an update. In some parts we use Rust dynlibs with a C ABI, but that's rather a crutch. > 4. In practical terms the Perl developer population is a shrinking one. Rust and Go are growing.
Yes, but that doesn't make Perl or Python a worse language to use, it mostly might hinder potential external devs from contributing. But for one, we have enough Perl experts hired to cover that, and for another, we know of one prolific former contributor with a ton of sysadmin and Perl experience that basically stopped contributing to our newer projects due to the Rust adoption and that being a challenge for them to learn. Language widespreadness also has to be looked at from the POV of the existing developer community, not just the global one. In this case the benefits of Rust still outweigh the cost, and it could also be the other way around, but it's still sad to see experienced contributors being hindered, and it's an example of your point not being as simple as it might sound. > Ultimately you are selling Proxmox as a hypervisor platform and the expectation is the user should not go hacking around in the shell?
Yes, that's also why I never stated otherwise, my point was that being able to do so is really not a negative thing. Or would Go or Rust become worse if they got better scripting support? > So shipping compiled binaries is safer (easier to audit) than shipping shell scripts that e.g. an attacker with shell access could easily compromise by manipulating the scripts.
For one, we're not shipping shell scripts, but polished Perl code with a mature module hierarchy and many modern features that Perl does provide over simpler shells like POSIX sh or Bash. And for another, no, binaries are not easier to audit, on the contrary; they are only auditable at all with reproducible builds, which is still not a fully solved issue (albeit we're getting there). Perl you can just look into, and debsums can also tell you at a glance that all files tracked by the Debian packaging system that we reuse are sound and safe, delivered and signed with our release keys. The latter holds for Rust too, that's why it's fine, but not because they are less introspectable due to being binaries. IMO you got it really backwards. > an attacker with shell access could easily compromise by manipulating the scripts.
An attacker with root access - which is needed to manipulate these "scripts" as you call them - can also just edit the binary, switch it out with a jump script/executable with their rootkit in there, or a recompiled version of the Rust, Go, whatever code with their malicious code in, ... Or how does being a binary magically avoid that?Comment by JackSlateur 9 hours ago
"Python still does not address the issue of dynamic typing and the inability to test correctly"
This is wrong, you can enforce typing on Python (pypi: typeguard)The only issue with Python is performance, which is only an issue if you need performance.
Comment by jbotz 1 day ago
Comment by cedws 19 hours ago
Comment by snthpy 1 day ago
Comment by ece 1 day ago
Comment by moondev 16 hours ago
A good alternative is incus and running LXC and or OCI containers, GPU works in those and can be shared with multiple instances