On 11/09/2026 21:57, Michael Kelly wrote:
I wanted to quickly reach the point where Hurd has completed boot so I
hard coded the required physical address of the root pointer into
libacpica as a quick hack. The next issue arises where the acpi server
tries to read all the ACPI tables for creating its file system. It
uses the 'Extended System Configuration Data' memory region which does
not apply here, I think. Another method needs to be found to populate
the file system, but commenting out that part of the acpi function
reaches the boot of rumpkernel.
runpkernel in turn is hanging at the point after:
[ 1.2700050] wd0(ahcisata0:0:0): using PIO mode 4, DMA mode 2,
Ultra-DMA mode 5 (Ultra/100) (using DMA), NCQ (31 tags)
I've run out of time today but it seems like I'm quite close to
getting to a login.
Would you expect rumpkernel and/or Hurd to cope with a gpt partitioned
disk? Perhaps this is the block but I'll look tomorrow.
I found that parted was somehow blocked in a call to uuid_generate. I
haven't delved further yet into this but I suspect maybe a call into
'/dev/random' functionality is involved. For the moment, I commented
those 2 calls and now Hurd boots to the console login. There are
probably other issues that will emerge but having got this far, I don't
think that implementing proper support for UEFI will be too bad. I'm
proposing to find solutions for all the issues described so far, get
those merged and then work on a graphical console. Perhaps then support
for Hurd on UEFI hardware will be possible.
Some of the issues are perhaps bug fixes but the principle decision to
make I think relates to the ACPI root table pointer issue. Multiboot2
might resolve that but I can see that's a big change although less so if
it was possible to incorporate both a multiboot and multiboot2 header in
the gnumach image. A new 'mbinfo2' device could then make the RSDP
pointer available to the acpi server, for example?
I'd very much welcome Samuel's wisdom as input to this before I start
implementing something seriously.
Mike.