- Package:
- grub-xen-host
- Source:
- grub2
- Description:
- GRand Unified Bootloader, version 2 (Xen host version)
- Submitter:
- Elliott Mitchell
- Date:
- 2019-12-07 11:09:04 UTC
- Severity:
- normal
grub-xen-host is only being built for i386 and amd64. Xen includes support for *some* ARM processors and so grub-xen-host should be available for arm64 and armhf (I'm unsure about armel, a guest might run armel, I don't know whether that is compatible with an armhf build).
I'm afraid that nobody has landed the necessary porting work for this yet (I don't think I've even seen attempts at it, although that doesn't mean they don't exist somewhere), and no arm-xen or arm64-xen CPU/platform combination is defined yet, even in upstream git master. It won't be possible to fix this bug in Debian until that work has been done upstream. The only Xen support that GRUB has on ARM at the moment is a loader, allowing an instance of GRUB running on bare metal to load a Xen hypervisor. Support for running in a PV guest is rather different.
Are you perhaps thinking of the Xen ARM PV project (info: https://wiki.xenproject.org/wiki/Archived/Xen_ARM_(PV) ) and unaware of the Xen ARM with Virtualization (info: https://wiki.xenproject.org/wiki/Xen_ARM_with_Virtualization_Extensions) project? The former has been deprecated, the latter is very much active and apparently usable. GRUB's support for working with Xen on ARM may merely be preliminary, in which case the issue is GRUB. I would expect grub-xen-host to be minimally different between ARM and x86.
Neither. I'm looking at the current state of GRUB, not of Xen. Neither of those Xen projects mentions GRUB at all. I can tell you that such support is nonexistent, not merely preliminary (aside from the ability to boot a hypervisor, as I mentioned; but that's not what grub-xen-host is about). Much of the support for running in PV mode on x86-based Xen is of course written as relatively generic C code that ought to be usable on other architectures, but there are essential pieces (at minimum: startup code, the hypercall ABI, a relocator, and the build system) that nobody has yet implemented for Xen on ARM, or if they have then I haven't seen it and the work doesn't seem to have gone upstream. I'm sure it would be welcomed, but it wouldn't be entirely trivial.
Yeah, a few minutes of thinking and realized the situation and how silly I was being thinking this was likely possible out of the box. Bit of brain going funky. %-/ Hrmm. That is distinctly suboptimal. This seems like a rather major weakness for trying to run Xen on ARM. In other news the Raspberry PI 4B has hardware which matches the profile for running Xen. There appears to be a distinct pool of people trying to run Xen on Raspberry PI devices (I'm not the only one, I think I've got rather more of a clue than most, doesn't mean I'm anywhere near perfect).
I guess it basically means you get to put explicit paths to guest kernels in your Xen configuration files (or I suppose it might be technically possible to write a grub.cfg by hand and use pygrub). PV-GRUB is certainly more ergonomic. Hopefully that means somebody from that pool with the requisite skills will pop up and do the necessary porting work ... if it's anything like the x86-64 code it should be on the order of a hundred lines of ARM assembly, but I guess we'll see.