d-i status wrt i386 & amd64 EFI machines
[Please Cc me on replies, I'm not subscribed to debian-boot]
I've taken over the maintenance of rEFIt last week and I've been
working on updating rEFIt in Debian since then (I've been working on
the rEFIt issue on and off for more than a year). This is now a done
deal, only waiting for a gnu-efi upload.
Now that we have a working rEFIt, I'd like to have some support for
that in d-i. Looking into this issue, I came to the conclusion that
what is really needed is a d-i install medium for i386 & amd64
What is the status on that? Are there any plans or any work in
progress towards providing an EFI bootable medium, similar to the ia64
(you can skip the remainder of this mail if you're not interested in
the gory details)
Rationale for that:
- i386/amd64 EFI machines are becoming more and more common among
- Intel Macs are also becoming more and more common, the market share
for Apple machines in the high end market is booming (especially
- as the pommed author, I'm getting more and more mails from *new*
users; that shows that Linux is progressing on those machines too
- current d-i support for Intel Macs is suboptimal at best,
installing an i386 system is mostly OK, installing and amd64 system
is hardly possible TTBOMK
I'll go into the details pertaining to Intel Macs now and why an EFI
boot medium is needed. When reading what follows, keep in mind that
Intel Macs are a special case among i386/amd64 EFI machines. That
means most of the workload is directed at the generic case and the
support for Intel Macs is really icing on the cake.
The EFI system on Apple machines can boot an OS either via an EFI
bootloader or through a legacy bootloader by loading a legacy BIOS
emulation layer before executing the legacy bootloader.
The Linux kernel has support for EFI on both i386 and amd64 (starting
with 2.6.25 for amd64); this means the kernel can be booted via an EFI
bootloader such as elilo and interact with the EFI system. Notably,
this means the kernel can manipulate EFI variables (via the efivars
module), which is required to set the boot order.
That last feature can only be used when the kernel has been booted via
EFI, it's not available when the kernel is booted through legacy mode.
Also, for everyday use, Intel Macs are best booted through legacy
mode. Why? Because otherwise, there is no video BIOS loaded, which
means: no accelerated 2D or 3D video.
Which brings us to the core of the issue. Installing rEFIt means:
- copying rEFIt to the EFI system partition (first partition on the
disk, FAT32, ca. 200 MB on Apple machines)
- setting the EFI variables so that the EFI system will load rEFIt as
the primary bootloader
(for other EFI machines, replace rEFIt with elilo and the above still
This last step can be accomplished on Linux with efibootmgr and the
efivars kernel module. Without this last step, the machine will
continue booting into OS X and the user will have to use the bless
utility under OS X to set the EFI variables.
As I wrote above, the efivars module only works when the kernel has
been booted through EFI. Which means that we need to boot d-i from EFI
and not through legacy mode in order to support a painless installation
on these machines.
Note that I expect most of the ia64 stuff can be reused mostly
unchanged to produce those images.
Providing a refit-installer similar to elilo-installer looks like a
no-brainer, overall most of the work seems to be in building new
images and testing them.
Julien BLACHE <email@example.com> | Debian, because code matters more
Debian & GNU/Linux Developer | <http://www.debian.org>
Public key available on <http://www.jblache.org> - KeyID: F5D6 5169
GPG Fingerprint : 935A 79F1 C8B3 3521 FD62 7CC7 CD61 4FD7 F5D6 5169