My Nvidia nightmare with Ubuntu 14.04 on a MacBookPro6,2

My fondness of Apple’s software releases has been steadily declining recently, so I decided to switch entirely to a Linux-based operating system. Having recently had very good experiences with Ubuntu’s hardware support on various machines, I decided to try out the latest 14.04 LTS release on my MacBook Pro (Mid 2014) (MacBookPro6,2).

The installation went smoothly – brightness/audio controls, WiFi, Audio and Webcam all seemed to be working without any additional configuration  needed. At this point, I was using the pre-selected open-source Nouveau driver for the Nvidia Geforce 330M GPU.

The defining detail

I soon found, however, than returning the laptop from sleep/suspend mode (lid closed) would cause the laptop to freeze. I found it to be related to a known bug in the open-source Nouvea driver as described here and discussed here. I then decided to try out the proprietary Nvidia drivers as provided by Ubuntu’s “Software & Updates” application. Switching to any of the proprietary drivers, however, had a much more severe side effect… At this point, I was now completely unable to boot into the desktop environment, as the entire screen would remain blank as soon as the X-server tried to start.

Since returning to the original Nouvea driver was not an option for me (because of the non-functional suspend), it took me a couple of days to figure out the causing of the problem  and eventually find a working solution.

It turns out that installing Ubuntu 14.04 on a Mac laptop installs an EFI boot loader using Grub2. For whatever reason, using this EFI boot loader somehow prevented the operating system from properly communicating with the GPU.

Replacing Grub2 with legacy Grub

The only working solution that I have found is to replace Grub2 with Grub (sometimes referred to as legacy Grub). For whatever reason (don’t ask me why), this seems to solve the problem with the operating system not being able to communicate with the GPU properly.

As described here, these are the steps I followed to successfully replace Grub2 with legacy Grub.

  • Create backups of the configuration folders for Grub2:

sudo cp /etc/default/grub /etc/default/grub.old
sudo cp -R /etc/grub.d /etc/grub.d.old
sudo cp -R /boot/grub /boot/grub.old

  • Uninstall Grub2:

sudo apt-get purge grub-pc

  • Install legacy Grub:

sudo apt-get install grub

  • Configure legacy Grub on the harddisk where Ubuntu resides:
  • Note: Remember to replace “X” with the drive-letter of the harddisk where Ubuntu is installed.

sudo grub-install /dev/sdX

  • Generate a new “menu.lst” partition list for legacy Grub:
  • Note: Select “Yes” when prompted.

sudo update-grub

After a reboot, I was now able to successfully boot into the graphical user interface.

9 thoughts on “My Nvidia nightmare with Ubuntu 14.04 on a MacBookPro6,2”

  1. I have found a working solution to boot my Macbook Pro 7.1 (mid-2010) in EFI mode with Nvidia drivers. SERIOUSLY!

    Please review my article at including Xorg.0.log and the solution. Enjoy a little taste of AHCI and Powermizer as well as brightness controls…
    Feedback appreciated 🙂

    best regards,

    p.s. Sorry for cross-posting to some of the major distribution forums.

  2. I have a MacBook 5.1 which had the same issue as mentionted on top. Suspend mode started working after installing the Nvidia 331.38 proprietary, tested driver.

  3. i also have a MBPro 6,2 (2.4 GHz intel core i5).. i would like to wipe IOS off and replace with ubuntu. i would like to install the latest 14.04.1 but not sure. kilian, did you resolve your issue? if so, can you share the final fix? thank you.

  4. I met same problems on the same MBP model before. I gave up Ubuntu 14.04 after many tries and switched back to 10.04 which is stable. After reading your post, I will try.

  5. I got a MBPro 6,2 (2.4 GHz intel core i5)

    I tried it on a fresh install of ubuntu Gnome 14.04.1 But after making all the changes, selecting the nvidia driver and restarting the screen turned black as always. Go figure.

    Before restarting I was bit wary of the fact that the syslog said /dev/nvidia directory was missing and I have no idea how to create that (sudo mkdir did’t work, probably because the directories in /dev/ are not just simple directories).

    1. Hey Kilian.

      Could You try to manually install the proprietary nvidia driver using the console? (e.g.: sudo apt-get install nvidia-331)

      Also, can you confirm which version of grub is currently installed by looking at the output of: dpkg -l | grep grub

  6. I was in exactly the same situation with exactly the same reason for switching, and I was just about to give up when I found your post. I’ll try this right away and if it works here, too (same MBPro model) that info should probably go into the Ubuntu Wiki!

Leave a Reply

Your email address will not be published.