Installing Ubuntu 14.04 on Macbook Pro Retina (10,1)

I did an upgrade install of 13.10, so I skipped writing a blog post about it. However, I did a fresh install of 14.04 on my macbook pro (rMBP). It seems quite stable so far, and is mostly the same as 13.10 and 13.04.

Improved from 13.04

  1. Better nvidia support (no more need to set kernel options)

Now for the directions!

1. Preparation

Just follow steps 1 through 3 in my first guide, to get rEFIt installed and prepare to install Ubuntu. Make sure you download the 14.04 ISO though, for step 3.

2. Install Ubuntu

Note that the wifi won’t work (we’ll fix this in the next step), so don’t try to install updates during the installation process, unless you have a separate usb wifi dongle or ethernet. Also, at the end of the installer, after the dialog asking you to restart, you’ll probably get a black screen. Just press spacebar and it should reboot.

3. Install Wifi Drivers

Wifi doesn’t work out of the box, so from another computer (or your OSX install) download the driver and its dependencies (dkms, libc6-dev, linux-libc-dev), then copy them all to a flash drive and boot back into Ubuntu. Install each with:

sudo dpkg -i "the package file you downloaded"

Alternatively, if you have a usb wifi card, you can use that and install the driver with this command:

sudo apt-get update && sudo apt-get install bcmwl-kernel-source

4. EFI Boot

To get the 2880×1800 native resolution, and the external display ports working you’ll need to convert GRUB to EFI mode. Follow these steps adapted from the Ubuntu UEFI page (note: as of this writing the PPA is missing the packages for trusty, so you’ll need to use the saucy packages instead):

  1. sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
    sudo apt-get install -y boot-repair && boot-repair
  2. Click on “Advanced options”, go to the “GRUB location” tab.
  3. Make sure that “Separate /boot/efi partition” is checked, then click the “Apply” button, and follow the directions (you’ll be asked to remove and reinstall GRUB)
  4. Reboot. You’ll probably have several new options in rEFIt, select any of them to boot up
  5. (optional) if you want to remove some of the extra rEFIt options, just delete the directories you don’t want from /boot/efi/EFI (be VERY CAREFUL here, and don’t delete the APPLE directory)

Note: After changing to EFI, you may get a blank screen for several seconds during boot-up.

5. NVIDIA Drivers

Now you’ll need to install the proprietary NVIDIA drivers, and configure Xorg:

  1. sudo apt-get install linux-headers-`uname -r`
    sudo apt-get install nvidia-current
    sudo nvidia-xconfig
  2. edit /etc/X11/xorg.conf and add to the Device section:
    Option "UseDPLib" "off"
  3. edit /etc/default/grub and add “i915.lvds_channel_mode=2 i915.modeset=0 i915.lvds_use_ssc=0”  to GRUB_CMDLINE_LINUX_DEFAULT inside the double-quotes between the words “quiet splash“. Then run:
    sudo update-grub
  4. Reboot and you should see the nvidia logo during boot
  5. (optional) If you don’t see the nvidia logo or get a blank screen, try installing gfxCardStatus (version 2.2.1, not 2.3), and forcing the discrete graphics card from the dropdown menu of their toolbar icon. You may also need to run “sudo dpkg-reconfigure nvidia-current” after rebooting.

6. Brightness Controls

To make the brightness buttons work, add this to /etc/init.d/rc.local:

setpci -v -H1 -s 00:01.00 BRIDGE_CONTROL=0

7. Other Configuration (optional)

If you’re like me and want the F1-F12 keys to behave as function keys, and not special keys then just follow these steps from the AppleKeyboard guide:

echo options hid_apple fnmode=2 | sudo tee -a /etc/modprobe.d/hid_apple.conf
sudo update-initramfs -u -k all
sudo reboot

Still Broken

  • Only the native resolution (2880×1800) is available, which means the text is rather small

9 thoughts on “Installing Ubuntu 14.04 on Macbook Pro Retina (10,1)”

  1. I have a macbook pro 2010, so not a retina one. Should I install the same nvidia drivers or not? And how does the battery work?


  2. Hi, I had 13.10 working beautiful on a 11,1 MBP. *Everthing* worked seamlessly except for the webcam. I was particularly happy with suspend/hibernate functionality.

    I upgraded to 14.10 and now it’s not working at all, and I get a resume failure on reboot. Are you having success with your suspend/hibernate on lid close functionality?

    Note, pm-hibernate and pm-suspend work just fine, it is only when I rely on lid closure to initiate the state that I have problems.

  3. Did you do an upgrade install, or a fresh install? I’ve had problems with upgrade installs in the past.

    I haven’t tested hibernate, but suspend, when closing the lid, seems to work just fine for me

  4. Thank you for this great Howto 🙂
    The only thing on my 10.1 which is not working, is the nvidia-Driver. I always get a black screen after rebooting 🙁
    Installing gfxCardStatus 2.2.1 and setting discrete graphics as default, didn’t work. Even I recognized, that the Macbook set to “dynamic” after a reboot automatically.

  5. ReFIT is not showing up for me when I boot up (I’ve restarted several times). I’m using a MacBook Pro 10,1. I’ve tried installing using the .mkpg and by copying the efi folder in to / and then running the scripts in /efi/refit/.

  6. A gentlemen somewhere out there in the internet had a bit of a fix for the resolution drama, it consists of scaling using the “xrandr” command.

    For example: xrandr –output DP-2 –scale 0.67×0.67

    2/3 of 2880×1800 is approximately 1920×1200, it’s quite usable.

    I’ve tried playing around with a script in /usr/share/lightdm/lightdm.conf.d/ to automate that for the login screen and the session, but with little success. Login screen stayed at the native resolution, and while the session scaled down, the canvas stayed at 2880×1800 (so the screen scrolled around).

  7. I am not able to get the SD card reader to work. Is this working for you?

    This kind of a pain, because I was planning to install Ubuntu + Arch on a SD card.

Leave a Reply

Your email address will not be published. Required fields are marked *