So it's already been a month ago when I got my new 13-inch MacBook Pro w/ Retina Display. So everyone who knows me could already promise what would happen next: I'd install Linux on it. For this one I once again chose to use my favorite Linux distribution Fedora, which is currently available in version 20. Meanwhile I tried to install Ubuntu but this lead to problems with ACPI, the disk controller and last but not least the hi-res display featuring a pixel density from 227 ppi.
There are some things to have an eye on during the installation process but generally most things are working now so that the system is more or less ready for production usage.
Luckily Fedora natively boots in EFI environments for years, including MacBooks. So the installation can be completed like on any other EFI machine. Because the MacBook Pro lacks a DVD drive, I had to copy the Live DVD image over to a USB drive, which was
disk1 on my system so copying could be accomplished like that (Caution: all data on the device will be deleted. Double check you selected the proper disk):
sudo dd if=fedora-image.iso of=/dev/rdisk1 bs=8m
If you encounter errors while running this command, be sure to have unmounted all partitions of that drive.
When completed, just reboot and hold the option key while booting. This will open the boot menu and present you with a Fedora logo for the formatted USB drive.
The remaining installation should work without any further issues but be sure to proper partition your disk. There are two strategies: Either you have already shrinked your OS X partition using "Disk Utility" and use the freed space to create a Linux partition or you override your whole partition table and install Fedora as your only operating system.
The display: Retina supported?
After the first boot I expected the all controls to be scaled down, which should be the case because we're running on 2560 by 1600 px natively. But it seems that Gnome 3 (3.10 in this Fedora version) supports HDPI display at least partially.
Though this is good in general because you don't have to scale up the whole UI manually resulting in a blurry soup of what was once a user interface, it should be clear for every die-hard Linux user that this doesn't working in any application. In fact GTK3-based application seem to be the only one supporting this feature. All the other UI frameworks don't seem to support hi-res for now...
Option A: Scale the UI up
The most compatible way is to easily scale up the full UI by dividing the the total size by 2. This makes the whole UI somewhat blurry, but works throughout all applications. This can be done by using
xrandr --output eDP1 --scale .5x.5
This commands bisects the pixel density of
eDP1, resulting in a resolution from 1440 by 900.
Option B: Tune scaling for the most important application
As I'm only using Gnome applications and the Terminal, everything seemed to work well expect for the browser. I'm using Firefox as a browser and Thunderbird as a mail client. Those two don't scale to the hi-dpi factor out of the box, so this has to be tuned manually.
In Firefox for example, open the config page
about:config and search for the property
layout.css.devPixelsPerPx. This is set to
-1 by default. Changing the value to
2 enables correct UI scaling for HDPI displays.
At least there's still hope that the other GUI frameworks will support automatic HDPI scaling in the near future, as many of the new-generation laptops use hi-res display panels.
During the installation process the MacBook Pro's WiFi chip wasn't detected properly. It features a
bcm4360 chip as according to
Broadcom Corporation BCM4360 802.11ac Wireless Network Adapter (rev 03)`
There's currently no open-source driver supporting this device, but you can install the proprietary one from the RPMFusion http://rpmfusion.org/Configuration package repository.
yum install kmod-wl
After a reboot, this should work. Tip: The driver does not seem to support 5 GHz networks for now, so be sure your access point operates on 2,4 GHz.
Besides the iSight camera, which doesn't work at all, all other components should work without any further customization. Battery life is about 4 hours in my case, which is acceptable but may be optimized in the future.