For those of you who know me, you’ll know I have a soft spot for pixels. The smaller and more plentiful the pixels, the better. So of course, when Apple announced the new MacBook Pro with the insanely high DPI display, I hesitated for a bit, then bought one with the intention of running Linux on it natively.
Now let me prefix this with a statement: Linux on the rMBP can be a sod to get working. It is doable, but don’t expect everything to work right away.
This blog will be part of a series on getting the rMBP working well on Linux, and will only concentrate on getting it to boot via the EFI bootloader.
Getting Linux to boot
I’m using Fedora 17 because @mjg59 is a Red Hat employee, and actively working on getting Linux to play nicely with this machine. So go ahead and grab one of the CD images from http://alt.fedoraproject.org/pub/alt/live-respins/ and dump it to a USB stick, e.g. (assuming you’re doing this on a Linux box and your USB storage device is /dev/sdb):
dd if=F17-Live-DESK-x86_64-20120720.iso of=/dev/sdb bs=1M
Remember to run sync before unplugging the USB device, or you will get bizarre errors and the installer won’t run.
You’ll also need to resize your OS X partition if you want to dual boot; go ahead and resize it in Apple’s Disk Utility (in /Applications/Utilities).
Once that’s done, you can reboot the machine whilst holding down the Alt key and you’ll be presented with a list of devices you can boot from, one of which should be your USB device with the Fedora logo showing. Go ahead and boot off that.
This will bring up the grub prompt; hit ‘e’ to edit the boot configuration and append the following parameters to your kernel arguments:
nointremap drm_kms_helper.poll=0 video=eDP-1:2880x1800@45e
That will boot you into a glorious Xorg session running at native panel resolution, and you can install Fedora as normal (sort of).
First off, you’ll need to ensure that there’s a 200MB HFS+ partition which you can install the EFI bootloader to. This should be set to mount at
/boot/efi.
Apart from that, you probably shouldn’t need to do anything special to the partition table, but here’s mine for reference:
Number Start End Size File system Name Flags 1 20.5kB 210MB 210MB fat32 EFI system partition boot 2 210MB 256GB 256GB hfs+ Customer 3 256GB 257GB 650MB hfs+ Recovery HD 4 257GB 257GB 210MB hfs+ 5 257GB 258GB 524MB linux-swap(v1) 6 258GB 500GB 243GB ext4
Once the installation is done, you may or may not get an error installing the bootloader. If you do, you will need to fire up a terminal and do the following:
sudo chroot /mnt/sysimage efibootmgr -c efibootmgr -v
The last line should show Linux’s bootloader is enabled.
You then need to ensure grub’s configuration is set correctly. Go ahead and find out your kernel and initramfs files; they should be somewhere like:
/boot/vmlinuz-3.4.5-2.fc17.x86_64 /boot/initramfs-3.4.5-2.fc17.x86_64.img
Assuming they’re in /boot on /dev/sda6, this will translate to grub paths as something like:
(hd0,5)/boot/vmlinuz-3.4.5-2.fc17.x86_64 (hd0,5)/boot/initramfs-3.4.5-2.fc17.x86_64.img
Go ahead and write something like the following to /boot/efi/EFI/redhat/grub.conf:
splashimage=(hd0,5)/boot/grub/splash.xpm.gz
default=0
timeout=5
title Fedora (3.4.5-2.fc17.x86_64)
root (hd0,5)
kernel /boot/vmlinuz-3.4.5-2.fc17.x86_64 root=/dev/sda6 rd.md=0 rd.lvm=0 rd.dm=0 KEYTABLE=us SYSFONT=True rd.luks=0 ro LANG=en_US.UTF-8 rhgb quiet nointremap drm_kms_helper.poll=0 video=eDP-1:2880x1800@45e nomodeset
initrd /boot/initramfs-3.4.5-2.fc17.x86_64.img
You will then need to symlink /etc/grub.conf to it, after which you can go ahead and reboot. You should be able to see an additional boot option now in the Alt boot menu. If not, you will need to boot into OS X and you will find a new volume labelled “untitled” most likely. You will need to bless the Linux bootloader in order to boot it, so as root in a terminal, run:
bless --folder /Volumes/untitled --file /Volumes/untitled/EFI/redhat/grub.efi
You should then be able to boot into Linux!