I somehow thought that with the correct 32-bit rEFInd bootloader, it will handle a 64-bit Linux kernel. But, it seems not.scsijon wrote:Sorry,BarryK wrote:
scsijon,
I think you mentioned that you have a PC with 32-bit UEFI, and 64-bit CPU.
The Pyro64 0.5 8GB image file has rEFInd, with both 32-bit and 64-bit bootloaders in it.
Would you mind writing that image to a 8GB stick and test if it boots on a 32-bit UEFI -- proper UEFI boot, not legacy-mode.
Tried, but it failed after the menu autostarted with:-
Quirky Linux - Booting OS
Starting vmlinuz
Using load options 'root-PARTUUID=fc67e7dd-02 rootwait rw'
Invalid loader file!
Error: Not Found while loading vmlinuz
"hit any key to continue"
and that was all it said,
And with a check the partuuid is correct so that is not the problem.
Tried adding qfix=nox etc and a few of your other tricks from the past, but of course as it can't find a usefull loader it just bombs.
Let me know if you have any ideas to try, i'll monitor this thread.
EDIT1: woke up with a thought to try, so tried copying the 32bit BOOTIA eufi file from sdb1 to sdb2/boot but no change, it's definately going to sdb2/boot though as it's picking that menu and not sdb1's. Also tried putting the partuuid in the sdb2/boot/ config file but that also did nothing. back to bed, mowing tomorrow the grass is too long.
Maybe will have to create a pyro32, with 32-bit kernel. The 4.13.11 Linux kernel in Pyro32 0.5 is not suitable, as I configured it without EFI capability.
EDIT
Quoting from here:
https://mjg59.dreamwidth.org/26734.html
OK, tonight I will recompile the 32-bit Linux kernel with EFI enabled.Things get irritatingly more complicated due to a quirk of UEFI. UEFI is based on executing code in native mode. That means that 32-bit UEFI systems can't execute 64-bit code in firmware, even if the CPU is capable of it. A 64-bit OS can only boot on 32-bit UEFI if it has very ugly compatibility hacks, including having to rewrite structures and register state every time it makes a UEFI call. The only OS I'm aware of that implements this is MacOS X. Having looked into what it'd take to implement it in Linux, I decided that hammering rusty nails through my feet would be a preferable use of time. Thankfully, I went drinking instead.
Then build another Pyro32.
EDIT2
There was something nagging at my memory about this. Found what that was:
https://lwn.net/Articles/589193/
https://cateee.net/lkddb/web-lkddb/EFI_MIXED.html
I have to recompile the 64-bit kernel with CONFIG_EFI_MIXED enabled, then Pyro64 should boot on a 32-bit UEFI.
Right, will do.