Running Linux on 2012 Macbook Pro Retina

I needed a new laptop so I've decided to check whether I could find one that could fully replace my power-hungry desktop and at the same time get decent mobility. My desktop is a high-spec gaming rig with three full-hd screens dual booting Linux and Windows. Can you pack hardware and battery powerful enough to match that into a small pizza box?

Pursuit for perfection

Considering what my desktop can do, how do I use and how big my laptop can be here is a list of requirements I've came up with:

  • Intel i7 quad-core > 2Ghz
  • at least 8GB RAM
  • at least 256G SSD drive.
  • Size 14”-15” (13" considered)
  • Integrated + discreet GPU (Nvidia optimus technology welcome)
  • Screen with resolution 1920x1080
  • Ability to drive 3 external screens when docked or via built in ports: thunderbolt/hdmi/display port (i.e. not usb 3, preferable not via vga or some crazy adapters)
  • Back-lit keyboard
  • Weight up to 3.5kg
  • Thickness up to 2.5cm
  • At least 5 hours battery for lightweight use (text editing/coding/browsing)

It seems that Apple's Mac Book Pro is pretty much the only laptop that meets all expectations above. Furthermore it comes with thunderbolt ports, these little sockets offer 10Gbit/s access straight to your motherboard meaning all of a sudden an external GPU is possible! Here is a list of 'second-choice' laptops:

  • Asus U500vz - sweet but will never run 3 screens due to lack of outputs, keyboard has extra keys above arrows
  • Dell Precision 15" - sweet but big & clunky
  • Dell XPS 15 - 2 weeks waiting time, for some reasons version with SSD disk disappeared from the website at the time of writing
  • Sony Vaio Z - 1 month waiting time, requires docking station for discrete gpu, prohibitevly expensive (£2500!)
  • Sony Vaio S - 1 month waiting time, will never run 3 screens due to lack of outputs
  • Samsung 9 series 15" - i5 and small SSD

2 weeks with Mac Book Pro Retina

I've got the 512 SSD, 2.6Ghz Macbook with Retina Screen which I've configured to triple boot:

Number  Start   End     Size    File system  Name                          Flags
 1      20.5kB  210MB   210MB   fat32        EFI system partition          boot
 2      210MB   75.2GB  75.0GB  hfs+         Customer
 3      75.2GB  75.9GB  650MB   hfs+         Recovery HD
 4      75.9GB  76.0GB  105MB   hfs+         efi-grub
 5      76.0GB  76.1GB  105MB   ext2         boot
 6      76.1GB  345GB   268GB   ext4         arch
 7      345GB   345GB   134MB                Microsoft reserved partition  msftres
 8      345GB   500GB   156GB   ntfs         Basic data partition

where partitions 1-3 are what laptop came with (just shrinked), 4 is for Refind, 5-6 for Arch Linux and 7-8 for Win 8.

Installing system is relatively easy - you can boot an EFI capable boot loader or kernel either from USB or using an SD card. Partitions can be resized from OS X and formatted using Linux installer/livecd. Remember to boot with Thunderport plugged in. After installing Linux I've also managed to install windows 8 using EFI boot without much problem.

However straight after installation I've run into problems: wifi connection was really bad and every other reboot I would encounter weird problem: screen would go black or laptop would not fully come out from suspend. I've spent long days trying to resolve these issues, some of my findings:

The Good

Screen is wonderful. On Linux with DPI set to 144 and running Firefox with layout.css.devPixelsPerPx set to 1.5 web is beatiful. Fonts are crisps and sharp and you're still getting an equivalent of roughly 1920x1080 worth of space. Windows 8 with 'zoom' set to 150% looks great as well in apps that support this setting.

MBPr is a really powerful laptop. It can easily drive 4 screens using Discrete NVIDIA GPU (2 through mini display ports, 1 via hdmi and the built-in Retina screen). However if mobility is what you're after, switch off Discrete GPU and you're looking at 6-7 hours worth of battery when doing light work. Powertop reports 14-15W discharge while doing normal 'coding' + browsing, playing something on Youtube will raise this figure to 20-odd Watts.

Sound is surprisingly good for a laptop but if silence is what you're after - as long as you stick with the integrated graphics and don't do much compiling (or anything else cpu-intensive) you're very unlikely to hear fans at all!

The Bad

Not all Linux apps are high-DPI compatible. Here are some examples: Firefox is brilliant, Chrome not really. KDE will work with some tweaks but Sublime Text has some problems that cannot be fixed with themes. On the screenshot below you will notice that while setting default zoom level to 150% partially resolves the issue with Chrome, the interface of the browser itself (historically referred to as chrome) is very small and makes using chrome uncomfortable:

Screenshot showing Linux running on MBP Retina
Screenshot showing Linux running on MBP Retina

There is no ethernet port and wireless needs firmware extracted from proprietary drivers. Thunderbolt-to-ethernet port comes handy but there is no support for hot-plugging it in Linux.

If you want to plug in external monitors, you will probably need to grab a DP adapter though it's not too bad as mini-dp is now becoming a standard thus adapters are plentiful.

The Ugly

15" Macbook Pro Retina comes with 2 GPUs however Apple decided to use a digital multiplexer to switch between cards connected to the retina screen rather than to use the hybrid approach such as using Nvidia's Optimus technolgy. It works ok for OS X though I did manage to boot into Macbook's operating system and have only external screen working. However support on Linux (or Windows 8 as for this matter) is virtually non-existent. This was the main deal breaker for me.

Wifi support under Linux is really poor. Broadcom's chipset is only partially supported. As long as you stick with 802.11g standard routers you should be ok, with kernel 3.8 I've experienced occasional connection breaks and a throughput of about 1MB/s. It gets worse when you connect to the 802.11n standard router - at the moment there is no support for it at all in the driver so you would be capped at theoretical speed 54Mbit/s, and I've experience much worse connection drops when connected to the 'n' standard router. An alternative is to try the ndis_wrapper but others tried this and it doesn't seem to be any better. Second deal breaker.

Summary

If you're happy to use OS X, this is a great piece of hardware and probably worth it's orbital price. Unfortunately Apple's peculiar choice of hardware means that. at least as of February 2013. you won't be able to run Linux or Windows 8 on it (Windows 7 through fake Bios and 'Bootcamp' should work). Luckily Apple let's you return a laptop within 14 calendar days and that's exactly what I've done. Nevertheless this has been the closest I've seen to a worthy desktop replacement so one that works for me must be coming very soon!