x86 EFI handling
I realise this has come up before (e.g.
http://lists.debian.org/debian-boot/2007/12/msg00201.html), but we
seemed to get a bit bogged down in the CD side of things and I don't
think we ever actually sorted out the core installer problems with x86
EFI.
These actually aren't too significant as far as I can see, and while I
suspect completely working images might be a way off yet I would like to
unblock at least the bits I know about. Does anyone object to the
following plan:
* Add EFI as a subarchitecture of i386 and amd64 in
libdebian-installer. This is a SMOP; I should be getting ssh access
to an appropriate machine soonish to sort out the details, but I
don't expect any particular complication.
Rationale for being a subarchitecture: it boots in a completely
different way, and that's pretty much what being a d-i
subarchitecture means.
Rationale for remaining distinct from the existing "mac"
subarchitecture: Apple's EFI implementation has a number of quirks
that qualify it for separate handling (e.g. slightly weird
partitioning, different boot loader handling at least historically),
and it's easiest to detect these in libdebian-installer where we can
easily and space-efficiently get at DMI information. Having to say
"i386/efi|amd64/efi|i386/mac|amd64/mac)" in a handful of case
statements is better than having to pull dmidecode into d-i for when
we do need to tell the difference.
* Extend partman-auto to have a recipes-i386-efi directory (and a
symlink, recipes-amd64-efi). These recipes would create an EFI
system partition, like recipes-ia64, rather than biosgrub and /boot
partitions.
I'm sure there'll be other quirks (apparently sometimes you have to do
weird things with NVRAM by hand; way to step forward to the 1980s,
guys!), but these changes would be quite simple and might at least get
us to the point where people who know more about that kind of this thing
can carry on.
I'm also trying to find out if it's possible to detect whether the
firmware is 64-bit and if so automatically use grub-efi-amd64, rather
than needing to know you have to install a version of Debian with the
exact same bitness as your firmware.
--
Colin Watson [cjwatson@debian.org]
Reply to: