# EFI boot to Linux on a MacBook Pro

8,3 MacBook Pro 2011, running Ubuntu 11.10 amd64.

Here's the situation. Screen backlight and a few other things only work if booting in EFI, so I need to boot Ubuntu in EFI to get things working.

If I hold down Alt while booting and start Linux that way, then I boot into EFI just fine to my existing GRUB2 setup with screen brightness working.

I'd like to make this a bit more "automatic." I'm currently using rEFIt to allow me to boot into the various operating systems I've got on the machine. Unfortunately, rEFIt doesn't boot Linux in EFI mode, it uses a legacy mode, I believe, which seems to be equivalent to BIOS.

Thus, I installed a GRUB2 EFI module to rEFIt and I can now see that in my boot menu just fine. The problem is that I'm having boot problems. With the following GRUB command, I can see the kernel boot, but it hangs at

*ERROR* failed to get supported _DSM functions


and never actually completes. Here's my GRUB configuration file:

set debug=fg
insmod efi_uga
insmod font

then
insmod gfxterm
set gfxmode=auto
terminal_output gfxterm
fi

search --file --no-floppy --set=root /vmlinuz
linux /vmlinuz root=/dev/sda4 video=efifb
initrd /initrd.img
}


I basically have two questions.

1. Is there a way to enable EFI booting to Linux in rEFIt? If that were possible, I could avoid having to mess with GRUB altogether and that'd be great.

2. What am I doing wrong with GRUB? If I can't get rEFIt to play nice, how should I be booting my kernel in the EFI GRUB configuration file? I tried using the one on my system at /boot/grub/grub.cfg, but that didn't work either. I've been messing around with this for a while, but since I'm totally new to messing with GRUB, I'm utterly lost.

Why can I use Apple's "alt" loader to boot into Linux with EFI support, while I can't use rEFIt to boot into Linux with EFI support?

-
Your GRUB config seems to be setting up some kind of BIOS compatibility, which I don't think you want. My EFI boot of Ubuntu 12.04 (which worked from rEFIt) uses the generated grub.cfg which just loads the kernel normally (no loadbios or video=efifb entries). –  mgorven Jun 6 '12 at 23:23

Try adding noefi to the end of the GRUB_CMDLINE_LINUX_DEFAULT line in /etc/default/grub, then run grub-mkconfig -o /boot/grub/grub.cfg (assuming that's where you grub configuration file is).