Well, I poked around a bit. As it turns out, when kexec passes the display parameters to the kernel, it needs to supply a parameter called “orig_video_isVGA”. I don’t know why it’s called that, or what all the possible values mean, but at least for x86, this field should seemingly be set to either VIDEO_TYPE_EFI (0x70) or VIDEO_TYPE_VLFB (0x23). kexec tries to automatically detect the correct value, but that automatic detection doesn’t work in PureBoot.
If you apply the following patch to kexec:
--- a/kexec/arch/i386/x86-linux-setup.c
+++ b/kexec/arch/i386/x86-linux-setup.c
@@ -138,7 +138,8 @@
goto out;
if (-1 == ioctl(fd, FBIOGET_VSCREENINFO, &var))
goto out;
- if (0 == strcmp(fix.id, "VESA VGA")) {
+ if (0 == strcmp(fix.id, "VESA VGA")
+ || 0 == strcmp(fix.id, "inteldrmfb")) {
/* VIDEO_TYPE_VLFB */
real_mode->orig_video_isVGA = 0x23;
} else if (0 == strcmp(fix.id, "EFI VGA")) {
Then, build a static kexec binary (by running “./configure CC=‘gcc -static’ && make”) and copy it to somewhere accessible to PureBoot, you should then be able to boot the Debian installer by running:
/boot/misc/kexec -l /media/install.amd/vmlinuz --initrd /media/install.amd/initrd.gz
/boot/misc/kexec -e
I don’t know if the above patch is the best solution in general, but hopefully this should make it work correctly for Librem users at least.